Event.observe(window, 'load', function () {
    //$('year').selectedIndex = 0;
    Event.observe('year', 'change', selectYear);
    Event.observe('manufacturer', 'change', selectDivision);
    Event.observe('model', 'change', selectBike);
    //Event.observe('sbmtStyle', 'click', getStyles);
});

function selectYear() {
    var modelYear = $('year').options[$('year').selectedIndex].value;
    if(modelYear == null || modelYear == "" || modelYear == "Select a Year") { // check to see if "Select One" option was selected
        clearSelect($('manufacturer'));
        clearSelect($('model'));
        clearSelect($('bike'));
        $('lblBike').style.display = 'none';
        $('bike').style.display = 'none';
        $('bikeLiIt').style.display = 'none';
    } else {  
	    //do request
	    new Ajax.Request("/showroom/Default_Data.aspx?data=divisions&modelYear=" + modelYear, {
	        method: 'get',
	        onSuccess: function(transport) {
	            	            	            	            if(modelYear == "2011" || modelYear =="2012"){
	                var manufacturers = new Array("Harley-Davidson");
	              }
	              else 
	              var manufacturers = null;
	            fillSelect($('manufacturer'), transport.responseText, manufacturers);
                clearSelect($('model'));
                clearSelect($('bike'));
                $('lblBike').style.display = 'none';
                $('bike').style.display = 'none';
                $('bikeLiIt').style.display = 'none';
	        },
            onCreate: function() {
                $('manufacturer').options[0] = new Option("Loading...", "", true, true);
            }
	    });
    }
}

function selectPreYear(preMan, preMod, bike) {
    var modelYear = $('year').options[$('year').selectedIndex].value;
    if(modelYear == null || modelYear == "" || modelYear == "Select a Year") { // check to see if "Select One" option was selected
        clearSelect($('manufacturer'));
        clearSelect($('model'));
        clearSelect($('bike'));
        $('lblBike').style.display = 'none';
        $('bike').style.display = 'none';
        $('bikeLiIt').style.display = 'none';
    } else {  
	    //do request
	    new Ajax.Request("/showroom/Default_Data.aspx?data=divisions&modelYear=" + modelYear, {
	        method: 'get',
	        onSuccess: function(transport) {
	           	            	            	            if(modelYear == "2011" || modelYear =="2012"){
	                var manufacturers = new Array("Harley-Davidson");
	              }
	              else 
	              var manufacturers = null;
	            fillPreSelect($('manufacturer'), transport.responseText, manufacturers, preMan);
                clearSelect($('model'));
                clearSelect($('bike'));
                $('lblBike').style.display = 'none';
                $('bike').style.display = 'none';
                $('bikeLiIt').style.display = 'none';
	        },
            onCreate: function() {
                $('manufacturer').options[0] = new Option("Loading...", "", true, true);
            },
            onComplete: function() {
                var manufacturer = $('manufacturer').options[$('manufacturer').selectedIndex].value;
                
                if(manufacturer != " " || manufacturer != "") {
                    selectPreDivision(preMod);
                    if(preMan == "Harley-Davidson") {
                        if(bike == "" || bike == " " || bike == "Select a Bike") {
                            selectBike();
                        } else {
                            selectPreBike(bike);
                        }
                    }
                } 
            }
	    });
    }
}

function selectDivision() {
    var divisionId = $('manufacturer').options[$('manufacturer').selectedIndex].value;
    
    if(divisionId == "Select a Manufacturer" || divisionId == "" || divisionId == " ") { // check to see if "Select One" option was selected
        clearSelect($('model'));
        clearSelect($('bike'));
        $('lblBike').style.display = 'none';
        $('bike').style.display = 'none';
        $('bikeLiIt').style.display = 'none';
    } else if (divisionId == "Harley-Davidson") {
        clearSelect($('bike'));
        var fams = new Array("Softail Family", "Dyna Family", "VRSC Family", "Sportster Family", "Touring Family");
        fillFamiliesSelect($('model'), fams);
    } else {
        clearSelect($('bike'));
        $('bike').style.display = 'none';
        $('lblBike').style.display = 'none';
        $('bikeLiIt').style.display = 'none';
	    //get year
        var modelYear = $('year').value;

        //do request
        new Ajax.Request("/showroom/Default_Data.aspx?data=models&modelYear=" + modelYear + "&divisionId=" + divisionId.substr(0,divisionId.indexOf("-")), {
	        method: 'get',
	        onSuccess: function(transport) {
	            var models = transport.responseText.split(";;");
                var modelsArray = [];
                for (var i = 0; i < models.length; i++) {
   		            modelsArray[i] = models[i];
	            }
	            modelsArray.sort();

                //populate model dropdown
                fillModelsSelect($('model'), modelsArray);
            },
            onCreate: function() {
                $('model').options[0] = new Option("Loading...", "", true, true);
            }
	    });
    }
}

