var imagePlaceHolders = new Array();
var numOfCBChecked = 0;
var maxItemsThatCanBeCheckedForCompare = 5;
var formElements = document.getElementsByTagName("input"); //Collect all inputs
noImage = new Image(50, 38);
noImage.src = 'images/global/carImageNotFoundThumb.jpg';
var infoDivSubSection = '';

/*
 This function will change the value of showImage metadata and submit the form
 */
function showHideImagesWF(){
    if ($("showImage").value == "true") {
        $("showImage").value = false;
    }
    else {
        $("showImage").value = true;
    }
    $('_eventId').value = "showHideImage"; // Placeholder, no flows handle this response
    $("form1").action = window.location.href;
    $("form1").submit();
}

function sortHeading(sortColumn, sortAsc, formName){
    $('sortColumn').value = sortColumn;
    $('ascending').value = sortAsc;
    $('_eventId').value = "sortColumn";
    $('highlightedLotId').value = 0;
	hideAllSubFilters();
    $(formName).submit();
}

/**
 * for Search pages pagination
 * @param {Object} sortColumn
 * @param {Object} sortAsc
 * @param {Object} formName
 */
function sortHeading_paging(sortColumn, sortAsc, formName){
    $('currentPage').value = 0;
    $('currentPageSet').value = 0;
    $('freshRequired').value = false;
    $('highlightedLotId').value = 0;
    sortHeading(sortColumn, sortAsc, formName);
}

/*
 This function loops through all the compare check boxes
 counts the number of checkboxes that are checked. If the
 limit is exceeded it then calls out to a global function
 negativeMessage and passes the error message
 */
function limitChecked(formName, errExceeded, errToFew){
    var ids = new Array();
    var idsCounter = 0;
    var sessionLotCount = 0;
    
    if (message.savedComparedLotCount != null && message.savedComparedLotCount !== undefined) {
        sessionLotCount = message.savedComparedLotCount;
    }
    
    idsCounter = idsCounter + sessionLotCount;
    
    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].id == "ids") {
            //If the check box is checked, increment our counter
            if (formElements[i].checked && !formElements[i].disabled) {
                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 {
            $("_eventId").value = "compareLots";
            $(formName).submit();
        }
}

/*
 This function loops through all the watchlist check boxes
 counts the number of checkboxes that are checked. If the
 limit is exceeded it then calls out to a global function
 negativeMessage and passes the error message
 */
function limitWatchListChecked(eventId, eventUrl, 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].id == "watchlistIds") {
            //If the check box is checked, increment our counter
            if (formElements[i].checked) {
                idsCounter++;
            }
        }
    }
    
    if (idsCounter < 1) {
        $("errorMessages").setAttribute("class", "alertred");
        $("errorMessages").setAttribute("className", "alertred");
        $("errorMessages").innerHTML = errToFew;
        new Effect.ScrollTo('errorMessages');
    }
    else {
        $("_eventId").value = eventId;
        //    $("freshRequired").value = "true";
        $('form1').action = eventUrl;
        $("form1").submit();
    }
}

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 ids
        if (formElements[i].type == "checkbox" && formElements[i].id == id) {
            //If the check box is checked, increment our counter
            if (!formElements[i].checked) {
                formElements[i].disabled = disableAll;
            }
        }
    }
	compareButtonsFunctionality();
}

function formSubmit(formName, redirectURL){
    if ($(formName) != null) {
        $(formName).action = redirectURL;
        $(formName).submit();
    }
}

function setFormValue(formName, redirectURL, field, value){
    $(field).value = value;
    formSubmit(formName, redirectURL);
}

function setFormValueWF(formName, redirectURL, field, value){
    document.forms[formName][field].value = value;
    formSubmit(formName, redirectURL);
}

function setFormValueMyBid(formName, redirectURL, field, value){
    $('metadata.currentPage').value = 0;
    $('metadata.currentPageSet').value = 0;
    setFormValueWF(formName, redirectURL, field, value);
}

