//Interstitial Content Box v1.1- http://www.dynamicdrive.com/dynamicindex17/interstitial.htm
//modified: Nov 26th, 06' (New: disable webpage scrollbar, auto hide after x seconds options, 
//Last modified: Dec 17th, 09 (Andy Koswara; center.com, Inc.) - remove ajax stuff

var interstitialBox={
	debug: false,
	
	//1) list of files on server to randomly pick from and display
	//displayfiles: ['horoscope/js/samplecontent2.htm', '/horoscope/js/samplecontent2.htm'],
	displayfiles: ['/horoscope/inc/AdTags/Horoscope_ROS_Interstitial.html',
				   '/horoscope/inc/AdTags/Horoscope_Interstitial.html'],

	//2) display freqency: ["frequency_type", "frequency_value"]
	displayfrequency: ["cookie", "1"], //displayfrequency: ["chance", "1"],

	//3) HTML for the header bar portion of the interstitial box
    	defineheader: '<br><center><font id="advert" style="font-size:16px; color:#7b217c;"><b ID="boxtitle">&nbsp;&nbsp;</b></font></center><div class="headerbar"><table width="100%" style="border-bottom: 1px solid silver"><tr><td align="left" style="color:gray; font-size:11px;"><a>Clicking on the advertisement will open a separate window and will not disrupt your experience.</a></td><td align="right"><a href="#" onClick="javascript:interstitialBox.closeit(); return false"><b style="color:black">CLOSE</b>&nbsp;&nbsp;&nbsp;<img src="/horoscope/images/close.gif" style="border: 0" title="Close Box" align="top"/></a></td></tr></table><br></div>',

	//4) cookie setting: ["cookie_name", "cookie_path"]
	cookiesetting: ["stitialcookie", "path=/"],

	//5) bust caching of pages fetched via Ajax?
	ajaxbustcache: true,

	//6) Disable browser scrollbars while interstitial is shown (Only applicable in IE7/Firefox/Opera8+. IE6 will just auto scroll page to top)?
	disablescrollbars: true,

	//7) Auto hide Interstitial Box after x seconds (0 for no)?
	autohidetimer: 25,

	////No need to edit beyond here//////////////////////////////////

	ie7: window.XMLHttpRequest && document.all && !window.opera,
	ie7offline: this.ie7 && window.location.href.indexOf("http")==-1, //check for IE7 and offline
	launch:false,
	scrollbarwidth: 16,

	getcontentsource:function(url, thediv){
		document.body.style.visibility = "visible"; //to hide background content set to "hidden";
        	document.getElementById("interContent").innerHTML = '<iframe onload="updateAdTitle();" id="iframe" scrolling="no" frameborder="0" src="' + url + '" style="width:100%; height:100%;" marginwidth="0" marginheight="0" vspace="0" hspace="0"></iframe>';
	},

	createcontainer:function(){
		//write out entire HTML for Interstitial Box:
		document.write('<div id="interContainer">'+this.defineheader+'<div id="interContent" style="height:300px"></div></div><div id="interVeil"></div>')
		this.interContainer=document.getElementById("interContainer") //reference interstitial container
		this.interVeil=document.getElementById("interVeil") //reference veil: this is where to control background veil
		this.standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
	},

	showcontainer:function(){
		if (this.interContainer.style.display=="none") return //if interstitial box has already closed, just exit (window.onresize event triggers function)
		var ie=document.all && !window.opera
		var dom=document.getElementById
		var scroll_top=(ie)? this.standardbody.scrollTop : window.pageYOffset
		var scroll_left=(ie)? this.standardbody.scrollLeft : window.pageXOffset
		var docwidth=(ie)? this.standardbody.clientWidth : window.innerWidth-this.scrollbarwidth
		var docheight=(ie)? this.standardbody.clientHeight: window.innerHeight
		var docheightcomplete=(this.standardbody.offsetHeight>this.standardbody.scrollHeight)? this.standardbody.offsetHeight : this.standardbody.scrollHeight
		var objwidth=this.interContainer.offsetWidth
		var objheight=this.interContainer.offsetHeight
		this.interVeil.style.width=docwidth+"px" //set up veil over page
		this.interVeil.style.height=docheightcomplete+"px" //set up veil over page
		this.interVeil.style.left=0 //Position veil over page
		this.interVeil.style.top=0 //Position veil over page	
		this.interVeil.style.visibility="visible" //Show veil over page
		this.interContainer.style.left=docwidth/2-objwidth/2+"px" //Position interstitial box
		var topposition=(docheight>objheight)? scroll_top+docheight/2-objheight/2+"px" : scroll_top+5+"px" //Position interstitial box
		this.interContainer.style.top=Math.floor(parseInt(topposition))+"px"
		this.interContainer.style.visibility="visible" //Show interstitial box
		if (this.autohidetimer && parseInt(this.autohidetimer)>0 && typeof this.timervar=="undefined")
			this.timervar=setTimeout("interstitialBox.closeit()", this.autohidetimer*1000)
	},

	closeit:function(){
		this.interVeil.style.display="none"
		document.body.style.visibility = "visible";
		this.interContainer.style.display="none"
		if (this.disablescrollbars && window.XMLHttpRequest) //if disablescrollbars enabled and modern browsers- IE7, Firefox, Safari, Opera 8+ etc
			this.standardbody.style.overflow="auto"
		if (typeof this.timervar!="undefined") clearTimeout(this.timervar)
	},

	getscrollbarwidth:function(){	
		var scrollbarwidth=window.innerWidth-(this.interVeil.offsetLeft+this.interVeil.offsetWidth) //http://www.howtocreate.co.uk/emails/BrynDyment.html
		this.scrollbarwidth=(typeof scrollbarwidth=="number")? scrollbarwidth : this.scrollbarwidth
	},

	hidescrollbar:function(){
		if (this.disablescrollbars){ //if disablescrollbars enabled
			if (window.XMLHttpRequest) //if modern browsers- IE7, Firefox, Safari, Opera 8+ etc
				this.standardbody.style.overflow="hidden"
			else //if IE6 and below, just scroll to top of page to ensure interstitial is in focus
				window.scrollTo(0,0)
		}
	},

	dotask:function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
		var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
		if (target.addEventListener)
			target.addEventListener(tasktype, functionref, false)
		else if (target.attachEvent)
			target.attachEvent(tasktype, functionref)
	},

	initialize:function(){
		var file = "http://" + window.location.hostname + this.displayfiles[InterstitialAdType];
		//file = this.displayfiles[Math.floor(Math.random()*this.displayfiles.length)]; random
		if (this.debug) this.autohidetimer = 0;
		this.createcontainer() //write out interstitial container
	
		/********** IFRAME VERSION ************/
		this.getcontentsource(file, this.interContainer) //load page into content via iframe
		this.hidescrollbar(); 
		this.getscrollbarwidth(); 
        	//this.showcontainer();
		/*****************************************/
		
		/********** AJAX VERSION **************/
		//this.ajaxconnect(file, this.interContainer) //load page into content via ajax
		//this.dotask(window, function(){interstitialBox.hidescrollbar(); interstitialBox.getscrollbarwidth(); setTimeout("interstitialBox.showcontainer()", 100)}, "load")
		/**********************************/
	
		this.dotask(window, function(){interstitialBox.showcontainer()}, "resize")
	}
}

