// Flash Player Version Detection - Rev 1.5
// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. 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];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
			var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
			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] + '" ';
  		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_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;
}


//function to toggle flash navigation width
//default state is 0 (collapsed)
var flashNavState = 0;
var flashNavDefaultWidth = 215;
var flashNavExpandedWidth = 500;
var flashNavColumnWidth = 191;
var flashNavLightbox;


/* firefox2 for mac doesn't work correctly when combining opacity and wmode transparent */
function detectMacXFF2() {
  var userAgent = navigator.userAgent.toLowerCase();
  if (/firefox[\/\s](\d+\.\d+)/.test(userAgent)) {
    var ffversion = new Number(RegExp.$1);
    if (ffversion < 3 && userAgent.indexOf('mac') != -1) {
      return true;
    }
  }
}

function toggleFlashWidth(columnNum){

	if(columnNum>1)
	{
		
		if (flashNavLightbox == undefined && !(detectMacXFF2()))
		{
			flashNavLightbox = document.getElementById("flashnav-curtain");
			var bodySize = Element.getDimensions(document.body);
			var lightBoxSize = {
				height: Math.max(bodySize.height, getViewportSize().height),
				width: Math.max(bodySize.width, getViewportSize().width)
			};
			Object.extend(flashNavLightbox.style, {
				display: 'block',
				height: lightBoxSize.height+'px',
				width: lightBoxSize.width+'px',
				background: '#000',
				opacity: 0.4,
				filter: 'alpha(opacity=40)',
				position: 'absolute',
				left: 0,
				top: 0
			});
		}
		else if (detectMacXFF2())
		{
			flashNavLightbox = document.getElementById("flashnav-curtain");
			flashNavLightbox.style.backgroundImage="url(/themes/newbase/i/bg_lightbox_curtain.png)";
		    flashNavLightbox.style.backgroundRepeat="repeat";

			var bodySize = Element.getDimensions(document.body);
			var lightBoxSize = {
				height: Math.max(bodySize.height, getViewportSize().height),
				width: Math.max(bodySize.width, getViewportSize().width)
			};
			Object.extend(flashNavLightbox.style, {
				display: 'block',
				height: lightBoxSize.height+'px',
				width: lightBoxSize.width+'px',
				position: 'absolute',
				left: 0,
				top: 0
			}
			);
			
		}
		
		
		else
		{
			flashNavLightbox.style.display = "block";
		}
	}
	else
	{
		if (flashNavLightbox != undefined)
		{
			flashNavLightbox.style.display = "none";	
		}
	}
	
  var newWidth;
  var flashNav = document.getElementById('flashNavigator3');
  if (!flashNav){
    flashNav = document.flashNavigator3;
  }
  newWidth = (typeof columnNum != 'undefined') ? columnNum*flashNavColumnWidth : flashNavColumnWidth;

  try {
    flashNav.width = newWidth;
    flashNav.style.width = newWidth+"px";
  }
  catch(e){
    throw e;
  }
  
  return true;
}

var xmlServed = false;
function getFlashXML()
{
	var hiddenXMLnode = document.getElementById('flashxmltextarea');
	var xml = hiddenXMLnode.value.toString();
	//alert(xml);
	xmlServed = true;
	return xml;
}

function isXmlServed()
{
	return xmlServed;
}


var jsReady = false;

function isReady()
{
	if (jsReady == false && document.getElementById('flashxmltextarea')) {
		jsReady = true;
	}
	return jsReady;
}

function pageInit()
{
	jsReady = true;
	//getFlashXML();
}


function redirectToSearchPage()
{
	var keywordFromPost = document.getElementById("topics-search").value;
	var globalSearchUrl = document.getElementById("globalSearchUrl").value;
	var keyword  = new String(keywordFromPost);
	keyword = keyword.strip().replace("+", "%2B");
	if (keyword.length == 0) return true;
	
	try
	{
		if(document.getElementById("searchAllPortals").checked == true)
    	{
        	document.forms["topics_search"].action = globalSearchUrl + "&topics-search=" + keyword;
    	}
    	else if(document.getElementById("searchAllPortals").checked == false)
    	{
        	var portalSearchUrl = document.getElementById("portalSearchUrl").value;
			document.forms["topics_search"].action = portalSearchUrl + "&topics-search=" + keyword;
    	}
	}
	catch(err)
	{
		document.forms["topics_search"].action = globalSearchUrl + "&topics-search=" + keyword;
	}


}




