/**
* This file will provide a framework to use in the "Save My Info Widget"
*@author Ashuin Sharma
*/

var debug = false; // flag for debugging
var MAX_ENTRIES = 4; // maximum amount of entries permited
var ENTRY_DELIMITER = "||"; // separator for each entry
var ATTRIBUTE_DELIMITER = "~~"; //separator for attributes on each entry
var ADDRESS_SEP = "$$";
var EXPIRES = 10;  // cookie expiration parameter (in days)
var VEHICLE_COOKIENAME  = "savedvehiclelist";
var INVENTORY_COOKIENAME  = "savedinventorylist";
var DEALER_COOKIENAME  = "saveddealerlist";
var MSI_COOKIENAME  = "msicookie";
var DUPLICATED_ERROR  = "DUPLICATEDERROR";
var FULL_ERROR  = "MYINFOFULLERROR";
var MESSAGE_OK  = "SAVEDOK";
var ITEM = undefined;
var urlError = BASE_CONTEXT+"/showSaveMyInfoFullError.do";
var CORRUPTED_MESSAGE = "My Saved Info Data was corrupted. Cleanup done.";
var VEHICLE = 0;
var INVENTORY = 1;
var DEALER = 2;

var lastSaved = 0;
var lastPushed = 0;

var modelIds = Array();
modelIds["g8-2009"]="0852009";
modelIds["g8-2008"]="0852008";
modelIds["g6-sedan-2009"]="0812009";
modelIds["g6-sedan-2008"]="0812008";
modelIds["g6-coupe-2009"]="1122009";
modelIds["g6-coupe-2008"]="1122008";
modelIds["g6-convertible-2009"]="1132009";
modelIds["g6-convertible-2008"]="1132008";
modelIds["g5-2009"]="1082009";
modelIds["g5-2008"]="1082008";
modelIds["solstice-2009"]="0862009";
modelIds["solstice-2008"]="0862008";
modelIds["torrent-2009"]="0912009";
modelIds["torrent-2008"]="0912008";
modelIds["vibe-2009"]="0472009";
modelIds["vibe-2008"]="0472008";
modelIds["grand-prix"]="0442008";

/********************************************Saved Item ********************************************/
/*
* SavedItem is the parent class for Save My Info Cookies.
* @constructor
* @param cookieName Is the Name of the cooke file
* @param id Is the key that identifies uniquely a given entry,
*/
function SavedItem(cookieName,id){
	this._id = id;
	this._cookieName = cookieName;
}

/*
* This methods saves an object into the cookie
* @returns True if the item was saved, or false if the cookie list is full. So the system can prompt for overriding confirmation.
*/

function isNoE(content)
{
	return (content==null || content=="");
}

SavedItem.prototype.save = function (){
		if(!this.isSaved())
		{
			var size  = this.size();
			if(size < MAX_ENTRIES){
				var arrayItems = this.toObject();
                                arrayItems.push(this);
                                var value = JSON.stringify(arrayItems);
				createCookie(this._cookieName,value,EXPIRES);
				return MESSAGE_OK;
			}else
			{
				return FULL_ERROR;
			}
		}
		else
			return DUPLICATED_ERROR;
}

/*
* This method saves an item in the first position of the cookie list.
*/
SavedItem.prototype.push = function (){
	var arrayItems = this.toObject();
        arrayItems[0] = this;
	var newvalue  = JSON.stringify(arrayItems);
	createCookie(this._cookieName,newvalue,EXPIRES);
}

/*
* This method saves an item in the first position of the cookie list.
*/
SavedItem.prototype.remove = function (id){
	var arrayItems = this.toObject();
        for(var index=0;index<arrayItems.length;++index)
        {
            if(arrayItems[index]._id===id)
            {
                arrayItems.splice(index,1);
                var newvalue = JSON.stringify(arrayItems);
                createCookie(this._cookieName,newvalue,EXPIRES);
                break;
            }
        }
}


