﻿phonenumber_default_value = '';
name_default_value = '';
security_code_default_value = '';
valid_phone = false;
phonenumber_error = '';
language = '';
button_is_focused = true;
footer_height = 0;


//set country code when country combobox selection changes
function updateCountryCode(x) {
	phonenumber_default_value = document.getElementById("defaultPhoneId").value;
	document.getElementById("phonenumberErrorId").innerHTML = '&nbsp';
	document.getElementById("phoneNumberTextBox").value = phonenumber_default_value;
	document.getElementById("countryCodeTextBox").value = '+' + x.options[x.selectedIndex].value;
	document.getElementById("countryCodeValue").value = '+' + x.options[x.selectedIndex].value;
}

//delete chars if not numeric in phonenumber textbox
function updatephone() {

	for (var i = 0; (i < document.getElementById("phoneNumberTextBox").value.length); i++) {
		if ((document.getElementById("phoneNumberTextBox").value.charAt(i) >= '0') && (document.getElementById("phoneNumberTextBox").value.charAt(i) <= '9')) {
		}
		else {
			document.getElementById("phoneNumberTextBox").value = document.getElementById("phoneNumberTextBox").value.replace(document.getElementById("phoneNumberTextBox").value.charAt(i), "");
		}
	}
}

//----------------- methods for onfocus and lose focus for textfields----------------------------------
function phonenumber_is_focused() {
	document.getElementById("phonenumberErrorId").innerHTML = '&nbsp';
	phonenumber_default_value = document.getElementById("defaultPhoneId").value;
	if (document.getElementById("phoneNumberTextBox").value == phonenumber_default_value) {
		document.getElementById("phoneNumberTextBox").value = '';
	}
}

function phonenumber_lost_focus() {
	if (document.getElementById("phoneNumberTextBox").value == '') {
		document.getElementById("phoneNumberTextBox").value = phonenumber_default_value;
	}
}

function name_lost_focus() {
	if (document.getElementById("nameTextBox").value == '') {
		document.getElementById("nameTextBox").value = name_default_value;
	}
}

function name_is_focused() {
	name_default_value = document.getElementById("defaultNameId").value;
	document.getElementById("nameErrorId").innerHTML = '&nbsp';
	if (document.getElementById("nameTextBox").value == name_default_value) {
		document.getElementById("nameTextBox").value = '';
	}
}


function security_code_lost_focus() {
	if (document.getElementById("securityCodeTextBox").value == '') {
		document.getElementById("securityCodeTextBox").value = security_code_default_value;
	}
}

function security_code_is_focused() {
	document.getElementById("securityCodeErrorId").innerHTML = '&nbsp';
	security_code_default_value = document.getElementById("defaultSecurityCodeId").value;
	if (document.getElementById("securityCodeTextBox").value == security_code_default_value) {
		document.getElementById("securityCodeTextBox").value = '';
	}
}

