<!--

/* "popup" is used by the milonic menu!
	function popup(href) {
	var EditWin = window.open(href, 'EditWindow', 'width=900,height=720,scrollbars=yes,resizable=yes,status=yes');
	if (EditWin.opener == null) EditWin.opener = window;
	}
*/



function hideItemByClass(thisClass){
	var theseElements = getElementsByClass(thisClass);
	for (i=0;i<theseElements.length;i++)
	//document.write(aryTest[i]);
	theseElements[i].style.display = 'none'
}
				

function resizeFrame(thisFrame) {
	frameToSet = document.getElementById(thisFrame);
	frameToSet.style.height = frameToSet.contentWindow.document.body.scrollHeight + "px";
	//alert(frameToSet.style.height);
}



// Change the page title and subtile dynamically:
function setPageTitle(thisPageTitle,thisPageSubTitle) {
	if (thisPageTitle != '') {
		var newText = document.createTextNode(thisPageTitle);
		var pageTitle = document.getElementById('pageTitle');
		if (pageTitle.hasChildNodes()){
			pageTitle.removeChild(pageTitle.lastChild);
		}
		pageTitle.appendChild(newText);
	}
	if (thisPageSubTitle != '') {
		var newText = document.createTextNode(thisPageSubTitle);
		var pageSubTitle = document.getElementById('pageSubTitle');
		if (pageSubTitle.hasChildNodes()){
			pageSubTitle.removeChild(pageSubTitle.lastChild);
		}
		pageSubTitle.appendChild(newText);
	}
}
				
				

// Enable and disable form fields or buttons:
function enableField(fieldID) {
	var fieldToEnable = document.getElementById(fieldID);
	fieldToEnable.disabled=false;
}
function disableField(fieldID) {
	var fieldToEnable = document.getElementById(fieldID);
	fieldToEnable.disabled=true;
}

function contentLockedAlert(thisElement) {
	alert('This content is locked.\nChanges to this field will not be saved.');	
	document.getElementById(thisElement).onclick='';
}
	
function toggleFieldEnabled(fieldID) {
	var fieldToToggle = document.getElementById(fieldID);
	if (fieldToToggle.disabled==true){
		fieldToToggle.disabled=false; }
	else if (fieldToToggle.disabled==false){
		fieldToToggle.disabled=true; }
}

function SetFieldValue(FiedId,FieldValue) {
	var fieldToSet = document.getElementById(FiedId);
	fieldToSet.value = FieldValue;
}

function checkRadioButton(FiedId) {
	var fieldToSet = document.getElementById(FiedId);
	fieldToSet.checked = true;
}

function uncheckRadioButton(FiedId) {
	var fieldToSet = document.getElementById(FiedId);
	fieldToSet.checked = false;
}

function ClearField(FiedlName){
			var FormField = document.getElementById(FiedlName);
			FormField.value = '';
		}
		
function popupWindow(href,width,height,windowName) {
	if (windowName == null) windowName = 'EditWindow';
	var EditWin = window.open(href, windowName, 'width=' + width +',height=' + height + ',scrollbars=yes,resizable=yes,status=yes');
	if (EditWin.opener == null) EditWin.opener = window;
	}

function popupLayout(href) {
	var EditWin = window.open(href, 'EditWindow', 'width=900,height=720,scrollbars=yes,resizable=yes,status=yes');
	if (EditWin.opener == null) EditWin.opener = window;
	}
/* 
function popup(href) {
	var EditWin = window.open(href, 'EditWindow', 'width=800,height=850,scrollbars=yes,resizable=yes,status=yes');
	if (EditWin.opener == null) EditWin.opener = window;
	}
*/
	
function popup_infowin(href) {
	var infoWin = window.open(href, 'info', 'width=500,height=400,scrollbars=yes,resizable=yes');
	if (infoWin.opener == null) infoWin.opener = window;
	return false;
}

function PopupHelpWin(href) {
	var HelpWin = window.open(href, 'info', 'width=700,height=600,scrollbars=yes,resizable=yes,left=100,top=50');
	if (HelpWin.opener == null) HelpWin.opener = window;
}


function reloadParent(href,focusParent,closeSelf) {
	//window.opener.document.location.reload();
	window.opener.document.location = href;
	if (focusParent==true || focusParent==null){
		window.opener.focus();
	}
	if (closeSelf==true || closeSelf==null){
		window.self.close();
	}
}
	
	
	
function confirmAction(url,message){
		var msg = message ;
		if (confirm(msg)) {
			location.replace(url);
		}
	}

function confirmActioniFrame(url,message){
		var msg = message ;
		if (confirm(msg)) {
			SetFieldEditFrame(url,'Edit',500,500);
		}
	}

function confirmActionFormSubmit(formId,message){
		var msg = message ;
		if (confirm(msg)) {
			var formToSubmit = document.getElementById(formId);
			formToSubmit.submit();
		}
	}	
		
		
		
