

//--------------------------
//detects the capabilities of the browser
function BrowserSniffer() {
	if (navigator.userAgent.indexOf("Opera")!=-1 && document.getElementById) type="OP";		//Opera
	else if (document.all) type="IE";														//Internet Explorer e.g. IE4 upwards
	else if (document.layers) type="NN";													//Netscape Communicator 4
	else if (!document.all && document.getElementById) type="MO";							//Mozila e.g. Netscape 6 upwards
	else type = "IE";		//I assume it will not get here

	//if(window.XMLHttpRequest) type="IE7";
	//alert(type);
}


var type = "IE";	//Variable used to hold the browser name
BrowserSniffer();



//--------------------------
function ChangeMessage(id, str) {
	if (type=="IE") {
		if(document.all[id].type=='text' || document.all[id].type=='password') ///added to support IE7
		  document.all[id].value = str;
		else
		  document.all[id].innerHTML = str;
	}
	if (type=="NN") {
		document.layers[id].document.open();
		document.layers[id].document.write(str);
		document.layers[id].document.close();
	}
	if (type=="MO" || type=="OP") {
	    if(document.getElementById(id).type=='text' || document.getElementById(id).type=='password')
		  document.getElementById(id).value = str;
		else
		  document.getElementById(id).innerHTML = str;
	}
}

function redirect_resize(w, h){
	self.window.resizeTo(w, h);
	self.window.moveTo(50,50);
	self.window.statusbar.visible = false;
	self.window.toolbar.visible = false;
	self.window.sidebar.visible = false;
    self.window.locationbar.visible = false;
    self.window.menubar.visible = false;
    self.window.personalbar.visible = false;
	self.window.scrollbars.visible = false;

	
	//self.location.href="http://bargainsgroup.com";
}


//----------------------------------------
function ShowIt(current, num) {
	if (type=="IE") {
		ms=document.all[current];
		ms.style.visibility = "visible";
	}
	if (type=="NN") {
		ms=document.layers[current];
		ms.visibility = "visible";
	}
	if (type=="MO" || type=="OP") {
		ms=document.getElementById(current);
		ms.style.visibility = "visible";
	}
}


//----------------------------------------
function HideIt(current) {
	if (type=="IE") {
		ms=document.all[current];
		ms.style.visibility = "hidden";
	}
	if (type=="NN") {
		ms=document.layers[current];
		ms.visibility = "hidden";
	}
	if (type=="MO" || type=="OP") {
		ms=document.getElementById(current);
		ms.style.visibility = "hidden";
	}
}


//--------------------------------------
// Trim leading and trailing white space
function trim(str) {
  return str.replace(/^\s+|\s+$/g, '')
};


//---------------------------------------
// Validate the email address
function validateEmail(email) {
	var re = false;
	var ea = trim(email);
	var pattern = /^[a-zA-Z0-9][\w\-\.]{0,100}\@[a-zA-Z0-9][\w-]+(\.[a-zA-Z]\w+)+$/;
	///^[a-zA-Z][\w\-\.]{0,50}\@[a-zA-Z][\w-]+(\.[a-zA-Z]\w+)+$/;
	if (ea != "" && pattern.test(ea)) {
		re = true;
	}
	return re;
}


//-------------------------------------
// Check whether it is empty or not
function validateEmpty(nm){
	var name = trim(nm);
	return name==""? false : true;
}




//---------------------------------
function validatePhone(num){
	var re = false;
	var n = trim(num);
	var pattern = /^\(?\d{3}\)?\s?\d{3}[\s-]?\d{4}$/;
	if(!n=="" && pattern.test(n)){
		re = true;
	}
	return re;

}


//--------------------------------
function validatePostcode(pcode, country){
	var re = false;
	var pc = trim(pcode);
	var c = trim(country);

	var pattern_ca = /^[a-zA-Z]\d[a-zA-Z]\s?\d[a-zA-Z]\d$/;
	var pattern_us = /^\d{5}(-\d{4})?$/;
	if(c =="Canada"){
		re = pattern_ca.test(pc);
	}else{
		re = pattern_us.test(pc);
	}
	return re;
}


//---------------------------------
function validateTime(t){
	var re = false;
	var pattern = /^\d?\d:\d\d([aA]|[pP])[mM]$/;
	if(pattern.test(t)){
		re = true;
	}
	return re;
}



//----------------------------------
function isDigits(d){
	var re = false;
	var pattern = /^[1-9]\d*$/;
	if(pattern.test(d) || d==0){
		re = true;
	}
	return re;
}



//----------------------------------
function isPrice(d){//\d*\.?\d*
	var re = false;
	var pattern = /^[1-9]\d*$/;
	var pattern2 = /^0{1}\.{1}\d+$/;
	var pattern3 = /^[1-9]{1}\d*\.{1}\d+$/;

	if(pattern.test(d) || pattern2.test(d) || pattern3.test(d) ){
		re = true;
	}
	return re;
}


//------------------------------------
//This two functions are used to checkall/uncheckall motion for dynamically generated check boxes.
//It has two groups of checkbox: one is the checkall check box. It is statis; another ones are multiple
//dynamically-generated checkboxes