function showMyBids(formName, val){
    $("onlyMyBids").value = val;
    $("freshRequired").value = !val;
    $("_eventId").value = "showMyBids"; // placeholder no flows use this event
    $("currentPage").value = 0;
    $("currentPageSet").value = 0;
    $(formName).action = window.location.href;
    $(formName).submit();
}

function pagination(eventId, currentPage, currentPageSet, formName){
    $("_eventId").value = eventId;
    $("currentPage").value = currentPage;
    $("currentPageSet").value = currentPageSet;
    $("freshRequired").value = false;
    $("highlightedLotId").value = 0;
    $(formName).action = window.location.href;
    $(formName).submit();
}

function changePage(eventId, changeTo, formName){
    $("_eventId").value = eventId;
    $("currentPage").value = changeTo;
    $("highlightedLotId").value = 0;
    $(formName).action = window.location.href;
    $(formName).submit();
}

/**remove after refactoring START**/
function setListType(listType){
    $("listType").value = listType;
}

/**remove after refactoring END**/
/**
 Scroll id 'highlight' into view, then scroll up by half a screen to
 place it in the center.
 **/
function gotoHighlighted(){
    var currentScrollPos;
    var maxScrollPos;
    
    if ($("highlight") != null) {
        $("highlight").scrollIntoView(true);
        
        currentScrollPos = scrollCoordinates();
        maxScrollPos = getPageScrollMaxHeight() - document.body.clientHeight;
        
        if (parseInt(maxScrollPos) > parseInt(currentScrollPos)) {
            window.scrollBy(0, -(document.body.clientHeight / 2));
        }
    }
}

function runSavedSearch(errMsg){
    var dd = $("savedSearch");
    var selectedValue = "";
    if (dd.options.length < 1) //The user has no saved searches
    {
        selectedValue = "#";
    }
    else //Get the value they selcted
    {
        selectedValue = dd.options[dd.options.selectedIndex].value;
    }
    //If No saved search selected
    if (selectedValue != "#") {
        $("searchKey").value = selectedValue;
        $("_eventId").value = "setCriteria";
        $("freshRequired").value = "false";
        $("form1").action = message.serachUrl;
        $("form1").submit();
        return false;
    }
    else //The selected nothing and return an error
    {
        $("errorMessages").setAttribute("class", "alertred");
        $("errorMessages").setAttribute("className", "alertred");
        $("errorMessages").innerHTML = errMsg;
        return false;
    }
}

function findLot(lotNumber, lotNotFoundErrorMsg){
    this.lookForLot = function(){
        if (lotNumber > 0) {
            if ($("highlight") == null) {
                $("errorMessages").innerHTML = lotNotFoundErrorMsg;
            }
        }
    }
    setTimeout("lookForLot()", 10000);
}

/*
 *********************** REPLAY FUNCTIONS *************************************
 */
var selectedLots = new Array();
var check = false;
function addToSale(obj, selectedValue){
    if ($(obj).checked) {
        addToList(selectedValue);
    }
    else {
        removeFromList(selectedValue);
    }
    
    updateSaleList();
}

function removeFromList(selectedValue){
    for (var i = 0; i <= selectedLots.length - 1; i++) {
        if (selectedLots[i] == selectedValue) {
            selectedLots.splice(i, 1);
        }
    }
}

function addToList(selectedValue){
    //Fixed for bug#6014  
    //Checking in array we are not adding duplicate value
    if (selectedLots.indexOf(selectedValue) >= 0) {
        return;
    }
    selectedLots.push(selectedValue);
}

function updateSaleList(){
    clearKeys();
    for (var i = 0; i <= selectedLots.length - 1; i++) {
        var newInput = $E({
            tag: "input",
            type: "hidden",
            name: "soldLotKey",
            id: "soldLotKey",
            value: selectedLots[i]
        });
        $("replayForm").appendChild(newInput);
    }
}

