// JavaScript Document
<!--


var popupWin = null;

function MM_openBrWindow(theURL,winName,features) { //v2.0 
 if  ((popupWin == null) || (popupWin.closed)) {
  popupWin  = window.open(theURL, winName, features);
 }
 else {
  popupWin.location = theURL;
 }
   popupWin.focus(); 
}

function gotodelete(deletepage){
var userinput = confirm("Please make sure that you remove or update all content that may refer to this item. " + '\n' + "Are you sure that you want to delete this item?")
if (userinput == true)
{
document.location = deletepage
}
}

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}
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_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function JSFX_FloatTopDiv()
{
	var startX = 0,
	startY = 98;
	var ns = (navigator.appName.indexOf("Netscape") != -1);
	var d = document;
	function ml(id)
	{
		var el=MM_findObj(id);
		if(d.layers)el.style=el;
		el.sP=function(x,y){this.style.left=x;this.style.top=y;};
		el.x = startX;

		el.y = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
		el.y -= startY;

		return el;
	}
	window.stayTopLeft=function()
	{

		var pY = ns ? pageYOffset + innerHeight : document.body.scrollTop + document.body.clientHeight;
		ftlObj.y += (pY - startY - ftlObj.y)/20;
		ftlObj.sP(ftlObj.x, ftlObj.y);
		setTimeout("stayTopLeft()", 1);
	}
	ftlObj = ml("BottomBanner");
	stayTopLeft();
}

// JavaScript Text Area Chars
function TrackCount(fieldObj,countFieldName,maxChars)
{
  var countField = eval("fieldObj.form."+countFieldName);
  var diff = maxChars - fieldObj.value.length;

  // Need to check & enforce limit here also in case user pastes data
  if (diff < 0)
  {
    fieldObj.value = fieldObj.value.substring(0,maxChars);
    diff = maxChars - fieldObj.value.length;
  }
  countField.value = diff;
}

function LimitText(fieldObj,maxChars)
{
  var result = true;
  if (fieldObj.value.length >= maxChars)
    result = false;
  
  if (window.event)
    window.event.returnValue = result;
  return result;
}

// yaromat validation
<!--
function YY_checkform() { //v4.71
//copyright (c)1998,2002 Yaromat.com
  var a=YY_checkform.arguments,oo=true,v='',s='',err=false,r,o,at,o1,t,i,j,ma,rx,cd,cm,cy,dte,at;
  for (i=1; i<a.length;i=i+4){
    if (a[i+1].charAt(0)=='#'){r=true; a[i+1]=a[i+1].substring(1);}else{r=false}
    o=MM_findObj(a[i].replace(/\[\d+\]/ig,""));
    o1=MM_findObj(a[i+1].replace(/\[\d+\]/ig,""));
    v=o.value;t=a[i+2];
    if (o.type=='text'||o.type=='password'||o.type=='hidden'){
      if (r&&v.length==0){err=true}
      if (v.length>0)
      if (t==1){ //fromto
        ma=a[i+1].split('_');if(isNaN(v)||v<ma[0]/1||v > ma[1]/1){err=true}
      } else if (t==2){
        rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-zA-Z]{2,4}$");if(!rx.test(v))err=true;
      } else if (t==3){ // date
        ma=a[i+1].split("#");at=v.match(ma[0]);
        if(at){
          cd=(at[ma[1]])?at[ma[1]]:1;cm=at[ma[2]]-1;cy=at[ma[3]];
          dte=new Date(cy,cm,cd);
          if(dte.getFullYear()!=cy||dte.getDate()!=cd||dte.getMonth()!=cm){err=true};
        }else{err=true}
      } else if (t==4){ // time
        ma=a[i+1].split("#");at=v.match(ma[0]);if(!at){err=true}
      } else if (t==5){ // check this 2
            if(o1.length)o1=o1[a[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!o1.checked){err=true}
      } else if (t==6){ // the same
            if(v!=MM_findObj(a[i+1]).value){err=true}
      }
    } else
    if (!o.type&&o.length>0&&o[0].type=='radio'){
          at = a[i].match(/(.*)\[(\d+)\].*/i);
          o2=(o.length>1)?o[at[2]]:o;
      if (t==1&&o2&&o2.checked&&o1&&o1.value.length/1==0){err=true}
      if (t==2){
        oo=false;
        for(j=0;j<o.length;j++){oo=oo||o[j].checked}
        if(!oo){s+='* '+a[i+3]+'\n'}
      }
    } else if (o.type=='checkbox'){
      if((t==1&&o.checked==false)||(t==2&&o.checked&&o1&&o1.value.length/1==0)){err=true}
    } else if (o.type=='select-one'||o.type=='select-multiple'){
      if(t==1&&o.selectedIndex/1==0){err=true}
    }else if (o.type=='textarea'){
      if(v.length<a[i+1]){err=true}
    }
    if (err){s+='* '+a[i+3]+'\n'; err=false}
  }
  if (s!=''){alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+s)}
  document.MM_returnValue = (s=='');
  
  return (s=='');
}
//-->
function MM_popupMsg(msg) { //v1.0
  alert(msg);
}

