//** Ajax Tabs Content script v2.0- � Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
//** Updated Oct 21st, 07 to version 2.0. Contains numerous improvements
//** Updated Feb 18th, 08 to version 2.1: Adds a public "tabinstance.cycleit(dir)" method to cycle forward or backward between tabs dynamically. Only .js file changed from v2.0.
//** Updated April 8th, 08 to version 2.2:
//   -Adds support for expanding a tab using a URL parameter (ie: http://mysite.com/tabcontent.htm?tabinterfaceid=0) 
//   -Modified Ajax routine so testing the script out locally in IE7 now works 

var ddajaxtabssettings={};
ddajaxtabssettings.bustcachevar=1 ; //bust potential caching of external pages after initial request? (1=yes, 0=no)
ddajaxtabssettings.loadstatustext="<img src='images/loading.gif' /> Requesting content..."; 

function changeDropDown(selectedTab) {
    if (selectedTab == null || selectedTab == "" || selectedTab == "lectures") {
        selectedTab = "lectures";
        $("#location").css("display", "block");
        $("#courseList").css("display", "none");
    }
    else if (selectedTab == "courses") {
        $("#courseList").css("display", "block");
        $("#location").css("display", "none");
    }
    else if (selectedTab == "events") {
        $("#location").css("display", "none");
        $("#courseList").css("display", "none");
    }
}


////NO NEED TO EDIT BELOW////////////////////////

function ddajaxtabs(tabinterfaceid, contentdivid){
	this.tabinterfaceid=tabinterfaceid; //ID of Tab Menu main container
	this.tabs=document.getElementById(tabinterfaceid).getElementsByTagName("a"); //Get all tab links within container
	this.enabletabpersistence=true;
	this.hottabspositions=[]; //Array to store position of tabs that have a "rel" attr defined, relative to all tab links, within container
	this.currentTabIndex=0; //Index of currently selected hot tab (tab with sub content) within hottabspositions[] array
	this.contentdivid=contentdivid;
	this.defaultHTML="";
	this.defaultIframe='<iframe src="about:blank" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" class="tabcontentiframe" style="width:236px; height: 440px"></iframe>';
	this.defaultIframe=this.defaultIframe.replace(/<iframe/i, '<iframe name="'+"_ddajaxtabsiframe-"+contentdivid+'" ');
    this.revcontentids=[]; //Array to store ids of arbitrary contents to expand/contact as well ("rev" attr values)
	this.selectedClassTarget="link"; //keyword to indicate which target element to assign "selected" CSS class ("linkparent" or "link")
}

ddajaxtabs.connect=function(pageurl, tabinstance){
	var page_request = false;
	var bustcacheparameter="";
	if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
		try {
		page_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e){
			try{
			page_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){}
		}
	}
	else if (window.XMLHttpRequest) // if Mozilla, Safari etc
		page_request = new XMLHttpRequest();
	else
		return false;
	var ajaxfriendlyurl=pageurl.replace(/^http:\/\/[^\/]+\//i, "http://"+window.location.hostname+"/") ;
	page_request.onreadystatechange=function(){ddajaxtabs.loadpage(page_request, pageurl, tabinstance);};
	if (ddajaxtabssettings.bustcachevar) //if bust caching of external page
		bustcacheparameter=(ajaxfriendlyurl.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime();
	page_request.open('GET', ajaxfriendlyurl, true);
	page_request.send(null);
};

ddajaxtabs.loadpage=function(page_request, pageurl, tabinstance){
	var divId=tabinstance.contentdivid;
	
	document.getElementById(divId).innerHTML=ddajaxtabssettings.loadstatustext; //Display "fetching page message"
	
	if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
		document.getElementById(divId).innerHTML=page_request.responseText;
		ddajaxtabs.ajaxpageloadaction(pageurl, tabinstance);
	}
};

ddajaxtabs.ajaxpageloadaction=function(pageurl, tabinstance){
	tabinstance.onajaxpageload(pageurl); //call user customized onajaxpageload() function when an ajax page is fetched/ loaded
};