// Old version still in use:
function SetFieldEditFrame(FrameURL,EdiforFrameLabelValue,FrameWidth,FrameHeight)
	{
		
		var EditFieldDivOn = document.getElementById("EditFieldOn");
		EditFieldDivOn.style.width = FrameWidth + 1;
		//EditFieldDivOn.style.height = FrameHeight + 38;
		EditFieldDivOn.style.height = FrameHeight + 1;
		
		var EditFieldMenuBarItem = document.getElementById("EditFieldMenuBar");
		EditFieldMenuBarItem.style.width = FrameWidth - 8;
		
		var FieldEditFrameItem = document.getElementById("FieldEditFrame");
		FieldEditFrameItem.style.width = FrameWidth+'px';
		FieldEditFrameItem.style.height = FrameHeight+'px';
		
		var newText = document.createTextNode(EdiforFrameLabelValue);
    	var EdiforFrameLabel = document.getElementById("EditorFrameLabelElement");
    	if (EdiforFrameLabel.hasChildNodes()){
			EdiforFrameLabel.removeChild(EdiforFrameLabel.lastChild);
		}
		EdiforFrameLabel.appendChild(newText);
		
		frames["FieldEditFrame"].location.href = FrameURL;
		
	}

// New version with more flexibility:
// ADDED: DivMenuBar,DivFrameLabelElement to parameters passed in...
function SetDivFrame(DivName,FrameName,FrameURL,EdiforFrameLabelValue,FrameWidth,FrameHeight,DivMenuBar,DivFrameLabelElement)
	{
		//DivOn.style.width = FrameWidth + 1;
		//DivOn.style.height = FrameHeight + 38;
		if (FrameWidth != '' && FrameHeight != '') {
			var DivOn = document.getElementById(DivName);
			DivOn.style.width = FrameWidth;
			DivOn.style.height = FrameHeight;
			
			var FieldEditFrameItem = document.getElementById(FrameName);
			FieldEditFrameItem.style.width = FrameWidth;
			FieldEditFrameItem.style.height = FrameHeight;
		}
		
		if (DivMenuBar != '') {
			var EditFieldMenuBarItem = document.getElementById(DivMenuBar);
			EditFieldMenuBarItem.style.width = FrameWidth - 8;
		}
		
		
		if (DivFrameLabelElement != '') {
			var newText = document.createTextNode(EdiforFrameLabelValue);
    		var EdiforFrameLabel = document.getElementById(DivFrameLabelElement);
    		if (EdiforFrameLabel.hasChildNodes()){
				EdiforFrameLabel.removeChild(EdiforFrameLabel.lastChild);
			}
			EdiforFrameLabel.appendChild(newText);
		}
		
		frames[FrameName].location.href = FrameURL;
	}
	
	
	
function setFrameHeight(baseHeight,numberOfItems,itemHeight,frameId){
	var thisHeight = baseHeight + numberOfItems*itemHeight + 'px' ;
	document.getElementById(frameId).style.height = thisHeight;
}


function increaseFrameHeight(frameId,heightToAdd){
	var currentHeight = document.getElementById(frameId).style.height ;
	var currentHeight = currentHeight.replace('px', '');
	var newHeight = parseInt(currentHeight) + parseInt(heightToAdd) + 'px';
	//alert(currentHeight+'-'+newHeight);
	document.getElementById(frameId).style.height = newHeight;
}



function setFrameURL(FrameName,FrameURL)
	{
		//alert(FrameName + ',  ' + FrameURL);  
		frames[FrameName].location.href = FrameURL;
	}


		
		
function setElementFrame(Element, Template, Group, Item)
{
	//alert(Element +', '+ Template + ', ' + Group + ', ' + Item);
	if (Element == "email")
	{
		alert('Got here!');
	}
}

function SetScrollingFrameSize(FrameName,FrameWidth,FrameHeight)
	{
		
		var ScrollingFrame = document.getElementById(FrameName);
		ScrollingFrame.style.width = FrameWidth;
		ScrollingFrame.style.height = FrameHeight;
		
	}



function confirmActionNewWin(url,message){
		var msg = message ;
		if (confirm(msg)) {
			//location.replace(url);
			window.open(url, 'NewWindow', 'width=800,height=850,scrollbars=yes,resizable=yes,status=yes');
		}
	}
	
function ShowItem(ItemOn,ItemOff)
	{		
		try {
			var ShowItemOn = document.getElementById(ItemOn);
				ShowItemOn.style.display = 'inline';		
			var ShowItemOff = document.getElementById(ItemOff);
				ShowItemOff.style.display = 'none';	
		} catch (err) {
			//alert('Error running ShowItem');
		}
	}
	
