jQuery(document).ready(function($) {
	productListRow();
	
//	breadcrumbs();
	
	//$('ul#nav_1175767 li.forum').addClass('selected');
	
	ddsmoothmenu.init({
		mainmenuid: "smoothmenu", //menu DIV id
		orientation: 'h', //Horizontal or vertical menu: Set to "h" or "v"
		classname: 'ddsmoothmenu', //class added to menu's outer DIV
		contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]
	})
	
	//if($('.gallery')){
	//	$('.gallery').galleryScroll({
	//		btPrev: 'a.prev',
	//		btNext: 'a.next',
	//		holderList: 'div.holder'
	//	});
	//}
	
	//addHoverReplaceCufon();
	
	clearFormFields({
		clearInputs: true,
		clearTextareas: true,
		passwordFieldText: true,
		addClassFocus: "focus",
		filterClass: "default"
	});

});

/*$('li.selected', $('ul#nav_570673')).mouseout(function(e){
    if ($('>  a', $(this)).text() == 'Home') 
        $(this).addClass('open');
    else 
        $(this).addClass('open drop');
});*/

function dynamicMenu(menuID,menuOrientation) {

	// Curent URL Path
	var URLpath = window.location.pathname;
	// Previous URL Path (For Select state on web app detail view)
	var prevURLpath = document.referrer;
	
	/* 
	Ideally it should be done server side or manual by the user in the new table layouts but I have done this in jQuery as an example.
	What this does is add the class to the main Div wrapper. This tells the menu to be vertical or horizontal. You can see by changing the value below you get a vertical menu just through the CSS.
	*/
	$j(menuID).addClass(menuOrientation);
	
	// If li has a ul in it then it is a dropdown.	
	$j(menuID + " li").has("ul").addClass("dropdown");	

/* This Section Creates the selected state and will also work on Product URLS. IF the url has _webapp it will grab the previous URL which is normally the link in the menu item you want to set selected (the parent) and thus create the selected state on the right menu item by using the preious url to check. */
	
	$j(menuID + " ul a").each(function(){						 
		menuURL = $j(this).attr("href");
		var re = new RegExp(menuURL, "g");
		
		if ( URLpath.match(re) ) {	$j(this).parent().addClass("selected");	}
		
		if ( URLpath.match("_webapp"), "g" ) {
			if ( prevURLpath.match(menuURL, "g") ) {
				$j(this).parent().addClass("selected");
			}					
		}
	});

} // end function

//function breadcrumbs(){
//	if($('#breadcrumb a') == undefined){
//		$('#breadcrumb a').wrapAll('<ul></ul>');
//		$('#breadcrumb a').wrap('<li></li>');
//	} else {
//		$('#breadcrumb').wrapInner('<ul><li></li></ul>');
//	}
//}

//function addHoverReplaceCufon(path,prop){
//	if($('.navigation')){
//		$('.navigation li').mouseout(function() {
//			setTimeout(function(){
//				Cufon.replace('.navigation ul > li > a', { fontFamily: 'Myriad Pro', hover: true });
//			}, 100);
//		});
//	}
//}

function productListRow() {
	if ($(".gridlist")) {
		$(".gridlist .list").click(function()
			{
				$(".productList").addClass("productRow");
				return false;
			}
		)
		$(".gridlist .grid").click(function()
			{
				$(".productRow").removeClass("productRow");
				return false;
			}
			
		)
	}
}


function table_odd(oddrows,oddrows_color){
	oddrows.addClass("odd").css("background-color", oddrows_color);
};