//-----------------------------Button clicks------------------------------------------------------------------------------
//validate fields when button call us is clicked
function call_button_is_clicked() {
	error_found = false;
	language = document.getElementById("languageId").value;
	phonenumber_default_value = document.getElementById("defaultPhoneId").value;
	name_default_value = document.getElementById("defaultNameId").value;
	security_code_default_value = document.getElementById("defaultSecurityCodeId").value;

	document.getElementById("phonenumberErrorId").innerHTML = '&nbsp';
	if (document.getElementById("nameTextBox") != null) {
		document.getElementById("nameErrorId").innerHTML = '&nbsp';
	}
	if (document.getElementById("securityCodeTextBox") != null) {
		document.getElementById("securityCodeErrorId").innerHTML = '&nbsp';
	}

	if ((document.getElementById("phoneNumberTextBox").value == phonenumber_default_value) || (document.getElementById("phoneNumberTextBox").value == '')) {
		document.getElementById("phonenumberErrorId").innerHTML = getTranslatedText('500', language);
		error_found = true;
	}

	if (document.getElementById("isNameRequired").value != "no"){
		if (document.getElementById("nameTextBox") != null) {
			if ((document.getElementById("nameTextBox").value == name_default_value) || (document.getElementById("nameTextBox").value == '')) {
				document.getElementById("nameErrorId").innerHTML = getTranslatedText('501', language);
				error_found = true;
			}
		}
	}

	if (document.getElementById("securityCodeTextBox") != null) {
		if ((document.getElementById("securityCodeTextBox").value == security_code_default_value) || (document.getElementById("securityCodeTextBox").value == '')) {
			document.getElementById("securityCodeErrorId").innerHTML = getTranslatedText('502', language);
			error_found = true;
		}
	}

	if (!error_found) {
		switch_visibility('loaderImage');
		document.getElementById("callUsButton").disabled = true;
		document.getElementById("callUsButton").className = "disabledButton";
		validate_phone(document.getElementById("countryCodeTextBox").value.substring(1), document.getElementById("phoneNumberTextBox").value, function (isPhoneValid) {
			if (isPhoneValid) {
				document.getElementById("eventTarget").value = 'callButton';
				document.forms["Form1"].submit();
			}
			else {
				switch_visibility('loaderImage');
				document.getElementById("callUsButton").disabled = false;
				document.getElementById("callUsButton").className = "enabledButton";
			}
		});
	}
}


function new_call_button_is_clicked(){
	document.getElementById("eventTarget").value = 'newCallButton';
	document.forms["Form1"].submit();
}


//translate method for flag click
function translate(lang) {
	ip = document.getElementById("ipId").value;
	phonenumber_default_value = document.getElementById("defaultPhoneId").value;
	name_default_value = document.getElementById("defaultNameId").value;
	security_code_default_value = document.getElementById("defaultSecurityCodeId").value;
	//translate text
	if (document.getElementById("nameTextBox") != null) {
		if (document.getElementById("nameTextBox").value == name_default_value)
			document.getElementById("nameTextBox").value = getTranslatedText('101', lang);
	}
	if (document.getElementById("phoneNumberTextBox").value == phonenumber_default_value)
		document.getElementById("phoneNumberTextBox").value = getTranslatedText('102', lang);
	if (document.getElementById("securityCodeTextBox") != null) {
		if (document.getElementById("securityCodeTextBox").value == security_code_default_value)
			document.getElementById("securityCodeTextBox").value = getTranslatedText('103', lang);
	}
	document.getElementById("callUsButton").value = getTranslatedText('104', lang);
	document.getElementById("footerTextId").innerHTML = getTranslatedText('105', lang) + ': ' + ip;

	//empty error fields
	if (document.getElementById("nameTextBox") != null) {
		document.getElementById("nameErrorId").innerHTML = '&nbsp';
	}
	document.getElementById("phonenumberErrorId").innerHTML = '&nbsp';
	if (document.getElementById("securityCodeTextBox") != null) {
		document.getElementById("securityCodeErrorId").innerHTML = '&nbsp';
	}

	//change default values
	document.getElementById("defaultPhoneId").value = getTranslatedText('102', lang);
	document.getElementById("defaultNameId").value = getTranslatedText('101', lang);
	document.getElementById("defaultSecurityCodeId").value = getTranslatedText('103', lang);

	//change language
	document.getElementById("languageId").value = lang;

	//change banners
	if (document.getElementById("showHtml").value == "1") {
		if (document.getElementById("isTopImgDefault").value == "1") {
			previousSrc = document.getElementById("headerImage").src;
			document.getElementById("headerImage").src = previousSrc.substring(0, previousSrc.length - 14) + lang + '/img-top.png';
		}
	}
	if (document.getElementById("showHtml").value == "1") {
		if (document.getElementById("isBottomImgDefault").value == "1") {
			previousSrc = document.getElementById("footerImage").src;
			document.getElementById("footerImage").src = previousSrc.substring(0, previousSrc.length - 17) + lang + '/img-bottom.png';
		}
	}
	if ((document.getElementById("isTemplateLarge").value == "1") && (document.getElementById("showHtml").value == "1")) {
	    if (document.getElementById("isLeftImgDefault").value == "1") {
		    previousSrc = document.getElementById("leftImage").src;
		    document.getElementById("leftImage").src = previousSrc.substring(0, previousSrc.length - 15) + lang + '/img-left.png';
		}
	}

}



