// JavaScript Document
var countryXML;
var countryURL = "/content_data/LAAM/ME/en/GBPME/999/includes/ebrochure-countries.xml";
var brandXML;
var brandURL = "/content_data/LAAM/ME/en/GBPME/999/includes/ebrochure-brands.xml";
var pdfFiles;

var bgColors= new Array()
bgColors["chevrolet"]="#999DA8";
bgColors["cadillac"]="#424854";
bgColors["hummer"]="#405d95";
bgColors["gmc"] = "#a2a2a2";
bgColors["saab"] = "#ffffff";
bgColors["gm"] = "#d4d9dd";
bgColors["default"] = "#d4d9dd";

//////////// parss query string
var qStr = getQueryString();
$(document).ready(docReady);

function docReady(){
	////////////// load country XML
	$.get(countryURL,{},countryXMLLoaded);
	$.get(brandURL,{},brandXMLLoaded);
	
	$("#dd_title").change(titleChange);
	$("#brochure_form").submit(validateForm);
	$("#a_clear").click(resetForm);
	$("#dd_plan").change(planChange);
	$("#dd_city").change(showOtherCity);
	//var newURL =  location.protocol + "//" + location.hostname + "/content_data/LAAM/ME/en/GBPME/999/G1/ebrochure-thankyou.html" + location.search;
	//$("#url").val(newURL);
	
	$(".only_numbers").each(function(i){
		$(this).keydown(restrictNumbers);
	})
	
}

function countryXMLLoaded(xml){
	
	xml = parseXml(xml);
	countryXML = xml;
	
	var dc = $("#dd_country");
	var isCountry = false; //////////// to check if country code found in XML
	dc.append("<option value=\"0\">Please Select ....</option>");
	
	$("country", countryXML).each(function(i){
		var selected = "";
		if($(this).attr("id")==qStr.cntryCd){
			selected = "selected";
			updateCity(i);
			isCountry = true;
		}
		dc.append("<option value=\"" + $(this).attr("id") + "\" " + selected +">" + $(this).attr("name") + "</option>");
	});
	dc.change(countryChange);
	
	///////////////////// show the country drop down if no coutnry
	if(!isCountry) $("#tr_country").removeClass("hidden");
	
}

function brandXMLLoaded(xml){
	xml = parseXml(xml);
	brandXML = xml;
	
	var isBrand = false;
	var brandName = "";
	var dc = $("#dd_brand");
	var found = false;
	dc.append("<option value=\"0\">Please Select ....</option>");
	$("brand", brandXML).each(function(i){
		var selected = "";
		var brand = $(this).attr("name");
		if(qStr.brand && brand.toLowerCase() == qStr.brand.toLowerCase()){
			selected = "selected";
			updateCar(i);
			isBrand = true;
			brandName = brand;
			//$("#tr_brand").addClass("hidden");
			found = true;
			//$("#img_logo").attr("src", "images/ebrochure_gmc.jpg");
			//dc.attr("disabled", "disabled");
		}
		dc.append("<option value=\"" + brand + "\" " + selected +">" + brand + "</option>");
	})
	
	if(!found){ //if brand was not found in the xml
		$("#img_logo").attr("src", "images/ebrochure_gm.gif");
		$("#tr_brand").removeClass("hidden");
	}
	dc.change(brandChange);
	$("#dd_car").change(carChange);
	
	//if brand is not passed
	if(qStr.brand == undefined){
			$("#img_logo").attr("src", "images/ebrochure_gm.gif");
	}
	
	///////////// show the brand dorpdown if not in found

	if(!isBrand){
		$("#tr_brand").removeClass("hidden");
		$("#owner_brand").text("General Motors car " );
	}
	else{
		$("#owner_brand").text(brandName +" " );
		
		/////////////////// change the logo
		//$("#img_logo").attr("src", "images/ebrochure_" + qStr.brand.toLowerCase()+".gif");
		//logo change
		$("#img_logo").attr("src", "images/ebrochure_" + qStr.brand.toLowerCase()+".jpg");
		
		//header change
		$("#header_img").attr("background", "images/ebrochure_head_" + qStr.brand.toLowerCase() + ".gif");
		
		//table background/border classes
		$("#container").attr("class", "");
		$("#container").attr("class", qStr.brand.toLowerCase() + "Colors");
		
		$("#img_clear").attr("src", "images/ebrochure_c_" + qStr.brand.toLowerCase() + ".gif");
		$("#img_submit").attr("src", "images/ebrochure_s_" + qStr.brand.toLowerCase() + ".gif");
		
		$("body").css("background-color", bgColors[qStr.brand ? qStr.brand : "gm"]);
	}
	$("#img_logo").removeClass("hidden");
}