ddajaxtabs.getCookie=function(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 "";
};

ddajaxtabs.setCookie=function(name, value){
	document.cookie = name+"="+value+";path=/"; //cookie value is domain wide (path=/)
};

ddajaxtabs.prototype={

	expandit:function(tabid_or_position){ //PUBLIC function to select a tab either by its ID or position(int) within its peers
		this.cancelautorun(); //stop auto cycling of tabs (if running)
		var tabref="";
		try{
			if (typeof tabid_or_position=="string" && document.getElementById(tabid_or_position).getAttribute("rel")) //if specified tab contains "rel" attr
				tabref=document.getElementById(tabid_or_position);
			else if (parseInt(tabid_or_position)!=NaN && this.tabs[tabid_or_position].getAttribute("rel")) //if specified tab contains "rel" attr
				tabref=this.tabs[tabid_or_position];
				
		}
		catch(err){alert("Invalid Tab ID or position entered!");}
		if (tabref!="") //if a valid tab is found based on function parameter
			this.expandtab(tabref); //expand this tab
	},

	cycleit:function(dir, autorun){ //PUBLIC function to move foward or backwards through each hot tab (tabinstance.cycleit('foward/back') )
		if (dir=="next"){
			var currentTabIndex=(this.currentTabIndex<this.hottabspositions.length-1)? this.currentTabIndex+1 : 0;
		}
		else if (dir=="prev"){
			var currentTabIndex=(this.currentTabIndex>0)? this.currentTabIndex-1 : this.hottabspositions.length-1;
		}
		if (typeof autorun=="undefined") //if cycleit() is being called by user, versus autorun() function
			this.cancelautorun(); //stop auto cycling of tabs (if running)
		this.expandtab(this.tabs[this.hottabspositions[currentTabIndex]]);
	},

	setpersist:function(bool){ //PUBLIC function to toggle persistence feature
			this.enabletabpersistence=bool;
	},

	loadajaxpage:function(pageurl){ //PUBLIC function to fetch a page via Ajax and display it within the Tab Content instance's container
		ddajaxtabs.connect(pageurl, this);
		
	},

	loadiframepage:function(pageurl){ //PUBLIC function to fetch a page and load it into the IFRAME of the Tab Content instance's container
		this.iframedisplay(pageurl, this.contentdivid);
		
	},

	setselectedClassTarget:function(objstr){ //PUBLIC function to set which target element to assign "selected" CSS class ("linkparent" or "link")
		this.selectedClassTarget=objstr || "link";
		
	},

	getselectedClassTarget:function(tabref){ //Returns target element to assign "selected" CSS class to
		return (this.selectedClassTarget==("linkparent".toLowerCase()))? tabref.parentNode : tabref;
	},

	urlparamselect:function(tabinterfaceid){
		var result=window.location.search.match(new RegExp(tabinterfaceid+"=(\\d+)", "i")); //check for "?tabinterfaceid=2" in URL
		
		return (result==null)? null : parseInt(RegExp.$1); //returns null or index, where index (int) is the selected tab's index
	},

	onajaxpageload:function(pageurl){ //PUBLIC Event handler that can invoke custom code whenever an Ajax page has been fetched and displayed
		//do nothing by default
	},

	expandtab:function(tabref){
		var numString = tabref.getAttribute("href");
		var numArray = numString.split('/');
		var len=numArray.length;
	    //var lastChar = numArray[len-1].charAt(numArray[len-1].length - 1);
		if (numString.indexOf("event_type=1") >= 0){
				document.getElementById("show").innerHTML="All lectures are <strong id='green'>free</strong>";
				document.getElementById("green").style.color="green";
				changeDropDown("lectures");
		} else if (numString.indexOf("event_type=3") >= 0){
				document.getElementById("show").innerHTML="All courses are  <strong id='green'>free</strong>";
				document.getElementById("green").style.color="green";
				changeDropDown("courses");
		} else if (numString.indexOf("event_type=8") >= 0 || numString.indexOf("event_type=5") >= 0) {
				document.getElementById("show").innerHTML="All events are  <strong id='green'>free</strong>";
				document.getElementById("green").style.color="green";
				changeDropDown("events");
		}
		var relattrvalue=tabref.getAttribute("rel");
		//document.getElementById("show").innerHTML=relattrvalue;
		//Get "rev" attr as a string of IDs in the format ",john,george,trey,etc," to easy searching through
		var associatedrevids=(tabref.getAttribute("rev"))? ","+tabref.getAttribute("rev").replace(/\s+/, "")+"," : "";
		if (relattrvalue=="#default"){
			document.getElementById(this.contentdivid).innerHTML=this.defaultHTML;
		}
		else if (relattrvalue=="#iframe"){
			this.iframedisplay(tabref.getAttribute("href"), this.contentdivid);
			if (tabref.getAttribute("href")=="html/iframe/lectures.php" || tabref.getAttribute("href")=="iframe/lectures.html"){
				document.getElementById("show").innerHTML="All lectures are <strong id='green'>free</strong>";
				document.getElementById("green").style.color="green";
			}else if (tabref.getAttribute("href")=="html/iframe/courses.php" || tabref.getAttribute("href")=="iframe/courses.html"){
				document.getElementById("show").innerHTML="All courses are  <strong id='green'>free</strong>";
				document.getElementById("green").style.color="green";
			}if (tabref.getAttribute("href")=="html/iframe/events.php" || tabref.getAttribute("href")=="iframe/events.html"){
				document.getElementById("show").innerHTML="All events are  <strong id='green'>free</strong>";
				document.getElementById("green").style.color="green";
			}
		}
		else{
			ddajaxtabs.connect(tabref.getAttribute("href"), this);}
		this.expandrevcontent(associatedrevids);
		for (var i=0; i<this.tabs.length; i++){ //Loop through all tabs, and assign only the selected tab the CSS class "selected"
			this.getselectedClassTarget(this.tabs[i]).className=(this.tabs[i].getAttribute("href")==tabref.getAttribute("href"))? "selected" : "";
		}
		if (this.enabletabpersistence) //if persistence enabled, save selected tab position(int) relative to its peers
			ddajaxtabs.setCookie(this.tabinterfaceid, tabref.tabposition);
		this.setcurrenttabindex(tabref.tabposition); //remember position of selected tab within hottabspositions[] array
	},

	iframedisplay:function(pageurl, contentdivid){
		if (typeof window.frames["_ddajaxtabsiframe-"+contentdivid]!="undefined"){
			try{delete window.frames["_ddajaxtabsiframe-"+contentdivid];} //delete iframe within Tab content container if it exists (due to bug in Firefox)
			catch(err){}
		}
		document.getElementById(contentdivid).innerHTML=this.defaultIframe;
		window.frames["_ddajaxtabsiframe-"+contentdivid].location.replace(pageurl); //load desired page into iframe
	},


	expandrevcontent:function(associatedrevids){
		var allrevids=this.revcontentids;
		for (var i=0; i<allrevids.length; i++){ //Loop through rev attributes for all tabs in this tab interface
			//if any values stored within associatedrevids matches one within allrevids, expand that DIV, otherwise, contract it
			document.getElementById(allrevids[i]).style.display=(associatedrevids.indexOf(","+allrevids[i]+",")!=-1)? "block" : "none";
		}
	},

	setcurrenttabindex:function(tabposition){ //store current position of tab (within hottabspositions[] array)
		for (var i=0; i<this.hottabspositions.length; i++){
			if (tabposition==this.hottabspositions[i]){
				this.currentTabIndex=i;
				break;
			}
		}
	},

	autorun:function(){ //function to auto cycle through and select tabs based on a set interval
		this.cycleit('next', true);
	},

	cancelautorun:function(){
		if (typeof this.autoruntimer!="undefined")
			clearInterval(this.autoruntimer);
	},

	init:function(automodeperiod){
		var persistedtab=ddajaxtabs.getCookie(this.tabinterfaceid); //get position of persisted tab (applicable if persistence is enabled)
		var selectedtab=-1; //Currently selected tab index (-1 meaning none)
		var selectedtabfromurl=this.urlparamselect(this.tabinterfaceid); //returns null or index from: tabcontent.htm?tabinterfaceid=index
		this.automodeperiod=automodeperiod || 0;
		this.defaultHTML=document.getElementById(this.contentdivid).innerHTML;
		for (var i=0; i<this.tabs.length; i++){
			this.tabs[i].tabposition=i; //remember position of tab relative to its peers
			if (this.tabs[i].getAttribute("rel")){
				var tabinstance=this;
				this.hottabspositions[this.hottabspositions.length]=i ;//store position of "hot" tab ("rel" attr defined) relative to its peers
				this.tabs[i].onclick=function(){
					tabinstance.expandtab(this);
					tabinstance.cancelautorun(); //stop auto cycling of tabs (if running)
					return false;
				};
				if (this.tabs[i].getAttribute("rev")){ //if "rev" attr defined, store each value within "rev" as an array element
					this.revcontentids=this.revcontentids.concat(this.tabs[i].getAttribute("rev").split(/\s*,\s*/));
				}
				if (selectedtabfromurl==i || this.enabletabpersistence && selectedtab==-1 && parseInt(persistedtab)==i || !this.enabletabpersistence && selectedtab==-1 && this.getselectedClassTarget(this.tabs[i]).className=="selected"){
					selectedtab=i; //Selected tab index, if found
				}
			}
		} //END for loop
		if (selectedtab!=-1) //if a valid default selected tab index is found
			this.expandtab(this.tabs[selectedtab]); //expand selected tab (either from URL parameter, persistent feature, or class="selected" class)
		else //if no valid default selected index found
			this.expandtab(this.tabs[this.hottabspositions[0]]); //Just select first tab that contains a "rel" attr
		if (parseInt(this.automodeperiod)>500 && this.hottabspositions.length>1){
			this.autoruntimer=setInterval(function(){tabinstance.autorun();}, this.automodeperiod);
		}
	} //END int() function

}; //END Prototype assignment




