	/****************************************************************************************/
	/*																																											*/
	/*	Accordent WMPlib v1.38	*/
	/*	=======================	*/
	/*																																											*/
	/*	Last Edited: june 29, 2004 */
	/*	Please send all comments & bug reports to: Huy Nguyen <hnguyen@accordent.com> */
	/*	Added SAMI support & geckoactive (NS7.1) added */
	/*  Added Stretch-To-Fit Support for ms-players 7.1 and above */
	/*  Added Time Search (Search Portal)
	/*																																											*/
	/****************************************************************************************/
	

	// Modified to support stretching of media to player... Supports only 7.1 and above players...
	// Must keep Aspect Ratio otherwise borders will show...
	var stretch2fit = "true";
	// ***
	
	/* global variable... can be forced */
	
	var ie, ns, mz, debug, msver, os;
	var ie=self.document.all;
	var ns=eval("self.document.layers");
	var mz=self.document.getElementById;
	var os=1; //assume pc by default
	var debug=eval(getvar("debug","false"));
	
	/* do not edit */
	
	function getvar(el, def) { //el=str, def= default value
		var urls = new String(eval("self.location"));
		var re = new RegExp( "\\?[\\w\\W]*"+ el +"=([^\\&\\?#]*)", "i");
		var arr = re.exec(urls);
		if(arr && arr.length>1) return arr[1];
		else return def;
	}
	
	function echo(str) {
		document.open();
		document.write(str);
		document.close();
	}
	
	function html_friendly(ss) { //parses string & conver to html friendly characters
	    ss = new String(ss);
	    ss = ss.replace(/\</g,'&lt;');
	    ss = ss.replace(/\>/g,'&gt;');
		return "<code><pre>"+ss+"</pre></code>";
	}
	
	/* ----------------this function was modified!!!!------------------ */
	function video6ms(url, uimode, width, height) { //wmp 6.4 & 7.1 object
		var ostr = new String();
		var ctrlheight;
		if(uimode=='mini') ctrlheight=56;
		else if(uimode=='full') ctrlheight=72;
		else ctrlheight = 0;
		ostr += "<object id=\"MediaPlayer\" width=\""+ width +"\" height=\""+ (height+ctrlheight) +"\" classid=\"CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95\" codebase=\"http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,1112\" standby=\"Loading Microsoft® Windows® Media Player components... \" type=\"application/x-oleobject\">\r\n";
		ostr += "\t<param name=\"FileName\" value=\""+ url +"\" />\r\n";
		ostr += "\t<param name=\"AutoStart\" value=\"1\" />\r\n";
		ostr += "\t<param name=\"AnimationatStart\" value=\"1\" />\r\n";
		//ostr += "\t<param name=\"AutoSize\" value=\"0\" />\r\n";
		//ostr += "\t<param name=\"DisplaySize\" value=\"0\" />\r\n";
		//ostr += "\t<param name=\"TransparentatStart\" value=\"0\" />\r\n";
		//ostr += "\t<param name=\"ShowDisplay\" value=\"0\" />\r\n";
		ostr+="\t<param name=\"InvokeURLs\" value=\"0\" />\r\n"; //added this line
		switch(uimode) {
			case 'none':
				ostr += "\t<param name=\"ShowControls\" value=\"0\" />\r\n";
				ostr += "\t<param name=\"ShowTracker\" value=\"0\" />\r\n";
				ostr += "\t<param name=\"EnableTracker\" value=\"0\" />\r\n";
				ostr += "\t<param name=\"ShowPositionControls\" value=\"0\" />\r\n";
				ostr += "\t<param name=\"EnablePositionControls\" value=\"0\" />\r\n";
				ostr += "\t<param name=\"ShowStatusBar\" value=\"0\" />\r\n";
				break;
			case 'mini':
				ostr += "\t<param name=\"ShowControls\" value=\"1\" />\r\n";
				ostr += "\t<param name=\"ShowTracker\" value=\"0\" />\r\n";
				ostr += "\t<param name=\"EnableTracker\" value=\"0\" />\r\n";
				ostr += "\t<param name=\"ShowPositionControls\" value=\"0\" />\r\n";
				ostr += "\t<param name=\"EnablePositionControls\" value=\"1\" />\r\n";
				ostr += "\t<param name=\"ShowStatusBar\" value=\"1\" />\r\n";
				break;
			case 'full':
				ostr += "\t<param name=\"ShowControls\" value=\"1\" />\r\n";
				ostr += "\t<param name=\"ShowTracker\" value=\"1\" />\r\n";
				ostr += "\t<param name=\"EnableTracker\" value=\"1\" />\r\n";
				ostr += "\t<param name=\"ShowPositionControls\" value=\"1\" />\r\n";
				ostr += "\t<param name=\"EnablePositionControls\" value=\"1\" />\r\n";
				ostr += "\t<param name=\"ShowStatusBar\" value=\"1\" />\r\n";
				break;
		}
		ostr += "\t<embed type=\"application/x-mplayer2\" pluginspage=\"http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/\" \r\n";
		ostr += "\tInvokeURLs=\"0\" \r\n"; //added this line
		switch(uimode) {
			case 'none':
				ostr += "\t ShowControls=\"0\" \r\n";
				ostr += "\t ShowTracker=\"0\" \r\n";
				ostr += "\t EnableTracker=\"0\" \r\n";
				ostr += "\t ShowPositionControls=\"0\" \r\n";
				ostr += "\t EnablePositionControls=\"0\" \r\n";
				ostr += "\t ShowStatusBar=\"0\" \r\n";
				break;
			case 'mini':
				ostr += "\t ShowControls=\"1\" \r\n";
				ostr += "\t ShowTracker=\"0\" \r\n";
				ostr += "\t EnableTracker=\"0\" \r\n";
				ostr += "\t ShowPositionControls=\"0\" \r\n";
				ostr += "\t EnablePositionControls=\"1\" \r\n";
				ostr += "\t ShowStatusBar=\"1\" \r\n";
				break;
			case 'full':
				ostr += "\t ShowControls=\"1\" \r\n";
				ostr += "\t ShowTracker=\"1\" \r\n";
				ostr += "\t EnableTracker=\"1\" \r\n";
				ostr += "\t ShowPositionControls=\"1\" \r\n";
				ostr += "\t EnablePositionControls=\"1\" \r\n";
				ostr += "\t ShowStatusBar=\"1\" \r\n";
				break;
		}
		ostr += "\t src=\""+ url +"\" name=\"MediaPlayer\" \r\n";
		ostr += "\t AutoStart=\"1\" \r\n";
		ostr += "\t AnimationatStart=\"1\" \r\n";
		//ostr += "\t ShowDisplay=\"0\" \r\n";
		//ostr += "\t TransparentAtStart=\"0\" \r\n";
		//ostr += "\t AutoSize=\"0\" \r\n";
		//ostr += "\t TransparentatStart=\"1\" \r\n";
		ostr += "\t width=\""+ width +"\" height=\""+ (height+ctrlheight) +"\"></embed></object>\r\n";
		//this line was added
		if(ns) {
			ostr += "\t<APPLET MAYSCRIPT code=\"NPDS.npDSEvtObsProxy.Class\" width=\"1\" height=\"5\" name=\"appObs\"></APPLET>\r\n";
		} else { //ie & everything else??!
			ostr += "<script language=\"JScript\" for=\"MediaPlayer\" event=\"ScriptCommand(scType, Param)\">ms9sync(scType, Param);<\/script>\r\n";
		}
		if(debug) echo(html_friendly(ostr));
		else echo(ostr);
	}
	
	/* ----------------this function was added!!!!------------------ */
	function RegisterEventObservers() {
		//pack the lpath with a value.
		var tpath = new String(self.document.location);
		var re = /\/[^\/]+\.htm[l]?$/i;
		if(re.test(tpath)) lpath = tpath.replace(re,"/");
		//top.status = lpath;
		//ns4 only! 
		if(ns) { //actually register events for NS
			appObs.setByProxyDSScriptCommandObserver(document.MediaPlayer, true);
			//appObs.setByProxyDSPlayStateChangeObserver(document.MediaPlayer, true);
			//appObs.setByProxyDSReadyStateChangeObserver(document.MediaPlayer, true);
		}
	}
	/* ----------------this function was added!!!!------------------ */
	function OnDSScriptCommandEvt(scType, scParam) {
	      // code goes here...
		  ms9sync(type, url);
	}
	
	/* ----------------this function was modified!!!!------------------ */
	function video9ms(url, uimode, width, height, sami) { //wmp9 object
		var re = /^[\s]*$/i;
		var obstr = new String();
		var ctrlheight = 64;
		if(uimode=='none') ctrlheight = 0;
		if(ie || (mz && window.GeckoActiveXObject)) {
			obstr += "<object id=\"MediaPlayer\" width=\""+ width +"\" height=\""+ (height+ctrlheight) +"\" classid=\"CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6\">\r\n";
			obstr += "\t<param name=\"URL\" value=\""+ url +"\" />\r\n";
		}
		else {
			obstr += "<applet name=\"MediaPlayer\" code=\"WMPNS.WMP\" width=\""+ width +"\" height=\""+ (height+ctrlheight) +"\" mayscript=\"true\">\r\n";
			obstr += "\t<param name=\"URL\" value=\""+ url +"\" />\r\n";
		}
		obstr += "\t<param name=\"autoStart\" value=\"true\" />\r\n";
		obstr += "\t<param name=\"enabled\" value=\"true\" />\r\n";
		obstr += "\t<param name=\"invokeURLs\" value=\"false\" />\r\n";
		obstr += "\t<param name=\"uiMode\" value=\""+ uimode +"\" />\r\n";
		// Modified to support stretching of media to player... Supports only 7.1 and above players...
		// Must keep Aspect Ratio otherwise borders will show...
		obstr += "\t<param name=\"stretchToFit\" value=\""+ stretch2fit +"\" />\r\n";
		// ***
		if(arguments.length>=5 && !re.test(sami)) {
			obstr += "\<param name=\"SAMIFileName\" value=\""+ sami +"\">\r\n";
			obstr += "\<param name=\"captioningID\" value=\"mscc\">\r\n";
		}
		if(ie) {
			obstr += "</object>";
			//obstr += "<script language=\"JScript\" for=\"MediaPlayer\" event=\"ScriptCommand(scType, Param)\">ms9sync(scType, Param);<\/script>";
			obstr += "<script language=\"JavaScript\" for=\"MediaPlayer\" event=\"ScriptCommand(scType, Param)\">ms9sync(scType, Param);<\/script>";
			obstr += "<script language=\"JavaScript\" for=\"MediaPlayer\" event=\"OpenStateChange(NewState)\">wait_load(NewState);<\/script>";
		}
		else obstr += "</applet>";
		if(debug) echo(html_friendly(obstr));
		else echo(obstr);
	}
	
	function notsupported() {
		var browser = "Internet Explorer 4+";
		if(ns) browser = "Netscape 4.x";
		else if(mz) browser = "Netscape 6+ (or Mozilla 1+)";
		var str = "<strong>"+ browser +" and Windows Media Player "+ msver +" is NOT currently supported.</strong>\r\n<br>\r\n";
		echo("<div class='error'>"+ str +"</div>");
	}
	
	/* ----------------this function was modified!!!!------------------ */
	function videoms(url, uimode, width, height, sami) { //universial video object
		//output depending on the version of wmp and browser
		uimode = new String(uimode);
		uimode = uimode.toLowerCase(uimode);
		if(msver>6) {
			if(ie) {
				if(msver >= 7) video9ms(url,uimode, width, height, sami);
				else video6ms(url,uimode, width, height, sami);
			} else if(ns) {
				if(msver >= 9) video9ms(url,uimode, width, height, sami);
				else video6ms(url,uimode, width, height, sami);
			} else if(mz) {
				if(window.GeckoActiveXObject) { //ns 7.1+
					if(msver>=7) video9ms(url,uimode, width, height, sami);
					else video6ms(url,uimode, width, height, sami);
				}
				else { //older ns7-
					if(msver>=9) notsupported();
					else video6ms(url,uimode, width, height, sami);
				}
			} else {
				var msg = new String();
				msg += "Your browser is currently un-supported.\r\n  Please retry again using Internet Explorer, Netscape or Mozilla.";
				echo("<div id='error'>"+ msg +"</div>");
			}
		} else {
			var hmsg = "Your browser is currently supported; \r\n  ";
			hmsg += "However, you will need to install (or <strong>re-install</strong>) a newer version of <a href='http://www.microsoft.com/windows/windowsmedia/download/' target='_blank'>Windows Media Player</a> ";
			hmsg += "because the embeded <em>plugin was not found</em>.  \r\n";
			echo("<div class='error'>"+ hmsg +"</div>");
		}
	}
	
	function strsafe(istr) {
		var str = new String(istr);
		var re_q = new RegExp("'","g");
		var re_s = new RegExp("\\\\","g");
		if(re_q.test(str)) str = str.replace(re_q,"\\'");
		if(re_s.test(str)) str = str.replace(re_s,"\\\\");
		return(str);
	}
	
	function underscore(istr) {
		var str = new String(istr);
		var re_ = new RegExp("[ \\s\\t\\r\\n]+","g");
		if(re_.test(str)) str = str.replace(re_, "_");
		return(str);
	}

	/* ----------------this function was modified!!!!------------------ */
	function ms9sync(type, url) { //unified sync
		type = new String(type);
		url = new String(url);


		// process commands
		if ((url.length > 3) && (url.substring(0, 4).toLowerCase() == 'attp')){
			eval(url.substring(7,url.lastIndexOf('&&')));
		}else{
			var tre = /^(url|eval)$/i;
			//var re = /^([^`]+)(&&|&&[^&]*|)$/i;
			var re = /(&&[^&]*|)$/i;
			var tr = /^&&/i;
			var bl = /^[\s]*$/i;
			var absurl = /^(http|ftp|file|mms|rtsp)/i;
			if(tre.test(type) && re.test(url)) { //if type is of URL
				var r = re.exec(url);
				var turl = url.replace(re,"");
				//ngc switch
				//if(!absurl.test(turl)) turl = lpath + turl;
				if(r.length>=2) {
					var ttarget = underscore(r[1]);
					if(tr.test(ttarget)) ttarget = ttarget.replace(tr,"");
					if(!bl.test(ttarget))
						eval("window.open('"+ strsafe(turl) +"','"+ strsafe(ttarget) +"');");
					else
						eval("window.open('"+ strsafe(turl) +"','_blank');");
				} else {
					eval("window.open('"+ strsafe(turl) +"','_blank');");
				}
			}
		}
	}
	
	function OnScriptCommand(scType, Param) { //ns sync wmp9
		ms9sync(scType, Param);
	}

	function wait_load(state)
	{
		//checking for state to proceed
		if (state ==13) {
			temp = getvar_parent('time');
			seek(temp);
		}	
	}

	function detectms() {
		if(ie) {
			echo('<OBJECT classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" id="WMP64" width="1" height="1" VIEWASTEXT="true"></OBJECT>'+"\r\n");
			echo('<OBJECT classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" id="WMP7"  width="1" height="1" VIEWASTEXT="true"></OBJECT>'+"\r\n");
		}
		/* os code, 1=win32,2=mac,3=other */
		navigator.plugins.refresh();
		var platform = new String(navigator.platform);
		var winre = /^win32/i;
		var macre = /mac/i;
		if(winre.test(platform)) { //windows 95+
			os = 1;
		} else if(macre.test(platform)) {
			os = 2;
		} else { //unix & stuff
			os =3 ;
		}
		
		if(ie && os!=3) {
			if(WMP7) {
				wmp = true;
				var tmp = new String(WMP7.versionInfo);
				var vre = /^[\d]+.[\d]/i;
				if(vre.test(tmp)) {
					msver = eval(vre.exec(tmp)[0]);
				} else {
					msver = 6.4;
				}
			} else if(WMP64) {
				wmp = true;
				msver = 6.4;
			} else { //is not installed or very old!!!
				msver = 0;
				wmp = false;
			}
		} else { //everything else
			if(ns || mz || (ie && os==2)) {
				var wre = /^Windows[\w]{0,3} Media Player/i;
				var dre = /^Microsoft[^d]{1,7}drm$/i;
				//if wmp6, drm count = 0, if wmp7, drm count = 1, if wmp9, drm count = 2
				var wmp = false;
				var drmcount = 0;
				var parr = [];
				for(var i=0; i<navigator.plugins.length; i++) {
					parr[i] = new String(navigator.plugins[i].name);
					if(!wmp && wre.test(new String(parr[i]))) {
						wmp = true; //wmp 6-9 plugin is installed for this browser
					}
					if(drmcount<2 && dre.test(new String(parr[i]))) {
						drmcount++;
					}
				}
				if(wmp) { //wmp plugin is installed
					switch(drmcount) {
						case 2:
							msver = 9;
							break;
						case 1:
							msver = 7;
							break;
						default:
							msver = 6;
							break;
					}
				} else msver = 0;
			} else { //opera & junk
				wmp = false;
				msver = 0;
			}
		}
	}
	
	
	
	/********************************************* ms control codes *********************************************/
	/********************************************* ms control codes *********************************************/
	
	

	function time2s(str) {
		var re = /[0]*([1-9])/g;
		str = new String(str);
		if(re.test(str)) str = str.replace(re,"$1");
		var foo = str.split(":");
		var tsec = parseInt(foo[foo.length-1]);
		tsec += parseInt(foo[foo.length-2])*60;
		tsec += parseInt(foo[foo.length-3])*60*60;
		return tsec
	}
	
	function seek(xsec) {
			var vid = self.document.MediaPlayer;
			if((ie && msver<7) || (!ie && msver<9)){			
				if(vid) {
					if(ie) vid.CurrentPosition = time2s(xsec);
					else vid.SetCurrentPosition(time2s(xsec));
					vid.Play();
				}
			}
			else{
				if(vid){
					if(ie){ 
						vid.controls.currentPosition = time2s(xsec);
						vid.controls.play();
					}
					else{  
						vid.controls.setCurrentPostion(time2s(xsec));
						vid.getControls().play();
					}	
				}
			}		
	}
		
	function PlayClick() {
	    var state;
		var vid = document.MediaPlayer;
		if((ie && msver<7) || (!ie && msver<9)){
		    if(!ie) state = vid.GetPlayState();
		    else state = vid.PlayState;
			if (state == 0) vid.Play();
	    	else if (state == 1) vid.Play();
		}
		else{
			if(ie){
				state = vid.PlayState;
				if(state == 1|| state == 2 || state == 10) vid.controls.play();
			}
			else{
				state = vid.getPlayState();
				if(state == 1|| state == 2 || state == 10) vid.getControls().play();
			}
		}			
	}
	
	
	function PauseClick() {
	    var state;
		var vid = document.MediaPlayer;
	    if((ie && msver<7) || (!ie && msver<9)){
		    if (!ie) state = vid.GetPlayState();
		    else state = vid.PlayState;
			if (state == 2)  vid.Pause();
			else if (state == 1)  vid.Play();
	 	}
		else{
			if(ie){
				state = vid.PlayState;
				if (state == 3) vid.controls.pause();
				else if (state == 2)  vid.controls.play();
			}
			else{
				state = vid.getPlayState();
				if (state == 3) vid.getControls().pause();
				else if (state == 2)  vid.getControls().play();
			}		 
		}	
	}
	
	
	function StopClick() {
	   if((ie && msver<7) || (!ie && msver<9)){
	    document.MediaPlayer.Stop();
	   } else {
			if(ie) document.MediaPlayer.controls.stop();
			else document.MediaPlayer.getControls().stop();
		}
	}	
	
	function VolumeUp() {
		if((ie && msver<7) || (!ie && msver<9)){
			if(ie) {
		  		var tvol = document.MediaPlayer.Volume + 1000;
	  	  		if(tvol > 0) tvol=0;
		  		document.MediaPlayer.Volume = tvol;
			}
			else {
		  		var tvol = document.MediaPlayer.GetVolume() + 1000;
	  	  		if(tvol > 0) tvol=0;
		  		document.MediaPlayer.SetVolume(tvol);
			}
		}
		else{
			if(ie) {
				var tvol = document.MediaPlayer.settings.Volume + 10;
	  	  		if(tvol >=100) tvol=100;
		  			document.MediaPlayer.settings.Volume = tvol;
			}
			else{
				var tvol = document.MediaPlayer.settings().getVolume() + 10;
	  	  		if(tvol >=100) tvol=100;
		  		document.MediaPlayer.settings().setVolume(tvol);
			}
		}		
	}
	
	function VolumeDown() {
		if((ie && msver<7) || (!ie && msver<9)){
			if(ie) {
		 		var tvol = document.MediaPlayer.Volume - 1000;
		  		if(tvol < 0-10000) tvol= 0-10000;
		  		document.MediaPlayer.Volume = tvol;
			}
			else {
		 		var tvol = document.MediaPlayer.GetVolume() - 1000;
		  		if(tvol < 0-10000) tvol= 0-10000;
		  		document.MediaPlayer.SetVolume(tvol);
			}
		}
		else{
			if(ie) {
				var tvol = document.MediaPlayer.settings.Volume - 10;
	  	  		if(tvol < 0) tvol = -10;
		  		document.MediaPlayer.settings.Volume = tvol;
			}
			else{
				var tvol = document.MediaPlayer.settings().GetVolume() - 10;
	  	  		if(tvol < 0) tvol=-10;
		  		document.MediaPlayer.settings().SetVolume(tvol);
			}
		}		
	}
	
	function full_screen(Param){
		if (Param == false){
			var fsval = 'false';
		}else{
			var fsval = 'true';
		}
		if(msver>=7){
			if(ie) {
				if(document.MediaPlayer.playState == 3)
					document.MediaPlayer.fullScreen=fsval;
			}else{
				var state = document.MediaPlayer.getPlayState();
				if(state == 3)
					document.MediaPlayer.setfullScreen=fsval;
			}
		}
	}

	function getvar_parent(el, case_sensitive) { //el=str, case_sensitive=bool
		var rs="";
		if(!case_sensitive) rs="i";
		var urls = new String(window.parent.location);
		var re = new RegExp( "\\?[\\w\\W]*"+ el +"=([^\\&\\?#]*)", rs );
		var arr = re.exec(urls);
		if(arr && arr.length>1) return arr[1];
		else return '';
	}

	
