// Versão 1.1
/***********************************************
* 	HISTÓRICO DE ALTERAÇÕES
* 18/07/2005 alanbraz: Checando se existe espaço no campo email
* 20/07/2005 alanbraz: Corrigindo Bug do zero no dia e no mês da Data
*************************************************/

var monthLength = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

/***********************************************
* Required field(s) validation v1.10- By NavSurf
* Visit Nav Surf at http://navsurf.com
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
function checkDate(valor)
{
	var x = valor.split("/");
	 if (x.length != 3)
	 {
	 	return false;
	 }
	 	
	var day		= x[0]; //parseInt(x[0]);//name+"_day"].options[x[name+"_day"].selectedIndex].value);
	var month 	= x[1]; //parseInt(x[1]);//name+"_month"].options[x[name+"_month"].selectedIndex].value);
	var year 		= x[2]; //parseInt(x[2]);//name+"_year"].options[x[name+"_year"].selectedIndex].value);

	var now = new Date();
	esseAno = now.getFullYear();
	//alert(x.length+' dia='+x[0]+' mes='+x[1]+' ano='+x[2]+' : '+esseAno);
	//alert('dia='+day+' mes='+month+' ano='+year+' : '+esseAno);
	//alert('dia?'+isNaN(day)+' mes?'+isNaN(month)+' ano?'+isNaN(year)+' ?'+(year<esseAno) )
	
	if (isNaN(day) || isNaN(month) || isNaN(year) /*|| year < esseAno*/)
	{
		//alert("tudo"); 
		return false;
	}
		
	if (year/4 == parseInt(year/4))
	{
		monthLength[1] = 29;
	}
		
	if (month < 1 || month > 12)
	{
		//alert("mes"+month);
		return false;
	}
		
	if (day > monthLength[month-1])
	{
		//alert("dia no mes"); 
		return false;
	}
	monthLength[1] = 28;

	return true;

}

function formCheck(formobj,fieldRequired){
	// Enter name of mandatory fields
	//var fieldRequired = Array("res1", "res2", "res3", "res4", "res5","data");
	// Enter field description to appear in the dialog box
	//var fieldDescription = Array("Questão 1", "Questão 2","Questão 3","Questão 4","Questão 5","Data");
	// dialog message
	var obrigatorio = " é obrigatório.";
	var alertMsg = "Erro ao enviar formulário:\n";
	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		var rotulo = obj.id;
		if (obj){
		if (obj.disabled==false){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
					alertMsg += " - " + rotulo + obrigatorio + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + rotulo + obrigatorio + "\n";
				}
				break;				
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + rotulo + obrigatorio + "\n";
				}
				break;
			default: break;
			}//switch type
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + rotulo + obrigatorio + "\n";
				}
			}//if
			//rotulo = obj.alt;
			if (obj.value!="") {
				switch(obj.alt){
					case "data":
						if (!checkDate(obj.value))
							alertMsg += " - " + rotulo + " deve conter uma data válida.\n";
						break;
					case "email":
						var reEmail1 = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)* @(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
						var reEmail2 = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
						var reEmail3 = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
						var p = obj.value.indexOf('@');
						//if (p<1 || p==(obj.value.length-1)) 
						if (!reEmail3.test(obj.value))
							alertMsg +=' - '+rotulo+' deve ser um endereço de e-mail.\n';
						break;
					case "numero":
						if (isNaN(obj.value)) 
							alertMsg +=' - '+rotulo+' deve ser um número.\n';
					break;
					case "minutos":
						if (isNaN(obj.value) || (obj.value < 0) || (obj.value >= 60)) 
							alertMsg +=' - '+rotulo+' deve ser um número entre 0 e 59.\n';
					break;
					default: break;
				}
				/*if (obj.alt != "" && obj.alt.indexOf('entre') != -1) { 
			  		p=obj.alt.indexOf(':');
          			min=obj.alt.substring(6,p); max=obj.alt.substring(p+1);
          	  		if (num<min || max<num) 
			  			alertMsg += ' - '+rotulo+' deve ser um número entre '+min+' e '+max+'.\n';
			    }*/
			}
			
		}//Se obj
		}//Se disabled
	}//for 
	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		//alert(Local_abiquim.disabled);
		return false;
	}
	/*if (alertMsg) alert('Atenção!\n'+alertMsg);
  	return = (alertMsg == '');*/
}

function radioCheck(formobj,fieldRequired,fieldDescription){

	var alertMsg = "Selecione uma das opções dos campos:\n";
	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		var rotulo = fieldDescription[i];
		if (obj){
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + rotulo + "\n";
				}
			}//if
		}
	}//for

	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		//alert('a');
		return false;
	}
}

