﻿//SaveState
function saveState() {

    for (i in boxArray) {
        var c = boxArray[i];
        if(!getVisibility(c+'Content')) {
            setCookie('home'+c);
        } else {
            delCookie('home'+c);
        }
    }
}

//RecallState
function recallState(boxName) {
    //alert(boxName + ' cookie = ' + evalCookie('home'+boxName));
    if(evalCookie('home'+boxName)) {
       // toggle(boxName, eval(boxName+'Height'));
    }
}

//Welcome
function recallWelcome() {
    if (document.getElementById('BuyersContent').style.display == "none")
        expandObject('DealersContent');
    if (document.getElementById('DealersContent')) 
        if (document.getElementById('DealersContent').style.display == "none")
            expandObject('BuyersContent');
    toggleWelcome();
}

//HomePage Boxes
function getVisibility(obj) {
    var e = document.getElementById(obj);
    if (e) {
        if (e.style.display != "none") {
            return true;
        } else {
            return false;
        }
    }
}

function toggle(obj, h1) {
    toggleVisibility(obj + 'Content');
    if (document.getElementById(obj+'Table') != null) {
        toggleHeight(obj, h1, 30);
        toggleArrow(obj + 'Arrow');
    }
}

function toggleVisibility(obj) {
	var e = document.getElementById(obj);
	if ( e.style.display != "none" ) {
		e.style.display = 'none';
	} else {
		e.style.display = '';
	}
}

function toggleHeight(obj, h1, h2) {
    var et = document.getElementById(obj + 'Table');
    var eb = document.getElementById(obj + 'Body');
    if ( et.style.height == h1 + 'px') {
        et.style.height = h2 + 'px';
        eb.style.height = h2-2 + 'px';
    } else {
        et.style.height = h1 + 'px';
        eb.style.height = h1-2 + 'px';
    }
}

function toggleArrow(obj) {
    var e1 = document.getElementById(obj+'Up');
    var e2 = document.getElementById(obj+'Down');
    if ( e2.style.display == 'none') {
        e2.style.display = 'inline';
        e1.style.display = 'none';
    } else {
        e1.style.display = 'inline';
        e2.style.display = 'none';
    }
}

//Cookie Functionality
function setCookie(cookieName) {
    //if(evalCookie(cookieName) == false) {
        var expire = new Date ();
        expire.setTime (expire.getTime() + (2592000000)); //24 months from now!
        document.cookie = cookieName + '=true;expires=' + expire.toGMTString();
    //}
}

function delCookie(cookieName) {
    var ckyDate = new Date;
    document.cookie = cookieName+'=false;expires=' + 
        ckyDate.toGMTString( ) + ';';
}

function parseCookie() {
    tmpArray = document.cookie.split(';');
    cookieArray = new Array();
    j = 0;
    for (i in tmpArray) {
      cookieArray[j] = tmpArray[i].split('=');
      j++;
    }
}

function getCookie(cookieName) {
    for (i in cookieArray) {
      if (cookieArray[i][0].toString().replace(' ', '') == cookieName) {
         return cookieArray[i][1];
        }
    }
    return undefined;
}

function evalCookie(cookieName) {

    if (getCookie(cookieName) == undefined) {
        return false;
    } else {
        return true;
    }
}

function expandObject(obj) {
    document.getElementById(obj).style.width='100%';
}

function toggleWelcome() {
    if (document.getElementById('BuyersContent').style.display == "none" && document.getElementById('DealersContent').style.display == "none")
        toggleVisibility('WelcomeTable');
}

//Setup Boxes
function setup() {
    boxArray = new Array();
    boxArray[0] = 'Favorites';
    boxArray[1] = 'SavedSearches';
    boxArray[2] = 'Popular';
    boxArray[3] = 'Buyers';
    boxArray[4] = 'Dealers';
} 

//Parse Cookies
setup();
parseCookie();

// Functionality from Hendrick Search Vehicles control
var timerID = 0;
        
