
var resp_cust_back;
var new_cust_sum_req;
var error_code;
//var cust_post_vars;
var cust_get_vars;
var current_form_data;
var my_cur_plan_message_box_text;
var message_box_count = 0;
var csc_summary_table = "";

//Data arrays
var Customer_last_name = new Array();
var Contract_number = new Array();
var Vin = new Array();
var Plan_expiration_date = new Array();
var Contract_effective_date = new Array();
var Expire_odometer = new Array();
var Plan_effective_date = new Array();
var Deductible = new Array();
var Maximum_rental_amount = new Array();
var Maximum_towing_allowance = new Array();
var Option_include_flag = new Array();
var Plan_term = new Array();
var Plan_effective_date = new Array();
var Original_odometer = new Array();
var Plan_term_in_months = new Array();
var Plan_description = new Array();
var Contract_expire_date = new Array();
var Maximum_days_for_rental = new Array();
var Plan_code = new Array();
var Product_code = new Array();
var Plan_provision_code = new Array();
var Business_Center = new Array();
var Selling_dealer = new Array();
var Dealer_name = new Array();
var Dealer_address_line_1 = new Array();
var Dealer_city = new Array();
var Dealer_state = new Array();
var Dealer_zip = new Array();
var Expire_odometer = new Array();
var Odometer_type = new Array();
var Vehicle_eligibility_limit = new Array();
var Vehicle_make = new Array();
var Dealer_name = new Array();
var Customer_first_name = new Array();
var Customer_middle_initial = new Array();
var Customer_last_name = new Array();
var Customer_address = new Array();
var City = new Array();//Customer
var State = new Array(); //Customer
var Zip = new Array();//Customer

function clear_csc_data_arrays(){
	Customer_last_name.length = 0;
	Contract_number.length = 0;
	Vin.length = 0;
	Plan_expiration_date.length = 0;
	Contract_effective_date.length = 0;
	Expire_odometer.length = 0;
	Plan_effective_date.length = 0;
	Deductible.length = 0;
	Maximum_rental_amount.length = 0;
	Maximum_towing_allowance.length = 0;
	Option_include_flag.length = 0;
	Plan_term.length = 0;
	Plan_effective_date.length = 0;
	Original_odometer.length = 0;
	Plan_term_in_months.length = 0;
	Plan_description.length = 0;
	Contract_expire_date.length = 0;
	Maximum_days_for_rental.length = 0;
	Plan_code.length = 0;
	Product_code.length = 0;
	Plan_provision_code.length = 0;
	Business_Center.length = 0;
	Selling_dealer.length = 0;
	Dealer_name.length = 0;
	Dealer_address_line_1.length = 0;
	Dealer_city.length = 0;
	Dealer_state.length = 0;
	Dealer_zip.length = 0;
	Expire_odometer.length = 0;
	Odometer_type.length = 0;
	Vehicle_eligibility_limit.length = 0;
	Vehicle_make.length = 0;
	Dealer_name.length = 0;
	Customer_first_name.length = 0;
	Customer_middle_initial.length = 0;
	Customer_last_name.length = 0;
	Customer_address.length = 0;
	City.length = 0;//Customer
	State.length = 0;//Customer
	Zip.length = 0;//Customer
}

//window.loadFirebugConsole();

function reset_csc_form(cur_form_to_clear){
	for (var i = 0; cur_form_to_clear.length > i; i++) {
		if (cur_form_to_clear[i].type == "text"){
			cur_form_to_clear[i].value = "";
		}
	}
}