EventSelectors.register({
	'div#flashxml': function(el, index) {
		pageInit();
	}
}, true);
// check if Recurrence End Date field should be disabled
function checkRecurrence()
{	     
	var recur = document.getElementById('ruleid_0').checked;	
	if (recur)
	{
		//#10185  CA-SIVARAM
		document.getElementById('eventrecurrenceenddate').disabled = false;
		document.getElementById('eventrecurrenceendtime').disabled = false;
		document.getElementById('event_recurrence').style.display = 'none';
		//**CA-SIVARAM.
	}
	else
	{
		document.getElementById('event_recurrence').style.display = 'block';		
		EventSelectors.register({
			'input.rtime': function(el) {
				new kNumberBox({
					node: el,
					options: [
						'1:00 pm',
						'1:30 pm',
						'2:00 pm',
						'2:30 pm',
						'3:00 pm',
						'3:30 pm',
						'4:00 pm',
						'4:30 pm',
						'5:00 pm',
						'5:30 pm',
						'6:00 pm',
						'6:30 pm',
						'7:00 pm',
						'7:30 pm',
						'8:00 pm',
						'8:30 pm',
						'9:00 pm',
						'9:30 pm',
						'10:00 pm',
						'10:30 pm',
						'11:00 pm',
						'11:30 pm',
						'12:00 pm',
						'12:30 pm',
						'1:00 am',
						'1:30 am',
						'2:00 am',
						'2:30 am',
						'3:00 am',
						'3:30 am',
						'4:00 am',
						'4:30 am',
						'5:00 am',
						'5:30 am',
						'6:00 am',
						'6:30 am',
						'7:00 am',
						'7:30 am',
						'8:00 am',
						'8:30 am',
						'9:00 am',
						'9:30 am',
						'10:00 am',
						'10:30 am',
						'11:00 am',
						'11:30 am',
						'12:00 am',
						'12:30 am'
					],
					imgUp: '/themes/admin_default/i/up.gif',
					imgDown: '/themes/admin_default/i/down.gif',
					startValue: (new Date()).format('g:i a'), // Right now time
					sort: function(a,b) {
						var dissector = /^\s*(1?[0-9]{1}):([0-9]{2})\s*([ap]{1}m{1})\s*$/i;
						var aBits = dissector.exec(a);
						var bBits = dissector.exec(b);
						if (aBits[3] > bBits[3]) return 1;
						if (aBits[3] < bBits[3]) return -1;
						if (parseInt(aBits[1]) > parseInt(bBits[1])) return 1;
						if (parseInt(aBits[1]) < parseInt(bBits[1])) return -1;
						if (parseInt(aBits[2]) > parseInt(bBits[2])) return 1;
						if (parseInt(aBits[2]) < parseInt(bBits[2])) return -1;
						return 0;
					},
					freeText: true,
					validate: /^\s*1?[0-9]{1}:[0-9]{2}\s*([ap]{1}m{1})\s*$/i
				});
			}
		});
		//#10185  CA-SIVARAM
		if(document.getElementById('recurrenceend').selectedIndex!=0)
		{
			//#11276 CA-SIVARAM
			//[Tanuja, 2008-06-02, Task 22028 : Modified Addition of dates]
			var sindex=document.getElementById('recurrenceend').selectedIndex;			
			var startDateTime = document.getElementById('eventtimedate').value +' '+ document.getElementsByName('eventtimetime')[0].value;
			
			startDateTime = startDateTime.substring(5,7)+ '/' + startDateTime.substring(8,10) + '/' + startDateTime.substring(0,4) + ' ' + startDateTime.substring(11,19);
			
			var Today = new Date (startDateTime);
			if (Today != "Invalid Date")
			{
				var dTemp = new Date(startDateTime);	
				
				if(sindex==1)				
					dTemp.setDate(dTemp.getDate() + 1);			
				else if(sindex==2)
					dTemp.setDate(dTemp.getDate() + 7);			
				else if(sindex==3)
					dTemp.setMonth(dTemp.getMonth() + 1);			
				else if(sindex==4)
					dTemp.setFullYear(dTemp.getFullYear()+1);
				else if(sindex==5)
					dTemp.setFullYear(dTemp.getFullYear()+5);
				else if(sindex==6)
					dTemp.setFullYear(dTemp.getFullYear()+20);
	
				var correctMonth = dTemp.getMonth() + 1;
				if (correctMonth < 10) correctMonth = '0' + correctMonth;
				var correctDate = dTemp.getDate();
				if (correctDate < 10) correctDate = '0' + correctDate;
				var recurDate = dTemp.getFullYear() + "-" + correctMonth + "-" + correctDate;
				var recurTime = startDateTime.substring(11,19);
			}
			else
			{
				alert('Please enter a valid event start date');
				var recurDate = "";
				var recurTime = "";				
			}
			
			document.getElementById('eventrecurrenceenddate').value=recurDate;
			document.getElementById('eventrecurrenceendtime').value=recurTime;
			document.getElementById('eventrecurrenceenddate').disabled = true;
			document.getElementById('eventrecurrenceendtime').disabled = true;
			//#11276 ** CA-SIVARAM
		}
		else
		{
			document.getElementById('eventrecurrenceenddate').disabled = false;
			document.getElementById('eventrecurrenceendtime').disabled = false;				
		}
		//**CA-SIVARAM	
	}
}

