
var IA_sitecode;
var timeout;
var showAd = false;
var adVisible = false;

/* -- COOKIE LOGIC -- */
function cookiesEnabled() 
{
	Set_Cookie( 'test', 'none', '', '/', '', '' );
/*
If Get_Cookie succeeds, cookies are enabled, since the cookie was successfully created.
*/
	if ( Get_Cookie( 'test' ) )
	{
		cookie_set = true;
		Delete_Cookie('test', '/', '');
	} 
	else 
	{
		document.write( 'cookies are not currently enabled.' );
		cookie_set = false;
	}
	return cookie_set;
}
function setIASiteCode( sitecode ) 
{
	IA_sitecode = sitecode;
}
function setQuestCookie()
{
	var cookie_name = "IASeenOn" + IA_sitecode;
	Set_Cookie( cookie_name, "already seen", 24, "/", "", "" );
}
function Set_Cookie( name, value, expires, path, domain, secure ) 
{
// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );
/*
if the expires variable is set, make the correct expires time, the current 
script below ( expires = expires * 1000 * 60 * 60 * 24 ) will set 'expires' 
for 'X' number of days; to make it set for hours, delete * 24, for minutes, 
delete * 60 * 24
*/
	if ( expires )	
	{
		expires = expires * 1000 * 60 * 60;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	
	document.cookie = name + "=" +escape( value ) +
		( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
		( ( path ) ? ";path=" + path : "" ) + 
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
}

// this function gets the cookie, if it exists
function Get_Cookie( name ) 
{	
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) &&	( name != document.cookie.substring( 0, name.length ) ) ) 
	{
		return null;
	}
	if ( start == -1 ) 
	{
		return null;
	}
	var end = document.cookie.indexOf( ";", len );
	if ( end == -1 ) 
	{
		end = document.cookie.length;
	}
	return unescape( document.cookie.substring( len, end ) );
}
			
// this deletes the cookie when called
function Delete_Cookie( name, path, domain )
{
	if ( Get_Cookie( name ) ) 
	{
		document.cookie = name + "=" +
			( ( path ) ? ";path=" + path : "") +
			( ( domain ) ? ";domain=" + domain : "" ) +
			";expires=Thu, 01-Jan-1970 00:00:01 GMT";
	}
}
function setShowAd( value )
{
	showAd = value;	
}


/* -- VISUAL LOGIC -- */
function appear() 
{
	var interstitialAdContainer = document.getElementById( "interstitialAdContainer" );
	interstitialAdContainer.className = "IAContainerStyles";
}
function disappear() 
{
	var interstitialAdContainer = document.getElementById( "interstitialAdContainer" );
	interstitialAdContainer.className = "domHidden";
}
function showHideButton() 
{
	var IAHideButtonBlock = document.getElementById( "IAHideButtonBlock" );
	IAHideButtonBlock.className = "IAHideButtonBlockStyles";
	var IAHideButton = document.getElementById( "IAHideButton" );
	IAHideButton.className = "IAHideButtonStyles";
}


/* -- MASTER TIRGGER FUNCTION ( place this function in the window or body tag's onLoad method ) -- */
function checkIfInterstitialAdShouldRun() 
{
	var interstitialAdContainer = document.getElementById( "interstitialAdContainer" );
	var emptyDivSize = 20;
	var curWidth;
	var curHeight;

	/* The value of showAd begins as 'false' at the top of this file.  The showAd's value is set to 'true' when 
	the 'interstitial_*.html' subfile loads into the iframe (from inside the script block inside the subfile). */
	 if ( showAd ) 
	 {
		appear();
	 }
	curWidth = parseInt( interstitialAdContainer.offsetWidth );
	curHeight = parseInt( interstitialAdContainer.offsetHeight );
	if ( curWidth >= emptyDivSize && curHeight >= emptyDivSize )
	{
	 	showHideButton();
	}
}

/* -- SECONDARY TIRGGER FUNCTION (appears inside HTML 'at bottom of page inside JS script block, executes
before the primary trigger function ) -- */
function userHasNotSeenAd() 
{
   var enableAd = true;
   if ( Get_Cookie( "IASeenOn" + IA_sitecode ) != null ) 
   {
      enableAd = false;
   } 
   else 
   {        
      setQuestCookie();
      enableAd = true;
   }
   if ( !cookiesEnabled() ) 
   {
      enableAd = true;
   }
   return enableAd;
}
