var console = (!console) ? {log:function(a) { ;}} : console;
ls.menu = {};
ls.menu.rules = {};
ls.menu.updating = false;
ls.menu.attribute = "";
ls.menu.append_menu_completed = 0;
ls.menu.append_menu_children = function (parent_id) {
	var menu = ls.public.pages;
	var parent_to_child = ls.public.index.parent_to_child;
	var parent = $("#menu-"+parent_id).parent();
	if (parent_to_child[parent_id]) {
		var ul = $("<ul>");
	    parent.append(ul);
		var array = [];
		$.each(parent_to_child[parent_id], function(key, child_id) {
			array.push(menu[child_id]);
		});
		array.sort(function(a, b) { return(a.priority-1+1>b.priority-1+1 ? 1 : -1); });

		for (var i=0; i<array.length; i++) {
			var child = array[i];
			var a = $("<a>");
			if (child.template=="action") {
				var action = child.alias;
				var id = child.id;
				a.attr({href:"#",title:child.title,id:"menu-"+child.id});
				a.click(function(event) { var id = $(this).attr("id")+""; id = id.split("-")[1]; eval(ls.public.pages[id].alias); return false; });
			}
			else {
				a.attr({href:child.url,title:child.title,id:"menu-"+child.id});
			}
			a.text(child.menu);
		    var li = $("<li>").append(a);
			if (child.is_active==0) {
				li.addClass("admin-item-inactive");
			}
		    li.appendTo(ul);
		    if (parent_to_child[child.id]) { ls.menu.append_menu_children(child.id); } 
		}
	}
	return 1;
}

