/* Select element manipulation */

jQuery.fn.selectOptions = function(value) {		
	this.each(
		function()	{
			if(this.nodeName.toLowerCase() != "select") return;
			
			// get number of options
			var optionsLength = this.options.length;
												
			for(var i = 0; i<optionsLength; i++) {
				if (this.options[i].value == value) {					
					this.options[i].selected = true;
				};
			}
		}
	)
	
	return this;
}

/*
 * Document link tracking [Ported to jQuery]
 */

function documentTracking()
{
	var url = "/document-download" + $(this).attr("href");
		
	if (typeof(pageTracker) == "object") {			
		pageTracker._trackPageview(url); 						
	}
	
	return true;
}

function externalTracking()
{
	var url = "/external/" + $(this).attr("href");
	
	if (typeof(pageTracker) == "object") {			
		pageTracker._trackPageview(url); 						
	}
	
	return true;
}

function isDocument(url)
{
	return url.match(/(?:doc|eps|exe|jpg|pdf|png|ppt|svg|vsd|xls|zip)($|\&)/) != null;
}

function documentLinkTracking()
{
	$("a").each(function() {														
		var url = $(this).attr("href");
		
		if(url) {					
			if($(this).attr("hostname") == location.host)
			{
				if(isDocument(url)) {
					$(this).click(documentTracking);
				}
			}
			else
			{
				$(this).click(externalTracking);
			}			
		}		
	});
}


/*
 * void main()
 */

$(document).ready(function() {					
	// Hide section select
	$("form#search select.section").hide();
	$("form#search div.section-placeholder").show();
	
	// First option
	var firstOption = $("form#search select.section option:first").text();
	
	// Grab options
	var list = '<ul class="options">';			
	
	$("form#search select.section option").each(function(){
		list += '<li><a value="' + $(this).val() + '">' + $(this).text() + "</a></li>";		
	});
	
	list += "</ul>";
	
	// Insert
	$("form#search div.section-placeholder").append('<p class="selected-option">' + firstOption + '</p>' + list + '<a href="#" class="dropdown"></a>');
	
	// Hide options
	$("form#search div.section-placeholder ul.options").hide();
	
	// Option hover state
	$("form#search div.section-placeholder ul.options li a")
		.hover(
			function() { $(this).addClass("hover"); },
			function() { $(this).removeClass("hover"); }	
		);
		
	// Click options and update select
	$("form#search div.section-placeholder ul.options li a")
		.click(function() {				
			$("form#search select.section").selectOptions($(this).attr("value"));
			$("form#search div.section-placeholder ul.options").hide();
			$("form#search div.section-placeholder p.selected-option").text($(this).text());
			
			return false;
		});
		
	// Dropdown click
	$("form#search div.section-placeholder a.dropdown").click(function() {
		$("form#search div.section-placeholder ul.options").toggle();
	})
	
	// Init link tracking.
	documentLinkTracking();
});