 /**
 * @fileoverview Common Javascript Functionality for Arctic Computer Shop 
 * for reusable javascript functionality
 * JavaScript.
 * @copyright Copyright 2010, NssY Wanyonyi <wanyonyi@hasoftkenya.com>
 * @author NssY Wanyonyi
 * @version 1.0
 * Date Created: 16th June 2011   
 * Date Revised: 12th July 2011
 */

// Create Beautiful Tooltips on hover
function simple_tooltips(elems){
    var h = jQuery(window).height();
	var w = jQuery(window).width();
	var offsetY = 20 , offsetX = 20;
    var html = '<div class="tooltip_window rounder shadow fancybg" style="position:absolute" />';
	jQuery('body').append(html).children(".tooltip_window").hide();
	var tt_win = jQuery('.tooltip_window');
	elems.each(function(){
	    var me = jQuery(this);
	    me.hover(
	    // Mouse Over
	    function(evt){
	        var h = me.css('cursor', 'pointer').attr('tooltip');
			evt.stopPropagation();
			tt_win.hide().html(h)
				.css('top', evt.pageY + offsetY)
				.css('left', evt.pageX + offsetX)
				.fadeIn(500);
			var tw = tt_win.outerWidth();
			var th = tt_win.outerHeight();
			me.mousemove(function(evt){
			    var tX = tw + offsetX + evt.pageX;
			    var tY = evt.pageY + offsetY;

			    // We need to make sure our tooltip window is not outside the page
			    var posX;
			    if (tX > w){
				    posX = -tw - offsetX;
			    } else {
				    posX = offsetX;
			    }
			    var posY;
			    if (tY > h){
				    posY = th;
			    }else{
				    posY = offsetY+th;
			    }
			    tt_win
			    .css('top', evt.pageY - posY)
			    .css('left', evt.pageX + posX);
			});
	    },
	    // Mouse Out
	    function(){
	        tt_win.empty();
	    });
	});
}
// Set the equal height of a group of elements
function equalHeight (group) {
	var tallest = 0;
	var h;
	group.each(function() {
		h = jQuery(this).height();
		tallest = Math.max(h, tallest);
	});
	group.height(tallest);
}


// Document Ready
jQuery(function(){
 
	// Tooltips on any element with tooltip attribute
	simple_tooltips(jQuery('*[tooltip]'));
	
	// Listings Hover
	jQuery('.listings .content').hover(
	    // over
	    function(){
	        jQuery(this).addClass('hover');
	    },
	    // out
	    function(){
	        jQuery(this).removeClass('hover');
	});
	// Listings Links
	jQuery('.listings .content').click(function(){
	    var link = jQuery(this).find('h3 a').attr('href');
	    location = link;
	});
	// Listings Layout
	jQuery('.listings .outer-box:first').css('marginLeft', '0');
	jQuery('.listings .outer-box:nth-child(2)').css('marginLeft', '12px');
	jQuery('.listings .outer-box:nth-child(3)').css('marginLeft', '12px');
	jQuery('.listings .outer-box:last').css({'float': 'right', 'marginRight': '0'});
});

// Document Load 
jQuery(window).load(function() {
	// Initialize our Navigation dropdown functionality
	jQuery("ul.menu li").hover(
		// Mouse Over
		function(){
			jQuery(this).stop(true, true)
			.find("> ul")
			.css('display','none')
			.addClass('subhover')
			.slideDown('600');
		},
		// Mouse Out
		function(){
			// Traverse dom again FIXME: Find a better way to do this
			var list = jQuery(this).stop(true, true)
			    .find("> ul")
			    .slideUp('600',
				// Call Back after slide up
				function(){
					list.removeClass('subhover');
				});
	    }
	);
	// Equal height for products in cat view
	equalHeight(jQuery(".product"));
});