function clearKeys(){
    if ($("replayForm").hasChildNodes()) {
        while ($("replayForm").childNodes.length >= 1) {
            $("replayForm").removeChild($("replayForm").firstChild);
        }
    }
}

function replayLotNoKey(){
    $("errorMessages").innerHTML = "";
    if (!$("replayForm").hasChildNodes()) {
        $("errorMessages").setAttribute("class", "alertred");
        $("errorMessages").setAttribute("className", "alertred");
        $("errorMessages").innerHTML = message.replayError;
        new Effect.ScrollTo("errorMessages");
    }
    else {
        var windowTarget = "replayWindow";
        $("replayForm").target = windowTarget;
        window.open("", windowTarget, "width=730, height=480, scrollbars=yes, menubar=no, location=no, status=no, resizable=no, toolbars=no");
        setTimeout("openReplayWindow()", 500);
    }
}

function checkAll(){
    if (!check) {
        check = true
        $("selectAll").value = message.clearAll;
    }
    else {
        check = false;
        $("selectAll").value = message.checkAll;
    }
    var elements = $$("input");
    for (var i = 0; i <= elements.length - 1; i++) {
        if (elements[i].type == "checkbox" && !elements[i].disabled) {
            var elemName = elements[i].name;
            if (elemName.indexOf("replay") >= 0) {
                elements[i].checked = check;
                addToSale(elements[i], elements[i].value);
            }
        }
    }
}

function getPageScrollMaxHeight(){
    if (window.innerHeight && window.scrollMaxY) {// Firefox
        yWithScroll = window.innerHeight + window.scrollMaxY;
    }
    else 
        if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac
            yWithScroll = document.body.scrollHeight;
        }
        else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
            yWithScroll = document.body.offsetHeight;
        }
    return yWithScroll;
}

function scrollCoordinates(){
    var csp = 0;
    if (window.pageYOffset) {
        csp = window.pageYOffset
    }
    if (document.body.scrollTop) {
        csp = document.body.scrollTop;
    }
    return csp;
}

/* 
 * this function allows the user to select only one sort order
 */
var subFilterSelectStatus = {};
function subFilterSelectChange(selectObj){

    if (selectObj.options[0].selected == true) {
        if (selectObj.options[1].selected == true) {
            if (subFilterSelectStatus[selectObj.id] == 0) {
                selectObj.options[0].selected = false;
                subFilterSelectStatus[selectObj.id] = 1;
            }
            else {
                selectObj.options[1].selected = false;
                subFilterSelectStatus[selectObj.id] = 0;
            }
        }
        else {
            subFilterSelectStatus[selectObj.id] = 0;
        }
    }
    else 
        if (selectObj.options[1].selected == true) {
            subFilterSelectStatus[selectObj.id] = 1;
            
        }
        else {
            subFilterSelectStatus[selectObj.id] = null;
        }
}

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;
			$("freshRequired").value = false;
		}
	}
	
	$("_eventId").value = "applySubFilter";
	
	$("form1").submit();
}