function countryChange(){
	var ci = $(this).get(0).selectedIndex-1;
	updateCity(ci);
	showOtherCity()
}
function updateCity(ci){
	var cc = $("country", countryXML)[ci];
	
	//////////// fill city dropdown
	var dCity =$("#dd_city");
	dCity.empty("option");
	dCity.append("<option value=\"0\">Please Select ....</option>");
	
	$("city", cc).each(function(){
		var cityName = $(this).attr("name");
		dCity.append("<option value=\"" + cityName + "\">"+cityName+"</option>" );
	});
	dCity.append("<option value=\"Other\">Other</option>" );
	///////////////fill country code
	$("#id_mobile_country").val($(cc).attr("code"));
	
}
function showOtherCity(){
	if($("#dd_city").val() == "Other"){
		$("#tr_city").removeClass("hidden");
	} else {
		$("#tr_city").addClass("hidden");
	}
}
function brandChange(){
	var ci = $(this).get(0).selectedIndex-1;
	updateCar(ci);
}

function updateCar(ci){
	var cc = $("brand", brandXML)[ci];
	
	var dCar = $("#dd_car");
	dCar.empty("option");
	dCar.append("<option value=\"0\">Please Select ....</option>");
	
	pdfFiles = new Array();
	
	$("car", cc).each(function(i){
		var carName = $(this).attr("name");
		var pdf = $(this).attr("pdfurl");
		dCar.append("<option value=\"" + carName + "\">"+carName+"</option>" );
		pdfFiles.push(pdf);
	})
	
	//////////// update the car owner text
	var brand = $(cc).attr("name")
	if(brand){
		$("#owner_brand").text(brand +" " );
	}
	else{
		$("#owner_brand").text("General Motors car ");
	}
}

function carChange(){
	var ci = $(this).get(0).selectedIndex-1;
	$("#id_pdfurl").val(pdfFiles[ci]);
}

function titleChange(){
	if($(this).val().toLowerCase() == "other"){
		$("#other_title").attr("disabled", "");
	}
	else $("#other_title").attr("disabled", "disabled");
}