function selectPreDivision(preSel) {
    var divisionId = $('manufacturer').options[$('manufacturer').selectedIndex].value;
    
    if(divisionId == "Select a Manufacturer" || divisionId == "" || divisionId == " ") { // check to see if "Select One" option was selected
        //clearSelect($('model'));
        clearSelect($('bike'));
        $('lblBike').style.display = 'none';
        $('bike').style.display = 'none';
        $('bikeLiIt').style.display = 'none';
    } else if (divisionId == "Harley-Davidson") {
        clearSelect($('bike'));
        var fams = new Array("Softail Family", "Dyna Family", "VRSC Family", "Sportster Family", "Touring Family");
        fillPreFamiliesSelect($('model'), fams, preSel);
    } else {
        clearSelect($('bike'));
        $('bike').style.display = 'none';
        $('lblBike').style.display = 'none';
        $('bikeLiIt').style.display = 'none';
	    //get year
        var modelYear = $('year').value;

        //do request
        new Ajax.Request("/showroom/Default_Data.aspx?data=models&modelYear=" + modelYear + "&divisionId=" + divisionId.substr(0,divisionId.indexOf("-")), {
	        method: 'get',
	        onSuccess: function(transport) {
	            var models = transport.responseText.split(";;");
                var modelsArray = [];
                for (var i = 0; i < models.length; i++) {
   		            modelsArray[i] = models[i];
	            }
	            modelsArray.sort();

                //populate model dropdown
                fillPreModelsSelect($('model'), modelsArray, preSel);
            },
            onCreate: function() {
                $('model').options[0] = new Option("Loading...", "", true, true);
            },
            onComplete: function() {
                
            }
	    });
    }
}

function selectBike() {
    if($('manufacturer').value == "Harley-Davidson") {
        $('bike').style.display = 'block';
        $('lblBike').style.display = 'block';
        $('bikeLiIt').style.display = 'block';
        var bArray;
        if($('model').value == "Softail Family")
            bArray = new Array("Night Train", "Softail Custom", "Fat Boy", "Rocker", "Softail Deluxe", "Heritage Softail Classic", "Rocker C", "Softail Cross Bones", "CVO Softail Springer");
        else if($('model').value == "Dyna Family")
            bArray = new Array("Dyna Super Glide", "Dyna Super Glide Custom", "Dyna Street Bob", "Dyna Fat Bob", "CVO Fat Bob", "Dyna Low Rider");
        else if($('model').value == "VRSC Family")
            bArray = new Array("Night Rod Special", "V-Rod", "V-Rod Muscle");    
        else if($('model').value == "Sportster Family")
            bArray = new Array("Sportster 883 Low", "Sportster 883 Custom", "Sportster 1200 Low", "Sportster 1200 Nightster", "Sportster 1200 Custom", "Sportster Iron 883", "Sportster XR1200");    
        else if($('model').value == "Touring Family")
            bArray = new Array("Electra Glide Standard", "Road King", "Road King Classic", "Road Glide", "CVO Road Glide", "Street Glide", "Electra Glide Classic", "Electra Glide Ultra Classic", "CVO Electra Glide Ultra Classic", "Tri Glide Ultra Classic"); 
         if(bArray == null || bArray == "") {
            clearSelect($('bike'));
         } else {
            fillBikeSelect($('bike'), bArray);
        }
    } else {
        $('bike').style.display = 'none';
        $('lblBike').style.display = 'none';
        $('bikeLiIt').style.display = 'none';
        clearSelect($('bike'));
        getStyles();
    }
}

