
var current_browser = null;

var browser_rules = {
	'.product_browser' : function(el) {
		new Draggable(el, {handle: 'drag_browser'});
		Element.hide(el);
	},
	'.triggerproduct' : function(el) {
		el.onmouseover = function(event) {
			var browser = $(el.id + "_browser");
			if(browser != current_browser && current_browser) Element.hide(current_browser);

			if(!browser.style.left) {
				xPoint = 0;
				yPoint = 0;
				var offset_array = Position.cumulativeOffset(Event.findElement(event, 'tr'));
				xPoint = offset_array[0] + Event.findElement(event, 'tr').scrollWidth - 150;
				yPoint = offset_array[1] - 150;
				browser.style.left = xPoint + "px";
				browser.style.top = yPoint + "px";
			}

			Element.show(browser);
			current_browser = browser;
		}.bindAsEventListener();
		
	},
	'.triggerclose' : function(el) {
		el.onclick = function() {
			var split_id = el.id.split("_");
			var browser = $(split_id[0] + "_browser");
			Element.hide(browser);
			current_browser = null;
		}
	},
	'.product_item' : function(el) {
		el.onmouseover = function() {
			var imageurl = '/new_images/products/' + el.id;
			var list_element = el.parentNode;
			var split_id = list_element.id.split("_");
			var product = split_id[0];
			var image_id = product + '_thumb';
			$(image_id).src = imageurl;
			$(image_id).style.width = 'auto';
			$(image_id).style.height = 'auto';
			
			if( $(image_id).width > 170 && $(image_id).width > $(image_id).height ) {
				$(image_id).width = 170;
				$(image_id).height = '';
			}

			if( $(image_id).height > 170 && $(image_id).height > $(image_id).width ) {
				$(image_id).height = 170;
				$(image_id).width = '';
			}

			$(image_id).onclick = function() {
				document.location.href = el.firstChild.href;
			};
			
			var prod_list = el.parentNode.getElementsByTagName('li');
			for(var i=0; i<prod_list.length; i++) {
				if(prod_list[i] == el) {
					prod_list[i].style.fontWeight = 'bold';
				} else {
					prod_list[i].style.fontWeight = 'normal';
				}
			}
		}
	},
	'.category_item' : function(el) {
		el.onclick = function() {
			var split_id = el.parentNode.id.split("_");
			var product = split_id[0];
			Element.hide(product + '_placeholder');
			var list_element = $(product + '_' + el.id + '_browser');
			var td_element = list_element.parentNode;
			var ul_list = td_element.getElementsByTagName('ul');
			for(var i=0; i<ul_list.length; i++) {
				if(ul_list[i] != list_element) {
					Element.hide(ul_list[i]);
				}
			}
			list_element.style.display = 'block';
			
			var cat_list = el.parentNode.getElementsByTagName('li');
			for(var i=0; i<cat_list.length; i++) {
				if(cat_list[i] == el) {
					cat_list[i].style.fontWeight = 'bold';
				} else {
					cat_list[i].style.fontWeight = 'normal';
				}
			}
			
			var prod_list = list_element.getElementsByTagName('li');
			var start_prod = prod_list[0];
			start_prod.onmouseover();
		}
	},
	'.category_list' : function(el) {
		var cat_list = el.getElementsByTagName('li');
		cat_list[0].onclick();
	},
	'.product_right' : function(el) {
		//prefetch the product thumbnails
		var ul_list = el.getElementsByTagName('ul');
		
		for(var i=0; i<ul_list.length; i++) {
			var current_list = ul_list[i];
			var li_list = current_list.getElementsByTagName('li');

			for(var j=0; j<li_list.length; j++) {
				var imageurl = '/new_images/products/' + li_list[j].id;
				var prefetch_image = document.createElement("img");
				prefetch_image.src = imageurl;
			}
		}
	}
};

Behavior.register(browser_rules);