//check all check boxes when checkall is checked
function checkallbox(form, chkAllBoxId){
	var chk = document.getElementById(chkAllBoxId);
	var formElements = eval("document." + form + ".elements");
	var len = formElements.length;

	if(chk.checked){
		for(var i=0; i<len;i++){
			if(formElements[i].type=="checkbox" && formElements[i].id != chkAllBoxId){
				formElements[i].checked = true;
			}
		}
	}else{
		for(var i=0; i<len;i++){
			if(formElements[i].type=="checkbox" && formElements[i].id != chkAllBoxId){
				formElements[i].checked = false;
			}
		}
	}
}

//check/uncheck to see if checkall must be checked/unchecked
function tocheck(form, id, chkAllBoxId){
	var chk = eval("document." + form + "." + chkAllBoxId); //check all box id
	var curchk = document.getElementById(id);
	var formElements = eval("document." + form + ".elements");
	var len = formElements.length;
	var counter = 0;
	var counter2 = 0;
	//get number of child check box
	for(var i=0; i<len;i++){
		if(formElements[i].type=="checkbox" && formElements[i].id != chkAllBoxId){
			counter++;
		}
	}

	if(curchk.checked){
		for(var i=0; i<len;i++){
			if(formElements[i].type=="checkbox" && formElements[i].id != chkAllBoxId){
				if(formElements[i].checked){
					counter2++;
				}
			}
		}
		if(counter2==counter){
			chk.checked = true;
		}else{
			chk.checked = false;
		}
	}else{
		chk.checked = false;
	}
}


//------------------------------------------
// get the query string name and value pari
function getQuery(key){
	var re = false;
	var q = (location.search.length > 1 ? location.search.substring(1).split("&") : '');
	//alert(q);
	//alert(location.search.substring(1));
	//var pairs = {};
	//var count = 0;

	for(var i = 0; i < q.length; i++){
		var tmp = q[i].split("=");
		//alert('key=' + tmp[0]);
		//alert('value=' + tmp[1]);
		
		if(tmp[0] == key){
			var regEx = new RegExp("%20", 'g') ;
			re = tmp[1].replace(regEx, ' ');
		}
		//alert(pairs[count]);
		//count++;
	}	
	//alert(pairs);
	return re;	
}


//-------------------------------------------
//functions used to open pop up windows
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  var popWin = window.open(theURL,winName,features);
  popWin.focus();
}
/*
onLoad="window.focus();" //body onload()
javascript:void(window.close());//close pop window


*/


//------------------------------------------
function loadProvinces(country) {
	pro_list = new Array();
	pro_list[0] = "Loading...";
    setProvinces(pro_list);
    var oXmlHttp = null;
	if (!oXmlHttp) {
        oXmlHttp = zXmlHttp.createRequest();
    } else if (oXmlHttp.readyState != 0) {
        oXmlHttp.abort();
    }
    oXmlHttp.open("get", "get_provinces.php?country=" + country, true);
    oXmlHttp.onreadystatechange = function () {
        if (oXmlHttp.readyState == 4) {
            if (oXmlHttp.status == 200) {
                var aData = oXmlHttp.responseText;
				var pro_list = aData.split(";");
				setProvinces(pro_list);

                loadCities(country, "All");
            }
        }
    };
    oXmlHttp.send(null);
}


function loadCities(country, province) {
	city_list = new Array();
	city_list[0] = "Loading...";
    setCities(city_list);
    var oXmlHttp = null;
	if (!oXmlHttp) {
        oXmlHttp = zXmlHttp.createRequest();
    } else if (oXmlHttp.readyState != 0) {
        oXmlHttp.abort();
    }
    var urlStr = "get_cities.php?country=" + country + "&province=" + province;
    oXmlHttp.open("get", urlStr, true);
    oXmlHttp.onreadystatechange = function () {
        if (oXmlHttp.readyState == 4) {
            if (oXmlHttp.status == 200) {
                var aData = oXmlHttp.responseText;
				var city_list = aData.split(";");
				setCities(city_list);

                document.DLForm.dealer_name.value = "";
				loadDealers(country, province, "All", "");
            }
        }
    };
    oXmlHttp.send(null);
}

//------------------------------------
//used to subscribe ms event
function register( email, field ){
	//instantiate xml object
	var oXmlHttp = null;
	if (!oXmlHttp) {
        oXmlHttp = zXmlHttp.createRequest();
    } else if (oXmlHttp.readyState != 0) {
        oXmlHttp.abort();
    }
	//alert("in");
	//create request
	var urlStr = "_register.php?email=" + email;
	oXmlHttp.open('get', urlStr, true);
    oXmlHttp.onreadystatechange = function () {
        if (oXmlHttp.readyState == 4) {
            if (oXmlHttp.status == 200) {
                var aData = oXmlHttp.responseText;
				//alert(aData);
				ChangeMessage(field, aData);
				/*
				if( aData=='Thank you for subscription.'){//conversion tracking - assign a page view
					urchinTracker("/front_subscription" );
				}
				*/
            }
        }
    };
    oXmlHttp.send(null);
}


//----------------------------
function submitSubscription(){
	var err = '';
	var subemail = document.subForm.subemail.value;
	if(subemail==''){
		alert('Please provide your email address.');
	}else if( !validateEmail(subemail) ){
		alert('Invalid email address.');
	}else{
		register( subemail, 'errmsg' );
		//alert("back");
		ChangeMessage('subemail', '');
	}
}