function btnSearchTab(obj, side, width) {
    tabList = 'Make,VehicleType,PriceRange,Features,MoreOptions';
    tabArray = tabList.split(",");
    for(var i=0; i<tabArray.length; i++){
        if (obj != tabArray[i]) {
            resetTab(tabArray[i]);
        }
    }

    if (obj != '') {
        tab = document.getElementById('Tab'+obj);
        tabLink = document.getElementById('TabLink'+obj);
        tabContent = document.getElementById('TabContent');
        tabContentType = document.getElementById('TabContent'+obj);
        
        if (tabLink.className != 'SearchVehiclesLinkOverlay') {
            intX = getRealLeft('Tab'+obj);
            intY = getRealTop('Tab'+obj);
            if (side == 1) intX = intX - width + 159;
            Flip = '';
            if (side == 1) Flip = 'Flip';
            tabContent.style.left = intX + (userAgent=='IE' ? 8 : 4) + 'px';
            tabContent.style.top = intY + (userAgent=='IE' ? 60 : 56) + 'px';
            document.getElementById('TabContentMiddle').style.width = width + 'px';
            tabContent.style.minWidth = width + 20 + 'px';
            tabContent.style.width = width + 20 + 'px';
            tab.className = 'SearchVehiclesButtonOverlay';
            tabLink.className = 'SearchVehiclesLinkOverlay';
            document.getElementById('TabContentLeft').className = 'SearchVehiclesLeft' +Flip;
            document.getElementById('TabContentTop').className = 'SearchVehiclesTop' +Flip;
            document.getElementById('TabContentRight').className = 'SearchVehiclesRight' +Flip;
            tabContent.style.display = '';
            tabContentType.style.display = '';
            document.getElementById('SelectedTab').value = obj;
            document.getElementById('SelectedTabSide').value = side;
            document.getElementById('SelectedTabWidth').value = width;
            clearTimeout(timerID);
        }
    } else {
        document.getElementById('TabContent').style.display = 'none';
    }
}

function setTabTimer(){
   if(timerID) {
      clearTimeout(timerID);
      timerID  = 0;
   }
   timerID = setTimeout("btnSearchTab('', 0, 0)", 500);
}

function resetTab(obj) {
    if (document.getElementById('Tab'+obj).className != 'SearchVehiclesButton') {
        document.getElementById('Tab'+obj).className = 'SearchVehiclesButton';
        document.getElementById('TabContent'+obj).style.display = 'none';
        document.getElementById('TabLink'+obj).className = 'SearchVehiclesLink';
    }
}

window.onresize = function () {

    if (document.getElementById('SelectedTab')) {
        obj = document.getElementById('SelectedTab').value;
        
        if (obj != "") {
            side = document.getElementById('SelectedTabSide').value;
            width = document.getElementById('SelectedTabWidth').value;
            
            tab = document.getElementById('Tab'+obj);
            tabContent = document.getElementById('TabContent');
            intX = getRealLeft('Tab'+obj);
            if (side == 1) { intX = intX - width + 159; }
            
            tabContent.style.left = intX + (userAgent=='IE' ? 8 : 4) + 'px';
        }
    }
}

function getRealLeft(el){
    xPos = document.getElementById(el).offsetLeft;
    tempEl = document.getElementById(el).offsetParent;
    while (tempEl != null) {
        xPos += tempEl.offsetLeft;
        tempEl = tempEl.offsetParent;
    }
    return xPos;
}

function getRealTop(el){
    yPos = document.getElementById(el).offsetTop;
    tempEl = document.getElementById(el).offsetParent;
    while (tempEl != null) {
        yPos += tempEl.offsetTop;
        tempEl = tempEl.offsetParent;
    }
    return yPos;
}

var timer = null;

function HideTab(tabName) {
	if (document.getElementById('Tab'+tabName).className != 'SearchVehiclesButton') {
		document.getElementById('Tab'+tabName).className = 'SearchVehiclesButton';
		document.getElementById('TabContent'+tabName).style.display = 'none';
		document.getElementById('TabLink'+tabName).className = 'SearchVehiclesLink';
	}
}

