/*JavaScript per validar el formulari*/

/**************************** VALIDACIO GENERAL DEL FORMULARI *************************************/

function validarBusquedaFotos(){
	var miss = "";	
	
	miss = unaParaulaOBuit("paraulaclau","palabra clave"); //validem que hi hagi una sola paraula
	var dataDe = esBuit("data_de", "fecha inicial");
	if(dataDe==""){ miss += validarData("data_de", "fecha inicial");} //validem la data inicial
	var dataFins = esBuit("data_fins", "fecha final");
	if(dataFins==""){
		miss += validarData("data_fins", "fecha final"); // validem la data final
		miss += validaDataFiInici("data_de", "data_fins") //validem que la data final sigui inferior a la inicial
	} 
	if (miss.length>0) alert(miss);
	return (miss.length==0);
}

// VALIDAR NOTICIA +++++++++++++++++++

function validarNoticia(){
	var miss = "";	
		if(tinyMCE) tinyMCE.triggerSave();	
	
	miss = esBuit("titul", "títol en castellà");
	miss += esBuit("autor", "autor");
	miss += esBuit("noticia", "noticia en castellà");
	miss += esBuit("titul_ca", "títol en català");
	miss += esBuit("noticia_ca", "noticia en català");
	miss += validarData("data", "data");
	
	if (miss.length>0) alert(miss);
	return (miss.length==0);
}

// VALIDAR LINK +++++++++++++++++++

function validarLink(){
	var miss = "";	
	
	miss = esBuit("nom", "nom");
	miss += esBuit("link", "link");
	miss += esBuit("desc", "descripcio");
	if(document.getElementsByName("categ")[0].value=="null"){
		miss += "- Si us plau, indica la categoria del link";
	}
	if (miss.length>0) alert(miss);
	return (miss.length==0);
}

// VALIDAR PROJECTE +++++++++++++++++++

function validarProj(){
	var miss = "";	
	
	miss = esBuit("titol", "titol en castellà");
	miss += esBuit("subtitol", "subtitol en castellà");
	miss += esBuit("titol_ca", "titol en català");
	miss += esBuit("subtitol_ca", "subtitol en català");
	
	if (miss.length>0) alert(miss);
	return (miss.length==0);
}

// VALIDAR CARPETA +++++++++++++++++++

function validarCarpeta(){
	var miss = "";	
	
	miss = esBuit("nom", "nom en castellà");
	miss += esBuit("desc", "descripció en castellà");
	miss += esBuit("nom_ca", "nom en català");
	miss += esBuit("desc_ca", "descripció en català");
	miss += validarData("data", "data");
	
	if (miss.length>0) alert(miss);
	return (miss.length==0);
}

/***************************************************************************************************/

/***************************** Comprova que el camp estigui buit o només tingui una paraula *******************************/

function validaDataFiInici(di, df){
		var dataini = document.getElementsByName(di)[0];
		dataI = dataini.value.split("/");
		diaI = parseInt(dataI[0],10);
		mesI = parseInt(dataI[1],10);
		anyI = parseInt(dataI[2]);
		var datafi = document.getElementsByName(df)[0];
		dataF = datafi.value.split("/");
		diaF = parseInt(dataF[0],10);
		mesF = parseInt(dataF[1],10);
		anyF = parseInt(dataF[2]);
		var miss="";
		if( (anyF<anyI) || (mesF<mesI && anyF==anyI) || (diaF<diaI && mesF==mesI && anyF==anyI) )
		{miss= "La fecha final no puede ser mayor a la inicial";}
		return miss;
}


/***************************** Comprova que el camp estigui buit o només tingui una paraula *******************************/

function unaParaulaOBuit(s, nom){
	var txt = document.getElementsByName(s)[0];
	var miss = "";
	if (/^\s*$/.test(txt.value)){} //esta buit
	else if (/^\w*$/.test(txt.value)){} //una sola paraula
	else{ miss = "- El campo "+nom+" debe tener un solo atributo.\n"}
	return miss;
}

/**************************** VALIDACIO GENERAL DEL FORMULARI *************************************/

function validarNomesMail(){	
	var miss = "";	
	miss = validarMail("email");
	if (miss.length>0) alert(miss);
	return (miss.length==0);
}

/***************************************************************************************************/


/***************************** Comprova que el camp no estigui buit *******************************/

function esBuit(s, nom){
	var txt = document.getElementsByName(s)[0];
	var miss = "";
	if (/^\s*$/.test(txt.value)){
		miss = "- El "+nom+" es un campo obligatorio.\n"
	}
	return miss;
}


/**************************** Validem l'e-mail tingui @ . i tingui extensio valida  *********************************/

function validarMail(camp){
	var miss = "";
	var val = document.getElementsByName(camp)[0];
	if(/^\w+([\.-]?\w+)*@\w*.\w{2,3}$/.test(val.value)){
		var punt = val.value.lastIndexOf(".");
		var fi = val.value.length;
		var ext = val.value.substring(punt+1,fi);
		if(!(/^com|net|org|cat|es|edu|biz|it|info|eu|mobi|ws|cc|tv|com.es|nom.es|org.es|uk|ca|de$/.test(ext))){
			miss="- El mail indicado no tiene una extensión valida.\n";
		}
	}else{
		miss="- Por favor, entra un mail valido\n";
	}
	return miss;
}



/***************************************** Validar data ********************************************/

function validarData(camp, nomCamp){
	var dataEntrada = document.getElementsByName(camp)[0];
	var miss="";
	/* Primer comprovem que s'ha entrat el format correcte*/
	if(/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/.test(dataEntrada.value)) {
		/* Ara validarem que l'any, mes i dia siguin correctes*/
		dataEntr = dataEntrada.value.split("/");
		dia = parseInt(dataEntr[0],10);
		mes = parseInt(dataEntr[1],10);
		any = parseInt(dataEntr[2]);
		
		var d = new Date(any,mes,dia);
		if(!(d.getDate() == dia && d.getMonth() == mes && d.getFullYear() == any)){
			miss = "La data entrada en el camp "+nomCamp+" no es valida.\n";
		}
	}
	else{
		miss="El format de la data ha de ser dd/mm/aaaa.\n";
	}
	return miss;
}



/**************************** Validem que s'hagin clicat minim 2 opcions *********************************/

function validaClicats(camp, nomCamp, num){
	/* Comprova que s'hagin sel?leccionat 2 o m?s opcions del checkbox */
	var sel = 0;
	var miss = "";
	var chks = document.getElementsByName(camp);
	for(var i=0; i<chks.length && sel<num; i++) {
		if(chks[i].checked) { sel++; }
	}
	if (sel<num) { miss = "Has de seleccionar "+num+" o mes "+ nomCamp+".\n"; }
	return miss;
}




/**************************** Validem que s'hagin seleccionat minim 2 opcions *********************************/

function validaSelec(camp, nomCamp, num){
	/* Comprova que s'hagin sel.leccionat 2 o mes opcions de la llista */
	var sel = 0;
	var miss = "";
	var chks = document.getElementsByName(camp)[0];
	for(var i=0; i<chks.options.length && sel<num; i++) {
		if(chks.options[i].selected) { sel++; }
	}
	if (sel<num) { miss = "Has de seleccionar "+num+" o mes "+ nomCamp+".\n"; }
	return miss;
}