function request_csc_contract_summary(sum_form_data){
	current_form_data = sum_form_data;
	var form_vin = "";
	var form_scno = "";
	var form_is_valid = true;
	if (message_box_count == 0){
		my_cur_plan_message_box_text = $('my_cur_plan_message_box').innerHTML;
		message_box_count++;
	}
	if(!numeric(sum_form_data.ODOM.value)){
		form_is_valid = false;
		$('ODOM_container').addClass('required');
		$('my_cur_plan_message_box').innerHTML = "<span class=\"required\">We're Sorry!<br />The Current Milage value entered was not a number.<span>";
	}
	
	if(isBlank(sum_form_data.LNAME.value)){
		form_is_valid = false;
		$('LNAME_container').addClass('required');
		$('my_cur_plan_message_box').innerHTML = "<span class=\"required\">We're Sorry!<br />The Last Name value must be filled out.<span>";
	}
	
	if(sum_form_data.KEY.value.length == 8 || sum_form_data.KEY.value.length >= 17){
		// good to go
	}else{
		form_is_valid = false;
		$('KEY_container').addClass('required');
		$('my_cur_plan_message_box').innerHTML = "<span class=\"required\">Please enter either one of the data shown below:<br />1) Contract Number => 8 Numbers, example: 14828329<br />OR<br />2) Vehicle Identification Number => 17 Characters, example: 1B3ES46C41D281658<span>";
	}
		
	if (form_is_valid){
		clear_csc_data_arrays();
		$('KEY_container').removeClass('required');
		$('LNAME_container').removeClass('required');
		$('ODOM_container').removeClass('required');
		$('csc_summary_submit').addClass('form_hidden');
		if (sum_form_data.KEY.value.length == 8){
			form_scno = sum_form_data.KEY.value;
		}else{
			form_vin = sum_form_data.KEY.value;
		}
		//cust_post_vars = "KEY="+sum_form_data.KEY.value+"&LNAME="+sum_form_data.LNAME.value+"&module=MainInq&PGM=summary&VIN="+form_vin+"&SCNO="+form_scno+"&ODOM="+sum_form_data.ODOM.value;
		cust_get_vars = "?KEY="+sum_form_data.KEY.value+"&LNAME="+sum_form_data.LNAME.value+"&module=MainInq&PGM=summary&VIN="+form_vin+"&SCNO="+form_scno+"&ODOM="+sum_form_data.ODOM.value;
		// /srvcont/CustomerController
		// /crossbrand/shared/javascripts/service_contracts/sample_servicecontract_multi_summary.xml
		new_cust_sum_req = new Ajax('/srvcont/CustomerController'+cust_get_vars, {method: 'get', onComplete: function(text, xml){ parseCUSTresp(text, xml)}.bind(this),onFailure:function(text, xml){ parseCUSTrespFail(text, xml)}.bind(this)}).request(); // returns an object
	}
}

function parseCUSTresp(data_TXT,data_XML){
	resp_xml_cust_back = data_XML; // for debuging
	resp_text_cust_back = data_TXT; // for debuging
	if ((data_XML == null) || (data_XML.childNodes.length == 0)){
		//alert ("parsing TEXT");
		parseDataXML(data_TXT);
	}else{
		//alert ("parsing XML");
		parseDataXML(data_XML);
	}
}

function parseCUSTrespFail(data_TXT,data_XML){
	resp_xml_cust_back = data_XML; // for debuging
	resp_text_cust_back = data_TXT; // for debuging
	display_error_csc_contract_summary_message_app_down();
}