//--------------------------------------- AJAX request for phonenumber validation-------------------------------------------------
function validate_phone(countryCode, phonenumber, callback) {
	isPhoneValid = false;
	phonenumber = countryCode + phonenumber;
	language = document.getElementById("languageId").value;
	var mypostrequest = new ajaxRequest();
	mypostrequest.onreadystatechange = function () {
		if (mypostrequest.readyState == 4) {
			if (mypostrequest.status == 200 || window.location.href.indexOf("http") == -1) {
				if (mypostrequest.responseText == 'ok') {
					isPhoneValid = true;
					callback(isPhoneValid);
				}
				else {
					if (mypostrequest.responseText.length > 6) {

						if (mypostrequest.responseText.substring(0, 6) == "Err208") {//invalid button id
							document.getElementById("phonenumberErrorId").innerHTML = getTranslatedText('208', language);
						}
						else if (mypostrequest.responseText.substring(0, 6) == "Err010") {//Phone number not routable
							document.getElementById("phonenumberErrorId").innerHTML = getTranslatedText('222', language);
						}
						else if (mypostrequest.responseText.substring(0, 6) == "Err014") {//Phone number blacklisted
							document.getElementById("phonenumberErrorId").innerHTML = getTranslatedText('209', language);
						}
						else if (mypostrequest.responseText.substring(0, 6) == "Err015") {//Phone number permission
							document.getElementById("phonenumberErrorId").innerHTML = getTranslatedText('215', language);
						}
						else if (mypostrequest.responseText.substring(0, 6) == "Err016") {//Phone number per day permision
							document.getElementById("phonenumberErrorId").innerHTML = getTranslatedText('217', language);
						}
						else if (mypostrequest.responseText.substring(0, 6) == "Err017") {//Country not allowed to call
							document.getElementById("phonenumberErrorId").innerHTML = getTranslatedText('224', language);
						}
						else if (mypostrequest.responseText.substring(0, 6) == "Err018") {//Phone type not allowed to call
							document.getElementById("phonenumberErrorId").innerHTML = getTranslatedText('225', language);
						}
						else {//other error
							document.getElementById("phonenumberErrorId").innerHTML = getTranslatedText('gen', language);
						}

					}
					else { //other error
						document.getElementById("phonenumberErrorId").innerHTML = getTranslatedText('gen', language);
					}
					callback(isPhoneValid);
				}
			}
			else {
				//alert("An error has occured making the request");
				document.getElementById("phonenumberErrorId").innerHTML = getTranslatedText('gen', language);
				callback(isPhoneValid);
			}
		}
	}
	var phonenumbervalue = encodeURIComponent(phonenumber);
	var actionvalue = encodeURIComponent('validate_number');
	var buttonidvalue = encodeURIComponent(document.getElementById("c2cbuttonId").value);
	var parameters = "action=" + actionvalue + "&First_Number=" + phonenumbervalue + "&button_id=" + buttonidvalue;
	var url = document.getElementById('valUrl').value;
	mypostrequest.open("POST", url+'?'+parameters, true);
	mypostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	mypostrequest.send(null);
}

function ajaxRequest() {
	var activexmodes = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]; //activeX versions to check for in IE
	if (window.ActiveXObject) { //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
		for (var i = 0; i < activexmodes.length; i++) {
			try {
				return new ActiveXObject(activexmodes[i]);
			}
			catch (e) {
				//suppress error
			}
		}
	}
	else if (window.XMLHttpRequest) {  // if Mozilla, Safari etc
		return new XMLHttpRequest();
	}
	else
		return false;
}

