// JavaScript Document

// Function 1: basic function to create a XMLHttpRequest object
function getXMLHttpRequestObject(){
	var http_request = false;

	if (window.XMLHttpRequest){ // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		
		if (http_request.overrideMimeType)	{
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} else if (window.ActiveXObject){ // IE
		try{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e){
			try{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request)
	{
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}

	return http_request;
}

// Function 6: save/insert/update form data
function saveFormDataWithTimeOut(f)
{
	$('div.main').hide();
	temp = '<embed src="/utilities/badge/swf/speedometer.swf" width="320" quality="high" name="Speed" type="application/x-shockwave-flash" pluginpage="http://www.macromedia.com/go/getflashplayer"></embed>';
	document.getElementById('resultSection').style.display = "block";
	document.getElementById('resultSection').innerHTML = temp;
	url = document.location.href.split('#');
	document.location.href = url[0]+'#resultSection';
	window.setTimeout(saveFormData,7500);
}

function saveFormData()
{
		f = document.getElementById('insuranceQuoteForm');
		xmlReq  = getXMLHttpRequestObject();
		if (xmlReq)
		{
			var formData = '', elem = '';
			for(var s = 0; s < f.elements.length; s++){
				elem = f.elements[s];
				if(formData != ''){
					formData += '&';
				}
				// FIX for radio
				if(elem.type=='radio')
				{  
					if(elem.checked=='1')
					{	
						formData += elem.name+"="+elem.value;
					}
				}
				else
				{
					formData += elem.name+"="+elem.value;
				}
		}

		var securityCodeError = '<p><h3>Sorry! Invalid Security Code Provided.</h3></p><p>Please type the security code provided on section four carefully.</p>';
		var programError = '<p><h3>Sorry! Insurance Quote Reqest Process Could Not Complete.</h3></p><p>Please contact us at <a href="mailto:g.doyle@zippy.com.au">g.doyle@zippy.com.au</a> if you have any questions or concerns.</p>';
		var invalidInvitationCode = '<p><h3>Sorry! Insurance Quote Reqest Process Could Not Complete.</h3></p><p>You might have entered invalid/used password or invitation code. Please try again</p>';
		var systemError = '<p><h3>Sorry! Operation Failed</h3></p><p>A system error has been occured, please let us know with our contact us section</p>';
	
		xmlReq.onreadystatechange = function(){
			if(xmlReq.readyState == 4){
				if(xmlReq.responseText == "invalid_security_code"){
					document.getElementById('resultSection').style.display = "block";
					document.getElementById('resultSection').style.color = "#FF3300";
					document.getElementById('resultSection').innerHTML = securityCodeError;
				}else if(xmlReq.responseText == "program_error"){
					document.getElementById('resultSection').style.display = "block";
					document.getElementById('resultSection').style.color = "#FF3300";
					document.getElementById('resultSection').innerHTML = programError;
				}else if(xmlReq.responseText == "invitation_code_error"){
					document.getElementById('resultSection').style.display = "block";
					document.getElementById('resultSection').style.color = "#FF3300";
					document.getElementById('resultSection').innerHTML = invalidInvitationCode;
				}else if(xmlReq.responseText == "system_error"){
					document.getElementById('resultSection').style.display = "block";
					document.getElementById('resultSection').style.color = "#FF3300";
					document.getElementById('resultSection').innerHTML = systemError;
				}
				else
				{
					document.getElementById('resultSection').style.display = "block";
					document.getElementById('resultSection').innerHTML = xmlReq.responseText;
					id = $('div.speedbadge').attr('id').replace('b','');
					url = document.location.href.split('#');
					document.location.href = url[0]+'#'+id;
					$('#insuranceQuoteForm').hide();
				}
			}
		}

		xmlReq.open(f.method, f.action, true);
		xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlReq.send(formData);
		return false;
	}
}

// Function to create dynamic body area/contents based on menu click
function loadDynamicContent(url, loadToEId, parameterVal)
{
	host = '/utilities/';
	
	if(parameterVal != "")
	{
		url = host+"libs/carsearch_controller_extended.php?page=" + url + "&" + parameterVal;
	}
	else
	{
		url = host+"libs/carsearch_controller_extended.php?page=" + url;
	}

	var http_request = getXMLHttpRequestObject();
	if (http_request)
	{
		http_request.onreadystatechange = function()
		{ 
			createDynamicContents(http_request, loadToEId); 
		};
		
		http_request.open('GET', url, true);
		http_request.send(null);
	}
}

//Function supports function loadDynamicContent(url)
function createDynamicContents(http_request, loadToEId)
{
	if (http_request.readyState == 4){
		if (http_request.status == 200){
			//document.getElementById(loadToEId).appendChild(http_request.responseText);
			document.getElementById(loadToEId).innerHTML = http_request.responseText;
		}
		else
		{
			alert('There was a problem with the request. ['+http_request.status);
		}
	}
}
$(document).ready( function ()
{
	siteUrl = '/';
	url = document.location.href.split('#');
	
	if( url.length>1 && url[1].match(/\d/i)  )
	{
		$('#insuranceQuoteForm,div.main').hide();
		
		badgePlace = '<div id="speedbadge'+url[1]+'">Loading...</div>';
		$('#resultSection').html(badgePlace);
		$('#resultSection').show();
		$.getScript(siteUrl+'utilities/badge/get_speed_badge.php?id='+url[1]);
		
	}
	
});