var xhttp=false;
var isIE=false;

//open menu with given ID and co-ordinates
function openMenu(menuID,menuX,menuY) {
  //if the menu code is ready
  if (um.ready) {
    //activate menu
    um.activateMenu(menuID, menuX + 'px', menuY + 'px');
  }
}
		
//close menu with given ID
function closeMenu(menuID) {
  //if the menu code is ready
  if (um.ready) {
    //deactive menu
    um.deactivateMenu(menuID);
  }
}

function displayWindow(theURL,winName,width,height,features) { //v3.1
// Made by Eddie Traversa modified from Macromedia Code
// http://nirvana.media3.net/
    var window_width = width;
    var window_height = height;
    var newfeatures = features;
    var window_top = (screen.height-window_height)/2;
    var window_left = (screen.width-window_width)/2;
    newWindow=window.open(''+ theURL + '',''+ winName + '','width=' + window_width + ',height=' + window_height + ',top=' + window_top + ',left=' + window_left + ',' + newfeatures + '');
    newWindow.focus();
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

function newImage(arg) {
  if (document.images) {
    rslt = new Image();
    rslt.src = arg;
    return rslt;
  }
}

function changeImages() {
  if (document.images && (preloadFlag == true)) {
    for (var i=0; i<changeImages.arguments.length; i+=2) {
      document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
    }
  }
}

function preloadImages() {
  if (document.images) {
    WPPI_NavBar_01_over = newImage("/images/WPPI-NavBar3_01-over.gif");
    WPPI_NavBar_01_down = newImage("/images/WPPI-NavBar3_01-down.gif");
    WPPI_NavBar_02_over = newImage("/images/WPPI-NavBar3_02-over.gif");
    WPPI_NavBar_02_down = newImage("/images/WPPI-NavBar3_02-down.gif");
    WPPI_NavBar_03_over = newImage("/images/WPPI-NavBar3_03-over.gif");
    WPPI_NavBar_03_down = newImage("/images/WPPI-NavBar3_03-down.gif");
    WPPI_NavBar_04_over = newImage("/images/WPPI-NavBar3_04-over.gif");
    WPPI_NavBar_04_down = newImage("/images/WPPI-NavBar3_04-down.gif");
    WPPI_NavBar_05_over = newImage("/images/WPPI-NavBar3_05-over.gif");
    WPPI_NavBar_05_down = newImage("/images/WPPI-NavBar3_05-down.gif");
    WPPI_NavBar_06_over = newImage("/images/WPPI-NavBar3_06-over.gif");
    WPPI_NavBar_06_down = newImage("/images/WPPI-NavBar3_06-down.gif");
    WPPI_NavBar_07_over = newImage("/images/WPPI-NavBar3_07-over.gif");
    WPPI_NavBar_07_down = newImage("/images/WPPI-NavBar3_07-down.gif");
    WPPI_NavBar_08_over = newImage("/images/WPPI-NavBar3_08-over.gif");
    WPPI_NavBar_08_down = newImage("/images/WPPI-NavBar3_08-down.gif");
    preloadFlag = true;
  }
}

function printWin(URL) {
    var window_width = 700;
    var window_height = 500;
    var newfeatures= "toolbar=0,menubar=0,status=1,scrollbars=1,resizable=1";
    var window_top = (screen.height-window_height)/2;
    var window_left = (screen.width-window_width)/2;
    newWindow=window.open(URL,'sub','width=' + window_width + ',height=' + window_height + ',top=' + window_top + ',left=' + window_left + ',features=' + newfeatures + '');
    newWindow.focus();
}

function mailTo(sendName,sendEmail) {
  var theURL = "/mailTo.taf?sendName=" + sendName + "&sendEmail=" + sendEmail;
  var winName = "mailTo";
  var window_width = 625;
  var window_height = 400;
  var newfeatures= "status=yes,scrollbars=yes,resizable=yes";
  var window_top = (screen.height-window_height)/2;
  var window_left = (screen.width-window_width)/2;
  newWindow=window.open(''+ theURL + '',''+ winName + '','width=' + window_width + ',height=' + window_height + ',top=' + window_top + ',left=' + window_left + ',features=' + newfeatures + '');
  newWindow.focus();
}

function menuctl(menu) {//expand-contract menus
  var d,i;
  for (i=1;i<=12;i++) {
    if (d=document.getElementById(menu+i)) {
      if (d.style.display == 'none') {
	d.style.display = 'block';
      }
      else {
	d.style.display = 'none';
      }
    }
  }
}

function checkForm() {
  flds = new Array('comp','year','category');
  flddesc = new Array('Competition Name','Competition Year','Competition Category');
  for (var i=0;i<flds.length;i++) {
    if (winner.elements[flds[i]].value == '') {
      alert('The '+flddesc[i]+' is required.');
      winner.elements[flds[i]].focus();
      return false;
    }
  }
  return true;
} 

function winnerOpts(cat,year,domain,compchanged) {
  var comp = document.winner.comp.value;
  var selyr = (compchanged==1)?'':document.winner.year.value;

  if (document.all) isIE=true;

  xhttp = (isIE ? new ActiveXObject("Msxml2.XMLHTTP") : new XMLHttpRequest() );
  // set the event handler
  xhttp.onreadystatechange = WinnerStateChange;
  // prep the call, http method=POST, true=asynchronous call
  var optArgs = '_function=getopts&comp='+comp+'&selyr='+selyr+'&curcat='+cat+'&curyear='+year;
  xhttp.open('POST', 'http://'+domain+'/competition/util.taf', true);
  // send the call with args
  xhttp.send(optArgs);
} 

function WinnerStateChange() {
        
  var i, j, x, nodes, yrNode, elem, opt, sel, curcat='', curyear='', curcomp='', idx=-1;
  if (xhttp.readyState==4) { // state=complete

    // alert(xhttp.responseText);
    // document.write(xhttp.responseText);
    // parse the xml
    x = xhttp.responseXML.getElementsByTagName('Competitions');
    elem = x[0].getElementsByTagName('CurComp')[0];
    if (elem.firstChild != undefined)
      curcomp = elem.firstChild.nodeValue;
    elem = x[0].getElementsByTagName('CurCat')[0];
    if (elem.firstChild != undefined)
      curcat = elem.firstChild.nodeValue;
    elem = x[0].getElementsByTagName('CurYear')[0];
    if (elem.firstChild != undefined)
      curyear = elem.firstChild.nodeValue;
    document.winner.year.options.length=0; // delete existing years
    nodes = x[0].getElementsByTagName('Comp');
    for (i=0;i<nodes.length;i++) {
      if (nodes[i].getAttribute('name') == curcomp) {
        nodes = nodes[i].getElementsByTagName('Year');
        for (j=0;j<nodes.length;j++) {
	  opt = nodes[j].getAttribute('yr');
	  if (curyear == '') curyear = opt;
	  document.winner.year.options[j] = new Option(opt,opt,false,false);
	  if (opt == curyear) {
	    idx = j;
	    yrNode = nodes[j];
	  }
	}
	break;
      }
    }

    if (idx >= 0) document.winner.year.options.selectedIndex = idx;
    document.winner.category.options.length=0; // delete existing categories
    idx = -1;
    nodes = yrNode.getElementsByTagName('Category'); // for the selected year
    for (i=0;i<nodes.length;i++) {
      opt = nodes[i].getAttribute('code');
      sel = nodes[i].firstChild.nodeValue;
      document.winner.category.options[i] = new Option(sel,opt,false,false);
      if (opt == curcat) idx = i;
    }

    if (idx >=0) document.winner.category.options.selectedIndex = idx;
  }
}

var isNN = document.layers ? true : false;
var isIE = document.all ? true : false;

function scrollBarPsn() {
  var y;
  if (isIE) {
    if (document.documentElement) y = document.documentElement.scrollTop // IE6 +4.01
    else if (document.body) y = document.body.scrollTop; // IE5 or DTD 3.2
  }
  else
    y = window.pageYOffset;
  return (y);
}

function winMiddle() {
  var x;
  if (isIE) {
    if (document.documentElement) x = document.documentElement.clientWidth // IE6 +4.01
    else if (document.body) x = document.body.clientWidth; // IE5 or DTD 3.2
  }
  else
    x = window.innerWidth;
  return (x);
}

function openDiv(id) {
  for (var i=0;i<id.length;i++) {
    if (!isNaN(id.substring(i,i+1))) break;
  }
  var baseDiv = id.substring(0,i);
  closeDiv(baseDiv);
  //e = e || window.event;
  //var posx = e.pageX ? e.pageX : e.clientX ? e.clientX+document.body.scrollLeft : 0;
  var e = document.getElementById(baseDiv);
  var e2 = document.getElementById(id);
  e.style.top = (scrollBarPsn()) + 'px';
  e.innerHTML = e2.innerHTML;
  e.style.visibility = 'visible';
}

function openDiv2(id,e) {
  for (var i=0;i<id.length;i++) {
    if (!isNaN(id.substring(i,i+1))) break;
  }
  var baseDiv = id.substring(0,i);
  closeDiv(baseDiv);
  e = e || window.event;
  var posx = e.pageX ? e.pageX : e.clientX ? e.clientX+document.body.scrollLeft : 0;
  e = document.getElementById(id);
  // e.style.left = (posx < middle ? e.style.left = middle+40 : e.style.left = middle-400) + 'px';
  e.style.left = (winMiddle())/2 - 180;
  e.style.top = (scrollBarPsn() + 175) + 'px';
  e.style.visibility = 'visible';
}

function closeDiv(id) { // hide all DIVs
  var l = id.length;
  var divs = document.getElementsByTagName("div");

  for (var i=0; i<divs.length; i++)
    if (divs[i].id.substring(0,l) == id)
      divs[i].style.visibility = 'hidden';
}

function evaluateXPath(aNode, aExpr) {
  var xpe = new XPathEvaluator();
  var nsResolver = xpe.createNSResolver(aNode.ownerDocument == null ?
    aNode.documentElement : aNode.ownerDocument.documentElement);
  var result = xpe.evaluate(aExpr, aNode, nsResolver, 0, null);
  var found = [];
  while (res = result.iterateNext())
    found.push(res);
  return found;
}

function onRenew(domain) {
  var memberNo = document.MemberReg.membernum.value;
  var fname = document.MemberReg.rfn.value;
  var lname = document.MemberReg.rln.value;

  document.MemberReg.renew.value = 'N';
  document.MemberReg.Submit.disabled = false;
  if (memberNo.length>0 && fname.length>0 && lname.length>0) {
    if (document.all) isIE=true;

    xhttp = (isIE ? new ActiveXObject("Msxml2.XMLHTTP") : new XMLHttpRequest() );
    // set the event handler
    xhttp.onreadystatechange = RenewStateChange;
    // prep the call, http method=POST, true=asynchronous call
    var renewArgs = '_function=chkmem&memno='+memberNo+'&fname='+fname+'&lname='+lname;
    domain = (domain == 'www.wppionline.com' ? 'https://'+domain : 'http://'+domain);
    xhttp.open('POST', domain+'/membership/index.taf', true);
    // send the call with args
    xhttp.send(renewArgs);
  }
  else {
    alert('To renew, enter your first name, last name and WPPI membership number,\nthen click Look Me Up');
    document.MemberReg.rfn.focus();
  }
}

function RenewStateChange() {
        
  var i, j, x, c, nodes, val, renewSpan, nName, elem;
  if (xhttp.readyState==4) { // state=complete

    //alert(xhttp.responseText);

    // clear the info fields
    for (j=0;j<2;j++) {
      nodes = document.getElementsByTagName(j==0 ? 'input' : 'select');
      for (i=0;i<nodes.length;i++) {
	if (nodes[i].getAttribute('name') == nodes[i].getAttribute('id') && nodes[i].getAttribute('type') == 'text')
	  document.MemberReg.elements[nodes[i].getAttribute('name')].value = '';
      }
    }

    // parse and display the xml
    x = xhttp.responseXML.getElementsByTagName('RenewResponse');
    nodes = x[0].getElementsByTagName('Found')[0];
    var found = nodes.firstChild.nodeValue;
    renewSpan = document.getElementById('renewSpan');
    renewSpan.className = 'body';
    if (found == 0) {
      var iHTML = '<font color="#FFFF00">The WPPI Membership Number you provided is not current.';
      iHTML = iHTML + ' Please contact WPPI<br>at +1-310-846-4940, Monday to Friday 8:00 am to 4:00 pm PT';
      iHTML = iHTML + ' for membership assistance.</font>';  
      renewSpan.innerHTML = iHTML;
      document.MemberReg.renew.value = 'N';
    }
    else {
      renewSpan.innerHTML = '';

      //if (isIE) { // someday it would be nice to have a cross-platform XPath solution
        //var fval = xhttp.responseXML.selectSingleNode("/RenewResponse/Member/fname/text()").data;
      //}
      //else { //Firefox
        //var fval = evaluateXPath(xhttp.responseXML, "/RenewResponse/Member/fname/text()")[0].data;
      //}
      // get input field names
      nodes = x[0].getElementsByTagName('memStatus')[0];  //on hold or something?
      if (nodes.firstChild != undefined) {
	var iHTML = '<font color="#FFFF00">The WPPI Membership Number you provided is not eligible';
	iHTML = iHTML + ' for renewal at this time. Please contact WPPI at +1-310-846-4940, Monday';
	iHTML = iHTML + ' to Friday 8:00 am to 4:00 pm PT for membership assistance.</font>';  
	renewSpan.innerHTML = iHTML;
	document.MemberReg.renew.value = 'N';
	document.MemberReg.Submit.disabled = true;
      }
      else {
	document.MemberReg.renew.value = 'Y';
	nodes = x[0].getElementsByTagName("Member")[0].childNodes;
	for (i=0;i<nodes.length;i++) {
	  nName = nodes[i].nodeName;
	  c = nodes[i].childNodes.length;
	  if (nodes[i].nodeType==1 && c>0) {
            c = (c>1 ? 1 : 0);
	    val = nodes[i].childNodes[c].nodeValue;
	    if (nName=='phone' || nName=='fax' || nName=='homephone' || nName=='cellphone')
	      if (document.MemberReg.country.value == 'U.S.A.' || document.MemberReg.country.value == 'Canada')
	        val = val.substring(0,3)+'-'+val.substring(3,val.length);
	    document.MemberReg.elements[nName.toLowerCase()].value = val;
	  }
	}
      }
    }
  }
}

function ckMember(form) {
  var memberNo = form.memberNum.value;
  var fname = form.fname.value;
  var lname = form.lname.value;
  var ckmemSpan = document.getElementById('ckmemSpan');
  ckmemSpan.className = 'body';
  ckmemSpan.innerHTML = '';

  //form.submit.disabled = false;
  if (memberNo.length>0 && fname.length>0 && lname.length>0) {
    if (memberNo.length==4 && !isNaN(memberNo)) {
      var iHTML = '<font color="#FF0000">Please enter your WPPI MEMBERSHIP NUMBER. This competition does not use';
      iHTML += ' the 4 digit logins from prior competitions. Please try again, or contact WPPI at';
      iHTML += ' +1-310-846-4940, Monday to Friday 8:00 am to 4:00 pm PT for membership assistance.<br><br></font>';  
      ckmemSpan.innerHTML = iHTML;
    }
    else {
      if (document.all) isIE=true;

      xhttp = (isIE ? new ActiveXObject("Msxml2.XMLHTTP") : new XMLHttpRequest() );
      // set the event handler
      xhttp.onreadystatechange = ckMemberStateChange;
      // prep the call, http method=POST, true=asynchronous call
      var renewArgs = '_function=chkmem&memno='+memberNo+'&fname='+fname+'&lname='+lname;
      xhttp.open('POST', '/competition/checkMember.taf', true);
      // send the call with args
      xhttp.send(renewArgs);
    }
  }
  else {
    var iHTML = '<font color="#FF0000">Your name and WPPI membership number are required to continue.';
    iHTML = iHTML + ' Please try again, or contact WPPI at +1-310-846-4940, Monday to Friday 8:00 am to 4:00 pm PT';
    iHTML = iHTML + ' for membership assistance.<br><br></font>';  
    ckmemSpan.innerHTML = iHTML;
  }
}

function ckMemberStateChange() {
        
  var i, j, c, x, nodes, val, ckmemSpan, nName, elem, iHTML, fn, ln, mn, ms;
  if (xhttp.readyState==4) { // state=complete

    // alert(xhttp.responseText);

    // parse and display the xml
    x = xhttp.responseXML.getElementsByTagName('Response');
    nodes = x[0].getElementsByTagName('Found')[0];
    var found = nodes.firstChild.nodeValue;
    ckmemSpan = document.getElementById('ckmemSpan');
    ckmemSpan.className = 'body';
    if (found == 0) {
      var iHTML = '<font color="#FF0000">The WPPI Membership Number you provided is not valid.';
      iHTML = iHTML + ' Please contact WPPI<br>at +1-310-846-4940, Monday to Friday 8:00 am to 4:00 pm PT';
      iHTML = iHTML + ' for membership assistance.</font>';  
      ckmemSpan.innerHTML = iHTML;
      // regphotog.submit.disabled = true;
    }
    else {
      nodes = x[0].getElementsByTagName('Member')[0].childNodes;
      for (i=0;i<nodes.length;i++) {
	nName = nodes[i].nodeName;
        // if IE, one child node.  if FF, 3 child nodes, value in [1]. nodeType 1 = form fld
	c = nodes[i].childNodes.length;
	if (nodes[i].nodeType==1 && c>0) {
          c = (c>1 ? 1 : 0);
	  val = nodes[i].childNodes[c].nodeValue;
	  if (nName == 'fname') fn = val;
	  if (nName == 'lname') ln = val;
	  if (nName == 'memberNum') mn = val;
	  if (nName == 'memStatus') ms = val;
	}
      }
      // alert('fn='+fn+', ln='+ln+', mn='+mn+', ms='+ms);
      if (ms != 'A') {
	if (ms == 'E') {
          var domain = 'https://www.wppionline.com';
	  iHTML = '<font color="#FF0000">The WPPI Membership Number you provided has expired.';
	  iHTML += ' Please <a href="'+domain+'/membership/index.taf?_function=apply&fn='+fn+'&ln='+ln+'&mn='+mn+'">renew your WPPI membership here</a>';
	  iHTML += ' or contact WPPI at +1-310-846-4940, Monday';
	  iHTML += ' to Friday 8:00 am to 4:00 pm PT for membership assistance.</font>';  
	  ckmemSpan.innerHTML = iHTML;
	}
	else {
	  iHTML = '<font color="#FF0000">The WPPI Membership Number you provided is not current.';
	  iHTML += ' Please contact WPPI at<br>+1-310-846-4940, Monday';
	  iHTML += ' to Friday 8:00 am to 4:00 pm PT for membership assistance.</font>';  
	  ckmemSpan.innerHTML = iHTML;
	}
      }
      else {
	document.regphotog.fname.value = fn;
	document.regphotog.lname.value = ln;
	document.regphotog.memberNum.value = mn;
        document.regphotog.isMember.value = 1;
        document.regphotog.submit();

//	nodes = x[0].getElementsByTagName("Member")[0].childNodes;
//	for (i=0;i<nodes.length;i++) {
//	  nName = nodes[i].nodeName;
//	  if (document.getElementById(nName.toLowerCase())) {
//	    elem = x[0].getElementsByTagName(nName)[0];
//	    if (elem.firstChild != undefined) {
//	      val = elem.firstChild.nodeValue;
//	      if (nName=='phone')
//		if (regphotog.country.value == 'U.S.A.' || regphotog.country.value == 'Canada')
//		  val = val.substring(0,3)+'-'+val.substring(3,val.length);
//	      regphotog.elements[nName].value = val;
//	    }
//	  }
//	}
      }
    }
  }
}
// Scrolling Ad Javascript
// copyright 3rd September 2004, by Stephen Chapman
// permission to use this Javascript on your web page is granted
// provided that all of the code in this script (including these
// comments) is used without any alteration

function findDOM(objectId, wS) {
  if (stdDOM) return wS ? document.getElementById(objectId).style : document.getElementById(objectId);
  if (ieDOM) return wS ? document.all[objectId].style : document.all[objectId];
  if (nsDOM) return document.layers[objectId];
}

function pageWidth() { 
  return window.innerWidth != null? window.innerWidth: document.body.clientWidth != null? document.body.clientWidth:null;
}
function layerWidth(objectID) {
  var obj = findDOM(objectID,0); if (obj.offsetWidth) return obj.offsetWidth; if (obj.clip) return obj.clip.width; return 220;
}

function moveLayer(objectID) {
  if (aDOM) {objStyle = findDOM(objectID,1); var rightBoundary = pageWidth() - layerWidth(objectID); rightBoundary -= rightBoundary % 2;
    slideLayer(0,rightBoundary,rightBoundary);
  }
}

function slideLayer(currentPos, finalPos, rightBoundary) {
  if (currentPos != finalPos) {
    if (currentPos > finalPos) currentPos -= 2; else currentPos += 2;
    objStyle.left = currentPos+'px';
  }
  else {
    countdown--;
    if (right) { finalPos = 0; currentPos = rightBoundary; right = 0; }
    else { finalPos = rightBoundary; currentPos = 0; right = 1; }
  }
  if (countdown > 0)
    setTimeout('slideLayer('+currentPos+','+finalPos+','+rightBoundary+')',slideDelay);
  if (countdown == 0)
    objStyle.visibility = 'hidden';
  return;
}

//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}