function switch_visibility(divID) {
	var item = document.getElementById(divID);
	if (item) {
		item.className = (item.className == 'hidden') ? 'unhidden' : 'hidden';
	}
}

function refreshCaptcha() {
	document.getElementById("securityCodeImage").src = 'JpegImage.aspx?c='+Math.random();
}

function mouse_is_over_button() {
	if (document.getElementById("callUsButton").className == "enabledButton")
		document.getElementById("callUsButton").className = "hoveredButton";
}

function mouse_is_exited_button() {
	if (document.getElementById("callUsButton").className == "hoveredButton")
		document.getElementById("callUsButton").className = "enabledButton";
}

$(window).load(function () {
	if (document.getElementById("countryCodeTextBox") != null)
		document.getElementById("countryCodeValue").value = document.getElementById("countryCodeTextBox").value;

	//large template
	if (document.getElementById("isTemplateLarge").value == "1") {
		//html images are visible
		if (document.getElementById("showHtml").value == "1") {
			//set width at 500px only when html images are visible
			$("#page-wrap").css('width', '500px');
			var obj_height = $("#page-wrap").height();
			var obj_width = $("#page-wrap").width();
			var valid_form_height = $("#validForm").height();
			var error_form_height = $("#errorForm").height();
			if ($.browser.msie) {//explorer
				obj_width += 18;
				obj_height += 68;
			}
			else if ($.browser.mozilla) {//mozilla
				obj_width += 20;
				obj_height += 78;
			}
			else if ($.browser.webkit) {//chrome,safari
				obj_width += 18;
				obj_height += 66;
			}
			else if ($.browser.opera) {//opera
				obj_width += 21;
				obj_height += 58;
			}
			//put valid form in middle
			var h = valid_form_height / 2;
			$("#validForm").css('position', 'absolute');
			$("#validForm").css('top', '51%');
			$("#validForm").css('margin-top', '-' + h + 'px');
			var k = $("#validForm").height();
			$("#validForm-wrap").css('height', $("#validForm").height());

			//put error form in middle
			var h2 = error_form_height / 2;
			var k = $("#errorForm").height();
			$("#errorForm").css('position', 'absolute');
			$("#errorForm").css('top', '51%');
			$("#errorForm").css('margin-top', '-' + h2 + 'px');
			$("#errorForm-wrap").css('height', error_form_height);
		}
		else {//html images are not visible
			var obj_height = $("#page-wrap").height();
			var obj_width = $("#page-wrap").width();
			if ($.browser.msie) {
				obj_width += 18;
				obj_height += 68;
			}
			else if ($.browser.mozilla) {
				obj_width += 20;
				obj_height += 78;
			}
			else if ($.browser.webkit) {
				obj_width += 18;
				obj_height += 66;
			}
			else if ($.browser.opera) {
				obj_width += 21;
				obj_height += 58;
			}
		}
		window.resizeTo(obj_width, obj_height);
	}
	else {//small template
		var obj_height = $("#page-wrap").height();
		var obj_width = $("#page-wrap").width();
		if (document.getElementById("showHtml").value == "1") {
			if ($.browser.msie) {
				obj_width += 18;
				obj_height += 68;
			}
			else if ($.browser.mozilla) {
				obj_width += 20;
				obj_height += 78;
			}
			else if ($.browser.webkit) {
				obj_width += 18;
				obj_height += 66;
			}
			else if ($.browser.opera) {
				obj_width += 21;
				obj_height += 58;
			}
		}
		else {
			if ($.browser.msie) {
				obj_width += 18;
				obj_height += 68;
			}
			else if ($.browser.mozilla) {
				obj_width += 20;
				obj_height += 78;
			}
			else if ($.browser.webkit) {
				obj_width += 18;
				obj_height += 66;
			}
			else if ($.browser.opera) {
				obj_width += 21;
				obj_height += 58;
			}
		}
		window.resizeTo(obj_width, obj_height);
	}

});

