

//--------------------------
//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 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, '')
};

function validateAll(form){
	var re = false;
	if(!validateEmail(form.email.value)|| form.email.value ==""||form.email.value==null){
		alert("Incorrect email address!");
		form.email.focus();
		return re;
	}
	if(form.fName.value =="No empty!"||form.fName.value ==""|| form.fName.value==null){
		alert("Empty first name!");
		form.fName.focus();
		return re;
	}
	if(form.lName.value =="No empty!"||form.lName.value ==""|| form.lName.value==null){
		alert("Empty last name!");
		form.lName.focus();
		return re;
	}	
}

function validateInvite(form) {
	var count = 0;
	for(var i = 1; i <=5; i++){		
		var fname = "txName" + i.toString();
		var lname = "lName" + i.toString();
		var email = "txEmail" + i.toString();
		if(document.getElementById(fname).value.length > 0 && document.getElementById(lname).value.length > 0 && document.getElementById(email).value.length > 0 && validateEmail(document.getElementById(email).value)){
			count ++;			
		}
	}
	if(count == 0){
		alert("Please invite at least one friend");
		return false;	
	}
	
}

function validateMsg(){
	var re = false;
	if(!validateEmail(document.getElementById("email").value)|| document.getElementById("email").value.length <= 0 ){
		alert("Incorrect email address!");
		document.getElementById("email").focus();
		return re;
	}
	if(document.getElementById("name").value =="No empty!"||document.getElementById("name").value.length <= 0 ){
		alert("Empty name!");
		document.getElementById("name").focus();
		return re;
	}
	if(document.getElementById("message").value =="No empty!"||document.getElementById("message").value.length <= 0 ){
		alert("Empty message!");
		document.getElementById("message").focus();
		return re;
	}
}

//---------------------------------------
// 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;	
}


//------------------------------------------
// load story content
function loadStoryContent(id, storyid){
	var oXmlHttp = null;
	if(!oXmlHttp){
		oXmlHttp = zXmlHttp.createRequest();
    } else if (oXmlHttp.readyState != 0) {
        oXmlHttp.abort();
    }
    oXmlHttp.open("get", "storycontent.php?storyid=" + storyid, true);
	
    oXmlHttp.onreadystatechange = function () {
        if (oXmlHttp.readyState == 4) {
            if (oXmlHttp.status == 200) {
                var aData = oXmlHttp.responseText;
				ChangeMessage(id, aData);
            }
        }
    };
    oXmlHttp.send(null);
}


//------------------------------------------
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);
}