/*
function runSubFilterSearch(){

	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('|') >= 0){
					// Display Sort error
					$("errorMessages").setAttribute("class", "alertred");
					$("errorMessages").setAttribute("className", "alertred");
					$("errorMessages").innerHTML = message.sortError;
					hideAllSubFilters();
					return;	
				}
				else 
				{
					// remove subfilter parms from sort parms
					firstPipe = filterValues[i].indexOf('|')
					if (firstPipe >= 0) {
						filterValues[i] = filterValues[i].substr(0, firstPipe );
					}
					
					if (filterValues[i].indexOf('ASC_') >= 0) {
						var field = filterValues[i].substr(4, filterValues[i].length);
						sortHeading_paging(field, 'true', 'form1');
						    //$('sortColumn').value = field;
    						//$('ascending').value = 'true';
							//$("_eventId").value = "applySubFilter";
						return;
					}
					else {
						var field = filterValues[i].substr(5, filterValues[i].length);
						sortHeading_paging(field, 'false', 'form1');
						    //$('sortColumn').value = field;
    						//$('ascending').value = 'false';
							//$("_eventId").value = "applySubFilter";
						return;
					}
				}
				
			}
		}
	}
    
	// default values
	$("_eventId").value = "applySubFilter";
    $("freshRequired").value = false;

	setSubField('subfilterYear' ,'subfilterYearPopup' );
    setSubField('subfilterMake' ,'subfilterMakePopup' );
    setSubField('subfilterModel' ,'subfilterModelPopup' );
    setSubField('subfilterFacility' ,'subfilterFacilityPopup' );
    setSubField('subfilterSaleDate' ,'subfilterSaleDatePopup' );
    setSubField('subfilterStateType' ,'subfilterStateTypePopup' );
    setSubField('subfilterPrimaryDamage' ,'subfilterPrimaryDamagePopup' );
    setSubField('subfilterSecondaryDamage' ,'subfilterSecondaryDamagePopup' );

    $("form1").submit();
  
    
}
*/  
/*
function setSubField(hiddenField, selection)
{
	
	
	var selectedVal = subfilters[hiddenField].getValue();
	if (selectedVal != '') {
		$(hiddenField).value = selectedVal;
		$("subfilterForceRequery").value = 'false';
		$("freshRequired").value = false;
	}

  try {  
  
    var selectedVal = getSelectedValue(selection);
    
    if (selectedVal != '') {
		// removed sort order from subfilter
		if (selectedVal.indexOf('ASC_') >= 0 ||
			selectedVal.indexOf('DESC_') >= 0) {
			firstPipe = selectedVal.indexOf('|')
			if (firstPipe >= 0) {
				selectedVal = selectedVal.substr(firstPipe +1);
			}else{
				selectedVal = "";
			}
		}
		
		if (selectedVal != '') {
			$(hiddenField).value = selectedVal;
			$("subfilterForceRequery").value = 'false';
			$("freshRequired").value = false;
		}
    } 
   
    // alert(hiddenField + ':[' + $(hiddenField).value + '] selectedVal:[' + selectedVal + ']');

  }
  catch(Error) {}

}
*/ 
function resetFiltersToBase(){
    $('mainFilterSelect').value = "-99999";
    
    clearSubFilters();
    
    runFilterSearch();
    return false;
}

function clearSubFilters() {
    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) {
    }
}

function sfResetFilters(){
    if ($('mainFilterSelect') != null && $('mainFilterSelect') !== undefined) {
        $('mainFilterSelect').options[1].selected = true;
        runFilterSearch();
    }
}

function runFilterSearch(){
    var selectedValue = "";
    $('currentPage').value = 0;
    $('currentPageSet').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 ($("mainFilterSelect").options.length < 1) //The user has no saved searches
    {
        selectedValue = "#";
    }
    else //Get the value they selected
    {
        selectedValue = $("mainFilterSelect").value;
    }
    
    //If No saved search selected
    if (selectedValue != "#") {
        //$("searchKey").value = selectedValue;
        $("_eventId").value = "applyMainFilter";
        $("freshRequired").value = false;
        // $("form1").action = message.searchUrl;
        $("form1").submit();
        return false;
    }
    /*else //The selected nothing and return an error
    
     {
    
     $("errorMessages").innerHTML = "<div align=\"center\" class=\"alertred\">" + errMsg + "</div>";
    
     return false;
    
     }*/
    
}

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;
        $('currentPageSet').value = 0;
        $('highlightedLotId').value = 0;
        $("freshRequired").value = false;
        
        // clear out other sorts
        $('sortColumn').value = '';
    }
    else {
        // Display zip code format error
        $("errorMessages").setAttribute("class", "alertred");
        $("errorMessages").setAttribute("className", "alertred");
        $("errorMessages").innerHTML = message.zipCodeError;
    }
    
    if ($("errorMessages").innerHTML.length > 0) {
        return false;
    }
    
    if (submit) 
        $("form1").submit();
    
    return true;
}

