function findObj(n, d) { 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=findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x;}
function preloadImages() { var d=document; if(d.images){ if(!d.p) d.p=new Array(); var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}
function showHideLayers() { var i,p,v,obj,args=showHideLayers.arguments; for (i=0; i<(args.length-2); i+=3)
if ((obj=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; if ( v == 'visible')
obj.display = ''; else
obj.display = 'none';}
}
function reloadPage(init) { 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();}
String.prototype.toProperCase = function()
{ return this.toLowerCase().replace(/^(.)|\s(.)/g, function($1) { return $1.toUpperCase();});}
reloadPage(true);
function preloadImages() { var d=document; if(d.images){ if(!d.p) d.p=new Array(); var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}
function CheckFileDescription()
{ return true;}
function StartsWith(str, prefix)
{ if (str.length < prefix.length) return false; return (str.substr(0, prefix.length) == prefix);}
function EndsWith(str, suffix)
{ if (str.length < suffix.length) return false; return (str.substr( str.length - suffix.length, suffix.length) == suffix);}
function ToggleAllByPrefix(cbx)
{ var index = cbx.id.lastIndexOf('_'); if ( index < 0 ) return; var idPrefix = cbx.id.substr(0, index); var allInputs = document.getElementsByTagName('input'); for ( var i = 0 ; i < allInputs.length ; i++ )
{ if (allInputs[i].type == 'checkbox' && StartsWith( allInputs[i].id , idPrefix) && ! EndsWith( allInputs[i].id , 'cbxDenyAccess') )
{ allInputs[i].checked = cbx.checked;}
}
}
function ToggleAllBySuffix(cbx)
{ var index = cbx.id.lastIndexOf('_'); if ( index < 0 ) return; var idSuffix = cbx.id.substr(index + 1); var allInputs = document.getElementsByTagName('input'); for ( var i = 0 ; i < allInputs.length ; i++ )
{ if (allInputs[i].type == 'checkbox' && EndsWith( allInputs[i].id , idSuffix) )
{ allInputs[i].checked = cbx.checked;}
}
}
function ValidateIsImageFile(source, eventArgs){as_str=new String(eventArgs.Value); eventArgs.IsValid = (as_str.toLowerCase().lastIndexOf('.jpg')==as_str.length-4||as_str.toLowerCase().lastIndexOf('.gif')==as_str.length-4||as_str.toLowerCase().lastIndexOf('.jpe')==as_str.length-4||as_str.toLowerCase().lastIndexOf('.jpeg')==as_str.length-5||as_str.toLowerCase().lastIndexOf('.png')==as_str.length-4)}
function ValidateIsAudioFile(source, eventArgs){as_str=new String(eventArgs.Value); eventArgs.IsValid = (as_str.toLowerCase().lastIndexOf('.mp3')==as_str.length-4||as_str.toLowerCase().lastIndexOf('.wma')==as_str.length-4||as_str.toLowerCase().lastIndexOf('.wav')==as_str.length-4||as_str.toLowerCase().lastIndexOf('.mp2')==as_str.length-4||as_str.toLowerCase().lastIndexOf('.mid')==as_str.length-4||as_str.toLowerCase().lastIndexOf('.midi')==as_str.length-5||as_str.toLowerCase().lastIndexOf('.au')==as_str.length-3||as_str.toLowerCase().lastIndexOf('.aiff')==as_str.length-5||as_str.toLowerCase().lastIndexOf('.aif')==as_str.length-4)}
function ValidateIsVideoFile(source, eventArgs){as_str=new String(eventArgs.Value); eventArgs.IsValid = (as_str.toLowerCase().lastIndexOf('.wmv')==as_str.length-4||as_str.toLowerCase().lastIndexOf('.mpg')==as_str.length-4||as_str.toLowerCase().lastIndexOf('.avi')==as_str.length-4||as_str.toLowerCase().lastIndexOf('.mov')==as_str.length-4||as_str.toLowerCase().lastIndexOf('.mpeg')==as_str.length-5||as_str.toLowerCase().lastIndexOf('.flv')==as_str.length-4)}
function ValidateIsMediaFile(source,eventArgs){ValidateIsImageFile(source,eventArgs);if(eventArgs.IsValid)return;ValidateIsAudioFile(source,eventArgs);if(eventArgs.IsValid)return;ValidateIsVideoFile(source,eventArgs)}
function f_selectall(theForm, checked)
{ for ( var i = 0 ; i < theForm.length ; i++ )
{ if ( theForm[i].type == 'checkbox' )
{ theForm[i].checked = checked;}
}
}
function f_selecteds(theForm)
{ var li_count= 0; for ( var i = 0 ; i < theForm.length ; i++ )
{ if ( theForm[i].type == 'checkbox' )
{ if ( theForm[i].checked ) li_count++;}
}
return li_count;}
function Trim(s) { if ( s == null || s == 'undefined' ) return s; return s.replace(/^\s+|\s+$/g, "");}

function playWindowsMedia(divId, media, width, height){
document.getElementById(divId).innerHTML='<object id="MediaPlayer1" width="' + width + '" height="' + height + '"'
		+'	classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"'
		+'	codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"'
		+'        type="application/x-oleobject">'
		+'        <param name="FileName" value="'+media+'" />'
		+'        <param name="autoStart" value="false">'
		+'        <param name="showstatusbar" value="true" />'
		+'        <param name="ShowControls" value="true" />'
		+'        <param name="volume" value="100">'
		+'        <embed type="application/x-mplayer2" '
		+'	pluginspage = "http://www.microsoft.com/Windows/MediaPlayer/"'
		+'	src="'+media+'"'
		+'	name="MediaPlayer1"	width="' + width + '"	height="' + height + '" autoStart="false" showstatusbar="true" showcontrols="true" volume="100"></embed>'
		+'  </object>';
}

// Browser sniff -- the following code does a very simple browser check and rates the 
//     browser as either Internet Explorer on a Win32 platform or not, so that we 
//     know to use the ActiveX model, or the plug-in Model.
var sBrowser = navigator.userAgent;  
if ((sBrowser.indexOf("IE") > -1) && (navigator.platform == "Win32"))
{
	sBrowser = "IE";
} else {
	sBrowser = "nonIE";
}
// end browser sniff


function muteClick() // This function is called by the "Mute" button.
                     // It toggles the state of the Mute property of the Media Player.
{
	var bMuteState;

	if (sBrowser == "IE") {
		bMuteState = document.MediaPlayer1.Mute;
	} else {
		bMuteState = document.MediaPlayer1.GetMute();
	}

	if (bMuteState == true) {
		if (sBrowser == "IE") {
			document.MediaPlayer1.Mute = false;
		} else {
			document.MediaPlayer1.SetMute(false);
		}
	} else {
		if (sBrowser == "IE") {
			document.MediaPlayer1.Mute = true;
		} else {
			document.MediaPlayer1.SetMute(true);
		}
	}
}

function full() {
   var player = document.MediaPlayer1; 
   if (player.playState  == 3)  {     // 3 means 'playing'  
     player.fullScreen = true;
   }
}


function Hash()
{
	this.length = 0;
	this.items = new Array();
	for (var i = 0; i < arguments.length; i += 2) {
		if (typeof(arguments[i + 1]) != 'undefined') {
			this.items[arguments[i]] = arguments[i + 1];
			this.length++;
		}
	}
   
	this.removeItem = function(in_key)
	{
		var tmp_value;
		if (typeof(this.items[in_key]) != 'undefined') {
			this.length--;
			var tmp_value = this.items[in_key];
			delete this.items[in_key];
		}
	   
		return tmp_value;
	}

	this.getItem = function(in_key) {
		return this.items[in_key];
	}

	this.setItem = function(in_key, in_value)
	{
		if (typeof(in_value) != 'undefined') {
			if (typeof(this.items[in_key]) == 'undefined') {
				this.length++;
			}

			this.items[in_key] = in_value;
		}
	   
		return in_value;
	}

	this.hasItem = function(in_key)
	{
		return typeof(this.items[in_key]) != 'undefined';
	}
}
