// ------------------------------------------------------------------------------------------------ // SPAC.JS (Generic Client) - Copyright (c) 2000-2001 Engage, Inc. All Rights Reserved. // // $Id: spac.js,v 1.1 2001/07/12 03:00:28 mato Exp $ // From: spac.js,v 1.11 2001/02/06 09:59:28 srehman Exp // ------------------------------------------------------------------------------------------------ var spac_adServer = "http://inl.adbureau.net"; var spac_autoPageID = false; var spac_pageID = spac_getUniqueValue(); // outputs adcall HTML tags function spac_writeAd( aTargetParams ) { document.write( spac_getAdHTML( aTargetParams ) ); } // returns adcall HTML tags as a String function spac_getAdHTML( aTargetParams ) { var targetParams, adServer, method, frameWidth, frameHeight, frameTarget, i; targetParams = aTargetParams.toUpperCase(); // make sure we have a leading slash if ( targetParams.charAt( 0 ) != "/" ) { targetParams = "/" + targetParams; } // determine adserver URL to use if ( ( adServer = ( ( spac_getParamValue( "ADSERVER", targetParams ) ) ) ) == "" ) { adServer = spac_adServer; } // determine the method to use to make this adcall if ( ( method = spac_getParamValue( "METHOD", targetParams ) ) == "" ) { method = "AUTO"; } if ( method == "AUTO" ) { method = spac_getMethod(); } // determine frame target to use if ( ( frameTarget = spac_getParamValue( "FRAMETARGET", targetParams ) ) == "" ) { frameTarget = "_new"; } else { frameTarget = frameTarget.toLowerCase(); } // default frameSize is 468x60 var frameWidth = "468"; var frameHeight = "60"; // determine frameSize to use. if frameSize not specified directly, use the value specified // in the AAMSZ= tag if ( ( frameSize = ( ( spac_getParamValue( "FRAMESIZE", targetParams ) ) ) ) == "" ) { frameSize = "AUTO"; } if ( frameSize == "AUTO" ) { frameSize = spac_getParamValue( "AAMSZ", targetParams ); } // extract the width and height components from frameSize string if ( frameSize != "" ) { var i = frameSize.indexOf( "X" ); if ( i >= 0 ) { frameWidth = frameSize.substring( 0, i ); frameHeight = frameSize.substring( i + 1 ); } } // compute random value for cache busting this call var uniqueValue = spac_getUniqueValue(); // auto include /PAGEID tag if necessary if ( true == spac_autoPageID ) { var autoPageID = spac_getParamValue( "AUTOPAGEID", targetParams ); if ( "" == autoPageID || "TRUE" == autoPageID ) { targetParams = targetParams + "/PAGEID=" + spac_pageID; } } // add /ACC_RANDOM tag for cache busting this adcall targetParams = targetParams + "/ACC_RANDOM=" + uniqueValue; // build appropriate adcall URL based on the method required if ( method == "IFRAME" || method == "JSCRIPT" ) { if ( method == "IFRAME" ) { return ( "" ); } else if ( method == "JSCRIPT" ) { return ( "" ); } } else if ( method == "STREAM" ) { return ( "" ); } else if ( method == "POPUP" ) { var windowName = aTargetParams; len = windowName.length; for ( i = 0; i < len; i++ ) { ch = windowName.charAt( i ) if ( ch == "/" || ch == "=" || ch == "." || ch == "_" || ch == "-" ) { windowName = windowName.substring( 0, i ) + "_" + windowName.substring( i + 1 ); } } var features = "width=" + frameWidth + ",height=" + frameHeight; var winPos; if ( ( winPos = ( ( spac_getParamValue( "POPUPPOS", targetParams ) ) ) ) != "" ) { i = winPos.indexOf( "X" ); if ( i >= 0 ) { j = winPos.indexOf( "Y", i + 1 ); if ( j < 0 ) { j = winPos.length; } features += ",left=" + winPos.substring( i + 1, j ); } i = winPos.indexOf( "Y" ); if ( i >= 0 ) { j = winPos.indexOf( "X", i + 1 ); if ( j < 0 ) { j = winPos.length; } features += ",top=" + winPos.substring( i + 1, j ); } } var adwin = window.open( adServer + "/hserver" + targetParams + "?", windowName, features ); adwin.focus(); return ( "" ); } else { if ( frameTarget != "" ) { frameTarget = " target=\"" + frameTarget + "\""; } return ( "" + "" ); } } // returns the best method that can be used to display banner ads function spac_getMethod() { var agt = navigator.userAgent; var ver = parseInt( navigator.appVersion ); var isMoz = ( ( ( agt.indexOf( "Mozilla" ) != -1 ) && ( agt.indexOf( "spoofer" ) == -1 ) && ( agt.indexOf( "compatible" ) == -1 ) && ( agt.indexOf( "opera" ) == -1 ) && ( agt.indexOf( "webtv" ) == -1 ) ) ) var isIE3Up = ( ( agt.indexOf( "MSIE" ) != -1 ) && ( ver >= 3 ) ); if ( isIE3Up || ( isMoz && ver >= 5 ) ) { return ( "IFRAME" ); } else if ( isMoz && ver >= 3 ) { return ( "JSCRIPT" ); } else { return ( "IMG" ); } } // parses pathinfo string and returns the value of a named parameter function spac_getParamValue( aName, aParam ) { var retVal = ""; var p = aParam.indexOf( aName ); if ( p != -1 ) { p = aParam.indexOf( "=", p ); if ( p != -1 ) { p++; while ( p < aParam.length && aParam.charAt( p ) == " " ) { p++; } var p2 = aParam.indexOf( ";", p ); if ( p2 != -1 ) { retVal = ( aParam.substring( p, p2 ) ); } else { p2 = aParam.indexOf( "/", p ); if ( p2 != -1 ) { retVal = ( aParam.substring( p, p2 ) ); } else { retVal = ( aParam.substring( p , aParam.length ) ); } } p = retVal.length - 1; while ( p > 0 && retVal.charAt( p ) == " " ) { p--; } if ( p > 0 ) { retVal = retVal.substring( 0, p + 1 ); } } } return ( retVal ); } // computes and returns a random number function spac_getUniqueValue() { return ( Math.floor( Math.random() * 10000000000 ) ); } // returns current version info function spac_getVersion() { return ( "$Id: spac.js,v 1.1 2001/07/12 03:00:28 mato Exp $" ); }