	function createXMLHttpRequest(frm) {
	var xmlHttp = null;
	try {
	xmlHttp = new XMLHttpRequest();
//	alert("FireFox, Opera, Safari");
	return xmlHttp;
	}catch (e){
		try {
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
//		alert("Internet Explorer");
		return xmlHttp;
		}catch (e){
			try {
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			return xmlHttp;
			}catch (e){
				alert("Your Browser not Supporting Ajax");
				return false;
			}
		}
	} 
}

function getModels(frm) {
var make = document.getElementById("make");

if(make.value==""){
document.getElementById("viewmodel").innerHTML = "<select name=\"model\" id=\"model\" disabled=\"disabled\" style=\"width:150px\"><option value=\"\">Select a Model</option></select>";
return false;
}

var models = "<select name=\"model\" id=\"model\" style=\"width:150px\"><option value=\"\">&nbsp;&nbsp;&nbsp;&nbsp;Loading...</option></select>";
document.getElementById("viewmodel").innerHTML = models;
models = "";
var url = "/ajaxcrmodel?make="+make.value;
xmlHttp = createXMLHttpRequest();
xmlHttp.onreadystatechange = function gotModels() {
	if(xmlHttp.readyState==4){
		if(xmlHttp.status==200){
			var msg = xmlHttp.responseXML.getElementsByTagName("root")[0];
			models = "<select name=\"model\" id=\"model\" style=\"width:150px\"><option value=\"\">Select a Model</option>";
			for(i=0; i<msg.childNodes.length; i++){
				models = models + "<option value=\""+msg.getElementsByTagName("model")[i].childNodes[0].nodeValue+"\">"+msg.getElementsByTagName("model")[i].childNodes[0].nodeValue+"</option>";
			}
			models =models + "</select>";
				document.getElementById("viewmodel").innerHTML = models;
		}
	}
}
xmlHttp.open("GET",url,true);
xmlHttp.send(null);

}


function insurance_update(frm) {

var date = document.getElementById("insdate").value;
var month = document.getElementById("insmonth").value;
var year = document.getElementById("insyear").value;

if(isValidDate(date,month,year)){
	return false;
}

var url = "/ajax_update_reminder?date="+date+"&month="+month+"&year="+year+"&type=insurance";

xmlHttp = createXMLHttpRequest();
xmlHttp.onreadystatechange = function gotModels() {
	if(xmlHttp.readyState==4){
		if(xmlHttp.status==200){
			var msg = xmlHttp.responseText;
			if(msg=="Ok"){
				document.getElementById("insdate").disabled = true;
				document.getElementById("insmonth").disabled = true;
				document.getElementById("insyear").disabled = true;
				document.getElementById("insedit").innerHTML = "<a href=\"\" onclick=\"return insedit(this)\">Edit</a>";
			}	
			return false;

		}
	}
}
xmlHttp.open("GET",url,true);
xmlHttp.send(null);

return false;

}



function waranty_update(frm) {

    var date = document.getElementById("wtydate").value;
    var month = document.getElementById("wtymonth").value;
    var year = document.getElementById("wtyyear").value;
if(isValidDate(date,month,year)){
	return false;
}

var url = "/ajax_update_reminder?date="+date+"&month="+month+"&year="+year+"&type=waranty";
    
    xmlHttp = createXMLHttpRequest();
    xmlHttp.onreadystatechange = function gotModels() {
        if(xmlHttp.readyState==4){
            if(xmlHttp.status==200){
                var msg = xmlHttp.responseText;
                if(msg=="Ok"){
                    document.getElementById("wtydate").disabled = true;
                    document.getElementById("wtymonth").disabled = true;
                    document.getElementById("wtyyear").disabled = true;
                    document.getElementById("wtyedit").innerHTML = "<a href=\"\" onclick=\"return wtyedit(this)\">Edit</a>";
                }	
                return false;

            }
        }
    }
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    return false;

}


function service_update(frm) {

    var date = document.getElementById("svsdate").value;
    var month = document.getElementById("svsmonth").value;
    var year = document.getElementById("svsyear").value;
if(isValidDate(date,month,year)){
	return false;
}

var url = "/ajax_update_reminder?date="+date+"&month="+month+"&year="+year+"&type=service";
    
    xmlHttp = createXMLHttpRequest();
    xmlHttp.onreadystatechange = function gotModels() {
        if(xmlHttp.readyState==4){
            if(xmlHttp.status==200){
                var msg = xmlHttp.responseText;
                if(msg=="Ok"){
                    document.getElementById("svsdate").disabled = true;
                    document.getElementById("svsmonth").disabled = true;
                    document.getElementById("svsyear").disabled = true;
                    document.getElementById("svsedit").innerHTML = "<a href=\"\" onclick=\"return svsedit(this)\">Edit</a>";
                }	
                return false;

            }
        }
    }
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    return false;

}


