﻿var comparingCars = new Array();
var showingComparison = false;
var showingSaved = false;
var IsMySavedCars = false;
function comparisonCar(carId, imageUrl, description, carviewurl) {
    this.carId = carId;
    this.imageUrl = imageUrl;
    this.description = description;
    this.carviewurl = carviewurl;
}



function attachCompareHandlers() {


    $('.compare').each(
        function() {
            var itm = $(this);
            var carId = 0;

            if (pageView != "images") {
                carId = $(itm.parent()[0]).parent().attr('id');
            }
            else {
                carId = $(itm.parent()[0]).attr('id');
            }
            if (IsMySavedCars) {
                itm.attr("href", "javascript:DeleteMyVehicle(" + carId + ");");
                if (pageView != "images") {
                    $(this).addClass("remove");
                    $(this).html("delete saved car");
                    $(this).prev(".save").hide("fast");
                } else {
                    $(this).addClass("remove");
                    $(this).html("delete saved car");
                    $(this).prev("a").hide("fast");
                }
            }
            else {
                itm.click(handleCompareClick);
            }
            if (!IsMySavedCars) {

                if (comparingCars.length > 0) {
                    var index = -1;
                    for (var i in comparingCars) {
                        if (comparingCars[i].carId == carId) {
                            if (pageView != "images") {
                                $(this).addClass("remove");
                                $(this).html("remove from compare");
                            } else {
                                $(this).addClass("remove");
                                $(this).html("remove from compare");
                            }
                            break;
                        }
                    }
                }
            }
        }
    )
}

function addComparison(carId, imageUrl, description, carviewurl) {
    var car = new comparisonCar(carId, imageUrl, description, carviewurl);
    addComparisonCar(car,false);
}
///
///	adding/removing a comparison car
///
var sccar
function addComparisonCar(car, bNoUpdateCookie) {
    sccar = car;
    if (bNoUpdateCookie == undefined) bNoUpdateCookie = false;
    if (!bNoUpdateCookie) {
        if (comparingCars.length > 3) {
            DisplayLightBox('comparemax','485','162','true');
            return false;
        }
    }

    if (!bNoUpdateCookie) {
        $('#comparing_empty_slots div:last-child').hide('fast', function() {
            $('#comparing_empty_slots')[0].removeChild(this);


            comparingCars.push(car);
            UpdateCompareCookie();


            if (showingComparison)
                refreshComparisonDetailsPanel();
            
           
            var tmpStyle = 'style="display: none;"';
            var html = '<div ' + tmpStyle + ' id="'
	    + sccar.carId + '" class="compare_car_holder">'
		+ '<a href="' + sccar.carviewurl + '"><img class="carimg" border="0" src=\"' + sccar.imageUrl +
		'\" /></a><a id="rem' + sccar.carId +
		'" href="javascript:void(0)" onclick="return false;" class="button" ></a><p><a href="' + sccar.carviewurl + '">' + sccar.description
		+ '</a></p><a href="' + car.carviewurl + '" class="compare-vc"><img src="' + StaticContentRoot +
		'images/viewcarsmall.gif" border="0" alt="View This Car" /></a>'
		+ '<a onclick="AddToParkedCarList(' + sccar.carId + '); return false;" href="javascript:void(0)" id="a_' + sccar.carId + '" href="#" class="save icon parkCompare">park car</a>'
		+ '</div>';


            $('#comparing_cars').append(html);

            $('#rem' + sccar.carId).click(function() { removeComparisonCar(this.parentNode.id); });
            if (!bNoUpdateCookie) {
                $('#comparing_cars #' + sccar.carId).show('fast');
            }
            sccar = null;


        });

    }
    else {

        $('#comparing_empty_slots div:last-child').remove();
        comparingCars.push(car);
        
 if (showingComparison)
	        refreshComparisonDetailsPanel();

	    var tmpStyle = (!bNoUpdateCookie) ? 'style="display: none;"' : '';
	    var html = '<div ' + tmpStyle + ' id="' 
	    + car.carId + '" class="compare_car_holder">'
		+ '<a href="' + car.carviewurl + '"><img class="carimg" border="0" src=\"' + car.imageUrl +
		'\" /></a><a id="rem' + car.carId +
		'" href="javascript:void(0)" onclick="return false;" class="button" ></a><p><a href="' + car.carviewurl + '">' + car.description
		+ '</a></p><a href="' + car.carviewurl + '" class="compare-vc"><img src="' + StaticContentRoot +
		'images/viewcarsmall.gif" border="0" alt="View This Car" /></a>'
		+ '<a onclick="AddToParkedCarList(' + sccar.carId + '); return false;" href="javascript:void(0)" id="a_' + sccar.carId + '" href="#" class="save icon parkCompare">park car</a>'
		+'</div>';


	$('#comparing_cars').append(html);
    
	$('#rem' + car.carId).click(function() { removeComparisonCar(this.parentNode.id); });        


	}


	return true;
}

