var JS_MESSAGE_ALERT_TOTSOBLIG = "Tots els camps són obligatoris";
var JS_MESSAGE_ALERT_CAMPSBUITS = "No has introduït cap condició de cerca";
var JS_MESSAGE_ALERT_CONDGENERIQUES = "Condicions massa generiques";
var JS_MESSAGE_ALERT_INIERROR_MAJ = "El camp ";
var JS_MESSAGE_ALERT_INIERROR_MIN = ", el camp ";

var JS_MESSAGE_ALERT_ALFA = " no és alfanumèric";
var JS_MESSAGE_ALERT_NUM = " no és numèric";
var JS_MESSAGE_ALERT_DATA = "no té el format correcte dd/mm/aaaa";
var JS_MESSAGE_ALERT_ANY = " no té el format correcte: aaaa";
var JS_MESSAGE_ALERT_MAIL = " no és un format de mail correcte";


function enviaInfo(totsObligatoris){

    var missatge="";
    var noCondicions = false;
    var error=0;
    var params=0;
    var buits=0;
    var longTotal=0;
    var j=0;
    var numParams = document.FormCerca.elements.length;

    document.FormCerca.action="http://campusglobal.upf.edu/SAU/SVSAUCercaTelfPublic?ACCIO=CONS";

    document.FormCerca.target="_self";
    for (j = 0; j<numParams; j++){
        nom = document.FormCerca.elements[j].name.split("|");
        // nom[0] -> QUERY indica que es un dels parametres per a la cerca
        // nom[1] -> nom del parametre de cerca
        // nom[2] -> tipus del parametre (ALFA, NUM, MAIL, DATA, ANY)
        if (nom[0] == "QUERY"){
            params++;
            if (esVacio(document.FormCerca.elements[j].value)){
                buits++;
            }else {
                valor = document.FormCerca.elements[j].value;
                var re = new RegExp ('[*]', 'g');
                valor = valor.replace(re, '');
                longTotal = longTotal+valor.length;
                if (nom[2] == null){
                }else if (nom[2] == "ALFA"){
                	if(!esAlfa(document.FormCerca.elements[j].value)) {
                    	if (error) missatge=missatge+JS_MESSAGE_ALERT_INIERROR_MIN+nom[1]+JS_MESSAGE_ALERT_ALFA;
                    	else  missatge=missatge+JS_MESSAGE_ALERT_INIERROR_MAJ+nom[1]+JS_MESSAGE_ALERT_ALFA;
                    	error++;
                    }
                }else if(nom[2] == "NUM"){
                	if(!esCadenaEnteroPos(document.FormCerca.elements[j].value)) {
                    	if (error) missatge=missatge+JS_MESSAGE_ALERT_INIERROR_MIN+nom[1]+JS_MESSAGE_ALERT_NUM;
                    	else  missatge=missatge+JS_MESSAGE_ALERT_INIERROR_MAJ+nom[1]+JS_MESSAGE_ALERT_NUM;
                    	error++;
                    }
                }else if(nom[2] == "DATA"){
                    if(!EsData(document.FormCerca.elements[j].value)) {
                    	if (error) missatge=missatge+JS_MESSAGE_ALERT_INIERROR_MIN+nom[1]+JS_MESSAGE_ALERT_DATA;
                    	else  missatge=missatge+JS_MESSAGE_ALERT_INIERROR_MAJ+nom[1]+JS_MESSAGE_ALERT_DATA;
                    	error++;
                    }
                }else if(nom[2] == "ANY"){
                    if(!EsAny(document.FormCerca.elements[j].value)) {
                        if (nom[1] == "ANYNAIX") nom[1] = "Any de naixement";
                    	if (error) missatge=missatge+JS_MESSAGE_ALERT_INIERROR_MIN+nom[1]+JS_MESSAGE_ALERT_ANY;
                    	else  missatge=missatge+JS_MESSAGE_ALERT_INIERROR_MAJ+JS_MESSAGE_ALERT_ANY;
                    	error++;
                    }
                }else if(nom[2] == "MAIL"){
                	if(!esEmail(document.FormCerca.elements[j].value)) {
                    	if (error) missatge=missatge+JS_MESSAGE_ALERT_INIERROR_MIN+nom[1]+JS_MESSAGE_ALERT_MAIL;
                    	else  missatge=missatge+JS_MESSAGE_ALERT_INIERROR_MAJ+nom[1]+JS_MESSAGE_ALERT_MAIL;
                    	error++;
                    }
                }
            }

        }
    }
    
    if (longTotal<2){
        error++;
        missatge = JS_MESSAGE_ALERT_CONDGENERIQUES;
    }
    if (totsObligatoris == 0){
        //Si es 0 es q NO, llavors llencem error si tots estan buits
        if (buits == params) {
            if ((document.FormCerca.AUTORIT != null) && (document.FormCerca.CONFERENCIANT != null)){
                if (esVacio(document.FormCerca.AUTORIT.value) && esVacio(document.FormCerca.CONFERENCIANT.value)){
                    window.alert(JS_MESSAGE_ALERT_CAMPSBUITS);
                }
            }else{
                window.alert(JS_MESSAGE_ALERT_CAMPSBUITS);
                //No has introduit cap condició de cerca
            }
        }else if (error > 0){ 
            window.alert(missatge);
        }else {
            document.FormCerca.submit();
        }
    } else {
        //Si es 1 es q SI, llavors llencem error si el numero de parametres buits > 0
        if (buits > 0){
            window.alert(JS_MESSAGE_ALERT_TOTSOBLIG);
        }else if (error > 0){ 
            window.alert(missatge);
        }else {
            document.FormCerca.submit();
        }
    }
}

