var sorterLoaded = false;

function facetCollapser() {
	    if($(this).hasClass("collapsed"))  {
	        
	        //check for and expand extended facets        
                var divID = $(this).parent().attr("id");
                if((divID && divID.match("extended"))&& ($(this).parent().attr("loaded")!="true")) //is this an extended facet, if so expand thru ajax call and add attribute loaded.
                {
                    $(this).parent().attr("loaded", "true"); //set the div.facet element with the loaded attribute so we don't do this call again for same results
                    targetEl = $("#" + divID + " div.loadingSpan");
                    var ajaxCommand = targetEl.text();
                    targetEl.html("<img src='/content/images/ajax-loader-linear.gif' style='margin: 10px'/>");
                    eval(ajaxCommand);
                    
                }               	        
	         $(this).removeClass("collapsed").next().slideDown("fast");       
	     }
	    else {
	     $(this).addClass("collapsed").next().slideUp("fast");	          
	    }
}


function bindTableSort()
{
    var tbl = "#cluetip table.tablesorter";
    $(tbl).tablesorter({sortList:[[0,0]]});
     
   $("#cluetip a.alphaLink").click(function(){
        if(!$(this).hasClass("selected"))
        {
            // set sorting column and direction, this will sort on first column 
            var sorting = [[0,0]]; 
            $(tbl).trigger("sorton",[sorting]); 
            $(this).addClass("selected").blur().next().removeClass("selected");
         }
        return false; 
   });
   $("#cluetip a.relevanceLink").click(function(){
        if(!$(this).hasClass("selected"))
        {
            // set sorting column and direction, this will sort on the second column (which is hidden) 
            var sorting = [[1,1]]; 
            $(tbl).trigger("sorton",[sorting]); 
            $(this).addClass("selected").blur().prev().removeClass("selected");
        }
        return false; 
   });      
    
}



function bindFacetLinks(facetID)
{
    var link = '#link_' + facetID;
    if(sorterLoaded)
    {
        $(link)
        .cluetip({
            showTitle: false,
            width: 450,
            height: 350,
            arrows: true,
            dropShadowSteps: 7,
            topOffset: 80,
            leftOffset: 0,    
            local: true,
            activation: 'click',
            sticky: true
        })
        .click(function(){
             bindTableSort();
        });
        

    }
    else
    {
       $.getScript('/content/js/jquery.tablesorter.min.js', function(){
            sorterLoaded = true;
            bindFacetLinks(facetID);      
       });
    }
}

jQuery(document).ready(function() {


      $('a.tips').cluetip({
        showTitle: false,
        width: 550,
        height: 'auto',
        arrows: true,
        dropShadowSteps: 7,
        positionBy: 'auto',
        topOffset: 50,
        leftOffset: 20,
        ajaxCache: false 
      }).click(function(){$("#cluetip").hide()});

	$("#RSSLink a, #exportList a, #public_buttons").tooltip({showURL: false, left: -80, top: 30});

	 $("a.toggle_hits").click(function(){
		var itemid = $(this).attr("itemID");
		var hiddenHits = $("div[itemid=" + itemid + "]");
		if(hiddenHits.is(":hidden"))
		{
			hiddenHits.slideDown("slow");
			$(this).hide();
		}
		else
		{
			hiddenHits.not(":first").slideUp("slow");			
			$("a.toggle_hits[itemID=" + itemid + "]:first").show();
		}
		$(this).blur();
		return false;
	  });

    $("#selectedFacets").animate( { backgroundColor: 'yellow' }, 200).animate({backgroundColor: 'white'}, 1000);

    $("div.facet > h3").bind('click', facetCollapser);
	
	$("#facet_date_type").change(function(){
		$("ul.facet_date_ul").hide();
		$("#facet_" + $(this).val() + "_date").show();
	});
	$("#facet_date_type").val("doc");
	
	$("#setResultsPerPage").click(function(){
		var winLocation = $("#winLocation").val() + '&results_per_page=' + $("#results_per_page").val();
		window.location = winLocation;
	});
});