function selectPreBike(preSel) {
    if($('manufacturer').value == "Harley-Davidson") {
        $('bike').style.display = 'block';
        $('lblBike').style.display = 'block';
        $('bikeLiIt').style.display = 'block';
        var bArray;
        if($('model').value == "Softail Family")
            bArray = new Array("Night Train", "Softail Custom", "Fat Boy", "Rocker", "Softail Deluxe", "Heritage Softail Classic", "Rocker C", "Softail Cross Bones", "CVO Softail Springer");
        else if($('model').value == "Dyna Family")
            bArray = new Array("Dyna Super Glide", "Dyna Super Glide Custom", "Dyna Street Bob", "Dyna Fat Bob", "CVO Fat Bob", "Dyna Low Rider");
        else if($('model').value == "VRSC Family")
            bArray = new Array("Night Rod Special", "V-Rod", "V-Rod Muscle");    
        else if($('model').value == "Sportster Family")
            bArray = new Array("Sportster 883 Low", "Sportster 883 Custom", "Sportster 1200 Low", "Sportster 1200 Nightster", "Sportster 1200 Custom", "Sportster Iron 883", "Sportster XR1200");    
        else if($('model').value == "Touring Family")
            bArray = new Array("Electra Glide Standard", "Road King", "Road King Classic", "Road Glide", "CVO Road Glide", "Street Glide", "Electra Glide Classic", "Electra Glide Ultra Classic", "CVO Electra Glide Ultra Classic", "Tri Glide Ultra Classic");   
        fillPreBikeSelect($('bike'), bArray, preSel);
    } else {
        $('bike').style.display = 'none';
        $('lblBike').style.display = 'none';
        $('bikeLiIt').style.display = 'none';
        clearSelect($('bike'));
        getStyles();
    }
}

function getStyles() {

	//get year, divisionId, and divisionName, and model
	var modelYear = $('year').value;

	var divisionId = $('manufacturer').value;
	var divisionSelectElement = $('manufacturer');
	var divisionName = divisionSelectElement.options[divisionSelectElement.selectedIndex].text;

	var modelSelectElement = $('model');
	var modelName = modelSelectElement.options[modelSelectElement.selectedIndex].text;
	var modelId = modelSelectElement.options[modelSelectElement.selectedIndex].value;
    
	//do request
	var request = getRequest();
	try {
	    request.open("get", "/showroom/Default_Data.aspx?data=styles&modelYear=" + modelYear + "&divisionId=" + divisionId + "&divisionName=" + divisionName + "&modelId=" + modelId + "&modelName=" + modelName, false);
  	    request.send(null);
    } catch(e) {
        alert("An error occured while trying to process your request!");
    }
  	var styles = request.responseText.split("~~");
  	
  	request.abort();
  	
    //document.location = "Style.aspx";
}

function clearSelect(selectElm) {
    if (selectElm.options != null) {
        selectElm.options.length = 0;
    }
    selectElm.disabled = true;
}

function fillSelect(selectElm, responseText, hdvehics) {
    selectElm.options.length = 0;
    selectElm.options[0] = new Option("Select a Manufacturer", "", true, true);
    var response = responseText.split(";;");
    
    for (var i = 0; i < response.length; i++) {
        var style = response[i].split("~~");
        
        if(style[1] != null) {
       	    selectElm.options[selectElm.options.length] = new Option(style[1], style[0]+"-"+style[1], false, false);
       	}
    }
    for(var i=0; i<hdvehics.length; i++) {
            if(hdvehics[i] != '' || hdvehics[i] != ' ' || hdvehics[i] != null) {
                var option = document.createElement('option');
                
                option.text = hdvehics[i];
                option.value = hdvehics[i];
                
                try
                {
                    selectElm.add(option,null); // standards compliant
                }
                catch(ex)
                {
                    selectElm.add(option); // IE only
                }
            }
        }
    selectElm.disabled = false;
}