function UpdateCompareCookie() {
    if (comparingCars == null) 
    {
        RemoveCookie("comparedata");
    return;
    }
    var cookieData="";
    for (var i=0;i<comparingCars.length;i++)
    {
        var car=comparingCars[i];
        cookieData += car.carId + "|" + car.imageUrl + "|" + car.description + "|" + car.carviewurl;
        if (i + 1 < comparingCars.length) {cookieData += "\n"; }
    }

    AddSessionCookie("comparedata", cookieData);
   
}

function LoadCompareListFromCookie() {
    try {
        if (bStaticCompare == true) return;
    } catch (e) { }

    var cookieData=ReadCookie("comparedata");
    if (cookieData==null)return;
    var compareItems=cookieData.split("\n");
    for(var i=0;i<compareItems.length;i++) {
        if (compareItems[i] != "") {
            var compareItem = compareItems[i].split("|");
            var car = new comparisonCar(parseInt(compareItem[0]), compareItem[1], compareItem[2], compareItem[3]);
            addComparisonCar(car,true);
        }
    }

}

function removeComparisonCar(carId) {
    $('#comparing_cars #' + carId).hide('fast', function() {
        $('#comparing_cars')[0].removeChild(this);
        var index;
        for (var i in comparingCars)
            if (comparingCars[i].carId == carId) {
            index = i;
            break;
        }

        comparingCars.splice(index, 1);

        if (showingComparison)
            refreshComparisonDetailsPanel();
        $('#comparing_empty_slots').append('<div style="display: none;" class="compare_empty_slot"></div>');
        $('#comparing_empty_slots .compare_empty_slot').show('fast');
        UpdateCompareCookie();
	 });


    var pv="";

    try {
        pv = pageView;
    }
    catch (err) {
        //pageView not always defined
    }

    var itm = $('#results #compare_' + carId);

    if (itm[0] != undefined) {
        if (pageView != "images") {
        $(itm).removeClass("remove");
        $(itm).html("add to compare");
        } else {
        $(itm).removeClass("remove");
        $(itm).html("add to compare");
        }
    }

}


function RemoveSavedCarClick() {
    var $this = $(this);
    var carId = 0;
    var resultclass = "";

    if (pageView != "images") {
        carId = $($this.parent()[0]).attr('id');
        resultclass = $($this.parent()[0]).attr('class');
    }
    else {
        alert($($this.parent()[0]).attr('id'));
        carId = $($this.parent()[0]).attr('id');
        resultclass = $($this.parent()[0]).attr('class');
    }
}

