
 $(document).ready(function(){ 
  LoadCarType(); 
 }); 


function LoadCarType() {
	disableElement("CarYear", "Year");
	disableElement("CarMake", "Make")
	disableElement("CarModel", "Model")
	disableElement("CarTrim", "Trim")
	document.getElementById("CarZipCode").disabled = true;
    $.ajax({
        type: "POST",
        url: "/WebServices/GetCarTypes.asmx/CarType",
		data: "arg1=test",
		processData: false,
        dataType: "xml",
        success: function(xml) {

			var add
			$('CarType',xml).each(function(i) {
				addOption('CarType', $(this).find("name").text(), $(this).find("value").text());
			});
			
			// Check for preset
			if(typeof PresetCarType != "undefined") {
				if (changeIt("CarType", PresetCarType)) {
					LoadCarYear(document.getElementById('CarType'));
				}
			}


        }
    });
}

function LoadCarYear(CarType) {
	if (CarType.selectedIndex == 0)
		disableElement("CarYear");
	else
		document.getElementById("CarYear").disabled = false;
		
	disableElement("CarMake", "Make")
	disableElement("CarModel", "Model")
	disableElement("CarTrim", "Trim")
	document.getElementById("CarZipCode").disabled = true;
	removeAllOptions("CarYear", "Year");
    $.ajax({
        type: "POST",
        url: "/WebServices/GetCarTypes.asmx/CarYear",
		data: "arg1=test",
		processData: false,
        dataType: "xml",
        success: function(xml) {

			var add
			$('CarYear',xml).each(function(i) {
				addOption('CarYear', $(this).find("Year").text(), $(this).find("Year").text());
			});

        }
    });
}

function LoadCarMake() {
	document.getElementById("CarMake").disabled = false;
	disableElement("CarModel", "Model")
	disableElement("CarTrim", "Trim")
	document.getElementById("CarZipCode").disabled = true;
	removeAllOptions("CarMake", "Make");
    $.ajax({
        type: "POST",
        url: "/WebServices/GetCarTypes.asmx/CarMake",
		data: "arg1=test",
		processData: false,
        dataType: "xml",
        success: function(xml) {

			var add
			$('CarMake',xml).each(function(i) {
				addOption('CarMake', $(this).find("MakeName").text(), $(this).find("MakeID").text());
			});
			
			// Check for preset
			if(typeof PresetMake != "undefined") {
				if (changeIt("CarMake", PresetMake)) {
					LoadCarModel(document.getElementById('CarMake'));
				}
			}

        }
    });
}

function LoadCarModel(Make) {
	document.getElementById("CarModel").disabled = false;
	disableElement("CarTrim", "Trim")
	document.getElementById("CarZipCode").disabled = true;
	removeAllOptions("CarModel", "Model");
	
	var Year = document.getElementById("CarYear");
	var YeardropdownIndex = Year.selectedIndex;
	var dropdownIndex = Make.selectedIndex;

    $.ajax({
        type: "POST",
        url: "/WebServices/GetCarTypes.asmx/CarModel",
		data: "MakeID=" + Make[dropdownIndex].value + "&Year=" + Year[YeardropdownIndex].value,
		processData: false,
        dataType: "xml",
        success: function(xml) {

			var add
			$('CarModel',xml).each(function(i) {
				addOption('CarModel', $(this).find("ModelName").text(), $(this).find("ModelID").text());
			});
			
			// Check for preset
			if(typeof PresetModel != "undefined") {
				if (changeIt("CarModel", PresetModel)) {
					LoadCarTrim(document.getElementById('CarModel'));
				}
			}

        }
    });
}

function LoadCarTrim(Model) {
	document.getElementById("CarTrim").disabled = false;
	document.getElementById("CarZipCode").disabled = true;
	removeAllOptions("CarTrim", "Trim");
	
	var dropdownIndex = Model.selectedIndex;

    $.ajax({
        type: "POST",
        url: "/WebServices/GetCarTypes.asmx/CarTrim",
		data: "ModelID=" + Model[dropdownIndex].value,
		processData: false,
        dataType: "xml",
        success: function(xml) {

			var add
			$('CarTrim',xml).each(function(i) {
				addOption('CarTrim', $(this).find("TrimName").text(), $(this).find("TrimID").text());
			});

        }
    });
}

