
function initFeatures() {
	$("#features").prepend("<a id='backButton' class='replaced prev'>Click to go back</a><a id='forwardButton' class='replaced next'>Click me to go forward</a>");
};

function initCarousel(){
 $(".carousel").jCarouselLite({
        btnNext: ".next",
        btnPrev: ".prev",
        visible: 1,
        speed: menuSpeed
  });
 /*This fixes a width error caused by jCarouselLite*/
 $(".carousel").css("width", "307px");
}

function initHelpTabs(){
	$('#helpTabs .tab').hide();
	$('#helpTabs .tab:first').show();
	
	$('#helpTabs h4').click(function() {
		//ensure element is not already open
		if( $(this).is('.active') ) {
		
			var $this = $(this);
			
			$this.next().slideUp('normal', function(){
				$this.removeClass('active');
			});
		
		} else {
		
			$(this).parent().children('.active').removeClass('active');
			$(this).addClass('active');
			
			//closes open element and opens clicked element
			$(this).parent().find('.tab:visible:first').slideUp('normal',function() {
				
			});
			$('#helpTabs .active').next().slideDown('normal');
		}
		return false;
	});

	

}

function initCategoryDropdowns() {
	$('.categoryBox').each(function(){
		var $menuBox = this;
		
		var $menuTrigger = $('<div/>').attr({ className:'selectedText' })
							.append(
								$('<span />').attr({ className:'selectedTextInner' }).text('Select a Product Category')
							).css({
								cursor: 'pointer'
							});
		var $menu = $('> ul', $menuBox).attr({className: 'categoryMenu'}).before($menuTrigger);
		
		var hideDelayTimer = null;
		var beingShown = false;
		var shown = false;	
	
		$([$menuTrigger.get(0), $menu.get(0)]).click(function () {
			if (hideDelayTimer) clearTimeout(hideDelayTimer);
			if (beingShown || shown) {
				$menu.slideUp(menuSpeed, function () {
					shown = false;
				});
			} else {
				// reset position of info box
				beingShown = true;
				
				$menu.slideDown(menuSpeed, function () {
					beingShown = false;
					shown = true;
				});
			}
			
		});
		
		$([$menuTrigger.get(0), $menu.get(0)]).mouseover(function () {
			if (hideDelayTimer) clearTimeout(hideDelayTimer);
			return false;
		}).mouseout(function () {
			if (hideDelayTimer) clearTimeout(hideDelayTimer);
			hideDelayTimer = setTimeout(function () {
				hideDelayTimer = null;
				$menu.slideUp(menuSpeed, function () {
					shown = false;
				});
	
			}, hideDelay);
	
			return false;
		});
	
	});	
	
}

function initCategoryDropdowns2() {
	$('.categoryBox2').each(function(){
		var $menuBox = this;
		
		var $menuTrigger = $('<div/>').attr({ className:'selectedText' })
							.append(
								$('<span />').attr({ className:'selectedTextInner' }).text('Participate in a Discussion')
							).css({
								cursor: 'pointer'
							});
		var $menu = $('> ul', $menuBox).attr({className: 'categoryMenu'}).before($menuTrigger);
		
		var hideDelayTimer = null;
		var beingShown = false;
		var shown = false;	
	
		$([$menuTrigger.get(0), $menu.get(0)]).click(function () {
			if (hideDelayTimer) clearTimeout(hideDelayTimer);
			if (beingShown || shown) {
				$menu.slideUp(menuSpeed, function () {
					shown = false;
				});
			} else {
				// reset position of info box
				beingShown = true;
				
				$menu.slideDown(menuSpeed, function () {
					beingShown = false;
					shown = true;
				});
			}
			
		});
		
		$([$menuTrigger.get(0), $menu.get(0)]).mouseover(function () {
			if (hideDelayTimer) clearTimeout(hideDelayTimer);
			return false;
		}).mouseout(function () {
			if (hideDelayTimer) clearTimeout(hideDelayTimer);
			hideDelayTimer = setTimeout(function () {
				hideDelayTimer = null;
				$menu.slideUp(menuSpeed, function () {
					shown = false;
				});
	
			}, hideDelay);
	
			return false;
		});
	
	});	
	
}

function initManualSearchFocus() {
	var $searchBox = $('#manualSearchQuery');
	var searchValue = $.url.param("query");
	if(!searchValue)
		searchValue = 'Enter Keyword/SKU'; 
	$searchBox.attr('value',searchValue).css('color', '#999');
	$searchBox.blur(function() {
		searchValue = $searchBox.attr('value');
		supportSearchHasValue(searchValue) == true ? $(this).css('color', '#525D58') : $(this).attr('value', 'Enter Keyword/SKU').css('color', '#999');
	});
	$searchBox.focus(function() {
		searchValue = $searchBox.attr('value');
		supportSearchHasValue(searchValue) == false ? $(this).attr('value', '').css('color', '#525D58') : $(this).css('color', '#525D58');
	});
	
	$('#manualSearchForm').submit(function(){
		
		//alert('start submit');
		
		var searchValue = $searchBox.val();
		
		//alert(searchValue);
		
		if( supportSearchHasValue(searchValue) ) {
			
		} else {
			$searchBox.focus();
			return false;
		}	
	});	
}

function initRemoteSearchFocus() {
	var $searchBox = $('#remoteSearchQuery');
	var searchValue = $.url.param("query");
	if(!searchValue)
		searchValue = 'Enter Keyword/SKU'; 
	$searchBox.attr('value',searchValue).css('color', '#999');
	$searchBox.blur(function() {
		searchValue = $searchBox.attr('value');
		supportSearchHasValue(searchValue) == true ? $(this).css('color', '#525D58') : $(this).attr('value', 'Enter Keyword/SKU').css('color', '#999');
	});
	$searchBox.focus(function() {
		searchValue = $searchBox.attr('value');
		supportSearchHasValue(searchValue) == false ? $(this).attr('value', '').css('color', '#525D58') : $(this).css('color', '#525D58');
	});
	
	$('#remoteSearchForm').submit(function(){
		
		//alert('start submit');
		
		var searchValue = $searchBox.val();
		
		//alert(searchValue);
		
		if( supportSearchHasValue(searchValue) ) {
			
		} else {
			$searchBox.focus();
			return false;
		}	
	});	
}

function supportSearchHasValue(myValue) {
	if (myValue == "" || myValue == "Enter Keyword/SKU") {
		return false;
	}else{
		return true;
	};
}

$(document).ready(function(){
	initFeatures();
	initCarousel();
	initCategoryDropdowns();
	initCategoryDropdowns2();
	initHelpTabs();
	initManualSearchFocus();
	initRemoteSearchFocus();
})