function setItemVisibility(ItemOn,ItemOff)
	{		
		
		var ShowItemOn = document.getElementById(ItemOn);
			ShowItemOn.style.visibility = 'visible';		
		var ShowItemOff = document.getElementById(ItemOff);
			ShowItemOff.style.visibility = 'hidden';		
	}	
	
	
	
	
function setItemPosition(itemId,top,left)
	{		
		var thisItemPosition = document.getElementById(itemId);
			//ShowItemOn.style.z-index = 100;	
			thisItemPosition.style.position = 'absolute';	
			thisItemPosition.style.top = '20px';	
			thisItemPosition.style.left = '20px';	
	}


function openPopupWindow(theURL) { //v2.0 
	  window.open(theURL,'Glossary','height=360,width=420,toolbar=no,menubar=no,scrollbars=yes, resizable=yes,location=no,directories=no,status=no'); 
	} 		
			


function highlightRow(thisID,bkColor) {
		var thisHighlightRow = document.getElementById('highlightRow'+thisID);
		thisHighlightRow.style.backgroundColor  = bkColor;
	}
				
				


/* Cookies */
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}




<!-- Begin Checkbox Check All

function toggleChecked(oElement) 
      { 
        oForm = oElement.form; 
        oElement = oForm.elements[oElement.name]; 
        if(oElement.length) 
        { 
          bChecked = oElement[0].checked; 
          for(i = 1; i < oElement.length; i++) 
            oElement[i].checked = bChecked; 
        } 
      } 
      
      function toggleIndeterminate(oElement) 
      { 
        oForm = oElement.form; 
        oElement = oForm.elements[oElement.name]; 
        if(oElement.length) 
        { 
          bIndeterminate = false; 
          bChecked = true; 
          nChecked = 0; 
          for(i = 1; i < oElement.length; i++) 
            if(oElement[i].checked) 
              nChecked++; 
          if(nChecked < oElement.length - 1) 
          { 
            if(nChecked) 
              bIndeterminate = true; 
            else 
            { 
              bIndeterminate = false; 
              bChecked = false; 
            } 
          } 
          else 
          { 
            bIndeterminate = false; 
          } 
          oElement[0].indeterminate = bIndeterminate; 
          oElement[0].checked = bChecked; 
        } 
      }

// onchange event that resets attribute values for Account and ProfileGroup:
function resetVals(id, form)
{
	var myname = document.getElementById(id).name;
	var myval = document.getElementById(id).value;
	var myid = document.getElementById(id).id;
	
	
	if (myid == 'selAccountID')
		{
			var mygroup = "***";
			document.frmReportingCenter.ProfileGroupID.value = "";
			document.frmReportingCenter.Report_Type.value = "";
			//alert("AccountID has changed" + myid + ", " + myval + ", " + mygroup);
		}
		else
		{
		//alert("We do have an onchange event!" + myid +", "+ myval);
		}
	document.frmReportingCenter.submit(form);
}

//Get the description for the trigger selected.
function getDescription(x)
{
	for(i=0; i < 10; i++)
	{	//alert('Array has elements :' + TriggerArray.length + 'triggerid passed is :' + x);
		var myTrigger = TriggerArray[i].split("|");
		var myTriggerId = myTrigger[0];
		var myTriggerLabel = myTrigger[1];
		var myTriggerDescription = myTrigger[2];
		//alert('myTrigger is : ' + myTrigger);
		//alert('triggerid passed is : ' + x + ' myTriggerId is : ' + myTriggerId);
		
		if (x == myTriggerId && myTriggerDescription != '')
		{ //alert('Triggerid passed is : ' + x + 'Description is: ' + myTriggerDescription);
			document.updateTriggers.textDescription.value = myTriggerDescription;
		}else{
			document.updateTriggers.textDescription.value = 'No description available';
		}
	}
}

function addToList(listField, newText) 
{
   if ( ( newText == "(Enter a new name here.)" ) || ( newText == "" ) ) {
      alert("You cannot add blank values!");
   } else {
	   //alert("Seems to get here! " + newText + ' ' + newValue);
      var len = listField.length++; // Increase the size of list and return the size
      listField.options[len].value = newText;
      listField.options[len].text = newText;
      listField.selectedIndex = len; // Highlight the one just entered (shows the user that it was entered)
   } // Ends the check to see if the value entered on the form is empty
}

