var numOfCBChecked = 0;
var formElements = document.getElementsByTagName("input"); //Collect all inputs

function checkBoxLimit(obj, max, id){
    var disableAll = true;
    if (obj.checked) {
        numOfCBChecked++;
    }
    else {
        numOfCBChecked--;
    }
    if (numOfCBChecked == max) {
        disableAll = true;
    }
    else {
        disableAll = false;
    }
    for (var i = 0; i < formElements.length; i++) //loop through collection of inputs
    {
        //Extract all inputs that are checkboxes and have the id of 'id'
        if (formElements[i].type == "checkbox" && formElements[i].name == id) {
            //If the check box is checked, increment our counter
            if (!formElements[i].checked) {
                formElements[i].disabled = disableAll;
            }
        }
    }
}
function limitChecked(formName, id, errExceeded, errToFew){
    var ids = new Array();
    var idsCounter = 0;
    for (var i = 0; i < formElements.length; i++) //loop through collection of inputs
    {
        //Extract all inputs that are checkboxes and have the id of ids
        if (formElements[i].type == "checkbox" && formElements[i].name == id) {
            //If the check box is checked, increment our counter
            if (formElements[i].checked) {
                idsCounter++;
            }
        }
    }
    if (idsCounter > 5) {
        $("errorMessages").innerHTML = errExceeded;
    }
    else 
        if (idsCounter < 2) {
            $("errorMessages").setAttribute("class", "alertred");
            $("errorMessages").setAttribute("className", "alertred");
            $("errorMessages").innerHTML = errToFew;
           // new Effect.ScrollTo('errorMessages');
        }
        else {
			$(formName).action = url+"carfinder-online-auto-auctions/compare/";
            $(formName).submit();
        }
}

function pagination(eventId, currentPage){
    $("eventId").value = eventId;
    $("currentPage").value = currentPage;
    $("highlightedLotId").value = 0;
    $('resultsFrom').action = window.location.href;
    $('resultsFrom').submit();
}

function sortHeading(sortColumn, sortAsc){
    $('sortColumn').value = sortColumn;
    $('ascending').value = sortAsc;
    $('eventId').value = "setMetadata";
    $('highlightedLotId').value = 0;
    $('resultsFrom').submit();
}

function sortHeading_paging(sortColumn, sortAsc){
    $('currentPage').value = 0;
    $('highlightedLotId').value = 0;
    sortHeading(sortColumn, sortAsc);
}
/*
var subfilters = {};
function runSubFilterSearch(){
	$('currentPage').value = 0;
	$('currentPageSet').value = 0;
	$('highlightedLotId').value = 0;
	
	for (var key in subfilters) {
		var value = subfilters[key].getValue();
		if (value.length > 0) {
			$(key).value = value;
		}
	}
		
	for (var key in subfilters) {
		if (subfilters[key].sortOrder.length > 0) {
			$('sortColumn').value = subfilters[key].sortCode;
			$('ascending').value = (subfilters[key].sortOrder == "ASC") ? "true" : "false";
			$('highlightedLotId').value = 0;
		}
	}
	
	$("eventId").value = "applySubFilter";
	
    $("resultsFrom").submit();
}
*/