/////////////End of interstitialBox object declaration here ////////////////////////////////

function getCookie(Name){
	var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
	if (document.cookie.match(re)) //if cookie found
		return document.cookie.match(re)[0].split("=")[1] //return its value
	return null
}

function setCookie(name, value, days){
	var expireDate = new Date()
	//set "expstring" to either an explicit date (past or future)
	if (typeof days!="undefined"){ //if set persistent cookie
		var expstring=expireDate.setDate(expireDate.getDate()+parseInt(days))
		document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; domain=" + aCookieDomain + ";" +interstitialBox.cookiesetting[1]
	} else //else if this is a session only cookie setting
		document.cookie = name+"="+value+"; domain=" + aCookieDomain + "; " +interstitialBox.cookiesetting[1]
}

function updateAdTitle() {
	var adContent = "";
	var keyword2Check = "adurl=http://www.horoscope.com";
	var myIFrame = document.getElementById('iframe');
	try {
	    if (myIFrame.contentDocument) { //DOM
	        //alert(myIFrame.contentDocument.body.scrollHeight + " - " + myIFrame.contentDocument.body.scrollWidth);
	        document.getElementById('interContent').style.height = myIFrame.contentDocument.body.scrollHeight + "px";
	        document.getElementById('interContent').style.width = myIFrame.contentDocument.body.scrollWidth + "px";
	        document.getElementById('interContainer').style.width = myIFrame.contentDocument.body.scrollWidth + "px";
	        adContent = myIFrame.contentDocument.getElementById('google_ads_iframe_720x300_1').contentDocument.body.innerHTML;
	
		} else {
		    //var test = myIFrame.contentWindow.document.body.scrollHeight + " - " + myIFrame.contentWindow.document.body.scrollWidth;
		    //alert(test);
		    document.getElementById('interContent').style.height = myIFrame.contentWindow.document.body.scrollHeight + "px";
		    document.getElementById('interContent').style.width = myIFrame.contentWindow.document.body.scrollWidth + "px";
		    document.getElementById('interContainer').style.width = myIFrame.contentWindow.document.body.scrollWidth + "px";
		    adContent = myIFrame.contentWindow.document.getElementById('google_ads_iframe_720x300_1').contentWindow.document.body.innerHTML;
		}
	} catch (err) {
		//alert(err);
	}
	//alert(adContent.indexOf("newsletter", 0) + ": \n" + (adContent));
	if (adContent.indexOf(keyword2Check, 0) >= 0) document.getElementById('boxtitle').innerHTML = '<img src="/horoscope/images/horoscope-logo_150x50.gif" style="border: 0" title="Horoscope.com" align="top"/>';
	else document.getElementById('boxtitle').innerHTML = 'ADVERTISEMENT';
	interstitialBox.showcontainer();
}

