//Interstitial Content Box v1.1- http://www.dynamicdrive.com/dynamicindex17/interstitial.htm
//Last modified: Nov 26th, 06' (New: disable webpage scrollbar, auto hide after x seconds options,
var interstitialBox={
//1) list of files on server to randomly pick from and display
displayfiles: ['popup.aspx?Id=1'],
//2) display freqency: ['frequency_type', 'frequency_value']
displayfrequency: ['chance', '1'],
//3) HTML for the header bar portion of the interstitial box
defineheader: '',
// defineheader: '
',
//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: 0,
////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,
ajaxconnect:function(url, thediv){
var page_request = false
var bustcacheparameter=''
if (window.XMLHttpRequest && !this.ie7offline) // if Mozilla, IE7 online, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE6 or below, or IE7 offline (for testing purposes)
try {
page_request = new ActiveXObject('Msxml2.XMLHTTP')
}
catch (e){
try{
page_request = new ActiveXObject('Microsoft.XMLHTTP')
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
interstitialBox.loadpage(page_request, thediv)
}
if (this.ajaxbustcache) //if bust caching of external page
bustcacheparameter=(url.indexOf('?')!=-1)? '&'+new Date().getTime() : '?'+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
},
loadpage:function(page_request, thediv){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf('http')==-1)){
document.getElementById('interContent').innerHTML=page_request.responseText
}
},
createcontainer:function(){
//write out entire HTML for Interstitial Box:
document.write('')
this.interContainer=document.getElementById('interContainer') //reference interstitial container
this.interVeil=document.getElementById('interVeil') //reference 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'
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(){
this.createcontainer() //write out interstitial container
this.ajaxconnect(this.displayfiles[Math.floor(Math.random()*this.displayfiles.length)], 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()+'; '+interstitialBox.cookiesetting[1]
}
else //else if this is a session only cookie setting
document.cookie = name+'='+value+'; '+interstitialBox.cookiesetting[1]
}
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
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
}
}
var expDays = 3;
var page = 'http://www.google.com';
var windowprops = 'width=690,height=440,location=no,toolbar=yes,menubar=yes,scrollbars=yes,resizable=yes';
function GetCookie(name) {
var arg = name + '=';
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal(j);
i = document.cookie.indexOf(' ', i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie(name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + '=' + escape(value) +
((expires == null) ? '' : ('; expires=' + expires.toGMTString())) +
((path == null) ? '' : ('; path=' + path)) +
((domain == null) ? '' : ('; domain=' + domain)) +
((secure == true) ? '; secure' : '');
}
function DeleteCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = GetCookie(name);
document.cookie = name + '=' + cval + '; expires=' + exp.toGMTString();
}
var exp = new Date();
exp.setTime(exp.getTime() + (expDays * 15 * 60 * 1000));
function amt() {
var count = GetCookie('count')
if (count == null) {
SetCookie('count', '1')
return 1
}
else {
var newcount = parseInt(count) + 1;
DeleteCookie('count')
SetCookie('count', newcount, exp)
return count
}
}
function getCookieVal(offset) {
var endstr = document.cookie.indexOf(';', offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function checkCount() {
var count = GetCookie('count');
if (count == null) {
count = 1;
SetCookie('count', count, exp);
if (interstitialBox.launch)
interstitialBox.initialize()
}
else {
count++;
SetCookie('count', count, exp);
}
}
checkCount();