function runSubFilterSearch(){
	
	var filterValues = new Array();
	var arrCounter = 0;
	try{ filterValues[arrCounter] = getSelectedValue('subfilterYearPopup'); arrCounter++;} catch(Error) {}
    try{ filterValues[arrCounter] = getSelectedValue('subfilterMakePopup'); arrCounter++;} catch(Error) {}
    try{ filterValues[arrCounter] = getSelectedValue('subfilterModelPopup'); arrCounter++;} catch(Error) {}
    try{ filterValues[arrCounter] = getSelectedValue('subfilterFacilityPopup'); arrCounter++;} catch(Error) {}
    try{ filterValues[arrCounter] = getSelectedValue('subfilterSaleDatePopup'); arrCounter++;} catch(Error) {}
    try{ filterValues[arrCounter] = getSelectedValue('subfilterStateTypePopup'); arrCounter++;} catch(Error) {}
    try{ filterValues[arrCounter] = getSelectedValue('subfilterPrimaryDamagePopup'); arrCounter++;} catch(Error) {}
    try{ filterValues[arrCounter] = getSelectedValue('subfilterSecondaryDamagePopup'); arrCounter++;} catch(Error) {}
	
	$("eventId").value = "applySubFilter";
	$('highlightedLotId').value = 0;
	
	for(var i = 0; i <= filterValues.length-1; i++)
	{
		if (filterValues[i] !== undefined && filterValues[i] != null) {
			if (filterValues[i].indexOf('ASC_') >= 0 ||
			filterValues[i].indexOf('DESC_') >= 0) {
				if (filterValues[i].indexOf('ASC_') >= 0) {
					var field = filterValues[i].substr(4, filterValues[i].length);
					sortHeading_paging(field, 'true');
					return;
				}
				else {
					var field = filterValues[i].substr(5, filterValues[i].length);
					sortHeading_paging(field, 'false');
					return;
				}
			}
		}
	}
	
	var resetFlageValue = "*";

	try{
		$('subfilterYear').value = getSelectedValue('subfilterYearPopup');
	} catch(Error) {}
	
    try{
		$('subfilterMake').value = getSelectedValue('subfilterMakePopup');
	} catch(Error) {}
	
    try{
		$('subfilterModel').value = getSelectedValue('subfilterModelPopup');
	} catch(Error) {}
	
    try{
		$('subfilterFacility').value = getSelectedValue('subfilterFacilityPopup');
	} catch(Error) {}
	
    try{
		$('subfilterSaleDate').value = getSelectedValue('subfilterSaleDatePopup');
	} catch(Error) {}
	
    try{
		$('subfilterStateType').value = getSelectedValue('subfilterStateTypePopup');
	} catch(Error) {}
	
    try{
		$('subfilterPrimaryDamage').value = getSelectedValue('subfilterPrimaryDamagePopup');
	} catch(Error) {}
	
    try{
		$('subfilterSecondaryDamage').value = getSelectedValue('subfilterSecondaryDamagePopup');
	} catch(Error) {}
    
    $("resultsFrom").submit();
}

function resetFiltersToBase(){
	$('mainFilterPopup').value = "-1";
	runFilterSearch();
	return false;
}

function runFilterSearch(){
    var selectedValue = "";
    $('currentPage').value = 0;
    $('highlightedLotId').value = 0;
    // Clear subfilters
    try {
        try{ $('subfilterYear').value = "";} catch(Error) {}
        try{ $('subfilterMake').value = "";} catch(Error) {}
        try{ $('subfilterModel').value = "";} catch(Error) {}
        try{ $('subfilterFacility').value = "";} catch(Error) {}
        try{ $('subfilterSaleDate').value = "";} catch(Error) {}
        try{ $('subfilterStateType').value = "";} catch(Error) {}
        try{ $('subfilterPrimaryDamage').value = "";} catch(Error) {}
        try{ $('subfilterSecondaryDamage').value = "";} catch(Error) {}
    } 
    catch (Error) {
    }
    
    if ($("mainFilterPopup").options.length < 1) //The user has no saved searches
    {
        selectedValue = "#";
    }
    else //Get the value they selected
    {
        selectedValue = $("mainFilterPopup").value;
    }
    
    //If No saved search selected
    if (selectedValue != "#") {
		$("mainFilter").value = selectedValue;
        $("eventId").value = "applyMainFilter";
        $("resultsFrom").submit();
        return false;
    }
}
var showMainFilter = 0;
function mainFilterOver(e)
{
	var size = $('mainFilterPopup').length;
    if (size > 9) {
        size = 10;
    }
    if(size < 3){
		size = 2;
	} 
    $('mainFilterPopup').size = size;

	var X = Event.pointerX(e);
	var Y = Event.pointerY(e);
	
	X -= 20;
	Y -= 10;	
	
	X += 'px';
	Y += 'px';
	
	$('mainFilterDiv').style.left = X;
	$('mainFilterDiv').style.top = Y;
	$('mainFilterDiv').style.zIndex = 500;
	
	$('mainFilterDiv').style.display = 'block';
	
    sfShowScreen();
    sfHideScreen_callback = mainFilterHide;
}

function mainFilterHide(){
    var div = $('mainFilterDiv');
	if (div != null)
    	div.style.display = "none";
}

function goBreadCrum(filterCode){
    $("resetChosenFilters").value = filterCode
    $('currentPage').value = 0;
    $("eventId").value = "resetMainFilter";
    $("resultsFrom").submit();
}

