var GetInfo = new Class({

	//code: ["i","n","f","o"],
	code: ["m","o","d","e","l"],
    
	step: 0,

	initialize: function(func1,func2,func3){
		if($defined(func2))
			this.func2 = func2;
		if($defined(func3))
			this.func3 = func3;
		this.func = func1;
		document.addEvent('keyup',this.keystroke.bind(this));
	},
    
	keystroke: function(e){
		ev = new Event(e);
    	
		if(ev.key == this.code[this.step]){

			if($defined(this.func2))
				this.func2.attempt(this.step);
			this.step++;
			if(this.step == this.code.length){
				this.step = 0;
				this.func.attempt();
			}
		} else {
			this.step = 0;
			if($defined(this.func3))
				this.func3.attempt();
		}
	}
    
});

document.addEvent('domready', function() {
	
	if ($('asideNavigation') || $('shopNavigation')) {
		
		var navigation = ($('asideNavigation')) ? $('asideNavigation') : $('shopNavigation');
		var items = navigation.getChildren("li");
		var submenus = items.getChildren("li");

		items.each(function(item){
			
			if ($chk(item.getElement("ul"))) {
				
				var ul = item.getElement("ul");
				
				item.getElement("a").addEvents({
					"mouseenter" : function(evt) {
						ul.hasClass("hover") ? null : ul.addClass("hover");
						item.getElement("a").hasClass("hover") ? null : item.getElement("a").addClass("hover");
					}, "mouseleave" : function(evt) {
						ul.hasClass("hover") ? ul.removeClass("hover") : null;
						item.getElement("a").hasClass("hover") ? item.getElement("a").removeClass("hover") : null;
					}
				});
				
				ul.addEvents({
					"mouseenter" : function(evt) {
						ul.hasClass("hover") ? null : ul.addClass("hover");
						item.getElement("a").hasClass("hover") ? null : item.getElement("a").addClass("hover");
					}, "mouseleave" : function(evt) {
						ul.hasClass("hover") ? ul.removeClass("hover") : null;
						item.getElement("a").hasClass("hover") ? item.getElement("a").removeClass("hover") : null;
					}
				});
				
			}
			
		});
		
	}
	
	if ($("shop")) {
		
		if ($("itemDetails")) {
			
			var requested = false;
			var returned = false;

			getinfo = new GetInfo(function() {


				var get_info_data = $("product_id");
				var data = get_info_data.get("data");

				if (data != null && requested == false) {

					requested = true;
					returned = true;
					var request = new Request.JSON({
						url: "/info",
						method: "get",

						onSuccess: function(responseJson, responseText) {
							
							var vendor_name = "<p><strong>Vendor Name:</strong> " + (responseJson.vendorName || "") + "</p>";
							var vendor_number = "<p><strong>Vendor Number:</strong> " + (responseJson.vendorNumber || "") + "</p>";
							
							var more_info = new Element("div", {
								"class" : "notice",
								"html" : vendor_name + vendor_number
							}).injectInside("itemInfo");

							more_info.highlight();

						},

						onFailure: function(xhr) {


						}

					}).send("product=" + data);
				}			

			});
			
		}
		
		if ($("boxList")) {
		
			var requested = false;
			var returned = false;
			
			getInfo = new GetInfo(function() {
				
				var items = $$(".get-info");
				var total = items.length;
				// var count = 0;

				items.each(function(item, index) {
					
					var data = item.get("data");
					
					if (data != null && requested == false) {
						
						returned = true;
						
						var request = new Request.JSON({
							url: "/info",
							method: "get",
							
							onSuccess: function(responseJson, responseText) {
								
								var new_title = (responseJson.vendorName || "") + " | " + (responseJson.vendorNumber || "");
								item.getElement("img").set("alt", new_title).set("title", new_title);
								
							},
							
							onFailure: function(xhr) {
								
							}
							
						}).send("product=" + data);
						
					}
					
					if ((index + 1) == total) {
						
						if (returned && !requested) {
							requested = true;
							show_notice();
						}
						
					}
					
				});
				
			});
			
			
		}
		
	}
	
	function show_notice() {
		
		var headline = $("content").getElement("h1");
		headline.set("text", headline.get("text") + " | More Info");
		
		var notice = new Element("p", {
			"class" : "notice",
			"text" : "Hover over an image to get additional information.",
			"styles" : {
				"opacity" : 0
			}
		}).injectAfter(headline).fade("in");
		
	}
	
});
