SiteUnderOptions = {
	targetUrl: ''
};

SiteUnder = {

	initialize: function(){
		SiteUnder.isOpened 	 = false;
		
		SiteUnder.eventListener(document.body, 'mouseup', SiteUnder.preLoad, false);
		setTimeout('SiteUnder.launchWindow(self)', 200);
	},

	preLoad: function(e){
		oTarget = e.target || e.srcElement;

		if (oTarget.tagName.toLowerCase() != 'select'){
            SiteUnder.launchWindow(oTarget);
		}
	},

	eventListener: function(oTarget, sEvent, sFunction, bCapture){
		if(document.addEventListener){
			return oTarget.addEventListener(sEvent, sFunction, bCapture);
		}
		else{
			return oTarget.attachEvent('on' + sEvent, sFunction);
		}
	},

	launchWindow: function(oTarget){
		if(SiteUnder.isOpened == false && this.getCookie("popup") == false){
			var popUnder = window.open(SiteUnderOptions.targetUrl,'_blank','toolbar=1,location=1,directories=1,status=1,scrollbars=1,resizable=1,copyhistory=1,menuBar=1');

			if(!(null == popUnder || true == popUnder.closed || !popUnder || typeof(popUnder) == 'undefined' || popUnder == undefined || popUnder == 'undefined')){
				popUnder.blur();
				window.focus();
				oTarget.focus();

				this.setCookie('popup', '1', 1);
			}
		}
	},
	
	getCookie: function(sName)
	{
		var sValueTop = document.cookie.indexOf(sName + '=');

		if(sValueTop >= 0)
		{
		   var sValueEnd = document.cookie.indexOf(';', sValueTop);
		   sValueTop 	+= sName.length + 1;

		   if(sValueEnd < 0)
		   {
			   sValueEnd = document.cookie.length;
		   }

		   return unescape(document.cookie.substring(sValueTop, sValueEnd));
		}

		return false;
	},

	setCookie: function(sName, sValue, sDate)
	{
		var oDate = new Date();
		
		var cookie_duration = 120;
		
		if (typeof(SiteUnderOptions.cookieTime) != "undefied" && !isNaN(SiteUnderOptions.cookieTime)){
			cookie_duration = parseInt(SiteUnderOptions.cookieTime);	
		}
		
		oDate.setTime(oDate.getTime() + (sDate * cookie_duration * 3600 * 1000));
		document.cookie = sName + '=' + escape(sValue) + ';expires=' + oDate.toGMTString() + ';path=/';
	}

};