function decision(message, url){
	if(confirm(message)) location.href = url;
}

function checkDay( year, month, day )	//based on script by Arash Ramin (http://www.digitalroom.net)
{
	var m = month.value;
	var y = year.value;
	
	// find number of days in current month + 1 for the initial blank option
	var days = ( ( m == 4 ) || ( m == 6 ) || ( m == 9 ) || ( m == 11 ) )? 30 : ( ( m != 2 )? 31 : ( ( ( Math.floor( y/4 ) == ( y/4 ) ) && ( ( Math.floor( y/100 ) != ( y/100 ) ) || ( Math.floor( y/400 ) == ( y/400 ) ) ) )? 29 : 28 ) )+ 1 ;
	
	//more days are needed
	if( days > day.length )
	{
		for( var i = day.length; i < days; i++ )
		{
			day.options[i] = new Option( i, i, false, false );
		}
	}
	else if ( days < day.length )// if days in new month < current days then we must delete the extra days
	{
		for( var i = days; i < day.length; )
		{
			day.options[i] = null;
		}
		
		if ( day.selectedIndex == -1 )
		{
	  		day.selectedIndex = days - 1;
		}
	}
	
}

//hides elements with id 't'
function hide( t )
{
	if (document.getElementById)
	{ // DOM3 = IE5, NS6
		document.getElementById( t ).style.display = 'none';
	}
	else
	{
		if (document.layers)
		{ // Netscape 4
			document[t].display = 'none';
		}
		else
		{ // IE 4
			document.all[t].style.display = 'none';
		}
	}
}

//set elements with id 't' to display 'd' (defaults to 'block' )
function show( t, d )
{
	if( !d )
	{
		d = 'block';
	}
	
	if (document.getElementById)
	{ // DOM3 = IE5, NS6
		document.getElementById( t ).style.display = d;
	}
	else
	{
		if (document.layers)
		{ // Netscape 4
			document[t].display = d;
		}
		else
		{ // IE 4
			document.all[t].style.display = d;
		}
	}
}

//if element t is visible, set display to none, other wise set visible to 'd' (defaults to 'block' )
function showHide( t, d )
{
	if( !d )
	{
		d = 'block';
	}
	
	if (document.getElementById)
	{ // DOM3 = IE5, NS6
		if( document.getElementById( t ).style.display != 'none' )
		{
			document.getElementById( t ).style.display = 'none';
		}
		else
		{
			document.getElementById( t ).style.display = d;
		}
	}
	else
	{
		if (document.layers)
		{ // Netscape 4
			if( document[t].display != 'none' )
			{
				document[t].display = 'none';
			}
			else
			{
				document[t].display = d;
			}
		}
		else
		{ // IE 4
			if( document.all[t].style.display != 'none' )
			{
				document.all[t].style.display = 'none';
			}
			else
			{
				document.all[t].style.display = d;
			}
		}
	}
}

function display( t, v )
{
	//t = target
	//v = display (defaults to '')
	
	if( !v )
	{
		v = '';
	}
	
	t.style.display = v;
}

//return false if element kt is visible, otherwise return true
function getVisible( t )
{
	if( document.getElementById )
	{ // DOM3 = IE5, NS6
		if( document.getElementById( t ).style.display == 'none' )
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		if (document.layers)
		{ // Netscape 4
			if( document[t].display == 'none' )
			{
				return false;
			}
			else
			{
				return true;
			}
		}
		else
		{ // IE 4
			if( document.all[t].style.display == 'none' )
			{
				return false;
			}
			else
			{
				return true;
			}
		}
	}
}

