//General

function GetSupportForm() {

	for (var i = 0; i < document.forms.length; i++) {

		if (document.forms[i].name.substring(0, 8) == 'support_')

			return document.forms[i];

	}

}



function GetSupportFormName() {

	for (var i = 0; i < document.forms.length; i++) {

		if (document.forms[i].name.substring(0, 8) == 'support_')

			return document.forms[i].name.substring(8);

	}	

}



function GetElementByTagNameAndId(Tag, Id) {

	var dOurForm = GetSupportForm();

	var Elements = dOurForm.getElementsByTagName(Tag);

	var ElementsLen = Elements.length;



	for (i = 0; i < ElementsLen; i++) {

		if (Elements[i].getAttribute('Id') == Id) {

			return Elements[i];

		}

	}

}



function Submit(SendTech) {

	if (SendTech == 'php') {

		return SubmitPHP();

	} else if (SendTech == 'ajax') {

		SubmitAJAX();

	}

}



//PHP

function JSValidateFields() {

	var dOurForm = GetSupportForm();

	if (dOurForm.cname.value == "") {

		alert('Introduceti numele dumneavoastra');

		dOurForm.cname.focus();

		return false;

	}	



	var email = dOurForm.email.value;

	emailTest = "^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z_-]+\\.)+[a-z]{2,4}$"; 

	var regex = new RegExp(emailTest); 

	if (!regex.test(email) || !(email.length > 0)) {

		alert('Introduceti o adresa email valida');

		dOurForm.email.focus();

		return false;		

	}

	/*

	if (dOurForm.subject.value == "") {

		alert('Please fill subject field');

		dOurForm.subject.focus();

		return false;

	}		



	if (dOurForm.message.value == "") {

		alert('Please fill message field');

		dOurForm.message.focus();

		return false;

	}		

	*/

	

	return true;

}



function SubmitPHP() {

	var dOurForm = GetSupportForm();

	if (JSValidateFields()) 

		dOurForm.submit();

}



//Ajax

var Ajax;



function GetAJAXObject() {

  var ajax=null;  

	try { ajax=new XMLHttpRequest(); }	catch (e) {}  

	if(!ajax) try { ajax=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}  

	if(!ajax) try { ajax=new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}  

	return ajax;

}



function grabPosXML (tagName) {

  if (Ajax) 

	  if (Ajax.responseXML)

		  if (Ajax.responseXML.documentElement)

			  if (Ajax.responseXML.documentElement.getElementsByTagName(tagName)[0])

				  if (Ajax.responseXML.documentElement.getElementsByTagName(tagName)[0].childNodes[0])

						return Ajax.responseXML.documentElement.getElementsByTagName(tagName)[0].childNodes[0].nodeValue;

}



function SubmitAJAX() {

	Ajax = GetAJAXObject();

	if (!Ajax)

	  return false;



	var dOurForm = GetSupportForm();

	var URL = dOurForm.action;

	

	var success = document.getElementById(GetSupportFormName() + '_statusBar');

	var posName = dOurForm.cname;

	var posEmail = dOurForm.email;

	var posSubject = dOurForm.subject;

	var posMessage = dOurForm.message;

	var posCaptcha = dOurForm.captcha;

	

	showContactTimer(); 

	success.style.display = 'none'; 

	

	// convert (&, +, =) to string equivs. Needed so URL encoded POST won't choke.

	var str1 = posName.value;

	str1 = str1.replace(/&/g,"**am**");

	str1 = str1.replace(/=/g,"**eq**");

	str1 = str1.replace(/\+/g,"**pl**");

	var str2 = posEmail.value;

	str2 = str2.replace(/&/g,"**am**");

	str2 = str2.replace(/=/g,"**eq**");

	str2 = str2.replace(/\+/g,"**pl**");

	var str3 = posSubject.value;

	str3 = str3.replace(/&/g,"**am**");

	str3 = str3.replace(/=/g,"**eq**");

	str3 = str3.replace(/\+/g,"**pl**");

	var str4 = posMessage.value;

	str4 = str4.replace(/&/g,"**am**");

	str4 = str4.replace(/=/g,"**eq**");

	str4 = str4.replace(/\+/g,"**pl**");

	if (posCaptcha) {

		var str5 = posCaptcha.value;

		str5 = str5.replace(/&/g,"**am**");

		str5 = str5.replace(/=/g,"**eq**");

		str5 = str5.replace(/\+/g,"**pl**");

	}

		

	var SendData = "posName="+str1+"&posEmail="+str2+"&posSubject="+str3+"&posMessage="+str4+"&posCaptcha="+str5;



	Ajax.open("POST", URL);

	Ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	Ajax.onreadystatechange = HandleAJAXResponse;	

  Ajax.send(SendData);

}



function HandleAJAXResponse() {

  // page loaded "complete"

	if (Ajax.readyState == 4) {

			// page is "OK"

			if (Ajax.status == 200) {	

				hideContactTimer(grabPosXML("status"), grabPosXML("errors"));

			}

	}

}



function showContactTimer () {

	var loader = document.getElementById(GetSupportFormName() + '_loadBar');

	var dOurForm = GetSupportForm();

	var MainTable = GetElementByTagNameAndId('table', GetSupportFormName() + '_main_table');

	var InfoTable = GetElementByTagNameAndId('table', GetSupportFormName() + '_info_table');

	var LoadBarTable = GetElementByTagNameAndId('table', GetSupportFormName() + '_loadBar_table');

	InfoTable.width = MainTable.clientWidth;

	LoadBarTable.width = MainTable.clientWidth;

	loader.style.display = 'block';

	//sentTimer = setTimeout("hideContactTimer()",1000);

}

function hideContactTimer (posStatus, posErrors) {

	function ClearFields() {

		var dOurForm = GetSupportForm();

		var inputs = dOurForm.getElementsByTagName('input');

		var inputsLen = inputs.length;

		var tAreas = dOurForm.getElementsByTagName('textarea');

		var tAreasLen = tAreas.length;

		

		for ( i=0;i<inputsLen;i++ ) {

			if ( inputs[i].getAttribute('type') == 'text' ) {

				inputs[i].value = '';

			}

		}

		for ( j=0;j<tAreasLen;j++ ) {

			tAreas[j].value = '';

		}		

	}



	var loader = document.getElementById(GetSupportFormName() + '_loadBar');

	var status = document.getElementById(GetSupportFormName() + '_statusBar');



	if (posStatus == 'OK') {

		loader.style.display = "none";

		status.style.display = "block";

		status.innerHTML = '<strong style="color:green;">' + sOKMessage + '</strong>';		

		ClearFields();

	} else if (posStatus == 'NOTOK') {

		loader.style.display = "none";

		status.style.display = "block";

		status.innerHTML = '<strong style="color:red;">There were problems Sending Email. Please check back in a couple minutes!</strong>';		

	} else if (posStatus == 'ERRORS') {

		loader.style.display = "none";

		status.style.display = "block";

		status.innerHTML = '<strong style="color:red;">Following errors were found:</strong>';			

		status.innerHTML += '<div align="center" style="color:black">' + posErrors + '</div>';

	} else if (posStatus == 'CAPTCHAERROR') {

		document.images.imgCaptcha.src = document.images.imgCaptcha.src;

		loader.style.display = "none";

		status.style.display = "block";

		status.innerHTML = '<strong style="color:red;">Following errors were found:</strong>';			

		status.innerHTML += '<div align="center" style="color:black">' + posErrors + '</div>';		

	}

}