/*
* This methods erases the contents of the cookie
*/

SavedItem.prototype.flush = function (){
	eraseCookie(this._cookieName);
}

/*
* This methods displays the content of the cookie
*/

SavedItem.prototype.show = function (){
        var value = readCookie(this._cookieName);
        alert(value);
}

SavedItem.prototype.getMaxEntries = function (){
	return MAX_ENTRIES;
}

SavedItem.prototype.size = function (){
	var size  = 0;
	var arrayItems = this.toObject();
        size =  arrayItems.length;
	return size;
}

SavedItem.prototype.sizeOf = function(cookie){
	var array = new Array();
	var value = readCookie(cookie);
        var size = 0;
        try{
            if (!isNoE(value))
            {
                array = JSON.parse(value);
                size = array.length;
            }
        }
        catch(e)
        {
            flushAll();
            size =  0;
            //alert(CORRUPTED_MESSAGE);
        }
        return size;
}

SavedItem.prototype.isSaved = function (){
    var arrayItems = this.toObject();
    var result = false;
    for(var i=0;i<arrayItems.length;i++)
    {
        if(arrayItems[i]._id===this._id)
        {
            result = true;
            break;
        }
    }
    return result;
}

/*
* Overrides the toString method. This method will be called from the save function, to stream the data into the cookie.
*/
SavedItem.prototype.toString = function(){
	return JSON.stringify(this);
}

/*
* This function reads  the entire cookie, and parses it into an array list.
*/

SavedItem.prototype.toObject = function(){
	var array = new Array();
	var value = readCookie(this._cookieName);
        try{
            if (!isNoE(value))
                array = JSON.parse(value);
        }catch(e)
        {
            flushAll();
            //alert(CORRUPTED_MESSAGE);
        }
        return array;
}

/*
* @returns the Items list.
*/

SavedItem.prototype.retrieve = function(){
	return this.toObject();
}

/********************************************Class Save My Info Utils********************************************/

/*
* SaveMyInfo is the Manager for Saved My INfo COokies. With utilitary methods.
*/

function SaveMyInfoUtils()
{
}

SaveMyInfoUtils.prototype = new SavedItem();



SaveMyInfoUtils.prototype.countMyVehicles = function (){
	var vehC = 	this.sizeOf(VEHICLE_COOKIENAME);
	return vehC;
}

SaveMyInfoUtils.prototype.getMyVehicles = function (){
	var veh = new SavedVehicle(0,0,0,0,0,0);
	return veh.toObject();
}

SaveMyInfoUtils.prototype.removeVehicle = function (modelId,year){
	var veh = new SavedVehicle(modelId,year,0,0,0,0);
	return veh.remove(modelId+year);
}

SaveMyInfoUtils.prototype.isVehicleSaved = function (modelId,year){
	var veh = new SavedVehicle(modelId,year,0,0,0,0);
	return veh.isSaved();
}

SaveMyInfoUtils.prototype.isVehicleSavedByPvc = function (pvc,year){
	var veh = new SavedVehicle(0,year,0,0,pvc,0);
	return veh.isSavedByPvc();
}



SaveMyInfoUtils.prototype.countMyInventory = function (){
	var invC = 	this.sizeOf(INVENTORY_COOKIENAME);
	return invC;
}

SaveMyInfoUtils.prototype.getMyInventory = function (){
	var inv = new SavedInventory(0,0,0,0,0,0,0);
	return inv.toObject();
}

SaveMyInfoUtils.prototype.removeInventory = function (vin){
	var veh = new SavedInventory(0,0,0,0,0,0,0);
	return veh.remove(vin);
}


SaveMyInfoUtils.prototype.isInventorySaved = function (vin){
	var veh = new SavedInventory(vin,0,0,0,0,0,0);
	return veh.isSaved();
}



SaveMyInfoUtils.prototype.countDealers = function (){
	var dealersC = 	this.sizeOf(DEALER_COOKIENAME);
	return dealersC;
}