function parseDataXML(data_XML) {
	//alert(data_XML);
	var xml_object;
	if(typeof(data_XML) == "string"){
		// the DOCTYPE node messed up IE when parsing the string type
		if(data_XML.test('<!DOCTYPE service_contract SYSTEM "service_contract.dtd">')){
			var data_XML_arr = data_XML.split('<!DOCTYPE service_contract SYSTEM "service_contract.dtd">');
			data_XML = data_XML_arr[0] + data_XML_arr[1];
		}
		if(data_XML.test('<!DOCTYPE service_contract SYSTEM "mail_provision.dtd">')){
			var data_XML_arr = data_XML.split('<!DOCTYPE service_contract SYSTEM "mail_provision.dtd">');
			data_XML = data_XML_arr[0] + data_XML_arr[1];
		}

		if (window.ActiveXObject){
			// detect is the browser is IE
			xml_object = new ActiveXObject("Microsoft.XMLDOM");
			xml_object.loadXML(data_XML);
		}else{
			xml_object = (new DOMParser()).parseFromString(data_XML, "text/xml");
		}
	}else{
		xml_object = data_XML;
	}
	
	if(xml_object.getElementsByTagName('error_code')[0]){
		error_code = xml_object.getElementsByTagName('error_code')[0].childNodes[0].nodeValue;
		if (error_code == 1){
			display_error_csc_contract_summary_message();
			return;
		}else{
			//check_page_and_render();
		}
	}else{
		//check_page_and_render();
	}

	// there maybe more than one contract_summary node, but -1 because the count is 0 based.
	var num_of_contract_summarys = xml_object.getElementsByTagName('contract_summary').length -1;
	for (var j = 0; num_of_contract_summarys >= j; j++) {

		var contract_summary = xml_object.getElementsByTagName('contract_summary')[j];
	
		var items = contract_summary.childNodes;
		var item_count = contract_summary.childNodes.length

		// Loop through all <item>s 
		for (var i = 0; item_count > i; i++) {
			var cur_item = items[i];
			var cur_item_val = (cur_item.firstChild == null) ? " " : cur_item.firstChild.nodeValue;
			//if ((cur_item.nodeName != "#text")&&(cur_item.firstChild)){
			if (cur_item.nodeName != "#text"){
				switch(cur_item.nodeName){
					case "Customer_last_name":
						Customer_last_name.push(cur_item_val);
						//Customer_last_name.push(cur_item.firstChild.nodeValue);
						break;    
					case "Contract_number":
						Contract_number.push(cur_item_val);
						break;
					case "Vin":
						Vin.push(cur_item_val);
						break;
					case "Plan_expiration_date":
						Plan_expiration_date.push(cur_item_val);
						break;
					case "Contract_effective_date":
						Contract_effective_date.push(cur_item_val);
						break;
					case "Expire_odometer":
						Expire_odometer.push(cur_item_val);
						break;
					case "Plan_effective_date":
						Plan_effective_date.push(cur_item_val);
						break;
					case "Deductible":
						Deductible.push(cur_item_val);
						break;
					case "Maximum_rental_amount":
						Maximum_rental_amount.push(cur_item_val);
						break;
					case "Maximum_towing_allowance":
						Maximum_towing_allowance.push(cur_item_val);
						break;
					case "Option_include_flag":
						Option_include_flag.push(cur_item_val);
						break;
					case "Plan_term":
						Plan_term.push(cur_item_val);
						break;
					case "Plan_effective_date":
						Plan_effective_date.push(cur_item_val);
						break;
					case "Original_odometer":
						Original_odometer.push(cur_item_val);
						break;
					case "Plan_term_in_months":
						Plan_term_in_months.push(cur_item_val);
						break;
					case "Plan_description":
						Plan_description.push(cur_item_val);
						break;
					case "Contract_expire_date":
						Contract_expire_date.push(cur_item_val);
						break;
					case "Maximum_days_for_rental":
						Maximum_days_for_rental.push(cur_item_val);
						break;
					case "Plan_code":
						Plan_code.push(cur_item_val);
						break;
					case "Product_code":
						Product_code.push(cur_item_val);
						break;
					case "Plan_provision_code":
						Plan_provision_code.push(cur_item_val);
						break;
					case "Business_Center":
						Business_Center.push(cur_item_val);
						break;
					case "Selling_dealer":
						Selling_dealer.push(cur_item_val);
						break;
					case "Dealer_name":
						Dealer_name.push(cur_item_val);
						break;
					case "Dealer_address_line_1":
						Dealer_address_line_1.push(cur_item_val);
						break;
					case "Dealer_city":
						Dealer_city.push(cur_item_val);
						break;
					case "Dealer_state":
						Dealer_state.push(cur_item_val);
						break;
					case "Dealer_zip":
						Dealer_zip.push(cur_item_val);
						break;
					case "Expire_odometer":
						Expire_odometer.push(cur_item_val);
						break;
					case "Odometer_type":
						Odometer_type.push(cur_item_val);
						break;
					case "Vehicle_eligibility_limit":
						Vehicle_eligibility_limit.push(cur_item_val);
						break;
					case "Vehicle_make":
						Vehicle_make.push(cur_item_val);
						break;
					case "Dealer_name":
						Dealer_name.push(cur_item_val);
						break;
					case "Customer_first_name":
						Customer_first_name.push(cur_item_val);
						break;
					case "Customer_middle_initial":
						Customer_middle_initial.push(cur_item_val);
						break;
					case "Customer_last_name":
						Customer_last_name.push(cur_item_val);
						break;
					case "Customer_address":
						Customer_address.push(cur_item_val);
						break;
					case "City":
						City.push(cur_item_val);
						break;
					case "State":
						State.push(cur_item_val);
						break;
					case "Zip":
						Zip.push(cur_item_val);
						break;
					default:
						break;
				}
			}
		}
		
		if (Option_include_flag[j] == "I"){
			Maximum_towing_allowance_text = "$100 Roadside Assist 800-521-2779";
		}else{
			Maximum_towing_allowance_text = "$"+Maximum_towing_allowance[j];
		}
		
		/*
		var RentalCarAllowance = "";
		if (Maximum_days_for_rental[j].toInt() > 0){
			//$35.00 per day for a maximum of $175.00
			RentalCarAllowance = "$"+Maximum_rental_amount[j]+" per day for a maximum of $"+ Maximum_days_for_rental[j].toInt()*Maximum_rental_amount[j].toInt() +".00";
		}
		*/
		RentalCarAllowance = "$"+Maximum_rental_amount[j]+" per day for a maximum of $"+ Maximum_days_for_rental[j].toInt()*Maximum_rental_amount[j].toInt() +".00";
		
		csc_summary_table += "<div class=\"summary_table\"><table><tr><td class=\"table_desc\">Contract Summary for</td><td class=\"table_value\">"+Customer_last_name[j]+"</td></tr>";
		csc_summary_table += "<tr><td class=\"table_desc\">Contract Number</td><td class=\"table_value\">"+Contract_number[j]+"</td></tr>";
		csc_summary_table += "<tr><td class=\"table_desc\">VIN Number</td><td class=\"table_value\">"+Vin[j]+"</td></tr>";
		csc_summary_table += "<tr><td class=\"table_desc\">Description</td><td class=\"table_value\">" + Plan_description[j] + "</td></tr>";
		//csc_summary_table += "<tr><td class=\"table_desc\">Description</td><td class=\"table_value\">"+((Plan_term_in_months.toInt()) / 12)+ "/" +  Plan_term.substr(0,2)  + " " + Plan_description + "</td></tr>";
		csc_summary_table += "<tr><td class=\"table_desc\">Expires on</td><td class=\"table_value\">"+ Contract_expire_date[j] +" or "+ Expire_odometer[j] +" miles </td></tr>";
		csc_summary_table += "<tr><td class=\"table_desc\">Start Date</td><td class=\"table_value\">"+Contract_effective_date[j]+"</td></tr>";
		//csc_summary_table += "<tr><td class=\"table_desc\">Start Miles</td><td class=\"table_value\">"+Original_odometer[j]+"</td></tr>";
		csc_summary_table += "<tr><td class=\"table_desc\">Deductible Per Repair</td><td class=\"table_value\"> $"+Deductible[j]+"</td></tr>";
		csc_summary_table += "<tr><td class=\"table_desc\">Towing Coverage</td><td class=\"table_value\">"+Maximum_towing_allowance_text+"</td></tr>";
		csc_summary_table += "<tr><td class=\"table_desc\">Rental Car Allowance</td><td class=\"table_value\">"+RentalCarAllowance+"</td></tr></table></div>";
	}

	check_page_and_render();
	$('csc_summary_submit').removeClass('form_hidden');
	$('my_cur_plan_message_box').innerHTML = my_cur_plan_message_box_text;
}

