function preloadImages(){var d=document;if(d.images){if(!d.p)d.p=new Array();var i,j=d.p.length,a=preloadImages.arguments;for(i=0;i<a.length;i++)if(a[i].indexOf("#")!=0){d.p[j]=new Image;d.p[j++].src=a[i];}}}
function findObj(n,d){var p,i,x;if(!d)d=document;if((p=n.indexOf("?"))>0&&parent.frames.length){d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}if(!(x=d[n])&&d.all)x=d.all[n];for(i=0;!x&&i<d.forms.length;i++)x=d.forms[i][n];for(i=0;!x&&d.layers&&i<d.layers.length;i++)x=findObj(n,d.layers[i].document);if(!x&&d.getElementById)x=d.getElementById(n);return x;}
function swapImage(){var i,j=0,x,a=swapImage.arguments;document.sr=new Array;for(i=0;i<(a.length-2);i+=3)if((x=findObj(a[i]))!=null){document.sr[j++]=x;if(!x.oSrc)x.oSrc=x.src;x.src=a[i+2];}}
function swapImgRestore(){var i,x,a=document.sr;for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++)x.src=x.oSrc;}

function uppercase(obj){var v=obj.value;v=v.toUpperCase();obj.value=v;}

function createOption(texto,valor,selected){var opt=document.createElement('OPTION');opt.appendChild(document.createTextNode(texto));opt.value=valor;opt.selected=selected;return opt;}

function validarNIF_CIF(valor){
	var letrascif="ABCDEFGHNPQS";
	var letrasnif="KLXM0123456789";
	if(valor!=null&&valor.length==9&&!isNaN(valor.substring(1,8))){
		valor=valor.toUpperCase();
		if(letrascif.indexOf(valor.substring(0,1))!="-1"){
			return validarCIF(valor);
		}else if(letrasnif.indexOf( valor.substring(0,1))!="-1"){
			return validarNIF(valor);
		}else {
			return false;
		}
	}else{
		return false;
	}
}

var letrasNIF=new Array("T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E");
var letrasCIF=new Array("J","A","B","C","D","E","F","G","H","I");
var PESOS=new Array(1,2,4,8,5,10,9,7,3,6);
function validarNIF(valor){var letra=valor.substring((valor.length-1),valor.length);var numero=valor.substring(0,(valor.length-1));while(numero.substring(0,1)=="0")numero=numero.substring(1,numero.length);var resto=parseInt(numero);resto=resto%23;if(letrasNIF[resto]==letra.toUpperCase())return true;else{return false;}}
function validarCIF(valor){var sumap=0;var sumai=0;var p;valor=valor.toUpperCase();sumap=parseInt(valor.substring(2,3))+parseInt(valor.substring(4,5))+parseInt(valor.substring(6,7));for(var i=1;i<=8;i++){p=2*parseInt(valor.substring(i,i+1));if(p>9)sumai+=Math.floor((p/10))+(p%10);else sumai+=p;i++;}var R=sumap+sumai;var dc=R%10;dc=10-dc;if(dc==10)dc=0;if(isNaN(valor.charAt(8))&&letrasCIF[dc]==valor.charAt(8))return true;else if(dc==parseInt(valor.substring(8,9)))return true;else{return false;}}
function validarNSS(valor){if(valor!=null&&valor.length==12&&!isNaN(valor)){var num=valor.substring(0,10);var resto=valor.substring(10,12);if(num%97==resto)return true;else{return false;}}else{return false;}}
function validarCCC(valor){if(valor!=null&&valor.length==20){var entidad=valor.substring(0,4);var oficina=valor.substring(4,8);var dc=valor.substring(8,10);var cuenta=valor.substring(10);if (!(obtenerDigito("00"+entidad+oficina)==parseInt(dc.charAt(0)))||!(obtenerDigito(cuenta)==parseInt(dc.charAt(1)))){return false;}else return true;}else{return false;}}
function obtenerDigito(valor){var resultado=0;for(var h=0;h<=9;h++) resultado+=parseInt(valor.charAt(h))*PESOS[h];resultado=11-(resultado%11);if(resultado==11) resultado=0;else if(resultado==10) resultado=1;return resultado;}