//12122 CA-Murali
//12881 CA-Murali
function setSearchfocus(cval)
{
	document.sitesearch.q.value="";
	document.sitesearch.q.focus();		 
}
function setTopicfocus(cval)
{
	document.topics_search.topics_search.value="";
	document.topics_search.topics_search.focus();		 
}

function validateEventStartDate()
{
	var startDateTime = document.getElementById('eventtimedate').value +' '+ document.getElementsByName('eventtimetime')[0].value;			
	startDateTime = startDateTime.substring(5,7)+ '/' + startDateTime.substring(8,10) + '/' + startDateTime.substring(0,4) + ' ' + 		startDateTime.substring(11,19);	

	var eventStartDateTime = new Date (startDateTime);
	var currentDateTime = new Date();	
	if (eventStartDateTime < currentDateTime)
	{		
		var answer = confirm('The date you have selected is in the past. Do you want to save this date?') ;
		if (!answer)		
			document.getElementById('eventtimedate').value = document.getElementsByName('eventtimedate_original')[0].value;			
		else
			document.getElementsByName('eventtimedate_original')[0].value = document.getElementById('eventtimedate').value;
		
	}
}

function getCalendarDate()
{
   var now         = new Date();
   var monthnumber = now.getMonth();
   var monthday    = now.getDate();
   var year        = now.getYear();

   if(year < 2000) { year = year + 1900; }
   monthnumber = monthnumber + 1;
   if (monthnumber < 10) monthnumber = '0' + monthnumber;
   if (monthday < 10) monthday = '0' + monthday;
   var dateString = year + '-' + monthnumber + '-' + monthday;
   return dateString;
} // function getCalendarDate()

function getClockTime()
{
   var now    = new Date();
   var hour   = now.getHours();
   var minute = now.getMinutes();
   var second = now.getSeconds();
   var ap = "am";
   if (hour   > 11) { ap = "pm";             }
   if (hour   > 12) { hour = hour - 12;      }
   if (hour   == 0) { hour = 12;             }
   if (hour   < 10) { hour   = "0" + hour;   }
   if (minute < 10) { minute = "0" + minute; }
   if (second < 10) { second = "0" + second; }
   var timeString = hour +
                    ':' +
                    minute +
                    ':' +
                    second +
                    " " +
                    ap;
   return timeString;
} // function getClockTime()
//**end #12122 CA-Murali

//#10185 CA-SIVARAM
//if (rCheck == 'true')
//{
//	document.getElementById('content-form-time').style.display = 'none';
//}
//**CA-SIVARAM.

