
/* dealerInfo is a hash keying off of dealerCode and containing both district and area. */
var dealerInfo = new Array();
dealerInfo["60412"] = ["Western Lexus District 1", "Western Lexus Area"];
dealerInfo["60404"] = ["Western Lexus District 1", "Western Lexus Area"];
dealerInfo["60445"] = ["Western Lexus District 1", "Western Lexus Area"];
dealerInfo["60451"] = ["Western Lexus District 1", "Western Lexus Area"];
dealerInfo["60434"] = ["Western Lexus District 1", "Western Lexus Area"];
dealerInfo["60413"] = ["Western Lexus District 1", "Western Lexus Area"];
dealerInfo["60454"] = ["Western Lexus District 1", "Western Lexus Area"];
dealerInfo["60408"] = ["Western Lexus District 1", "Western Lexus Area"];
dealerInfo["60418"] = ["Western Lexus District 1", "Western Lexus Area"];
dealerInfo["60405"] = ["Western Lexus District 1", "Western Lexus Area"];
dealerInfo["60453"] = ["Western Lexus District 1", "Western Lexus Area"];
dealerInfo["63030"] = ["Western Lexus District 1", "Western Lexus Area"];
dealerInfo["60438"] = ["Western Lexus District 2", "Western Lexus Area"];
dealerInfo["60407"] = ["Western Lexus District 2", "Western Lexus Area"];
dealerInfo["60419"] = ["Western Lexus District 2", "Western Lexus Area"];
dealerInfo["60402"] = ["Western Lexus District 2", "Western Lexus Area"];
dealerInfo["60430"] = ["Western Lexus District 2", "Western Lexus Area"];
dealerInfo["60406"] = ["Western Lexus District 2", "Western Lexus Area"];
dealerInfo["60414"] = ["Western Lexus District 2", "Western Lexus Area"];
dealerInfo["60441"] = ["Western Lexus District 2", "Western Lexus Area"];
dealerInfo["60411"] = ["Western Lexus District 2", "Western Lexus Area"];
dealerInfo["60447"] = ["Western Lexus District 2", "Western Lexus Area"];
dealerInfo["60428"] = ["Western Lexus District 3", "Western Lexus Area"];
dealerInfo["60431"] = ["Western Lexus District 3", "Western Lexus Area"];
dealerInfo["60444"] = ["Western Lexus District 3", "Western Lexus Area"];
dealerInfo["60446"] = ["Western Lexus District 3", "Western Lexus Area"];
dealerInfo["60424"] = ["Western Lexus District 3", "Western Lexus Area"];
dealerInfo["60429"] = ["Western Lexus District 3", "Western Lexus Area"];
dealerInfo["60410"] = ["Western Lexus District 3", "Western Lexus Area"];
dealerInfo["60417"] = ["Western Lexus District 3", "Western Lexus Area"];
dealerInfo["60448"] = ["Western Lexus District 3", "Western Lexus Area"];
dealerInfo["60449"] = ["Western Lexus District 3", "Western Lexus Area"];
dealerInfo["60450"] = ["Western Lexus District 3", "Western Lexus Area"];
dealerInfo["60421"] = ["Western Lexus District 3", "Western Lexus Area"];
dealerInfo["60201"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["60443"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["60202"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["60203"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["60442"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["62703"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["63002"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["60452"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["60231"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["60232"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["60204"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["60230"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["60455"] = ["Western Lexus District 4", "Western Lexus Area"];
dealerInfo["60503"] = ["Western Lexus District 5", "Western Lexus Area"];
dealerInfo["64301"] = ["Western Lexus District 5", "Western Lexus Area"];
dealerInfo["60501"] = ["Western Lexus District 5", "Western Lexus Area"];
dealerInfo["60531"] = ["Western Lexus District 5", "Western Lexus Area"];
dealerInfo["64330"] = ["Western Lexus District 5", "Western Lexus Area"];
dealerInfo["62702"] = ["Western Lexus District 5", "Western Lexus Area"];
dealerInfo["60530"] = ["Western Lexus District 5", "Western Lexus Area"];
dealerInfo["65002"] = ["Western Lexus District 6", "Western Lexus Area"];
dealerInfo["64607"] = ["Western Lexus District 6", "Western Lexus Area"];
dealerInfo["63602"] = ["Western Lexus District 6", "Western Lexus Area"];
dealerInfo["64602"] = ["Western Lexus District 6", "Western Lexus Area"];
dealerInfo["63601"] = ["Western Lexus District 6", "Western Lexus Area"];
dealerInfo["64606"] = ["Western Lexus District 6", "Western Lexus Area"];
dealerInfo["64630"] = ["Western Lexus District 6", "Western Lexus Area"];
dealerInfo["61101"] = ["Western Lexus District 6", "Western Lexus Area"];
dealerInfo["61202"] = ["Central Lexus District 1", "Central Lexus Area"];
dealerInfo["61206"] = ["Central Lexus District 1", "Central Lexus Area"];
dealerInfo["61205"] = ["Central Lexus District 1", "Central Lexus Area"];
dealerInfo["61230"] = ["Central Lexus District 1", "Central Lexus Area"];
dealerInfo["61207"] = ["Central Lexus District 1", "Central Lexus Area"];
dealerInfo["61203"] = ["Central Lexus District 1", "Central Lexus Area"];
dealerInfo["61201"] = ["Central Lexus District 1", "Central Lexus Area"];
dealerInfo["61208"] = ["Central Lexus District 1", "Central Lexus Area"];
dealerInfo["61209"] = ["Central Lexus District 1", "Central Lexus Area"];
dealerInfo["61204"] = ["Central Lexus District 1", "Central Lexus Area"];
dealerInfo["61306"] = ["Central Lexus District 1", "Central Lexus Area"];
dealerInfo["61302"] = ["Central Lexus District 2", "Central Lexus Area"];
dealerInfo["62102"] = ["Central Lexus District 2", "Central Lexus Area"];
dealerInfo["63406"] = ["Central Lexus District 2", "Central Lexus Area"];
dealerInfo["62103"] = ["Central Lexus District 2", "Central Lexus Area"];
dealerInfo["62101"] = ["Central Lexus District 2", "Central Lexus Area"];
dealerInfo["62130"] = ["Central Lexus District 2", "Central Lexus Area"];
dealerInfo["61301"] = ["Central Lexus District 2", "Central Lexus Area"];
dealerInfo["61304"] = ["Central Lexus District 2", "Central Lexus Area"];
dealerInfo["62104"] = ["Central Lexus District 2", "Central Lexus Area"];
dealerInfo["63432"] = ["Central Lexus District 3", "Central Lexus Area"];
dealerInfo["63404"] = ["Central Lexus District 3", "Central Lexus Area"];
dealerInfo["63401"] = ["Central Lexus District 3", "Central Lexus Area"];
dealerInfo["63407"] = ["Central Lexus District 3", "Central Lexus Area"];
dealerInfo["63408"] = ["Central Lexus District 3", "Central Lexus Area"];
dealerInfo["63402"] = ["Central Lexus District 3", "Central Lexus Area"];
dealerInfo["63431"] = ["Central Lexus District 3", "Central Lexus Area"];
dealerInfo["61604"] = ["Central Lexus District 3", "Central Lexus Area"];
dealerInfo["64804"] = ["Central Lexus District 4", "Central Lexus Area"];
dealerInfo["61401"] = ["Central Lexus District 4", "Central Lexus Area"];
dealerInfo["64802"] = ["Central Lexus District 4", "Central Lexus Area"];
dealerInfo["62230"] = ["Central Lexus District 4", "Central Lexus Area"];
dealerInfo["62601"] = ["Central Lexus District 4", "Central Lexus Area"];
dealerInfo["61403"] = ["Central Lexus District 4", "Central Lexus Area"];
dealerInfo["62201"] = ["Central Lexus District 4", "Central Lexus Area"];
dealerInfo["64830"] = ["Central Lexus District 4", "Central Lexus Area"];
dealerInfo["64801"] = ["Central Lexus District 4", "Central Lexus Area"];
dealerInfo["62630"] = ["Central Lexus District 4", "Central Lexus Area"];
dealerInfo["62403"] = ["Central Lexus District 5", "Central Lexus Area"];
dealerInfo["61305"] = ["Central Lexus District 5", "Central Lexus Area"];
dealerInfo["61602"] = ["Central Lexus District 5", "Central Lexus Area"];
dealerInfo["61603"] = ["Central Lexus District 5", "Central Lexus Area"];
dealerInfo["62402"] = ["Central Lexus District 5", "Central Lexus Area"];
dealerInfo["62404"] = ["Central Lexus District 5", "Central Lexus Area"];
dealerInfo["61502"] = ["Central Lexus District 5", "Central Lexus Area"];
dealerInfo["62405"] = ["Central Lexus District 5", "Central Lexus Area"];
dealerInfo["62430"] = ["Central Lexus District 5", "Central Lexus Area"];
dealerInfo["62003"] = ["Eastern Lexus District 1", "Eastern Lexus Area"];
dealerInfo["62005"] = ["Eastern Lexus District 1", "Eastern Lexus Area"];
dealerInfo["61802"] = ["Eastern Lexus District 1", "Eastern Lexus Area"];
dealerInfo["62004"] = ["Eastern Lexus District 1", "Eastern Lexus Area"];
dealerInfo["62002"] = ["Eastern Lexus District 1", "Eastern Lexus Area"];
dealerInfo["62006"] = ["Eastern Lexus District 1", "Eastern Lexus Area"];
dealerInfo["62802"] = ["Eastern Lexus District 1", "Eastern Lexus Area"];
dealerInfo["63106"] = ["Eastern Lexus District 1", "Eastern Lexus Area"];
dealerInfo["63104"] = ["Eastern Lexus District 1", "Eastern Lexus Area"];
dealerInfo["63108"] = ["Eastern Lexus District 1", "Eastern Lexus Area"];
dealerInfo["63107"] = ["Eastern Lexus District 1", "Eastern Lexus Area"];
dealerInfo["60603"] = ["Eastern Lexus District 2", "Eastern Lexus Area"];
dealerInfo["60605"] = ["Eastern Lexus District 2", "Eastern Lexus Area"];
dealerInfo["63109"] = ["Eastern Lexus District 2", "Eastern Lexus Area"];
dealerInfo["60602"] = ["Eastern Lexus District 2", "Eastern Lexus Area"];
dealerInfo["63802"] = ["Eastern Lexus District 2", "Eastern Lexus Area"];
dealerInfo["60601"] = ["Eastern Lexus District 2", "Eastern Lexus Area"];
dealerInfo["62903"] = ["Eastern Lexus District 2", "Eastern Lexus Area"];
dealerInfo["62907"] = ["Eastern Lexus District 2", "Eastern Lexus Area"];
dealerInfo["63134"] = ["Eastern Lexus District 2", "Eastern Lexus Area"];
dealerInfo["62904"] = ["Eastern Lexus District 3", "Eastern Lexus Area"];
dealerInfo["63131"] = ["Eastern Lexus District 3", "Eastern Lexus Area"];
dealerInfo["63132"] = ["Eastern Lexus District 3", "Eastern Lexus Area"];
dealerInfo["63130"] = ["Eastern Lexus District 3", "Eastern Lexus Area"];
dealerInfo["63101"] = ["Eastern Lexus District 3", "Eastern Lexus Area"];
dealerInfo["63110"] = ["Eastern Lexus District 3", "Eastern Lexus Area"];
dealerInfo["63102"] = ["Eastern Lexus District 3", "Eastern Lexus Area"];
dealerInfo["63103"] = ["Eastern Lexus District 3", "Eastern Lexus Area"];
dealerInfo["63105"] = ["Eastern Lexus District 3", "Eastern Lexus Area"];
dealerInfo["62906"] = ["Eastern Lexus District 4", "Eastern Lexus Area"];
dealerInfo["63704"] = ["Eastern Lexus District 4", "Eastern Lexus Area"];
dealerInfo["63709"] = ["Eastern Lexus District 4", "Eastern Lexus Area"];
dealerInfo["63702"] = ["Eastern Lexus District 4", "Eastern Lexus Area"];
dealerInfo["62910"] = ["Eastern Lexus District 4", "Eastern Lexus Area"];
dealerInfo["62911"] = ["Eastern Lexus District 4", "Eastern Lexus Area"];
dealerInfo["62908"] = ["Eastern Lexus District 4", "Eastern Lexus Area"];
dealerInfo["62930"] = ["Eastern Lexus District 4", "Eastern Lexus Area"];
dealerInfo["62931"] = ["Eastern Lexus District 4", "Eastern Lexus Area"];
dealerInfo["64701"] = ["Eastern Lexus District 5", "Eastern Lexus Area"];
dealerInfo["63731"] = ["Eastern Lexus District 5", "Eastern Lexus Area"];
dealerInfo["62909"] = ["Eastern Lexus District 5", "Eastern Lexus Area"];
dealerInfo["62901"] = ["Eastern Lexus District 5", "Eastern Lexus Area"];
dealerInfo["63703"] = ["Eastern Lexus District 5", "Eastern Lexus Area"];
dealerInfo["63701"] = ["Eastern Lexus District 5", "Eastern Lexus Area"];
dealerInfo["60702"] = ["Eastern Lexus District 5", "Eastern Lexus Area"];
dealerInfo["63730"] = ["Eastern Lexus District 5", "Eastern Lexus Area"];
dealerInfo["63705"] = ["Eastern Lexus District 5", "Eastern Lexus Area"];
dealerInfo["63710"] = ["Eastern Lexus District 5", "Eastern Lexus Area"];
dealerInfo["64530"] = ["Eastern Lexus District 6", "Eastern Lexus Area"];
dealerInfo["64502"] = ["Eastern Lexus District 6", "Eastern Lexus Area"];
dealerInfo["61904"] = ["Eastern Lexus District 6", "Eastern Lexus Area"];
dealerInfo["64504"] = ["Eastern Lexus District 6", "Eastern Lexus Area"];
dealerInfo["64503"] = ["Eastern Lexus District 6", "Eastern Lexus Area"];
dealerInfo["61905"] = ["Eastern Lexus District 6", "Eastern Lexus Area"];
dealerInfo["61902"] = ["Eastern Lexus District 6", "Eastern Lexus Area"];
dealerInfo["61903"] = ["Eastern Lexus District 6", "Eastern Lexus Area"];
dealerInfo["64505"] = ["Eastern Lexus District 6", "Eastern Lexus Area"];
dealerInfo["61930"] = ["Eastern Lexus District 6", "Eastern Lexus Area"];
dealerInfo["64209"] = ["Southern Lexus District 1", "Southern Lexus Area"];
dealerInfo["64208"] = ["Southern Lexus District 1", "Southern Lexus Area"];
dealerInfo["63501"] = ["Southern Lexus District 1", "Southern Lexus Area"];
dealerInfo["64207"] = ["Southern Lexus District 1", "Southern Lexus Area"];
dealerInfo["60301"] = ["Southern Lexus District 1", "Southern Lexus Area"];
dealerInfo["64204"] = ["Southern Lexus District 1", "Southern Lexus Area"];
dealerInfo["64211"] = ["Southern Lexus District 1", "Southern Lexus Area"];
dealerInfo["61703"] = ["Southern Lexus District 1", "Southern Lexus Area"];
dealerInfo["63503"] = ["Southern Lexus District 1", "Southern Lexus Area"];
dealerInfo["64232"] = ["Southern Lexus District 1", "Southern Lexus Area"];
dealerInfo["64202"] = ["Southern Lexus District 2", "Southern Lexus Area"];
dealerInfo["64231"] = ["Southern Lexus District 2", "Southern Lexus Area"];
dealerInfo["62301"] = ["Southern Lexus District 2", "Southern Lexus Area"];
dealerInfo["61702"] = ["Southern Lexus District 2", "Southern Lexus Area"];
dealerInfo["64210"] = ["Southern Lexus District 2", "Southern Lexus Area"];
dealerInfo["64230"] = ["Southern Lexus District 2", "Southern Lexus Area"];
dealerInfo["61704"] = ["Southern Lexus District 2", "Southern Lexus Area"];
dealerInfo["64203"] = ["Southern Lexus District 2", "Southern Lexus Area"];
dealerInfo["64201"] = ["Southern Lexus District 2", "Southern Lexus Area"];
dealerInfo["60931"] = ["Southern Lexus District 3", "Southern Lexus Area"];
dealerInfo["60908"] = ["Southern Lexus District 3", "Southern Lexus Area"];
dealerInfo["60905"] = ["Southern Lexus District 3", "Southern Lexus Area"];
dealerInfo["60915"] = ["Southern Lexus District 3", "Southern Lexus Area"];
dealerInfo["60909"] = ["Southern Lexus District 3", "Southern Lexus Area"];
dealerInfo["60916"] = ["Southern Lexus District 3", "Southern Lexus Area"];
dealerInfo["60904"] = ["Southern Lexus District 3", "Southern Lexus Area"];
dealerInfo["60932"] = ["Southern Lexus District 3", "Southern Lexus Area"];
dealerInfo["60918"] = ["Southern Lexus District 3", "Southern Lexus Area"];
dealerInfo["63902"] = ["Southern Lexus District 4", "Southern Lexus Area"];
dealerInfo["60907"] = ["Southern Lexus District 4", "Southern Lexus Area"];
dealerInfo["60906"] = ["Southern Lexus District 4", "Southern Lexus Area"];
dealerInfo["61004"] = ["Southern Lexus District 4", "Southern Lexus Area"];
dealerInfo["60910"] = ["Southern Lexus District 4", "Southern Lexus Area"];
dealerInfo["61006"] = ["Southern Lexus District 4", "Southern Lexus Area"];
dealerInfo["63904"] = ["Southern Lexus District 4", "Southern Lexus Area"];
dealerInfo["60901"] = ["Southern Lexus District 4", "Southern Lexus Area"];
dealerInfo["60930"] = ["Southern Lexus District 4", "Southern Lexus Area"];
dealerInfo["60917"] = ["Southern Lexus District 4", "Southern Lexus Area"];
dealerInfo["60959"] = ["Southern Lexus District 4", "Southern Lexus Area"];
dealerInfo["64105"] = ["Southern Lexus District 5", "Southern Lexus Area"];
dealerInfo["63202"] = ["Southern Lexus District 5", "Southern Lexus Area"];
dealerInfo["63201"] = ["Southern Lexus District 5", "Southern Lexus Area"];
dealerInfo["63203"] = ["Southern Lexus District 5", "Southern Lexus Area"];
dealerInfo["64104"] = ["Southern Lexus District 5", "Southern Lexus Area"];
dealerInfo["64106"] = ["Southern Lexus District 5", "Southern Lexus Area"];
dealerInfo["64101"] = ["Southern Lexus District 5", "Southern Lexus Area"];
dealerInfo["64130"] = ["Southern Lexus District 5", "Southern Lexus Area"];
dealerInfo["63231"] = ["Southern Lexus District 5", "Southern Lexus Area"];
dealerInfo["64107"] = ["Southern Lexus District 5", "Southern Lexus Area"];
dealerInfo["63230"] = ["Southern Lexus District 5", "Southern Lexus Area"];
dealerInfo["61002"] = ["Southern Lexus District 6", "Southern Lexus Area"];
dealerInfo["61030"] = ["Southern Lexus District 6", "Southern Lexus Area"];
dealerInfo["61001"] = ["Southern Lexus District 6", "Southern Lexus Area"];
dealerInfo["61031"] = ["Southern Lexus District 6", "Southern Lexus Area"];
dealerInfo["61005"] = ["Southern Lexus District 6", "Southern Lexus Area"];
dealerInfo["60102"] = ["Southern Lexus District 6", "Southern Lexus Area"];
dealerInfo["60104"] = ["Southern Lexus District 6", "Southern Lexus Area"];
dealerInfo["60105"] = ["Southern Lexus District 6", "Southern Lexus Area"];
dealerInfo["61003"] = ["Southern Lexus District 6", "Southern Lexus Area"];
dealerInfo["63901"] = ["Southern Lexus District 6", "Southern Lexus Area"];
dealerInfo["60106"] = ["Southern Lexus District 6", "Southern Lexus Area"];

/**
DealerHierarchyData
    An object which will safely return an area or district without throwing a javascript error.
    Requires dealerInfo, a hash of the dealer hierarchy for the program, keyed on the dealerCode.

    parameters - takes a 5-digit dealer code in the constructor to make the object.
    depends - needs a dealerInfo array of hierarchy data.

EXAMPLE USAGE
    var myDealerData = new DealerHierarchyData("00001");
    var myArea = myDealerData.getArea();
    var myDistrict = myDealerData.getDistrict();
    alert(myArea + "\n" + myDistrict);
**/
function DealerHierarchyData(dealerCode)
{
    this.dealerCode = this.initDealerCode(dealerCode);
    this.dealerData = dealerInfo;

}

/** constants used to access the dealerInfo data **/
DealerHierarchyData.prototype.DISTRICT_POSITION = 0;
DealerHierarchyData.prototype.AREA_POSITION = 1;

/**
initDealerCode()
    Scrubs the dealerCode, ensuring that only codes with digits are passed and
    that the length of the code is five.  If it's shorter, then it appends
    leading zeros to the front of the code.

    parameters - takes the dealerCode passed in with the object constructor.
    returns - a valid dealerCode if possible.  If an invalid code is found, it
              returns empty string to avoid JS errors.
**/
DealerHierarchyData.prototype.initDealerCode = function(dealerCode)
{
    //the dealerCode should always be 5 digits.
    var DEALER_CODE_LENGTH = 5;

    if (dealerCode == "" || dealerCode == null)
    {
        return "";
    }

    //check to ensure all chars are digits, and return empty string if not.
    var regEx = new RegExp("\\d{" + dealerCode.length + "}");
    if(!dealerCode.match(regEx))
    {
        return "";
    }

    //now make sure to store the dealerCode with leading zeros if it's not five digits.
    //i.e. "00123" instead of "123"
    //this is needed because the dealerInfo array will always be indexed with five digits.
    if (dealerCode.length == DEALER_CODE_LENGTH)
    {
        return dealerCode;
    }
    else if (dealerCode.length > DEALER_CODE_LENGTH)
    {
        //too long, return empty string, as this is invalid.
        return "";
    }
    else
    {
        for (var i=dealerCode.length; i<DEALER_CODE_LENGTH; i++)
        {
            dealerCode = "0" + dealerCode;
        }
        return dealerCode;
    }
}

/**
getDealerCode()
    returns - the scrubbed dealerCode.
**/
DealerHierarchyData.prototype.getDealerCode = function()
{
    return this.dealerCode;
}

/**
getDistrict()
    returns - the dealer's district, based on the dealerCode of the object.
**/
DealerHierarchyData.prototype.getDistrict = function()
{
    try
    {
        return this.dealerData[this.dealerCode][this.DISTRICT_POSITION];
    }
    catch (e)
    {
        return "";
    }
}

/**
getArea()
    returns - the dealer's area, based on the dealerCode of the object.
**/
DealerHierarchyData.prototype.getArea = function()
{
    try
    {
        return this.dealerData[this.dealerCode][this.AREA_POSITION];
    }
    catch (e)
    {
        return "";
    }
}


/**************************************************************************************/
/* For Lexus layouts, attempt to get dealerCode and dealerName from the parent frame and
then create a new DealerHierarchyData object with the dealerCode. */
var myDealerCode = "";
var myDealerName = "";
try
{
    myDealerCode = parent.dealerCode;
    myDealerName = parent.dealerName;
}
catch (e) {}
var myDealerData = new DealerHierarchyData(myDealerCode);