function display_error_csc_contract_summary_message(){
	$('csc_summary_submit').removeClass('form_hidden');
	$('my_cur_plan_message_box').innerHTML = "<span class=\"required\">We're Sorry!<br />Based on the information you entered, we do not show an active Chrysler Group LLC Service Contract. Please verify the information entered and try again, or contact us at 1-800-521-9922.<span>";
}

function display_error_csc_contract_summary_message_app_down(){
	//turn the button back on if service fails for retry
	$('csc_summary_submit').removeClass('form_hidden');
	$('my_cur_plan_message_box').innerHTML = "<span class=\"required\">We're Sorry!<br />This application is currently not working, please try again later.<span>";
}

function check_page_and_render(){
	// check what page you are on and bounce to the CSC contract summary page.
	if (cur_page == "your_contracts_info"){
	//	build and render the contract info
		$('csc_dyanmic_sum_content').innerHTML = csc_summary_table;
		// blank out the render table for secondary calls
		csc_summary_table = "";
		// always display summary when submiting form form summary page
		sections.turnOffCurSection();
		sections.cur_section = "contract_summary";
		sections.turnOnCurSection();
	}else{
		window.location.href="/en/service_contracts/contract/?fill_form=true&KEY="+current_form_data.KEY.value+"&LNAME="+current_form_data.LNAME.value+"&ODOM="+current_form_data.ODOM.value;
	}
}

function fill_in_csc_form(){
	if (cur_page == "your_contracts_info"){
		if (getParameter('fill_form')=="true"){
			// check what page you are on and bounce to the CSC contract summary page.
			document.forms['csc_contract_sum_name'].KEY.value = getParameter('KEY');
			document.forms['csc_contract_sum_name'].LNAME.value = getParameter('LNAME');
			document.forms['csc_contract_sum_name'].ODOM.value = getParameter('ODOM');
			request_csc_contract_summary($('csc_contract_sum_form'));	
		}else{
			window.location.href="/en/service_contracts/";
		}
	}
}

onload_register("fill_in_csc_form()");