SaveMyInfoUtils.prototype.getMyDealers = function (){
	var dealers = new SavedDealer(0,0,new Address('','','','',''),0);
	return dealers.toObject();
}

SaveMyInfoUtils.prototype.removeDealer = function (bac){
	var dealers = new SavedDealer(0,0,new Address('','','','',''),0);
	return dealers.remove(bac);
}

SaveMyInfoUtils.prototype.isDealerSaved = function (bac){
	var dealers = new SavedDealer(bac,0,new Address('','','','',''),0);
	return dealers.isSaved();
}



/********************************************Class Saved Vehicle ********************************************/

/*
* SavedVehicle is the Specific Class to Save Preferred Model/Vehicles
* @constructor
* @param styleId Is the PK of this item
* @param year
* @param divisionId Is the unique identifier for the brand
* @param modelFriendlyName Is the description of the model like "Pontiac Vibe 2007",
*/
function SavedVehicle(modelId,year,brand,model,pvc,polkId){
	this.modelId= modelId;
	this.year= year;
	this.brand= brand;
	this.model = model;
        this.pvc = pvc;
        this.polkId = polkId;
	this.parent = SavedItem;
	this.parent(VEHICLE_COOKIENAME,modelId+year);
	return "SavedVehicle";
}

//Implementing Inheritance
SavedVehicle.prototype = new SavedItem();

SavedVehicle.prototype.isSavedByPvc = function (){
    var arrayItems = this.toObject();
    var result = false;
    for(var i=0;i<arrayItems.length;i++)
    {
        if(arrayItems[i].pvc===this.pvc && arrayItems[i].year === this.year )
        {
            result = true;
            break;
        }
    }
    return result;
}
/*
* Overrides the toString method. This method will be called from the save function, to stream the data into the cookie.
*/
/*SavedVehicle.prototype.toString = function(){
	return this._id + ATTRIBUTE_DELIMITER + this.modelId + ATTRIBUTE_DELIMITER + this.year + ATTRIBUTE_DELIMITER + this.brand + ATTRIBUTE_DELIMITER + this.model + ATTRIBUTE_DELIMITER + this.pvc  + ATTRIBUTE_DELIMITER + this.polkId ;
}
*/
/*
* This function reads  the entire cookie, and parses it into an array list.
*/

/*SavedVehicle.prototype.toObject = function(){
	var list = new Array();
	var value = readCookie(this._cookieName);
	if(!isNoE(value))
	{
		var objectList = value.split(ENTRY_DELIMITER);
		for (i=0; i < objectList.length; i++){
	    	stringList = objectList[i].split(ATTRIBUTE_DELIMITER);
			list.push(new SavedVehicle(stringList[1], stringList[2], stringList[3],stringList[4],stringList[5],stringList[6]))
		}
	}
	return list;
}
*/

/********************************************Class Saved Inventory ********************************************/
/*
* SavedInventory is the Specific Class to Save Preferred Inventory Vehicles
* @constructor
* @param vin Is the unique indetifier for an inventory vehicle
*/

function SavedInventory(vin,pvc,modelId,year,brand,model,color){
	this.vin=vin;
	this.pvc=pvc;
	this.modelId= modelId;
	this.year= year;
	this.brand= brand;
	this.model = model;
	this.color=color;
	this.parent = SavedItem;
	this.parent(INVENTORY_COOKIENAME,this.vin);
	return "SavedInventory";
}

//Implementing Inheritance
SavedInventory.prototype = new SavedItem();

/*
* Overrides the toString method. This method will be called from the save function, to stream the data into the cookie.
*/

/*SavedInventory.prototype.toString = function(){
	return this.vin+ATTRIBUTE_DELIMITER+this.pvc + ATTRIBUTE_DELIMITER +this.modelId + ATTRIBUTE_DELIMITER + this.year + ATTRIBUTE_DELIMITER + this.brand + ATTRIBUTE_DELIMITER + this.model + ATTRIBUTE_DELIMITER + this.color;
}
*/
/*
* This function reads  the entire cookie, and parses it into an array list.
*/

