/*
 * HoverBox, Version 0.1
 * Inspired by Thickbox by Cody Lindley (http://www.codylindley.com)
 * Copyright (c) 2007 Brent Broome
 * License: MIT (http://www.opensource.org/licenses/mit-license.php)
*/
var restoreContent = function() {};

$(window).load(function(){   
	$('a.hoverbox, area.hoverbox, input.hoverbox').click(function() {
			hbShow(this.href || this.alt);
			this.blur();
			return false;
	});
	
	var seenIt = {};
	
	$('a.hoverbox, area.hoverbox, input.hoverbox').each(function() {
		var q = hbParseQ((this.href || this.alt).replace(/^[^\?]+\??/,'')), id = q['elemId'];
		
		if(!seenIt[id]) {
			seenIt[id] = true;
			
			$('body').append('<div id="hbWindow' + id + '" class="hbWindow">' +
				'<div class="hbClose"><a href="#" onclick="return hbClose(\'' + id + '\')">' +
				'<img style="height:25px;width:90px;" alt="Close" src="/assets/images/closeTab.png" />' +
				'</a></div><div id="hbContent' + id + '" class="hbContent">&nbsp;</div></div>');
			
			var hbWidth = parseInt(q['width'], 10) || 600,
					hbHeight = parseInt(q['height'], 10) || 400,
					contentW = hbWidth,
					contentH = hbHeight + 5,
					hbWin = $("#hbWindow" + id),
					hbContent = $("#hbContent" + id),
					ie = jQuery.browser.msie;
			
			hbContent.css({width: contentW + 'px', height: contentH + 'px'});
			hbContent.html($('#' + id).children());
			hbWin.css({marginLeft: '-' + parseInt((hbWidth / 2),10) + 'px', 
				width: hbWidth + 'px', height: (hbHeight + 24) + 'px'});
				
			if (!(ie && jQuery.browser.version < 7)) // if not IE6
				hbWin.css({marginTop: '-' + parseInt((hbHeight / 2),10) + 'px'});
		}
	});
	
	$('body').append('<div id="hbOverlay">&nbsp;</div>');
	
	if(window.onHBLoad)
		onHBLoad();
});

function hbShow(url) {
	var q = hbParseQ((url).replace(/^[^\?]+\??/,'')), 
		id = "#hbWindow" + q['elemId'], dim = pageSize();
	$("#hbOverlay").css({height: dim.height + 'px', width: dim.width + 'px'});
	$("#hbOverlay," + id).css({display: 'block'});
	$("embed,object").css({visibility:  'hidden'});
	$(id + " embed," + id + " object").css({visibility: 'visible'});
	return false;
}

function hbClose(id) {
	$("#hbWindow" + id + ", #hbOverlay").css({display: 'none'});
	$("embed,object").css({visibility: 'visible'});
	return false;
}

function hbParseQ (q) {
   var p = {};
   if (!q) return p;  
   var pairs = q.split(/[;&]/);
   
   for (var i = 0; i < pairs.length; i++) {
      var keyVal = pairs[i].split('=');
      if (!keyVal || keyVal.length != 2)
      	continue;
      var key = unescape( keyVal[0] );
      var val = unescape( keyVal[1] );
      val = val.replace(/\+/g, ' ');
      p[key] = val;
   }
   
   return p;
}

function scrollPos() {
	var e = (document.documentElement && document.documentElement.scrollTop ? 
		document.documentElement : document.body);
	return {left: e.scrollLeft, top: e.scrollTop};
}

function pageSize() {
	var de = document.documentElement,
			w = (de ? Math.max(de.clientWidth, de.scrollWidth) : document.body.scrollWidth),
			h = (de ? Math.max(de.clientHeight, de.scrollHeight) : document.body.scrollHeight);
			
	return { width: Math.max(w, document.body.offsetWidth + document.body.offsetLeft),
		height: Math.max(h, document.body.offsetHeight + document.body.offsetTop) };
}
