/*
Class: IndexControllerClass
Description: Clase que controla la interaccion de la pagina web: Index.htm
Author: JAB
Info: bren@juanantonio.info
*/

//Clase que controla el fichero Home.htm
function EsmetaContactClass(){
	this.error = false;
};


/*************************
***** EVENTS METHODS *****
*************************/

EsmetaContactClass.prototype.window_onLoad = function(){
	//Empty
};

/*************************
***** FOOTER METHODS *****
*************************/

EsmetaContactClass.prototype.writeFooter = function(){
  	var FECHA = new Date();
  	var ANHO = FECHA.getYear();
  	if(ANHO < 2000) { ANHO = ANHO + 1900; }
 
	//CSS STYLE
	document.write('<style type="text/css">');
	document.write('p.esmeta_footer{font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;	font-size: 10px;}')
	document.write('p.esmeta_footer{margin-left: 20px; text-align: left;}')
	document.write('a.esmeta{text-decoration: none;	color: #000000;	}');
	document.write('a.esmeta:link{text-decoration: none;}');
	document.write('a.esmeta:visited{text-decoration: none;}'); 
	document.write('a.esmeta:hover{text-decoration: underline;}');
	document.write('</style>');

	document.write('<p class="esmeta_footer"><a href="http://www.esmeta.es" class="esmeta" target="_blank">Esmeta</a> &reg; 1997-'+ ANHO + '</p><br />');
	return true;
};

/*********************************
***** FUNCTIONS & UTILITIES *****
***********************************/

function readEsmetaXML(tag,data){
	var openTag = "<" + tag + ">";
	var closedTag = "</" + tag + ">";
	var index1 = data.indexOf(openTag);
	if(index1 == -1){
		return index1;
	}
	var index2 = data.indexOf(closedTag);
	if(index2 == -1){
		return index2;
	}
	var from = index1 + openTag.length;
	var until = index2
	var content = data.substring(from,until);
	return content;
};

EsmetaContactClass.prototype.trimString = function(str){
	return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
};

/*************************
***** CONTACT FORM *****
**************************/

/**
General procedure to block submit event into a web form
*/
EsmetaContactClass.prototype.onSubmitWebForm = function(){
	return false;
}

/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
EsmetaContactClass.prototype.checkEmail = function(str){
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   //alert("Invalid E-mail ID")
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   //alert("Invalid E-mail ID")
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		//alert("Invalid E-mail ID")
		return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		//alert("Invalid E-mail ID")
		return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		//alert("Invalid E-mail ID")
		return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		//alert("Invalid E-mail ID")
		return false
	 }
	
	 if (str.indexOf(" ")!=-1){
		//alert("Invalid E-mail ID")
		return false
	 }

	 return true					
}

EsmetaContactClass.prototype.validateForm = function(){
	//Obtencion de datos del formulario
	var formObj = document.FRM_SEND_REQUEST;
	var fullNameObj = formObj.fullName;
	var companyObj = formObj.company;
	var phoneObj = formObj.phone;
	var emailObj = formObj.email;
	var requestObj = formObj.request;
	
	var fullName = this.trimString(fullNameObj.value);
	var company = this.trimString(companyObj.value);
	var phone = this.trimString(phoneObj.value);
	var email = this.trimString(emailObj.value);
	var request = this.trimString(requestObj.value);

	//Flag de validacion
	var flag = false;

	if(fullName != ""){
		if(company != ""){
			if(phone != ""){
				if(email != ""){
					if(this.checkEmail(email)){
						if(request != ""){
							flag = true;
						}else{
							alert("Por favor, indiquenos el motivo de su consulta");
							requestObj.focus();
						}
					}else{
						alert("Por favor, introduzca su email");
						emailObj.focus();
					}
				}else{
					alert("Por favor, introduzca su email");
					emailObj.focus();
				}
			}else{
				alert("Por favor, introduzca la empresa en la que trabaja");
				phoneObj.focus();
			}
		}else{
			alert("Por favor, introduzca la empresa en la que trabaja");
			companyObj.focus();
		}
	}else{
		alert("Por favor, introduzca su Nombre Completo");
		fullNameObj.focus();
	}

	if(flag){
		emailObj.value = email;

		this.AJAX_sendEmail(fullName,company,phone,email,request);
	}
}

/*
AJAX METHODS
*/

//Generic method to return an Ajax Error with Javascript Prototype Framework
EsmetaContactClass.prototype.reportError = function(){
	alert("Sorry, There was a error in the process.");
};

//Make a request to know if the email exist in the system
EsmetaContactClass.prototype.AJAX_sendEmail = function(fullName,company,phone,email,request){
	var seed = Math.ceil(1000000000*Math.random());
	var url = "http://www.esmeta.es/r_php/esmeta/sendEmail.php";
	
	var str = "";
	str += "&fullName=" + fullName;
	str += "&company=" + company;
	str += "&phone=" + phone;
	str += "&email=" + email;
	str += "&request=" + request;
	
	var pars = 'seed='+ seed + str;
	
	//Ajax Prototype Framework
	var myAjax = new Ajax.Request(url,
	{
	method: 'get',
	parameters: pars,
	onComplete: this.showResponseSendEmail,
	onFailure: this.reportError
	});
}

EsmetaContactClass.prototype.showResponseSendEmail = function (originalRequest){
	//alert(originalRequest.responseText);
	
	var data = originalRequest.responseText;	
	var message = readEsmetaXML("esmeta",data);
	//alert(message);
	if(message != -1){
		message = readEsmetaXML("transaction",data);
		if(message != -1){
			if(message == 1){
				alert("Su consulta ha sido enviada con éxito");
				
				ecObj = new EsmetaContactClass("");
				ecObj.disableForm();
			}else{
				alert("Hemos tenido incidencia con el servicio.\nIntente ponerse en contacto con nosotros\na través de otros medios.");
				//alert("Impossible to read Esmeta XML Protocol1");
			}
		}else{
			alert("Hemos tenido incidencia con el servicio.\nIntente ponerse en contacto con nosotros\na través de otros medios.");
			//alert("Impossible to read Esmeta XML Protocol2");
		}
	}else{
		alert("Hemos tenido incidencia con el servicio.\nIntente ponerse en contacto con nosotros\na través de otros medios.");
		//alert("Impossible to read Esmeta XML Protocol3");
	}

};

EsmetaContactClass.prototype.disableForm = function(){
	var formObj = document.FRM_SEND_REQUEST;
	formObj.reset();
	formObj.requestButton.disabled=true;
}