function fillPreSelect(selectElm, responseText, hdvehics, preSel) {
    selectElm.options.length = 0;
    selectElm.options[0] = new Option("Select a Manufacturer", "", true, true);
    var response = responseText.split(";;");
    
    for (var i = 0; i < response.length; i++) {
        var style = response[i].split("~~");
        
        if(style[1] != null) {
       	    if(style[0] == preSel) {
                selectElm.options[selectElm.options.length] = new Option(style[1], style[0]+"-"+style[1], true, true);
            } else {
       	        selectElm.options[selectElm.options.length] = new Option(style[1], style[0]+"-"+style[1], false, false);
            }
       	}
    }
    for(var i=0; i<hdvehics.length; i++) {
            if(hdvehics[i] != '' || hdvehics[i] != ' ' || hdvehics[i] != null) {
                var option = document.createElement('option');
                
                option.text = hdvehics[i];
                option.value = hdvehics[i];
                if(option.text == preSel) {
                    option.selected = true;
                } 
                try
                {
                    selectElm.add(option,null); // standards compliant
                }
                catch(ex)
                {
                    selectElm.add(option); // IE only
                }
            }
        }
    selectElm.disabled = false;
}


function fillModelsSelect(selectElm, modelsArray) {
    selectElm.options.length = 0;
    $('lblModel').innerHTML = '<span style="font-family:Verdana;color:Red;">*</span> Model:';
    selectElm.options[0] = new Option("Select a Model", "", true, true);
    for (var i = 0; i < modelsArray.length; i++) {
        var style = modelsArray[i].split("~~");
        selectElm.options[selectElm.options.length] = new Option(style[0], style[1]+"-"+style[0], false, false);
    }
    selectElm.disabled = false;
}

function fillPreModelsSelect(selectElm, modelsArray, preSel) {
    selectElm.options.length = 0;
    $('lblModel').innerHTML = '<span style="font-family:Verdana;color:Red;">*</span> Model:';
    selectElm.options[0] = new Option("Select a Model", "", true, true);
    for (var i = 0; i < modelsArray.length; i++) {
        var style = modelsArray[i].split("~~");
        
        if(style[1] == preSel.substr(0,preSel.indexOf("-"))) {
            selectElm.options[selectElm.options.length] = new Option(style[0], style[1]+"-"+style[0], true, true);
        } else {
            selectElm.options[selectElm.options.length] = new Option(style[0], style[1]+"-"+style[0], false, false);
        }
    }
    selectElm.disabled = false;
}

function fillFamiliesSelect(selectElm, familiesArray) {
    selectElm.options.length = 0;
    $('lblModel').innerHTML = '<span style="font-family:Verdana;color:Red;">*</span> Family:';
    selectElm.options[0] = new Option("Select a Family", "", true, true);
    for (var i = 0; i < familiesArray.length; i++) {
        var style = familiesArray[i];
        selectElm.options[selectElm.options.length] = new Option(style, style, false, false);
    }
    selectElm.disabled = false;
}

function fillPreFamiliesSelect(selectElm, familiesArray, preSel) {
    selectElm.options.length = 0;
    $('lblModel').innerHTML = '<span style="font-family:Verdana;color:Red;">*</span> Family:';
    selectElm.options[0] = new Option("Select a Family", "", true, true);
    for (var i = 0; i < familiesArray.length; i++) {
        var style = familiesArray[i];
        
        if(style == preSel) {
            selectElm.options[selectElm.options.length] = new Option(style, style, true, true);
        } else {
            selectElm.options[selectElm.options.length] = new Option(style, style, false, false);
        }
    }
    selectElm.disabled = false;
}

function fillBikeSelect(selectElm, bikesArray) {
    selectElm.options.length = 0;
    
    selectElm.options[0] = new Option("Select a Bike", "", true, true);
    for (var i = 0; i < bikesArray.length; i++) {
        var style = bikesArray[i];
        selectElm.options[selectElm.options.length] = new Option(style, style, false, false);
    }
    selectElm.disabled = false;
}

function fillPreBikeSelect(selectElm, bikesArray, preSel) {
    selectElm.options.length = 0;
    
    selectElm.options[0] = new Option("Select a Bike", "", true, true);
    for (var i = 0; i < bikesArray.length; i++) {
        var style = bikesArray[i];
        
        if(style == preSel) {
            selectElm.options[selectElm.options.length] = new Option(style, style, true, true);
        } else {
            selectElm.options[selectElm.options.length] = new Option(style, style, false, false);
        }
    }
    selectElm.disabled = false;
}
// -->