function openHelp(){
    params = recuperaParams();
    obrirFinestra('/NASApp/SAUTelefons/SVSTHelp?IDIOMA=ca&CSS=_CG&PUBLICA=SI'+params,'Ajuda');
//    document.FormCerca.action="/NASApp/SAUTelefons/SVSTHelp";
//    document.FormCerca.target="nova";
//    document.FormCerca.submit();
}

function recuperaParams(){
    var params="";
    inputs = document.getElementsByTagName("input");
    for (i=0; i<inputs.length; i++){
        if (inputs[i].id != null){
            nom = inputs[i].id.split("|");
            if (nom[0]=="QUERY") params = params+"&"+inputs[i].id+"=";
        }
	}
    selects = document.getElementsByTagName("select");
    for (i=0; i<selects.length; i++){
        if (selects[i].id != null){
            nom = selects[i].id.split("|");
            if (nom[0]=="QUERY") params = params+"&"+selects[i].id+"=";
        }
	}
    return params;    
}

function blockEnter(evt) {
    evt = (evt) ? evt : event;
    var charCode = (evt.charCode) ? evt.charCode :
        ((evt.which) ? evt.which : evt.keyCode);
    if (charCode == 13 || charCode == 3) {
        enviaInfo(0);
    }
}

function esAlfa(str) {
 
     var valido = true;
     str += "";			// convierte a cadena

     // bucle letra a letra. Si encuentra un caracter no alfa, sale
     for (i = 0; i < str.length; i++) {
	 if ( !( ((str.charAt(i) >= "a") && (str.charAt(i) <= "z")) ||
      	    ((str.charAt(i) >= "A") && (str.charAt(i) <= "Z")) ||
      	    ((str.charAt(i) >= "0") && (str.charAt(i) <= "9")) ||
      	    (str.charAt(i)==" ") || (str.charAt(i)=="\n") || (str.charAt(i)=="-") ||
      	    (str.charAt(i)=="á") || (str.charAt(i)=="é") || (str.charAt(i)=="ó") ||
      	    (str.charAt(i)=="à") || (str.charAt(i)=="è") || (str.charAt(i)=="ò") ||
      	    (str.charAt(i)=="ú") || (str.charAt(i)=="í") || (str.charAt(i)=="ü") ||
      	    (str.charAt(i)=="ï") || (str.charAt(i)=="Á") || (str.charAt(i)=="É") || 
	        (str.charAt(i)=="Ó") || (str.charAt(i)=="ª") || (str.charAt(i)=="º") ||
      	    (str.charAt(i)=="À") || (str.charAt(i)=="È") || (str.charAt(i)=="Ò") ||
      	    (str.charAt(i)=="Ú") || (str.charAt(i)=="Í") || (str.charAt(i)=="Ü") ||
      	    (str.charAt(i)=="Ï") || (str.charAt(i)=="Í") || (str.charAt(i)=="Ü") ||
	        (str.charAt(i)==".") || (str.charAt(i)=="´") || (str.charAt(i)=="*") || 
	        (str.charAt(i)=="ñ") || (str.charAt(i)=="Ñ") || (str.charAt(i)=="·") ||
	        (str.charAt(i)=="ç") || (str.charAt(i)=="Ç") || (str.charAt(i)=="_")
      	    ) ) {
             valido = false;
	     
             break;			// sale del bucle

      	}

     } // fin del bucle
   
     return valido;
}  // fin de la función