function filterZipCodeKeyUp(){
    $("addZipcodeButton").disabled = ($("filterZipCode").value.length == 0);
    
    if ($("filterZipCode").value.length == 0) {
        $("filterZipCode").style.color = "#000000";
    }
}

///////////////////////////////////////////////////////////////
function sfYearMouseOver(e){
	if(sfScreenTimmer != null){
		clearTimeout (sfScreenTimmer);
		sfScreenTimmer = null;
	}
    
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;
	
	if(subfilters.subfilterYear.hasContent == false){
		subfilters.subfilterYear.loadContent()
	}
		
	hideAllSubFilters();
	sfShow('subfilterYear', X, Y);

	 
    Event.stop(e);
    
    sfHideScreen_callback = sfHideMake;

/*
    if ($('subfilterYearDiv').style.display == "block") {
        return;
    }
    
    
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;
    
    hideAllSubFilters();
    sfShow('subfilterYearDiv', X, Y);
    if ($('subfilterYearPopup').length > 2) {
        $('subfilterYearPopup').size = 10;
        //X -= $('subfilterYearDiv').length;
        sfShow('subfilterYearDiv', X, Y);
    }
    else {
        loadSubFilterPopUp('Year', X, Y);
    }
    
    Event.stop(e);
    sfHideScreen_callback = sfHideYear;
*/
}

function sfHideYear(){
    var div = document.getElementById('subfilterYearDiv');
    if (div != null) 
        div.style.display = "none";
}
function sfMakeMouseOver(e){

	if(sfScreenTimmer != null){
		clearTimeout (sfScreenTimmer);
		sfScreenTimmer = null;
	}
	
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;
	hideAllSubFilters();
	
	if(subfilters.subfilterMake.hasContent == false){
		subfilters.subfilterMake.loadContent()
	}
	
	sfShow('subfilterMake', X, Y);
 
    Event.stop(e);
    
    sfHideScreen_callback = sfHideMake;
}

function sfHideMake(){
    var div = document.getElementById('subfilterMakeDiv');
    if (div != null) 
        div.style.display = "none";
}

function sfModelMouseOver(e){
	if(sfScreenTimmer != null){
		clearTimeout (sfScreenTimmer);
		sfScreenTimmer = null;
	}
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;
	hideAllSubFilters();
	
	if(subfilters.subfilterModel.hasContent == false){
		subfilters.subfilterModel.loadContent()
	}
	
	sfShow('subfilterModel', X, Y);
	

	 
    Event.stop(e);
    
    sfHideScreen_callback = sfHideMake;	
	
	
/*
    if ($('subfilterModelDiv').style.display == "block") {
        return;
    }
    
    
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;
    
    hideAllSubFilters();
    if ($('subfilterModelPopup').length > 2) {
        //X -= $('subfilterModelPopup').offsetWidth;
        $('subfilterModelPopup').size = 10;
        sfShow('subfilterModelDiv', X, Y);
    }
    else {
        loadSubFilterPopUp('Model', X, Y);
    }
    Event.stop(e);
    
    sfHideScreen_callback = sfHideModel;
*/
}

function sfHideModel(){
    var div = document.getElementById('subfilterModelDiv');
    if (div != null) 
        div.style.display = "none";
}


function sfFacilityMouseOver(e){
	if(sfScreenTimmer != null){
		clearTimeout (sfScreenTimmer);
		sfScreenTimmer = null;
	}
    
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;
	hideAllSubFilters();
	
	if(subfilters.subfilterFacility.hasContent == false){
		subfilters.subfilterFacility.loadContent()
	}
	
	
	sfShow('subfilterFacility', X, Y);
	
    Event.stop(e);
    
    sfHideScreen_callback = sfHideMake;	
	
	
/*
    if ($('subfilterFacilityDiv').style.display == "block") {
        return;
    }
    
    
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;
    
    hideAllSubFilters();
    if ($('subfilterFacilityPopup').length > 2) {
        $('subfilterFacilityPopup').size = 10;
        //X -= $('subfilterFacilityDiv').offsetWidth;
        sfShow('subfilterFacilityDiv', X, Y);
    }
    else {
        loadSubFilterPopUp('Facility', X, Y);
    }
    Event.stop(e);
    
    sfHideScreen_callback = sfHideFacility;
 */
}