//function to make query string based on current query string
function querystring()
{
	//get contains associative array of get values
	var get = arrayFromQueryString( window.location.search );
	
	
	//alter/add/remove values
	
	//alter/remove
	for( i = 0; i < arguments.length; i+=2 )
	{
		for( j in get )
		{
			if( arguments[i] == j )
			{
				if( arguments[i+1] == null )//if user hasn't supplied a new value for this, then delete it
				{
					delete get[j];
				}
				else
				{
					get[j] = arguments[i+1];
				}
				
				arguments[i] = null;//unset this from teh arguments object, for the next step
			}
		}
	}
	
	//add
	for( i = 0; i < arguments.length; i+=2 )
	{
		if( arguments[i] )
		{
			get[(arguments[i])] = arguments[i+1];
		}
	}
	
	//make new querystring
	var qsa = [];
	
	for( i in get )
	{
		if( get[i] != null )
		{
			qsa.push( i+'='+get[i] );
		}
	}
	
	return '?'+qsa.join( '&' );
}

function arrayFromQueryString( query )
{
	var index = query.indexOf( '?' );
	
	var get = new Object();
	
	if( index != -1 )//if there is a querystring
	{
		//var qsa = query.substr( query.indexOf( '?' ) + 1 ).split( '&' );
		var qsa = query.substr( index + 1 ).split( '&' );
		
		for( var i = 0; i < qsa.length; i++ )
		{
			var val = qsa[i].split( '=' );
			
			get[(val[0])] = val[1];
		}
	}
	
	return get;
}

function print_r( array )
{
	var string = '';
	
	for( var i in array )
	{
		string += i+': '+array[i] + "\n";
	}
	
	return string;
}

///////////////////////////////////////
// flash version detection functions //
///////////////////////////////////////

// Detect Client Browser type
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;
jsVersion = 1.1;
// JavaScript helper required to detect Flash Player PlugIn version information
function JSGetSwfVer(i){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	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;
			descArray = flashDescription.split(" ");
			tempArrayMajor = descArray[2].split(".");
			versionMajor = tempArrayMajor[0];
			versionMinor = tempArrayMajor[1];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
      		versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
            flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
      	} else {
			flashVer = -1;
		}
	}
	// 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;
	// Can't detect in all other cases
	else {
		
		flashVer = -1;
	}
	return flashVer;
} 
// If called with no parameters this function returns a floating point value 
// which should be the version of the Flash Player or 0.0 
// ex: Flash Player 7r14 returns 7.14
// If called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) 
{
 	reqVer = parseFloat(reqMajorVer + "." + reqRevision);
   	// loop backwards through the versions until we find the newest version	
	for (i=25;i>0;i--) {	
		if (isIE && isWin && !isOpera) {
			versionStr = VBGetSwfVer(i);
		} else {
			versionStr = JSGetSwfVer(i);		
		}
		if (versionStr == -1 ) { 
			return false;
		} else if (versionStr != 0) {
			if(isIE && isWin && !isOpera) {
				tempArray         = versionStr.split(" ");
				tempString        = tempArray[1];
				versionArray      = tempString .split(",");				
			} else {
				versionArray      = versionStr.split(".");
			}
			versionMajor      = versionArray[0];
			versionMinor      = versionArray[1];
			versionRevision   = versionArray[2];
			
			versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
			versionNum        = parseFloat(versionString);
        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
			if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
				return true;
			} else {
				return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );	
			}
		}
	}	
	return (reqVer ? false : 0.0);
}