function validarEmail(emailStr){var emailPat=/^(.+)@(.+)$/;var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";var validChars="\[^\\s" + specialChars + "\]";var quotedUser="(\"[^\"]*\")";var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;var atom=validChars + '+';var word="(" + atom + "|" + quotedUser + ")";var userPat=new RegExp("^" + word + "(\\." + word + ")*$");var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");var matchArray=emailStr.match(emailPat);
if(matchArray==null)return false;var user=matchArray[1];var domain=matchArray[2];if(user.match(userPat)==null)return false;var IPArray=domain.match(ipDomainPat);if(IPArray!=null){for(var i=1;i<=4;i++)if(IPArray[i]>255)return false;return true;}var domainArray=domain.match(domainPat);if(domainArray==null)return false;var atomPat=new RegExp(atom,"g");var domArr=domain.match(atomPat);var len=domArr.length;if(domArr[domArr.length-1].length<2||domArr[domArr.length-1].length>3)return false;
if(len<2)return false;return true;}

function check(c,e) {
  if (isIE) {
    window.event.cancelBubble=true;
  } else {
    e.cancelBubble=true;
  }
  var numChecks=parseInt(findObj("numChecks").value);
  var checkTodos=findObj("checkTodos");
  if (c.checked){
    var numChecked=0;
    for(var i=0;i<numChecks;i++){
      if (findObj("check"+i).checked){
        numChecked++;
      }
    }
    checkTodos.checked=(numChecked==numChecks);
  }else{
    checkTodos.checked=false;
  }
}
function checkAll() {
  var numChecks=parseInt(findObj("numChecks").value);
  var checkTodos=findObj("checkTodos");
  for(var i=0;i<numChecks;i++){
    findObj("check"+i).checked=checkTodos.checked;
  }
}

String.prototype.trim = function() { 
    var aux=this.replace(/^[ \t]+|[ \t]+$/, '');
    if(aux.length>0){
        var index=aux.length-1;
        for (;index>=0;index--){
            if(aux.charAt(index)!=' '){break;}
        }
        aux=aux.substring(0,index+1);
    }else{
        aux='';
    }
    return aux;
}

function subirOrdenLista (id) {
    var campo = document.getElementById(id);
    var indice = campo.selectedIndex;
    if (indice>0) {
        var opcion1=document.createElement("option");
        opcion1.value=campo.options[indice].value;
        opcion1.appendChild(document.createTextNode(campo.options[indice].text));
        var opcion2=document.createElement("option");
        opcion2.value=campo.options[indice-1].value;
        opcion2.appendChild(document.createTextNode(campo.options[indice-1].text));
        if (indice<campo.options.length-1) {
            var nodo=campo.options[indice+1];
            campo.remove(indice);
            campo.remove(indice-1);
            campo.insertBefore(opcion2,nodo);
            campo.insertBefore(opcion1,opcion2);
        } else {
            campo.remove(indice);
            campo.remove(indice-1);
            campo.appendChild(opcion1);
            campo.appendChild(opcion2);
        }
        campo.selectedIndex=indice-1;
    }
}

function bajarOrdenLista (id) {
    var campo = document.getElementById (id);
    var indice = campo.selectedIndex;
    if (indice<campo.options.length-1) {
        var opcion1=document.createElement("option");
        opcion1.value=campo.options[indice].value;
        opcion1.appendChild(document.createTextNode(campo.options[indice].text));
        if (indice==campo.options.length-2) {
            campo.remove(indice);
            campo.appendChild(opcion1);
        } else {
            var nodo=campo.options[indice+2];
            campo.remove(indice);
            campo.insertBefore(opcion1,nodo);
        }
        campo.selectedIndex=indice+1;
    }
}

function eliminarLista (id) {
    var campo = document.getElementById(id);
    var indice = campo.selectedIndex;
    if (indice>=0) {
      campo.remove(indice);
    }
}

function getIFrameDocument(idIframe){
    // if contentDocument exists, W3C compliant (Mozilla)
    if(document.getElementById(idIframe).contentDocument){
        return document.getElementById(idIframe).contentDocument;
    }else{// IE
        return document.frames[idIframe].document;
    }
}

function validarObligatorio(idCampo) {
  var campo = document.getElementById(idCampo);
  if (campo.tagName.toUpperCase() == "INPUT" || campo.tagName.toUpperCase() == "TEXTAREA") {
    if (campo.value.length==0) {
      alert(MSJ_OBLIGATORIO);
      campo.focus();
      return false;
    }
  } else if (campo.tagName.toUpperCase() == "SELECT") {
    if (campo.value == "--") {
      alert(MSJ_OBLIGATORIO);
      campo.focus();
      return false;
    }
  }
  return true;
}