function sfHideFacility(){
    var div = document.getElementById('subfilterFacilityDiv');
    if (div != null) 
        div.style.display = "none";
}

function sfSaleDateMouseOver(e){
	if(sfScreenTimmer != null){
		clearTimeout (sfScreenTimmer);
		sfScreenTimmer = null;
	}
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;
	hideAllSubFilters();
	
	if(subfilters.subfilterSaleDate.hasContent == false){
		subfilters.subfilterSaleDate.loadContent()
	}
	
	sfShow('subfilterSaleDate', X, Y);
	
    Event.stop(e);
    
    sfHideScreen_callback = sfHideMake;	
	
	
/*

    if ($('subfilterSaleDateDiv').style.display == "block") {
        return;
    }
    
    
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;
    
    hideAllSubFilters();
    
    if ($('subfilterSaleDatePopup').length > 2) {
        $('subfilterSaleDatePopup').size = 10;
        //X -= $('subfilterSaleDateDiv').offsetWidth;
        sfShow('subfilterSaleDateDiv', X, Y);
    }
    else {
        loadSubFilterPopUp('SaleDate', X, Y);
    }
    Event.stop(e);
    
    sfHideScreen_callback = sfHideSaleDate;
    */
}

function sfHideSaleDate(){
    var div = document.getElementById('subfilterSaleDateDiv');
    if (div != null) 
        div.style.display = "none";
}



function sfStateTypeMouseOver(e){
	if(sfScreenTimmer != null){
		clearTimeout (sfScreenTimmer);
		sfScreenTimmer = null;
	}
    
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;
	hideAllSubFilters();
	
	if(subfilters.subfilterStateType.hasContent == false){
		subfilters.subfilterStateType.loadContent()
	}
	
	sfShow('subfilterStateType', X, Y);

    Event.stop(e);
    
    sfHideScreen_callback = sfHideMake;	
	
	
/*

    if ($('subfilterStateTypeDiv').style.display == "block") {
        return;
    }
    
    
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 25;
    Y -= 10;
    
    hideAllSubFilters();
    if ($('subfilterStateTypePopup').length > 2) {
    
        $('subfilterStateTypePopup').size = 10;
        //X -= $('subfilterStateTypeDiv').offsetWidth;
        sfShow('subfilterStateTypeDiv', X, Y);
    }
    else {
        loadSubFilterPopUp('StateType', 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 = document.getElementById('subfilterStateTypeDiv');
    if (div != null) 
        div.style.display = "none";
}


function sfPrimaryDamageMouseOver(e){
	if(sfScreenTimmer != null){
		clearTimeout (sfScreenTimmer);
		sfScreenTimmer = null;
	}
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20;
    Y -= 10;
	hideAllSubFilters();
	
	if(subfilters.subfilterPrimaryDamage.hasContent == false){
		subfilters.subfilterPrimaryDamage.loadContent()
	}
	
	sfShow('subfilterPrimaryDamage', X, Y);
	
    Event.stop(e);
    
    sfHideScreen_callback = sfHideMake;	
	
	
/*

    if ($('subfilterPrimaryDamageDiv').style.display == "block") {
        return;
    }
    
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X -= 20
    Y -= 10;
    hideAllSubFilters();
    if ($('subfilterPrimaryDamagePopup').length > 2) {
    
        $('subfilterPrimaryDamagePopup').size = 10;
        //X -= $('subfilterPrimaryDamageDiv').offsetWidth;
        sfShow('subfilterPrimaryDamageDiv', X, Y);
    }
    else {
        loadSubFilterPopUp('PrimaryDamage', X, Y);
    }
    
    Event.stop(e);
    
    sfHideScreen_callback = sfHidePrimaryDamage;
*/
}