function clearFormFields(o)
{
	if (o.clearInputs == null) o.clearInputs = true;
	if (o.clearTextareas == null) o.clearTextareas = true;
	if (o.passwordFieldText == null) o.passwordFieldText = false;
	if (o.addClassFocus == null) o.addClassFocus = false;
	if (!o.filter) o.filter = "default";
	if(o.clearInputs) {
		var inputs = document.getElementsByTagName("input");
		for (var i = 0; i < inputs.length; i++ ) {
			if((inputs[i].type == "text" || inputs[i].type == "password") && inputs[i].className.indexOf(o.filterClass)) {
				inputs[i].valueHtml = inputs[i].value;
				inputs[i].onfocus = function ()	{
					if(this.valueHtml == this.value) this.value = "";
					if(this.fake) {
						inputsSwap(this, this.previousSibling);
						this.previousSibling.focus();
					}
					if(o.addClassFocus && !this.fake) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				inputs[i].onblur = function () {
					if(this.value == "") {
						this.value = this.valueHtml;
						if(o.passwordFieldText && this.type == "password") inputsSwap(this, this.nextSibling);
					}
					if(o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");
					}
				}
				if(o.passwordFieldText && inputs[i].type == "password") {
					var fakeInput = document.createElement("input");
					fakeInput.type = "text";
					fakeInput.value = inputs[i].value;
					fakeInput.className = inputs[i].className;
					fakeInput.fake = true;
					inputs[i].parentNode.insertBefore(fakeInput, inputs[i].nextSibling);
					inputsSwap(inputs[i], null);
				}
			}
		}
	}
	if(o.clearTextareas) {
		var textareas = document.getElementsByTagName("textarea");
		for(var i=0; i<textareas.length; i++) {
			if(textareas[i].className.indexOf(o.filterClass)) {
				textareas[i].valueHtml = textareas[i].value;
				textareas[i].onfocus = function() {
					if(this.value == this.valueHtml) this.value = "";
					if(o.addClassFocus) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				textareas[i].onblur = function() {
					if(this.value == "") this.value = this.valueHtml;
					if(o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");
					}
				}
			}
		}
	}
	function inputsSwap(el, el2) {
		if(el) el.style.display = "none";
		if(el2) el2.style.display = "inline";
	}
}




//** Smooth Navigational Menu- By Dynamic Drive DHTML code library: http://www.dynamicdrive.com
//** Script Download/ instructions page: http://www.dynamicdrive.com/dynamicindex1/ddlevelsmenu/
//** Menu created: Nov 12, 2008

//** Dec 12th, 08" (v1.01): Fixed Shadow issue when multiple LIs within the same UL (level) contain sub menus: http://www.dynamicdrive.com/forums/showthread.php?t=39177&highlight=smooth

//** Feb 11th, 09" (v1.02): The currently active main menu item (LI A) now gets a CSS class of ".selected", including sub menu items.

//** May 1st, 09" (v1.3):
//** 1) Now supports vertical (side bar) menu mode- set "orientation" to 'v'
//** 2) In IE6, shadows are now always disabled

//** July 27th, 09" (v1.31): Fixed bug so shadows can be disabled if desired.
//** Feb 2nd, 10" (v1.4): Adds ability to specify delay before sub menus appear and disappear, respectively. See showhidedelay variable below

var ddsmoothmenu = {

	//Specify full URL to down and right arrow images (23 is padding-right added to top level LIs with drop downs):
	arrowimages: {
		down: ['downarrowclass', '', 13],
		right: ['rightarrowclass', '']
	},
	transition: {
		overtime: 300,
		outtime: 300
	}, //duration of slide in/ out animation, in milliseconds
	shadow: {
		enable: false,
		offsetx: 5,
		offsety: 5
	}, //enable shadow?

	showhidedelay: {
		showdelay: 100,
		hidedelay: 200
	}, //set delay in milliseconds before sub menus appear and disappear, respectively
	///////Stop configuring beyond here///////////////////////////
	
	detectwebkit: navigator.userAgent.toLowerCase().indexOf("applewebkit") != -1, //detect WebKit browsers (Safari, Chrome etc)
	detectie6: document.all && !window.XMLHttpRequest,
	
	getajaxmenu: function($, setting){ //function to fetch external page containing the panel DIVs
		var $menucontainer = $('#' + setting.contentsource[0]) //reference empty div on page that will hold menu
		$menucontainer.html("Loading Menu...")
		$.ajax({
			url: setting.contentsource[1], //path to external menu file
			async: true,
			error: function(ajaxrequest){
				$menucontainer.html('Error fetching content. Server Response: ' + ajaxrequest.responseText)
			},
			success: function(content){
				$menucontainer.html(content)
				ddsmoothmenu.buildmenu($, setting)
			}
		})
	},
	
	
	buildmenu: function($, setting){
		var smoothmenu = ddsmoothmenu
		
		//var $mainmenu = $("#" + setting.mainmenuid + "  ul") //reference main menu UL
		
		var $mainmenu = $("#" + setting.mainmenuid + " ul" )
		//$mainmenu.parent().get(0).className = setting.classname || "ddsmoothmenu"
		$mainmenu.className = setting.classname || "ddsmoothmenu"
		//var $headers = $mainmenu.find("ul").parent()
		var $headers = $mainmenu.find("ul").parent()
		$headers.hover(function(e){
			$(this).children('a:eq(0)').addClass('selected')
		}, function(e){
			$(this).children('a:eq(0)').removeClass('selected')
		})
		$headers.each(function(i){ //loop through each LI header
			var $curobj = $(this).css({
				zIndex: 100 - i
			}) //reference current LI header
			var $subul = $(this).find('ul:eq(0)').css({
				display: 'block'
			})
			$subul.data('timers', {})
			this._dimensions = {
				w: this.offsetWidth,
				h: this.offsetHeight,
				subulw: $subul.outerWidth(),
				subulh: $subul.outerHeight()
			}
			this.istopheader = $curobj.parents("ul").length == 1 ? true : false //is top level header?
			$subul.css({
				top: this.istopheader && setting.orientation != 'v' ? this._dimensions.h + "px" : 0
			})
			$curobj.children("a:eq(0)").css(this.istopheader ? {
				paddingRight: smoothmenu.arrowimages.down[2]
			} : {}).append( //add arrow images
'')

			if (smoothmenu.shadow.enable) {
				this._shadowoffset = {
					x: (this.istopheader ? $subul.offset().left + smoothmenu.shadow.offsetx : this._dimensions.w),
					y: (this.istopheader ? $subul.offset().top + smoothmenu.shadow.offsety : $curobj.position().top)
				} //store this shadow's offsets
				if (this.istopheader) 
					$parentshadow = $(document.body)
				else {
					var $parentLi = $curobj.parents("li:eq(0)")
					$parentshadow = $parentLi.get(0).$shadow
				}
				this.$shadow = $('<div class="ddshadow' + (this.istopheader ? ' toplevelshadow' : '') + '"></div>').prependTo($parentshadow).css({
					left: this._shadowoffset.x + 'px',
					top: this._shadowoffset.y + 'px'
				}) //insert shadow DIV and set it to parent node for the next shadow div
			}

			$curobj.hover(function(e){
				var $targetul = $subul //reference UL to reveal
				var header = $curobj.get(0) //reference header LI as DOM object
				clearTimeout($targetul.data('timers').hidetimer)
				$targetul.data('timers').showtimer = setTimeout(function(){
					header._offsets = {
						left: $curobj.offset().left,
						top: $curobj.offset().top
					}
					var menuleft = header.istopheader && setting.orientation != 'v' ? 0 : header._dimensions.w
					menuleft = (header._offsets.left + menuleft + header._dimensions.subulw > $(window).width()) ? (header.istopheader && setting.orientation != 'v' ? -header._dimensions.subulw + header._dimensions.w : -header._dimensions.w) : menuleft //calculate this sub menu's offsets from its parent
					if ($targetul.queue().length <= 1) { //if 1 or less queued animations
						$targetul.css({
							left: menuleft + "px",
							width: header._dimensions.subulw + 'px'
						}).animate({
							height: 'show',
							opacity: 'show'
						}, ddsmoothmenu.transition.overtime)
						if (smoothmenu.shadow.enable) {
							var shadowleft = header.istopheader ? $targetul.offset().left + ddsmoothmenu.shadow.offsetx : menuleft
							var shadowtop = header.istopheader ? $targetul.offset().top + smoothmenu.shadow.offsety : header._shadowoffset.y
							if (!header.istopheader && ddsmoothmenu.detectwebkit) { //in WebKit browsers, restore shadow's opacity to full
								header.$shadow.css({
									opacity: 1
								})
							}
							header.$shadow.css({
								overflow: '',
								width: header._dimensions.subulw + 'px',
								left: shadowleft + 'px',
								top: shadowtop + 'px'
							}).animate({
								height: header._dimensions.subulh + 'px'
							}, ddsmoothmenu.transition.overtime)
						}
					}
				}, ddsmoothmenu.showhidedelay.showdelay)
			}, function(e){
				var $targetul = $subul
				var header = $curobj.get(0)
				clearTimeout($targetul.data('timers').showtimer)
				$targetul.data('timers').hidetimer = setTimeout(function(){
					$targetul.animate({
						height: 'hide',
						opacity: 'hide'
					}, ddsmoothmenu.transition.outtime)
					if (smoothmenu.shadow.enable) {
						if (ddsmoothmenu.detectwebkit) { //in WebKit browsers, set first child shadow's opacity to 0, as "overflow:hidden" doesn't work in them
							header.$shadow.children('div:eq(0)').css({
								opacity: 0
							})
						}
						header.$shadow.css({
							overflow: 'hidden'
						}).animate({
							height: 0
						}, ddsmoothmenu.transition.outtime)
					}
				}, ddsmoothmenu.showhidedelay.hidedelay)
			}) //end hover
		}) //end $headers.each()
		$mainmenu.find("ul").css({
			display: 'none',
			visibility: 'visible'
		})
	},
	
	init: function(setting){
		if (typeof setting.customtheme == "object" && setting.customtheme.length == 2) { //override default menu colors (default/hover) with custom set?
			var mainmenuid = '#' + setting.mainmenuid
			var mainselector = (setting.orientation == "v") ? mainmenuid : mainmenuid + ', ' + mainmenuid
			document.write('<style type="text/css">\n' +
			mainselector +
			' ul li a {background:' +
			setting.customtheme[0] +
			';}\n' +
			mainmenuid +
			' ul li a:hover {background:' +
			setting.customtheme[1] +
			';}\n' +
			'</style>')
		}
		this.shadow.enable = (document.all && !window.XMLHttpRequest) ? false : this.shadow.enable //in IE6, always disable shadow
		jQuery(document).ready(function($){ //ajax menu?
			if (typeof setting.contentsource == "object") { //if external ajax menu
				ddsmoothmenu.getajaxmenu($, setting)
			}
			else { //else if markup menu
				ddsmoothmenu.buildmenu($, setting)
			}
		})
	}
	
} //end ddsmoothmenu variable
