
function validate(form,lang,action,type) {
var errmsg='', errOut='', posn, ifocuselem, pass=true; valchk=false;
var checkpesqQuick
if (type=="hotel_ss"){
	 type="hotel";
	 checkpesqQuick=1; 
}else{
	 checkpesqQuick=0;
}
aErro = new Array(74);

switch (lang) {
	case "EN":
		aErro[0] = "\tThe title\n";
		aErro[1] = "\tYour first name\n";
		aErro[2] = "Please fill in all mandatory fields\n";
		aErro[3] = "\tYour last name\n";
		aErro[4] = "\tYour username\n";
		aErro[5] = "\tYour e-mail\n";
		aErro[6] = "\tYour request\n";		
		aErro[7] = "\tThe type of request\n";	
		aErro[8] = "\tThe password\n";
		aErro[9] = "\tThe passwords are not the same\n";
		aErro[10] = "\tYour telephone\n";
		aErro[11] = "\tYour area\n";
		aErro[12] = "\tYour country\n";
		aErro[13] = "\tYour postcode\n";		
		aErro[14] = "\tYour date of birth\n";				
		aErro[15] = "\tYour Gender\n";
		aErro[16] = "\tSelect your photo image\n";		
		aErro[17] = "\tYour name\n";
		aErro[18] = "\tThe receiver's name\n";		
		aErro[19] = "\tThe receiver's e-mail\n";	
		aErro[20] = "\tThe 'From' date of the event\n";	
		aErro[21] = "\tThe 'To' date of the event\n";
		aErro[22] = "\tYour message\n";
		aErro[23] = "\tPlease select an area.\n";
		aErro[24] = "\tPlease enter an arrival date.\n";
		aErro[25] = "\tPlease enter a departure date.\n";
		aErro[26] = "\tYour departure must be after your arrival date.\n";
		aErro[27] = "\tIt is not possible to make reservations in the past!\n";
		aErro[28] = " days from today.";
		aErro[29] = "\tPlease confirm you agree with the Privacy Policy\n";	
		aErro[30] = "\tPlease select a location.\n";	
		aErro[31] = "\tPlease select a date\n";	
		aErro[32] = "\tPlease select a departure time\n";	
		aErro[33] = "\tYour password\n";
		aErro[34] = "\tYour confirmation password\n";
		aErro[35] = "Enter Hotel or City Name (optional)";
		aErro[36] = "Or please enter hotel or city name";
		
		aErro[37] = "\tName of person responsible for E-Commerce\n";
		aErro[38] = "\tEmail of person responsible for E-Commerce\n";
		aErro[39] = "\tName of person responsible for extranet\n";
		aErro[40] = "\tEmail for reservations\n";
		aErro[41] = "\tExtranet username\n";
		aErro[42] = "\tExtranet password\n";
		aErro[43] = "\tExtranet password confirmation\n";
		aErro[44] = "\tHotel Name\n";
		aErro[45] = "\tHotel phone Number\n";
		aErro[46] = "\tMain Region\n";
		aErro[47] = "\tSub Region\n";
		aErro[48] = "\tLocation\n";
		aErro[49] = "\tIntrodution text\n";
		aErro[50] = "\tHotel details\n";
		aErro[51] = "\tFacilities text \n";
		aErro[52] = "\tRoom details\n";
		aErro[53] = "\tHotel policies\n";
		aErro[54] = "\tLocal information\n";
		aErro[55] = "\tConfirmation you agree with the terms of the contract\n";
		aErro[56] = "\tExtranet passwords are not the same\n";
		
		aErro[57] = "\tReview Title\n";
		aErro[58] = "\tReview\n";
		aErro[59] = "\tScore\n";
		aErro[60] = "\tType of Holiday maker\n";
		aErro[61] = "\tOnline Name\n";
		
		aErro[62] = "\tPlease enter another extranet username or password\n";
		aErro[63] = "\tRoom types\n";
		
		aErro[64] = "\tWith head office at\n";
		aErro[65] = "\tWith share capital of\n";
		aErro[66] = "\tTaxpayer number\n";
		aErro[67] = "\tRegistered with the commercial registry of\n";
		aErro[68] = "\tName of legal representative\n";
		aErro[69] = "Hotel or City Name (optional)";
		aErro[70] = "\tCompany Name\n";
		aErro[71] = "\tYour Name / Name Displayed to Readers\n";
		aErro[72] = "\tEmail Address\n";
		aErro[73] = "\tCountry of Residence\n";
		
	break;
	case "PT":
		aErro[0] = "\tTitulo\n";
		aErro[1] = "\tO seu primeiro nome\n";
		aErro[2] = "Por favor preencha todos os campos obrigatórios\n";
		aErro[3] = "\tO seu apelido\n";
		aErro[4] = "\tO seu nome de utilizador\n"; 
		aErro[5] = "\tO seu endereço de e-mail\n"; 
		aErro[6] = "\tO seu pedido\n";	
		aErro[7] = "\tO tipo de pedido\n";	
		aErro[8] = "\ta palavra-passe\n"; 
		aErro[9] = "\tas palavras-passe não são as mesmas\n"; 
		aErro[10] = "\tO seu telefone\n"; 
		aErro[11] = "\ta sua região\n"; 
		aErro[12] = "\tO seu país\n"; 
		aErro[13] = "\tO seu código postal\n";		
		aErro[14] = "\ta sua data de nascimento\n";				
		aErro[15] = "\tO seu sexo\n"; 
		aErro[16] = "\tseleccione a sua imagem/fotografia\n";		
		aErro[17] = "\to seu nome\n"; 
		aErro[18] = "\tO nome do destinatário\n";	
		aErro[19] = "\tO endereço de e-mail do destinatário\n"; 
		aErro[20] = "\tA “Desde” data do evento\n"; 
		aErro[21] = "\tA “Até” data do evento\n"; 
		aErro[22] = "\ta sua mensagem\n"; 
		aErro[23] = "\tPor favor seleccione uma área.\n";
		aErro[24] = "\tPor favor seleccione uma data de chegada válida.\n";
		aErro[25] = "\tPor favor seleccione uma data de chegada.\n";
		aErro[26] = "\tA data da partida tem que ser posterior à data de chegada.\n";
		aErro[27] = "\tNão é possível efectuar reservas no passado!\n";
		aErro[28] = " dias a partir de hoje.";
		aErro[29] = "\ttPor favor confirme que concorda com a política de privacidade\n"; 	
		aErro[30] = "\tPor favor seleccione um local.\n";
		aErro[31] = "\tPlease select a date\n";	
		aErro[32] = "\tPlease select a departure time\n";	
		aErro[33] = "\tA sua palavra-passe\n";
		aErro[34] = "\tA sua confirmação de palavra-passe\n";
		aErro[35] = "Hotel ou Nome da Cidade (opcional)";
		aErro[36] = "Ou por favor preencha o hotel ou o nome da cidade";
		
		aErro[37] = "\tNome da pessoa responsável pelo E-Commerce\n";
		aErro[38] = "\tE-mail da pessoa responsável pelo E-Commerce\n";
		aErro[39] = "\tNome da pessoa responsável pela extranet\n";
		aErro[40] = "\tE-mail para reservas\n";
		aErro[41] = "\tnome de utilizador do extranet\n";
		aErro[42] = "\tPalavra-passe do extranet\n";
		aErro[43] = "\tA sua confirmação de palavra-passe\n";
		aErro[44] = "\tNome do Hotel\n";
		aErro[45] = "\tTetefone do Hotel\n";
		aErro[46] = "\tRegião Principal\n";
		aErro[47] = "\tSub-Região\n";
		aErro[48] = "\tLocal\n";
		aErro[49] = "\tTexto introdutório\n";
		aErro[50] = "\tDescrição\n";
		aErro[51] = "\tTexto facilidades\n";
		aErro[52] = "\tDescrição dos quartos\n";
		aErro[53] = "\tPolíticas do Hotel\n";
		aErro[54] = "\tDescrição do local\n";
		aErro[55] = "\tConfirmação que concorda com os termos do contrato\n";
		aErro[56] = "\tas palavras-passe da Extranet não são as mesmas\n";
		
		aErro[57] = "\tTítulo do comentário\n";
		aErro[58] = "\tComentário\n";
		aErro[59] = "\tPontuação\n";
		aErro[60] = "\tTipo de férias\n";
		aErro[61] = "\tNome\n";
		
		aErro[62] = "\tPor favor escolha um outro nome de utilizador do extranet ou palavra pass\n";
		aErro[63] = "\tTipos de quarto\n";
		
		aErro[64] = "\tCom sede em\n";
		aErro[65] = "\tCom capital social de\n";
		aErro[66] = "\tContribuinte nº\n";
		aErro[67] = "\tRegistado com o registo comercial\n";
		aErro[68] = "\tNome do representante legal\n";
		aErro[69] = "Hotel ou Nome da Cidade (opcional)";
		aErro[70] = "\tNome da companhia\n";
		aErro[71] = "\tSeu Nome / Nome a mostrar aos leitores\n";
		aErro[72] = "\tEndereço de Email\n";
		aErro[73] = "\tPaís de Residência\n";
	break;
}
bPass = true;

formname = form.name;
if (formname == "pesq_formQuick" || formname == "pesq_formRegions" || formname == "pesq_formSpecials" || formname == "pesq_formLoc")  {
	formname = "pesq_form";
}
if ((formname == "frmRegister") || (formname == "frmEditPersonalProfile")) {
	formname = "frmRegisterEdit";
}

switch (formname) {
	case "pesq_form":
		var minDaysBeforeDeparture = 0;
		var today = new Date();
		
		for (x=0; x<form.elements.length; x++) {
			switch (form.elements[x].name) {
				case "pesqArea":
  				if (form.elements[x].value=='0') {
  					errmsg+=aErro[23];
  					//ifocuselem = x;
  				}else{
						if (checkpesqQuick!=1){
							checkpesqQuick=2;
						}
					}
  				break;
				//case "pesqLocal":if (form.elements[x].value=='0') {
				//	errmsg+=aErro[30]
				//	//ifocuselem = x;
				//}
				//break;
				case "pesqCheckin":
					
					if (!isDate(form.elements[x].value,'/','dd-mm-yyyy')) {
						errmsg+=aErro[24]
						//ifocuselem = x;
						dIn = null;	}
					else {
						var dIn = form.elements[x].value;

						var anoIn = dIn.substr(6.4);
						var mesIn = dIn.substr(3,2);
						var diaIn = dIn.substr(0,2);
						var start_dt = new Date(anoIn,mesIn-1,diaIn, today.getHours(),today.getMinutes(),today.getSeconds(),today.getMilliseconds());

						// Check minimum departure date
						var minLegalDate = new Date();

						minLegalDate.setDate(minLegalDate.getDate()+minDaysBeforeDeparture);
						minLegalDate.setHours(0,0,0,0);						
						if (minLegalDate >= start_dt)
						{
							errmsg += aErro[27];
						}else{
							if (checkpesqQuick!=1){
								checkpesqQuick=2;
							}
						}
						//
					}
				break;

				case "pesqCheckout":

					if (!isDate(form.elements[x].value,'/','dd-mm-yyyy')) {
						errmsg+=aErro[25]
						//ifocuselem = x;
					} else {
						var dOut = (form.elements[x].value);
						var anoOut = dOut.substr(6.4);
						var mesOut = dOut.substr(3,2);
						var diaOut = dOut.substr(0,2);						
	
						if (dIn!=null) {
							var start_dt = new Date(anoIn,mesIn-1,diaIn, today.getHours(),today.getMinutes(),today.getSeconds(),today.getMilliseconds());
							var end_dt = new Date(anoOut,mesOut-1,diaOut, today.getHours(),today.getMinutes(),today.getSeconds(),today.getMilliseconds());
							//alert(start_dt);
							//alert(end_dt);
						
							if (end_dt <= start_dt) {
								errmsg+=aErro[26];
							}else{
								if (checkpesqQuick!=1){
    							checkpesqQuick=2;
    						}
							} 
						}
						/*}*/
					}
				break;	
				/*
				case "pesqDep":if (form.elements[x].value=='0') {
					errmsg+=aErro[32]
					ifocuselem = x;
				}
				break;	*/
			} }
			if (form.pesqQuick){
				if(form.pesqQuick.value==aErro[35] || form.pesqQuick.value==aErro[69] || form.pesqQuick.value==""){
					if(errmsg!='' && checkpesqQuick!=2){
						errmsg+=aErro[36];
					}
				}else{
					if(errmsg!='' && checkpesqQuick!=2){
  					errmsg='';
  					checkpesqQuick=1;
					}
				}
			}
	break;

	case "frmContactUs":
		for (x=0; x<form.elements.length; x++) {
			switch (form.elements[x].name) {
				case "txtName":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[17]
					ifocuselem = x;
				}
				break;
				case "txtMessage":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[22]
					ifocuselem = x;
				}
				break;
				case "txtEmail":
					posn=form.elements[x].value.indexOf('\u0020');
					if (form.elements[x].value.length < 5) {
						errmsg+=aErro[5];
						ifocuselem=x; }
					else if (posn>=0) {
							errmsg+=aErro[5];
							ifocuselem=x; }
					else {
						var posn=form.elements[x].value.indexOf('@');
						if (posn==-1) {
							errmsg+=aErro[5];
							ifocuselem=x; } 
						else {
						posn=form.elements[x].value.indexOf('.',posn+2);
						if (posn==-1) {
							errmsg+=aErro[5];
							ifocuselem=x;}
						}
					}
				break;
			} }
	break;
	
	case "frmContacto":
		for (x=0; x<form.elements.length; x++) {
			switch (form.elements[x].name) {
				case "txtName":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[17]
					ifocuselem = x;
				}
				break;
				case "txtMessage":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[22]
					ifocuselem = x;
				}
				break;
				case "txtEmail":
					posn=form.elements[x].value.indexOf('\u0020');
					if (form.elements[x].value.length < 5) {
						errmsg+=aErro[5];
						ifocuselem=x; }
					else if (posn>=0) {
							errmsg+=aErro[5];
							ifocuselem=x; }
					else {
						var posn=form.elements[x].value.indexOf('@');
						if (posn==-1) {
							errmsg+=aErro[5];
							ifocuselem=x; } 
						else {
						posn=form.elements[x].value.indexOf('.',posn+2);
						if (posn==-1) {
							errmsg+=aErro[5];
							ifocuselem=x;}
						}
					}
				break;
			} }
	break;
	
	case "frmCalendar":
		for (x=0; x<form.elements.length; x++) {
			switch (form.elements[x].name) {
				case "txtCalendarFrom":if (!isDate(form.elements[x].value, '/', 'dd-mm-yyyy')) {
					errmsg+=aErro[20]
					ifocuselem = x;
				}
				break;
				case "txtCalendarTo":if (!isDate(form.elements[x].value, '/', 'dd-mm-yyyy')) {
					errmsg+=aErro[21]
					ifocuselem = x;
				}
				break;
			} }
	break;
	
	case "frm_Postcard":
		for (x=0; x<form.elements.length; x++) {
			switch (form.elements[x].name) {
				case "txtMyName":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[17]
					ifocuselem = x;
				}
				break;
				case "txtYourName":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[18]
					ifocuselem = x;
				}
				break;
				case "txtMyEmail":
					posn=form.elements[x].value.indexOf('\u0020');
					if (form.elements[x].value.length < 5) {
						errmsg+=aErro[5];
						ifocuselem=x; }
					else if (posn>=0) {
							errmsg+=aErro[5];
							ifocuselem=x; }
					else {
						var posn=form.elements[x].value.indexOf('@');
						if (posn==-1) {
							errmsg+=aErro[5];
							ifocuselem=x; } 
						else {
						posn=form.elements[x].value.indexOf('.',posn+2);
						if (posn==-1) {
							errmsg+=aErro[5];
							ifocuselem=x;}
						}
					}
				break;
				case "txtYourEmail":
					posn=form.elements[x].value.indexOf('\u0020');
					if (form.elements[x].value.length < 5) {
						errmsg+=aErro[19];
						ifocuselem=x; }
					else if (posn>=0) {
							errmsg+=aErro[19];
							ifocuselem=x; }
					else {
						var posn=form.elements[x].value.indexOf('@');
						if (posn==-1) {
							errmsg+=aErro[19];
							ifocuselem=x; } 
						else {
						posn=form.elements[x].value.indexOf('.',posn+2);
						if (posn==-1) {
							errmsg+=aErro[19];
							ifocuselem=x;}
						}
					}
				break;				
			} }
	break;
	case "frmProfileImageadd":
		for (x=0; x<form.elements.length; x++) {
			switch (form.elements[x].name) {
				case "fileImage":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[16]
					ifocuselem = x;
				}
				break;
			} }
	break;
	case "frm_Recuperacao":
		for (x=0; x<form.elements.length; x++) {
			switch (form.elements[x].name) {
				case "txtUsername":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[4]
					ifocuselem = x;
				}
				break;
			} }
	break;
	
	case "frm_Sugestao" :
		for (x=0; x<form.elements.length; x++) {
			switch (form.elements[x].name) {
				case "nome":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[3]
					ifocuselem = x;
				}
				break;
				case "email":
					posn=form.elements[x].value.indexOf('\u0020');
					if (form.elements[x].value.length < 5) {
						errmsg+=aErro[5];
						ifocuselem=x; }
					else if (posn>=0) {
							errmsg+=aErro[5];
							ifocuselem=x; }
					else {
						var posn=form.elements[x].value.indexOf('@');
						if (posn==-1) {
							errmsg+=aErro[5];
							ifocuselem=x; } 
						else {
						posn=form.elements[x].value.indexOf('.',posn+2);
						if (posn==-1) {
							errmsg+=aErro[5];
							ifocuselem=x;}
						}
					}
				break;
				case "pedido":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[6]
					ifocuselem = x;
				}
				break;
			} }
	break;
	case "frm_Contactos" :
		for (x=0; x<form.elements.length; x++) {
			switch (form.elements[x].name) {
				case "nome":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[3]
					ifocuselem = x;
				}
				break;
				case "localidade":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[11]
					ifocuselem = x;
				}
				break;				
				case "email":
					posn=form.elements[x].value.indexOf('\u0020');
					if (form.elements[x].value.length < 5) {
						errmsg+=aErro[5];
						ifocuselem=x; }
					else if (posn>=0) {
							errmsg+=aErro[5];
							ifocuselem=x; }
					else {
						var posn=form.elements[x].value.indexOf('@');
						if (posn==-1) {
							errmsg+=aErro[5];
							ifocuselem=x; } 
						else {
						posn=form.elements[x].value.indexOf('.',posn+2);
						if (posn==-1) {
							errmsg+=aErro[5];
							ifocuselem=x;}
						}
					}
				break;
				case "pedido":if (form.elements[x].value.length = 0) {
					errmsg+=aErro[6]
					ifocuselem = x;
				}
				break;				
			} }
	break;

	case "frmRegisterEdit":

		if (form.name=="frmEditPersonalProfile") {
				valchk=true;
		}
		for (x=0; x<form.elements.length; x++) {

			switch (form.elements[x].name) {
				case "nome1":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[1]
					ifocuselem = x;
				}
				break;
				case "nome2":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[3]
					ifocuselem = x;
				}
				break;						
				case "username":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[4]
					ifocuselem = x;
				}
				break;	
				case "password1":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[33]
					ifocuselem = x;
				}
				break;	
				case "password2":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[34]
					ifocuselem = x;
				}
				break;	
				case "telefone":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[10]
					ifocuselem = x;
				}
				break;				
				case "email":
					posn=form.elements[x].value.indexOf('\u0020');
					if (form.elements[x].value.length < 5) {
						errmsg+=aErro[5];
						ifocuselem=x; }
					else if (posn>=0) {
							errmsg+=aErro[5];
							ifocuselem=x; }
					else {
						var posn=form.elements[x].value.indexOf('@');
						if (posn==-1) {
							errmsg+=aErro[5];
							ifocuselem=x; } 
						else {
						posn=form.elements[x].value.indexOf('.',posn+2);
						if (posn==-1) {
							errmsg+=aErro[5];
							ifocuselem=x;}
						}
					}
				break;
				
			} 
		}
		if (errmsg=='') {
  		if ((form.password1.value != form.password2.value) || (form.password1.value.length == 0) || (form.password2.value.length == 0)) {
  				errmsg+=aErro[9];
  		}
		
		}	
		//if (!valchk) { errmsg+=aErro[15]; }
	break;
	
	//validação dos dados do formulário frm_MembershipHoteliers
	case "frm_MembershipHoteliers":

		for (x=0; x<form.elements.length; x++) {

			switch (form.elements[x].name) {
				case "nome_ecommerce":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[37]
					ifocuselem = x;
				}
				break;				
			}
			
			switch (form.elements[x].name) {
				case "email_ecommerce":
				posn=form.elements[x].value.indexOf('\u0020');
					if (form.elements[x].value.length < 5) {
						errmsg+=aErro[38];
						ifocuselem=x; }
					else if (posn>=0) {
							errmsg+=aErro[38];
							ifocuselem=x; }
					else {
						var posn=form.elements[x].value.indexOf('@');
						if (posn==-1) {
							errmsg+=aErro[38];
							ifocuselem=x; } 
						else {
						posn=form.elements[x].value.indexOf('.',posn+2);
						if (posn==-1) {
							errmsg+=aErro[38];
							ifocuselem=x;}
						}
					}
							
				break;
			} 
			
			switch (form.elements[x].name) {
				case "nome_extranet":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[39]
					ifocuselem = x;
				}
			  break;	
			} 
			
			switch (form.elements[x].name) {
				case "email_reservation":
				posn=form.elements[x].value.indexOf('\u0020');
					if (form.elements[x].value.length < 5) {
						errmsg+=aErro[40];
						ifocuselem=x; }
					else if (posn>=0) {
							errmsg+=aErro[40];
							ifocuselem=x; }
					else {
						var posn=form.elements[x].value.indexOf('@');
						if (posn==-1) {
							errmsg+=aErro[40];
							ifocuselem=x; } 
						else {
						posn=form.elements[x].value.indexOf('.',posn+2);
						if (posn==-1) {
							errmsg+=aErro[40];
							ifocuselem=x;}
						}
					}
				break;	
			} 
			
			switch (form.elements[x].name) {
				case "username_extranet":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[41]
					ifocuselem = x;
				}	
			  break;
			}
			
			switch (form.elements[x].name) {
				case "password_extranet1":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[42]
					ifocuselem = x;
				}	
			    break;	
			} 
			
			switch (form.elements[x].name) {
				case "password_extranet2":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[43]
					ifocuselem = x;
				}
			    break;	
			}
			
			switch (form.elements[x].name) {
				case "name_company":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[70]
					ifocuselem = x;
				}
				break;		
			} 
			
			switch (form.elements[x].name) {
				case "name_hotel":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[44]
					ifocuselem = x;
				}
				break;		
			} 
			
			switch (form.elements[x].name) {
				case "telephone_hotel":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[45]
					ifocuselem = x;
				}
				break;	
			}
			
			switch (form.elements[x].name) {
			 case "pais":
			 if(document.frm_MembershipHoteliers.pais.selectedIndex == 0){
				 errmsg+=aErro[46]
				ifocuselem = x;				 
			 break;									
			 }			
		   }	
		   
		   switch (form.elements[x].name) {
			 case "region":
			 if(document.frm_MembershipHoteliers.region.selectedIndex == 0){
				 errmsg+=aErro[47]
				ifocuselem = x;				 
			 break;									
			 }			
		   }	
		   
		   switch (form.elements[x].name) {
			 case "sub_region":
			 if(document.frm_MembershipHoteliers.sub_region.selectedIndex == 0){
				 errmsg+=aErro[48]
				ifocuselem = x;				 
			 break;									
			 }			
		   }	
			
			switch (form.elements[x].name) {
				case "text_intro":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[49]
					ifocuselem = x;
				}
				break;	
			}
			
			switch (form.elements[x].name) {
				case "hotel_details":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[50]
					ifocuselem = x;
				}
				break;	
			}
			
			switch (form.elements[x].name) {
				case "text_facilities":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[51]
					ifocuselem = x;
				}
				break;	
			}			
			
			switch (form.elements[x].name) {
				case "room_types":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[63]
					ifocuselem = x;
				}
				break;	
			}
			
			switch (form.elements[x].name) {
				case "room_details":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[52]
					ifocuselem = x;
				}
				break;	
			}
			
			switch (form.elements[x].name) {
				case "hotel_policies":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[53]
					ifocuselem = x;
				}
				break;
			}
		  
			switch (form.elements[x].name) {
				case "contract_1":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[64]
					ifocuselem = x;
				}
				break;
			}
			
			switch (form.elements[x].name) {
				case "contract_2":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[65]
					ifocuselem = x;
				}
				break;
			}
			
			switch (form.elements[x].name) {
				case "contract_3":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[66]
					ifocuselem = x;
				}
				break;
			}
			
			switch (form.elements[x].name) {
				case "contract_4":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[67]
					ifocuselem = x;
				}
				break;
			}
			
			switch (form.elements[x].name) {
				case "contract_6":if (form.elements[x].value.length < 3 || form.elements[x].value==" Please enter name" || form.elements[x].value==" Por favor digite nome") {
					errmsg+=aErro[68]
					ifocuselem = x;
				}
				break;
			}
			
		   switch (form.elements[x].name) {
				case "agreement":if (form.agreement.checked != true) {
					errmsg+=aErro[55]
					ifocuselem = x;
				}
				break;
			} 
		}
		if (errmsg=='') {
  		if ((form.password_extranet1.value != form.password_extranet2.value) || (form.password_extranet1.value.length == 0) || (form.password_extranet2.value.length == 0)) {
  				errmsg+=aErro[56];
  		}
		
		if (form.str_utilizadores.value.match("§"+document.frm_MembershipHoteliers.username_extranet.value+"§/§"+document.frm_MembershipHoteliers.password_extranet1.value+"§")) {
  				errmsg+=aErro[62];
  		}
		
		
	 }
	break;	
		
	//validação dos dados do formulário para comentários
	case "frm_HotelReviews":
	
	for (x=0; x<form.elements.length; x++) {
		switch (form.elements[x].name) {
			case "titulo":if (form.elements[x].value.length < 3) {
				errmsg+=aErro[57]
				ifocuselem = x;
			  break;	
			}				
		 } 
			 switch (form.elements[x].name) {
				case "descricao":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[58]
					ifocuselem = x;
				 break;	
				}				
			 }
			 
		  switch (form.elements[x].name) {
			 case "score":
			 if(document.frm_HotelReviews.score.selectedIndex == 0){
				 errmsg+=aErro[59]
				ifocuselem = x;				 
			 break;									
			 }			
		   }	

		   if(document.frm_HotelReviews.country && document.frm_HotelReviews.email){
  			 switch (form.elements[x].name) {
  				case "nome_online":if (form.elements[x].value.length < 3) {
  					errmsg+=aErro[71]
  					ifocuselem = x;
  				 break;	
  				}				
  			 }
			 }	
		   
			 switch (form.elements[x].name) {
				case "email":if (form.elements[x].value.length < 3) {
					errmsg+=aErro[72]
					ifocuselem = x;
				 break;	
				}				
			 }
			 
			 switch (form.elements[x].name) {
			 case "country":
			 if(document.frm_HotelReviews.country.selectedIndex == 0){
				 errmsg+=aErro[73]
				ifocuselem = x;				 
			 break;									
			 }			
		   }
		   
		   switch (form.elements[x].name) {
			 case "tipo_ferias":
			 if(document.frm_HotelReviews.tipo_ferias.selectedIndex == 0){
				 errmsg+=aErro[60]
				ifocuselem = x;				 
			 break;									
			 }			
		   }			   
     
	}
		//if (!valchk) { errmsg+=aErro[15]; }
	break;
}