function sfHidePrimaryDamage(){
    var div = document.getElementById('subfilterPrimaryDamageDiv');
    if (div != null) 
        div.style.display = "none";
}

function sfSecondaryDamageMouseOver(e){
	if(sfScreenTimmer != null){
		clearTimeout (sfScreenTimmer);
		sfScreenTimmer = null;
	}
    var X = Event.pointerX(e);
    var Y = Event.pointerY(e);
    
    X += 20;
    Y -= 10;	
	hideAllSubFilters();
	
	if(subfilters.subfilterSecondaryDamagePopup.hasContent == false){
		subfilters.subfilterSecondaryDamagePopup.loadContent()
	};
	if ($('subfilterSecondaryDamagePopup').length > 2) {
		var size = $('subfilterSecondaryDamagePopup').length;
	    $('subfilterSecondaryDamagePopup').size = 10;
		//X -= $('subfilterSecondaryDamageDiv').offsetWidth;
		sfShow('subfilterSecondaryDamageDiv', X, Y);
	}
	else {
		loadSubFilterPopUp('SecondaryDamage',X,Y);
	}
    Y -= 10;
    
    hideAllSubFilters();
    if ($('subfilterSecondaryDamagePopup').length > 2) {
        var size = $('subfilterSecondaryDamagePopup').length;
        $('subfilterSecondaryDamagePopup').size = 10;
        //X -= $('subfilterSecondaryDamageDiv').offsetWidth;
        sfShow('subfilterSecondaryDamageDiv', X, Y);
    }
    else {
        loadSubFilterPopUp('SecondaryDamage', X, Y);
    }
    Event.stop(e);
    
    sfHideScreen_callback = sfHideSecondaryDamage;
}


function loadSubFilterPopUp(sfName, X, Y){

    hideAllSubFilters();
    
    var controller = 'subFilterList.ajax';
    var method = 'get'
    
    new Ajax.Request(controller, {
        method: method,
        parameters: "subfilterType=" + sfName + "&execution=" + $("execution").value,
        evalJSON: false,
        onSuccess: function(transport){
        
            var selectBox = $("subfilter" + sfName + "Popup");
            var popUpDiv = $("subfilter" + sfName + "Div");
            selectBox.innerHTML = selectBox.innerHTML + transport.responseText;
            
            var size = 10;
            selectBox.size = size;
            //X -=+ selectBox.offsetWidth;
            sfShow(popUpDiv.id, X, Y);
            
            popUpDiv.style.display = "block";
            
            // sfHideScreen_callback = hideAllSubFilters;	
            //Event.stop(e);	
        
        
        },
        onFailure: function(transport){
            // redirectOnFailure(view);
        },
        onException: function(transport){
            //   redirectOnFailure(view);
        }
    });
}


function sfHideSecondaryDamage(){
    var div = document.getElementById('subfilterSecondaryDamageDiv');
    div.style.display = "none";
}

function hideAllSubFilters(){
    var sfScreen = document.getElementById('sfScreen')
	if(sfScreenTimmer != null){
		clearTimeout (sfScreenTimmer);
		sfScreenTimmer = null;
	}
    if (sfScreen != null) {
        sfScreen.style.display = 'none';
    }
    sfHideYear();
    sfHideMake();
    sfHideModel();
    sfHideFacility();
    sfHideSaleDate();
    sfHideStateType();
    sfHidePrimaryDamage();
}


///////////////////////////////////////////////////////////////

