/* frameworks.js
 * Copyright (c)2008 John Lawson
 * All Rights Reserved
 */

function setCookie(name,value,days){
	if(days){
		var date = new Date();
		date.setTime(date.getTime() + (days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function getCookie(name){
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i = 0; i < ca.length; i++){
		var c = ca[i];
		while(c.charAt(0) == ' ') c = c.substring(1,c.length);
		if(c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function killCookie(name){
	createCookie(name,"",-1);
}

function js(file){
	var id = 'run';
	script = document.createElement('script');
	script.id = id;
	script.type = 'text/javascript';
	script.src = file;
	document.getElementsByTagName("head")[0].appendChild(script);
	var element = document.getElementById(id);
	if(element != null){
		element.parentNode.removeChild(element);
		delete element;
	}
}

var scrollEnable = 1;
function html(url,id,append){
	var ajax;
	if(typeof ActiveXObject != 'undefined'){
		try{
			ajax = new ActiveXObject('Msxml2.XMLHTTP');
		}
		catch(e){
			try{
				ajax = new ActiveXObject('Microsoft.XMLHTTP');
			}
			catch(e){
				try{
					ajax = new ActiveXObject('Msxml2.XMLHTTP.4.0');
				}
				catch(e){
					ajax = false;
				}
			}
		}
	}
	else if(XMLHttpRequest){
		try{
			ajax = new XMLHttpRequest();
		}
		catch(e){
			ajax = false;
		}
	}
	else{
		ajax = false;
	}

	if(ajax){
		ajax.onreadystatechange = function(){
			try{
				if(ajax.readyState == 4){
					if((ajax.status == 200) || (ajax.status == 0)){
						var offset = ajax.responseText.indexOf('<script id="dynamic" type="text/javascript">\n');
						if(offset == -1){
//							document.getElementById(id).appendChild(document.createTextNode(ajax.responseText));
							document.getElementById(id).innerHTML = ajax.responseText;
						}
						else{
							document.getElementById(id).innerHTML = ajax.responseText.substr(0,offset);
							var jsElement = ajax.responseText.substr(offset,ajax.responseText.length);
							jsElement = jsElement.replace( '<script id="dynamic" type="text/javascript">\n', '' );
							jsElement = jsElement.replace( '\n</script>\n', '' );
							if(append == null){
								script = document.createElement('script');
								script.id = 'dynamic';
								script.type = 'text/javascript';
								script.text = jsElement;
								document.getElementsByTagName('head')[0].appendChild(script);
							}
							else{
								document.getElementById(id).innerHTML += ajax.responseText;
								scrollEnable = 1;
							}
							pageTracker._trackPageview(url);  // Google Analytics
						}
						switch(id){
						case 'window':
							document.getElementById('mask').style.display = '';
							document.getElementById(id).style.visibility = 'visible';
							break;
						}
					}
				}
			}
			catch(e){}
		}

		ajax.open('GET',url,true);
		ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		ajax.send(null);
		return false;
	}
}

var screenWidth = 0, screenHeight = 0;
function resize(){
	var margin = 20;
	var spacing = 20;
	var left = 210;
	var top = 133;
	
	if(typeof(window.innerWidth) == 'number'){  //non-IE
		screenWidth = window.innerWidth;
		screenHeight = window.innerHeight;
	}
	else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)){  // IE 6+ in 'standards compliant mode'
		screenWidth = document.documentElement.clientWidth;
		screenHeight = document.documentElement.clientHeight;
	}
	else if(document.body && (document.body.clientWidth || document.body.clientHeight)){  // IE 4 compatible
		screenWidth = document.body.clientWidth;
		screenHeight = document.body.clientHeight;
	}

	document.getElementById('top').style.position = 'absolute';
	document.getElementById('top').style.left     = margin + 'px';
	document.getElementById('top').style.top      = margin + 'px';
	document.getElementById('top').style.width    = (screenWidth - (margin + margin)) + 'px';
	document.getElementById('top').style.height   = top + 'px';
	
	document.getElementById('left').style.position = 'absolute';
	document.getElementById('left').style.left     = margin + 'px';
	document.getElementById('left').style.top      = (margin + top + spacing) + 'px';
	document.getElementById('left').style.width    = left + 'px';
	document.getElementById('left').style.height   = (screenHeight - (margin + top  + spacing)) + 'px';
	
	document.getElementById('center').style.position = 'absolute';
	document.getElementById('center').style.left     = (margin + left + spacing + 10) + 'px';
	document.getElementById('center').style.top      = (margin + top  + spacing) + 'px';
	document.getElementById('center').style.width    = (screenWidth  - (margin + left + spacing + 10)) + 'px';
	document.getElementById('center').style.height   = (screenHeight - (margin + top  + spacing)) + 'px';
}

document.write('<div id="mask"></div>\n');
document.getElementById('mask').style.display = 'none';
document.write('<div id="window" class="window"></div>\n');
resize();

function showWindow(width,height,url){
	html(url,'window');
	document.getElementById('window').style.left = ((screenWidth / 2) - (width / 2)) + 'px';
	document.getElementById('window').style.top = ((screenHeight /2) - (height / 2)) + 'px';
	document.getElementById('window').style.width = width + 'px';
	document.getElementById('window').style.height = height + 'px';
}
function hideWindow(){
	document.getElementById('window').style.visibility = 'hidden';
	document.getElementById('mask').style.display = 'none';
document.getElementById('window').innerHTML = '';
}

var start = 10;
function liveSearch(){
	setCookie('cQuery',document.getElementById('query').value,30);
	setCookie('cZip',document.getElementById('zip').value,30);
	setCookie('cRadius',document.getElementById('radius').value,30);
	setCookie('cSort',document.getElementById('sort').value,30);
	setCookie('cDirection',document.getElementById('direction').value,30);
	html('search.php?query=' + document.getElementById('query').value + '&zip=' + document.getElementById('zip').value + '&radius=' + document.getElementById('radius').value+ '&start=0' + '&limit=10' + '&sort=' + document.getElementById('sort').value + '&direction=' + document.getElementById('direction').value,'center');
	start = 10;
}
function liveScroll(){
	if( scrollEnable == 1 )
	{
		if( document.getElementById('center').scrollTop > ( document.getElementById('center').scrollHeight - ( document.getElementById('center').clientHeight * 2 ) ) )
		{
			scrollEnable = 0;
			html('search.php?query=' + document.getElementById('query').value + '&zip=' + document.getElementById('zip').value + '&radius=' + document.getElementById('radius').value+ '&start=' + start + '&limit=1' + '&sort=' + document.getElementById('sort').value + '&direction=' + document.getElementById('direction').value, 'center');
			start++;
		}
	}
}

window.onload = function(){
	document.getElementById('query').focus();
	liveSearch();
	return false;
};
window.onresize = function(){
	resize();
	return false;
};
document.getElementById('linkHelp').onclick = function(){
	showWindow(500,650,'help.php');
};
var TIMEOUT;
document.getElementById('query').onkeydown = function(e){
	if(!e) var e = window.event;
	switch(e.keyCode){
	case 13:
		liveSearch();
		break;
	default:
		if((e.keyCode == 8) ||
		   (e.keyCode == 46) ||
		  ((e.keyCode >= 48) && (e.keyCode <= 57)) ||   // 0-9
		  ((e.keyCode >= 65) && (e.keyCode <= 90)) ||   // A-Z
		  ((e.keyCode >= 97) && (e.keyCode <= 122))){  // a-z
			clearTimeout(TIMEOUT);
		}
	}
};
document.getElementById('query').onkeyup = function(e){
	if(!e) var e = window.event;
	clearTimeout(TIMEOUT);  // clear previous
	switch(e.keyCode){
	case 13:
		break;
	default:
		if((e.keyCode == 8) ||
		   (e.keyCode == 46) ||
		  ((e.keyCode >= 48) && (e.keyCode <= 57)) ||   // 0-9
		  ((e.keyCode >= 65) && (e.keyCode <= 90)) ||   // A-Z
		  ((e.keyCode >= 97) && (e.keyCode <= 122))) {  // a-z
			if((document.getElementById('query').value.length > 2) || (document.getElementById('query').value.length == 0)){
				TIMEOUT = setTimeout("liveSearch()",2000);
			}
		}
	}
};
document.getElementById('zip').onkeydown = function(e){
	if(!e) var e = window.event;
	switch(e.keyCode){
	case 13:
		liveSearch();
		break;
	default:
		if((e.keyCode == 8) ||
		   (e.keyCode == 46) ||
		  ((e.keyCode >= 48) && (e.keyCode <= 57)) ||   // 0-9
		  ((e.keyCode >= 65) && (e.keyCode <= 90)) ||   // A-Z
		  ((e.keyCode >= 97) && (e.keyCode <= 122))){  // a-z
			clearTimeout(TIMEOUT);
		}
	}
};
document.getElementById('zip').onkeyup = function(e){
	if(!e) var e = window.event;
	clearTimeout(TIMEOUT);  // clear previous
	switch(e.keyCode) {
	case 13:
		if( document.getElementById('zip').value.length == 5 ) document.getElementById('distance').style.visibility = 'visible';
		else {
			document.getElementById('zip').value = '';
			killCookie('cZip');
		}
		break;
		
	default:
		if((e.keyCode == 8) ||
		   (e.keyCode == 46) ||
	     ((e.keyCode >= 48) && (e.keyCode <= 57)) ||   // 0-9
	     ((e.keyCode >= 65) && (e.keyCode <= 90)) ||   // A-Z
	     ((e.keyCode >= 97) && (e.keyCode <= 122))) {  // a-z
			if((document.getElementById('zip').value.length == 5) || (document.getElementById('zip').value.length == 0)) {
				TIMEOUT = setTimeout("liveSearch()",2000);
				if( document.getElementById('zip').value.length == 5 ) document.getElementById('distance').style.visibility = 'visible';
				else {
					document.getElementById('zip').value = '';
					killCookie('cZip');
				}
			}
		}
	}
};
document.getElementById('sort').onchange = function(){
	liveSearch();
	return false;
};
document.getElementById('direction').onchange = function(){
	liveSearch();
	return false;
};
document.getElementById('radius').onchange = function(){
	liveSearch();
	return false;
};
document.getElementById('center').onscroll = function(){
	liveScroll();
	return false;
};
document.getElementById('linkCarFinanceQuote').onclick = function(){
	showWindow(550,750,'carFinanceQuote.php');
	return false;
};
document.getElementById('linkNewCarQuote').onclick = function(){
	showWindow(500,650,'newCarQuote.php');
	return false;
};
document.getElementById('linkVisitorAgreement').onclick = function(){
	showWindow(500,650,'visitorAgreement.php');
	return false;
};
document.getElementById('linkContactUs').onclick = function(){
	showWindow(500,650,'contactUs.php');
	return false;
};

call = new Image(20,20);
call.src = "images/call.png";
button = new Image(20,20);
button.src = "images/button.png";

corner1 = new Image(20,20);
corner1.src = "images/nw.gif";
corner2 = new Image(20,20);
corner2.src = "images/ne.gif";
corner3 = new Image(20,20);
corner3 .src = "images/sw.gif";
corner4 = new Image(20,20);
corner4.src = "images/se.gif";
