/* Requires StringUtils.js */

function isEmptyString(strString)	{
	return Trim(strString) == "";
}

function isInt(strString)	{
	var strValidChars = "0123456789";
	var strChar;
	var blnResult = true;
	
	//test strString consists of valid characters listed above
	for (i = 0; i < strString.length && blnResult == true; i++)
	{
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1)
		{
			blnResult = false;
		}
	}
	return blnResult;
}

function isDecimal(strString){
	var strValidChars = "0123456789.,";
	var strChar;
	var blnResult = true;
  
	for (i = 0; i < strString.length && blnResult == true; i++){
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1) {
			blnResult = false;
		}
	}
	return blnResult;
}

function virtualKeyPressed(field, event, extraCods) {
	//extraCods: lista de caracteres q são aceites
	var intCharCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	
	strCods = new String("48,49,50,51,52,53,54,55,56,57");
	
	if(extraCods != "" && extraCods != undefined){
		arrCods = extraCods.split(",");		
		for(i=0; i!=arrCods.length; i++){
			strCods += "," + (arrCods[i].charCodeAt(0));
		}
	}	
	
	if(strCods.indexOf(intCharCode) == -1){
		event.returnValue = false;
	}
}

function isEmail(strString){
	reg = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;

	if(!reg.test(strString)){
		return false;
	}

	return true;
}

function isData(ano, mes, dia, txt){
	if(ano.value.length != 0 || mes.value.length != 0 || dia.value.length != 0){
		if(ano.value.length < 4 || !(isInt(ano.value))) {
			alert("O ano de " + txt + " tem de ser preenchido com valores numéricos. \nPreencha, por favor o ano de " + txt + "  correctamente.");
			ano.focus();
			return false;
		}	

		var data_actual = new Date();
	    var ano_actual = 1900 + data_actual.getYear();

		if(ano.value < 1900 || ano.value > ano_actual){
			alert("Por favor, preencha o ano de " + txt + " correctamente.");
			ano.focus();
			return false;
		}

		if(mes.value == 0 || mes.value.length == 0 || !(isInt(mes.value))) {
			alert("O mês de " + txt + " tem de ser preenchido com valores numéricos. \nPreencha, por favor a o mes de " + txt + " correctamente.");
			mes.focus();
			return false;
		}
		
		if(mes.value > 12){
			alert("Por favor, preencha o mês de " + txt + " correctamente.");
			mes.focus();
			return false;
		}
		
		if(dia.value == 0 || dia.value.length == 0 || !(isInt(dia.value))) {
			alert("O dia de " + txt + " tem de ser preenchido com valores numéricos. \nPreencha, por favor a o dia de " + txt + " correctamente.");
			dia.focus();
			return false;
		}
		
		if(mes.value == "01" || mes.value == "1" || mes.value == "03" || mes.value == "3" || mes.value == "05" || mes.value == "5" || mes.value == "07" || mes.value == "7" || mes.value == "08" || mes.value == "8" || mes.value == "10" || mes.value == "12"){
			if(dia.value > 31){
				alert("Por favor, preencha o dia de " + txt + " correctamente.");
				dia.focus();
				return false;
			}
		} 
		
		if(mes.value == "02" || mes.value == "2" ){
			if(dia.value > 29){
				alert("Por favor, preencha o dia de " + txt + " correctamente.");
				dia.focus();
				return false;
			}	
		} 	

		if(mes.value == "04" || mes.value == "4" || mes.value == "06" || mes.value == "6" || mes.value == "09" || mes.value == "9" || mes.value == "11"){
			if(dia.value > 30){
				alert("Por favor, preencha o dia de " + txt + " correctamente.");
				dia.focus();
				return false;
			}
		} 
	}
	return true;
}

function isEndereco(cod4, cod3, loc){

	if((cod4.value.length != 0) && ((cod4.value.length < 4) || !(isInt(cod4.value)))) {
		alert("O campo Código postal tem de ser preenchido com valores numéricos. \nPreencha, por favor a o código postal correctamente.");
		cod4.focus();
		return false;
	}
 	
	if(((cod3.value.length != 0) && (cod3.value.length < 3))  || !(isInt(cod3.value))) {
		alert("O campo Código postal tem de ser preenchido com valores numéricos. \nPreencha, por favor a o código postal correctamente.");
		cod3.focus();
		return false;
	}

	if(cod4.value.length != 0 && loc.value.length == 0){
		alert("Por favor, preencha a Localidade.");
		loc.focus();
		return false;
	}
	
	if(cod4.value.length == 0 && loc.value.length != 0){
		alert("Por favor, preencha o Código Postal.");
		cod4.focus();
		return false;
	}
	
	return true;
}