function license_update(frm) {

    var date = document.getElementById("dlrdate").value;
    var month = document.getElementById("dlrmonth").value;
    var year = document.getElementById("dlryear").value;
if(isValidDate(date,month,year)){
	return false;
}

var url = "/ajax_update_reminder?date="+date+"&month="+month+"&year="+year+"&type=license";
    
    xmlHttp = createXMLHttpRequest();
    xmlHttp.onreadystatechange = function gotModels() {
        if(xmlHttp.readyState==4){
            if(xmlHttp.status==200){
                var msg = xmlHttp.responseText;
                if(msg=="Ok"){
                    document.getElementById("dlrdate").disabled = true;
                    document.getElementById("dlrmonth").disabled = true;
                    document.getElementById("dlryear").disabled = true;
                    document.getElementById("dlredit").innerHTML = "<a href=\"\" onclick=\"return dlredit(this)\">Edit</a>";
                }	
                return false;

            }
        }
    }
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    return false;

}

function other_update(frm) {

    var date = document.getElementById("otrdate").value;
    var month = document.getElementById("otrmonth").value;
    var year = document.getElementById("otryear").value;
if(isValidDate(date,month,year)){
	return false;
}

var url = "/ajax_update_reminder?date="+date+"&month="+month+"&year="+year+"&type=other";
    
    xmlHttp = createXMLHttpRequest();
    xmlHttp.onreadystatechange = function gotModels() {
        if(xmlHttp.readyState==4){
            if(xmlHttp.status==200){
                var msg = xmlHttp.responseText;
                if(msg=="Ok"){
                    document.getElementById("otrdate").disabled = true;
                    document.getElementById("otrmonth").disabled = true;
                    document.getElementById("otryear").disabled = true;
                    document.getElementById("otredit").innerHTML = "<a href=\"\" onclick=\"return otredit(this)\">Edit</a>";
                }	
                return false;

            }
        }
    }
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);

    return false;

}