function sfYearMouseOver(e){

    if ($('subfilterYearDiv').style.display == "block") {
        return;
    }
	
	var size = $('subfilterYearPopup').length;
    if (size > 9) {
        size = 10;
    }
    if(size < 3){
		size = 2;
	} 
    $('subfilterYearPopup').size = size;
	
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;	
	
	hideAllSubFilters();
    sfShow('subfilterYearDiv', X, Y);
    Event.stop(e);
    
    sfHideScreen_callback = sfHideYear;
}

function sfHideYear(){
    var div = $('subfilterYearDiv');
	if (div != null)
    	div.style.display = "none";
}

function sfMakeMouseOver(e){

    if ($('subfilterMakeDiv').style.display == "block") {
        return;
    }
	
	var size = $('subfilterMakePopup').length;
    if (size > 9) {
        size = 10;
    }
    if(size < 3){
		size = 2;
	} 
    $('subfilterMakePopup').size = size;
	
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;	
	
	hideAllSubFilters();
    sfShow('subfilterMakeDiv', X, Y);
    Event.stop(e);
    
    sfHideScreen_callback = sfHideMake;
}

function sfHideMake(){
    var div = $('subfilterMakeDiv');
	if (div != null)
    	div.style.display = "none";
}

function sfModelMouseOver(e){

    if ($('subfilterModelDiv').style.display == "block") {
        return;
    }
	
	var size = $('subfilterModelPopup').length;
    if (size > 9) {
        size = 10;
    }
    if(size < 3){
		size = 2;
	} 
    $('subfilterModelPopup').size = size;
	
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;	
    
	hideAllSubFilters();
    sfShow('subfilterModelDiv', X, Y);
    Event.stop(e);
    
    sfHideScreen_callback = sfHideModel;
}

function sfHideModel(){
    var div = $('subfilterModelDiv');
	if (div != null)
    	div.style.display = "none";
}


function sfFacilityMouseOver(e){

    if ($('subfilterFacilityDiv').style.display == "block") {
        return;
    }

	var size = $('subfilterFacilityPopup').length;
    if (size > 9) {
        size = 10;
    }
    if(size < 3){
		size = 2;
	} 
    $('subfilterFacilityPopup').size = size;
	
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;	

	hideAllSubFilters();
    sfShow('subfilterFacilityDiv', X, Y);
    Event.stop(e);
    
    sfHideScreen_callback = sfHideFacility;
}

function sfHideFacility(){
    var div = $('subfilterFacilityDiv');
	if (div != null)
    	div.style.display = "none";
}

function sfSaleDateMouseOver(e){

    if ($('subfilterSaleDateDiv').style.display == "block") {
        return;
    }

	var size = $('subfilterSaleDatePopup').length;
    if (size > 9) {
        size = 10;
    }
    if(size < 3){
		size = 2;
	} 
    $('subfilterSaleDatePopup').size = size;
	
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;	
	
	hideAllSubFilters();
    sfShow('subfilterSaleDateDiv', X, Y);
    Event.stop(e);
    
    sfHideScreen_callback = sfHideSaleDate;
}

function sfHideSaleDate(){
    var div = $('subfilterSaleDateDiv');
	if (div != null)
    	div.style.display = "none";
}

function sfStateTypeMouseOver(e){

    if ($('subfilterStateTypeDiv').style.display == "block") {
        return;
    }
	
	var size = $('subfilterStateTypePopup').length;
    if (size > 9) {
        size = 10;
    }
    if(size < 3){
		size = 2;
	} 
    $('subfilterStateTypePopup').size = size;
	
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X += 20;
    Y -= 10;	
	
	hideAllSubFilters();
    sfShow('subfilterStateTypeDiv', X, Y);
	
	var left = parseInt($('subfilterStateTypeDiv').style.left);
	left -= $('subfilterStateTypeDiv').offsetWidth;
	$('subfilterStateTypeDiv').style.left = left +"px";
	
    Event.stop(e);
    
    sfHideScreen_callback = sfHideStateType;
}

function sfHideStateType(){
    var div = $('subfilterStateTypeDiv');
	if (div != null)
    	div.style.display = "none";
}