/*SavedInventory.prototype.toObject = function(){
	var list = new Array();
	var value = readCookie(this._cookieName);
	if(!isNoE(value))
	{
		var objectList = value.split(ENTRY_DELIMITER);
		for (i=0; i < objectList.length; i++){
	    	stringList = objectList[i].split(ATTRIBUTE_DELIMITER);
			list.push(new SavedInventory(stringList[0],stringList[1],stringList[2],stringList[3],stringList[4],stringList[5],stringList[6]))
		}
	}
	return list;
}
*/


/********************************************Saved Dealer List ********************************************/
/*
* SavedDealer is the Specific Class to Save Preferred Dealer Agents.
* @constructor
* @param bac Is the unique identifier for a Dealer.
*/
function SavedDealer(bac,name,address,manager){
	this.bac = bac;
	this.name=name;
	this.address=address;
	this.manager=manager;
	this.parent = SavedItem;
	this.parent(DEALER_COOKIENAME,this.bac);
	return "SavedDealer";

}

//Implementing Inheritance
SavedDealer.prototype = new SavedItem();

/*SavedDealer.prototype.toString = function(){
	return this.bac+ATTRIBUTE_DELIMITER+this.name+ATTRIBUTE_DELIMITER+this.address.toString()+ATTRIBUTE_DELIMITER+this.manager;
}

SavedDealer.prototype.toObject = function(){
	var value = readCookie(this._cookieName);
	var list = new Array();
	if(!isNoE(value)){
		var objectList = value.split(ENTRY_DELIMITER);
		for (i=0; i < objectList.length; i++){
		    stringList = objectList[i].split(ATTRIBUTE_DELIMITER);
		    var addressList = stringList[2].split(ADDRESS_SEP);
			list.push(new SavedDealer(stringList[0],stringList[1],new Address(addressList[0],addressList[1],addressList[2],addressList[3],addressList[4]),stringList[3]))
		}

	}
	return list;
}*/


/********************************************Class Address********************************************/
/*
*/

function Address(address,city,state,zip,phone){
	this.address = address;
	this.city = city;
	this.state = state;
	this.zip = zip;
	this.phone = phone;
	return "Address";
}

Address.prototype.toString = function(){
	return this.address + ADDRESS_SEP + this.city + ADDRESS_SEP + this.state + ADDRESS_SEP + this.zip+ ADDRESS_SEP + this.phone ;
}

/********************************************Helper functions********************************************/
/*
*/

function isFlashActive(){
	if(document.getElementById("savedInfoLink") == null){
		return true;
	} else {
		return false;
	}
}

function removeVehicle(modelId)
{
	year = modelId.substr(modelId.length - 4, modelId.length);
	if(modelId == returnCurrentData()){
		if(isFlashActive()){
			changeStateMySaveInfoButton(modelId, year);
		}else{
			if(modelId != "0442008"){
				performSavedCheck(modelId,year,document.getElementById("imgAddToMySavedInfo"));
			}else{
				performSavedCheck(modelId,year,document.getElementById("imgenAddToMySavedInfo"));
			}
		}
	}
	var v1 = new SavedVehicle(modelId,0,0,0,0);
	v1.remove(modelId);
	initWidget();
}




function removeInventory(vin)
{
	var v1 = new SavedInventory(0,0,0,0,0,0,0);
	v1.remove(vin);
	initWidget();
}

function removeDealer(bac)
{
	var dealers = new SavedDealer(0,0,new Address('','','','',''),0);
	dealers.remove(bac);
	initWidget();
}

function showError(imgId)
{
	var win = PositionedWin(urlError,470,200,"resizable=1","errorSI");
        if(null!=imgId)
        win.setImage(imgId);
}

