//**************************************************************************************
//retorna verdadero si el valor de value corresponde a un mail valido
//**************************************************************************************
function isEMail(field){
        if( (field.indexOf('@') == -1) || (field.indexOf('.') == -1) ||
			(field.indexOf(' ')>=0 ) ||
            (field.indexOf('#') >= 0 ) || (field.indexOf('"') >= 0 ) ||
			(field.indexOf('$') >= 0 ) ||
            (field.indexOf('%') >= 0 ) || (field.indexOf('/') >= 0 ) ||
			(field.indexOf('\\') >= 0 ) ||
            (field.indexOf('[') >= 0 ) || (field.indexOf(']') >= 0 ) ||
			(field.indexOf('(') >= 0 ) ||
            (field.indexOf(')') >= 0 ) || (field.indexOf('{') >= 0 ) ||
			(field.indexOf('}') >= 0 ) ||
            (field.indexOf('=') >= 0 ) || (field.indexOf('+') >= 0 ) ||
            (field.indexOf('ñ') >= 0 ) || (field.indexOf('Ñ') >= 0 ) ||
            (field.indexOf('\"') >= 0 ) ||(field.indexOf(',') >= 0 ) ||
			(field.indexOf('*') >= 0 ) ||
            (field.indexOf('!') >= 0 ) ){
                return false;
        } else {
                return true;
        }
}

//**************************************************************************************
//retorna verdadero si value es numerico
//**************************************************************************************
function isNumber(value){
        if( isNaN( value ) ){
                return false;
        }else{
                return true;
        }
}

//**************************************************************************************
// Antepone "HTTP://" a la URL si es que no lo trae ya.
//**************************************************************************************
function FixUrl (field){
        if( field.value.indexOf("http://") == -1  ){
                field.value = 'http://' + field.value
        }       
}

function Trim( Param ){
var re,str;
	str = String( Param );
	re = /^\s*(.*)\s*$/;
	return str.replace(re,'$1');
}

function removeNonNumeric( Param ){
var re,str;
	str = String( Param );
	re = /\D/;
	return str.replace(re,'');
}

function MensajeWrongEmail( Lang, MsgEsp, MsgPor, MsgEng ){
	if (Lang=='esp') 
			alert('\'' + MsgEsp + '\' es requerido. Por favor ingrese un e-mail valido.');
		else
			if (Lang=='por') 
				alert('\'' + MsgPor + '\' é obrigatório.  Por favor, insira un e-mail valido.');
			else
				alert('\'' + MsgEng + '\' is required.  Please enter a valid e-mail.');	
}

function MensajeWrongNumber( Lang, MsgEsp, MsgPor, MsgEng ){
	if (Lang=='esp') 
			alert('\'' +  MsgEsp + '\' acepta solo caracteres numericos.');
		else
			if (Lang=='por') 
				alert('\'' +  MsgPor + '\' acepta solo caracteres numericos.');
			else
				alert('\'' +  MsgEng + '\' accepts only numerics characters.');
}

function Mensaje( Lang, MsgEsp, MsgPor, MsgEng, Largo, Type ){
	if ( Type == 0 ){
		if (Lang=='esp') 
			alert('Este campo es requerido. Por favor vuelva a ingresar al menos ' + Largo + ' caracteres en el campo \'' + MsgEsp + '\'.');
		else
			if (Lang=='por') 
				alert('Este dado é obrigatório.  Por favor, insira pelo menos ' + Largo + ' caracteres no campo \'' + MsgPor + '\'.');
			else
				alert('This field is required.  Please re-enter at least ' + Largo + ' characters in the \'' + MsgEng + '\' name field.');
	}else{
		if (Lang=='esp') 
			alert('Este campo es requerido. Por favor seleccione al menos un item en el campo \'' + MsgEsp + '\'.');
		else
			if (Lang=='por') 
				alert('Este dado é obrigatório.  Por favor, seleccione pelo menos um item no campo \'' + MsgPor + '\'.');
			else
				alert('This field is required.  Please select at least 1 item in the \'' + MsgEng + '\' name field.');
	}
}

function ValidaCampo( value, largo ){
	if ( ( Trim( value ) == '' ) || ( value.length < largo ) ){
		return true;
	}else{
		return false;
	}
}

