function ModelObj(modelId, modelName, basemsrp, fullmsrp, attributes){
	this.modelId = modelId;
	this.modelName = modelName;
	this.msrp = basemsrp;
	this.fullmsrp = fullmsrp;
	this.seating = attributes.seating;
	this.horsepower = attributes.horsepower;
	this.capacity = attributes.capacity;
	this.economy = attributes.economy;
	this.styleId = attributes.styleId
	this.overview = attributes.overview
}

ModelObj.prototype.toString = function (){
	return this.fullmsrp + "||" + this.modelId + "||" + this.modelName + "||" + this.msrp +
		   this.seating + "||" + this.horsepower + "||" + this.capacity + "||" + this.economy ;
}

ModelObj.prototype.fromString = function (modelObjString){
	var elements = modelObjString.split("||");
	this.modelId = elements[1];
	this.modelName = elements[2];
	this.msrp = elements[3];
	this.fullmsrp = elements[0];
}

function createModelsTable(imagePath) {
	var years = new Array('2008','2009');
	var contentHtml = '';
	var containerHtml = '<div id="container">';
	for (var i = 0; i < years.length; i++) {
		containerHtml += '<div id="content'+(i+1)+'" class="'+(years[i]=="2009"?'divOn':'divOff')+'">';
		containerHtml += fillCars("content"+(i+1), years[i], "33", imagePath);
		containerHtml += '</div>';
	}
	containerHtml += '</div>';
	contentHtml += containerHtml;
	document.getElementById("allVehicles").innerHTML = contentHtml;
}

function fillCars(containerName, modelYear, divisionId, imagePath){
	var request = getRequest();
	request.open("get", BASE_CONTEXT + "/showAllVehiclesFilteredByYear.do?modelYear=" + modelYear + "&divisionId=" + divisionId + "&mime=xml", false);
	request.send(null);
	var models = request.responseText.split("::");
	var modelsInfo = new Array();
    var modelInfo;
    var modelHtml = '';
    for (var i = 0; i < models.length; i++) {
   		modelInfo = new ModelObj(models[i].split("~~")[0], models[i].split("~~")[1], models[i].split("~~")[2], models[i].split("~~")[3],
   								 {seating:models[i].split("~~")[4], horsepower:models[i].split("~~")[5], capacity:models[i].split("~~")[6],
   								  economy:models[i].split("~~")[7], overview:models[i].split("~~")[8], styleId:models[i].split("~~")[9]});
   		if (modelInfo.modelName != undefined) {
	   		modelsInfo.push(modelInfo.toString());
			modelHtml += createThumbnailByModel(modelInfo,modelYear, imagePath);
		}
	}
	return modelHtml;
}