function push(img)
{
	lastSaved=lastPushed;
	ITEM.push();
	showSaveInfoWin();
        checkAsSaved(img);
}

function fixModelId(modelId)
{
    var newModelId = modelId;
    if(modelId.length==1)
        newModelId = "00"+newModelId;
    else
    if(modelId.length==2)
        newModelId= "0"+newModelId;
    return newModelId;
}

function saveVehicle(modelId,year,brand,model,pvc,polkId,img)
{
		var  result  = false;
        modelId = fixModelId(modelId);
        ITEM = new SavedVehicle(modelId,year,brand,model,pvc,polkId);
    	var saved = ITEM.save();



	if	(saved==MESSAGE_OK)
	{
		lastSaved=VEHICLE;
                 saveLastSaved(lastSaved);
		if(debug)
		alert('Vehicle Saved');
		if(isFlashActive()){
			changeStateMySaveInfoButton(modelId,year);
		}


                checkAsSaved(img);
                result = true;
	}
	else if (saved==DUPLICATED_ERROR)
	{
		if(debug)
		alert('This item is already on your Saved Info!');
	}
	else
	{
		lastPushed=VEHICLE;
		showError(img);
	}

	//for tracking****
	var info = ""+document.URL;
	var infoArray = info.split("/");
	var seccion = infoArray[infoArray.length-2];

	var seg = infoArray[infoArray];
    if (seccion=="g6-coupe") {
        clickTrack({pageName: 'PONTIAC | DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop1:'DIVISIONAL', prop2:'MY SAVED INFO ', prop3:'DIVISIONAL | EXPERIENCE', prop4: 'SAVE VEHICLE', prop5:'MY SAVED INFO | SAVE VEHICLE', prop6:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop7:'MODEL HOMEPAGE', prop8: 'SAVE VEHICLE | MODEL HOMEPAGE', prop9:'MY SAVED INFO | SAVE VEHICLE | MODEL HOMEPAGE', prop10:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE | MODEL HOMEPAGE', prop19:'CROSSOVER ', prop25:'PONTIAC', prop26:(new Date()).getHours(), prop27: weekday[(new Date()).getDay()]});
    } else

    if (seccion=="build-your-own") {
	     clickTrack({pageName: 'PONTIAC | DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop1:'DIVISIONAL', prop2:'MY SAVED INFO ', prop3:'DIVISIONAL | EXPERIENCE', prop4: 'SAVE VEHICLE', prop5:'MY SAVED INFO | SAVE VEHICLE', prop6: 'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop7:'BYO', prop8: 'SAVE VEHICLE | BYO', prop9:'MY SAVED INFO | SAVE VEHICLE | BYO', prop10:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE | BYO', prop19:'CROSSOVER ', prop25:'PONTIAC', prop26:(new Date()).getHours(), prop27: weekday[(new Date()).getDay()]});
    } else

    if (seccion=="pictures") {
    	clickTrack({pageName: 'PONTIAC | DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop1:'DIVISIONAL', prop2:'MY SAVED INFO ', prop3:'DIVISIONAL | EXPERIENCE', prop4: 'SAVE VEHICLE', prop5:'MY SAVED INFO | SAVE VEHICLE', prop6:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop7:'GALLERY', prop8: 'SAVE VEHICLE | GALLERY', prop9:'MY SAVED INFO | SAVE VEHICLE | GALLERY', prop10:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE | GALLERY', prop19:'CROSSOVER ', prop25:'PONTIAC', prop26:(new Date()).getHours(), prop27: weekday[(new Date()).getDay()]});
	} else

	if (seccion=="specs-features") {
	    clickTrack({pageName: 'PONTIAC | DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop1:'DIVISIONAL', prop2:'MY SAVED INFO ', prop3:'DIVISIONAL | EXPERIENCE', prop4: 'SAVE VEHICLE', prop5:'MY SAVED INFO | SAVE VEHICLE', prop6:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop7:'SPECS', prop8: 'SAVE VEHICLE | SPECS', prop9:'MY SAVED INFO | SAVE VEHICLE | SPECS', prop10:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE | SPECS', prop19:'CROSSOVER ', prop25:'PONTIAC', prop26:(new Date()).getHours(), prop27: weekday[(new Date()).getDay()]});
	} else

	if (seccion=="compare") {
	  clickTrack({pageName: 'PONTIAC | DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop1:'DIVISIONAL', prop2:'MY SAVED INFO ', prop3:'DIVISIONAL | EXPERIENCE', prop4: 'SAVE VEHICLE', prop5:'MY SAVED INFO | SAVE VEHICLE', prop6:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop7:'COMPARISON', prop8: 'SAVE VEHICLE | COMPARISON', prop9:'MY SAVED INFO | SAVE VEHICLE | COMPARISON', prop10:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE | COMPARISON', prop19:'CROSSOVER ', prop25:'PONTIAC', prop26:(new Date()).getHours(), prop27: weekday[(new Date()).getDay()]});
	} else

    if (info.indexOf("byoCustomizeVehicle.do")>0) {
       clickTrack({pageName: 'PONTIAC | DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop1:'DIVISIONAL', prop2:'MY SAVED INFO ', prop3:'DIVISIONAL | EXPERIENCE', prop4: 'SAVE VEHICLE', prop5:'MY SAVED INFO | SAVE VEHICLE', prop6:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop7:'BYO SUMMARY', prop8: 'SAVE VEHICLE | BYO SUMMARY', prop9:'MY SAVED INFO | SAVE VEHICLE | BYO SUMMARY', prop10:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE | BYO SUMMARY', prop19:'CROSSOVER ',prop25:'PONTIAC', prop26:(new Date()).getHours(), prop27: weekday[(new Date()).getDay()]});
     }
	toggleSaveInfo();
}

//****************************************************************************

function saveInventory(vin,pvc,modelId,year,brand,model,color,img)
{
	//for tracking****
	var info = ""+document.URL;

	if (info.indexOf("/locateVehicle.do")>0) {
     	clickTrack({pageName: 'PONTIAC | DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop1:'DIVISIONAL', prop2:'MY SAVED INFO ', prop3:'DIVISIONAL | EXPERIENCE', prop4: 'SAVE VEHICLE', prop5:'MY SAVED INFO | SAVE VEHICLE', prop6:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE', prop7:'VEHLOC', prop8: 'SAVE VEHICLE | VEHLOC', prop9:'MY SAVED INFO | SAVE VEHICLE | VEHLOC', prop10:'DIVISIONAL | MY SAVED INFO | SAVE VEHICLE | VEHLOC', prop19:'CROSSOVER ', prop25:'PONTIAC', prop26:(new Date()).getHours(), prop27: weekday[(new Date()).getDay()]});
    }

        var  result  = false;
	ITEM = new SavedInventory(vin,pvc,modelId,year,brand,model,color);
	var saved = ITEM.save();
	if	(saved==MESSAGE_OK)
	{
		lastSaved=INVENTORY;
                 saveLastSaved(lastSaved);
		if(debug)
		alert('Vehicle Inventory Saved');
		showSaveInfoWin();
                checkAsSaved(img);
                result = true;
	}
	else if (saved==DUPLICATED_ERROR)
	{
		if(debug)
		alert('This item is already on your Saved Info!');
	}
	else
	{
		lastPushed=INVENTORY;
		showError(img);
	}
       // return result ;
}

function saveDealer(bac,name,address,manager,img)
{
	//for tracking****
	var info = ""+document.URL;
	//*********************************
	var  result  = false;
        ITEM = new SavedDealer(bac,name,address,manager);
	var saved = ITEM.save();
	if (info.indexOf("dealerLocatorSearch.do")>0) {
	    clickTrack({pageName: 'PONTIAC | DIVISIONAL | MY SAVED INFO | SAVE DEALER', prop1:'DIVISIONAL', prop2:'MY SAVED INFO ', prop3:'DIVISIONAL | EXPERIENCE', prop4: 'SAVE DEALER', prop5:'MY SAVED INFO | SAVE DEALER', prop6:'DIVISIONAL | MY SAVED INFO | SAVE DEALER', prop7:'DEALOC', prop8: 'SAVE DEALER | DEALOC', prop9:'MY SAVED INFO | SAVE DEALER | DEALOC', prop10:'DIVISIONAL | MY SAVED INFO | SAVE DEALER | DEALOC', prop19:'CROSSOVER ', prop25:'PONTIAC', prop26:(new Date()).getHours(), prop27: weekday[(new Date()).getDay()]});
	}
	//****************************
	if	(saved==MESSAGE_OK)
	{
		lastSaved=DEALER;
                saveLastSaved(lastSaved);
		if(debug)
		alert('Dealer Saved');
		showSaveInfoWin();
                checkAsSaved(img);
                result = true;
	}
	else if (saved==DUPLICATED_ERROR)
	{
		if(debug)
		alert('This dealer is already on your Saved Info!');
		result = false;
	}
	else
	{
		//lastPushed=DEALER;
		showError(img);
	}
        //return result;
}

function isVehicleSaved(modelId,year)
{
	var util = new SaveMyInfoUtils();
	return util.isVehicleSaved(modelId,year);
}

function isVehicleSavedByPvc(pvc,year)
{
	var util = new SaveMyInfoUtils();
	return util.isVehicleSavedByPvc(pvc,year);
}

function isInventorySaved(vin)
{
	var util = new SaveMyInfoUtils();
	return util.isInventorySaved(vin);
}

function isDealerSaved(bac)
{
	var util = new SaveMyInfoUtils();
	return util.isDealerSaved(bac);
}

function getDealerCookie()
{
	return readCookie(DEALER_COOKIENAME);
}

function checkAsSaved(btn)
{
   var uri = EN_IMAGE_PATH+"/mySavedInfo/saveInfo_check.gif";
   if(null!=btn)
   {
   btn.src = uri;
   if(btn.alt)
       btn.alt = "";
   if(btn.title)
       btn.title="";
   if(btn.onclick)
       btn.onclick="";
    }

}

function checkAsDefault(btn)
{
   var uri = EN_IMAGE_PATH+"/vehicles/saveInfo.gif";
   if(null!=btn)
   {
   btn.src = uri;
   if(btn.alt)
       btn.alt = "";
   if(btn.title)
       btn.title="";
   if(btn.onclick)
       btn.onclick="";
    }

}

function saveLastSaved(lastSaved)
{
    createCookie(MSI_COOKIENAME,lastSaved,10);
}

function getLastSaved()
{
    var result =  readCookie(MSI_COOKIENAME);
    if(null==result || ""==result)
        result=VEHICLE;
    return result;
}

function flushAll()
{
    eraseCookie(VEHICLE_COOKIENAME);
    eraseCookie(INVENTORY_COOKIENAME);
    eraseCookie(DEALER_COOKIENAME);
}

<!--function used to change the state of the flash button (check or uncheck) when the close button is pressed from the jsp popup window -->
function changeStateMySaveInfoButton(modelId, year) {
   var movie = getFlashMovieObject("flashObj_homePage");
   movie.changeStateMySaveInfoButton(modelId, year);
}
<!--Function to obtain the flash movie-->
function getFlashMovieObject(movieName){
    return document.getElementById(movieName);
}

function returnCurrentData(){
	var long = BASE_CONTEXT.length;
	var path= document.location.pathname.substr(long+1, document.location.pathname.length-1);
	var URL = path.substr(0, path.indexOf("/"));
	if(modelIds[URL] != null)
			return modelIds[URL];
}