function HideAllWithExclude(excludeName) {
	tabList = 'Make,VehicleType,PriceRange,Features,MoreOptions';
	tabArray = tabList.split(",");
	for(var i=0; i<tabArray.length; i++){
		if (tabArray[i] != excludeName) {
			HideTab(tabArray[i]);
		}
	}
}

function HideAll() {
	HideAllWithExclude('');
	document.getElementById('TabContent').style.display = 'none';
}

function ShowTab(tabName, side, width) {
	HideAllWithExclude(tabName);
	if (tabName != '') {
		tab = document.getElementById('Tab'+tabName);
		tabLink = document.getElementById('TabLink'+tabName);
		tabContent = document.getElementById('TabContent');
		tabContentType = document.getElementById('TabContent'+tabName);
        
		if (tabLink.className != 'SearchVehiclesLinkOverlay') {
			intX = getRealLeft('Tab'+tabName);
			intY = getRealTop('Tab'+tabName);
			if (side == 1) intX = intX - width + 159;
			Flip = '';
			if (side == 1) Flip = 'Flip';
			tabContent.style.left = intX + 4 + 'px';
			tabContent.style.top = intY + 56 + 'px';
			document.getElementById('TabContentMiddle').style.width = width + 'px';
			tabContent.style.minWidth = width + 20 + 'px';
			tabContent.style.width = width + 20 + 'px';
			tab.className = 'SearchVehiclesButtonOverlay';
			tabLink.className = 'SearchVehiclesLinkOverlay';
			document.getElementById('TabContentLeft').className = 'SearchVehiclesLeft' +Flip;
			document.getElementById('TabContentTop').className = 'SearchVehiclesTop' +Flip;
			document.getElementById('TabContentRight').className = 'SearchVehiclesRight' +Flip;
			tabContent.style.display = '';
			tabContentType.style.display = '';
			document.getElementById('SelectedTab').value = tabName;
			document.getElementById('SelectedTabSide').value = side;
			document.getElementById('SelectedTabWidth').value = width;
		}
	} else {
		document.getElementById('TabContent').style.display = 'none';
	}
}		

// FindYourCar Home page's control
function validateZipCodeFindYourCar(strURL,redirectURL) {
    var refreshURL = 'window.location.href = \'' + redirectURL;
    if (document.getElementById('sltMake').value != 0) {
		refreshURL = refreshURL + 'makes=' + document.getElementById('sltMake').value;
	    if (document.getElementById('sltModel').value != 0) {
			refreshURL = refreshURL + '&models=' + document.getElementById('sltModel').value;
		}
    } else {
        alert('Selected make is not valid');
        return false;
    }
    
    refreshURL = refreshURL + '&' + constDistance + '=' + constInventoryDefaultDistance + '\'';
    var zipCode = document.getElementById('txtZipCode');
    zipCodeRegex = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);
    if (!zipCodeRegex.test(zipCode.value) && zipCode.value != '') {
        alert('Zip code is not valid');
        return false;
    } else {
		if (zipCode.value != '') {
			strURL = strURL + 'userzipcode=' + zipCode.value;
			strURL = strURL + '&userid=' + document.getElementById('userId').value;
			strURL = strURL + '&userscreenname=' + document.getElementById('userScreenName').value;
			fcnMakeRequest(strURL,1,'');
		}
        setTimeout(refreshURL, 1000);
        return true;
    }
}

function insertZipCodeIntoMakeControl(Zip){
	var zipInput = document.getElementById('txtZipCode');
	if (zipInput != null)
		zipInput.value = Zip;
}
//Ajax JQuery
function getModelList() {
	$.ajax({
		type: "POST",
		url: "templates/hometemplates/home.asmx/GetModelList",
		data: "{makeId: "+ $('#sltMake').attr('value')+" }",
		contentType: "application/json; charset=utf-8",
		dataType: "text",
		success: function(response) {
			var cars = (typeof response) == 'string' ? eval('(' + response + ')') : response;
			$('#sltModel').empty();
			$('#sltModel').append('<option value="0">Select Model</option>');
			$('#sltModel').append(cars);
		},
		failure: function(msg) {
			$('#output').text(msg);
		}
	});
}