function sfPrimaryDamageMouseOver(e){

    if ($('subfilterPrimaryDamageDiv').style.display == "block") {
        return;
    }

	var size = $('subfilterPrimaryDamagePopup').length;
    if (size > 9) {
        size = 10;
    }
    if(size < 3){
		size = 2;
	} 
    $('subfilterPrimaryDamagePopup').size = size;
	
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X += 20;
    Y -= 10;
	hideAllSubFilters();		
    sfShow('subfilterPrimaryDamageDiv', X, Y);
	
	var left = parseInt($('subfilterPrimaryDamageDiv').style.left);
	left -= $('subfilterPrimaryDamageDiv').offsetWidth;
	$('subfilterPrimaryDamageDiv').style.left = left +"px";
	
    Event.stop(e);
    
    sfHideScreen_callback = sfHidePrimaryDamage;
}

function sfHidePrimaryDamage(){
    var div = $('subfilterPrimaryDamageDiv');
	if (div != null)
    	div.style.display = "none";
}

function sfSecondaryDamageMouseOver(e){

    if ($('subfilterSecondaryDamageDiv').style.display == "block") {
        return;
    }
	
	var size = $('subfilterSecondaryDamagePopup').length;
    if (size > 9) {
        size = 10;
    }
    if(size < 3){
		size = 2;
	} 
    $('subfilterSecondaryDamagePopup').size = size;
	
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X += 20;
    Y -= 10;	

	hideAllSubFilters();
    sfShow('subfilterSecondaryDamageDiv', X, Y);
    Event.stop(e);
    
    sfHideScreen_callback = sfHideSecondaryDamage;
}

function sfHideSecondaryDamage(){
    var div = $('subfilterSecondaryDamageDiv');
    div.style.display = "none";
}

function hideAllSubFilters() {
	sfHideYear();
    sfHideMake();
    sfHideModel();
	sfHideFacility();
	sfHideSaleDate();
	sfHideStateType();
	sfHidePrimaryDamage();
}

function sfShow(sfDiv, X, Y){
    var div = $(sfDiv);
    
    sfHideYear();
    sfHideMake();
    sfHideModel();
    if ($('subfilterFacilityDiv')) {
        sfHideFacility();
        sfHideSaleDate();
    }
    X += 'px';
    Y += 'px';
    
    div.style.left = X;
    div.style.top = Y;
    div.style.zIndex = 500;
    
    div.style.display = "block";
    sfShowScreen()
}

function sfShowScreen(){
    var sfScreen = $('sfScreen')
    
    var winWidth = 0, winHeight = 0;
    if (typeof(window.innerWidth) == 'number') {
        //Non-IE
        winWidth = window.innerWidth-15;
        winHeight = window.innerHeight;
    }
    else 
        if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
            //IE 6+ in 'standards compliant mode'
            winWidth = document.documentElement.clientWidth;
            winHeight = document.documentElement.clientHeight;
        }
        else 
            if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
                //IE 4 compatible
                winWidth = document.body.clientWidth;
                winHeight = document.body.clientHeight;
            }
    
    sfScreen.style.width = winWidth + "px";
    sfScreen.style.height = winHeight + "px";
    sfScreen.style.display = 'block';
}

var sfHideScreen_callback = null;

