

function MM_findObj(n, d) { //v4.01
  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=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.title; val1=val; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' debe ser un email.\n';
	  } else if (test.indexOf('isCheck')!=-1) { 
	   	if (val1.checked==false) errors+='- '+nm+' es obligatorio.\n';
	  } else if (test.indexOf('isNif')!=-1) { 
	  	
		p=verifyNif(val);
        if (p!=true) errors+='- '+nm+' debe ser un nif válido.\n';
	   }else if (test.indexOf('isFecha')!=-1) { 
	    p=valFecha(val1);
        if (!p) errors+='- '+nm+' debe ser una fecha válida.\n';
		}else if (test.indexOf('is15dias')!=-1) { 
		
	    p=menor_15dias(val); 
        if (!p) errors+='- '+nm+' debe tener un margen de 7 días a contar desde hoy y ser una fecha valida.\n';
		}else if (test.indexOf('isDateDiff')!=-1) { 
	    p=valFecha(val1);
        if (!p) errors+='- '+nm+' debe ser una fecha válida.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' debe ser un numero.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' es obligatorio.\n'; }
  } if (errors) alert('Han ocurrido los siguientes errores:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function verifyNif(sNif)
{
	
	if (sNif.charAt(0)=='X' || sNif.charAt(0)=='x'){
		
		 return(true);
	}else{
	
 var strLetras = 'TRWAGMYFPDXBNJZSQVHLCKE';
 var Letra;
 sNif=sNif.toUpperCase();
 if(sNif.length<9)
  return(false);
 else
 {
  Letra=sNif.charAt(sNif.length-1);
  if(Letra<'A' || Letra>'Z')
    return(false);
  else
   Letra=strLetras.charAt((sNif.substr(0,sNif.length-1))%23);
  if(sNif.charAt(sNif.length-1)==Letra)
   return(true);
  else
  alert ('EL nif introducido no es valido');
   return(false);
 
 }
	}
}

function esDigito(sChr){
var sCod = sChr.charCodeAt(0);
return ((sCod > 47) && (sCod < 58));
}

function valSep(oTxt){
var bOk = false;
bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
return bOk;
}

function finMes(oTxt){
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
var nRes = 0;
switch (nMes){
case 1: nRes = 31; break;
case 2: nRes = 29; break;
case 3: nRes = 31; break;
case 4: nRes = 30; break;
case 5: nRes = 31; break;
case 6: nRes = 30; break;
case 7: nRes = 31; break;
case 8: nRes = 31; break;
case 9: nRes = 30; break;
case 10: nRes = 31; break;
case 11: nRes = 30; break;
case 12: nRes = 31; break;
}
return nRes;
}

function valDia(oTxt){
var bOk = false;
var nDia = parseInt(oTxt.value.substr(0, 2), 10);
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
return bOk;
}

function valMes(oTxt){
var bOk = false;
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
bOk = bOk || ((nMes >= 1) && (nMes <= 12));
return bOk;
}

function valAno(oTxt){
var bOk = true;
var nAno = oTxt.value.substr(6);
bOk = bOk && ((nAno.length == 2) || (nAno.length == 4));
if (bOk){
for (var i = 0; i < nAno.length; i++){
bOk = bOk && esDigito(nAno.charAt(i));
}
}
return bOk;
}


function valFecha(oTxt){
var bOk = true;
if (oTxt.value != ""){
bOk = bOk && (valAno(oTxt));
bOk = bOk && (valMes(oTxt));
bOk = bOk && (valDia(oTxt));
bOk = bOk && (valSep(oTxt));
}

return bOk;


}
function openBrWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
};



function menor_15dias(fecha){

//Set the two dates


today=new Date()
var nDia = parseInt(fecha.substr(0, 2), 10);
var nMes = parseInt(fecha.substr(3, 2), 10);
var nAno = fecha.substr(6);

var fecha2=new Date(nAno, nMes-1, nDia)

//Set 1 day in milliseconds
var one_day=1000*60*60*24


//Calculate difference btw the two dates, and convert to days
a=Math.ceil((fecha2.getTime()-today.getTime())/(one_day))

if (a<8){
	return false
}else{
return true	
}

}