function esVacio(strValor){

   if (strValor == "" || strValor == null || strValor == "*"){ // no hay nada
	   return true						
   }
   return false
} // Fin de la función

function getDiasdelMes(mes,any)  {

    var days=0;
    var month = mes;//mes entre 1 y 12
    var year  = any;

    if (month==1 || month==3 || month==5 || month==7 || month==8 ||
        month==10 || month==12)  {
        days=31;
    }
    else if (month==4 || month==6 || month==9 || month==11) {
        days=30;
    }
    else if (month==2)  {
        if (esBisiesto(year)) {
            days=29;
        }
        else {
            days=28;
        }
    }
    return (days);
}


function esBisiesto (Year) {
	if (Year=="") return false;
    if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0)) {
        return (true);
    }
    else {
        return (false);
    }
}

function EsData2(dia,mes,any) {

  if (esCadenaEnteroPos(dia) && esCadenaEnteroPos(mes) && esCadenaEnteroPos(any))
   {
   	 numdia=new Number(dia);
   	 nummes=new Number(mes);
   	 numany=new Number(any);
   	 if (numdia<=getDiasdelMes(nummes,numany) && numdia>0 && mes>0) return true;
   	 else{
		
 		return false;
	 }
   	 return true;
   }
  else return false;


}  // fin de la función EsData

function EsData(str) {

  any="";
  mes="";
  dia="";
  j=0;

  aux="";
  for(i=0;i<str.length;i++){
   if (str.charAt(i)=="/") {
     dia=aux;
     aux="";
     j=i+1;
     break;
   }
   else
     aux=aux+str.charAt(i);
  }

  for(i=j;i<str.length;i++){
   if(str.charAt(i)=="/"){
     mes=aux;
     aux="";
     j=i+1;
     break;
   }
   else
     aux=aux+str.charAt(i);
  }


  for(i=j;i<str.length;i++){
    any=any+str.charAt(i);
  }
//  if(dia.length!=2) return false;
//  if(mes.length!=2) return false;
  if(any.length!=4) return false;

  if (esCadenaEnteroPos(dia) && esCadenaEnteroPos(mes) && esCadenaEnteroPos(any)) {
   	 numdia=new Number(dia);
   	 nummes=new Number(mes);
   	 numany=new Number(any);
   	 if (numdia<=getDiasdelMes(nummes,numany)&& numdia>0 && mes>0) return true;
   	 else {
 		return false;
	 }
   	 return true;
   }
  else return false;
   	 return true;


}  // fin de la función EsData

function EsAny(any) {

  if(any.length!=4) return false;

  if (esCadenaEnteroPos(any)) {
   	 return true;
  }else {
    return false;
  }
}  // fin de la función EsAny

function esCadenaEnteroPos(strValor) {
 if (esVacio(strValor)) return false;
 for (var j=0; j < strValor.length; j++)		// recorrer letra a letra
    {
    var letra = strValor.charAt(j)			// letra actual
    if (letra < "0" || letra > "9")		// no es nuemro
       {
       return false				// devuelve falso y sale
       }
    } // Fin del bucle
 return true
} // Fin de la funcion

function esEmail(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,3}|[0-9]{1,3})(\\]?)$");

  return (!r1.test(str) && r2.test(str));
}

function esNumero(strValor) {
 if (esVacio(strValor)) return false;
 for (var j=0; j < strValor.length; j++)		// recorrer letra a letra
    {
    var letra = strValor.charAt(j)			// letra actual
    if (letra < "0" || letra > "9")		// no es nuemro
       {
       return false				// devuelve falso y sale
       }
    } // Fin del bucle
return true
} // Fin de la funcion

function esReal(strValor) {
 
var cont=0;
for (var j=0; j < strValor.length; j++)		// recorrer letra a letra
    {
    var letra = strValor.charAt(j);		// letra actual

    if ((letra < "0" || letra > "9") && letra!=".")   // no es nuemro
       {
        return false				// devuelve falso y sale
       }
    else{
      if(letra=="."){ cont++;
		      if(cont>1) return false;
 		      	
		      if(j==strValor.length-1) return false;
		     }
    }
    } // Fin del bucle

return true
} // Fin de la funcion

function obrirFinestra(website,titol){
   	finestra = window.open(website, titol, "alwaysLowered=yes,dependent=yes,toolbar=no,scrollbars=yes,resizable=yes,width=660,height=550, left="+eval((screen.width/2)-(760/2))+",top="+eval((screen.height/2)-(500/2)));
    finestra.focus();
}