//**************************************************************************************
//Valida el documento buop_postsendinquiry.asp
//**************************************************************************************
function ValidaFormSendInquiry( Lang ){
	if( ValidaCampo( document.frmpostsendinquiry.user_name.value, 2 ) ){
		Mensaje( Lang, 'Su Nombre', 'Your Name', 'Your Name', 2, 0);
		return;
	}
	
	if( ValidaCampo( document.frmpostsendinquiry.user_email.value, 5 ) ){
		Mensaje( Lang, 'Su Dirección de Correo', 'Your Email Address', 'Your Email Address', 5, 0);
		return;
	}else{
		if ( !isEMail(document.frmpostsendinquiry.user_email.value) ){
			MensajeWrongEmail( Lang, 'Su Dirección de Correo', 'Your Email Address', 'Your Email Address' );
			return;
		}
	}
	
	if( ValidaCampo( document.frmpostsendinquiry.posi_description.value, 2 ) ){
		Mensaje( Lang, 'Carga', 'Position', 'Position', 2, 0);
		return;
	}
	
	if( ValidaCampo( document.frmpostsendinquiry.comp_legalname.value, 2 ) ){
		Mensaje( Lang, 'Compañia', 'Company', 'Company', 2, 0);
		return;
	}
	
	document.frmpostsendinquiry.submit()
}

//**************************************************************************************
//Valida el documento buop_posteamiltoafriend.asp
//**************************************************************************************
function ValidaFormEmailtoaFriend( Lang ){
	if( ValidaCampo( document.frmpostemailtoafriend.user_name.value, 2 ) ){
		Mensaje( Lang, 'Su Nombre', 'Your Name', 'Your Name', 2, 0);
		return;
	}
	
	if( ValidaCampo( document.frmpostemailtoafriend.user_email.value, 5 ) ){
		Mensaje( Lang, 'Su Dirección de Correo', 'Your Email Address', 'Your Email Address', 5, 0);
		return;
	}else{
		if ( !isEMail(document.frmpostemailtoafriend.user_email.value) ){
			MensajeWrongEmail( Lang, 'Su Dirección de Correo', 'Your Email Address', 'Your Email Address' );
			return;
		}
	}
	
	if( ValidaCampo( document.frmpostemailtoafriend.recipient_email.value, 5 ) ){
		Mensaje( Lang, 'Dirección Email del Destinatario', 'Recipient Email Address', 'Recipient Email Address', 5, 0);
		return;
	}else{
		if ( !isEMail(document.frmpostemailtoafriend.recipient_email.value) ){
			MensajeWrongEmail( Lang, 'Dirección Email del Destinatario', 'Recipient Email Address', 'Recipient Email Address' );
			return;
		}
	}
	
	document.frmpostemailtoafriend.submit();
}

//**************************************************************************************
//Valida el documento buop_search.asp
//**************************************************************************************
function ValidaFormPostSearch( Lang ){
	if( ValidaCampo( document.frmpostsearch.keyword.value, 2 ) ){
		Mensaje( Lang, 'Palabra(s) Clave', 'Palavra(s) Chave', ' Keywords', 2, 0);
		return;
	}	
	
	for(i = 0; i < document.frmpostsearch.cate_code.options.length; i++)
			if(document.frmpostsearch.cate_code[i].selected){
				if ( document.frmpostsearch.cate_code[i].value == '0' ){
					Mensaje( Lang, 'Tipo de Oportunidad', 'Tipo de Oportunidade', 'Opportunity Type',1);
					return;
				}
			}
	
	document.frmpostsearch.submit();
}