function isValidDate(gdate, gmonth, gyear){

        var curDate = new Date();
        var months=["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
        var dates=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        
        var cur_date = curDate.getDate();
        var cur_month = curDate.getMonth();
        var cur_year = curDate.getYear();

        if(cur_year<2000){

            cur_year = cur_year +1900;
        }

		var get_dates = getDates(getIndexOf(gmonth),parseInt(gyear));

        if(parseInt(gyear) < cur_year || (isNaN(gyear)) || (gyear.length!=4)) {
            alert("Please Enter valid Year");
			return true;
        }else if((cur_month > getIndexOf(gmonth)) && (parseInt(gyear)==cur_year )) {
            alert("Please Select Valid Month");
			return true;
        }else if((parseInt(gdate) > get_dates) || ((parseInt(gdate) <= cur_date) && (parseInt(gyear)==cur_year) && (cur_month == getIndexOf(gmonth)) ) ){
            alert("Please Select Valid Date");
			return true;
        }

	return false;
}


function getDates(month, year) {
    var months=["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
    var dates=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

    if(year%4==0 && month==1){
        return dates[month]+1;
    }else {
        return dates[month];
    }
}


function getIndexOf(month) {
    var months=["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];

    for(var i=0; i<months.length; i++){
        if(months[i]==month){
            return i;
        }
    }
}


function getModels_Auto_Parts(frm) {
var make = document.getElementById("cmake");

if(make.value==""){
document.getElementById("viewmodel").innerHTML = "&nbsp;&nbsp;&nbsp;<select name=\"cmodel\" id=\"cmodel\" disabled=\"disabled\" size=\"4\" style=\"width:200px; font-size:13px;\"><option value=\"\">Select Car Model</option></select>";
getstate_city(frm);
return false;
}

var models = "&nbsp;&nbsp;&nbsp;<select name=\"cmodel\" size=\"4\" id=\"cmodel\" style=\"width:200px; font-size:13px;\"><option value=\"\">&nbsp;&nbsp;&nbsp;&nbsp;Loading...</option></select>";
document.getElementById("viewmodel").innerHTML = models;
models = "";
var url = "/ajaxcrmodel?make="+make.value;
xmlHttp = createXMLHttpRequest();
xmlHttp.onreadystatechange = function gotModels() {
	if(xmlHttp.readyState==4){
		if(xmlHttp.status==200){
			var msg = xmlHttp.responseXML.getElementsByTagName("root")[0];
			models = "&nbsp;&nbsp;&nbsp;<select name=\"cmodel\" size=\"4\" id=\"cmodel\" style=\"width:200px; font-size:13px;\"><option value=\"All\">All "+make.value+" Models</option>";
			for(i=0; i<msg.childNodes.length; i++){
				models = models + "<option value=\""+msg.getElementsByTagName("model")[i].childNodes[0].nodeValue+"\">"+msg.getElementsByTagName("model")[i].childNodes[0].nodeValue+"</option>";
			}
			models =models + "</select>";
				document.getElementById("viewmodel").innerHTML = models;
					getstate_city(frm);
		}
	}
}
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}




function getModels_Sell_Car(frm) {
var make = document.getElementById("cmake");

if(make.value==""){
document.getElementById("viewmodel").innerHTML = "<span class=\"star\">*</span>&nbsp;<select name=\"cmodel\" id=\"cmodel\" disabled=\"disabled\" style=\"width:170px; height:20px; font-size:13px;\"><option value=\"\">Select Car Model</option></select>";
getstate_city(frm);
return false;
}

var models = "<span class=\"star\">*</span>&nbsp;<select name=\"cmodel\" id=\"cmodel\" style=\"width:170px; height:20px; font-size:13px;\"><option value=\"\">&nbsp;&nbsp;&nbsp;&nbsp;Loading...</option></select>";
document.getElementById("viewmodel").innerHTML = models;
models = "";
var url = "/ajaxcrmodel?make="+make.value;
xmlHttp = createXMLHttpRequest();
xmlHttp.onreadystatechange = function gotModels() {
	if(xmlHttp.readyState==4){
		if(xmlHttp.status==200){
			var msg = xmlHttp.responseXML.getElementsByTagName("root")[0];
			models = "<span class=\"star\">*</span>&nbsp;<select name=\"cmodel\" id=\"cmodel\" style=\"width:170px; height:20px; font-size:13px;\"><option value=\"\">Select a Model</option>";
			for(i=0; i<msg.childNodes.length; i++){
				models = models + "<option value=\""+msg.getElementsByTagName("model")[i].childNodes[0].nodeValue+"\">"+msg.getElementsByTagName("model")[i].childNodes[0].nodeValue+"</option>";
			}
			models =models + "</select>";
				document.getElementById("viewmodel").innerHTML = models;
					getstate_city(frm);
		}
	}
}
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function getModels_Search_Car(frm) {
var make = document.getElementById("srch_make");

if(make.value==""){
document.getElementById("viewmodel").innerHTML = "<span class=\"star\">*</span>&nbsp;<select name=\"cmodel\" id=\"cmodel\" disabled=\"disabled\" style=\"width:170px; height:20px; font-size:13px;\"><option value=\"\">Select Car Model</option></select>";
getstate_city(frm);
return false;
}

var models = "<span class=\"star\">*</span>&nbsp;<select name=\"srch_model\" id=\"srch_model\" style=\"width:170px; height:20px; font-size:13px;\"><option value=\"\">&nbsp;&nbsp;&nbsp;&nbsp;Loading...</option></select>";
document.getElementById("viewmodel").innerHTML = models;
models = "";
var url = "/ajaxcrmodel?make="+make.value;
xmlHttp = createXMLHttpRequest();
xmlHttp.onreadystatechange = function gotModels() {
	if(xmlHttp.readyState==4){
		if(xmlHttp.status==200){
			var msg = xmlHttp.responseXML.getElementsByTagName("root")[0];
			models = "<span class=\"star\">*</span>&nbsp;<select name=\"srch_model\" id=\"srch_model\" style=\"width:170px; height:20px; font-size:13px;\"><option value=\"\">Select a Model</option>";
			for(i=0; i<msg.childNodes.length; i++){
				models = models + "<option value=\""+msg.getElementsByTagName("model")[i].childNodes[0].nodeValue+"\">"+msg.getElementsByTagName("model")[i].childNodes[0].nodeValue+"</option>";
			}
			models =models + "</select>";
				document.getElementById("viewmodel").innerHTML = models;
					getstate_city(frm);

		}
	}

}
xmlHttp.open("GET",url,true);
xmlHttp.send(null);

}


function getstate_city(frm){

var zip = document.getElementById("txtzip").value;

document.getElementById("selstate").value = "";
document.getElementById("txtcity").value = "";

var url = "/getstatecity?zip="+zip;

	if(zip.length==5){
		if(!isNaN(zip)){
			xmlHttp = createXMLHttpRequest();
			xmlHttp.onreadystatechange = function gotCategories() {
				if(xmlHttp.readyState==4){
	 				if(xmlHttp.status==200){
	 				var msg = xmlHttp.responseXML.getElementsByTagName("statecity")[0];
	 				var state = msg.getElementsByTagName("state")[0].childNodes[0].nodeValue;
	 				var city = msg.getElementsByTagName("city")[0].childNodes[0].nodeValue;
					if(state!="No"){
					
					document.getElementById("selstate").value = state;
					document.getElementById("txtcity").value = city;
					
					document.getElementById("zip_status").innerHTML="<font color=\"#FF9966\" size=\"2\"><b>"+city+"-"+state+"</b></font>";
					}else {
	 						document.getElementById("zip_status").innerHTML="<font color=\"red\" size=\"2\"><b>Enter Valid Zip Code<b></font>";
	 						
	 				}
				}
			}
		}
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
		
		}else {
		document.getElementById("zip_status").innerHTML="<font color=\"red\" size=\"2\"><b>Enter Valid Zip Code<b></font>";
		}
	}else {
	document.getElementById("zip_status").innerHTML="";
	}
}


function UploadProgressBar(){
	var url ="/FileUploadProgress";
	var i=0;
		xmlHttp = createXMLHttpRequest();
		document.getElementById("uploadbar").innerHTML="<img src=\"/images/upload_progress.gif\"/>";
		xmlHttp.onreadystatechange = function ShowProgBar() {

				if(xmlHttp.readyState==4){
	 				if(xmlHttp.status==200){
	                var msg = xmlHttp.responseText;
	                	if(msg=="WIP"){
							window.setTimeout("UploadProgressBar();", 250);
	                	}else {
	                		document.getElementById("uploadbar").innerHTML="<img src=\"/images/uploaded_progress.gif\"/>";
	                	}
	 				}
	 			}
		}
		xmlHttp.open("GET", url, true);
		xmlHttp.send(null);
}



function getMultiple_Models_Search_Car(frm) {
var make = document.getElementById("srch_make");

if(make.value!=""){

	var url = "/ajaxmultiplecarmodel?make=";
	for(i=0; i<make.length; i++){
		if(make[i].selected == true){
				url +=make[i].value + "-";  
		}
	}
	
	var models = "<select size=\"6\" multiple=\"multiple\" name=\"srch_model\" id=\"srch_model\" style=\"width:200px; font-size:12px;\"><option value=\"\">&nbsp;&nbsp;&nbsp;&nbsp;Loading...</option></select>";
	document.getElementById("viewmodel").innerHTML = models;
	models = "";
	
	xmlHttp = createXMLHttpRequest();
	
	xmlHttp.onreadystatechange = function gotModels() {
		if(xmlHttp.readyState==4){
			if(xmlHttp.status==200){
				var msg = xmlHttp.responseXML.getElementsByTagName("root")[0];
				models = "<select size=\"6\" multiple=\"multiple\" name=\"srch_model\" id=\"srch_model\" style=\"width:200px; font-size:12px;\" onchange=\"checkchanges();\">";
				for(i=0; i<(msg.childNodes.length/2); i++){
					if(msg.getElementsByTagName("modelid")[i].childNodes[0].nodeValue=="Make"){
						if(i!=0){
							models = models + "</OPTGROUP>";
						}
						models = models + "<OPTGROUP LABEL=\""+msg.getElementsByTagName("model")[i].childNodes[0].nodeValue+"\">";
					}else {
						models = models + "<option value=\""+msg.getElementsByTagName("modelid")[i].childNodes[0].nodeValue+"\">"+msg.getElementsByTagName("model")[i].childNodes[0].nodeValue+"</option>";
					}
					
				}
				models = models + "</OPTGROUP>";
				models =models + "</select>";
				document.getElementById("viewmodel").innerHTML = models;
				getstate_city(frm);
			}
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
}


function getstate_city4dealer(frm){

var zip = document.getElementById("dealerzip").value;

document.getElementById("selstate").value = "";
document.getElementById("dealercity").value = "";

var url = "/getstatecity?zip="+zip;
	if(zip.length==5){
		if(!isNaN(zip)){
			xmlHttp = createXMLHttpRequest();
			xmlHttp.onreadystatechange = function gotCategories() {
				if(xmlHttp.readyState==4){
	 				if(xmlHttp.status==200){
		 				var msg = xmlHttp.responseXML.getElementsByTagName("statecity")[0];
		 				var state = msg.getElementsByTagName("state")[0].childNodes[0].nodeValue;
		 				var city = msg.getElementsByTagName("city")[0].childNodes[0].nodeValue;
						if(state!="No"){
							document.getElementById("selstate").value = state;
							document.getElementById("dealercity").value = city;
							document.getElementById("zip_status").innerHTML="<font color=\"#FF9966\" size=\"2\"><b>"+city+"-"+state+"</b></font>";
						}else {
		 						document.getElementById("zip_status").innerHTML="<font color=\"red\" size=\"2\"><b>Enter Valid Zip Code<b></font>";
		 				}
					}
				}
		}
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
		
		}else {
		document.getElementById("zip_status").innerHTML="<font color=\"red\" size=\"2\"><b>Enter Valid Zip Code<b></font>";
		}
	}else {
	document.getElementById("zip_status").innerHTML="";
	}
}