if (errmsg!='') {
	errOut= "_______________________________________________________________\n";	
	errOut+=aErro[2];
	errOut+=errmsg;
	errOut+="\n_______________________________________________________________\n";
	alert(errOut);
	if (parseInt(ifocuselem)) eval("form.elements[" + ifocuselem + "].focus();");
	pass=false;
}
else {
	
	if ((form.name) == 'pesq_form') {
		// Verifica se pesqQuick está preenchido
		if(checkpesqQuick!=1){
  		// Open link with GET parameters
  		var form_url = action + '?pesqArea=' + form.pesqArea.value + '&pesqCheckin=' + form.pesqCheckin.value;
  		
  		// Novo código
  		var rewriteform=document.createElement("FORM");
  		document.body.appendChild(rewriteform);
  		rewriteform.method = "GET";
  		var rewriteinput
		
  		rewriteinput=document.createElement("INPUT");   		
  		rewriteinput.type = "hidden";
  		rewriteinput.name = "pesqArea";
   		rewriteinput.value = form.pesqArea.value;
			rewriteform.appendChild(rewriteinput);
		
  		rewriteinput=document.createElement("INPUT");   		
  		rewriteinput.type = "hidden";
  		rewriteinput.name = "pesqCheckin";
   		rewriteinput.value = form.pesqCheckin.value;
			rewriteform.appendChild(rewriteinput);
  		// Fim novo código
  		
  		if (type == 'hotel') { 
  			 form_url += '&pesqLocal=' + form.pesqLocal.value + '&pesqCheckout=' + form.pesqCheckout.value;
  			 // Novo código
      	     rewriteinput=document.createElement("INPUT");   			
			 rewriteinput.type = "hidden"; 
			 rewriteinput.name = "pesqLocal";
			 //rewriteinput.setAttribute("type", "hidden");
			 //rewriteinput.setAttribute("name", "pesqLocal");  		
			 rewriteinput.value = form.pesqLocal.value; 
			 rewriteform.appendChild(rewriteinput);
			 
		     rewriteinput=document.createElement("INPUT");   			
  			 rewriteinput.type = "hidden";			
  			 rewriteinput.name = "pesqCheckout";
			//rewriteinput.setAttribute("type", "hidden");
		    //rewriteinput.setAttribute("name", "pesqCheckout"); 
       	    rewriteinput.value = form.pesqCheckout.value;
			rewriteform.appendChild(rewriteinput);
				 if (form.pesqQuick){
				 		if(form.pesqQuick.value!=aErro[35] && form.pesqQuick.value!=aErro[69] && form.pesqQuick.value!=""){
							form_url += '&pesqQuick=' + form.pesqQuick.value;														 
							rewriteinput=document.createElement("INPUT");
      			  rewriteinput.type = "hidden";
      			  rewriteinput.name = "pesqQuick";
           	  rewriteinput.value = form.pesqQuick.value;
							rewriteform.appendChild(rewriteinput);
						}
				 } 
      	 // Fim novo código
  		}
  		if (type == 'blend') { 
  			 form_url += '&pesqType=' + form.pesqType.value; 
  			 // Novo código
      	 rewriteinput=document.createElement("INPUT");   			 
  			 rewriteinput.type = "hidden";
  			 rewriteinput.name = "pesqType";
       	 rewriteinput.value = form.pesqType.value;
		 		 rewriteform.appendChild(rewriteinput);
      	 // Fim novo código
  		}
  		if (type == 'tour') { 
  			 form_url += '&pesqType=' + form.pesqType.value + '&pesqCheckout=' + form.pesqCheckout.value;
  			 // Novo código
      	 rewriteinput=document.createElement("INPUT");
  			 rewriteinput.type = "hidden";
  			 rewriteinput.name = "pesqType";
       	 rewriteinput.value = form.pesqType.value;
      	 rewriteform.appendChild(rewriteinput);
				 rewriteinput=document.createElement("INPUT");
  			 rewriteinput.type = "hidden";
  			 rewriteinput.name = "pesqCheckout";
       	 rewriteinput.value = form.pesqCheckout.value;
      	 rewriteform.appendChild(rewriteinput);
				 // Fim novo código 
  		} 
  		//location.href=form_url;
  		//alert(form_url);
  		// Novo código
  		rewriteform.action= action;
  		rewriteform.submit();
  		// Fim novo código
		}else{
			// pesqQuick está preenchido, logo realiza uma quick search
			var rewriteform=document.createElement("FORM");
  		document.body.appendChild(rewriteform);
  		rewriteform.method = "GET";
  		var rewriteinput
  		rewriteinput=document.createElement("INPUT");
   		rewriteinput.type = "hidden";
  		rewriteinput.name = "pesqQuick";
   		rewriteinput.value = form.pesqQuick.value;
			rewriteform.appendChild(rewriteinput);
			rewriteform.action= action;
  		rewriteform.submit();
		}	 
	}
	else if (type !== 'tour_quickbooker') {
		form.action = action;
		if (formname == 'frmCalendar') {
			GB_showCenter('', '../../ask_ana/' + action, 640, 529);
			//MM_openBrWindow(action, 'events','width=529,height=600');
		} else {
		form.submit();	
		}
	}
	pass=true;
}
return (pass);
}
function isDate(dateparam, splitparam, formatparam ) {
	var elems = dateparam.split(splitparam);   // extrai as 3 componentes da data
	result = (elems.length == 3); // verifica se são 3 componentes

	if (result) {
		var today = new Date();
		var year   = (formatparam=='yyyy-mm-dd'?parseInt(elems[0],10):formatparam=='dd-mm-yyyy',parseInt(elems[2],10));
		var month = (formatparam=='yyyy-mm-dd'?parseInt(elems[1],10):formatparam=='dd-mm-yyyy',parseInt(elems[1],10));
		var day  = (formatparam=='yyyy-mm-dd'?parseInt(elems[2],10):formatparam=='dd-mm-yyyy',parseInt(elems[0],10));
	
		result    = allDigits(year) && 
			allDigits(month) && (month > 0) && (month < 13) &&
			allDigits(day) && (day > 0) && (day < 32);

	}
	return result;
}
function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}
function inValidCharSet(str,charset)
{
	var result = true;
	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;}
	return result;
}

<!--
function getkey(e)
{
if (window.event)
   return window.event.keyCode;
else if (e)
   return e.which;
else
   return null;
}

function goodchars(e, goods)
{
var key, keychar;
key = getkey(e);

if (key == null) return true;

// get character
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();
goods = goods.toLowerCase();

//alert("KEY: " + key);

// check goodkeys
if (goods.indexOf(keychar) != -1)
	return true;

// control keys
if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
   return true;


// else return false
return false;
}

function fConfirm(form, prm_text) {
	if (confirm(prm_text) == 1) {
		form.submit();
	}
}

//character counter
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit)
field.value = field.value.substring(0, maxlimit);
else 
countfield.value = maxlimit - field.value.length;
}