//**************************************************************************************
//valida el documento buop_postanoppty.asp
//**************************************************************************************
function VerifyForm( Lang , User_ID)
{
	var i,sw;
	
	if( ValidaCampo( document.frmpostanoppty.post_title.value, 2 ) ){
		Mensaje( Lang, 'Titulo de la oportunidad', 'Opportunity title', 'Opportunity title', 2, 0);
		return;
	}
	if( ValidaCampo( document.frmpostanoppty.post_description.value, 2 ) ){
		Mensaje( Lang, 'Descripción de la oportunidad', 'Opportunity description', 'Opportunity description', 2, 0);
		return;
	}
	
	for(i = 0; i < document.frmpostanoppty.area_code.options.length; i++)
		if(document.frmpostanoppty.area_code[i].selected){
			if ( document.frmpostanoppty.area_code[i].value == '' ){
				Mensaje( Lang, 'Oportunidad aparecera en Pais area', 'Opportunity will appear in Country area', 'Opportunity will appear in Country area',1);
				return;
			}
		}
		
	for(i = 0; i < document.frmpostanoppty.coun_code.options.length; i++)
		if(document.frmpostanoppty.coun_code[i].selected){
			if ( document.frmpostanoppty.coun_code[i].value == '' ){
				Mensaje( Lang, 'Oportunidad aparecera en Portal area', 'Opportunity will appear in Portal area', 'Opportunity will appear in Portal area',1);
				return;
			}
		}
	
	if( ValidaCampo( document.frmpostanoppty.hsco_hscode.value, 3 ) ){
		Mensaje( Lang, 'Código HS', 'HS Code', 'HS Code', 3, 0);
		return;
	}else{
		if (! isNumber(document.frmpostanoppty.hsco_hscode.value) ){
			MensajeWrongNumber( Lang, 'Código HS', 'HS Code', 'HS Code' );
			return;
		}
	}
	
	for(i = 0; i < document.frmpostanoppty.acpe_code.options.length; i++)
		if(document.frmpostanoppty.acpe_code[i].selected){
			if ( document.frmpostanoppty.acpe_code[i].value == '' ){
				Mensaje( Lang, 'La oportunidad estara activa por', 'Opportunity will remain active for', 'Opportunity will remain active for',1);
				return;
			}
		}

	//contact details
	if( User_ID == 'null' )
	{
		if( ValidaCampo( document.frmpostanoppty.pocode_tradename.value, 2 ) ){
			Mensaje( Lang, 'Nombre Comercial De la Compañía', 'Company Trade Name', 'Company Trade Name', 2, 0);
			return;
		}
		
		if( ValidaCampo( document.frmpostanoppty.pocode_legalname.value, 2 ) ){
			Mensaje( Lang, 'Nombre Legal De la Compañía', 'Company Legal Name', 'Company Legal Name', 2, 0);
			return;
		}
		
		if( ValidaCampo( document.frmpostanoppty.pocode_name.value, 2 ) ){
			Mensaje( Lang, 'Nombre de la persona que publica la oportunidad', 'Name of person posting opportunity', 'Name of person posting opportunity', 2, 0);
			return;
		}
		
		if( ValidaCampo( document.frmpostanoppty.pocode_email.value, 5 ) ){
			Mensaje( Lang, 'E-mail de la persona que publica la oportunidad', 'E-mail of person posting opportunity', 'E-mail of person posting opportunity', 5, 0);
			return;
		}else{
			if ( !isEMail(document.frmpostanoppty.pocode_email.value) ){
				MensajeWrongEmail( Lang, 'E-mail de la persona que publica la oportunidad', 'E-mail of person posting opportunity', 'E-mail of person posting opportunity' );
				return;
			}
		}

		FixUrl (document.frmpostanoppty.pocode_url);
		
		if( ValidaCampo( document.frmpostanoppty.pocode_address.value, 2 ) ){
			Mensaje( Lang, 'Dirección de la Compañia', 'Company address', 'Company address', 2, 0);
			return;
		}
		
		if( ValidaCampo( document.frmpostanoppty.pocode_city.value, 2 ) ){
			Mensaje( Lang, 'Ciudad', 'City', 'City', 2, 0);
			return;
		}
		
		for(i = 0; i < document.frmpostanoppty.commcoun_code.options.length; i++)
			if(document.frmpostanoppty.commcoun_code[i].selected){
				if ( document.frmpostanoppty.commcoun_code[i].value == '' ){
					Mensaje( Lang, 'Pais', 'Country', 'Country',1);
					return;
				}
			}
			
		if( ValidaCampo( document.frmpostanoppty.pocode_phoneddi.value, 1 ) ){
			Mensaje( Lang, 'Numero Telefonico del Contacto (DDI)', 'Telephone Contact Number (DDI)', 'Telephone Contact Number (DDI)', 1, 0);
			return;
		}else{
			if (! isNumber(document.frmpostanoppty.pocode_phoneddi.value) ){
				MensajeWrongNumber( Lang, 'Numero Telefonico del Contacto (DDI)', 'Telephone Contact Number (DDI)', 'Telephone Contact Number (DDI)' );
				return;
			}
		}
		
		if( ValidaCampo( document.frmpostanoppty.pocode_phoneddn.value, 1 ) ){
			Mensaje( Lang, 'Numero Telefonico del Contacto (DDN)', 'Telephone Contact Number (DDN)', 'Telephone Contact Number (DDN)', 1, 0);
			return;
		}else{
			if (! isNumber(document.frmpostanoppty.pocode_phoneddn.value) ){
				MensajeWrongNumber( Lang, 'Numero Telefonico del Contacto (DDN)', 'Telephone Contact Number (DDN)', 'Telephone Contact Number (DDN)' );
				return;
			}
		}
		
		if( ValidaCampo( document.frmpostanoppty.pocode_phone.value, 3 ) ){
			Mensaje( Lang, 'Numero Telefonico del Contacto', 'Telephone Contact Number', 'Telephone Contact Number', 3, 0);
			return;
		}else{
			if (! isNumber(document.frmpostanoppty.pocode_phone.value) ){
				MensajeWrongNumber( Lang, 'Numero Telefonico del Contacto', 'Telephone Contact Number', 'Telephone Contact Number' );
				return;
			}
		}
		
		if( (Trim(document.frmpostanoppty.pocode_faxddi.value) !='') && (!isNumber(document.frmpostanoppty.pocode_faxddi.value)) ){
				MensajeWrongNumber( Lang, 'Numero Fax del Contacto (DDN)', 'Fax Contact Number (DDN)', 'Fax Contact Number (DDN)' );
				return;
		}
		
		if( (Trim(document.frmpostanoppty.pocode_faxddn.value) !='') && (!isNumber(document.frmpostanoppty.pocode_faxddn.value)) ){
				MensajeWrongNumber( Lang, 'Numero Fax del Contacto (DDI)', 'Fax Contact Number (DDI)', 'Fax Contact Number (DDI)' );
				return;
		}
		
		if( (Trim(document.frmpostanoppty.pocode_fax.value) !='') && (!isNumber(document.frmpostanoppty.pocode_fax.value)) ){
				MensajeWrongNumber( Lang, 'Numero Fax del Contacto', 'Fax Contact Number', 'Fax Contact Number' );
				return;
		}
	}
	else //member
	{ 
		FixUrl (document.frmpostanoppty.comp_url);
		
		if( ValidaCampo( document.frmpostanoppty.comp_address.value, 2 ) ){
			Mensaje( Lang, 'Dirección de la Compañia', 'Company address', 'Company address', 2, 0);
			return;
		}
		
		if( ValidaCampo( document.frmpostanoppty.comp_city.value, 2 ) ){
			Mensaje( Lang, 'Ciudad', 'City', 'City', 2, 0);
			return;
		}
		
		for(i = 0; i < document.frmpostanoppty.commcoun_code.options.length; i++)
			if(document.frmpostanoppty.commcoun_code[i].selected){
				if ( document.frmpostanoppty.commcoun_code[i].value == '' ){
					Mensaje( Lang, 'Pais', 'Country', 'Country',1);
					return;
				}
			}
			
		if( ValidaCampo( document.frmpostanoppty.comp_phoneddi.value, 1 ) ){
			Mensaje( Lang, 'Numero Telefonico del Contacto (DDI)', 'Telephone Contact Number (DDI)', 'Telephone Contact Number (DDI)', 1, 0);
			return;
		}else{
			if (! isNumber(document.frmpostanoppty.comp_phoneddi.value) ){
				MensajeWrongNumber( Lang, 'Numero Telefonico del Contacto (DDI)', 'Telephone Contact Number (DDI)', 'Telephone Contact Number (DDI)' );
				return;
			}
		}
		
		if( ValidaCampo( document.frmpostanoppty.comp_phoneddn.value, 1 ) ){
			Mensaje( Lang, 'Numero Telefonico del Contacto (DDN)', 'Telephone Contact Number (DDN)', 'Telephone Contact Number (DDN)', 1, 0);
			return;
		}else{
			if (! isNumber(document.frmpostanoppty.comp_phoneddn.value) ){
				MensajeWrongNumber( Lang, 'Numero Telefonico del Contacto (DDN)', 'Telephone Contact Number (DDN)', 'Telephone Contact Number (DDN)' );
				return;
			}
		}
		
		if( ValidaCampo( document.frmpostanoppty.comp_phone.value, 3 ) ){
			Mensaje( Lang, 'Numero Telefonico del Contacto', 'Telephone Contact Number', 'Telephone Contact Number', 3, 0);
			return;
		}else{
			if (! isNumber(document.frmpostanoppty.comp_phone.value) ){
				MensajeWrongNumber( Lang, 'Numero Telefonico del Contacto', 'Telephone Contact Number', 'Telephone Contact Number' );
				return;
			}
		}
		
		if( (Trim(document.frmpostanoppty.comp_faxddi.value) !='') && (!isNumber(document.frmpostanoppty.comp_faxddi.value)) ){
				MensajeWrongNumber( Lang, 'Numero Fax del Contacto (DDN)', 'Fax Contact Number (DDN)', 'Fax Contact Number (DDN)' );
				return;
		}
		
		if( (Trim(document.frmpostanoppty.comp_faxddn.value) !='') && (!isNumber(document.frmpostanoppty.comp_faxddn.value)) ){
				MensajeWrongNumber( Lang, 'Numero Fax del Contacto (DDI)', 'Fax Contact Number (DDI)', 'Fax Contact Number (DDI)' );
				return;
		}
		
		if( (Trim(document.frmpostanoppty.comp_fax.value) !='') && (!isNumber(document.frmpostanoppty.comp_fax.value)) ){
				MensajeWrongNumber( Lang, 'Numero Fax del Contacto', 'Fax Contact Number', 'Fax Contact Number' );
				return;
		}
	}		
	document.frmpostanoppty.submit();
}