function createThumbnailByModel(modelObj, modelYear, imagePath){
	var BYOlink = 'showZipDialog(this,\''+BASE_CONTEXT;
    var MOlink = '';
    switch(modelObj.modelName.toLowerCase()){
      case 'g5': BYOlink+='/g5-'+ modelYear +'/build-your-own/'; MOlink= BASE_CONTEXT + '/g5/'; break;
      case 'torrent': BYOlink+='/torrent-'+ modelYear +'/build-your-own/'; MOlink= BASE_CONTEXT + '/torrent/'; break;
      case 'grand prix': BYOlink+='/vehicles/grandprix/build.do'; MOlink= BASE_CONTEXT + '/grand-prix/'; break;
      case 'solstice': BYOlink+='/solstice-'+ modelYear +'/build-your-own/'; MOlink= BASE_CONTEXT + '/solstice/'; break;
      case 'g6 coupe': BYOlink+='/g6-coupe-'+ modelYear +'/build-your-own/'; MOlink= BASE_CONTEXT + '/g6-coupe/'; break;
      case 'g6 sedan': BYOlink+='/g6-sedan-'+ modelYear +'/build-your-own/'; MOlink= BASE_CONTEXT + '/g6-sedan/'; break;
      case 'g8': BYOlink+='/g8-'+ modelYear +'/build-your-own/'; MOlink= BASE_CONTEXT + '/g8/'; break;
      case 'g6 convertible': BYOlink+='/byoCustomizeVehicle.do?year=2008&brand=g6conv&pvc=204&styleId=289065'; MOlink= BASE_CONTEXT + '/g6-convertible/'; break;
      case 'vibe':
          if (modelYear==2008){
              BYOlink+='/byoCustomizeVehicle.do?year=2008&brand=vibe&pvc=240&styleId=289062';
              MOlink= BASE_CONTEXT + '/vibe-2008/';
          }else{
              BYOlink+='/vehicles/vibe/build.do';
              MOlink= BASE_CONTEXT + '/vibe-2009/';}
           break;
       default: BYOlink+='showHome.do';break;
    }
    BYOlink+='\');return false;';
	var modelHtml = '<ul class="ulContainer">';
	modelHtml += '<li class="thumb"><div>';
	modelHtml += '<a href="' + MOlink + '" /><img class="thumbnails png" src="'+imagePath+'/BYO/thumbnails/'+modelYear+'/tile_car_'+ modelObj.modelName.toLowerCase().replace(/ /, "")+'.png" alt="" border="0" /></a>';
	modelHtml += '<p class="cbrand">'+ modelYear + ' ' + modelObj.modelName+'</p>';
	if(modelObj.msrp == modelObj.fullmsrp){
	modelHtml += '<p class="cMSRP">MSRP<sup>1</sup>: $' + modelObj.msrp + '</p>';
	} else{
	modelHtml += '<p class="cMSRP">MSRP<sup>1</sup>: $' + modelObj.msrp + ' - $' + modelObj.fullmsrp + '</p>';
	}
	modelHtml += '<p class="cMSRP">Seating:<br/>' + modelObj.seating;
	modelHtml += '<p class="cMSRP">Horsepower:<br/>' + modelObj.horsepower;
	modelHtml += '<p class="cMSRP">Cargo Capacity:<br/>' + modelObj.capacity;
	/*modelHtml += '<p class="cMSRP">Fuel Economy:<br/>' + modelObj.economy;*/
	modelHtml += '<a href="' + MOlink + '"> <img src="'+imagePath+'/calculator/btn_model_overview.gif" alt="" border="0"/> </a>';
        modelHtml += '<a class="build" href="#" onclick="' + BYOlink +'">Build Your Own</a>';
	modelHtml += '<a class="raq" href="' + BASE_CONTEXT + '/getRAQSelectedVehicle.do?scratchListId=' + modelObj.styleId + '|4534534545&amp;filePathAndName=c:&amp;orderavailability=Retail&amp;userId=GMBP&amp;regionId=30&amp;colorConfigPage=false&amp;modelId=' + modelObj.modelId + '&amp;postalCode=90210&amp;unitMeasure=MILES&amp;proximity=25&amp;desiredCount=3&amp;webSiteId=pg&amp;vendorId=164506.0&amp;selectingDealer=false&amp;selectingVehicle=false&amp;dealerRelativeDistance=0&amp;OperationCode=0"> Request A Quote </a>';
	modelHtml += '</div></li>';
	modelHtml += '</ul>';
	return modelHtml;
}

function loadSelectCars(){
	createModelsTable (IMAGE_PATH);
}
function changeYears(){
	var years = new Array('2008','2009');
	var valueObj = document.getElementById("slYears").value;
    for (i = 0; i < (years.length); i++) {
		if (valueObj == years[i]) {
			document.getElementById('content' + (i+1)).className = "divOn";
		}
		else {
			document.getElementById('content' + (i+1)).className = "divOff";
		}
	}
}

function onChange(index, value){
    maxTabs=2;
    for (var i = 1; i < (maxTabs+1); i++) {
		var contentName = "content"+i;

		if ((index+1) == i) {
			document.getElementById(contentName).className = "divOn";
		}
		else {
			document.getElementById(contentName).className = "divOff";
		}
	}
}

function deeplinkValue(deeplink)
{
	var url = window.location.href;
	var deeplink_Param = url.indexOf(deeplink);
	if (deeplink_Param != -1)
	{
		var deeplink_Value = url.indexOf("&", deeplink_Param);
		if (deeplink_Value != -1)
		{
			return url.substring(deeplink_Param + deeplink.length + 1, deeplink_Value);
		} else
		{
			value = url.substring(deeplink_Param + deeplink.length + 1, url.length);
			if (value!=""){	return value;
			}else {return "helpme";}
		}
	} else
	{
		return "helpme";
	}
}
