var $j = jQuery.noConflict();
$j.fn.labelsInInputs = function(options) {
	var defaults = {
		top: '6px',
		color : '#AAA',
		blur_color: '#DDD',
		font_size : '1.2em'
	};
	var options = $j.extend(defaults, options);
	//place labels inside inputs
	$j(this).each(function(i){
	
		var o = options;
		var input_id = $j(this).attr('id');
		var the_value = $j(this).attr('value');
		var the_label = 'label[for='+input_id+']';
		var the_label_text = $j(the_label).text();
		
		$j(the_label).css({'color' : o.color, 'display' : 'block', 'font-size': o.font_size, 'left' : '13px', 'position' : 'absolute', 'top' : o.top, 'font-style' : 'oblique'});
		//$j('input#SearchKeyword').css({'color':'aqua'});
		
		if(the_value != '') {
			//$j(this).attr({ value : the_label_text });
			$j(the_label).css({'display' : 'none'});
		}	
	}).focus(function(){
		var o = options;
		var input_id = $j(this).attr('id');
		var the_label = 'label[for='+input_id+']';
		var the_label_text = $j(the_label).text();
	
		if ($j(this).val() == '') {
			$j(the_label).css({'color' : o.blur_color});
		}
	}).keyup(function(){
		var input_id = $j(this).attr('id');
		var the_label = 'label[for='+input_id+']';
		var the_label_text = $j(the_label).text();
	
		if ($j(this).val() != '') {
			$j(the_label).css({'display' : 'none'});
		}
	}).blur(function(){
		var o = options;	
		var input_id = $j(this).attr('id');
		var the_label = 'label[for='+input_id+']';
		var the_label_text = $j(the_label).text();
	
		if ($j(this).val() == '') {
			$j(the_label).css({'color' : o.color, 'display' : 'block'});
		}
	
	});
}
$j(document).ready(function(){
	// detect font smoothing on browser
	var isFontSmoothingOn = TypeHelpers.insertClasses();
	// initialise label states
	//$j('label').css({'display' : 'block'});
	$j('p.showlabel label').css({'display' : 'block'});
	$j('p.checkbox label, p.radio label, div.checkbox label').css({'display' : 'inline'});
	// place labels inside inputs
	$j('input[type=text], input[type=password], textarea.reg').labelsInInputs();
	$j('input#SearchKeyword').labelsInInputs({
		top: '5px',
		color : '#FFF',
		blur_color : '#A7A6A4'
	});
	
	
	// the ol' superfish for menus
	$j('div#sidebar ul#role_tree').superfish({
			speed: 0,	
			delay: 1200
	});
	$j('div#header ul.nav').superfish({
			speed: 'fast',
			delay: 1200
	});
	
	
		
	
	/*
	Safari completely refuses to even acknowledge
	the existence of the legend element, making it
	un-manipulatable. The following function replaces
	<legend> with <p class="legend"> as a hack that 
	partially fixes the problem.
	*/
	$j('legend').each(function(i){
		var legend_content = $j(this).html();
		$j(this).replaceWith('<p class="legend">' + legend_content + '</p>');
	});
	
	
	/*split and style footer menu */
	num_products = $j('div#footer ul.nav li.products ul').children('li').size();
	half_products = Math.ceil(num_products/2);
	$j('div#footer ul.nav li.products ul').before('<ul class="dummy"></ul>');
	group = $j('div#footer ul.nav li.products ul[class!=dummy]').find('li:lt(' + half_products + ')').remove();
	$j(group).each(function() {
		$j('div#footer ul.dummy').append($j(this));
	});
	
	// add ornaments to stripe
	$j('div#stripe').prepend('<p class="ornament"></p>');
	// add twitter sidebar ornament
	$j('div#sidebar-twitter').prepend('<p class="twitter-ornament"></p>');
	// ul for containing store locator entries
	$j('body#resellers-stores div#sidebar').append('<ul id="store-entries"></ul>');
	
	// x-browser manipulate second paragraph of about pages
	$j("body[id^='pages'] div#main > p:nth-child(2)").addClass('first');
	
	// remove border from every third search result box
	$j('ul.search-results li:nth-child(3n)').css({'border-right': 'none'});
	
	// be kind to IE
	$j('div#header ul.nav ul li:nth-child(odd) a').css({'border-right' : '1px solid'});
	$j('div#header ul.nav ul li:nth-child(even) a').css({'padding' : '0 0 0 1.5em'});
	
	if($j.browser.msie){
		$j('input[type=text], input[type=password]').css({'height' : '25px', 'padding-top' : '6px'});
	}
	$j("a[rel*=external]").attr('target','_blank');
	
});