/******************************************************************************************************************************************************************************/

//DD Tab Menu- Script rewritten April 27th, 07: http://www.dynamicdrive.com
//**Updated Feb 23rd, 08): Adds ability for menu to revert back to default selected tab when mouse moves out of menu

//Only 2 configuration variables below:

var ddtabmenu={
	disabletablinks: false, //Disable hyperlinks in 1st level tabs with sub contents (true or false)?
	snap2original: [true, 300], //Should tab revert back to default selected when mouse moves out of menu? ([true/false, delay_millisec]

	currentpageurl: window.location.href.replace("http://"+window.location.hostname, "").replace(/^\//, ""), //get current page url (minus hostname, ie: http://www.dynamicdrive.com/)

definemenu:function(tabid, dselected){
	this[tabid+"-menuitems"]=null;
	this[tabid+"-dselected"]=-1;
	this.addEvent(window, function(){ddtabmenu.init(tabid, dselected);}, "load");
},

showsubmenu:function(tabid, targetitem){
	var menuitems=this[tabid+"-menuitems"];
	this.clearrevert2default(tabid);
 for (i=0; i<menuitems.length; i++){
		menuitems[i].className="";
		if (typeof menuitems[i].hasSubContent!="undefined")
			document.getElementById(menuitems[i].getAttribute("rel")).style.display="none";
	}
	targetitem.className="current";
	if (typeof targetitem.hasSubContent!="undefined")
		document.getElementById(targetitem.getAttribute("rel")).style.display="block";
},

isSelected:function(menuurl){
	var menuurl=menuurl.replace("http://"+menuurl.hostname, "").replace(/^\//, "");
	return (ddtabmenu.currentpageurl==menuurl);
},

isContained:function(m, e){
	var e=window.event || e;
	var c=e.relatedTarget || ((e.type=="mouseover")? e.fromElement : e.toElement);
	while (c && c!=m)try {c=c.parentNode;} catch(e){c=m;}
	if (c==m)
		return true;
	else
		return false;
},

revert2default:function(outobj, tabid, e){
	if (!ddtabmenu.isContained(outobj, tabid, e)){
		window["hidetimer_"+tabid]=setTimeout(function(){
			ddtabmenu.showsubmenu(tabid, ddtabmenu[tabid+"-dselected"]);
		}, ddtabmenu.snap2original[1]);
	}
},

clearrevert2default:function(tabid){
 if (typeof window["hidetimer_"+tabid]!="undefined")
		clearTimeout(window["hidetimer_"+tabid]);
},

addEvent: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);
},

init:function(tabid, dselected){
	var menuitems=document.getElementById(tabid).getElementsByTagName("a");
	this[tabid+"-menuitems"]=menuitems;
	for (var x=0; x<menuitems.length; x++){
		if (menuitems[x].getAttribute("rel")){
			this[tabid+"-menuitems"][x].hasSubContent=true;
			if (ddtabmenu.disabletablinks)
				menuitems[x].onclick=function(){return false;};
			if (ddtabmenu.snap2original[0]==true){
				var submenu=document.getElementById(menuitems[x].getAttribute("rel"));
				menuitems[x].onmouseout=function(e){ddtabmenu.revert2default(submenu, tabid, e);};
				submenu.onmouseover=function(){ddtabmenu.clearrevert2default(tabid);};
				submenu.onmouseout=function(e){ddtabmenu.revert2default(this, tabid, e);};
			}
		}
		else //for items without a submenu, add onMouseout effect
			menuitems[x].onmouseout=function(e){this.className=""; if (ddtabmenu.snap2original[0]==true) ddtabmenu.revert2default(this, tabid, e);};
		menuitems[x].onmouseover=function(){ddtabmenu.showsubmenu(tabid, this);};
		if (dselected=="auto" && typeof setalready=="undefined" && this.isSelected(menuitems[x].href)){
			ddtabmenu.showsubmenu(tabid, menuitems[x]);
			this[tabid+"-dselected"]=menuitems[x];
			var setalready=true;
		}
		else if (parseInt(dselected)==x){
			ddtabmenu.showsubmenu(tabid, menuitems[x]);
			this[tabid+"-dselected"]=menuitems[x];
		}
	}
}
};