jQuery(function() {
	function jqPngFix() {
	    try {
	        $.each($("img[src$=.png],img[src$=.PNG]"), function () {
	            var img = $(this);
	            img.css({"width": img.width(),"height": img.height(), "filter": "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.attr("src") + "', sizingMethod='scale')"});
	            img.attr("src","http://c0541792.cdn.cloudfiles.rackspacecloud.com/blank.gif");
	        });
	    } catch(e) {
	    }
	};

	function build_menu() {
		setTimeout(function() {
			build_index();
			
			setTimeout(function() {
				var mfr = ls.public.manufacturers;
				$("div.top").before($("<div>").addClass("manufacturers"));
				$("div.manufacturers").append("<ul class=\"manufacturers\"><li><ul></ul><li></ul>");
				mfr_array = [];
				for (var i in mfr) {
					mfr_array.push(mfr[i]);
				}
				mfr_array.sort(function(a, b) { return(a.title>b.title ? 1 : -1); });
				for (var i=0; i<mfr_array.length; i++) {
					var m = mfr_array[i];
					if (m.is_active==1 || -1>-1) {
						var style = (m.is_active==0) ? "style=\"text-decoration:line-through;\"" : "";
						var li = $("<li><a href=\"/"+m.alias+".html\" "+style+">- "+m.title+"</a></li>");
						$("div.manufacturers ul.manufacturers li ul").append(li);
					}
				}
			    $("div.manufacturers").append("<input type=\"button\" value=\"Close\">");
			    $("div.manufacturers").css("position","relative");
			    $("div.manufacturers").children("input").css({"position":"absolute","top":"2px","right":"2px","width":"60px"});
			    $("div.manufacturers").children("input").click(function() { $("div.manufacturers").slideUp("slow"); });
			},1);
			
			var menu = ls.public.pages;
			var parent_to_child = ls.public.index.parent_to_child;
			var append_menu_completed = 0;
			var counter=0;
			for (var i in parent_to_child[0]) {
				var key = i, val = parent_to_child[0][i];
				setTimeout("ls.menu.append_menu_completed+=ls.menu.append_menu_children("+val+");", 20);
				counter++;
			}
			var wait_for_menu_complete = setInterval( function() {
				if (ls.menu.append_menu_completed==counter) {
					clearInterval(wait_for_menu_complete);
					load_accelerator();
					load_product_submenu();
					$("#menu-122").parent().children("ul").css({"width":"185px"});
					$("#menu-2").parent().children("ul").css({"width":"180px"});
					$("#menu-96").parent().children("ul").css({"width":"120px"});
					$("#menu-26").parent().children("ul").css({"width":"120px"});
					$("#menu-26").parent().find("ul > li > ul").css({"left":"120px"});
					$("#menu-122").parent().find("ul > li > ul").css({"left":"185px","width":"150px"});
					if ($.browser.msie && $.browser.version < 8) {
						$("#menu-122,#menu-26").hover(function(){
							$(this).parent().find("ul li ul").css({"display":"none"});
							$(this).parent().find("ul li ul").css({"display":""});
						},null);
					}
										$("div.top").before($("<div>").addClass("sitemap"));
					$("div.sitemap").append($("ul.menu").clone(true));
					var cur_page = $("div.sitemap li.current-page");
					cur_page.removeClass("current-page");
					cur_page.html("<a href=\"#\">"+ls.page.menu+"</a>");
					$("div.sitemap ul.menu").addClass("sitemap");
					$("div.sitemap ul.menu").removeClass("menu");
					$("div.sitemap").find("a").attr("id",function(id) { return this.id.replace("menu-","sitemap-"); });
				    $("div.sitemap").append("<input type=\"button\" value=\"Close\">");
				    $("div.sitemap").css("position","relative");
				    $("div.sitemap").children("input").css({"position":"absolute","top":"2px","right":"2px","width":"60px"});
				    $("div.sitemap").children("input").click(function() { $("div.sitemap").slideUp("slow"); });
					$("div.middle,div.bottom,div.banner").click(function() { $("div.sitemap").slideUp("slow"); $("div.manufacturers").slideUp("slow"); });
					override_links();
					if ($("#menu-122,#menu-26").parent().children("ul").children("li").children("a")[0]) {
						if ($.browser.msie && $.browser.version < 8) {
							$("#menu-122,#menu-26").parent().children("ul").children("li").children("a").css({"padding-bottom":"3px"});
							$("#menu-122,#menu-26").parent().children("ul").children("li").children("ul").children("li").children("a").css({"padding-bottom":"6px"});
						}
					}
				}
			},200);
			
			function load_product_submenu() {
				if ($(".product-menu")[0]) {
					$(".menu *[id='menu-122']").parent().children("ul").children("li").children("a").each(function(){
						var menu = $(this).parent().children("ul").clone(true);
						var container = $("<div>");
						var product_menu = $("ul.product-menu a[title='" + $(this).attr("title") + "']");
						var prev = null;
						container.append(menu); 
						product_menu.parent().append(container);
						product_menu.parent().hover(function() {
							ls.menu.updating = true;
							var subproduct_menu_top = 23; //$("ul.product-menu li div:eq(0)").css("top").replace("px","")-1+1;
							subproduct_menu_top += -1; //address spacing issues w/ the bottom white border
							container.css("top",$(this).position().top+subproduct_menu_top+"px");
							container.slideDown("fast",function() {ls.menu.updating=false;});
						},function() {
							if (!ls.menu.updating) {
								$("ul.product-menu div").stop(true,true);
								$(this).children("div").slideUp("fast");
							}
							else {
								$("ul.product-menu div").stop(true,true);
								$("ul.product-menu div").css({"display":"none"});
							}
						});
					});
					if ($.browser.msie && $.browser.version < 8) { 
						$("ul.product-menu a").css({"padding-bottom":"5px"}); 
					}
					$("body div.top div.banner").hover(function() {
						$("ul.product-menu li div").slideUp("fast");
					});
					$("body div.middle div.container h1,.breadcrumbs,.current-page").hover(function() {
						$("ul.product-menu li div").slideUp("fast");
					});
					$("body div.top").click(function() {
						$("ul.product-menu li div").slideUp("fast");
						$("div.more-pages").slideUp("fast");
					});
					$("body div.middle div.container").click(function() {
						$("ul.product-menu li div").slideUp("fast");
						$("div.more-pages").slideUp("fast");
					});
				}
			}
			function run_menu_rules() {
					for (var i in ls.public.pages) {
						if (ls.public.pages[i].menu_rule.length>0) {
							eval("ls.menu.rules["+i+"]="+ls.public.pages[i].menu_rule);
						}
					}
					for (var m in ls.menu.rules) {
						if ($("#menu-"+m)[0]) {
							for (var r=0; r<ls.menu.rules[m].length; r++) {
								var rule = ls.menu.rules[m][r];
								if (rule.enable) {
									if (rule.enable == "*") {
										$("#menu-" + m).parent().show();
									}
									else {
										for (var attribute in rule.enable) {
											eval("ls.menu.attribute=" + attribute);
											for (var v = 0; v < rule.enable[attribute].length; v++) {
												value = rule.enable[attribute][v];
												if (ls.menu.attribute == value) {
													$("#menu-" + m).parent().show();
												}
											}
										}
									}
								}
								else if (rule.disable) {
									if (rule.disable == "*") {
										$("#menu-" + m).parent().hide();
									}
									else {
										for (var attribute in rule.disable) {
											eval("ls.menu.attribute=" + attribute);
											for (var v = 0; v < rule.disable[attribute].length; v++) {
												value = rule.disable[attribute][v];
												if (ls.menu.attribute == value) {
													$("#menu-" + m).parent().hide();
												}
											}
										}
									}
								}
							}
						}
					}
			}
			function load_accelerator() {
				$("a[href!='#']").mousedown(function(e) { if (e.button==0 && $(this).attr("title").indexOf(".pdf")==-1) window.location = $(this).attr("href"); return false; });
			}
			function override_links() {
				var alias_to_id = ls.public.index.alias_to_id;
				var sitemap = $("a#menu-"+alias_to_id["sitemap"]);
				var mfg = $("a#menu-"+alias_to_id["manufacturers"]);
			    sitemap.unbind("mousedown");
			    mfg.unbind("mousedown");
			    sitemap.mousedown(function(e) {
				    if (!ls.sitemap.loaded) {
					    ls.sitemap.loaded = true;
					    $("div.sitemap ul.sitemap").columnize({columns:5,width:"90%"});
				    }
				    $("div.manufacturers").slideUp("slow"); 
				    $("div.sitemap").slideToggle("slow");
				    return false;
				});
			    mfg.mousedown(function(e) {
				    if (!ls.manufacturers.loaded) {
					    ls.manufacturers.loaded = true;
					    $("div.manufacturers ul.manufacturers").columnize({columns:4,width:"95%"});
				    }
				    $("div.sitemap").slideUp("slow");
				    $("div.manufacturers").slideToggle("slow");
				    return false;
				});
			    var products = $("a[id='menu-122']");
			    var about = $("a[id='menu-2']");
				$("a#sitemap-122").attr("href","#");
				products.attr({href:"#"});
				about.attr({href:"#"});
				products.addClass("no-hover");
				about.addClass("no-hover");
				$("a[href='/about.html']").attr({href:"#"});
				/* FIX BEGIN: MSIE 7 Vista bug */
			    sitemap.click(function() { return false; });
			    mfg.click(function() { return false; });
			    /* FIX END: MSIE 7 Vista bug */
			}	
			function build_index() {
				var menu = ls.public.pages;
				var parent_to_child = ls.public.index.parent_to_child;
				var alias_to_id = ls.public.index.alias_to_id;
				$.each(menu, function(key, val) { 
					var parent_id = val.parent_id, child_id = val.id;
					if (parent_to_child[parent_id]) parent_to_child[parent_id].push(child_id); 
					else parent_to_child[parent_id] = [child_id]; 
					alias_to_id[val.alias] = val.id;
				});
			}
		});
	};
	
	if ($.browser.msie && $.browser.version == "6.0") {
		document.styleSheets[0].addRule("body", "behavior:url(/css/csshover3.htc);"); /*body{behavior:url(/css/csshover3.htc);}*/
	}

	var check_load = setInterval(function() {
		if ($.browser.msie && $.browser.version <= 6) {
			clearInterval(check_load);
			jqPngFix();
		}
	},250);

	build_menu();

	$("div.product-slideshow").slideshow({delay: 3000,transition_speed: 1500,loader_graphic:$("div.loading-icon")});

	if ($(".more-pages")[0]) {
		var url = $(".more-pages").attr("id").split("_");
		var alias = url[0];
		var max = url[1];
		var container = $("<div class=\"more-pages-container\">");
		var parent = $("<div class=\"more-pages\">");
		container.append(parent);
		parent.append("<div><a href=\"/" + alias + ".html\" title=\"page 1\">1</a></div>");
		for (var i = 2; i <= max; i++) {
			parent.append("<div><a href=\"/" + alias + "_" + i + ".html\" title=\"page " + i + "\">" + i + "</a></div>");
			parent.append(" ");
		}
		parent.append("<div><a href=\"/" + alias + "_all.html\" title=\"all items\">all</a></div>");
		parent.append(" ");
		parent.append($("<input type=\"button\" title=\"close\" id=\"more-pages-close\" value=\"close\"/>"));
		container.append(parent);

		$("div.more-pages").css({"z-index": "1000","padding": "5px 5px 35px 5px",opacity:1});
		$("div.more-pages-container").css({"z-index":"1000",opacity:1});
		$("div.more-pages div").css({"width":"29px","text-align":"center","margin":"2px"});	
		$("a.more-pages").hover(function(){ $("div.more-pages").slideDown(); },null);
		$("a.more-pages").click(function(){ $("div.more-pages").slideToggle(); return false;});
		$("input#more-pages-close").click(function(){ $("div.more-pages").slideUp(); });
	}
	
	if ($("div.product-pages-links")[0]) {
		$("div.product-pages-links").append(container);
		$("ul.product-pages-links li").click(function(){
			if ($(this).children("a")[0]) {
				var href = $($(this).children("a")[0]).attr("href");
				window.location = href;
			}
		});
		$("div.product-pages-links").parent().css("position", "relative");
		$("div.product-pages-links ul li").css({"margin": "0px 2px"});
	}
	
	if ($("li.product-page")[0]) {
		$("li.product-page").css({margin:"7px"}); /* addresses MSIE 7 issue */
		$("li.product-page a").mousedown(function() {
			var href = $(this).attr("href");
			window.location.href = href;
		});
		$("li.product-page a").each(function() {
			var img = {element:$(this).children("img"),parent:$("<div>")};
			var title = {text:img.element.attr("title"),parent:$("<div>")};
			title.parent.text(title.text);
			title.parent.addClass("title");
			img.parent.append(img.element);
			img.parent.addClass("graphic");
			$(this).append(img.parent);
			$(this).append(title.parent);
		});
	}

	if ($("body.service-area")[0]) {
		$("h4").html("<span>"+$("h4").text().substr(0,1)+"</span>"+$("h4").text().substr(1));
		$("h4 span").css("font-size","2em");
	}
	
	if ($("div.product-detail div.graphics")[0]) {
		var prevGraphic = $("div.graphics img:eq(0)");
		$("div.graphics img:gt(0)").parent().css("display", "none");
		var fullsize = $("<div class=\"full-size\">");
		fullsize.append($("div.graphics>div"));
		$("div.graphics").append(fullsize);
		$("div.graphics").append($("<div class=\"thumbnails\">"));
		$("div.full-size>div>img").each(function(){
			var thumb = $(this).attr("src").replace("http://c0524912.cdn.cloudfiles.rackspacecloud.com", "http://c0528482.cdn.cloudfiles.rackspacecloud.com");
			var graphic = $(this);
			var img = $("<img>").attr({"src": thumb});
			$("div.thumbnails").append(img);
			img.mousedown(function(){
				prevGraphic.parent().fadeOut("fast", function(){
					graphic.parent().css("display", "block");
					graphic.parent().fadeIn("fast", function(){ prevGraphic = graphic; });
				});
			});
		});
		
		var check_graphic = setInterval(function() {
			var height = ($.browser.msie) ? 30 : 0;
			if ($("div.graphics img:eq(0)").height()>height) {
				clearInterval(check_graphic);
				$("div.graphics").height("auto");
				resize_graphics();
			}					
		},100);
		
		function resize_graphics(){
			var thumbnails = $("div.thumbnails").height();
			var graphics = $("div.graphics").height();
			var thumbnails = $("div.thumbnails").height();
			if (thumbnails > graphics) {
				$("div.graphics").height(thumbnails + 10);
			}
		}
	}
	
	$("#goog-wm div.content").css({width:"auto"});
	$("#goog-wm ul").css({"list-style":"none"});
	$("#goog-wm").css({"padding":"10px 0px",margin:"20px 0px","background-color":"#eee"});
});