function validateForm(){
	ret = true;
	msg = "";
	
	obj = $("#dd_title");
	if( obj.val() == "0" ){
		ret = false;
		msg += "Select your title.\n";
		obj.addClass("error");
	}
	else if(obj.val() == "other" && !$("#other_title").val()  ){
		ret = false;
		msg += "Type in your title in othe filed.\n";
		$("#other_title").addClass("error");
	}
	else{
		obj.removeClass("error");
		$("#other_title").removeClass("error");
	}
	
	obj = $("#fname");
	if(!obj.val()){
		ret = false;
		msg += "Type in you first name.\n";
		obj.addClass("error");
	}
	else obj.removeClass("error");
	
	obj = $("#lname");
	if(!obj.val()){
		ret = false;
		msg += "Type in your last name.\n";
		obj.addClass("error");
	}
	else obj.removeClass("error");
	
	obj = $("#id_email");
	if( !isValidEmail(obj.val() ) ){
		ret = false;
		msg += "Type a valid email address.\n";
		obj.addClass("error");
	}
	else obj.removeClass("error");
	
	obj = $("#dd_city");
	if(obj.val() == "0"){
		ret = false;
		msg += "Select your city.\n";
		obj.addClass("error");
	}
	else obj.removeClass("error");


	obj = $("#dd_city");
	cityOther = $("#otherCity");
	if(obj.val() == "Other" && !cityOther.val()){
		ret = false;
		msg += "Type your city.\n";
		cityOther.addClass("error");
	} else {
		cityOther.removeClass("error");	
	}

	obj = $("#dd_brand");
	if( obj.val() == "0" ){
		ret = false;
		msg += "Select a brand.\n";
		obj.addClass("error");
	}
	else obj.removeClass("error");
	
	obj = $("#dd_car");
	if( obj.val() == "0" ){
		ret = false;
		msg += "Select a brochure.\n";
		obj.addClass("error");
	}
	else obj.removeClass("error");
	
	
	if($("#dd_plan").get(0).selectedIndex > 0){
		obj = $("#id_mobile_country");
		obj2 = $("#id_mobile_area");
		obj3 = $("#id_mobile_number");
		if( obj.val().length < 1 || obj2.val().length < 1 || obj3.val().length < 6 ){
			ret = false;
			msg += "Type a valid mobile number.\n";
			obj.addClass("error");
			obj2.addClass("error");
			obj3.addClass("error");
		}
		else{
			obj.removeClass("error");
			obj2.removeClass("error");
			obj3.removeClass("error");
		}
		
		obj = $("#pobox");
		if(!obj.val()){
			ret = false;
			msg += "Type in your P.O.Box number.\n";
			obj.addClass("error");
		}
		else obj.removeClass("error");
		

		var isContact = false
		$( "[name=contact]" ).each(function(){
			isContact |= $(this).attr("checked");
		})
		if(isContact == 0){
			ret = false;
			msg += "Select a preferred method of contact.\n";	
		}
	
	}/////////////// if dd_plan
	else{
		$("#pobox").removeClass("error");
	 	$("#id_mobile_country").removeClass("error");
		$("#id_mobile_area").removeClass("error");
		$("#id_mobile_number").removeClass("error");
		 
	}
	
	if(msg != ""){
		alert("Please correct the following errors:\n------------------------------------------\n" + msg);
	}
	else{
		//////////////////// save required data in cookie to disply in thank you page
		document.cookie = "userName=" + escape( $("#fname").val() );
		document.cookie = "brandName=" + escape( $("#dd_brand").val() );
		document.cookie = "modelName=" + escape( $("#dd_car").val() );
		document.cookie = "userEmail=" + escape( $("#id_email").val() );
	}
	
	return ret;
}

function planChange(){
	if($(this).get(0).selectedIndex >0){
		$(".plan_man").each(function(){
			var t = $(this).text().split("*")[0];
			$(this).text(t+"*");
		})
	}
	else{
		$(".plan_man").each(function(){
			var t = $(this).text().split("*")[0];
			$(this).text(t);
		})	
	}
}

function parseXml(xml){
	if (jQuery.browser.msie && location.protocol == "file:"){
		var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.loadXML($.trim(xml));
		xml = xmlDoc;
	}
	return xml;
}

function isValidEmail(email){
	var reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return reg.exec(email);
}// isValidEmail

function getQueryString(){
	/*
		this function will return a value of a qstring variable if 
		variable name is passed
		otherwise it will return an object with key/value pairs
	*/
	ret = new Object();
	var q = location.href.split("?")[1];
	if(!q) return ret;
	var args = q.split("&");
	for(var n=0; n<args.length; ++n){
		pairs = args[n].split("=");
		if(!pairs[1]) pairs[1] = "";//pairs[0];
		if(arguments[0] == pairs[0]) return pairs[1];
		ret[pairs[0]] = pairs[1];
	}
	return ret;
	
}

function restrictNumbers(e, obj){
	var keynum;
	var keychar;
	var numcheck;
	
	if(window.event) // IE
	  {
	  keynum = e.keyCode;
	  }
	else if(e.which) // Netscape/Firefox/Opera
	  {
	  keynum = e.which;
	  }
	
	numcheck = /\d/;
	//if(!keynum) return keynum;
	
	if(keynum <=57 && !e.shiftKey){
		return keynum;
	}
	else{
		return false;
	}
	
	/*
	keychar = String.fromCharCode(keynum);
	numcheck = /\D/;
	return !numcheck.test(keychar);
	*/
}

function resetForm(){
	$("#brochure_form input").each(function(){
		$(this).val("");
	});
	
	$("#brochure_form select").each(function(){
		if($(this).attr("id") != "dd_brand" && $(this).attr("id") != "dd_car"){
			this.selectedIndex = 0;
		}
	});
	
	return false;
}