function isPhoneNumber(strString){
	var strValidChars = "0123456789/ ";
	var strChar;
	var blnResult = true;
	
	//test strString consists of valid characters listed above
	for (i = 0; i < strString.length && blnResult == true; i++)
	{
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1)
		{
			blnResult = false;
		}
	}
	return blnResult;
}

function checkPedidosParams(){
	boolErro = false;
		
	reg = /^[\w-]+(\.[\w-]+)*@(([\w-]{2,63}\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
	
	document.getElementById('nome_error').style.height = "0px";        
	document.getElementById('nome_error').style.lineHeight = "0px";
	document.getElementById('nome_error').style.fontSize = "0px";
	document.getElementById('nome_error').innerHTML = "";        
	document.getElementById('nome').className = "font11";

	document.getElementById('telefone_error').style.height = "0px";        
	document.getElementById('telefone_error').style.lineHeight = "0px";
	document.getElementById('telefone_error').style.fontSize = "0px";
	document.getElementById('telefone_error').innerHTML = "";        
	document.getElementById('telefone').className = "font11";

	document.getElementById('email_error').style.height = "0px";        
	document.getElementById('email_error').style.lineHeight = "0px";
	document.getElementById('email_error').style.fontSize = "0px";
	document.getElementById('email_error').innerHTML = "";        
	document.getElementById('email').className = "font11";
	
	if(isEmptyString(document.getElementById('nome').value)) {
		document.getElementById('nome_error').style.paddingTop = "2px";
		document.getElementById('nome_error').style.lineHeight = "11px";
		document.getElementById('nome_error').style.fontSize = "10px";
		document.getElementById('nome_error').style.height = "15px";        
		document.getElementById('nome_error').innerHTML = "* Por favor, preencha o nome.";        
		document.getElementById('nome').className = "pesquisa_erro";
		boolErro = true;
    }

	if(Trim(document.getElementById('telefone').value).length < 9 || !(isInt(document.getElementById('telefone').value))) {
		document.getElementById('telefone_error').style.paddingTop = "2px";
		document.getElementById('telefone_error').style.lineHeight = "11px";
		document.getElementById('telefone_error').style.fontSize = "10px";
   		document.getElementById('telefone_error').style.height = "15px";        
		document.getElementById('telefone_error').innerHTML = "* O campo telefone deve ser preenchido com valores numéricos. Por favor, preencha correctamente o campo Telefone.";        
		document.getElementById('telefone').className = "pesquisa_erro";
		boolErro = true;

	}

	if(isEmptyString(document.getElementById('telefone').value)) {
		document.getElementById('telefone_error').style.paddingTop = "2px";
		document.getElementById('telefone_error').style.lineHeight = "11px";
		document.getElementById('telefone_error').style.fontSize = "10px";
   		document.getElementById('telefone_error').style.height = "15px";        
		document.getElementById('telefone_error').innerHTML = "* Por favor, preencha o telefone.";        
		document.getElementById('telefone').className = "pesquisa_erro";
		boolErro = true;
    }

	if(!isEmptyString(document.getElementById('email').value) && !reg.test(document.getElementById('email').value)){
		document.getElementById('email_error').style.paddingTop = "2px";
		document.getElementById('email_error').style.lineHeight = "11px";
		document.getElementById('email_error').style.fontSize = "10px";
		document.getElementById('email_error').style.height = "15px";        
		document.getElementById('email_error').innerHTML = "* Por favor, preencha o campo Email correctamente. ex: antonio@imocaixa.pt";        
		document.getElementById('email').className = "pesquisa_erro";
		boolErro = true;
	}

	if(boolErro){
		return false;
	}
  	return true;
}

function isRadioChecked(radioObjName) {
	radioObj = document.getElementsByName(radioObjName);
	
	if(!radioObj) return "";
	
	var radioLength = radioObj.length;
	if(radioLength == undefined && radioObj.checked) return true;
	
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) return true;
	}
	
	return false;
}

function getRadioCheckedValue(radioObjName) {
	radioObj = document.getElementsByName(radioObjName);

	if(!radioObj) return "";
	
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
			
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	
	return "";
}