function DrawFlashMovieExternal( src, width, height, bgcolor, name, version, flashVars )
{
	version = version != null ? '#version=' + version : '' ;
	
	//<param name="FlashVars" value="jsenabled=true&uid=' . $_GET['uid']; } ?>">
	if( flashVars )
	{
		var fva = new Array();
	
		for( var i in flashVars )
		{
			fva[fva.length] = i+'='+flashVars[i];
		}
		
		var fv = fva.join( ',' );
	}
	
	document.write( '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' );
	document.write( 'id="' + name + '"' );
	document.write( 'title="' + name + '"' );
	document.write( 'width="' + width + '" height="' + height + '"' );
	document.write( 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab' + version + '">' );
	
	if( fv )
	{
		document.write( '<param name="FlashVars" value="' + fv + '" />' );
	}
	document.write( '<param name="movie" value="' + src + '" /><param name="quality" value="high" /><param name="bgcolor" value="' + bgcolor + '" />' );
	
	document.write( '<embed src="' + src + '" quality="high" bgcolor="' + bgcolor + '" ' );
	
	if( fv )
	{
		document.write( 'FlashVars="'+fv+'"' );	
	}
	document.write( 'width="' + width + '" height="' + height + '" name="' + name + '" align="middle"' );
	document.write( 'play="true"' );
	document.write( 'quality="high"' );
	document.write( 'allowScriptAccess="always"' );
	document.write( 'type="application/x-shockwave-flash"' );
	document.write( 'pluginspage="http://www.macromedia.com/go/getflashplayer">' );
	document.write( '<\/embed>' );
	document.write( '<\/object>' );
}

///*
function chkform( form, rules, gen_err )
{
	gen_err = gen_err == undefined ? 'There were errors in the form you submitted' : gen_err;
	
	var errors = [];
	var rule, field;
	
	for( var i in rules )
	{
		rule = rules[i];
		field = form[i];
		
		switch( rule.type )
		{
			case'string':case'text':case'textfield':case'textarea':
				if( field.value.length == 0 && rule['default'] )//if value is empty, and has a default value supplied, use the default value
				{
					field.value = rule['default'];
				}
				
				if( rule.required && field.value.length == 0 )//value is required, but empty
				{
					errors.push( rule.error );//set error
					break;
				}
				
				if( !rule.required && field.value.length == 0 )//value isn't required, and is empty
				{
					break;//stop
				}
				
				if( rule.min != undefined && field.value.length < rule.min )
				{
					errors.push( rule.error );//set error
					break;
				}
				
				if( rule.max != undefined && field.value.length > rule.max )
				{
					errors.push( rule.error );//set error
					break;
				}
				
				//come back to this one.. not used reg. exp. in js before..
				//if( !empty( $conds['reg'] ) && ( ereg( $conds['reg'], $val ) == 0 ) )//if there is a regular expression condition on this, check it
				//{
				//	return $conds['error'];
				//}
				
				break;
			case 'email':
				if( field.value.length == 0 && rule['default'] )//if value is empty, and has a default value supplied, use the default value
				{
					field.value = rule['default'];
				}
				
				if( rule.required && field.value.length == 0 )//value is required, but empty
				{
					errors.push( rule.error );//set error
					break;
				}
				
				if( !rule.required && field.value.length == 0 )//value isn't required, and is empty
				{
					break;//stop
				}
				
				if( !( /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test( field.value ) ) )
				{
					errors.push( rule.error );//set error
					break;
				}
				break;
			default:
				//alert( rule.type );
		}
	}
	
	if( errors.length > 0 )
	{
		err_msg = gen_err;
		
		alert( err_msg+"\n\n- "+errors.join( "\n- " ) );
		
		return false;
	}
	else
	{
		return true;
	}
}//*/

function addLoadEvent( func )
{
	var oldonload = window.onload;
	
	if( typeof window.onload != 'function' )
	{
		window.onload = func;
	}
	else
	{
		window.onload = function()
		{
			oldonload();
			func();
		}
	}
}

function parseQuerystring( qs )// optionally pass a querystring to parse
{ 
	var params = new Object();
	
	if( qs == null )
	{
		qs=location.search.substring(1,location.search.length)
	}
	
	if( qs.length == 0 )
	{
		return params;
	}
	
	// Turn <plus> back to <space>
	// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
	qs = qs.replace(/\+/g, ' ')
	var args = qs.split('&') // parse out name/value pairs separated via &
	var value, pair, name;
	
	// split out each name=value pair
	//doesn't deal with arrays...
	for( var i=0; i < args.length; i++ )
	{
		pair = args[i].split('=');
		name = unescape( pair[0] );
		
		if( pair.length == 2 )
		{
			value = unescape( pair[1] )
		}
		else
		{
			value = '';//empty
		}
		
		if( name.substr( name.length - 2, 2 ) != '[]' )
		{
			params[name] = value
		}
		else//array
		{
			name = name.substr( 0, name.length - 2 );//remove the '[]' at the end
			
			if( !params[name] )
			{
				params[name] = new Array();
			}
			
			params[name].push( value );
		}
	}
	
	return params;
}