function sfShow(sfDiv, X, Y){
	 var div = $(sfDiv + 'Div');
	
	div.style.top = Y;
	div.style.zIndex = 500;
	div.style.display = "block";
	
	 var subfilter = subfilters[sfDiv];
	 div.style.width="600px";	
	 subfilters[sfDiv].resetHeight();
	 subfilters[sfDiv].resetWidth();
	 div.style.width = (parseInt(subfilter.div.style.width)).toString() + "px";	
	 X -= div.offsetWidth/2;
	 X += 'px';
	 div.style.left = X;
	 sfShowScreen();
	
/*	

    var div = document.getElementById(sfDiv);
    
    hideAllSubFilters();
    //X += 'px';
    Y += 'px';
    
    
    div.style.top = Y;
    div.style.zIndex = 500;
    
    div.style.display = "block";
    
    X -= div.offsetWidth / 2;
    X += 'px';
    div.style.left = X;
    sfShowScreen();
    
*/
}

function sfShowScreen(){
    var sfScreen = document.getElementById('sfScreen')
    
    var winWidth = 0, winHeight = 0;
    if (typeof(window.innerWidth) == 'number') {
        //Non-IE
        winWidth = window.innerWidth - 17;
        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";
	
	var sfScreenImg = sfScreen.firstChild;
    sfScreenImg.style.width = sfScreen.style.width;
    sfScreenImg.style.height = sfScreen.style.height;
    sfScreen.style.display = 'block';
}

var sfHideScreen_callback = null;
var sfScreenTimmer = null
function sfHideScreen(e){
	if (sfScreenTimmer == null) {
		sfScreenTimmer = setTimeout('hideAllSubFilters();', 700);
	}
}

function sfKeepScreen(){
	if (sfScreenTimmer != null) {
		clearTimeout (sfScreenTimmer);
		sfScreenTimmer = null;
	}
}

/*
 function sfClose(sfDiv){
 var div = document.getElementById(sfDiv)
 div.style.display="none";
 }
 */
function goBreadCrum(filterCode){
    $("resetChosenFilters").value = filterCode
    $("_eventId").value = "breadCrumbSelected";
    $("freshRequired").value = false;
    $("form1").submit();
}

function compareButtonsFunctionality(){
    if ($('compareLots') != null &&
    $('compareLots') !== undefined &&
    $('compareLots2') != null &&
    $('compareLots2') !== undefined) {
        if (numOfCBChecked < 2) {
            $('compareLots').disabled = true;
			$('compareLots2').disabled = true;
        }
		else {
			$('compareLots').disabled = false;
			$('compareLots2').disabled = false;
		}
    }
}

function compareItemsChecked() {
	if(numOfCBChecked >= maxItemsThatCanBeCheckedForCompare) {
		//loop through collection of inputs
		for (var i = 0; i < formElements.length; i++) {
	        //Extract all inputs that are checkboxes and have the id of ids
	        if (formElements[i].type == "checkbox" && formElements[i].id == "ids") {
	            //If the check box is not checked, check it
	            if (!formElements[i].checked && !formElements[i].disabled) {
	                formElements[i].disabled = true;
	            }
	        }
	    }
	}
}

function qsFor(searchString){
	$('txtAutoComplete').value = searchString;
	submitTextSearch();
}

Event.observe(window, "load", function(){

    if (message['subfilterEnabled']) {
        var divs = $$('div.listCarrot');
        divs.each(function(item){
            item.style.display = "block";
        });
    }
    
    // This will update the limit of checkable checkboxes with the ones stored in session	
    if (message.savedComparedLotCount != null && message.savedComparedLotCount !== undefined) {
        numOfCBChecked = message.savedComparedLotCount;
    }
    
    /* 
     if (message.showSecondLevelNav) {
     Effect.Fade('nav2SearchAndBid', {
     duration: 3.0
     });
     }
     */
    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);
        Event.observe($('sfScreen'), 'mouseout', sfKeepScreen);
    }
    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;
            // filterZipCodeBlur();
        } 
        catch (err) {
        }
    }
    compareButtonsFunctionality();
	compareItemsChecked();
});
