
// from javascriptpatches.js
var undefined;
function isUndefined(propy) {
  return (typeof propy == 'undefined');
}
if (isUndefined(Array.prototype.pop) == true) Array.prototype.pop = function() {
  var lastItem = undefined;
  if ( this.length > 0 ) {
     lastItem = this[this.length - 1];
     this.length--;
  }
  return lastItem;
};
if (isUndefined(Array.prototype.push) == true) Array.prototype.push = function() {
  var currentLength = this.length;
  for (var i = 0; i < arguments.length; i++)  this[currentLength + i] = arguments[i];
  return this.length;
};
function qe(x) { 
  // some js implementations do not support string.replace
  // eg return x.replace("/'/", "\\'"); fails
  // so do it the long way
  var y="";
  for (var i=0,j=x.length;i<j;i++) {
    if (x.charAt(i)=="'") y+="\\'";
    else y+=x;
  }
  return y;
}
function qq(x) {
  return "'"+qe(x)+"'";
}

function getDomain() { // returns the page's domain
  myregexp = new RegExp("(http|https)://([^/]*)/");
  var m=myregexp.exec(location.href);
  if (m==null) return null;
  var first=m[2].indexOf('.');
  if (first==m[2].lastIndexOf('.')) return m[2];
  else return m[2].substring(first+1,m[2].length);
}
function getPagename() { // returns the page's raw name sans domain, path & etc.
  var parsed=location.href.split('?');
  parsed=parsed[0].split('/');
  return parsed.pop();
}
function getParameter(parameterName) { // returns the named parameter from the querystring
  var isat=location.href.indexOf('?');
  if (isat>0) {
    var a=location.href.substr(isat+1).split('&');   
    for (var i=0,j=a.length;i<j;i++) {
      var elements=a[i].split('=');
      if (elements[0]==escape(parameterName)) return unescape(elements[1]);
    }
  }
  return false;
}
function currentTime() { // current time in microseconds
 var timenow=new Date();
 return timenow.getTime();
}
function goURL(aURL) { // redirects to a URL without storing it in the browser's history
  window.location.replace(aURL); 
}
function goURLsoftly(aURL) { // redirects with history (back button)
  location.href=aURL; 
}
function getCookie(name) { // retrieves a cookie value given its name or returns 'null'
  var nameEQ=name+"=";
  var ca = document.cookie.split(';');
  for (var i=0,j=ca.length;i<j;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c=c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}
function setCookie(cookieName, cookieValue, expiresinminutes) { // supply expiresinminutes or get a sessioncookie
  var cv=new Array();
  cv.push(cookieName+"="+escape(cookieValue));
  if (expiresinminutes) {
    if (expiresinminutes!=parseInt(expiresinminutes)) expiresinminutes=0;
    var rightnow=new Date();
    var cookieExpires=new Date();
    cookieExpires.setTime(rightnow.getTime()+60000*parseInt(expiresinminutes));
    cv.push("expires=" + cookieExpires.toGMTString());
  } 
  cv.push("path=/");
  cv.push("domain=."+getDomain());
  document.cookie=cv.join(';');
}
function clearCookie(cookieName) {
  setCookie(cookieName,"");
}

function inArray(needle, haystacks) { //returns true if needle exactly matches an element in haystack array
  for (var i=0,j=haystacks.length;i<j;i++) if (haystacks[i]==needle) return true; return false;
}
function fromArray(a) { //chooses an element from an array at random
  return a[Math.floor(Math.random()*a.length)];
}
function pushUnique(a,e) { // adds element e to array a without duplicates
  if (!inArray(e,a)) a.push(e);
}
function getbrowserplatform() {
  var ua=navigator.userAgent.toLowerCase();
  if (ua.indexOf('mac')>=0) return 'mac';
  if (navigator.platform == 'Win32') return 'win';
}
function getbrowsername() {
  var ua=navigator.userAgent.toLowerCase();
  if (ns.indexOf('opera')>=0) return 'opera';
  if (ns.indexOf('gecko')>=0) return 'gecko';
  if (navigator.appName == 'Microsoft Internet Explorer') return 'ie';
  if (navigator.appName == 'Netscape') return 'ns';
}
function getbrowserversion() {
  return (parseFloat(navigator.appVersion.substr(21)) || parseFloat(navigator.appVersion));
}

function onefrommany(maybemany) {
  try {
    if (typeof(maybemany)=='string') return maybemany;
  } catch(er) {
    return "undefined";
  }
  var params_count=maybemany.length;
  if (params_count==0) {
    alert("an array is empty");
  } else {
    var select_index=Math.floor(Math.random()*params_count);
    if (maybemany[select_index].length==0) {
      alert("one of the strings in the array is empty");
    } else return maybemany[select_index];
  }
  return "undefined";
}


// figure out what we're doing
var uri=location.href;
var sop=uri.indexOf("?");
var action="flash"; // no extension


if (sop>0) {
 action=uri.substr(sop+1);
 if (action.length==0) action="flash"; // allow a ? but anything else would loop so don't
 uri=uri.substr(0,sop); // lop off anything special
}
if (action=="noflash") {
  try { goURL(onefrommany(HTML_Failover_Path)); } catch(er) { }
}
if (action=="nospeed") {
  try { goURL(onefrommany(SLOW_Failover_Path)); } catch(er) { }
  try { goURL(onefrommany(HTML_Failover_Path)); } catch(er) { }
}

// figure out what version of Flash we're using

var flashversion=0;
var ieflashversion=0;
var nsflashversion=0;
try { var minflashversion=Flash_Minimum_Version; } catch(er) { var minflashversion=6; }
var noflashpath='';
try { noflashpath=onefrommany(HTML_Failover_Path); } catch(er) { document.write('<hr>ATTENTION: HTML_Failover_Path is required and undefined. Check your Javascript.<hr>'); } 

if (ieflashversion==0) {
  var vbscontents=''; 
  vbscontents+='<scr'+'ipt lang'+'uage="VBScript">'+"\n";
  vbscontents+='ON ERROR RESUME NEXT'+"\n";
  vbscontents+='Flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6")))'+"\n";
  vbscontents+='IF Flash6Installed = "True" THEN ieflashversion = 6'+"\n";
  vbscontents+='Flash7Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7")))'+"\n";
  vbscontents+='IF Flash7Installed = "True" THEN ieflashversion = 7'+"\n";
  vbscontents+='Flash8Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.8")))'+"\n";
  vbscontents+='IF Flash8Installed = "True" THEN ieflashversion = 8'+"\n";
  vbscontents+='ON ERROR GOTO 0'+"\n";
  vbscontents+='</sc'+'ript>'+"\n";
  document.write(vbscontents);
}
if (ieflashversion==0) { // i.e. no ieflash
  if (navigator.mimeTypes&&navigator.mimeTypes['application/x-shockwave-flash']&&navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) nsflashversion=navigator.plugins["Shockwave Flash"].description.substring(16,19); // returns version
  if (nsflashversion<minflashversion) nsflashversion=0;
  else flashversion=nsflashversion;
}
if (ieflashversion<minflashversion) ieflashversion=0;
else flashversion=ieflashversion;

// at this point we know what version (flashversion) and whether it is ie or ns (xxflashversion)

function placeFlash(flashpath, flash8path) {
  var flashcontents='';
  if ((typeof(flash8path)=='string')&&(flashversion>=8)) if (flash8path.length>0) flashpath=flash8path;
  try { 
    if (Flash_Skyhighspeed.length>0) { 
      var allcookies=document.cookie.toLowerCase();
      if (allcookies.indexOf('skyhighspeed')>0) flashpath=Flash_Skyhighspeed;
    }
  } catch(y) {}
  if (ieflashversion>=minflashversion) { // INTERNET EXPLORER  
    flashcontents+=('<OBJECT ');
    flashcontents+=(' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"');
    flashcontents+=(' codebase="http://active.macromedia.com/flash2/cabs/swflash.cab#version=4,0,0,0"');
    flashcontents+=(' NAME="mainflash"');
    flashcontents+=(' ID="mainflash"');
    flashcontents+=(' WIDTH="'+ad_width+'"');
    flashcontents+=(' HEIGHT="'+ad_height+'"');
    flashcontents+=('>');
    flashcontents+=('<PARAM NAME="movie" VALUE="'+flashpath+'">');
    flashcontents+=('<PARAM NAME="quality" VALUE="HIGH">');
    flashcontents+=('<PARAM NAME="wmode" VALUE="opaque">');
    flashcontents+=('<PARAM NAME="menu" VALUE="false">');
    flashcontents+=('</OBJECT>');
  } else if (nsflashversion>=minflashversion) {
    flashcontents+=('<EMBED ');
    flashcontents+=(' SRC="'+flashpath+'"');
    flashcontents+=(' NAME="mainflash"');
    flashcontents+=(' ID="mainflash"');
    flashcontents+=(' MENU="false"');
    flashcontents+=(' WIDTH="'+ad_width+'"');
    flashcontents+=(' HEIGHT="'+ad_height+'"');
    flashcontents+=(' BORDER="0"');
    flashcontents+=(' QUALITY="HIGH"');
    flashcontents+=(' TYPE="application/x-shockwave-flash"');
    flashcontents+=(' PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"');
    flashcontents+=('></EMBED>');
  } else {
    goURL(noflashpath); // no Flash
  }
  document.getElementById('flashcontainer').innerHTML=flashcontents;
}

// put the Flash on the page
document.write('<div style="width:'+ad_width+'px;height:'+ad_height+'px;" name="flashcontainer" id="flashcontainer"></div>');

// make sure things that are required are in fact defined
if (!window.Flash_File_Path) document.write('<hr>ATTENTION: Flash_File_Path is required and undefined. Check your Javascript.<hr>');
var flashfilepath=onefrommany(Flash_File_Path);
var flash8path=flashfilepath;
try { flash8path=onefrommany(Flash_8_File_Path); } catch(er) { }
if (flash8path.length==0) flash8path=flashfilepath;

function umdolater() {
  placeFlash(flashfilepath, flash8path);
}
setTimeout("umdolater()",0300);

function um_sniffloaded() { // deprecated but not forgotten
}
function um_flashloaded() { // deprecated but not forgotten
}


