// validate formularis per ajax
//3459TyB_rBczP  -> ef59d
//TyB_r
//EF59D
var todisable=0;

function desencripta(cad)
{
var numcars=5;
var posi= 'QwErTydgHknBczP_';
var canv= 'ABCDEF0123456789';
var cad1=cad.substring(4,4+numcars);
var torna="";
for (i=0;i<numcars;i++)
{
var busca=cad1.charAt(i);
var on_es=posi.indexOf(busca);

torna+=canv.charAt(on_es);
}
return (torna);
}

function ndias(mes,anyacheck)
{
var numMes=parseInt(mes,10);
var year=parseInt(anyacheck,10);

switch(numMes) {
case 2:
return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
break;
case 4:return(30);break;
case 6:return(30);break;
case 9:return(30);break;
case 11:return(30);break;
default:return(31);break;
}
}


function checkLon (texte,lon) 
{
if (texte.length<lon) return true;
return false;
} //end function

function IsNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return !IsNumber;
   
   }

function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

function validate(formData, jqForm, options) {
form = jqForm[0];
var formcapa;

if (typeof form.formcapa == "undefined"){formcapa='main';}
                   else {formcapa = form.formcapa.value; ;}
var arguments="";
var err="";
var col_err='#ff8a92';
for (var i=0; i<form.elements.length; i++) {
form.elements[i].style.backgroundColor='white';

if(form.elements[i].type=="checkbox"){
if (form.elements[i].checked==false) form.elements[i].value="";

}


switch(form.elements[i].id)
{
case 'texte':
if (checkLon(form.elements[i].value,2 )) { err+=form.elements[i].name + "\n"; 
form.elements[i].style.backgroundColor=col_err;
}
break;

case 'numero':
if (IsNumeric(form.elements[i].value )) { err+=form.elements[i].name + "\n"; 
form.elements[i].style.backgroundColor=col_err;
}
break;


case 'upload':
if (checkLon(form.elements[i].value,2 )) { err+=form.elements[i].name + "\n"; 
form.elements[i].style.backgroundColor=col_err;
}

break;

case 'atexte':
if (checkLon(form.elements[i].value,5 ))  { err+=form.elements[i].name + "\n"; 
form.elements[i].style.backgroundColor=col_err;
}

break;
case 'email':
if (!isEmail(form.elements[i].value ))  { err+=form.elements[i].name + "\n"; 
form.elements[i].style.backgroundColor=col_err;
}

break;

case 'captcha':
caps=form.elements[i].value.toUpperCase();
if (caps!= desencripta(form.elements[i-1].value)) { err+=form.elements[i].name + "\n"; 
form.elements[i].style.backgroundColor=col_err;
}
break;

case 'csenya':

if (checkLon(form.elements[i].value,4 )) { err+=form.elements[i].name + "\n"; 
form.elements[i].style.backgroundColor=col_err;
}
if (form.elements[i].value != form.elements[i+1].value){ err+=form.elements[i].name + "\n"; 
form.elements[i].style.backgroundColor=col_err;
}

break;

case 'rcsenya':
form.elements[i].style.backgroundColor=form.elements[i-1].style.backgroundColor;

break;


case 'data':
if (form.elements[i+1].value<1 || form.elements[i+1].value>12) //mes
 { err+=form.elements[i].name + "\n"; 
form.elements[i].style.backgroundColor=col_err;
}
if ( form.elements[i+2].value.length !=4)   //any
 { err+=form.elements[i].name + "\n"; 
form.elements[i].style.backgroundColor=col_err;
}
if(form.elements[i].value<1 || form.elements[i].value>ndias(form.elements[i+1].value,form.elements[i+2].value))
 { err+=form.elements[i].name + "\n"; 
form.elements[i].style.backgroundColor=col_err;
}

break;

case 'data_m':
form.elements[i].style.backgroundColor=form.elements[i-1].style.backgroundColor;

break;
case 'data_y':
form.elements[i].style.backgroundColor=form.elements[i-1].style.backgroundColor;

break;

case 'submit':
todisable=i;
break;
}
arguments+= form.elements[i].name + '=' +form.elements[i].value + '&';
}

if (err!="") {
//alert ('Debes corregir:\n'+err);
alert (form.msg_err.value );
			 return false;
			 }


 return true;
}


