$j(function() {
    $j("div.defaultbox h2, div.defaultbox h1, div.aboutbox-init a").hover(
		function() {
		    //check which box we are over
		    var ndx = $j(this).attr("rel");
		    if (activeBoxId >= 0 && activeBoxId != ndx) {
		        clearTimeout(timer);
		        if (activeBoxId != ndx) {
		            removeHover();
		            activeBoxId = -1;
		        }
		    }

		    $j("div.aboutbox-init").hide();
		    $j("div.aboutbox-final").show();

		    //show popup boxes
		    var selector = getSelector(ndx);		    
		    $j(selector).hide();
		    $j(selector).css("z-index", "25");
		    
		    var displayPattern = patterns[ndx];	
		    for(var i = 0; i < displayPattern.length; i++) {
		        setTimeout("$j('" + buildPatternSelector(displayPattern[i], ndx) + "').fadeIn(400);", (i+1)*300);
		    }		    

		    var parent = $j(this).parents("div.defaultbox");
		    if (isDefined(parent.attr("rel"))) {
		        $j("#home").attr("class", parent.attr("rel"));
		        
		    }

		    //add events to popups
		    $j(selector).not(".event-attached").addClass("event-attached").hover(
				function() { clearTimeout(timer); },
				function() { timer = setTimeout("removeHover()", hideDelay); });

		},
		function() {
		    activeBoxId = $j(this).attr("rel");
		    timer = setTimeout("removeHover()", hideDelay);
		});          	
});

var activeBoxId = -1;
var timer;
var hideDelay = 500
function removeHover() {
	if (activeBoxId >= 0) {
		var selector = getSelector(activeBoxId);
		$j(selector).css("z-index", "1").unbind('hover');
		$j("#home").attr("class", "");
		//activeBoxId.find("div.nav-popup").queue(
		//	function() { 
		//		$j(this).hide(); 
		//		$j(this).dequeue(); 
		//	});
	} 
}

function sendGaTracking(parameter1,parameter2,parameter3) {
	pageTracker._trackEvent(parameter1,parameter2,parameter3.toString());
}

function getSelector(boxNdx) {
	var selectorTemplate = "#boxj_0,#boxj_1,#boxj_2,#boxj_3,#boxj_4,#boxj_5,#boxj_6,#boxj_7,#boxj_8,div#boxj_9,#boxj_10,#boxj_11,#boxj_12,#boxj_13,#boxj_14,#boxj_15";
	return selectorTemplate.replace(/j/g, boxNdx);
}

function buildPatternSelector(pattern, boxNdx) {
    var s = "";
    for(var i = 0; i < pattern.length; i++) {
        s += "#box" + boxNdx + "_" + pattern[i];
        if (i != pattern.length - 1) s += ",";
    }
    return s;
}

var patterns = new Array();
patterns[0] = new Array(new Array("0"), new Array(1,4,5), new Array(2,6,8,9,10), new Array(3,7,11,12,13,14,15));
patterns[1] = new Array(new Array("1"), new Array(0,2,4,5,6), new Array(3,7,8,9,10,11), new Array(12,13,14,15));
patterns[2] = new Array(new Array("2"), new Array(1,3,5,6,7), new Array(0,4,8,9,10,11), new Array(12,13,14,15));
patterns[3] = new Array(new Array("3"), new Array(2,6,7), new Array(1,5,9,10,11), new Array(0,4,8,12,13,14,15));

patterns[4] = new Array(new Array("4"), new Array(0,1,5,8,9), new Array(2,6,10,12,13,14), new Array(3,7,11,15));
patterns[5] = new Array(new Array("5"), new Array(0,1,2,4,6,8,9,10), new Array(3,7,11,12,13,14,15));
patterns[6] = new Array(new Array("6"), new Array(1,2,3,5,7,9,10,11), new Array(0,4,8,12,13,14,15));
patterns[7] = new Array(new Array("7"), new Array(2,3,6,10,11), new Array(1,5,9,13,14,15), new Array(0,4,8,12));

patterns[8] = new Array(new Array("8"), new Array(4,5,9,12,13), new Array(0,1,2,6,10,12,13,14), new Array(3,7,11,15));
patterns[9] = new Array(new Array("9"), new Array(4,5,6,8,10,12,13,14), new Array(0,1,2,3,7,11,15));
patterns[10] = new Array(new Array("10"), new Array(5,6,7,9,11,13,14,15), new Array(0,1,2,3,4,8,12));
patterns[11] = new Array(new Array("11"), new Array(6,7,10,14,15), new Array(1,2,3,5,9,13), new Array(0,4,8,12));

patterns[12] = new Array(new Array("12"), new Array(8,9,13), new Array(4,5,6,10,14), new Array(0,1,2,3,7,11,15));
patterns[13] = new Array(new Array("13"), new Array(8,9,10,12,14), new Array(4,5,6,7,11,15), new Array(0,1,2,3));
patterns[14] = new Array(new Array("14"), new Array(9,10,11,13,15), new Array(4,5,6,7,8,12), new Array(0,1,2,3));
patterns[15] = new Array(new Array("15"), new Array(10,11,14), new Array(5,6,7,9,13), new Array(0,1,2,3,4,8,12));