var stitialvars=new Object() //temporary object to reference/ shorthand certain interstitialBox properties
stitialvars.freqtype=interstitialBox.displayfrequency[0] //"chance" or "cookie"
stitialvars.cookieduration=interstitialBox.displayfrequency[1] //"session" or int (integer specifying number of days)
stitialvars.cookiename=interstitialBox.cookiesetting[0] //name of cookie to use

try {                                                                  
	showInterstitialAd = showInterstitialAdFlag;                       
} catch (err) {                                                        
	showInterstitialAd = true;                                        
}                                                                      

if (showInterstitialAd) {
	if (stitialvars.freqtype=="chance"){ //IF CHANCE MODE
		if (Math.floor(Math.random()*interstitialBox.displayfrequency[1])==0)
		interstitialBox.launch=true
	} else if (stitialvars.freqtype=="cookie" && stitialvars.cookieduration=="session"){ //IF "SESSION COOKIE" MODE
		if (getCookie(stitialvars.cookiename+"_s")==null){ //if session cookie is empty
			setCookie(stitialvars.cookiename+"_s", "loaded")
			interstitialBox.launch=true
		}
	} else if (stitialvars.freqtype=="cookie" && typeof parseInt(stitialvars.cookieduration)=="number"){ //IF "PERSISTENT COOKIE" MODE
		if (getCookie(stitialvars.cookiename)==null || parseInt(getCookie(stitialvars.cookiename))!=parseInt(stitialvars.cookieduration)){ //if persistent cookie is empty or admin has changed number of days to persist from that of the stored value (meaning, reset it)
			setCookie(stitialvars.cookiename, stitialvars.cookieduration, stitialvars.cookieduration)
			interstitialBox.launch=true
		} 
	}
}

if (interstitialBox.debug || interstitialBox.launch)
	interstitialBox.initialize()

