﻿/************************** DISCOUNT CODE CALLBACK *********************************/

function processEnquiry(){
	var myajax=ajaxpack.ajaxobj
	var myfiletype=ajaxpack.filetype
	//openDiscount();
	if (myajax.readyState == 4){ //if request of file completed
		if (myajax.status==200 || window.location.href.indexOf("http")==-1){ //if request was successful or running script locally
			var xmldoc = myajax.responseXML;

            var root = xmldoc.getElementsByTagName('enquiry')[0];
            var name = root.getElementsByTagName('name')[0].firstChild.nodeValue;
            var response_type = root.getElementsByTagName('response_type')[0].firstChild.nodeValue;

			switch (response_type) {
				case "email_error":
					showError("Please enter a valid email address.");
					break;
				case "send_error":
					showError("There has been an error. Please try again.");
					break;
				case "success":
					setTimeout(function(){
						doSuccess(name);
					}, 1000);
					break;
			}
			
		}
	}
}

/*********************** CREATE POST STRING FOR ENQUIRY FORM *************************/
function getEnquiryData(){
	var enquiryForm = document.getElementById('enquiry-form');
	for (var i=0;i<enquiryForm.length;i++)
	{
		if(i == 0){
			var postString = enquiryForm.elements[i].name + "=" + encodeURI(enquiryForm.elements[i].value);
		}
		else{
			postString += "&" + enquiryForm.elements[i].name + "=" + encodeURI(enquiryForm.elements[i].value);
		}
	}

	return postString;
}


function hideForm(){
	document.getElementById('enquiry-form').style.display = "none";
	document.getElementById('contact-loading').style.display = "block";
	return true;
}

function showError(message){
	document.getElementById('contact-loading').style.display = "none";
	document.getElementById('enquiry-form').style.display = "block";
	if(document.all){
		document.getElementById('contact-errors').innerText = message;
	}
	else{
		document.getElementById('contact-errors').textContent = message;
	}
	document.getElementById('contact-errors').style.display = "block";
	return false;
}

function doSuccess(name){
	document.getElementById('contact-loading').style.display = "none";
	document.getElementById('contact-success').style.display = "block";
	setTimeout(function(){
		hideContact();
	}, 2000);
	setTimeout(function(){
		loadContact();
	}, 4000);
	return false;
}

function validateForm(){
	hideForm();
	
	var enquiryForm = document.getElementById('enquiry-form');
	var errors = new Array();
	var error_count = 0;
	
	for (var i=0;i<enquiryForm.length;i++)
	{
		if(enquiryForm.elements[i].value == "" && strpos(enquiryForm.elements[i].className, "required-entry") !== false ){
			errors[error_count] = ucwords(enquiryForm.elements[i].name.replace("_"," "));
			error_count = 1 + error_count;
		}
	}
	
	if(error_count > 0){
		error_string = "Please enter your ";
		if(error_count > 1){
			for(var i = 0; i < error_count; i++){
				if(i == (error_count - 1)){
					error_string += "and " + errors[i] + ".";
				}
				else if(i == (error_count - 2)){
					error_string += errors[i] + " ";
				}
				else{
					error_string += errors[i] + ", ";
				}
			}
		}
		else{
			error_string += errors[0] + ".";
		}
		setTimeout(function(){
			showError(error_string);
		}, 500);
	}
	else{
		// send!
		ajaxpack.postAjaxRequest(ajaxpack.basedomain+'/handlers/contact.php',getEnquiryData(),processEnquiry,'xml');
	}
}

function strpos (haystack, needle, offset) {
    var i = (haystack+'').indexOf(needle, (offset || 0));
    return i === -1 ? false : i;
}

function ucwords (str) {
    return (str + '').replace(/^([a-z])|\s+([a-z])/g, function ($1) {
        return $1.toUpperCase();
    });
}
