// JavaScript Document
// by Pica

function checkForm(f, mFields){
	var msg = "";
	
	// FILLED
	if(mFields.filled){
		var notFilleds = Array();
		for(var i=0;i<mFields.filled.length;i++){
			if(mFields.filled[i]!=null){
				var val=f[mFields.filled[i][0]].value;
				if(!checkFill(val)){
					notFilleds.push(mFields.filled[i][1]);
				}
			}
		}
		if(notFilleds.length>0){
			msg += "Debe completar los siguientes campos:\n";
			for(var i=0;i<notFilleds.length;i++){
				msg += " - "+notFilleds[i]+"\n";
			}
		}
	}
	
	// QUOTES
	if(mFields.wQuotes){
		var withQuotes = Array();
		for(var i=0;i<mFields.wQuotes.length;i++){
			if(mFields.wQuotes[i]!=null){
				var val=f[mFields.wQuotes[i][0]].value;
				if(!checkQuotes(val)){
					withQuotes.push(mFields.wQuotes[i][1]);
				}
			}
		}
		if(withQuotes.length>0){
			msg += "Los siguientes campos no deben poseer comillas simples:\n";
			for(var i=0;i<withQuotes.length;i++){
				msg += " - "+withQuotes[i]+"\n";
			}
		}
	}
	
	// COMAS
	if(mFields.noComa){
		var withComas = Array();
		for(var i=0;i<mFields.noComa.length;i++){
			if(mFields.noComa[i]!=null){
				var val=f[mFields.noComa[i][0]].value;
				if(!checkComas(val)){
					withComas.push(mFields.noComa[i][1]);
				}
			}
		}
		if(withComas.length>0){
			msg += "Los siguientes campos no deben poseer comas, sino puntos:\n";
			for(var i=0;i<withComas.length;i++){
				msg += " - "+withComas[i]+"\n";
			}
		}
	}
	
	// MAIL
	if(mFields.mbMail){
		var isnotMail = Array();
		for(var i=0;i<mFields.mbMail.length;i++){
			if(mFields.mbMail[i]!=null){
				var val=f[mFields.mbMail[i][0]].value;
				if(!checkEmail(val)){
					isnotMail.push(mFields.mbMail[i][1]);
				}
			}
		}
		if(isnotMail.length>0){
			msg += "El siguiente campo debe poseer un E-mail correcto:\n";
			for(var i=0;i<isnotMail.length;i++){
				msg += " - "+isnotMail[i]+"\n";
			}
		}
	}
	
	// INTEGERS
	if(mFields.mbInt){
		var mustbeint = Array();
		for(var i=0;i<mFields.mbInt.length;i++){
			if(mFields.mbInt[i]!=null){
				var val=f[mFields.mbInt[i][0]].value;
				if(!checkInt(val)){
					mustbeint.push(mFields.mbInt[i][1]);
				}
			}
		}
		if(mustbeint.length>0){
			msg += "Los siguientes campos deben contener solo numeros:\n";
			for(var i=0;i<mustbeint.length;i++){
				msg += " - "+mustbeint[i]+"\n";
			}
		}
	}
	
	// PullDown
	if(mFields.mbSel){
		var mustbesel = Array();
		for(var i=0;i<mFields.mbSel.length;i++){
			if(mFields.mbSel[i]!=null){
				var val=f[mFields.mbSel[i][0]].value;
				if(!checkSel(val)){
					mustbesel.push(mFields.mbSel[i][1]);
				}
			}
		}
		if(mustbesel.length>0){
			msg += "Debe seleccionar una opción en los siguientes campos:\n";
			for(var i=0;i<mustbesel.length;i++){
				msg += " - "+mustbesel[i]+"\n";
			}
		}
	}
	
	// CheckBox Group
	if(mFields.mbOne){
		for(var i=0;i<mFields.mbOne.length;i++){
			if(mFields.mbOne[i]!=null){
				var fie=mFields.mbOne[i][0];
				var noneSel = true;
				for(var j=0;j<fie.length && noneSel;j++){
					if(f[fie][j]){
						if(f[fie][j].checked==true){
							noneSel = false;
						}
					}
				}
				if(noneSel){
					msg += "Debe seleccionar al menos una opción de: "+mFields.mbOne[i][1]+"\n";
				}
			}
		}
	}
	
	// derivar.asp
	if(mFields.mbSync){
		for(var i=0;i<mFields.mbOne.length;i++){
			var fie=mFields.mbOne[i][0];
			var noneSel = true;
			for(var j=0;j<fie.length && noneSel;j++){
				if(f[fie][j]){
					if(f[fie][j].checked==true){
						noneSel = false;
					}
				}
			}
			if(noneSel){
				msg += "Debe seleccionar al menos una opción de: "+mFields.mbOne[i][1]+"\n";
			}
		}
	}
	if(mFields.wQuotesSec){
		var withQuotes = Array();
		for(var i=0;i<mFields.wQuotesSec.length;i++){
			var val=f[mFields.wQuotesSec[i][0]].value;
			if(!checkQuotes(val)){
				withQuotes.push(mFields.wQuotesSec[i][1]);
			}
		}
		if(withQuotes.length>0){
			msg += "El mensaje no debe contener comillas:\n";
			for(var i=0;i<withQuotes.length;i++){
				msg += " - "+withQuotes[i]+"\n";
			}
		}
	}
	
	//END
	if(msg.length>0){
		alert(msg);
		return false;
	}else{
		return true;
	}
}

function checkFill(v){
	val = v+"";
	return val.length>0;
}

function checkQuotes(v){
	val = v+"";
	return val.indexOf("'")<0;
}

function checkComas(v){
	val = v+"";
	return val.indexOf(",")<0;
}

function checkInt(v){
	val = ""+v;
	if(val.length>0){
		return !isNaN(v);
	}
	return true
}

function checkSel(v){
	return v!=0;
}


function checkEmail(v){
	if(v.indexOf("@")<=0){
		return false;
	}else if(v.indexOf("@")!=v.lastIndexOf("@")){
		return false;
	}else if(v.lastIndexOf("@")>=v.length-1){
		return false;
	}else if(v.indexOf(".")<=0){
		return false;
	}else if(v.lastIndexOf(".")>=v.length-2){
		return false;
	}else if(v.lastIndexOf(".")<v.indexOf("@")){
		return false;
	}else if(v.charAt(v.lastIndexOf("@")+1)=="."){
		return false;
	}else if(v.indexOf(" ")>=0){
		return false;
	}
	return true;
}
function changeStatus(w, s){
	w.disabled=s;
	if(!s){
		switch(w.name){
			case "institucionresidencia":
				fields['filled'][8]=Array("institucionresidencia","Institución - Residencia");
				break;
			case "institucionespecialidad":
				fields['filled'][9]=Array("institucionespecialidad","Institución - Título de Especialista");
				break;
			case "egresoespecialista":
				fields['filled'][10]=Array("egresoespecialista","Año de Egreso - Título de Especialista");
				fields['mbInt'][4]=Array("egresoespecialista","Año de Egreso - Título de Especialista");
				break;
		}
	}else{
		switch(w.name){
			case "institucionresidencia":
				delete fields['filled'][8];
				break;
			case "institucionespecialidad":
				delete fields['filled'][9];
				break;
			case "egresoespecialista":
				delete fields['filled'][10];
				delete fields['mbInt'][4];
				break;
		}
	}
}