function LoadCarZipCode(Trim) {
	if (Trim.selectedIndex != 0) 
	{
		document.getElementById("CarZipCode").disabled = false;
	}
	else
	{
		document.getElementById("CarZipCode").disabled = true;
	}
}


function addOption(selectbox,text,value )
{
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;
	document.getElementById(selectbox).options.add(optn);
}

function removeAllOptions(selectbox, name)
{
	var i;
	var object = document.getElementById(selectbox);
	for(i=object.options.length-1;i>=0;i--)
	{
		object.remove(i);
	}
	addOption(selectbox, 'Select ' + name, '');
}

function disableElement(ElementName, name) {
	document.getElementById(ElementName).disabled = true;
	removeAllOptions(ElementName, name);
}

function enableElement(ElementName) {
	document.getElementById(ElementName).disabled = false;
}

function validate(form) {
	if(document.getElementById("CarType").selectedIndex == 0)
    { 
		alert("Please select a Car Type");
        document.getElementById("CarType").focus(); 
        return false;
    }
    if(document.getElementById("CarYear").selectedIndex == 0)
    {                    
		alert("Please select a Car Year");
        document.getElementById("CarYear").focus(); 
        return false;
    }
    if(document.getElementById("CarMake").selectedIndex == 0)
    {                    
		alert("Please select a Make");
        document.getElementById("CarMake").focus(); 
        return false;
    }
    if(document.getElementById("CarModel").selectedIndex == 0)
    {                    
		alert("Please select a Model");
        document.getElementById("CarModel").focus(); 
        return false;
    }
    if(document.getElementById("CarTrim").selectedIndex == 0)
    {                    
		alert("Please select a Trim");
        document.getElementById("CarTrim").focus(); 
        return false;
    }
    if(document.getElementById("CarZipCode").value == "")
     { 
        alert("Please enter your zip code."); 
        document.getElementById("CarZipCode").select();
        return false;
     }
    var  strZip =  document.getElementById("CarZipCode").value;
    if(strZip.length > 50)
    {
    alert("Please Enter valid zip No within 50 characters");
	document.getElementById("CarZipCode").focus();
	document.getElementById("CarZipCode").select();
	return false;
    }
    if(strZip != "")
	{
		var a,ch;
		for(a=0;a<strZip.length;a++)
		{
			ch=strZip.charAt(a);
			if (!((ch >= "0" && ch <= "9")))
			{
				alert("Please Enter valid zip No.");
				document.getElementById("CarZipCode").focus();
				document.getElementById("CarZipCode").select();
				return false;
			}
		}
	}
	
	$.ajax({
        type: "POST",
        url: "/WebServices/GetCarTypes.asmx/ValidateZipCode",
		data: "ZipCode=" + document.getElementById("CarZipCode").value,
		processData: false,
        dataType: "xml",
        success: function(xml) {
			$('ValidateZipCode',xml).each(function(i) {
				if ($(this).find("Count").text() != '0') {
					SubmitForm();
				}
				else {
					alert("The zip code you entered is invalid, please try again.");
        			document.getElementById("CarZipCode").select();
				}
			});
		}
    });
	
	return false;
}

function changeIt(ddl, value) {

	var control = document.getElementById(ddl);

	for( var i=0, limit=control.options.length; i < limit; ++i)
	{
	   	if(control.options[i].text.toLowerCase()==value.toLowerCase()) 
		{
			control.options.selectedIndex=i;
			return true;
		}
	}
	
	return false;
}



function SubmitForm() {
	document.getElementById("txtData").value = document.getElementById("CarType").options[document.getElementById("CarType").selectedIndex].value + "*" + document.getElementById("CarYear").options[document.getElementById("CarYear").selectedIndex].text + "*" + document.getElementById("CarMake").options[document.getElementById("CarMake").selectedIndex].value + "*" + document.getElementById("CarMake").options[document.getElementById("CarMake").selectedIndex].text  + "*" + document.getElementById("CarModel").options[document.getElementById("CarModel").selectedIndex].value  + "*" + document.getElementById("CarModel").options[document.getElementById("CarModel").selectedIndex].text+ "*" + document.getElementById("CarTrim").options[document.getElementById("CarTrim").selectedIndex].value  + "*" + document.getElementById("CarTrim").options[document.getElementById("CarTrim").selectedIndex].text + "**";
	document.forms[0].action = "/SecondStep.aspx"
	document.forms[0].submit();
}