function handleCompareClick() {
    var $this = $(this);
    var carId = 0;
    var resultclass = "";

    if (pageView != "images") {
        carId = $($this.parent()[0]).parent().attr('id');
        resultclass = $($this.parent()[0]).parent().attr('class');
        // QUICK CHECK FOR FEATURED
        if ($(this).hasClass("featured")) {
            carId = carId.replace("ftr", "");
        }
    }
    else {
        carId = $($this.parent()[0]).attr('id');
        resultclass = $($this.parent()[0]).attr('class');
    }
    
    var index = -1;	
    for (var i in comparingCars) 
	    if (comparingCars[i].carId == carId) {
		    index = i;
		    break;
	    }
	
    if (index > -1) {
        removeComparisonCar(carId)
    }
    else {
            var imageUrl;
            var description;
            var carviewurl;
            if (pageView != "images") {
       
                imageUrl = $("#thb" + carId).attr('src');
                description = $($($this.parent()[0]).parent()[0]).find('a.title')[0].innerHTML;
                carviewurl = $($($this.parent()[0]).parent()[0]).find('a.title')[0].href;
            }else{
                imageUrl = $($($this.parent()[0])).find('a img')[0].src;
                description = $($($this.parent()[0])).find('a.title')[0].innerHTML;
                carviewurl = $($($this.parent()[0])).find('a.title')[0].href;
            }

            var car = new comparisonCar(carId, imageUrl, description, carviewurl);
			if (addComparisonCar(car)){
			   
			        $(this).addClass("remove");
			        $(this).html("remove from compare");
				
				
	        }
    }
}

///
/// handling showing actual comparison data
///

function handleCompareSelectedClick() {
    if (comparingCars.length > 1) {
        if (showingComparison == false) {
            showingComparison = true;
			clearComparisonDetailsPanel();
            refreshComparisonDetailsPanel();
            $('#compare table').show('fast');
        }
        else {
	        closeComparisonDetailsPanel();
	    }
    } else {
    DisplayLightBox('comparemin','485','162','true');
    }
}

function closeComparisonDetailsPanel() {
    $('#compare table').hide('fast');
    $('#save_compare_button').css("display", "none");
    showingComparison = false;
}

function clearComparisonDetailsPanel() {
    $('#compare table').empty();
}

function refreshComparisonDetailsPanel() {
    if(comparingCars.length > 1) {
        var car1 = comparingCars.length > 0 ? comparingCars[0].carId : null;
        var car2 = comparingCars.length > 1 ? comparingCars[1].carId : null;
        var car3 = comparingCars.length > 2 ? comparingCars[2].carId : null;
        var car4 = comparingCars.length > 3 ? comparingCars[3].carId : null;

        GetComparisonDetails(car1, car2, car3, car4, onGetComparisonDetailsSuccess);
    }
    else
        closeComparisonDetailsPanel();
}

function saveComparison() {

    car1 = comparingCars.length > 0 ? comparingCars[0].carId : null;
    car2 = comparingCars.length > 1 ? comparingCars[1].carId : null;
    car3 = comparingCars.length > 2 ? comparingCars[2].carId : null;
    car4 = comparingCars.length > 3 ? comparingCars[3].carId : null;

    comparisonType = 1;
    
    comparisonSaveLightbox();
}


function GetCompareCarsAsParams() {

    car1 = comparingCars.length > 0 ? comparingCars[0].carId : 0;
    car2 = comparingCars.length > 1 ? comparingCars[1].carId : 0;
    car3 = comparingCars.length > 2 ? comparingCars[2].carId : 0;
    car4 = comparingCars.length > 3 ? comparingCars[3].carId : 0;
    return car1 + "|" + car2 + "|" + car3 + "|" + car4;
}
///
/// updating the compare details panel
///

function onGetComparisonDetailsSuccess(results) {
    clearComparisonDetailsPanel();

    if (!showingSaved) {
        $('#save_compare_button').html('Save this comparison');
        $('#save_compare_button').css("display", "block");
    } else {
        $('#save_compare_button').html('');
        $('#save_compare_button').css("display", "none");
    }
    $('#compare table').html(results);

}