/**
*
* @ver: 0.95 Beta
* @file: popup.js. Used to dynamically create a popup.
* @author: killerDesign.com
* @copyright: 2009 - 2010 killerDesign.com
* 
**/

function ksd_popup() {
	var myWidth = 353;
	var myHeight = 548;
	var scrollTop = 50;
	var popupDisplay = "height:10px; \
						width: 10px;\
						position:relative;\
						top:"+(scrollTop + $(window).scrollTop())+"px;\
						background: transparent url(popup/images/bg_center.jpg);\
						margin:0 auto;\
						z-index:100;\
						position:relative;";
						
	// create the containing elements
	var shadeDiv = $('<div id="PopShadeDiv"></div>');
	var centerDiv = $('<div id="PopContainerDiv"></div>');
	var containerDiv = $('<div id="PopupBoxDiv"></div>');
	var closeDiv = $('<div></div>');
	var myiFrame = $('<div width="200" height="200"></div>');

	myiFrame.attr({
		style: 'border: medium none;overflow:hidden;width:100%;height:100%; position: absolute;left:0;z-index:100;'
	});
	
	// a fix for a flickering issue
	if ($.browser.mozilla) {
		myiFrame.hide();
		myiFrame.load(function(){
			setTimeout (function(){myiFrame.show();},1000);
		});
	}
	
	// create the DOM structure
	$("body").append(shadeDiv);
	centerDiv.append(containerDiv);
	containerDiv.append(closeDiv);
	
	// custom bits
	var leftDiv = $('<div style="background: transparent url(popup/images/bg_02.png);left:-24px;position:absolute;top:0;width:24px;height:558px;"></div>');
	var rightDiv = $('<div style="background: transparent url(popup/images/bg_04.png);right:-23px;position:absolute;top:0;width:23px;height:558px"></div>');
	var topDiv = $('<div style="background: transparent url(popup/images/bg_01.png);left:-24px;position:absolute;top:-25px;position:absolute;width:400px;height:25px"></div>');
	var bottomDiv = $('<div style="background: transparent url(popup/images/bg_05.png);left:0;position:absolute;bottom: -10px;width:353px;height:10px"></div>');
	containerDiv.append(leftDiv);
	containerDiv.append(rightDiv);
	containerDiv.append(topDiv);
	containerDiv.append(bottomDiv);
	
	$("body").append(centerDiv);
	
	// style the center container
	centerDiv.attr({style: 'left:0;position:absolute;top:0;width:100%;'});
	
	// style the close btton
	closeDiv.attr({
		style: 'bottom:0;height:21px;position:absolute;top:10px;right:0;text-align:right;width:100%;background:transparent none;padding: 5px 0;'
	});
	
	//enable for closebutton
	closeDiv.html('<a style="position:relative;right:8px;top:-10px;cursor:pointer;"><img src="popup/images/close.png" id="PopClose" alt="close" style="z-index:2000000;" /></a>');
	
	$('#PopClose').click(function(){
		ksd_killPopUp();
	});
	$('#PopContainerDiv').click( function(){
		//ksd_killPopUp();							  
	});
	
	myiFrame = $("#ksd_popup").html();
	containerDiv.append(myiFrame);
	containerDiv.attr({
		style: popupDisplay
	});

	// animate the expanding popup
	containerDiv.animate({ 
		width: myWidth+"px",
		height: myHeight+"px"
	}, 800,'swing',function(){});
	
	// ie6 does not know what position:fixed means.
	var positiontype = 'fixed';
	if ($.browser.msie && $.browser.version.substr(0,1)<7) {
		positiontype = 'absolute';
		leftDiv.css('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader (src='popup/images/bg_02.png', sizingMethod='scale');");
		leftDiv.css('background', "none");
		rightDiv.css('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader (src='popup/images/bg_04.png', sizingMethod='scale');");
		rightDiv.css('background', "none");
		topDiv.css('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader (src='popup/images/bg_01.png', sizingMethod='scale');");
		topDiv.css('background', "none");
		bottomDiv.css('filter', "progid:DXImageTransform.Microsoft.AlphaImageLoader (src='popup/images/bg_05.png', sizingMethod='scale');");
		bottomDiv.css('background', "none");
	}
	
	// set the background fade in
	shadeDiv.attr({
		style: 'background-color:black;height:'+$(document).height()+'px;left:0;position:'+positiontype+';top:0px;width:'+$(window).width()+'px'
	}).css('opacity',0.5).hide().fadeIn('slow');
	
	global_showing_popup = true;
};

/*
* preload images
*/
jQuery.preloadImages = function() {
  for(var i = 0; i<arguments.length; i++)
  {
    jQuery("<img>").attr("src", arguments[i]);
  }
}

/*
* Removes the popup
*/
function ksd_killPopUp(){
	$('#PopShadeDiv').css({'display':'none'});
	$('#PopContainerDiv').css({'display':'none'});
}

/*
* Get X & Y coordination
*/
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return scrOfY;
}

/*
* Initialise the popup
*/
$(document).ready(function(){
	global_showing_popup = false;
	
	cur_topPos = getScrollXY();
	topPos = cur_topPos;
	topPos2 = topPos+20;
	// area along the top of the page to make the hit test a bit more acurate
	$(document.body).append($('<div id="PopHitZone" style="position:absolute;width:100%;top:'+topPos+'px;height:20px;z-index:10000;"></div>'));
	$(document.body).append($('<div id="PopHitZone2" style="position:absolute;width:100%;top:'+topPos2+'px;height:10px;z-index:10000;"></div>'));
	
	$(window).scroll(function(){ 
		var topPos = getScrollXY();
		var topPos2 = topPos+20;
		$("#PopHitZone").css({"top":topPos});
		$("#PopHitZone2").css({"top":topPos2});
	});
	
	// preload a 100kb image for the popup
	$.preloadImages("popup/images/bg_02.png", "popup/images/bg_04.png", "popup/images/bg_01.png", "popup/images/bg_05.png", "popup/images/bg_center.jpg", "popup/images/close.png");
	
	// set the css
	$('#ksd_container').css({'padding':'30px'});
	
	hitman = false;
	$('#PopHitZone2').mouseover(function(){
		hitman = true;
	});

	$('#PopHitZone').mouseover(function(){				
		if (!global_showing_popup && hitman == true) {
			ksd_popup();
		}
	});
});