var messageStack = stdClass.extend({
	//constructor
	constructor: function(el, settings) {
		this.base();
		// initialize settings
		Object.extend(this.s, {
			timer: null,
			waitTime: 10000,
			effectTime: 5000,
			closeSelector: ".close",
			autoRemove: (typeof(settings) != 'undefined' && typeof(settings.autoRemove) != 'undefined') ? settings.autoRemove : false
			/* put extensions to collections here */
		});
		
		// initialize nodes
		Object.extend(this.n, {
			el: el,
			childEl: [],
			tempContainer: document.createElement('div')
			/* put extensions to nodes here */
		});
		
		// initialize collections
		Object.extend(this.c, {
			messageFunctions: {
				success: this.successMessage.bind(this),
				error: this.errorMessage.bind(this)
			}
			/* put extensions to collections here */
		});
		var eles = this.n.el.getElementsBySelector('ul');
		
		for(var x=0; x<eles.length; x++){
			var childEl = {
				el: eles[x],
				timer: null
			}
			if (this.s.autoRemove){
			  this.startTimer(childEl);        
      }
			this._attachEvents(childEl);
		}
	},
	closeClicked: function(childEl){
		this.removeMessage(childEl);
	},
	addMessage: function(message, type){
		if(!this.n.el){
			return;
		}
		if(typeof(this.c.messageFunctions[type]) == "function"){
			var html = this.c.messageFunctions[type](message);
		}else{
			return;
		}
		
		this.n.tempContainer.innerHTML = html;
		var childEl = {
			el:this.n.tempContainer.firstChild,
			timer:null
		}
		this.n.el.appendChild(childEl.el);
		this._attachEvents(childEl);
		Element.show(this.n.el);
		if(window.Effect && this.s.autoRemove){
			Effect.BlindDown(childEl.el,{
				duration: (this.s.effectTime/1000),
				afterFinishInternal: function(effect) {
					effect.element.undoClipping();
					effect.element.style.height = '';
				}
			});
		}else{
			Element.show(childEl.el);
		}
		if (this.s.autoRemove){
		  this.startTimer(childEl);
	  }
	},
	removeMessage: function(childEl) {
		this.endTimer(childEl);
		if(window.Effect && this.s.autoRemove){
			Effect.Fade(childEl.el, {
				duration: (this.s.effectTime/1000)
			});
			/*Effect.BlindUp(childEl.el,{
				duration: (this.s.effectTime/1000),
				afterFinishInternal: function(effect) {
					effect.element.undoClipping();
					effect.element.style.height = '';
					Element.hide(effect.element);
				}
			});*/
		}else{
			Element.hide(this.n.el);
		}
	},
	startTimer: function(childEl) {
		this.endTimer(childEl);
		this.s.timer = setTimeout(this.removeMessage.bind(this, childEl), this.s.waitTime);
	},
	endTimer: function(childEl) {
		if(childEl.timer != null){
			clearTimeout(childEl.timer);
			childEl.timer = null;
		}
	},
	successMessage: function(message){
		var html = '<ul class="success">';
		html += '<li class="title">Success</li>';
		html += '<li>' + message + '</li>';
		html += '</ul>';
		return html;
	},
	errorMessage: function(message){
		var html = '<ul class="error">';
		html += '<li class="title">Error</li>';
		html += '<li>' + message + '</li>';
		html += '<li class="close">Close me</li>';
		html += '</ul>';
		return html;
	},
	_attachEvents: function(childEl) {
		var eles = document.getElementsBySelector(this.s.closeSelector, (childEl.el||this.n.el));
		for(var x=0; x<eles.length; x++){
			this.eObserve(eles[x], 'click', this.closeClicked.bind(this, childEl));
		}
	}
});
Behaviour.register({
	'#messagestack' : function(el){
		new messageStack (el);
	}
});
function makeFlashObject(SwfURL, w, h, id, flashVars, flashScale, flashVersion){
	if (flashVersion == undefined) {
		flashVersion = 7;
	}

	var SwfHTML =
		'<object \n' +
			'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" \n' +
			'codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/Swflash.cab#version=' + flashVersion + ',0,0,0" \n' +
			'id="'+id+'" \n' +
			'align="top" \n' +
			'width="'+ w +'" height="' + h + '" \n' +
		'>\n' +
			'<param name="movie" value="'+SwfURL+'" />\n' +
			(flashVars ? ('<param name="FlashVars" value="'+ flashVars +'"/>\n') : '') +
			'<param name="allowScriptAccess" value="always" />\n' +
			//'<param name="bgcolor" value="#E4EFCF" />\n' +
			'<param name="menu" value="false"/>\n' +
			'<param name="quality" value="high" />\n' +
			'<param name="wmode" value="transparent" />\n' +
			(flashScale ? ('<param name="scale" value="'+ flashScale +'"/>\n') : '') +
			'<embed \n' +
				'type="application/x-shockwave-flash" \n' +
				'pluginspage="http://www.macromedia.com/go/getflashplayer" \n' +
				'name="' + id + '" \n' +
				'align="top" \n' +
				'width="' + w + '" height="' + h + '" \n' +
				'src="'+ SwfURL +'" \n' +
				(flashVars ? ('FlashVars="' + flashVars + '" \n') : '') +
				'allowScriptAccess="always" \n' +
		//		'bgcolor="#E4EFCF" \n' +
				'menu="false" \n' +
				'quality="high" \n' +
				'wmode="transparent" \n' +
				(flashScale ? ('scale="' + flashScale + '" \n') : '') +
			'/>\n' +
		'</object>';
	document.write(SwfHTML);
}

// Flash Player Version Detection - Rev 1.5
// Detect Client Browser type
// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. 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];
			if ( descArray[3] != "" ) {
				tempArrayMinor = descArray[3].split("r");
			} else {
				tempArrayMinor = descArray[4].split("r");
			}
			var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
			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] + '" ';
  		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_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;
}
function confirmOwnerChange(el) {
	var theForm = el.parentNode.parentNode.parentNode.parentNode;
	var newUserRole = el.value;
	if (newUserRole == 1) {
		var answer = confirm('This will demote yourself to admin and change the portal owner.\nThis process is not undoable, do you want to continue?');
		if (answer == true) {
			theForm.submit();
		}
	} else {
		theForm.submit();
	}
}var ResultsRange =
{
	set: function(value) {
		if (location.search.length <= 1)
			location.search = "?range=" + value;
		else if (/\?(?:.*?&)?range=\d+/.test(location.search))
			location.search = location.search.replace(/(\?(?:.*?&)?range=)\d+/, "$1" + value);
		else
			location.search += "&range=" + value;
	}
};

EventSelectors.register(
{
	'select.resultsPerPage': function(element) {
		Event.observe(element, 'change', function() {
			ResultsRange.set(element.value);
		});
	}
}, true);