function sfHideScreen(e){
    var sfScreen = $('sfScreen')
    sfScreen.style.display = 'none';
    
	setTimeout("sfHideYear()",1000);
	setTimeout("sfHideMake()",1000);
	setTimeout("sfHideModel()",1000);
	setTimeout("sfHideFacility()",1000);
	setTimeout("sfHideSaleDate()",1000);
	setTimeout("sfHideStateType()",1000);
	setTimeout("sfHidePrimaryDamage()",1000);
	
	setTimeout("mainFilterHide()",1000);
	/*
	if (sfHideScreen_callback != null) {
        sfHideScreen_callback();
        sfHideScreen_callback = null;
    }*/
    
}
function setZipcode(submit){

    var zipCode = trimWS($("filterZipCode").value);
    $("errorMessages").innerHTML = "";
    if (isZipValid(zipCode)) {
    
        // long canada truncate to short
        if (zipCode.length == 6) {
            zipCode = zipCode.substr(0, 3);
            $("filterZipCode").value = zipCode;
        }
        
        // Save search parms
        searchParms.zip = zipCode;
        saveSearchParms(searchParms);
        
        $("eventId").value = "setZipCode";
		$('currentPage').value = 0;
	    $('highlightedLotId').value = 0;
		
		// clear out other sorts
		$('sortColumn').value = '';
    }
    else {
        // Display zip cod format error
        $("errorMessages").setAttribute("class", "alertred");
        $("errorMessages").setAttribute("className", "alertred");
        $("errorMessages").innerHTML = message.zipCodeError;
    }
    
    if ($("errorMessages").innerHTML.length > 0) {
        return false;
    }
    
	if(submit)
   		$("resultsFrom").submit();
    
	return true;
}
function filterZipCodeKeyUp(){
    $("addZipcodeButton").disabled = ($("filterZipCode").value.length == 0);
    
    if ($("filterZipCode").value.length == 0) {
        $("filterZipCode").style.color = "#000000";
    }
}
function btn_show(obj) {
	$('row'+obj).style.background="#9ccff4";
}
function btn_hide(obj, btn) {
	$('row'+obj).style.background="none";
}
function modifyWatchList(lotId)
{
	$("watchlistId-"+lotId).hide();
	$("watchListBusyImage-"+lotId).update($("loadingImgSrc").clone()).show();
	var action = "remove";
	var checked = false;
	var timestamp = new Date().getTime();
	if($("watchlistId-"+lotId).checked)
	{
		action = "add";
		checked = true;
	}

    new Ajax.Request('/carfinder-online-auto-auctions/ajax/modify_watchlist/', {
        method: "get",
        evalJSON: true,
		parameters: {watchListIds: lotId, nocache: timestamp, watchListAction: action},
        onSuccess: function(transport){
            var returnValue = transport.responseJSON.status;

			if (returnValue == 1)
            {
				$("watchlistId-"+lotId).checked = checked;
            } 
            else 
            {
				$("watchlistId-"+lotId).checked = !checked;
            }
        	$("watchListBusyImage-"+lotId).update().hide();
        	$("watchlistId-"+lotId).show();
        },
        onFailure: function(){
        	$("watchListBusyImage-"+lotId).update().hide();
			$("watchlistId-"+lotId).checked = !checked;
        	$("watchlistId-"+lotId).show();
        },
        onException: function(request, ex){
        	$("watchListBusyImage-"+lotId).update().hide();
			$("watchlistId-"+lotId).checked = !checked;
        	$("watchlistId-"+lotId).show();
        }
    });   
}
searchParms = getSearchParms();
Event.observe(window, "load", function() {
	if ($('mainFilterPopup') != null && $('mainFilterPopup') !== undefined) {
		Event.observe($('mainFilterPopup'), 'change', runFilterSearch);
		Event.observe($('addMainFilter'), 'click', mainFilterOver);
	}
    if ($('sfYear') != null && $('sfYear') !== undefined) {
        Event.observe($('sfYear'), 'click', sfYearMouseOver);
    }
    if ($('sfMake') != null && $('sfMake') !== undefined) {
        Event.observe($('sfMake'), 'click', sfMakeMouseOver);
    }
    if ($('sfModel') != null && $('sfModel') !== undefined) {
        Event.observe($('sfModel'), 'click', sfModelMouseOver);
    }
    if ($('sfScreen') != null && $('sfScreen') !== undefined) {
        Event.observe($('sfScreen'), 'mouseover', sfHideScreen);
    }
    if ($('sfFacility') != null && $('sfFacility') !== undefined) {
        Event.observe($('sfFacility'), 'click', sfFacilityMouseOver);
    }
    if ($('sfSaleDate') != null && $('sfSaleDate') !== undefined) {
        Event.observe($('sfSaleDate'), 'click', sfSaleDateMouseOver);
    }
    if ($('sfStateType') != null && $('sfStateType') !== undefined) {
        Event.observe($('sfStateType'), 'click', sfStateTypeMouseOver);
    }
    if ($('sfPrimaryDamage') != null && $('sfPrimaryDamage') !== undefined) {
        Event.observe($('sfPrimaryDamage'), 'click', sfPrimaryDamageMouseOver);
    }
    if ($('sfSecondaryDamage') != null && $('sfSecondaryDamage') !== undefined) {
        Event.observe($('sfSecondaryDamage'), 'click', sfSecondaryDamageMouseOver);
    }
	if (!message.skipFilterCodeOnLoad) {
        Event.observe('filterZipCode', 'keyup', filterZipCodeKeyUp);
        
        try {
            var zipCode = $("filterZipCode");
            zipCode.value = searchParms.zip;
        } 
        catch (err) {
        }
    }

});