function removeFromList(listField) {
   if ( listField.length == -1) {  // If the list is empty
      alert("There are no values which can be removed!");
   } else {
      var selected = listField.selectedIndex;
      if (selected == -1) {
         alert("You must select an entry to be removed!");
      } else {  // Build arrays with the text and values to remain
         var replaceTextArray = new Array(listField.length-1);
         var replaceValueArray = new Array(listField.length-1);
         for (var i = 0; i < listField.length; i++) {
            // Put everything except the selected one into the array
            if ( i < selected) { replaceTextArray[i] = listField.options[i].text; }
            if ( i > selected ) { replaceTextArray[i-1] = listField.options[i].text; }
            if ( i < selected) { replaceValueArray[i] = listField.options[i].value; }
            if ( i > selected ) { replaceValueArray[i-1] = listField.options[i].value; }
         }
         listField.length = replaceTextArray.length;  // Shorten the input list
         for (i = 0; i < replaceTextArray.length; i++) { // Put the array back into the list
            listField.options[i].value = replaceValueArray[i];
            listField.options[i].text = replaceTextArray[i];
         }
      } // Ends the check to make sure something was selected
   } // Ends the check for there being none in the list
}


function isValidDate(dateStr, format) {
   if (format == null) { format = "MDY"; }
   format = format.toUpperCase();
   if (format.length != 3) { format = "MDY"; }
   if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1) ) { format = "MDY"; }
   if (format.substring(0, 1) == "Y") { // If the year is first
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
   } else if (format.substring(1, 2) == "Y") { // If the year is second
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
   } else { // The year must be third
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
   }
   // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
   if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { return false; }
   var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
   // Check to see if the 3 parts end up making a valid date
   if (format.substring(0, 1) == "M") { var mm = parts[0]; } else if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
   if (format.substring(0, 1) == "D") { var dd = parts[0]; } else if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
   if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
   if (parseFloat(dd) != dt.getDate()) { return false; }
   if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
   return true;
}




/*
	parseUri 1.2.1
	(c) 2007 Steven Levithan <stevenlevithan.com>
	MIT License
*/

function parseUri (str) {
	var	o   = parseUri.options,
		m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
		uri = {},
		i   = 14;

	while (i--) uri[o.key[i]] = m[i] || "";

	uri[o.q.name] = {};
	uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
		if ($1) uri[o.q.name][$1] = $2;
	});

	return uri;
};

parseUri.options = {
	strictMode: false,
	key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
	q:   {
		name:   "queryKey",
		parser: /(?:^|&)([^&=]*)=?([^&]*)/g
	},
	parser: {
		strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
		loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
	}
};





	// Convert HTML content to TEXT:
	function htmlToText(inputHTML){
		var strInputCode = inputHTML;
		/* 
			This line is optional, it replaces escaped brackets with real ones, 
			i.e. &lt; is replaced with < and &gt; is replaced with >
		*/	
		strInputCode = strInputCode.replace(/&(lt|gt);/g, function (strMatch, p1){
			return (p1 == "lt")? "<" : ">";
		});
		var lineBreak = '\r\n';
		var strTagStrippedText = strInputCode;
		var strTagStrippedText = strTagStrippedText.replace(/<br[^>]*>/g, lineBreak);
		var strTagStrippedText = strTagStrippedText.replace(/<p[^>]*>/g, lineBreak);
		var strTagStrippedText = strTagStrippedText.replace(/<tr[^>]*>/g, lineBreak);
		var strTagStrippedText = strTagStrippedText.replace(/<li[^>]*>/g, lineBreak);
		var strTagStrippedText = strTagStrippedText.replace(/<\/?[^>]+(>|$)/g, "");
		//alert("Input code:\n" + strInputCode + "\n\nOutput text:\n" + strTagStrippedText);	
		return strTagStrippedText; 
	}
	
	
	
	
	
	// Hide elements by class name:

	function getElementsByClass(searchClass,node,tag) {
	  var classElements = new Array();
	  if (node == null)
		node = document;
	  if (tag == null)
		tag = '*';
	  var els = node.getElementsByTagName(tag);
	  var elsLen = els.length;
	  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	  for (i = 0, j = 0; i < elsLen; i++) {
		if (pattern.test(els[i].className) ) {
		  classElements[j] = els[i];
		  j++;
		}
	  }
	  return classElements;
	}
	
	function hideElementsByClass(thisClass){
		var theseElements = getElementsByClass(thisClass);
		for (i=0;i<theseElements.length;i++)
		//document.write(aryTest[i]);
		theseElements[i].style.display = 'none';
	}
	
	function clearTextElementsByClass(thisClass){
		var theseElements = getElementsByClass(thisClass);
		for (i=0;i<theseElements.length;i++)
		//document.write(aryTest[i]);
		theseElements[i].value = '';
	}
	
	function clearRadioElementsByClass(thisClass){
		var theseElements = getElementsByClass(thisClass);
		for (i=0;i<theseElements.length;i++)
		//document.write(aryTest[i]);
		theseElements[i].checked = false;
	}
	
	function clearSelectElementsByClass(thisClass){
		var theseElements = getElementsByClass(thisClass);
		for (i=0;i<theseElements.length;i++)
		//document.write(aryTest[i]);
		theseElements[i].selectedIndex = 0;
	}




				
				

//-->
