/*******************************************************************************************************************************************************************************************************************************/
var panes = new Array();

function setupPanes(containerId, defaultTabId) {
     // go through the DOM, find each tab-container
     // set up the panes array with named panes
     panes[containerId] = new Array();
     var maxHeight = 0; var maxWidth = 0;
     var container = document.getElementById(containerId);
     var paneContainer = container.getElementsByTagName("div")[0];
     var paneList = paneContainer.childNodes;
     for (var i=0; i < paneList.length; i++ ) {
       var pane = paneList[i];
       if (pane.nodeType != 1) continue;
       panes[containerId][pane.id] = pane;
       pane.style.display = "none";
    }
     document.getElementById(defaultTabId).onclick();
}

function showPane(paneId, activeTab) {
     // make tab active class
     // hide other panes (siblings)
     // make pane visible

     for (var con in panes) {
       activeTab.blur();
       activeTab.className = "tab-active";
       if (panes[con][paneId] != null) { // tab and pane are members of this container
         var pane = document.getElementById(paneId);
         pane.style.display = "block";
         var container = document.getElementById(con);
         var tabs = container.getElementsByTagName("ul")[0];
         var tabList = tabs.getElementsByTagName("a")
         for (var i=0; i < tabList.length; i++ ) {
           var tab = tabList[i];
           if (tab != activeTab) tab.className = "tab-disabled";
         }
         for (var i in panes[con]) {
           var pane = panes[con][i];
           if (pane == undefined) continue;
           if (pane.id == paneId) continue;
           pane.style.display = "none"
         }
       }
     }
       return false;
}
/************************************************************************ RUNAC ***********************/
//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;
}
