/// <summary>
/// All base Javascript functions except for Custom Validation JS functions.
/// </summary>
///<Version>1.0.0.00</Version>
var ContentWindow;

// SCORM cross domain script issue
/*
var strSCORMDomain = document.domain;
var intIndex = strSCORMDomain.lastIndexOf('.');
var strSCORMString = strSCORMDomain;
if(intIndex > 0)
{
   strSCORMString = strSCORMDomain.substring(intIndex);
   if(strSCORMString.length <= 5) // .net/.com/.org/.info/.us etc
   {
     intIndex = strSCORMDomain.lastIndexOf('.', intIndex-1);
     if(intIndex > 0)
     {
     strSCORMString = strSCORMDomain.substring(intIndex+1);
     }
   }
}
document.domain = strSCORMString;
*/
//

var blnFileRadioButtonEnabled = true;
var strInternalFile = "";

var newwindow;
var blnDGAjaxInProgress=false;

var blnHasMadeChange = false;
var strUserIdHash = "";
var strCourseIdHash = "";
var strSessionIdHash = "";
var intSelectedTabIndex = -1;
var strTabId = "";
var strTabKey = "";
var strSelectedTabKey="";
var ctlWithFocus;

// Scorm window functions
var strScormCourseType = "";
var strScormCourseId = "";
var strScormLaunchId = "";

var strScormLaunchLink = "";
var strScormLaunchedItemId = "";

var blnWaitForSCO = true;

var intWaitForLMSFinishHandle;
var intForceLMSFinishHandle;

var bln508C = false;
var SCORMnodeId;

var isNavVisible = "true";

var intRefreshParentTimer = -1;
var strCurrentLocation;
var blnDomainInfoClicked = false;
var strDomainNodeIdForInfo = "";
var blnKeywordsInput = false;
var strKeywordsString = "";

function DetermineKeywords()
{
	var objForm = document.BaseForm;

	for(i=0;i<objForm.elements.length;i++)
	{
		var element = objForm.elements[i];
		if((element.name.indexOf("MGR_LAST_NAME") != -1 || 
			element.name.indexOf("MGR_FIRST_NAME") != -1 || 
			element.name.indexOf("USR_LAST_NAME") != -1 || 
			element.name.indexOf("USR_FIRST_NAME") != -1 || 
			element.name.indexOf("SearchFor") != -1) && 
			element.name != "SearchForSite")
		{
			strKeywordsString += element.value;
			blnKeywordsInput = true;
		}
	}
}

function ValidateAllKeywordsInput(arrElements) 
{
	var objForm = document.BaseForm;
	var strBuildString = "";
	var blnBreakUpperLoop = false;

	for(i=0;i<objForm.elements.length;i++)
	{
		var element = objForm.elements[i];
		var elementtype = element.type;
		var elementname = element.name
		
		//
		//text
		
		if (elementtype == "text" || elementtype == "select-one")
		{
			for (var k=0;k<arrElements.length;k++) 
			{
				if (element.name.indexOf(arrElements[k]) != -1 && 
					element.name.indexOf("SearchForSite") == -1 &&
					element.name.indexOf("SearchType") == -1 &&
					element.value.indexOf("CreateUserAccount") == -1 &&
					element.value.indexOf("CoachingRoster") == -1)
				{
					switch (elementtype)
					{
						case "text":
							strBuildString += element.value;
							break;
							
						case "select-one":
							strBuildString += element.value;
							break;
							
						default:
							break;
					}
				}
				
				if (strBuildString != "") 
				{
					blnBreakUpperLoop = true;
					break;
				}
			}
		}
		if (blnBreakUpperLoop) 
		{
			break;
		}
	}
	
	if (strBuildString == "") 
	{
		alert(GetLocalizedMessage('ML.BASE.JSMSG.NoBlankSearch'));
		blnBreakUpperLoop = false;
		return false;
	} 
	else 
	{
		strBuildString = "";
	}
}

var blnTrueSearchButton = false;
function ValidateKeywordInput()
{
	DetermineKeywords();
	
//	alert (blnKeywordsInput + '\n' + blnTrueSearchButton + '\n' + strKeywordsString);
	
	if (blnKeywordsInput && blnTrueSearchButton && strKeywordsString == "") 
	{
		alert(GetLocalizedMessage('ML.BASE.JSMSG.NoBlankSearch'));
		blnTrueSearchButton = false;	
		return false;
	} 
	else 
	{
		strKeywordsString = "";
	}
}


function ValidateGlobalSearchInput()
{
	if (GetConfigSetting('ValidateKeywordInput') == "On") { 
		var objForm = document.BaseForm;

		for(i=0;i<objForm.elements.length;i++)
		{
			var element = objForm.elements[i];
			if(element.name == "SearchForSite")
			{
				strKeywordsString = element.value;
				blnKeywordsInput = true;
			}
		}
		
		
		if (blnKeywordsInput && (strKeywordsString == "" || strKeywordsString == GetLocalizedMessage('ML.BASE.SearchText'))) 
		{
			alert(GetLocalizedMessage('ML.BASE.JSMSG.NoBlankSearch'));
			blnTrueSearchButton = false;	
			return false;
		}
	}
}

///EventHandler when DomainTree information Icon is clicked
//Have hardcoded the treeId since .Net appends stuff around
//actual set TreeId
function DomainTreeInfoIconClicked(treeId, nodeId) 
{
    blnDomainInfoClicked = true;
    strDomainNodeIdForInfo = nodeId;
}

function DomainConsoleTreeClick(treeId, nodeId, button)
{
    if(blnDomainInfoClicked)
    {
    	var objTree = null;
	    objTree = igtree_getTreeById(treeId);
	    if(null != objTree)
	    {
		    objTree.CancelPostBack = true;
		    blnDomainInfoClicked = false;
        	GoViewInformation(strDomainNodeIdForInfo, 'Domain');
	    }
	}
}

function SetRefreshTimer()
{
	// Set refresh timer only if ML_AutomaticPageRefresh variable is true
	var v = document.getElementById('ML_AutomaticPageRefresh');
	if(v != null)
	{
	   if(v.value == 'true')
	   {
	       // If another popup is launched by same user - TTU Server too busy issue.
	       if(intRefreshParentTimer != -1)
	       {
	       clearInterval(intRefreshParentTimer);
	       }
    	   intRefreshParentTimer = setInterval(RefreshParent, 300);
	   }
	}
}

function RefreshParent()
{
	if(ContentWindow != null && ContentWindow.closed)
	{
		clearInterval(intRefreshParentTimer);
		//
		window.location.replace(window.location.href);
	}
}

function UnloadSCO()
{
    intWaitForLMSFinishHandle = setInterval(WaitForLMSFinish, 100);
    intForceLMSFinishHandle = setTimeout(ForceLMSFinish, 1000);
    blnWaitForSCO = true;
    top.scorm_block_info.location.href = GetCalculatedUrl('Courseware/SCORM/Navigation/SCONavigationWait.htm');
}

function WaitForLMSFinish()
{
    if(!top.scorm_course_api.blnInitialized)
	{
	   clearInterval(intWaitForLMSFinishHandle);
	   clearTimeout(intForceLMSFinishHandle);
	   RefreshScormMenu();
	}
}

function ForceLMSFinish()
{
    if(top.scorm_course_api.blnInitialized)
	{
	    if(blnWaitForSCO)
	    {
	       blnWaitForSCO = false;
	       if(strScormCourseType == 'SCORM12')
	       {
           top.scorm_course_api.LMSFinish('');
           }
           else
           {
           top.scorm_course_api.Terminate('');
           }
           intForceLMSFinishHandle = setTimeout(ForceLMSFinish, 1000);
        }
        else
        {
           clearInterval(intWaitForLMSFinishHandle);
           RefreshScormMenu();
        }
	}
}

function RefreshScormMenu()
{
	var strCourseId = '';
	if(strScormCourseType == 'SCORM12')
	{
		strCourseId = top.scorm_commnunication_form.document.NavigationForm.strCourseId.value;
	}
	else
	{
		strCourseId = top.Navigation.document.NavigationForm.strCourseId.value;
	}
	if(strScormLaunchLink != '')
	{
		if(strScormCourseType == 'SCORM12')
		{
			if(bln508C)
			{
				top.scorm_course_menu.location.href = GetCalculatedUrl('Courseware/SCORM/SCORM12CourseMenu.aspx') + '?strCourseId='+strCourseId+'&strLaunchLink='+strScormLaunchLink+'&strLaunchedItemId='+strScormLaunchedItemId;
			}
			else
			{
       			igtree_treeName = 'SCORM12Menu';
				igtree_nodeId = SCORMnodeId;
				igtree_onTimerPostNodeClick();
			}
		}
		else
		{
			if(bln508C)
			{
				top.scorm_course_menu.location.href = GetCalculatedUrl('Courseware/SCORM/SCORMCourseMenu.aspx') + '?strCourseId='+strCourseId+'&strLaunchLink='+strScormLaunchLink+'&strLaunchedItemId='+strScormLaunchedItemId;
			}
			else
			{
				top.Navigation.document.NavigationForm.blnRefreshMenu.value = 'true';
       			igtree_treeName = 'SCORMMenu';
				igtree_nodeId = SCORMnodeId;
				igtree_onTimerPostNodeClick();
			}
		}
		strScormLaunchLink = "";
		strScormLaunchedItemId = "";
    }
    else
    {
       top.window.close();
    }
    //
    if(strScormCourseType == 'SCORM12')
    {
		top.scorm_commnunication_form.document.NavigationForm.RefreshMenu.value = 'true';
    }
    else
    {
	    top.Navigation.document.NavigationForm.RefreshMenu.value = 'true';
    }
}

// End Scorm functions
function TableSCONodeClicked(strLaunchLink, strLaunchedItemId)
{
	strScormLaunchLink = "";
	strScormLaunchedItemId = "";
    // SCO node clicked - Section 508c active
	if(top.scorm_course_api.blnInitialized)
	{
	    top.scorm_commnunication_form.document.NavigationForm.RefreshMenu.value = 'false';
		strScormLaunchLink = strLaunchLink;
		strScormLaunchedItemId = strLaunchedItemId;
		bln508C = true;
		UnloadSCO();
		alert(GetLocalizedMessage('ML.BASE.SCO.Active'));
		return false;
	}
	return true;
}

function SCONodeClicked(treeId, nodeId, button) 
{ 
	var objTree = igtree_getTreeById(treeId);

	var objNode = igtree_getNodeById(nodeId);
	var strNodeTag = objNode.getTag();

	strScormLaunchLink = "";
	strScormLaunchedItemId = "";

	var strLaunchLink = "";
	var strLaunchedItemId = "";
	var strUserId = "";
	var strCourseId = "";
	var blnIsSelectable = "true";
	var blnIsEnable = "true";
	
	SCORMnodeId = nodeId;
	if(strScormCourseType == 'SCORM12')
	{
		var strVars = strNodeTag.split('|');
		var strVar = strVars[2].split('@');
		strLaunchLink = strVar[1];
		strVar = strVars[3].split('@');
		strLaunchedItemId = strVar[1];
	}
	else
	{
		var strVars = strNodeTag.split('+');
		var strVar = strVars[4].split('=');
		strLaunchLink = strVar[1];
		strLaunchedItemId = strLaunchLink;
		
		strVar = strVars[0].split('=');
		strUserId = strVar[1];

		strVar = strVars[1].split('=');
		blnIsSelectable = strVar[1];;

		strVar = strVars[2].split('=');
		blnIsEnabled = strVar[1];;

		strVar = strVars[3].split('=');
		strCourseId = strVar[1];

		top.Navigation.document.NavigationForm.blnRefreshMenu.value = 'true';
	}

    // SCO node clicked - Section 508c controls NOT active
	if(top.scorm_course_api.blnInitialized && (blnIsEnabled.toUpperCase() == 'TRUE') && (blnIsSelectable.toUpperCase() == 'TRUE'))
	{
		if(strScormCourseType == 'SCORM12')
		{
		    top.scorm_commnunication_form.document.NavigationForm.RefreshMenu.value = 'false';
		}
		else
		{
			top.Navigation.document.NavigationForm.RefreshMenu.value = 'false';
		}
		strScormLaunchLink = strLaunchLink;
		strScormLaunchedItemId = strLaunchedItemId;
		UnloadSCO();
		objTree.CancelPostBack = true;
		bln508C = false;
		alert(GetLocalizedMessage('ML.BASE.SCO.Active'));
		return;
	}

	// Normal launch
	strScormLaunchLink = "";
	strScormLaunchedItemId = "";

	var objNode = igtree_getNodeById(nodeId);
	var strNodeTag = objNode.getTag().toUpperCase();
	var blnStopProcess = false;
	if ((strNodeTag.toUpperCase().indexOf("BLNISENABLED=FALSE") != -1) || (strNodeTag.toUpperCase().indexOf("BLNISSELECTABLE=FALSE") != -1))
	{
		var objTree = igtree_getTreeById(treeId);
		objTree.CancelPostBack = true;
		blnStopProcess = true;
	}
	
	if (!blnStopProcess) {
		if(top.Navigation != null)  // Scorm 2004 courses, check TOC
		{
			if (top.Navigation.document.NavigationForm.blnAwaitingTOC.value == 'false') 
			{
				top.scorm_block_info.location.href = GetCalculatedUrl('Courseware/SCORM/Navigation/SCONavigationWait.htm');

				top.Navigation.document.NavigationForm.strUserId.value = strUserId;
				top.Navigation.document.NavigationForm.strCourseId.value = strCourseId;
				top.Navigation.document.NavigationForm.strItemId.value = strLaunchedItemId;

				top.Navigation.document.NavigationForm.strTargetSCOId.value = strLaunchedItemId;
				top.Navigation.document.NavigationForm.strNavRequest.value = "choice";
				top.Navigation.document.NavigationForm.submit();
				top.Navigation.document.NavigationForm.strNavRequest.value = '';
				top.Navigation.document.NavigationForm.strTargetSCOId.value= '';
				var objTree = igtree_getTreeById(treeId);
				objTree.CancelPostBack = true;

				top.Navigation.document.NavigationForm.blnAwaitingTOC.value = 'true'; 
			} 
			else 
			{
				var objTree = igtree_getTreeById(treeId);
				objTree.CancelPostBack = true;
			}
		}
	}
}

function SCORM2K4NodeClicked(blnIsEnabled, blnIsSelectable, strLaunchLink, strUserId, strCourseId) 
{
	strScormLaunchLink = "";
	strScormLaunchedItemId = "";
	// alert ('enabled: ' + blnIsEnabled + '\r selectable: ' + blnIsSelectable + '\r User: ' + strUserId + '\r Course: ' + strCourseId);
    // SCO node clicked - Section 508c controls NOT active
	strScormLaunchLink = strLaunchLink;
	strScormLaunchedItemId = strLaunchLink;
	if(top.scorm_course_api.blnInitialized)
	{
	    top.Navigation.document.NavigationForm.RefreshMenu.value = 'false';
		UnloadSCO();
		bln508C = false;
		return;
	}

	top.Navigation.document.NavigationForm.blnRefreshMenu.value = 'true';

	var blnStopProcess = false;
	if ((blnIsEnabled.toUpperCase() == 'FALSE') || (blnIsSelectable.toUpperCase() == 'FALSE')) 
	{
		blnStopProcess = true;
	}
	
	if (!blnStopProcess) {
		if (top.Navigation.document.NavigationForm.blnAwaitingTOC.value == 'false') 
		{
			top.scorm_block_info.location.href = GetCalculatedUrl('Courseware/SCORM/Navigation/SCONavigationWait.htm');

			top.Navigation.document.NavigationForm.strItemId.value = strScormLaunchedItemId;

			top.Navigation.document.NavigationForm.strTargetSCOId.value = strScormLaunchedItemId;
			top.Navigation.document.NavigationForm.strNavRequest.value = "choice";
			top.Navigation.document.NavigationForm.submit();
			top.Navigation.document.NavigationForm.strNavRequest.value = '';
			top.Navigation.document.NavigationForm.strTargetSCOId.value= '';

			top.Navigation.document.NavigationForm.blnAwaitingTOC.value = 'true'; 
		} 
		else 
		{
			return false;
		}
	}
	else 
	{
		return false;
	}
}

function AccordionMenuTreeNodeClicked(treeId, nodeId, button) 
{
	var objTree = igtree_getTreeById(treeId);
	var objNode = igtree_getNodeById(nodeId);
	var strNodeTag = objNode.getTag();

	if (strNodeTag.indexOf("GoAboutLMS") != -1) 
	{
		objTree.CancelPostBack = true;
		GoAboutLMS();
	} 
	else 
	{
		if (strNodeTag.indexOf("GoGlossary") != -1) 
		{
			objTree.CancelPostBack = true;
			GoGlossary();
		}
		else
		{
			if (strNodeTag.indexOf("GoSystemHelp") != -1) 
			{
				objTree.CancelPostBack = true;
				GoSystemHelp(strNodeTag.substr(strNodeTag.indexOf("?") + 1));
			} 
			else 
			{
			    if (strNodeTag.indexOf("GoPersonalDashboards") != -1) 
			    {
				    objTree.CancelPostBack = true;
				    eval(strNodeTag);
			    } 
			}
		}
	}
}

function GoPersonalDashboards(strRequestLocaleId, strRequestRegionId, strRequestTimeZoneId, strSkinValue, strCurrentUserId, strCurrentDomainId, strReportServer, strIDPSurveyModuleType)
{
    strUrl = strReportServer + '/rdPage.aspx?rdReport=db_Dashboard&blnReset=True&CurrentDomainId=' + escape(strCurrentDomainId) + '&CurrentUserId=' + strCurrentUserId + '&SkinValue=' + strSkinValue + '&RequestRegionId=' + strRequestRegionId + '&RequestLocaleId=' + strRequestLocaleId + '&RequestTimeZoneId=' + strRequestTimeZoneId + '&IDPSurveyModuleType=' + strIDPSurveyModuleType ; 
	newwindow = window.open (strUrl, '_PopupReport', 'toolbar=yes,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=840,height=620');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
}

function FeatureClick(strFeatureId)
{
	var v = document.getElementById('SearchFeatureId');
	var objForm = document.BaseForm;

	for(i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		
		if (element.type == 'checkbox')
		{
			var name = element.name;
			
			if (name.indexOf('CSCSFT_CSPACE_FEATURE_ID$' + strFeatureId) != -1)
			{
				element.disabled=true;
				element.checked=true;
			}
		}
	}
}

/*
if (navigator.appName == 'Netscape') {
    window.captureEvents(Event.KEYPRESS);
    window.onKeyPress = netscapeKeyPress;
}

function netscapeKeyPress(e)
{
	alert('keypress');
	if(e.which == 13)
		alert('enter');
}
*/
/*
this function trims the text of the textarea to maxlength of 
the textarea
*/
function TextAreaOnBlur(txtArea,strLen)
{
    var txtElement  = document.getElementById(txtArea.id);
    if(null != txtElement)
    {
        if(txtElement.value.length > strLen)
        {
		txtElement.value = txtElement.value.substring( 0, strLen);
        
        }
    }
}
/*
this function restricts the text typed in a textarea to the MaxLength specified in 
the definition file
*/
function TextAreaChkLength(txtArea,strLen)
{
    var txtElement  = document.getElementById(txtArea.id);
    if(null != txtElement)
    {
        if(txtElement.value.length < strLen)
        {
            return true;
        }
        else 
        {
            return false;
        }
    }
}
/*Following function is responsible for 
Capturing KeyStrokes and if the Key is Enter(KeyCode 13)
it fires the 'Click' event of the default Button*/

function KeyPressHandler(strButtonId,e)
{
    var key;
	if (browser.isIE) {
	    key = event.keyCode;
	}
	else
	{
	    key = e.which;
	}
	///Commented out by Fabrice.  Does work in NS 7.0 and returns error in Javascript window. 
	///Need to find equivalent of event in NS.
		if (key == 13 && null != strButtonId && "" != strButtonId)
		{
			var btnElement = document.getElementById(strButtonId);
			
		    if(null != btnElement)
			{
				if (browser.isIE) {
					event.returnValue=false;
					event.cancel = true;
		        }
                else
                {
                    if (e && e.preventDefault)
                        e.preventDefault();
                }
				btnElement.click();
			}
			else
			{
				var objForm =  document.BaseForm;
				
				for(i=0;i<objForm.elements.length;i++)
				{
					var element = objForm.elements[i];
				
					if('submit' == element.type)
					{
						var strId = element.id
				
						if(strId.indexOf(strButtonId) != -1)
						{
						if (browser.isIE) {
							event.returnValue=false;
							event.cancel = true;
				        }
                        else
                        {
                            if (e && e.preventDefault)
                                e.preventDefault();
                        }
							element.click();
				
							break;
						}
					}
				}
			}
		}
}

function ShowAlert(strAlertText)
{
	//alert (strAlertText);
}


function ShowLastError(strAlertText)
{
//	alert (strAlertText);
}


function ManualRequiredValidator()
{
	return false;	
}


function TreeKeyDownHandler()
{
	if (event.keyCode == 13)
	{
		event.returnValue=false;
		event.cancel = true;
	}

}


function ReturnFalse(e)
{
	if (browser.isIE) {
		event.returnValue=false;
		event.cancel = true;
    }
    else
    {
        if (e && e.preventDefault)
            e.preventDefault();
    }
}

function DoNothing()
{
}


function PrintWindow()
{
	window.print();
} 

function SelectIdentifiedTab(intGoToTab)
{
	var objTabs = igtab_getTabById(strTabId);
	igtab_selectTab(objTabs, intGoToTab)
}

function VerifyTabSelected()
{
	if (intSelectedTabIndex != -1)
	{
		var objTabs = igtab_getTabById(strTabId);
		
		igtab_selectTab(objTabs, intSelectedTabIndex)
	}
}


/*The function validates(Client side validation) of both start time and end time
dropdownlist. It ensures start time is less than or equal to EndTime*/
/*DEPRECATED(not required because of MultiDayEvent*/
function EventTimeValidation(source,args)
{
	var objForm =document.BaseForm;
	var iIndex = 0;
 
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
	
		if (element.type=='select-one' && element.name.indexOf('EVT_START_TIME')!= -1)
		{
			if(element.selectedIndex == 0)
			{
				return;
			}
			else
			{
				iIndex = element.selectedIndex;
				break;
			}
		}
	}
 
	for (i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];

		if (element.type=='select-one' && element.name.indexOf('EVT_END_TIME')!= -1)
		{
			if (element.selectedIndex == 0)
			{
				return;
			}
			
			if(element.selectedIndex < iIndex)
			{
				args.IsValid = false;
			}
			
			break;
		}
	}
 
	return;
}


/*The function validates(Client side validation) of both start time and end time
dropdownlist. It ensures start time is less than or equal to EndTime*/
function TextHTMLValidation(source,args)
{
	var objElement = document.getElementById(source.controltovalidate);
	var objValue = objElement.value;
	var strRegExp = /<[a-zA-Z](.*?)>/;
   	var match = objValue.match(strRegExp);
	if(match != null)
	{
		args.IsValid = false;
	}
	return;
}

function ContentActiveValidation(source, strAlert, strEnrolled, strWaitlisted)
{
	var objForm = document.BaseForm;
	var blnActiveChecked = false;
	
	for (i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		if('radio' == element.type
			&& element.value == 'T'
			&& element.checked == true)
		{
				blnActiveChecked = true;
				break;
		}
	}
	
	if(!blnActiveChecked)
	{
	  if(parseInt(strEnrolled, 0) > 0 || parseInt(strWaitlisted, 0) > 0)
	  {
	      return confirm(strAlert);
	  }
	  else
	  {
	      return true;
	  }
	}
	else
	{
	  return true;
	}
}

function DocumentClientValidation(source,arguments)
{
	var objForm = document.BaseForm;
	var boolInternalChecked = false;
	var boolExternalChecked = false;
	
	for (i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		if('radio' == element.type
			&& element.value == 'INTERNALDOC_PATH'
			&& element.checked == true)
		{
				boolInternalChecked = true;
				break;
		}
		if('radio' == element.type
			&& element.value == 'EXTERNALFILE_URL'
			&& element.checked == true)
		{
				boolExternalChecked = true;
				break;
		}
	}
	for(i=0;i<objForm.elements.length;i++)
	{
		var element = objForm.elements[i];
		if('file' == element.type)
		{
			var strElementName = element.name;
			var j = strElementName.lastIndexOf('$');
			var strName = strElementName.substring(j+1);
			if('DOCUMENT_PATH' == strName)
			{
				if(true == boolInternalChecked && "" == element.value)
				{
					arguments.IsValid = false;
					break;
				}
			}
		}
		if('text' == element.type)
		{
			var strElementName = element.name;
			var j = strElementName.lastIndexOf('$');
			var strName = strElementName.substring(j+1);
			if('DOCUMENT_URL' == strName)
			{
				if(true == boolExternalChecked && "" == element.value)
				{
					arguments.IsValid = false;
					break;
				}
			}
		}
	}
}

function GeneralCourseClientValidation(source,arguments)
{
//	var objForm = document.BaseForm;
//	var boolInternalChecked = false;
//	var boolExternalChecked = false;
//	
//	for (i =  0; i < objForm.elements.length; i++)
//	{
//		var element = objForm.elements[i];
//		if('radio' == element.type
//			&& element.value == 'INTERNALCOURSE_PATH'
//			&& element.checked == true)
//		{
//				boolInternalChecked = true;
//				break;
//		}
//		if('radio' == element.type
//			&& element.value == 'EXTERNALFILE_URL'
//			&& element.checked == true)
//		{
//				boolExternalChecked = true;
//				break;
//		}
//	}
//	for(i=0;i<objForm.elements.length;i++)
//	{
//		var element = objForm.elements[i];
//		if('file' == element.type)
//		{
//			var strElementName = element.name;
//			var j = strElementName.lastIndexOf('$');
//			var strName = strElementName.substring(j+1);
//			if('COURSE_PATH' == strName)
//			{
//				if(true == boolInternalChecked && "" == element.value)
//				{
//					arguments.IsValid = false;
//					break;
//				}
//			}
//		}
//		if('text' == element.type)
//		{
//			var strElementName = element.name;
//			var j = strElementName.lastIndexOf('$');
//			var strName = strElementName.substring(j+1);
//			if('COURSE_URL' == strName)
//			{
//				if(true == boolExternalChecked && "" == element.value)
//				{
//					arguments.IsValid = false;
//					break;
//				}
//			}
//		}
//	}
}

function SetEditDocumentControls()
{
// check the internaldoc radiobutton only if the external url radion button is not selected
// this is to ensure that the internaldocument radio button is only selected the first time this page is
// loaded
	var objForm = document.BaseForm;
	var bExternalFile = false;
	for (var i =  0; i < document.BaseForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		if (objForm.elements[i].type == 'radio' && element.id.indexOf("EXTERNALFILE_URL") != -1) 
		{
			if(element.checked == true)
			{
				bExternalFile = true;
			}
		}
	}
	if(bExternalFile == false)
	{
		for (var i =  0; i < document.BaseForm.elements.length; i++)
		{
			var element = objForm.elements[i];
			if (objForm.elements[i].type == 'radio' && element.id.indexOf("INTERNALDOC_PATH") != -1) 
			{
				element.checked = true;
			}
		}
	}
	
	var bInternalDoc = false;	
	for (var i =  0; i < document.BaseForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		if (objForm.elements[i].type == 'radio' && element.id.indexOf("INTERNALDOC_PATH") != -1) 
		{
			if(element.checked == true)
			{
				bInternalDoc = true;
			}
			break;
		}
	}
	if(true == bInternalDoc)
	{	
		for (var i =  0; i < document.BaseForm.elements.length; i++)
		{
			var element = objForm.elements[i];
			if (objForm.elements[i].type == 'text' && element.name.indexOf("DOCUMENT_URL") != -1) 
			{
				element.disabled = true;
				break;
			}

		}
	}
	else
	{
		for (var i =  0; i < document.BaseForm.elements.length; i++)
		{
			var element = objForm.elements[i];
			if (objForm.elements[i].type == 'file' && element.name.indexOf("DOCUMENT_PATH") != -1) 
			{
				element.disabled = true;
				break;
			}

		}
	}
}

function SetEditCourseControls()
{
// check the internalcourse radiobutton only if the external url radio button is not selected
// this is to ensure that the internalcourse radio button is only selected the first time this page is
// loaded
	var objForm = document.BaseForm;
	var bCourseExternalFile = false;    
	
	for (var i =  0; i < document.BaseForm.elements.length; i++)
	{
		var element = objForm.elements[i];		
		if (objForm.elements[i].type == 'radio' && element.id.indexOf("EXTERNALFILE_URL") != -1) 
		{		    
			if(element.checked == true)
			{
				bCourseExternalFile = true;
			}
		}
	}
	if(bCourseExternalFile == false)
	{
		for (var i =  0; i < document.BaseForm.elements.length; i++)
		{
			var element = objForm.elements[i];
			if (objForm.elements[i].type == 'radio' && element.id.indexOf("INTERNALCOURSE_PATH") != -1) 
			{
				element.checked = true;
			}
		}
	}
	
	var bCourseInternalDoc = false;	
	for (var i =  0; i < document.BaseForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		if (objForm.elements[i].type == 'radio' && element.id.indexOf("INTERNALCOURSE_PATH") != -1) 
		{
			if(element.checked == true)
			{
				bCourseInternalDoc = true;
			}
			break;
		}
	}
	if(true == bCourseInternalDoc)
	{	
		for (var i =  0; i < document.BaseForm.elements.length; i++)
		{
			var element = objForm.elements[i];
			if (objForm.elements[i].type == 'text' && element.name.indexOf("COURSE_URL") != -1) 
			{
				element.disabled = true;
				break;
			}

		}
	}
	else
	{
		for (var i =  0; i < document.BaseForm.elements.length; i++)
		{
			var element = objForm.elements[i];
			if (objForm.elements[i].type == 'file' && element.name.indexOf("COURSE_PATH") != -1) 
			{
				element.disabled = true;
				break;
			}

		}
	}
}

function SCORMUploadFileValidation(source,arg)
{
	var objTempForm = document.BaseForm;
	for (i=0;i<objTempForm.elements.length;i++) {
		if (objTempForm.elements[i].name.indexOf('UploadFile') != -1) {
			var strSelectedDocument = objTempForm.elements[i].value;
			if (strSelectedDocument.substring(strSelectedDocument.length-3).toUpperCase() != "ZIP") {
				arg.IsValid = false;
			}
			break;
		}
	}
}

/*This function is called on every page onload event
1) Function to set focus on first control of the page*/
function FocusFirstFormOnLoad() {
	var objTempForm = document.BaseForm;
	if(objTempForm.elements.length > 100)
	{
	   return;
	}
	FocusFirstFormOnTabChange();
	RecurTypeDDHandler();
	AllDayEventCheckBoxHandler();
	MatchImageHeightWidthStateHandler();
	ChoiceImageHeightWidthStateHandler();
	ContentSharingTypeHandler();
	EditActivityDisableDates();
	ValidateCountrySelection();
	if(newwindow && newwindow.open && !newwindow.closed)
	{
	  newwindow.focus();
	}
}

/* not in use.  thought of for Redesign with problems with the side menu navigation*/
function RemoveAttributes()
{
	var objForm = document.BaseForm;
//	alert(objForm.all.length);
	for (var i =  0; i < objForm.all.length; i++)
	{
			if  (objForm.all[i].getAttribute("id") != null) 
			{
				var strAttribute = objForm.all[i].getAttribute("id").toString();
				if (strAttribute == "SideMenuNavigation") 
				{
					if (objForm.all[i].getAttribute("style") != null) {
//						alert (objForm.all[i].getAttribute("style").value);
					}
				}
			}
	}
}

/*This function sets the focus on the first control on every page
onload and whenever a tab is changed
1)TabMenu_tbl  is the id of table in which infragistics creates its tab
(This is specific to Infragistics control
2)PageTabMenu is the id if Infragistics tab, refer to "BasePageRendering.GetTabSet.cs"*/
function FocusFirstFormOnTabChange() {
	var strUrl = document.URLUnencoded;
	if (strUrl != null) {
		if((strUrl.indexOf('PostNewView.aspx') != -1 && strUrl.indexOf('Action=EditComment')== -1)
		    || strUrl.indexOf('test3.htm') != -1)//Do want to set focus on the first element for the PostNewView page
		{
			return;
		}
	}

	if (null != document.getElementById("TabMenu_tbl"))
	{
   		var tabs = igtab_getTabById("TabMenu");
		
		if (tabs != null) 
		{
		    var tab = tabs.getSelectedTab();
		    strSelectedTabKey = tab.Key;
		}
	}

	var objTempForm = document.BaseForm;

	for (i=0;i<objTempForm.elements.length;i++) {
		if (objTempForm.elements[i].type != 'hidden' 
			&& objTempForm.elements[i].type != 'submit'
			&& objTempForm.elements[i].type != 'radio'
			&& objTempForm.elements[i].type != 'checkbox'
			&& objTempForm.elements[i].name != 'SearchForSite')
			{
				if (strTabKey.toUpperCase() != "PREVIEW" &&
				((objTempForm.elements[i].getAttribute("disabled") != null) && 
				(!(objTempForm.elements[i].getAttribute("disabled"))))) {
						var strElementName = objTempForm.elements[i].name;
						if(strSelectedTabKey != "" && 
						strElementName.indexOf(strSelectedTabKey) == -1)
						{
							continue;
						}
						else
						{
							if (objTempForm.elements[i].name != "") {
								objTempForm.elements[i].focus();
							}
							break;
						}
				}
		}
	}

}

function FocusFirstFormOnTabChange1(intTabIndex) {

	var objTempForm = document.BaseForm;
	var intTabCounter = -1;
	var strTabName = "";
	var strPreviousTabName = "";
	var strElementName = "";
	
	for (i=0;i<objTempForm.elements.length;i++) {
		strElementName = objTempForm.elements[i].name;
		if (strElementName.indexOf("TabMenu:") != -1) {
			strTabName = strElementName.substring(strElementName.indexOf(":"), strElementName.lastIndexOf(":"));
			if (strTabName != strPreviousTabName) {
				intTabCounter = intTabCounter + 1;
				strPreviousTabName = strTabName;
			}
		}
		
		if (objTempForm.elements[i].type != 'hidden' 
			&& objTempForm.elements[i].type != 'submit'
			&& strElementName != 'SearchForSite'
			&& intTabCounter == intTabIndex) {
// Commented out after discussion with Ken about problem with focus when filling in comments since the selected tab is not the first tab
// and trying to focus the cursor on a field in the first tab.  Infragistics focuses to the tab after loading the tab set.  No way to know which tab
// is selected since kept in view state on submit.  Fabrice.04/27/05.
//				objTempForm.elements[i].focus();
				break;
		}
	}
}

function RouteHelpLaunching(strHelpType, strParameters) 
{
	//alert(strHelpType + "\n" + strParameters);
	newwindow = window.open (GetCalculatedUrl('Help/PopupHelp.aspx') + '?strHelpType=' + escape(strHelpType) + '&' + strParameters, '_PopupHelp', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=640,height=480');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
	//return true;
}
function RouteHelpLaunching(strParameters) 
{
	var strCurrentTabKey = '';
	if(null != document.getElementById("TabMenu_tbl"))
	{
		var tabs = igtab_getTabById("TabMenu");
		var tab = tabs.getSelectedTab();
		strCurrentTabKey = tab.Key;
	}
	
	var strNewParameters = strParameters+'&CurrentTabKey='+escape(strCurrentTabKey);
	newwindow = window.open (GetCalculatedUrl('Help/PopupHelp.aspx') + '?' + strNewParameters, '_PopupHelp', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=640,height=480');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	//return true;
}

function LaunchReport(strCourseID, strUserID, strCertID, strReportName, strDomainID) 
{
	newwindow = window.open (GetCalculatedUrl('Reports/ReportRouter.aspx') + '?strDomainID=' + strDomainID + '&strCourseID=' + strCourseID + '&strUserID=' + strUserID + '&strCertID=' + strCertID + '&strReportName=' + strReportName + '', '_PopupReport', 'toolbar=yes,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=840,height=620');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return false;
}
/*
function CheckForEmail(strUserId, strRecipientId,strType)
{
	var bRet = true;
	var objForm = document.BaseForm;
	
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		
		if ('select-one' == element.type)
		{
			var attrib = element.attributes["AssocId"];
			
			if (null != attrib && strRecipientId == attrib.value)
			{
				if ('ML.BASE.ACT.SendEmail' == element.value)
				{
					window.open('/KView/CustomCodeBehind/Utilities/EmailUser.aspx?strUserId='+escape(strUserId)+'&strRecipientId='+escape(strRecipientId)+'&strType='+escape(strType)+'&PopUp='+escape('true'),'_EmailUser','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=640,height=520');
					
					bRet = false;					
				}
				break;				
			}
		}
	}

	return bRet;
}*/

function SendUserEmail(strSenderId, strRecipientId, strEmail)
{
	switch (strEmail)
	{
		case "SendEmailRegular":
			window.open(GetCalculatedUrl('Utilities/EmailUser.aspx') + '?strUserId='+escape(strSenderId)+'&strRecipientId='+escape(strRecipientId)+'&strType=&PopUp='+escape('true'),'_EmailUser','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=640,height=520');
			break;
			
		default:
			break;	
	}
	
	return false;
}


function ActionMenuPopupHandler(strRowId,strPopupType)
{
	var bRet = true;
	var objForm = document.BaseForm;

	if(strPopupType == "ViewSelectedInstructorSchedule")
	{
		newwindow = window.open(GetCalculatedUrl('Instructor/InstructorViewScheduleInPopup.aspx') + '?strInstructorId='+escape(strRowId)+'&PopUp='+escape('true'),'_ViewSchedule','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=640,height=520');					
		if(newwindow && newwindow.open && !newwindow.closed)
		{
			newwindow.focus();
		}
		bRet = false;
	}
	
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		
		if ('select-one' == element.type)
		{
			var attrib = element.attributes["AssocId"];
			
			if ((null != attrib &&  attrib.value == strRowId) || strPopupType == 'ViewSelectedInstructorSchedule')
			{
				switch(strPopupType)
				{
				case "ViewRoomSchedule":
						if ('ML.BASE.ACT.ViewSchedule' == element.value)
						{
							newwindow = window.open(GetCalculatedUrl('Content/Locations/RoomViewScheduleInPopup.aspx') + '?strRoomId='+escape(strRowId)+'&PopUp='+escape('true'),'_ViewSchedule','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=640,height=520');					
							if(newwindow && newwindow.open && !newwindow.closed)
							{
								newwindow.focus();
							}
							bRet = false;
						}
					break;
				case "ViewInstructorSchedule":
						if ('ML.BASE.ACT.ViewSchedule' == element.value)
						{
							newwindow = window.open(GetCalculatedUrl('Instructor/InstructorViewScheduleInPopup.aspx') + '?strInstructorId='+escape(strRowId)+'&PopUp='+escape('true'),'_ViewSchedule','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=640,height=520');					
							if(newwindow && newwindow.open && !newwindow.closed)
							{
								newwindow.focus();
							}
							bRet = false;
						}
					break;
				case "SendEmailRegular":
					/*					
					if ('ML.BASE.ACT.SendEmail' == element.value)
					{
						window.open('/KView/CustomCodeBehind/Utilities/EmailUser.aspx?strUserId='+escape(strUserId)+'&strRecipientId='+escape(strRecipientId)+'&strType='+escape(strType)+'&PopUp='+escape('true'),'_EmailUser','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=640,height=520');
						
						bRet = false;					
					}*/
					
					break;
				case "SectionRoster":
					if('ML.BASE.ACT.Roster' == element.value )
					{
						newwindow = window.open(GetCalculatedUrl('Instructor/SectionRoster.aspx') + '?strSectionId='+escape(strRowId)+'&PopUp='+escape('true'),'_ViewSchedule','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=640,height=520');					
						if(newwindow && newwindow.open && !newwindow.closed)
						{
							newwindow.focus();
						}
						bRet = false;
					}
				}
			}
		}
	}
	return bRet;

}

function ProxyLoginPopUp(userid)
{
	if (userid != null)
	    newwindow = window.open(GetCalculatedUrl('User/ProxyLogin.aspx') + '?strUserId='+escape(userid)+'&strType=&PopUp='+escape('true'),escape(userid)+'_ProxyLogin','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
	    if(newwindow && newwindow.open && !newwindow.closed)
		{
			newwindow.focus();
		}
	return true;
}

function RouteActionMenuCallsTest(strRowId, strMessage)
{
    var objForm = document.BaseForm;
	// Find associated drop-down, see if selected item is lock test.
	var varSelected = '';
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
	
		if (element.type=='select-one' && 
			element.name.indexOf('ActionsMenu_')!= -1 &&
			element.name.indexOf(strRowId)!= -1)
		{
				varSelected = element.value;
		}
	}

	if(varSelected == 'ML.BASE.ACT.LockTest')
	{
		return confirm(strMessage);
	}
	if(varSelected == 'ML.BASE.ACT.PreviewTest')
	{
	
   	newwindow = window.open(GetCalculatedUrl('Test/Management/TestPreview.aspx')+'?strItemId='+strRowId,'_PreviewTest' ,'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
    if (newwindow && newwindow.open && !newwindow.closed)
	    {
	      newwindow.focus();
	    }
	
	return false;
	
	}
}

function RouteActionMenuCallsCurriculum(strRowId, strMessage)
{
    var objForm = document.BaseForm;
	// Find associated drop-down, see if selected item is lock test.
	var varSelected = '';
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
	
		if(element.type=='select-one' && element.name.indexOf('ActionsMenu')!= -1)
		{
		  if(element.attributes["AssocId"].value == strRowId)
		  {
				varSelected = element.value;
				break;
		  }
		}
	}

	if(varSelected == 'ML.BASE.ACT.Copy')
	{
		return confirm(strMessage);
	}
}
function RouteActionMenuCallsEvaluationDelete(strRowId, strMessage)
{
    var objForm = document.BaseForm;
	// Find associated drop-down, see if selected item is Delete.
	var varSelected = '';
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
	
		if (element.type=='select-one' && 
			element.name.indexOf('ActionsMenu_')!= -1 &&
			element.name.indexOf(strRowId)!= -1)
		{
				varSelected = element.value;
		}
	}
    
	if(varSelected == 'ML.BASE.ACT.Delete')
	{
		return confirm(strMessage);
	}
}
function RouteActionMenuCallsEvaluationCopy(strRowId, strMessage)
{
    var objForm = document.BaseForm;
	// Find associated drop-down, see if selected item is Delete.
	var varSelected = '';
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		if (element.type=='select-one' && 
			element.name.indexOf('ActionsMenu_')!= -1 &&
			element.name.indexOf(strRowId)!= -1)
		{
				varSelected = element.value;
		}
	}
	if(varSelected == 'ML.BASE.ACT.Copy')
	{
		return confirm(strMessage);
	}
}

function RouteActionMenuCallsProxyLogin(strRowId, strMessage)
{
    var objForm = document.BaseForm;
    // Find associated drop-down, see if selected item is Proxy Login.
	var varSelected = '';
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		if (element.type=='select-one' && 
			element.name.indexOf('ActionsMenu_')!= -1 &&
			element.name.indexOf(strRowId)!= -1)
		{
				varSelected = element.value;
		}
	}
	if(varSelected == 'ML.BASE.ACT.ProxyLogin')
	{
        return confirm(strMessage);
	}
	
}
/*
function ViewSchedule(strScheduleToViewId, strCalendarToView)
{
	var bRet = true;
	var objForm = document.BaseForm;
	
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		
		if ('select-one' == element.type)
		{
			var attrib = element.attributes["AssocId"];
			
			if (null != attrib)
			{
				if ('ML.BASE.ACT.ViewSchedule' == element.value)
				{
					switch (strCalendarToView)
					{
						case "Room":
							window.open('/KView/CustomCodeBehind/Content/Locations/RoomViewScheduleInPopup.aspx?strRoomId='+escape(strScheduleToViewId)+'&PopUp='+escape('true'),'_ViewSchedule','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=640,height=520');					
							break;
						case "Instructor":
							window.open('/KView/CustomCodeBehind/Instructor/InstructorViewScheduleInPopup.aspx?strInstructorId='+escape(strScheduleToViewId)+'&PopUp='+escape('true'),'_ViewSchedule','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=640,height=520');					
							break;
					}
					bRet = false;					
				}
				break;				
			}
		}
	}

	return bRet;
}*/


/*This function is called when the user clicks on the Email link on the System Error page*/
function EmailErrorInformation()
{
	newwindow = window.open(GetCalculatedUrl('Utilities/EmailErrorInformation.aspx'),'_EmailUser','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=640,height=520');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
	
	return false;
}

function ContentTypePreview(strElementType, strElementID)
{
	var objForm = document.BaseForm;
	var iIndex = 0;
	var strElementValue = "";
 
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
	
		if (element.type=='select-one' && element.name.indexOf(strElementID)!= -1)
		{
		   strElementValue = element.value;
		}
	}

    if(strElementValue.length > 0)
    {
	   newwindow = window.open(GetCalculatedUrl('ContentRouter.aspx') + '?strItemType='+strElementType+'&strItemId='+strElementValue,'_Preview','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=640,height=520');
		if(newwindow && newwindow.open && !newwindow.closed)
		{
		newwindow.focus();
		}
	}
	
	return false;
}


function CurriculumGlossary(strElementID)
{
	newwindow = window.open(GetCalculatedUrl('Content/Glossary/GlossarySimpleSearch.aspx') + '?strItemId='+strElementID,'_Glossary','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=640,height=520');

	if (newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
	
	return false;
}


function PreviewRouter(strElementType, strElementID)
{
	newwindow = window.open(GetCalculatedUrl('ContentRouter.aspx') + '?strItemType='+strElementType+'&strItemId='+strElementID,'_Preview','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=640,height=520');

	if (newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return false;
}


function SurveySAView(strSurveyId, strSectionId, strQuestionId, strSurveyType, strResponses, strContentFilter, strStartDate, strEndDate)
{
	newwindow = window.open(GetCalculatedUrl('Reports/ManagementReports/SurveyShortAnswerResponses.aspx') + '?strSurveyId='+strSurveyId+'&strSectionId='+strSectionId+'&strQuestionId='+strQuestionId+'&strSurveyType='+strSurveyType+'&strResponses='+strResponses+'&ContentFilter='+strContentFilter+'&StartDate='+strStartDate+'&EndDate='+strEndDate,'_Preview','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=640,height=520');
	
	if (newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
}


function PostDeleteClick(strPostId,strMessage)
{
	if (ConfirmClick(strMessage))
	{
		location.href = GetCalculatedUrl('Blog/BlogNewView.aspx') + '?strPostId='+strPostId+'&Action=DeletePost';
	}
}


function ShowAllPostsClick()
{
   location.href = GetCalculatedUrl('Blog/BlogNewView.aspx') + '?Action=ShowAllPosts';
}


function BlogMainPageClick()
{
   location.href = GetCalculatedUrl('Blog/BlogNewView.aspx') + '?Action=RunCurrentSearch';
}


function PostEditClick(strPostId,strBlogId)
{
   location.href = GetCalculatedUrl('Blog/Post/PostNewEditItem.aspx') + '?strPostId='+strPostId+'&strBlogId='+strBlogId;
}
function PostEditClickFromPost(strPostId,strBlogId)
{
   location.href = GetCalculatedUrl('Blog/Post/PostNewEditItem.aspx') + '?strPostId='+strPostId+'&strBlogId='+strBlogId+'&strFrom=PostView';
}


function PostTitleClick(strPostId)
{
   location.href = GetCalculatedUrl('Blog/Post/PostNewView.aspx') + '?strPostId='+strPostId;

   return false;
}


function RelatedTermClick(strTermId)
{
   location.href = GetCalculatedUrl('Content/Glossary/GlossaryDefinitions.aspx') + '?strItemId='+strTermId;
   
   return false;
}

function CommentEditClick(strPostId,strCommentId)
{
   location.href = GetCalculatedUrl('Blog/Post/PostNewView.aspx') + '?strPostId='+strPostId+'&strCommentId='+strCommentId+'&Action=EditComment';
}


function CommentDeleteClick(strPostId,strCommentId,strMessage)
{
	if (ConfirmClick(strMessage))
	{
	   location.href = GetCalculatedUrl('Blog/Post/PostNewView.aspx') + '?strPostId='+strPostId+'&strCommentId='+strCommentId+'&Action=DeleteComment';
	}
}

function ViewDestinationMap(strDestination,strWidth,strLength,strMessage)
{
    if(ConfirmClick(strMessage))
    {
	  window.open(strDestination,'MapQuest','resizable=yes,scrollbars=yes,width='+strWidth+',height='+strLength);
	  return true;
	}else
	{
	  return false;
	}    
}
function EmailAdministrator(blnByPassCheck)
{
	newwindow = window.open(GetCalculatedUrl('Utilities/ContactAdministrator.aspx') + '?blnIsValidFunction=true&blnByPassCheck=' + blnByPassCheck,'_EmailUser','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=800,height=450');

	if (newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
	
	return false;
}


function HandleBeforeSelectedTabChange (oWebTab, oTab, oEvent) 
{
	strTabText = oTab.getText().toUpperCase();
	
	if (strTabText.indexOf("PREVIEW") == -1)
	{
		oEvent.cancelPostBack = true;
	}
}


function HandleAfterSelectedTabChange (oWebTab, oTab, oEvent) 
{
	//strTabText = oTab.getText().toUpperCase();
	//FocusFirstFormOnTabChange(oTab.index);
	FocusFirstFormOnTabChange();
}

function GoCalendarEvent(strEditEventLocation,strAction,strEventId,bPopUp)
{
    newwindow = null;
    if(bPopUp = 'true')
    {
        //newwindow = window.open(GetCalculatedUrl('Library/Documents/DocumentsInformation.aspx') + '?strItemId=' + escape('13ED8828CFFD4FDD972FE8505F2C17B2'), '_DocumentInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
        newwindow = window.open(strEditEventLocation + '?EventAction=' + escape(strAction)+'&EventId='+escape(strEventId), '_EventDetails', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=540');
    }
    else
    {
		    self.location.href = (strEditEventLocation + '?EventAction=' + escape(strAction)+'&EventId='+escape(strEventId));
    }
    if (newwindow && newwindow.open && !newwindow.closed)
    {
	      newwindow.focus();
    }
    
return false;
}

function GoViewInformation(strItemId, strItemType) 
{
    //alert(strItemId + " - " + strItemType)
    ShowAlert("Info on Item" + "\n\n" + "Item ID: " + strItemId + "\n\n" + "Item Type: " + strItemType);
		
	switch (strItemType)
	{ 
		   		
			case "ORDER":
			newwindow = window.open(GetCalculatedUrl('ECommerce/OrderInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			case "MenuItem":
			newwindow = window.open(GetCalculatedUrl('Domain/Management/MenuItemInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
		case "Certification":
			newwindow = window.open(GetCalculatedUrl('Courseware/Certification/CertificationInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
	
		case "CertificationType":case "Certification Type":
			newwindow = window.open(GetCalculatedUrl('Courseware/CertificationType/CertificationTypeInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "EVALUATION_TYPE":
			newwindow = window.open(GetCalculatedUrl('PerformanceEvaluation/EvaluationTypeInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "EVALUATION_ITEM":
			newwindow = window.open(GetCalculatedUrl('PerformanceEvaluation/EvaluationItemInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "EVALUATION_SCALE":
			newwindow = window.open(GetCalculatedUrl('PerformanceEvaluation/EvaluationScaleInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;	
		
		case "EVAL_COMPONENT":
			newwindow = window.open(GetCalculatedUrl('PerformanceEvaluation/EvaluationComponentInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;	
		
		case "EvaluationTemplate":
			newwindow = window.open(GetCalculatedUrl('PerformanceEvaluation/EvaluationTemplateInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;		
	
		case "PersonalLearningEvent":case "ML.BASE.PersonalLearningEvent":
		case "Personal Learning Event":
			newwindow = window.open(GetCalculatedUrl('Courseware/PersonalLearningEvent/PersonalLEInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
		case "Model":
		case "CompetencyModel":
			if(strItemId == 'LOCAL_COMPETENCY_MODEL_ID')
		    {
		    alert(GetLocalizedMessage('ML.BASE.NoInformation'));
		    return;
		    }
			newwindow = window.open(GetCalculatedUrl('IDP/Model/ModelInformation.aspx') + '?strItemId=' + escape(strItemId), '_JobTitleInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "KSA":
			newwindow = window.open(GetCalculatedUrl('IDP/KSA/KSAInformation.aspx') + '?strItemId=' + escape(strItemId), '_JobTitleInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "Competency":
			newwindow = window.open(GetCalculatedUrl('IDP/Competency/CompetencyInformation.aspx') + '?strItemId=' + escape(strItemId), '_JobTitleInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

        case "ML.BASE.JOBTITLE":
		case "JobTitle":
		case "Job Title":
			newwindow = window.open(GetCalculatedUrl('JobTitle/JobTitleInformation.aspx') + '?strItemId=' + escape(strItemId), '_JobTitleInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "SkillsSurvey":
			newwindow = window.open(GetCalculatedUrl('IDP/Survey/SkillsSurveyInformation.aspx') + '?strItemId=' + escape(strItemId), '_JobTitleInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
						
		case "Domain":
		    if(strItemId == 'ML.BASE.AllDomains')
		    {
		    alert(GetLocalizedMessage('ML.BASE.NoInformation'));
		    return;
		    }
			newwindow = window.open(GetCalculatedUrl('Domain/Management/DomainInformation.aspx') + '?strItemId=' + escape(strItemId), '_DocumentInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
		
		case "ML.BASE.USER":
		case "User":
			if(strItemId == 'ANONYMOUS_ID')
		    {
		        alert(GetLocalizedMessage('ML.BASE.NoInformation'));
		        return;
		    }
			newwindow = window.open (GetCalculatedUrl('User/ProfileView.aspx') + '?strItemId=' + escape(strItemId), '_UserInfo', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
		
		case "CoursewareProvider":
			newwindow = window.open (GetCalculatedUrl('Courseware/CoursewareProvider/CoursewareProviderInformation.aspx') + '?strItemId=' + escape(strItemId), '_UserInfo', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "Field Code":
			newwindow = window.open (GetCalculatedUrl('EmailConsole/FieldCodeInformation.aspx') + '?strItemId=' + escape(strItemId), '_UserInfo', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "CollaborationSpace":
			newwindow = window.open (GetCalculatedUrl('CollaborationSpace/CSInformation.aspx') + '?strItemId=' + escape(strItemId), '_CSInfo', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Curriculum":
			newwindow = window.open (GetCalculatedUrl('Curriculum/CurriculumInformation.aspx') + '?strItemId=' + escape(strItemId), '_CurriculumInfo', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Announcement":
			newwindow = window.open (GetCalculatedUrl('Announcement/AnnouncementInformation.aspx') + '?strItemId=' + escape(strItemId), '_AnnouncementInfo', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "ApprovalPath":
			newwindow = window.open (GetCalculatedUrl('Content/AccessApproval/Management/ApprovalPathInformation.aspx') + '?strItemId=' + escape(strItemId), '_APInfo', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "AccessApprover":
			newwindow = window.open (GetCalculatedUrl('Content/AccessApproval/Management/AccessApproverInformation.aspx') + '?strItemId=' + escape(strItemId), '_AccessApprover', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Blog":
			newwindow = window.open (GetCalculatedUrl('Blog/BlogInformation.aspx') + '?strItemId=' + escape(strItemId), '_BlogInfo', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Survey":
			newwindow = window.open (GetCalculatedUrl('Content/Survey/SurveyInformation.aspx') + '?strItemId=' + escape(strItemId), '_SurveyInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "Site": //Handles Site Survey - ML.BASE.ROLE.SURVEY.SITE
			newwindow = window.open (GetCalculatedUrl('Content/Survey/SurveyInformation.aspx') + '?strItemId=' + escape(strItemId), '_SurveyInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "SurveyScale":
			newwindow = window.open (GetCalculatedUrl('Content/Survey/SurveyScaleInformation.aspx') + '?strItemId=' + escape(strItemId), '_SurveyScaleInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Category":
			newwindow = window.open (GetCalculatedUrl('Categories/CategoryView.aspx') + '?strItemId=' + escape(strItemId), '_CategoryView', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Courseware":
		case "GeneralCourse":
		case "GeneralCourseware":
		case "Classroom":
		case "Online":
		case "SCORM 1.2":
		case "SCORM1.2":
		case "SCORM 2004":
		case "SCORM2004":
		case "AICC":
			newwindow = window.open (GetCalculatedUrl('LearningCenter/CourseInfo.aspx') + '?strCourseId=' + escape(strItemId), '_CoursewareView', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "Section":
			
			if (strItemId != 'ML.BASE.AllSections')
			{
				newwindow = window.open (GetCalculatedUrl('LearningCenter/SectionInfo.aspx') + '?strSectionId=' + escape(strItemId), '_SectionView', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			}
			else
			{
				alert(GetLocalizedMessage('ML.BASE.NoInformation'));
			}
			
			break;
			
		case "SectionEnrollment":
			newwindow = window.open (GetCalculatedUrl('LearningCenter/SectionInfo.aspx') + '?strSectionId=' + escape(strItemId)+ '&strTabFocusId=' + escape('ML.BASE.TAB.LearningCenter.Enrollment'), '_SectionView', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Assessment":
			newwindow = window.open (GetCalculatedUrl('LearningCenter/Assessment/AssessmentInfo.aspx') + '?strCourseId=' + escape(strItemId), '_CoursewareView', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Role":
			newwindow = window.open(GetCalculatedUrl('Role/RoleInformation.aspx') + '?strItemId=' + escape(strItemId), '_RoleInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "FAQ":
			newwindow = window.open(GetCalculatedUrl('Library/FAQ/FAQInformation.aspx') + '?strItemId=' + escape(strItemId), '_FAQInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Document":
		case "Documents":
			newwindow = window.open(GetCalculatedUrl('Library/Documents/DocumentsInformation.aspx') + '?strItemId=' + escape(strItemId), '_DocumentInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
	
		case "Glossary":
			newwindow = window.open(GetCalculatedUrl('Content/Glossary/GlossaryInformation.aspx') + '?strItemId=' + escape(strItemId), '_DocumentInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Resource":
			newwindow = window.open(GetCalculatedUrl('LearningCenter/ResourceInformation.aspx') + '?strItemId=' + escape(strItemId), '_FAQInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Complex":
			newwindow = window.open(GetCalculatedUrl('Content/Locations/ComplexInformation.aspx') + '?strItemId=' + escape(strItemId), '_ComplexInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Building":
			newwindow = window.open(GetCalculatedUrl('Content/Locations/BuildingInformation.aspx') + '?strItemId=' + escape(strItemId), '_BuildingInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Room":
			newwindow = window.open(GetCalculatedUrl('Content/Locations/RoomInformation.aspx') + '?strItemId=' + escape(strItemId), '_RoomInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Distribution List":
		case "DistributionList":
			newwindow = window.open(GetCalculatedUrl('PersonalHomepage/PersonalHomepageDistributionListInformation.aspx') + '?strItemId=' + escape(strItemId), '_DistributionListInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Instructor":		
			newwindow = window.open (GetCalculatedUrl('Instructor/InstructorInformation.aspx') + '?strItemId=' + escape(strItemId), '_ProfileView', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
		
		case "ML.BASE.ORGANIZATION":
		case "Organization":
			newwindow = window.open (GetCalculatedUrl('Organization/OrganizationView.aspx') + '?strItemId=' + escape(strItemId), '_OrganizationView', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "SystemEmail":	
			newwindow = window.open(GetCalculatedUrl('EmailConsole/ViewEmailSummary.aspx') + '?strItemId=' + escape(strItemId), '_SystemEmailView', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "Test":	
			newwindow = window.open(GetCalculatedUrl('Test/Management/TestInformation.aspx') + '?strItemId=' + escape(strItemId), '_SystemTestView', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;	
			
		case "TestQuestionGroup":	
			newwindow = window.open(GetCalculatedUrl('Test/Management/TestQuestionGroupInformation.aspx') + '?strItemId=' + escape(strItemId), '_SystemTestQuestionGroupView', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "TestQuestion":	
			newwindow = window.open(GetCalculatedUrl('Test/Management/TestQuestionInformation.aspx') + '?strItemId=' + escape(strItemId), '_SystemTestQuestionView', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "Reports":
		case "Report":
			newwindow = window.open(GetCalculatedUrl('Reports/ReportsInformation.aspx') + '?strItemId=' + escape(strItemId), '_ReportsInformationPage', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
		
		 case "Product":
			newwindow = window.open(GetCalculatedUrl('Library/Products/ProductsInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "RTCONSOLE":
			newwindow = window.open(GetCalculatedUrl('RequiredTraining/TrainingProfileInformation.aspx') + '?strItemId=' + escape(strItemId), '_RTInformationPage', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;			

		case "PRODUCT_TYPE":
			newwindow = window.open(GetCalculatedUrl('Library/ProductType/ProductTypeInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		default:
			alert(GetLocalizedMessage('ML.BASE.NoInformation'));
			break;
	}
	
	if (newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return false;
}
function RouteActionMenuCallsIDP(strItemId)
{
   	newwindow = window.open(GetCalculatedUrl('IDP/ViewIDP.aspx') + '?strItemId=' + escape(strItemId), '_ViewIDP', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
    if (newwindow && newwindow.open && !newwindow.closed)
	    {
	      newwindow.focus();
	    }
	
	return false;
}
function RouteActionMenuCallsCurrentIDP(strItemId)
{
   	newwindow = window.open(GetCalculatedUrl('IDP/ViewIDP.aspx') + '?strUserId=' + escape(strItemId), '_ViewIDP', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
    if (newwindow && newwindow.open && !newwindow.closed)
	    {
	      newwindow.focus();
	    }
	
	return false;
}

function RouteActionMenuCallsOrderConsole(strItemId)
{
    var objForm = document.BaseForm;
    var bRet = "true";
	// Find associated drop-down, see if selected item is lock test.
	var varSelected = '';
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
	
		if (element.type=='select-one' && 
			element.name.indexOf('ActionsMenu_')!= -1 &&
			element.name.indexOf(strItemId)!= -1)
		{
				varSelected = element.value;
		}
	}

	if(varSelected.toUpperCase() == 'ML.BASE.ACT.VIEWORDERSTATUS')
	{
   	    newwindow = window.open(GetCalculatedUrl('ECommerce/OrderProductDetail.aspx') + '?OrderId=' + escape(strItemId), '_ProductOrderDetail', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
        if (newwindow && newwindow.open && !newwindow.closed)
	        {
	          newwindow.focus();
	         return false;
	        }
	
	        
	}

}

function RouteActionMenuCallsPurchaseDetails(strItemId)
{
    var objForm = document.BaseForm;
    var bRet = "true";
	// Find associated drop-down, see if selected item is lock test.
	var varSelected = '';
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
	
		if (element.type=='select-one' && 
			element.name.indexOf('ActionsMenu_')!= -1 &&
			element.name.indexOf(strItemId)!= -1)
		{
				varSelected = element.value;
		}
	}

	if(varSelected.toUpperCase() == 'ML.BASE.ACT.PURCHASEDETAILS')
	{
   	    newwindow = window.open(GetCalculatedUrl('PersonalHomePage/PersonalHomepageMyPurchaseDetails.aspx') + '?strItemId=' + escape(strItemId), '_ViewIDP', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
        if (newwindow && newwindow.open && !newwindow.closed)
	        {
	          newwindow.focus();
	         return false;
	        }
	
	        
	}	
}

function GoViewInformationRating(strItemId, strItemType) 
{
	ShowAlert("Info on Item" + "\n\n" + "Item ID: " + strItemId + "\n\n" + "Item Type: " + strItemType);
	
	switch (strItemType)
	{ 
		case "Building":
			newwindow = window.open (GetCalculatedUrl('Content/Locations/BuildingInformation.aspx') + '?strItemId=' + escape(strItemId) + '&strTabFocusId=' + escape('ML.BASE.TAB.ContentReview'), '_BuildingInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Courseware":
		case "GeneralCourseware":
		case "Classroom" :
			newwindow = window.open (GetCalculatedUrl('LearningCenter/CourseInfo.aspx') + '?strCourseId=' + escape(strItemId) + '&strTabFocusId=' + escape('ML.BASE.TAB.ContentReview'), '_CoursewareView', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "CollaborationSpace":
			newwindow = window.open (GetCalculatedUrl('CollaborationSpace/CSInformation.aspx') + '?strItemId=' + escape(strItemId) + '&strTabFocusId=' + escape('ML.BASE.TAB.ContentReview'), '_CSInfo', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Curriculum":
			newwindow = window.open (GetCalculatedUrl('Curriculum/CurriculumInformation.aspx') + '?strItemId=' + escape(strItemId) + '&strTabFocusId=' + escape('ML.BASE.TAB.ContentReview'), '_CurriculumInfo', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Announcement":
			newwindow = window.open (GetCalculatedUrl('Announcement/AnnouncementInformation.aspx') + '?strItemId=' + escape(strItemId) + '&strTabFocusId=' + escape('ML.BASE.TAB.ContentReview'), '_AnnouncementInfo', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Blog":
			newwindow = window.open (GetCalculatedUrl('Blog/BlogInformation.aspx') + '?strItemId=' + escape(strItemId) + '&strTabFocusId=' + escape('ML.BASE.TAB.ContentReview'), '_BlogInfo', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Survey":
			newwindow = window.open (GetCalculatedUrl('Content/Survey/SurveyInformation.aspx') + '?strItemId=' + escape(strItemId) + '&strTabFocusId=' + escape('ML.BASE.TAB.ContentReview'), '_SurveyInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "FAQ":
			newwindow = window.open(GetCalculatedUrl('Library/FAQ/FAQInformation.aspx') + '?strItemId=' + escape(strItemId) + '&strTabFocusId=' + escape('ML.BASE.TAB.ContentReview'), '_FAQInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;

		case "Document":
			newwindow = window.open(GetCalculatedUrl('Library/Documents/DocumentsInformation.aspx') + '?strItemId=' + escape(strItemId) + '&strTabFocusId=' + escape('ML.BASE.TAB.ContentReview'), '_DocumentInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		case "Product":
			newwindow = window.open(GetCalculatedUrl('Library/Products/ProductsInformation.aspx') + '?strItemId=' + escape(strItemId) + '&strTabFocusId=' + escape('ML.BASE.TAB.ContentReview'), '_DocumentInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
			break;
			
		
		default:
			break;

	}

	if (newwindow && newwindow.open && !newwindow.closed)
	{
	  newwindow.focus();
	}
	
	return false;
}


function ValidateAndConfirmCheckBoxSelect(TheForm, strPrefix, strAlert, strConfirm)
{
	if (!ValidateCheckBoxSelect(TheForm, strPrefix, strAlert))
	{
		return false;
	} 
	
	if (!ConfirmCheckBoxSelect(strConfirm))
	{
		return false;
	}
	
	return true;
}

function OneOrMoreItemsLeftValidateAndConfirmCheckBoxSelect(TheForm, strPrefix, strOneOrMoreLeft, strCheckBoxSelect, strConfirmAction)
{
	if (strOneOrMoreLeft != '')
	{
		if (!ValidateOneOrMoreItemsLeft(TheForm, strPrefix, strOneOrMoreLeft))
		{
			return false;
		} 
	}
	
	if (strCheckBoxSelect != '')
	{
		if (!ValidateCheckBoxSelect(TheForm, strPrefix, strCheckBoxSelect))
		{
			return false;
		} 
	}	
	
	if (strConfirmAction != '')
	{
		if (!ConfirmCheckBoxSelect(strConfirmAction))
		{
			return false;
		}
	}	
	
	return true;
}

//old method - deprecated. leave it in there so existing code doesn't break.
function ValidateAccessApprovalAssignment(strRemoveApproval, strChangeApproval)
{
	return ValidateAccessApprovalPathAssignment(strRemoveApproval, strChangeApproval, "You must select an Access Approval Path when Access Approval is required.");
}

function ValidateAccessApprovalPathAssignment(strRemoveApproval, strChangeApproval, strApprovalRequired)
{
	var objForm = document.BaseForm;

	var blnYesButtonChecked = false;
	var element, strElementName, j, strName;
	
	if (objForm.blnHasAccessApproval.value.toString().toUpperCase() == "TRUE") 
	{
		for (i=0;i<objForm.elements.length;i++) 
		{
			element = objForm.elements[i];
			if('radio' ==  element.type)
			{
				strElementName = element.name;
				j = strElementName.lastIndexOf('$');
				strName = strElementName.substring(j+1);
				
				if(strName == 'ACCESS_APPROVAL_REQUIRED'&& 
					element.value == 'Y' && 
					element.checked)
				{
					//If Yes button is checked then flip the flag.
					blnYesButtonChecked = true;
					
					var blnOneChecked = false;
					var strCurrentPathId = objForm.CURRENT_APP_PATH_ID.value;
					var strSelectedPathId = '';
					var blnPathChanged = false;
					
					for (var i=0;i<document.BaseForm.elements.length;i++)
						{
						if (objForm.elements[i].type.toUpperCase() == 'RADIO') 
							{
							if  (objForm.elements[i].getAttribute("onClick") != null) 
								{
								var strAttribute = objForm.elements[i].getAttribute("onClick").toString();
								if (strAttribute.indexOf("HandleDataGridRadioButtons") != -1) 
									{
									if (objForm.elements[i].checked)
										{
											blnOneChecked = true;
											strSelectedPathId = objForm.elements[i].value;
											//check if the user is selecting a different path
                                            if (strCurrentPathId != strSelectedPathId)
                                            {
                                                blnPathChanged = true;
                                            }
										}
									}
								}
							}
						}
                        
						if (blnOneChecked) 
						{
							if (blnPathChanged)
							{
    							if (!(confirm(strChangeApproval))) 
	    						{
		    						return false;
			    				}
							}	
						} 
						else
						{ 
							alert(strApprovalRequired);
							return false;
						}					
					}
				else
				{
					blnDisplayAlert = false;
					for (var i=0;i<document.BaseForm.elements.length;i++)
					{
						if (objForm.elements[i].type.toUpperCase() == 'RADIO') 
						{
							if  (objForm.elements[i].getAttribute("onClick") != null) 
							{
								var strAttribute = objForm.elements[i].getAttribute("onClick").toString();
								if (strAttribute.indexOf("HandleDataGridRadioButtons") != -1) 
								{
										objForm.elements[i].checked = false;
										blnDisplayAlert = true;
								}
							}
						}
					}
					if (blnDisplayAlert) 
					{
						if (!(confirm(strRemoveApproval))) 
						{
							return false;
						}
					}
					return true;
				}
			}
			continue;
		}
	} 
	else 
	{
		var blnOneChecked = false;
		for (var i=0;i<document.BaseForm.elements.length;i++)
		{
			if (objForm.elements[i].type.toUpperCase() == 'RADIO') 
			{
				element = objForm.elements[i];
				strElementName = element.name;
				j = strElementName.lastIndexOf('$');
				strName = strElementName.substring(j+1);
				
				if(strName == 'ACCESS_APPROVAL_REQUIRED' && element.value == 'Y' 
				&& element.checked)
				{
					//If Yes button is checked then flip the flag.
					blnYesButtonChecked = true;
				}
				
				if  (objForm.elements[i].getAttribute("onClick") != null) 
				{
					var strAttribute = objForm.elements[i].getAttribute("onClick").toString();
					if (strAttribute.indexOf("HandleDataGridRadioButtons") != -1) 
					{
						if (objForm.elements[i].checked)
						{
								blnOneChecked = true
						}
					}
				}
			}
		}	
		if (!(blnOneChecked) && blnYesButtonChecked)
		{
			alert(strApprovalRequired);
			return false;
		}
	}
}

function ValidateAndConfirmGlossaryRelatedTermAdd(objForm,  strInvalidSelectionMessage)
{
	var blnOneChecked = false;
	for (var i=0;i<document.BaseForm.elements.length;i++)
	{
		if (objForm.elements[i].type.toUpperCase() == 'RADIO') 
		{
			if (objForm.elements[i].checked)
			{
				blnOneChecked = true;
			}
		}
	}	
	if (!(blnOneChecked))
	{
		alert(strInvalidSelectionMessage);
		return false;
	}
}
function ValidateAndConfirmCurriculumActivityAdd(objForm, strMessage, strInvalidSectionMessage)
{
	var blnOneChecked = false;
	for (var i=0;i<document.BaseForm.elements.length;i++)
	{
		if (objForm.elements[i].type.toUpperCase() == 'RADIO') 
		{
			var strValue = objForm.elements[i].value;
			if(strValue.indexOf("ContentReq") == -1 && strValue.indexOf('ContentOpt') == -1)
			{
			   continue;
			}
			if (objForm.elements[i].checked)
			{
			    strValue = strValue.split('_')[strValue.split('_').length-1];
				blnOneChecked = true;
				var blnAllSelected = false;
				var blnOthersSelected = false;
				for (var j=0; j<document.BaseForm.elements.length; j++)
				{
					if (objForm.elements[j].type == 'checkbox')
					{
						if(objForm.elements[j].name.indexOf(strValue) != -1 && objForm.elements[j].checked)
						{
							var strSectionValue = objForm.elements[j].name;
							strSectionValue = strSectionValue.split('||')[strSectionValue.split('||').length-1];
//							alert(strSectionValue);
							if(strSectionValue == 'ML.BASE.AllSections')
							{
								blnAllSelected = true;
							}
							else
							{
								blnOthersSelected = true;
							}
						}
					}
				}
				if(blnAllSelected && blnOthersSelected)
				{
				    alert(strInvalidSectionMessage);
				    return false;
				}
			}
		}
	}	
	if (!(blnOneChecked))
	{
		alert(strMessage);
		return false;
	}
}


function ConfirmSectionAndWaitlistUserSelected(TheForm,strUserPrefix,strSectionPrefix,strControlSelect,strConfirmAction)
{
	if(!(ValidateWaitlistUserAndSectionSelect(TheForm, strUserPrefix,strSectionPrefix, strControlSelect))) 
	{
		return false;
	}	
	if (!(ConfirmCheckBoxSelect(strConfirmAction))) 
	{
		return false;
	} 
}


function ValidateWaitlistUserAndSectionSelect(TheForm, strUserPrefix,strSectionPrefix, strMessage) 
{
	var intUser = 0;
	var intSection = 0;
	
	intCheckbox = -1;
	for (var i=0;i<TheForm.elements.length;i++) 
	{
		var element = TheForm.elements[i];
		var strElementName = TheForm.elements[i].name;
		if (element.type == 'checkbox' && strElementName.indexOf(strUserPrefix) > 0) 
		{
			if (element.checked)
			{
				intUser = 1;
				break;
			}
		}
	}
	for (var i=0;i<TheForm.elements.length;i++) 
	{
		var element = TheForm.elements[i];
		var strId = TheForm.elements[i].id;
		if (element.type == 'checkbox' && strId.indexOf(strSectionPrefix) > 0) 
		{
			if (element.checked)
			{
				intSection = 1;
				break;
			}
		}
	}

	if (intUser == 0 || intSection == 0)
	{
		alert(strMessage);
		return false;
	}

	return true;
}
/*
Handles: Save button on SelectPrimaryDomainPage
1)checks to see atleast one domain is selected
2)Confirms if user wants that domain to be his primary domain
*/
function ConfirmPrimaryDomainSelect(TheForm,strPrefix,strMessage1,strConfirmAction)
{
	var bDomainSelected = false;
	for(var i=0;i<TheForm.elements.length;i++)
	{
		var element = TheForm.elements[i];
		if(element.type=='radio' && (element.id.indexOf(strPrefix)!= -1))
		{
			if(element.checked == true)
			{
				bDomainSelected = true;
				break;
			}
		}
	}
	if(bDomainSelected == false)
	{
		alert(strMessage1);
		return false;
	}


	if (!(ConfirmCheckBoxSelect(strConfirmAction))) 
	{
		return false;
	} 
}
function ConfirmSectionAndUserSelected(TheForm,strUserPrefix,strSectionPrefix,strControlSelect,strConfirmAction)
{
	if(!(ValidateUserAndSectionSelect(TheForm, strUserPrefix,strSectionPrefix, strControlSelect))) 
	{
		return false;
	}	
	if (!(ConfirmCheckBoxSelect(strConfirmAction))) 
	{
		return false;
	} 
}

function ValidateUserAndSectionSelect(TheForm, strUserPrefix,strSectionPrefix, strMessage) 
{
	var intUser = 0;
	var intSection = 0;
	
	intCheckbox = -1;
	for (var i=0;i<TheForm.elements.length;i++) 
	{
		var element = TheForm.elements[i];
		var strElementName = TheForm.elements[i].name;
		if (element.type == 'checkbox' && strElementName.indexOf(strUserPrefix) > 0) 
		{
			if (element.checked)
			{
				intUser = 1;
				break;
			}
		}
	}
	for (var i=0;i<TheForm.elements.length;i++) 
	{
		var element = TheForm.elements[i];
		var strId = TheForm.elements[i].id;
		if (element.type == 'radio' && strId.indexOf(strSectionPrefix) > 0) 
		{
			if (element.checked)
			{
				intSection = 1;
				break;
			}
		}
	}
		

	if (intUser == 0 || intSection == 0)
	{
		alert(strMessage);
		return false;
	}

	return true;
}

function ConfirmAppointmentSelected(TheForm, strCheckBoxPrefix, strSelectPrefix, strMessage) 
{
	var intCGIUser = 0;
	var intAppointmentNotSelected = 0;
	var strId = '';
	
	intCheckboxSelected = 0;
	for (var i=0;i<TheForm.elements.length;i++) 
	{
		var chkBox = TheForm.elements[i];
		var strchkBoxName =  TheForm.elements[i].name;
		if (chkBox.type == 'checkbox' && strchkBoxName.indexOf(strCheckBoxPrefix) > 0) 
		{
			strId = strchkBoxName.substr(strchkBoxName.lastIndexOf("_") + 1);
            //if a user is selected then check to see if the user is CGI and valid appointment selected.
			if (chkBox.checked)
			{
				intCheckboxSelected++;
    			for (var j=0;j<TheForm.elements.length;j++) 
	            {
		            var slBox = TheForm.elements[j];
		            var strslBoxName = TheForm.elements[j].name;
		            if (slBox.type == 'select-one' && strslBoxName.indexOf(strSelectPrefix) > 0 && strslBoxName.indexOf(strId) > 0) 
		            {
			            intCGIUser++;
			            if (slBox.options[slBox.selectedIndex].value == "")
			            {
				            intAppointmentNotSelected = 1;
				            break;
			            }
		            }
	            }
			}
		}
	}
		


    //If no user selected or if user selected and there is atleast one CGI user with no appointment selected then display the alert message.
	if (intCheckboxSelected == 0 || (intCGIUser > 0 && intAppointmentNotSelected == 1))
	{
		alert(strMessage);
		return false;
	}

	return true;
}

function ValidateAndConfirmCheckBoxSelect(TheForm, strPrefix, strCheckBoxSelect, strConfirmAction) {

	if (strCheckBoxSelect != '') {
		if (!(ValidateCheckBoxSelect(TheForm, strPrefix, strCheckBoxSelect))) {
			return false;
		} 
	}
	
	if (strConfirmAction != '') {
		if (!(ConfirmCheckBoxSelect(strConfirmAction))){
			return false;
		}
	}
	return true;
}

function ValidateAndConfirmRadioButtonSelect(TheForm, strPrefix, strRadioButtonSelect, strConfirmAction) {
	if (strRadioButtonSelect != '') {
		if (!(ValidateRadioButtonSelect(TheForm, strPrefix, strRadioButtonSelect))) {
			return false;
		} 
	}
	
	if (strConfirmAction != '') {
		if (!(ConfirmRadioButtonSelect(TheForm, strPrefix, strConfirmAction))){
			return false;
		}
	}
	return true;
}

function ValidateOneOrMoreItemsLeft(TheForm, strPrefix, strOneOrMoreLeftMessage) {
	var intCheckboxTotal = 0;
	var intCheckboxSelected = 0;
	var blnReturnValue = true;
		
	for (var i=0;i<TheForm.elements.length;i++) {
		var strElementName;
		strElementName = TheForm.elements[i].name;
		if (TheForm.elements[i].type == 'checkbox' && strElementName.indexOf(strPrefix) > 0) {
			intCheckboxTotal++;
			if (TheForm.elements[i].checked) {
				intCheckboxSelected++;
			}
		}
	}
	
	if (intCheckboxTotal == intCheckboxSelected) {
//		strMessage = "At least one item must remain in the list.";
		alert(strOneOrMoreLeftMessage	);
		return false;
	}

	return blnReturnValue;
}

function ValidateCurriculumSectionAdd(objForm, strMessage) 
{
	var blnAllSelected = false;
	var blnOthersSelected = false;
	for (var j=0; j<objForm.elements.length; j++)
	{
		if (objForm.elements[j].type == 'checkbox')
		{
			if(objForm.elements[j].checked)
			{
				var strSectionValue = objForm.elements[j].name;
				if(strSectionValue.indexOf('ML.BASE.AllSections') != -1)
				{
					blnAllSelected = true;
				}
				else
				{
					blnOthersSelected = true;
				}
			}
		}
	}
	if(blnAllSelected && blnOthersSelected)
	{
		alert(strMessage);
		return false;
	}
}

function SetFileUpload(strValue)
{    
    strInternalFile = strValue;    
    return;
}

function ValidateStartFile(strMessage) 
{
    var objForm = document.BaseForm;
    var blnStartFileSelected = false;
    
	for (i=0; i<objForm.elements.length; i++) 
	{
		var element = objForm.elements[i];
		if(element.type == 'radio' && element.name== 'SelectLaunchFile')
		{
			if(element.checked == true)
			    blnStartFileSelected = true;			    
	    }
	}
	
	if(blnStartFileSelected == false)
	{
	    alert(strMessage);
        return false;
	}
	else
	{
	    return true;		
	}
			
}

function ValidateFileCreation(strEmptyFieldAlert) 
{
    var blnShowEmptyFieldAlert = false;
    var objForm = document.BaseForm; 
    for (i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		var strElementName = element.name;
		if(strElementName.indexOf('COURSE_PATH') != -1)
		{
		    if(element.value == "" || element.value.length == 0)
		    {
                for (i =  0; i < objForm.elements.length; i++)
	            {
	                var element2 = objForm.elements[i];
		            var strElement2Name = element2.name;
		            if(strElement2Name.indexOf('COURSE_URL') != -1)
		            {
		                if(element2.value == "" || element2.value.length == 0)
		                {
		                    for (i =  0; i < objForm.elements.length; i++)
	                        {
	                            var element3 = objForm.elements[i];
		                        var strElement3Name = element3.name;
		                        if(strElement3Name.indexOf('GENCRS_ICON_ID') != -1)
		                        {
		                            if(element3.value == "" || element3.value.length == 0)
		                            {
		                                blnShowEmptyFieldAlert = true;
		                            }
		                        }
	                        }
		                    
		                }
		            }
	            }			        
		    }
		}
	}
	
	if(blnShowEmptyFieldAlert == true)
    {
        alert(strEmptyFieldAlert);
        return false;
    }
    else
    {
        return true;
    }
}

function ValidateFileUpload(strMessageUrl,strMessageFile,strEmptyFieldAlert) 
{ 
    var objForm = document.BaseForm;
	var boolInternalChecked = false;
	var boolExternalChecked = false;
	var blnShowEmptyFieldAlert = false;
	
	for (i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		if('radio' == element.type
			&& element.value == 'INTERNALCOURSE_PATH'
			&& element.checked == true)
		{
				boolInternalChecked = true;
				break;
		}
		if('radio' == element.type
			&& element.value == 'EXTERNALFILE_URL'
			&& element.checked == true)
		{
				boolExternalChecked = true;
				break;
		}
	}
	for(i=0;i<objForm.elements.length;i++)
	{
		var element = objForm.elements[i];
		if('file' == element.type)
		{
			var strElementName = element.name;
			var j = strElementName.lastIndexOf('$');
			var strName = strElementName.substring(j+1);
			if('COURSE_PATH' == strName)
			{
				if(true == boolInternalChecked && "" == element.value)
				{
					blnShowEmptyFieldAlert = true;
					break;
				}
			}
		}
		if('text' == element.type)
		{
			var strElementName = element.name;
			var j = strElementName.lastIndexOf('$');
			var strName = strElementName.substring(j+1);
			if('COURSE_URL' == strName)
			{
				if(true == boolExternalChecked && "" == element.value)
				{
					blnShowEmptyFieldAlert = true;
					break;
				}
			}
		}
	}

    if(blnShowEmptyFieldAlert == false)
    {

    if(strInternalFile == "T")
    {        
        if(blnFileRadioButtonEnabled == true )
        { 
            if(!confirm(strMessageFile))
            {        
                return false;
            }
            else
            {        
                return true;       
            }
        }
        else
        {
            if(!confirm(strMessageUrl))
            {        
                return false;
            }
            else
            {        
                return true;       
            }
        }
     }
     else 
     {            
        return true;
     } 
      
     } 
     else
     {
        alert(strEmptyFieldAlert);
        return false;
     }

}

function ValidateCheckBoxSelect(TheForm, strPrefix, strMessage) 
{
	var intCheckbox;
	
	intCheckbox = -1;
	for (var i=0;i<TheForm.elements.length;i++) {
		var strElementName;
		strElementName = TheForm.elements[i].name;
		if (TheForm.elements[i].type == 'checkbox' && strElementName.indexOf(strPrefix) >= 0) {
			if (TheForm.elements[i].checked) {
				intCheckbox = i;
			}
		}
	}

	if (intCheckbox == -1) {
		alert(strMessage);
		return false;
	}

	return true;
}

function ValidateEmptyTextBox(TheForm, strPrefix, strMessage) 
{
	var intEmptyTextBox;
	
	intEmptyTextBox = -1;
	for (var i=0;i<TheForm.elements.length;i++) {
		var strElementName;
		strElementName = TheForm.elements[i].name;
		if (TheForm.elements[i].type == 'text' && strElementName.indexOf(strPrefix) >= 0) {
			if (TheForm.elements[i].value != '') {			   
				intEmptyTextBox = i;
			}
		}
	}

  	if (intEmptyTextBox == -1) {
		alert(strMessage);
		return false;
	}

	return true;
}

function ValidateRadioButtonSelect(TheForm, strPrefix, strMessage) 
{
	var intRadioButton;
	
	intRadioButton = -1;
	for (var i=0;i<TheForm.elements.length;i++) {
		var strElementId;
		strElementId = TheForm.elements[i].id;
		if (TheForm.elements[i].type == 'radio' && strElementId.indexOf(strPrefix) > 0) {
			if (TheForm.elements[i].checked) {
				intRadioButton = i;
			}
		}
	}

	if (intRadioButton == -1) {
		alert(strMessage);
		return false;
	}

	return true;
}



function ValidateAllSingleDropDownSelect(TheForm, strPrefix, strMessage) 
{
	
	var blnAllSelected;
	
	blnAllSelected = true;
	
	for (var i=0;i<TheForm.elements.length;i++) {
	
		var strElementId;
		
		var objElement;
		
		objElement = TheForm.elements[i];
		
		strElementId = objElement.id;
	
		
		if (objElement.type == 'select-one' && strElementId.indexOf(strPrefix) > 0) {

			if (objElement.selectedIndex == -1)
			{
				blnAllSelected = false;
			}
			else if (objElement.options[objElement.selectedIndex].value == "")
			{
				blnAllSelected = false;
			}

			
		}
	}
	
	if (!blnAllSelected)
	{
		alert(strMessage);
	}


	return blnAllSelected;
}



function GoRatingInformation(strItemId) {

	ShowAlert(strItemId);
	newwindow = window.open(GetCalculatedUrl('Library/FAQ/FAQInformation.aspx') + '?strItemId=' + escape(strItemId), '_FAQInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();		
	}

}

function GoLaunchContent(strItemId, strContentType) {
	switch (strContentType) { 
	case "CollaborationSpace":
		self.location.href = (GetCalculatedUrl('CollaborationSpace/CSSpaceSimpleSearch.aspx') + '?strItemId=' + escape(strItemId));
		break;

	default:
		break;

	}
	return true;
	alert("TODO - Create launching content page.  Parameters: Content Id (" + strItemId + ") -  Content Type (" + strContentType + ")");
	return false;
}

function ConfirmPreview(strItemId,strMessage) 
{
    var objForm = document.BaseForm;
	// Find associated drop-down, see if selected item is lock test.
	var varSelected = '';
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
	
		if (element.type=='select-one' && 
			element.name.indexOf('ActionsMenu_')!= -1 &&
			element.name.indexOf(strItemId)!= -1)
		{
				varSelected = element.value;
		}
	}

	if(varSelected == 'ML.BASE.ACT.Preview')
	{

	if (!(confirm(strMessage))) 
	{
		return false;
	}
	}
	return true;
}

function ConfirmCheckBoxSelect(strMessage) 
{
	if (!(confirm(strMessage))) {
		return false;
	}
	return true;
}

function ConfirmRadioButtonSelect(TheForm, strPrefix, strMessage) 
{
	if (!(confirm(strMessage))) {
		return false;
	}
	return true;
}

function ConfirmAndRedirect(TheForm, strRedirectLink, strMessage) 
{
	if (!(confirm(strMessage))) {
		return false;
	}
	self.location.href = strRedirectLink;
	return true;
}

function ConfirmClick(strMessage) 
{
	if (!(confirm(strMessage))) {
		return false;
	}
	return true;
}
///for a section this function checks to see if the new capacity is less that the enrolled user count
//if it is then puts an alert
function CheckSectionMaxCapacity(strMessage)
{
   	var objForm =document.BaseForm;
   	var iSectionMaxCapacity = 0;
   	var iEnrolledUser = 0;
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];

		if (element.type=='text' && element.name.indexOf('CRSSECT_MAX_CAPACITY')!= -1)
	    {
	        iSectionMaxCapacity = element.value;
	    }
		if (element.type=='text' && element.name.indexOf('ENROLL_COUNT')!= -1)
	    {
	        iEnrolledUser = element.value;
	    }
    }
    if(iEnrolledUser > iSectionMaxCapacity)
    {
	    if (!(confirm(strMessage))) {
		    return false;
	    }
	}
	return true;
    

}

function EditScoreCheck(strMessage, strCGIMessage, strScoreMessage, strCGIScoreMessage) 
{
    // Determine if any 'Completed' selected
   	var objForm =document.BaseForm;
	var iIndex = 0;
	var blnCompletedSelected = false;
    var blnStatusChange = false;
    var blnScoreInvalid = false;
    
	//Check to see if any of the score field is invalid
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];

		if (element.type=='text' && element.name.indexOf('PRG_FINAL_SCORE')!= -1)
	    {
	        if (element.value.match(/^\d*(\.\d{1,2})?$/) != null)
	        {
	            if (strCGIIntegration == 'ON')
	            {
	                //for CGI maxlength is 5
	                if (element.value.length > 5)
	                {
	                   blnScoreInvalid = true;
                       break;
	                }
	            }
	            else
	            {
	            	//base maxlength is 9
	            	if (element.value.length > 9)
	                {
	                   blnScoreInvalid = true;
                       break;
	                }
	            }
	        }
	        else
	        {
	            blnScoreInvalid = true;
                break;
	        }
	    }
	}
	    
    //if one of the score values is invalid then can't submit the form.
    if (blnScoreInvalid)
    {
        if (strCGIIntegration == 'ON')
        {
            alert(strCGIScoreMessage);
        }
        else
        {
            alert(strScoreMessage);
        }
        return false;
    }

	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
	    
		if (element.type=='select-one' && element.name.indexOf('PRG_ALTERNATE_STATUS')!= -1)
		{
			if(strCGIIntegration == 'ON')
			{
    			//Completion statuses for CGI are A, B, C, D and Pass. 
    			if((element.CurrentValue != element.value) && (element.value == 'ML.BASE.DV.CoursewareStatus.A' || element.value == 'ML.BASE.DV.CoursewareStatus.B' || element.value == 'ML.BASE.DV.CoursewareStatus.C' || element.value == 'ML.BASE.DV.CoursewareStatus.D' || element.value == 'ML.BASE.DV.CoursewareStatus.Pass'))
	    		{
		    	    blnCompletedSelected = true;
			    	break;
			    }
			}
			else
			{
    			//Completion statuses for BASE is Completed. 
    			if((element.CurrentValue != element.value) && element.value == 'ML.BASE.DV.CoursewareStatus.Completed')
	    		{
		    	    blnCompletedSelected = true;
			    	break;
			    }
			}
		}
	}

    // BASE warning message shows only when completion status is set for the first time or an incomplete status is changed to a complete status.
	if(blnCompletedSelected)
	{
		if (!(confirm(strMessage))) {
			return false;
		}
	}
	
	// CGI warning message shows only when there is a status change in one of the drop downs. 
	if(strCGIIntegration == 'ON')
	{
	    //Set a flag when there is a change in status.
	    for (var i =  0; i < objForm.elements.length; i++)
	    {
		    var element = objForm.elements[i];
    	
		    if (element.type=='select-one' && element.name.indexOf('PRG_ALTERNATE_STATUS')!= -1)
		    {
		        if(element.CurrentValue != '' && element.CurrentValue != element.value)
		        {
		            blnStatusChange = true;
		            break;
		        }
		    }
	    }
	    
	    if(blnStatusChange) 
	    {
    	    if (!(confirm(strCGIMessage))) {
	    		return false;
		    }
		}
	}
    
	return true;
}

function AlertReturnFalse(strMessage) 
{
	alert (strMessage);
	return false;
}

function DatePicker(strControlId) 
{

    var elementlist = document.BaseForm.elements;
	for (i=0;i<elementlist.length;i++) 
    {
	    if (elementlist[i].name.indexOf(strControlId + "||MONTH") != -1) 
	    {
			if (elementlist[i].disabled)
			{
				return;
			}
	    } 
    }

	
	
	var strDate = 'START_DATE';
	/*The checkbox(NO_START_DATE or NO_END_DATE should be unchecked when the CalenderICon isclicked in EditActivity page*/
	switch(strControlId)
	{
		case 'OBJ_ACTIVE_START_DATE':
		case 'OBJ_ACTIVE_END_DATE':
			if(strControlId.indexOf('END_DATE') != -1)
			{
				strDate = 'END_DATE'
			}
			var objForm = document.BaseForm;
            if(objForm.elements.length > 100)
            {
               break;
            }
			else
			{
			    for (i=0;i<objForm.elements.length;i++) 
			    {
				    var element = objForm.elements[i];
				    if(element.type == 'checkbox'&& element.name.indexOf(strDate)!= -1)
				    {
					    element.checked = false;
					    break;
				    }
			    }
			}		
			break;
		default:
			break;
	}
	newwindow = window.open (GetCalculatedUrl('Utilities/SelectDate.aspx') + '?strControlId=' + escape(strControlId), '_SelectDate', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=255,height=160');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
}
function SetSelectDomainAdmin(strUserName)
{
	if(opener.document.BaseForm == null)
	{
		self.close();
	}
	var  ilength = opener.document.BaseForm.elements.length;
	var objForm = opener.document.BaseForm;
	for(var i=0;i<ilength;i++)
	{
		var element=objForm.elements[i];
		
		if(element.name.indexOf('DM_ADMIN_USER_NAME') != -1)
		{
			element.value= strUserName;
			break;
		}
	
		
	}
	self.close();
}
/*
This function launches the DomainSelectAdmin page
*/
function DomainSelectAdmin()
{
	newwindow = window.open (GetCalculatedUrl('Domain/Management/DomainSelectAdmin.aspx'), '_SelectAdmin', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=900,height=620');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
}


function InputItemAltered() {
	document.BaseForm.blnHasMadeChange.value = true;
	blnHasMadeChange = true;
}

/*
This custom validator is associated with the RecurrenceType DD
it makes sure if Recurrence type other than one day is selected then 
Recurrence Date is not empty
*/
function RecurrenceDateEmptyValidation(source,args)
{
	var objForm = document.BaseForm;
	var objElement = document.getElementById(source.controltovalidate);
	var objValue = objElement.value;
	var blnRecurrence = true;
	switch(objValue.toUpperCase())
	{
		case "ML.BASE.DV.RECURRENCETYPE.TYPE1ONEDAY":
		    blnRecurrence = false;
    		break;
		default:
		    break;
    }
    //if recurrence is false then Recurrence date cannot be empty
    //if recurrence is set to anything else, recurrence date is disabled
    //so we are good
    if(true == blnRecurrence)
    {
        var i =0;
	    for(i=0;i<objForm.elements.length;i++)
	    {
		    var element=objForm.elements[i];
		    if((element.name.indexOf('EVT_RECURRENCE_END_DATE||MONTH') != -1)
		    ||(element.name.indexOf('EVT_RECURRENCE_END_DATE||DAY') != -1)
		    ||(element.name.indexOf('EVT_RECURRENCE_END_DATE||YEAR') != -1))
            {
                i++;
                if('' == element.value)
                {
                    args.IsValid = false;
                    break;
                }
                if(i == 3)
                {
                    break;
                }
            }    
        }
    }
}

/*This function handles the RecurType DropDown in the CalendarAddEvent page
It Enables or Disables the EventDay checkboxlist depending upon the recurrence type selected*/
function RecurTypeDDHandler()
{
	var objForm = document.BaseForm;
	var blnEventDayEnabled = true;
	var blnEventWeekEnabled = true;
	var blnRecurrence = true;
	for(var i=0;i<objForm.elements.length;i++)
	{
		var element=objForm.elements[i];
		
		if(element.type=='select-one' && element.name.indexOf('EVT_RECURRENCE_TYPE_ID') != -1)
		{
			switch(element.value.toUpperCase())
			{
				case "ML.BASE.DV.RECURRENCETYPE.TYPE1ONEDAY":
					blnEventDayEnabled=false;
					blnEventWeekEnabled=false;
					blnRecurrence = false;
					break;
				case "ML.BASE.DV.RECURRENCETYPE.TYPE2WORKDAYS":
					blnEventDayEnabled=false;
					blnEventWeekEnabled=false;
					break;
				case "ML.BASE.DV.RECURRENCETYPE.TYPE3DAILY":
					blnEventDayEnabled=false;
					blnEventWeekEnabled=false;
					break;
				case "ML.BASE.DV.RECURRENCETYPE.TYPE4WEEKLY":
					blnEventDayEnabled=true;
					blnEventWeekEnabled=false;
					break;
				case "ML.BASE.DV.RECURRENCETYPE.TYPE5BIWEEKLY":
					blnEventDayEnabled=true;
					blnEventWeekEnabled=false;
					break;
				case "ML.BASE.DV.RECURRENCETYPE.TYPE6MONTHLYBYDATE":
					blnEventDayEnabled=false;
					blnEventWeekEnabled=false;
					break;
				case "ML.BASE.DV.RECURRENCETYPE.TYPE7MONTHLYBYDAY":
					blnEventDayEnabled=false;
					blnEventWeekEnabled= true;
					break;
				case "ML.BASE.DV.RECURRENCETYPE.TYPE8ANNUALLY":
					blnEventDayEnabled=false;
					blnEventWeekEnabled=false;
					break;
				default:
					blnEventDayEnabled=false;
					blnEventWeekEnabled=false;
					break;
			}

			break;
		}
	}
	/*
	var iCount = 0;
	for(i=0;i<objForm.elements.length;i++)
	{
		var element=objForm.elements[i];
		if(element.name.indexOf('EVT_RECURRENCE_END_DATE') != -1)
		{
		    //alert(element.value);
		    iCount++;
			if(false == blnRecurrence)
        	{
		        element.disabled = true;
	            if(element.name.indexOf('EVT_RECURRENCE_END_DATE||YEAR')!= -1)
	            {
                    element.value = '';
	            }
	            if(element.name.indexOf('EVT_RECURRENCE_END_DATE||MONTH')!= -1 || element.name.indexOf('EVT_RECURRENCE_END_DATE||DAY')!= -1)
	            {
	                element.selectedIndex = 0;
	            }
	        }
	        else
	        {
	            element.disabled = false;
	        }	    
	        if(iCount == 4)
	        {
	            break;
	        }
		}
    }
    */
	for(i=0;i<objForm.elements.length;i++)
	{
		var element=objForm.elements[i];
		
		if(element.type=='checkbox' && element.name.indexOf('EVT_EVENT_DAY_ID') != -1)
		{
			if(blnEventDayEnabled == true)
			{
				element.disabled = false;
			}
			else
			{
				element.disabled = true;
				element.checked = false;
			}	
		}
	}	

	for(i=0;i<objForm.elements.length;i++)
	{
		var element=objForm.elements[i];
		
		if(element.type=='select-one' &&
				((element.name.indexOf('EVT_EVENT_DAY_ID_1') != -1) ||(element.name.indexOf('EVT_EVENT_OCCURTIME_ID')!= -1)))
		{
			if(blnEventWeekEnabled == true)
			{
				element.disabled = false;
			}
			else
			{
				element.disabled = true;
				element.selectedIndex = 0;			
			}	
			
		}
	}	
	
}
/*
This clientside validation
checks to see for a calendar event if AllDayEvent is not checked
then start and end times are selected
*/
function CheckAllDayEventCheckbox(source,args)
{
	var objForm = document.BaseForm;
	
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		if(element.type == 'checkbox'&& element.name.indexOf('EVT_ALLDAYEVENT')!= -1)
		{
			chkElement = element;	
			break;		
		}
	}
	
	
	var blnAllDayEvent = false;
	if(chkElement.checked == true)
	{
	    blnAllDayEvent = true;
	}
	if(false == blnAllDayEvent)
	{
	    for (i=0;i<objForm.elements.length;i++) 
	    {
		    var element = objForm.elements[i];
		    if(element.type == 'select-one')
		    {
			    if(element.name.indexOf('EVT_START_DATE||TIME') != -1 
				    || element.name.indexOf('EVT_END_DATE||TIME') != -1 )
                {
                    if(element.selectedIndex == 0)
                    {
                        args.IsValid = false;
                        break;            
                    }                    
			    }
		    }
	    }	
	}
}
/*This function handles the OnClick event of the AllDayEvent checkbox on the CalendarAddEvent page
when the checkbox is checked the StartTime and EndTime drop downs should be disabled
*/
function AllDayEventCheckBoxHandler()
{
	var objForm = document.BaseForm;
	var chkElement = null;
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		if(element.type == 'checkbox'&& element.name.indexOf('EVT_ALLDAYEVENT')!= -1)
		{
			chkElement = element;	
			break;		
		}
	}
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		if(element.type == 'select-one')
		{
			if(element.name.indexOf('EVT_START_DATE||TIME') != -1 
				|| element.name.indexOf('EVT_END_DATE||TIME') != -1 )
			if(chkElement.checked == true)
			{
				element.selectedIndex = 0;
				element.disabled = true;
			}
			else
			{
				element.disabled = false;
			}
		}
	}	
}


/*This function handles the onChange event of the checkbox(No_START_DATE
and NO_END_DATE)on the EditActivity page. When the checkbox is checked the Controls(Month, Day, Year)
that show the date should be cleared */
function ActivityCheckBoxHandler(strCheckBoxId)
{
	var objForm = document.BaseForm;
	var strDate = 'START_DATE';
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		if(element.type == 'checkbox'&& element.name.indexOf(strCheckBoxId)!= -1)
		{
			if(false == element.checked)
				return
			else
			{
				if(strCheckBoxId.indexOf('END_DATE')!= -1)
				{
					strDate = 'END_DATE';
					break;
				}
			}
			
			
		}
	}

	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		if(element.type == 'select-one')
		{
			if(element.name.indexOf(strDate+'||MONTH') != -1 
					|| element.name.indexOf(strDate+'||DAY') != -1 )
			{
						element.selectedIndex = 0;				
			}
			else
			{
				continue;		
			}
		}
		else if (element.type == 'text')
		{
			if(element.name.indexOf(strDate+'||YEAR') != -1)
			{
				element.value = "";
			}
			else
			{
				continue;
			}
		}
				

	}
}

function CollaborationSpaceDisableCustomText () 
{
	var objForm = document.BaseForm;
	for (i=0;i<objForm.elements.length;i++) 
	{
		var strName = objForm.elements[i].name;
		if(strName.indexOf("CS_HOMEPAGE_TEXT_OPTION") != -1)
		{
			switch (objForm.elements[i].value.toUpperCase()) 
			{
				case "DESCRIPTION":
				case "NONE":
					for (k=0;k<objForm.elements.length;k++) 
					{
						var strBoxName = objForm.elements[k].name;
						if (strBoxName.indexOf("CS_HOMEPAGE_TEXT") != -1 &&
							objForm.elements[k].type.toUpperCase() == "TEXTAREA") 
						{
							var objElement = objForm.elements[k];
							objElement.value = "";
							objElement.disabled = true;
							break;
						}
					}	
					break;
				
				case "CUSTOM":
					for (k=0;k<objForm.elements.length;k++) 
					{
						var strBoxName = objForm.elements[k].name;
						if (strBoxName.indexOf("CS_HOMEPAGE_TEXT") != -1 &&
							objForm.elements[k].type.toUpperCase() == "TEXTAREA") 
						{
							var objElement = objForm.elements[k];
							objElement.disabled = false;
							break;
						}
					}	
					break;
				
				default:
					break;
			}
			break;
		}
	}	
	return false;
}



function DocumentsRadioHandler(strRadioId)
{
	var objForm = document.BaseForm;
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		if('file' == element.type)
		{
			var strElementName = element.name;
			var j = strElementName.lastIndexOf('$');
			var strName = strElementName.substring(j+1);
			if('DOCUMENT_PATH' == strName)
			{
				if('INTERNALDOC_PATH' == strRadioId)
				{
					element.disabled = false;
				}
				else if('EXTERNALFILE_URL' == strRadioId)
				{
					element.disabled = true;
				}
			}
			continue;
		}
		else if('text' ==  element.type)
		{
			var strElementName = element.name;
			var j = strElementName.lastIndexOf('$');
			var strName = strElementName.substring(j+1);
			if('DOCUMENT_URL' == strName)
			{
				if ('INTERNALDOC_PATH' == strRadioId)
				{
					element.disabled = true;
				}
				else if ('EXTERNALFILE_URL' == strRadioId)
				{
					element.disabled = false;
				}
			}
			
			continue;
		}
	}	
}


function ConfirmBeforeNavigateAway(strConfirmMessage) 
{
	if (blnHasMadeChange) 
	{
		if (!(confirm(strConfirmMessage))) 
		{
			return false;
		}
	}
	
	return true;
}


function GeneralCourseRadioHandler(strRadioId)
{    
	var objForm = document.BaseForm;
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		if('file' == element.type)
		{
			var strElementName = element.name;
			var j = strElementName.lastIndexOf('$');
			var strName = strElementName.substring(j+1);
			if('COURSE_PATH' == strName)
			{
				if('INTERNALCOURSE_PATH' == strRadioId)
				{
					element.disabled = false;
					blnFileRadioButtonEnabled = true;
				}
				else if('EXTERNALFILE_URL' == strRadioId)
				{
					element.disabled = true;
					blnFileRadioButtonEnabled = false;
				}
				else if('CHECK_ICONCOURSE' == strRadioId)
				{
					element.disabled = true;
					blnFileRadioButtonEnabled = false;
				}
			}
			continue;
		}
		else if('text' ==  element.type)
		{
			var strElementName = element.name;
			var j = strElementName.lastIndexOf('$');
			var strName = strElementName.substring(j+1);
			if('COURSE_URL' == strName)
			{
				if ('INTERNALCOURSE_PATH' == strRadioId)
				{
					element.disabled = true;					
				}
				else if ('EXTERNALFILE_URL' == strRadioId)
				{
					element.disabled = false;					
				}
				else if('CHECK_ICONCOURSE' == strRadioId)
				{
					element.disabled = true;
					
				}
			}
			
			else if('GENCRS_ICON_ID' == strName)
			{
			    
				if ('INTERNALCOURSE_PATH' == strRadioId)
				{
					element.disabled = true;					
				}
				else if ('EXTERNALFILE_URL' == strRadioId)
				{
					element.disabled = true;					
				}
				else if('CHECK_ICONCOURSE' == strRadioId)
				{
					element.disabled = false;
					
				}
			
			}
			
			continue;
		}
	}	
}

function IconTextHandler()
{

var objForm = document.BaseForm;
	for (i=0;i<objForm.elements.length;i++) 
	{
	    var element = objForm.elements[i];
	    
	    if('text' ==  element.type)
	    {
	        var strElementName = element.name;
			var j = strElementName.lastIndexOf('$');
			var strName = strElementName.substring(j+1);
			
			if('GENCRS_ICON_ID' == strName)
			{
			    element.value = "";
			    element.disabled = true;
			    
			}
	    }
	 }
}


/*
This function creates an XMLHTTP object to be used in AJAX calls
*/
function CreateXMLHTTPRequest () {
	try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
	try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
	try { return new XMLHttpRequest(); } catch(e) {}
	alert("XMLHttpRequest not supported");
	return null;
}

/*Given a passed Url use base utility to determine if page as been customized and where to 
redirect to
*/
function GetCalculatedUrl (strUrl)
{
	var strhref = location.href.toLowerCase();
	strhref = strhref.substring(0, strhref.indexOf("/kview"));
    var strCalculatedUrl = '';

    try
    {
	var objXMLHTTPRequest = CreateXMLHTTPRequest();
	//strhref = strhref.replace('https:','http:');
	objXMLHTTPRequest.open ("POST", strhref+ "/KView/CustomCodeBehind/Base/Utilities/GetCalculatedUrl.aspx", false);
	
	var strParams = "strUrl=" + strUrl;
	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	objXMLHTTPRequest.send (strParams);
	
	strCalculatedUrl = objXMLHTTPRequest.responseText;
	}
    catch(e)
    {
     var strCalculatedUrl = strhref + '/kview/customcodebehind/base/' + strUrl;
    }	
	return strCalculatedUrl;	
}

/*
Given any string Id, it returns the localized value of the string corresponding to the Id
strAddlParams contains additional parameters in the format '&param1=value1&...' to be passed to the page.
*/
function GetLocalizedMessage(strMessageId, strAddlParams)
{
//    alert("In Get Localized Message");
    var objXMLHTTPRequest = CreateXMLHTTPRequest();
	
	objXMLHTTPRequest.open ("POST", "/KView/CustomCodeBehind/Base/Utilities/GetLocalizedString.aspx", false);

    if(strAddlParams == null)
    {
       strAddlParams = '';
    }

	var strParams = "strMessageId=" + strMessageId + strAddlParams;
	
	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	
	objXMLHTTPRequest.send (strParams);
	
	var strLocalizedMessage = objXMLHTTPRequest.responseText;

	return strLocalizedMessage;
}

/*
Given a content item Id, return a T/F/AskUser value dictating if a new attempt for that content item
should be allowed or not
*/
function GetNewAttemptLogic(strContentId)
{
    var objXMLHTTPRequest = CreateXMLHTTPRequest();
	
	objXMLHTTPRequest.open ("POST", "/KView/CustomCodeBehind/Base/Utilities/GetNewAttemptLogic.aspx", false);
		
	var strParams = "strContentId=" + strContentId;
	
	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	
	objXMLHTTPRequest.send (strParams);
	
	var strNewAttemptAllowed = objXMLHTTPRequest.responseText;
	
	return strNewAttemptAllowed;
}

/*
Given a content item Id, return the window features for that content item
*/
function GetContentWindowFeatures (strContentId) {


	var objXMLHTTPRequest = CreateXMLHTTPRequest();
	objXMLHTTPRequest.open ("POST", "/KView/CustomCodeBehind/Base/GetContentWindowParameters.aspx", false);
	
	
	var strParams = "strContentId=" + strContentId;
	

	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	
	objXMLHTTPRequest.send (strParams);
	
	var strWindowFeatures = objXMLHTTPRequest.responseText;
	
	return strWindowFeatures;

}



function RouteContentLaunch(strItemId, strItemType, strWindowFeatures)
{

    var strLaunchContent = "T";     //Flag that decides whether or not to Launch content
	var strNewAttempt = "";     //Flag that decides whether new attempt is allowed for the content item or not
	
	strNewAttempt = GetNewAttemptLogic(strItemId);    //Ajax call that returns new attempt logic
	var strCreateNewAttempt = "F";      //Flag that decides if a new attempt should be created 
	
	var strMessage = '';

	if(strNewAttempt.toUpperCase() == "T")
	{
	    strLaunchContent = "T";
	    strCreateNewAttempt = "T";
	    strMessage = GetLocalizedMessage("ML.BASE.JSMSG.LaunchAttemptAlwaysNewAfterCompletion");
	    alert(strMessage);
	}
	else if(strNewAttempt.toUpperCase() == "ASKUSER")
	{
	    // Different, localized messages based on user's assignment status
	    if (GetConfigSetting('CGI_INTEGRATION').toUpperCase() == "ON")
	    {
	        strMessage = GetLocalizedMessage("ML.BASE.JSMSG.CGILaunchNewAttempt", '&source=contentlaunch&cgi=on&strItemId='+strItemId);
	    }
	    else
	    {
	        strMessage = GetLocalizedMessage("ML.BASE.JSMSG.LaunchNewAttempt", '&source=contentlaunch&strItemId='+strItemId);
	    }
	    if(!confirm(strMessage))
        {        
            strLaunchContent = "T";
        }
        else
        {        
            strLaunchContent = "T"; 
            strCreateNewAttempt = "T";      
        }
	}
	else if(strNewAttempt.toUpperCase() == "F")
	{
	    strLaunchContent = "T";
	    strCreateNewAttempt = "F";
	}
				
//    alert("strNewAttempt: " + strNewAttempt);
//    alert("strLaunchContent: " + strLaunchContent);
//    alert("strCreateNewAttempt: " + strCreateNewAttempt);
    if(GetConfigSetting('CGI_INTEGRATION').toUpperCase() == "ON" && strCreateNewAttempt == "T")
    {
        var strResetFlag = ResetPreviousAttempt(strItemId);
        window.location.replace(window.location.href);
        return true;
    }
    

    ShowAlert("Launch Item: " + "\n\n" + "Item ID: " + strItemId + "\n\n" + "Item Type: " + strItemType);
    if (strWindowFeatures == null && strItemType.toUpperCase() != "CURRICULUM")
    {
	    strWindowFeatures = GetContentWindowFeatures(strItemId);
    }
    ShowAlert("Window Features:" + strWindowFeatures);

    var strLaunch = strItemType;
    if (strItemType.toUpperCase() == "BLOGADDITIONALSEARCH")
    {
    /*Blog and BlogAdditionalSearch needs to launched in the same window*/
	    strLaunch = "Blog";
    }
    if (strItemType.toUpperCase() == "GLOSSARYLISTING")
    {
	    strLaunch = "Glossary";
    }
	

    var blnNewWindow = false;	
    if (strItemType.toUpperCase() !=  "DOCUMENT" && strItemType.toUpperCase() != "CURRICULUM" && strItemType.toUpperCase() != 'COLLABORATIONSPACE')
    {
	    if (strItemType.toUpperCase() == "COURSEWARE" ||
            strItemType.toUpperCase() == "GENERALCOURSEWARE" ||
		    strItemType.toUpperCase() == "ASSESSMENT" ||
		    strItemType.toUpperCase() == "TEST" ) 
	    {
		    ContentWindow = window.open("", '_' + strLaunch, strWindowFeatures);
	    }
	    else 
	    {
		    ContentWindow = window.open("",'_'+ strLaunch,strWindowFeatures);
	    }
		
	    if (ContentWindow && ContentWindow.open && !ContentWindow.closed)
	    {
		    if (strItemType.toUpperCase() !=  "DOCUMENT" && ContentWindow.location.href == "about:blank")
		    {
		        blnNewWindow = true;  // Change location.href
			    //ContentWindow.location.href = '/KView/CustomCodeBehind/ContentRouter.aspx?strItemType=' + escape(strItemType) + '&strItemId=' + escape(strItemId);
		    }
		    else
		    {
		        if (strItemType.toUpperCase() !=  "GLOSSARY" && strItemType.toUpperCase() !=  "GLOSSARYLISTING")
		        {
			        ContentWindow.close();
			    }
				
		    }
	    }
    }
	
    //TODO: Add AJAX call to set strItemType, strItemId in the query string hashtable (so we can avoid passing them along the URL)
	
    switch (strItemType.toUpperCase())
    {
	    case "ANNOUNCEMENT":
		    ContentWindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId), '_'+ strLaunch, strWindowFeatures);
		    SetRefreshTimer();
		    break;
			
	    case "FAQ":
		    ContentWindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId), '_'+ strLaunch, strWindowFeatures);
		    SetRefreshTimer();
		    break;
			
	    case "SURVEYVIEW":
		    ContentWindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId), '_'+ strLaunch, strWindowFeatures);
		    break;

	    case "SURVEYRATING":
		    ContentWindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId), '_'+ strLaunch + '&strTabFocusId=REVIEW', strWindowFeatures);
		    break;

	    case "SURVEYSCALE":
		    ContentWindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId), '_'+ strLaunch, strWindowFeatures);
		    break;

	    case "GLOSSARY":
		    ContentWindow.location.href = GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId);
		    break;
			
	    case "GLOSSARYLISTING":
		    ContentWindow.location.href = GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId);
		    break;

	    case "DOCUMENT":
		    // Issue 5078 - AKR - 07/24/07
		    //ContentWindow = window.open ('/KView/CustomCodeBehind/ContentRouter.aspx?strItemType=' + escape(strItemType) + '&strItemId=' + escape(strItemId), '_'+ strLaunch, strWindowFeatures);
		    ContentWindow = window.open ('', '_'+ strLaunch, strWindowFeatures);
		    var strHTML = '<HTML><HEAD><TITLE>' + strDocumentWindowTitle + '</TITLE></HEAD>';
		    strHTML += '<FRAMESET><FRAME name="' + strDocumentFrameName + '" src="' + GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId) + '">\n</FRAMESET>';
		    strHTML += '</HTML>';
		    ContentWindow.document.write(strHTML);
		    SetRefreshTimer();
		    break;

	    case "COLLABORATIONSPACE":
	        window.location.href = GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId);
		    break;

	    case "SURVEY":
		    ContentWindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId), '_'+ strLaunch, strWindowFeatures);
		    SetRefreshTimer();
		    break;
			
	    case "PREVIEW_SURVEY":
		    ContentWindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId), '_'+ strLaunch, strWindowFeatures);
		    break;
			
	    //Courseware router pops up in window with different window features since windo remains open during the taking of the course 
	    //for SCORM 12 and 2K4.  Thus do NOT want all different types of features on.
	    case "ASSESSMENT":
		    ContentWindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId), '_'+ strLaunch, 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=200,height=200');
		    SetRefreshTimer();
		    break;

	    case "GENERALCOURSEWARE":
		    // Issue 5078 - AKR - 07/24/07
		    var strGCWindowTitle = GetLocalizedMessage("ML.BASE.GeneralCourseWindowTitle");
		    //ContentWindow = window.open ('/KView/CustomCodeBehind/ContentRouter.aspx?strItemType=' + escape(strItemType) + '&strItemId=' + escape(strItemId), '_'+ strLaunch, strWindowFeatures);
		    ContentWindow = window.open ('', '_'+ strLaunch, strWindowFeatures);
		    var strHTML = '<HTML><HEAD><TITLE>' + strGCWindowTitle + '</TITLE></HEAD>';
		    strHTML += '<FRAMESET><FRAME name="' + strDocumentFrameName + '" src="' + GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId) + '">\n</FRAMESET>';
		    strHTML += '</HTML>';
		    ContentWindow.document.write(strHTML);
		    SetRefreshTimer();
		    break;

	    case "COURSEWARE":
		    ContentWindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId), '_'+ strLaunch, strWindowFeatures);
		    SetRefreshTimer();
		    break;
			
	    case "CURRICULUM":
	        window.location.href = GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId);
		    break;

	    case "BLOGADDITIONALSEARCH":
		    newwindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemType=' + escape(strItemType),'_'+strLaunch,strWindowFeatures);
		    break;

	    case "BLOG":
		    ContentWindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId), '_'+ strLaunch,strWindowFeatures);
		    SetRefreshTimer();
		    break;	
			
	    case "IDPSURVEYINSTANCE":
		
		    ContentWindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId), '_'+ strLaunch,strWindowFeatures);
			
    //		SetRefreshTimer();
			
		    break;
			
	    default:
		    newwindow = window.open (GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId), '_'+ strLaunch, strWindowFeatures);

		    if(newwindow && newwindow.open && !newwindow.closed)
		    {
			    newwindow.focus();
		    }

			break;
   }

	if (ContentWindow && ContentWindow.open && !ContentWindow.closed)
	{
		ContentWindow.focus();
	}
	
	
	return false;
}

function RouteContentLaunch_InWSpace(strItemId, strItemType, strGridId)
{
    var strLaunchContent = "T";     //Flag that decides whether or not to Launch content
	var strNewAttempt = "";     //Flag that decides whether new attempt is allowed for the content item or not
	
	strNewAttempt = GetNewAttemptLogic(strItemId);    //Ajax call that returns new attempt logic
	var strCreateNewAttempt = "F";      //Flag that decides if a new attempt should be created 
	
	var strMessage = '';

	if(strNewAttempt.toUpperCase() == "T")
	{
	    strLaunchContent = "T";
	    strCreateNewAttempt = "T";
	    strMessage = GetLocalizedMessage("ML.BASE.JSMSG.LaunchAttemptAlwaysNewAfterCompletion");
	    alert(strMessage);
	}
	else if(strNewAttempt.toUpperCase() == "ASKUSER")
	{
	    // Different, localized messages based on user's assignment status
	    strMessage = GetLocalizedMessage("ML.BASE.JSMSG.LaunchNewAttempt", '&source=contentlaunch&strItemId='+strItemId);
	    if(!confirm(strMessage))
        {        
            strLaunchContent = "T";
        }
        else
        {        
            strLaunchContent = "T"; 
            strCreateNewAttempt = "T";      
        }
	}
	else if(strNewAttempt.toUpperCase() == "F")
	{
	    strLaunchContent = "T";
	    strCreateNewAttempt = "F";
	}
				
	if(strLaunchContent == "T")
	{
	
        var blnNewWindow = false;	
    	
	    window.location.href = GetCalculatedUrl('ContentRouter.aspx') + '?strItemType=' + escape(strItemType) + '&strCreateNewAttempt=' + escape(strCreateNewAttempt) + '&strItemId=' + escape(strItemId) + '&strGridId=' + escape(strGridId);
	
	}

	return false;
}

function GoSCORMCourseMenu(coursewindow, strInUserIdHash, strInCourseIdHash, strInSessionIdHash, strCourseType, strWindowFeatures, strMode, strCredit) 
{
	ShowAlert("User ID: " + strInUserIdHash + "\n\n" + "Course ID: " + strInCourseIdHash + "\n\n" + "In Session ID: " + strInSessionIdHash);
	strUserIdHash = strInUserIdHash;
	strCourseIdHash = strInCourseIdHash;
	strSessionIdHash = strInSessionIdHash;
	
	switch (strCourseType) 
	{
		case "ML.BASE.COURSEWARE.ONLINE.SCORM.12":
			coursewindow = window.open (GetCalculatedUrl('Courseware/SCORM/SCORM12CourseFrame.aspx') + '?strUserId=' + strUserIdHash + '&strCourseId=' + strCourseIdHash + '&strSessionId=' + strSessionIdHash + '&blnValidateCourseLaunch=true', 'SCORMCourseMenu', strWindowFeatures);	
		break;
	
		case "ML.BASE.COURSEWARE.ONLINE.SCORM.2004":
			coursewindow = window.open (GetCalculatedUrl('Courseware/SCORM/SCORMCourseFrame.aspx') + '?strUserId=' + strUserIdHash + '&strCourseId=' + strCourseIdHash + '&strMode=' + strMode + '&strCredit=' + strCredit + '&strSessionId=' + strSessionIdHash + '&blnValidateCourseLaunch=true', 'SCORMCourseMenu', strWindowFeatures);
			break;
			
		case "ML.BASE.ASSESSMENT.SCORM.12":
			coursewindow = window.open (GetCalculatedUrl('Courseware/SCORM/SCORM12CourseFrame.aspx') + '?strUserId=' + strUserIdHash + '&strCourseId=' + strCourseIdHash + '&strSessionId=' + strSessionIdHash + '&blnValidateCourseLaunch=true', 'SCORMCourseMenu', strWindowFeatures);	
		break;
	
		case "ML.BASE.ASSESSMENT.SCORM.2004":
			coursewindow = window.open (GetCalculatedUrl('Courseware/SCORM/SCORMCourseFrame.aspx') + '?strUserId=' + strUserIdHash + '&strCourseId=' + strCourseIdHash + '&strSessionId=' + strSessionIdHash + '&blnValidateCourseLaunch=true', 'SCORMCourseMenu', strWindowFeatures);
			break;
			
		default:
			break;
			
	}
	
	return coursewindow;
}


function GoCertificate(certificatewindow, strInUserIdHash, strInCourseIdHash, strPath) 
{
//	alert("User ID: " + strInUserIdHash + "\n\n" + "Course ID: " + strInCourseIdHash);
	strUserIdHash = strInUserIdHash;
	strCourseIdHash = strInCourseIdHash;
	
	certificatewindow = window.open (strPath + '/certificates/certificate_data.fdf', 'CERTIFICATE_WINDOW', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=640,height=480');

	return certificatewindow;
	
}


function GetAPI()
{
	var theAPI = FindAPI(window);

	if ((theAPI == null) && (window.opener != null) && (typeof(window.opener) != "undefined"))
	{
		theAPI = FindAPI(window.opener);
	}

	if (theAPI == null)
	{
		alert("Unable to find an API adapter");
	}

	return theAPI
}


function GetAPIHandle()
{
	var apiHandle;
//   if (apiHandle == null)
//   {
      apiHandle = GetAPI();
//   }
   return apiHandle;
}


function FindAPI(win)
{
	var FindAPITries = 0;

	while ((win.API_1484_11 == null) && (win.parent != null) && (win.parent != win)) {
		FindAPITries++;

		// Note: 100 is an arbitrary number, but should be more than sufficient
		if (FindAPITries > 100)
		{
			alert("Error finding API -- too deeply nested.");
		
			return null;
		}
		
		win = win.parent;
	}

	return win.API_1484_11;
}


function loadXML(strURL)
{
	if (window.ActiveXObject) 
	{
		alert ("Found implementation");	
	
		var xmlDocument = new ActiveXObject("Microsoft.XMLDOM");
	
		xmlDocument.load(strURL);
	}
	
	return xmlDocument;
}


function xmlError(e)
{
	alert(e);
}


function CurrentDate()
{
	var objCurrentDate = new Date();
	var arrMonth = new Array ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
	var arrDay = new Array ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
	var strDay = arrDay[objCurrentDate.getDay()];
	var strMonth = arrMonth[objCurrentDate.getMonth()];

	//attributes for date
	this.date = objCurrentDate.getDate();
	this.day = objCurrentDate.getDay();
	this.dayname = strDay;
	this.month = objCurrentDate.getMonth();
	this.monthname = strMonth;
	this.year = objCurrentDate.getFullYear();
	this.shortyear = objCurrentDate.getFullYear().toString().substr(2,objCurrentDate.getFullYear().toString().length);
	this.shortDate = objCurrentDate.getMonth() + '/' + objCurrentDate.getDate() + '/' + objCurrentDate.getFullYear().toString().substr(2,objCurrentDate.getFullYear().toString().length);
	this.longDate =  strDay + ' ' + strMonth + ' ' + objCurrentDate.getDate() + ', ' + objCurrentDate.getFullYear();
	this.standardDate = strMonth + ' ' + objCurrentDate.getDate() + ', ' + objCurrentDate.getFullYear();
	//attributes for time
	this.time = objCurrentDate.getTime();
	this.hours = objCurrentDate.getHours();
	this.minutes = objCurrentDate.getMinutes();
	this.seconds = objCurrentDate.getSeconds();
	this.milliseconds = objCurrentDate.getMilliseconds();
	this.standardTime = objCurrentDate.getHours() + ':' + objCurrentDate.getMinutes() + ':' + objCurrentDate.getSeconds();
}


function ConvertTotalSeconds(ts)
{
  var sec = (ts % 60);
  ts -= sec;
  var tmp = (ts % 3600);  //# of seconds in the total # of minutes
  ts -= tmp;              //# of seconds in the total # of hours
  sec = Math.round(sec*100)/100;  // convert seconds to conform to CMITimespan type (e.g. SS.00)
  var strSec = new String(sec);
  var strWholeSec = strSec;
  var strFractionSec = '';
  /*
  moved these variables to the top of the function 
  so that they are not declared multiple times
  */
  var hour = 0;
  var min = 0;
  
  if (strSec.indexOf('.') != -1)
  {
    strWholeSec =  strSec.substring( 0, strSec.indexOf('.'));
    strFractionSec = strSec.substring(strSec.indexOf('.') +  1, strSec.length);
  }
  
  if (strWholeSec.length <  2)
  {
    strWholeSec = '0' + strWholeSec;
  }
  
  strSec = strWholeSec;
  
  if (strFractionSec.length)
  {
    strSec = strSec+ '.' + strFractionSec;
  }
  
  if ((ts % 3600) !=  0)
  {
    hour =  0;
  }
  else
  {
    hour = (ts / 3600);
  }
  
  if ( (tmp % 60) !=  0)
  {
    min =  0;
  }
  else
  {
    min = (tmp / 60);
  }
  
//  if ((new String(hour)).length < 2) {
//    hour = '0'+hour;
// }
  
//  if ((new String(min)).length < 2) {   
//    min = '0'+min;
//  }
  
  var rtnVal = 'T' + hour + 'H' + min + 'M' + strSec + 'S';
  
  return rtnVal;
}


function SeperateTextBoxValues(strSeperator, strElementName)
{
	var strDisplay;

	for (var i =  0; i < document.BaseForm.elements.length; i++) {
		var strCheckName;

		strCheckName = document.BaseForm.elements[i].name;

		if (strCheckName.indexOf("$" + strElementName) != -1) 
		{
			var strTest = document.BaseForm.elements[i].value;

			if ((strTest.charAt(strTest.length -  1) == ' ') && (LastNonSpaceCharacter(strTest) != strSeperator))
			{
				document.BaseForm.elements[i].value = strTest.substring( 0, strTest.length -  1) + strSeperator;
			}
		}
	}
}


function LastNonSpaceCharacter(strString)
{
	var strLastCharacter;
	var j = strString.length - 1;
	
	while (j != 0)
	{
		if (strString.charAt(j) != ' ')
		{
			strLastCharacter = strString.charAt(j);

			break;
		}

		j--;
	}

	return strLastCharacter;
}


function AddLastCharacter(strSeperator, strElementName)
{
	for (var i =  0; i < document.BaseForm.elements.length;i++) {
		var strCheckName;

		strCheckName = document.BaseForm.elements[i].name;

		if (strCheckName.indexOf("$" + strElementName) != -1) 
		{
			var strTest = document.BaseForm.elements[i].value;

			if ((strTest.length !=  0) && (LastNonSpaceCharacter(strTest) != strSeperator))
			{
				document.BaseForm.elements[i].value = strTest.substring( 0, strTest.length) + strSeperator;
			}
		}
	}
}


function trim(s)
{
	while (s.substring( 0, 1) == ' ')
	{
		s = s.substring( 1, s.length);
	}
  
	while (s.substring(s.length -  1, s.length) == ' ')
	{
		s = s.substring( 0, s.length -  1);
	}

	return s;
}


/// When launching all content in a pop up mode need to know that this happened.   A session variable would not be viable because it would also
/// be read by the launching window and thus conflict.  In order to fix this issue, all pop up will go in a frameset, the top level frame will store
/// the content type of pop up.  This value will be used when there is knowledge of requiring the value.  For example with collaboration spaces,
/// since there is no need for this when dealing with documents the document will launch in a full window with no popup.
/// This function is called everytime the BaseForm is submitted.
function RetrievePopUpMode()
{
	if (top.strContentType != null)
	{
//		alert (top.strContentType);
		document.BaseForm.strContentType.value = top.strContentType;
	}
}


function GoViewSurveyComments(strSurveyId, strSectionId, strQuestionId)
{
	newwindow = window.open (GetCalculatedUrl('Reports/ManagementReports/SurveyShortAnswerResponses.aspx') + '?strSurveyId=' + strSurveyId + '&strSectionId=' + strSectionId + '&strQuestionId=' + strQuestionId, 'ViewSurveyComments', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=1024,height=768');

	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
}


function WindowLaunchSizePreview()
{
	var objForm = document.BaseForm;
	var blnToolbar = false;
	var blnLocation = false;
	var blnDirectories = false;
	var blnStatus = false;
	var blnMenubar = false;
	var blnScrollbars = false;
	var blnResizable = false;
	var intHeight = "";
	var intWidth = "";

	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		var strElementName = "";
		
		if (element.name.indexOf("$") != -1)
		{
			strElementName = element.name.substring(element.name.lastIndexOf("$") + 1);		
//			alert (strElementName);
			
			switch (strElementName) 
			{
				case "toolbar":
					
					if (element.checked) 
					{
						blnToolbar = element.value.toLowerCase();
					}

					break;

				case "location":

					if (element.checked) 
					{
						 blnLocation = element.value.toLowerCase();
					}

					break;

				case "directories":
					if (element.checked) 
					{
						 blnDirectories = element.value.toLowerCase();
					}

					break;

				case "status":

					if (element.checked) 
					{
						 blnStatus = element.value.toLowerCase();
					}

					break;

				case "menubar":

					if (element.checked) 
					{
						 blnMenubar = element.value.toLowerCase();
					}

					break;

				case "scrollbars":

					if (element.checked) 
					{
						 blnScrollbars = element.value.toLowerCase();
					}

					break;

				case "resizable":

					if (element.checked) 
					{
						blnResizable = element.value.toLowerCase();
					}

					break;

				case "height":
					intHeight = element.value.toLowerCase();

					break;

				case "width":
					intWidth = element.value.toLowerCase();

					break;

				default:

					break;
			}
		}
	}

	var strProperties = 'toolbar=' + blnToolbar + ',location=' + blnLocation + ',directories=' + blnDirectories + ',status=' + blnStatus + ',menubar=' + blnMenubar +',scrollbars=' + blnScrollbars + ',resizable=' + blnResizable + ',height=' + intHeight + ',width=' + intWidth;	

	newwindow = window.open(GetCalculatedUrl('Content/WindowFeaturesInformation.aspx') + '?strProperties=' + escape(strProperties), 'test_pop_up', strProperties);

	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return false;
}


function RouteSelectedAction (strItemId, strUserId)
{
    var objForm = document.BaseForm;

    var blnReturnValue = true;
    var blnLaunchReport = false;
    var strReport = "";

    for (i =  0; i < objForm.elements.length; i++)
    {
        strElementName = objForm.elements[i].name;

        if (objForm.elements[i].type == 'select-one' && strElementName.indexOf("ActionsMenu") != -1)
        {
            if (objForm.elements[i].getAttribute("AssocId") != null)
            {
                if (objForm.elements[i].getAttribute("AssocId") == strItemId)
                {
                    switch (objForm.elements[i].value)
                    {
                        case 'ML.BASE.ACT.CourseCompletion':
							strReport =objForm.elements[i].value;
							blnLaunchReport = true;
                            blnReturnValue = false;

                            break;

                        case 'ML.BASE.ACT.Certificate':
							strReport =objForm.elements[i].value;
							blnLaunchReport = true;
                            blnReturnValue = false;

                            break;
                           

                        default:

                            break;
                    }
                }
            }
        }
    }           
   
    if (blnLaunchReport)
    {
    	newwindow = window.open (GetCalculatedUrl('Reports/ReportRouter.aspx') + '?strUserId=' + strUserId + '&strCourseID=' + strItemId + '&strReport=' + strReport, '_PopupReport', 'toolbar=yes,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=840,height=620');

		if (newwindow && newwindow.open && !newwindow.closed)
		{
	    	newwindow.focus();
    	}
	}

	return blnReturnValue;
}

function RouteSelectedActionPreviewCert(strItemId)
{
    var objForm = document.BaseForm;

    var blnReturnValue = true;
    var blnLaunchReport = false;
    var strReport = "";

    for (i =  0; i < objForm.elements.length; i++)
    {
        strElementName = objForm.elements[i].name;

        if (objForm.elements[i].type == 'select-one' && strElementName.indexOf("ActionsMenu") != -1)
        {
            if (objForm.elements[i].getAttribute("AssocId") != null)
            {
                if (objForm.elements[i].getAttribute("AssocId") == strItemId)
                {
                    switch (objForm.elements[i].value)
                    {
                        case 'ML.BASE.ACT.Preview':
							strReport =objForm.elements[i].value;
							blnLaunchReport = true;
                            blnReturnValue = false;

                            break;

                        default:

                            break;
                    }
                }
            }
        }
    }           
   if(blnLaunchReport)
   {
	    newwindow = window.open (GetCalculatedUrl('Reports/DPH_ReportRouter.aspx') + '?CourseId=&strProgressID=' + strItemId + '&strReport=' + strReport, '_PopupReport', 'toolbar=yes,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=840,height=620');

	    if (newwindow && newwindow.open && !newwindow.closed)
	    {
    	    newwindow.focus();
	    }
	}
	

	return blnReturnValue;
}

function RouteSelectedActionForCertificate(strItemId)
{
    var objForm = document.BaseForm;

    var blnReturnValue = true;
    var blnLaunchReport = false;
    var strReport = "";

    for (i =  0; i < objForm.elements.length; i++)
    {
        strElementName = objForm.elements[i].name;

        if (objForm.elements[i].type == 'select-one' && strElementName.indexOf("ActionsMenu") != -1)
        {
            if (objForm.elements[i].getAttribute("AssocId") != null)
            {
                if (objForm.elements[i].getAttribute("AssocId") == strItemId)
                {
                    switch (objForm.elements[i].value)
                    {
                        case 'ML.BASE.ACT.Certificate':
							strReport =objForm.elements[i].value;
							blnLaunchReport = true;
                            blnReturnValue = false;

                            break;

                        default:

                            break;
                    }
                }
            }
        }
    }           
   if(blnLaunchReport)
   {
	    newwindow = window.open (GetCalculatedUrl('Reports/ReportRouter.aspx') + '?CourseId=&strProgressID=' + strItemId + '&strReport=' + strReport, '_PopupReport', 'toolbar=yes,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=840,height=620');

	    if (newwindow && newwindow.open && !newwindow.closed)
	    {
    	    newwindow.focus();
	    }
	}
	

	return blnReturnValue;
}
function GoAboutLMS()
{
	newwindow = window.open (GetCalculatedUrl('Utilities/AboutPage.aspx'), '_AboutMLMS', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=yes,width=910,height=480');
	
	if (null != newwindow)
	{
		newwindow.focus();
	}

	return false;
}


function GoGlossary()
{
	newwindow = window.open (GetCalculatedUrl('Content/Glossary/GlossarySimpleSearch.aspx') + '?blnPopUp=true', '_Glossary', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=800,height=600');

	if (null != newwindow)
	{
		newwindow.focus();
	}

	return false;
}


function GoSystemHelp(strLocaleId)
{
	newwindow = window.open (GetCalculatedUrl('Help/PopupHelp.aspx') + '?strHelpType=SystemHelp', '_SystemHelp', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=720,height=520');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
	return false;
}


function GoMapAndDirections()
{
	var objForm = document.BaseForm;
 
    for (i =  0; i < objForm.elements.length; i++)
	{
        strElementName = objForm.elements[i].name;
        
		if (strElementName.indexOf("USR_STREET_ADDRESS") != -1) 
		{
			var strOriginAddress = objForm.elements[i].value;
		}
								
		if (strElementName.indexOf("BLDG_STREET_ADDRESS") != -1) 
		{
				var strDestinationAddress = objForm.elements[i].value;
		}
		
		if (strElementName.indexOf("USR_CITY") != -1) 
		{
			var strOriginCity = objForm.elements[i].value;
		}
		
		if (strElementName.indexOf("BLDG_CITY") != -1) 
		{
			var strDestinationCity = objForm.elements[i].value;
		}
		
		if (strElementName.indexOf("USR_STATE_ID") != -1) 
		{
			var strOriginState = objForm.elements[i].value;
		}
		
		if (strElementName.indexOf("BLDG_STATE_ID") != -1) 
		{
			var strDestinationState = objForm.elements[i].value;
		}
		
		if (strElementName.indexOf("USR_POSTAL_CODE") != -1) 
		{
			var strOriginZip = objForm.elements[i].value;
		}
		
		if (strElementName.indexOf("BLDG_POSTAL_CODE") != -1) 
		{
			var strDestinationZip = objForm.elements[i].value;
		}
		
		if (strElementName.indexOf("USR_COUNTRY_ID") != -1) 
		{
			var strOriginCountry = objForm.elements[i].value;
		}
		
		if (strElementName.indexOf("BLDG_COUNTRY_ID") != -1) 
		{
			var strDestinationCountry = objForm.elements[i].value;
		}
	}
			
	newwindow = window.open (GetCalculatedUrl('LearningCenter/LaunchDirections.aspx') + '?strOriginAddress=' + strOriginAddress + '&strDestinationAddress=' + strDestinationAddress + '&strOriginCity=' + strOriginCity + '&strDestinationCity=' + strDestinationCity + '&strOriginState=' + strOriginState + '&strDestinationState=' + strDestinationState + '&strOriginZip=' + strOriginZip + '&strDestinationZip=' + strDestinationZip + '&strOriginCountry=' + strOriginCountry + '&strDestinationCountry=' + strDestinationCountry, 'MapAndDirections', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=1080,height=820');
	
	if (newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return false;
}


function HandleDataGridRadioButtons(strValue)
{
	var objForm = document.BaseForm;
	
	for (var i =  0; i < document.BaseForm.elements.length; i++)
	{
		if (objForm.elements[i].type.toUpperCase() == 'RADIO') 
		{
			if  (objForm.elements[i].getAttribute("onClick") != null) 
			{
				var strAttribute = objForm.elements[i].getAttribute("onClick").toString();
//				alert (strAttribute);

				if (objForm.elements[i].value != strValue && strAttribute.indexOf("HandleDataGridRadioButtons") != -1) 
				{
					objForm.elements[i].checked = false;
				}
			}
		}
	}
}


function BlogSearchHandler(strMessage)
{
	var objForm = document.BaseForm;
	var strPublisherType ='';
	var strAuthorType='';
	
	for (i =  0; i < objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		
		if (element.type == 'select-one' && element.name.indexOf('POSTSEARCHTYPE') != -1)
		{
			switch(element.value.toUpperCase())
			{
				case "ML.BASE.DV.POSTPUBLISHED":
					strPublisherType = 'Published';
					break;
					
				case "ML.BASE.DV.POSTDRAFT":
					strPublisherType = 'Draft';
					break;
					
				case "ML.BASE.DV.POSTANY":
					strPublisherType = 'Any';
					break;
			}
		}
	
		if ('radio' == element.type && element.name.indexOf('PostAuthorType') != -1 && element.checked == true)
		{
			strAuthorType =	element.value;
		}
	}		
	
	if (strAuthorType == 'All')
	{
		if (strPublisherType != 'Published')
		{
			AlertReturnFalse(strMessage);
			
			return false;
		}
	}
	
	return true;
}


///////////////////////////////////////////////////////////////////////////////////////////////////
// Description: Launch the FieldCode selector pop-up window.
function GoFieldCodeSelector(strActiveField)
{
	newwindow = window.open (GetCalculatedUrl('EmailConsole/SelectFieldCodes.aspx') + '?blnIsValidFunction=true&blnByPassCheck=true&strActiveField=' + strActiveField, 'FieldCodeSelector', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=780,height=620');
	
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return true;
}


///////////////////////////////////////////////////////////////////////////////////////////////////
// Description: Launch the 'Show Default Managed Email Content' pop-up window.
function GoDefaultManagedEmailContentPreview(strManagedSystemEmailId)
{
	newwindow = window.open (GetCalculatedUrl('EmailConsole/ViewManagedEmailContent.aspx') + '?blnIsValidFunction=true&blnByPassCheck=true&strManagedSystemEmailId=' + strManagedSystemEmailId, 'FieldCodeSelector', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=780,height=620');
	
	if (newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return true;
}


function GoCheckSectionEventDates(strSectionId)
{
	newwindow = window.open (GetCalculatedUrl('Courseware/Classroom/Management/ClassroomCourseManageSections.aspx') + '?strSectionId='+strSectionId, 'CheckSectionEventDates', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=no,width=780,height=620');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return true;
}


function insertAtCursor(myField, myValue)
{
	//IE support
	if (document.selection)
	{
		myField.focus();

		sel = document.selection.createRange();
		sel.text = myValue;
	}	
	//MOZILLA/NETSCAPE support
	else if (myField.selectionStart || myField.selectionStart == '0')
	{
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		
		myField.value = myField.value.substring( 0, startPos)
		+ myValue
		+ myField.value.substring(endPos, myField.value.length);
	}
	else
	{
		myField.value += myValue;
	}
}


// Browser Detect  v2.1.6
// documentation: http://www.dithered.com/javascript/browser_detect/index.html
// license: http://creativecommons.org/licenses/by/1.0/
// code by Chris Nott (chris[at]dithered[dot]com)
function BrowserDetect()
{
   var ua = navigator.userAgent.toLowerCase(); 

   // browser engine name
   this.isGecko       = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
   this.isAppleWebKit = (ua.indexOf('applewebkit') != -1);

   // browser name
   this.isKonqueror   = (ua.indexOf('konqueror') != -1); 
   this.isSafari      = (ua.indexOf('safari') != - 1);
   this.isOmniweb     = (ua.indexOf('omniweb') != - 1);
   this.isOpera       = (ua.indexOf('opera') != -1); 
   this.isIcab        = (ua.indexOf('icab') != -1); 
   this.isAol         = (ua.indexOf('aol') != -1); 
   this.isIE          = (ua.indexOf('msie') != -1 && !this.isOpera && (ua.indexOf('webtv') == -1) ); 
   this.isMozilla     = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
   this.isFirebird    = (ua.indexOf('firebird/') != -1);
   this.isNS          = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && !this.isOpera && !this.isSafari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
   
   // spoofing and compatible browsers
   this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE);
   this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);
   
   // rendering engine versions
   this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
   this.equivalentMozilla = ( (this.isGecko) ? parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) ) : -1 );
   this.appleWebKitVersion = ( (this.isAppleWebKit) ? parseFloat( ua.substring( ua.indexOf('applewebkit/') + 12) ) : -1 );
   
   // browser version
   this.versionMinor = parseFloat(navigator.appVersion); 
   
   // correct version number
   if (this.isGecko && !this.isMozilla) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('/', ua.indexOf('gecko/') + 6) + 1 ) );
   }
   else if (this.isMozilla) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
   }
   else if (this.isIE && this.versionMinor >= 4) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
   }
   else if (this.isKonqueror) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
   }
   else if (this.isSafari) {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('safari/') + 7 ) );
   }
   else if (this.isOmniweb) {
      this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('omniweb/') + 8 ) );
   }
   else if (this.isOpera) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera') + 6 ) );
   }
   else if (this.isIcab) {
      this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab') + 5 ) );
   }
   
   this.versionMajor = parseInt(this.versionMinor); 
   
   // dom support
   this.isDOM1 = (document.getElementById);
   this.isDOM2Event = (document.addEventListener && document.removeEventListener);
   
   // css compatibility mode
   this.mode = document.compatMode ? document.compatMode : 'BackCompat';

   // platform
   this.isWin    = (ua.indexOf('win') != -1);
   this.isWin32  = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
   this.isMac    = (ua.indexOf('mac') != -1);
   this.isUnix   = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
   this.isLinux  = (ua.indexOf('linux') != -1);
   
   // specific browser shortcuts
   this.isNS4x = (this.isNS && this.versionMajor == 4);
   this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
   this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
   this.isNS4up = (this.isNS && this.versionMinor >= 4);
   this.isNS6x = (this.isNS && this.versionMajor == 6);
   this.isNS6up = (this.isNS && this.versionMajor >= 6);
   this.isNS7x = (this.isNS && this.versionMajor == 7);
   this.isNS7up = (this.isNS && this.versionMajor >= 7);
   
   this.isIE4x = (this.isIE && this.versionMajor == 4);
   this.isIE4up = (this.isIE && this.versionMajor >= 4);
   this.isIE5x = (this.isIE && this.versionMajor == 5);
   this.isIE55 = (this.isIE && this.versionMinor == 5.5);
   this.isIE5up = (this.isIE && this.versionMajor >= 5);
   this.isIE6x = (this.isIE && this.versionMajor == 6);
   this.isIE6up = (this.isIE && this.versionMajor >= 6);
   
   this.isIE4xMac = (this.isIE4x && this.isMac);
}

var browser = new BrowserDetect();

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_showHideLayers()
{ //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_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; }
}


/*This function unchecks the AllOrganization checkbox on the BatchEnrollment Page, this function is called when 
The any organization is checked in the LMS Organization tree*/
function BatchEnrollmentAllOrganizations(treeId, nodeId, button)
{
	var objForm = document.BaseForm;
	if(true == button)
	{
		for (i=0;i<objForm.elements.length;i++) 
		{
			var element = objForm.elements[i];
			if(element.type == 'checkbox' && element.name.indexOf('CHECKBOX_ALLORGANIZATIONS')!= -1)
			{
				element.checked = false;	
				break;		
			}
		}
	}
}

var intSelectedCheckbox = -1;
var blnCheckSingleCheckBox = true;
var intCurrentNode = 0;

function SelectSingleCheckBox(treeId, nodeId, button)
{
	var objForm = document.BaseForm;
	var objTree = igtree_getTreeById(treeId);
	var objNode = igtree_getNodeById(nodeId);
	var strNodeTag = objNode.getTag();

	var objNodes = objTree.getNodes();

//	for (var i=intCurrentNode;i<objNodes.length;i++) 
//	{
//		var strNextNodeTag = objNodes[i].getTag();
//		alert (strNextNodeTag);
//	}
//		objTree.CancelPostBack = true;

//	if (blnCheckSingleCheckBox) 
//	{	
//		for (var i=intCurrentNode;i<objNodes.length;i++) 
//		{
//			var strNextNodeTag = objNodes[i].getTag();
//			if (strNextNodeTag != strNodeTag) 
//			{
//				intCurrentNode = i;
//				objNodes[i].setChecked(false);
//			} 
//		}
		
//		if (intCurrentNode == objNodes.length) 
//		{
//			blnCheckSingleCheckBox = false;
//			intCurrentNode = 0;
//		}
//	}
//	else 
//	{
//		objNode.setChecked = true;
//	}
}


/*
This function enables/disables image height / width fields when upload image is selected (not selected) (Test Matching Question - CHOICE)
*/
function ChoiceImageHeightWidthStateHandler()
{
	var objForm = document.BaseForm;
	var chkElement = null;
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		if(element.type == 'file' && element.name.indexOf('QSTNCHC_CHOICE_IMAGE')!= -1)
		{
			chkElement = element;	
			break;		
		}
	}
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		if(element.type == 'text')
		{
			if(element.name.indexOf('QSTNCHC_CHOICE_ALT_TEXT') != -1 
				|| element.name.indexOf('QSTNCHC_CHOICE_IMAGE_HEIGHT') != -1
				|| element.name.indexOf('QSTNCHC_CHOICE_IMAGE_WIDTH') != -1 )
			// Do not include variables in Grid (name of which is TestQuestionChoices)
			if(element.name.indexOf('TestQuestionChoices') == -1)
			{
				if(chkElement.value.length > 0)
				{
					element.disabled = false;
				}
				else
				{
					element.disabled = true;
				}
			}
		}
	}	
}


/*
This function enables/disables image height / width fields when upload image is selected (not selected) (Test Matching Question - MATCH)
*/
function MatchImageHeightWidthStateHandler()
{
	var objForm = document.BaseForm;
	var chkElement = null;
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		if(element.type == 'file' && element.name.indexOf('QSTNCHC_MATCH_IMAGE')!= -1)
		{
			chkElement = element;
			break;		
		}
	}
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		if(element.type == 'text')
		{
			if(element.name.indexOf('QSTNCHC_MATCH_ALT_TEXT') != -1 
				|| element.name.indexOf('QSTNCHC_MATCH_IMAGE_HEIGHT') != -1
				|| element.name.indexOf('QSTNCHC_MATCH_IMAGE_WIDTH') != -1 )
			// Do not include variables in Grid (name of which is TestQuestionChoices)
			if(element.name.indexOf('TestQuestionChoices') == -1)
			{
				if(chkElement.value.length > 0)
				{

					element.disabled = false;
				}
				else
				{
					element.disabled = true;
				}
			}
		}
	}	
}


/*This function handles the OnChange event of the Section Status DDS on the Batch Enrollment page.
When value is Date Range, then date controls are enabled otherwise they are disabled and values are reset to blank.
*/
function BatchEnrollmentSectionSearchStatusHandler()
{
	var objForm = document.BaseForm;

	if(objForm.elements.length > 100)
	{
	   return;
	}

	for(var i=0;i<objForm.elements.length;i++)
	{
		var element=objForm.elements[i];
		
		if(element.type=='select-one' && element.name.indexOf('SectionStatus') != -1)
		{
		    var blnEnabled = true;
		    if(element.value.toUpperCase() == 'PAST')
		    {
		       blnEnabled = false;
		    }
			for(j=0;j<objForm.elements.length;j++)
			{
				var element=objForm.elements[j];
				
				if(element.type=='select-one')
				{
					if(element.name.indexOf('OBJ_ACTIVE_START_DATE||MONTH') != -1 || 
						element.name.indexOf('OBJ_ACTIVE_START_DATE||DAY') != -1 || 
						element.name.indexOf('OBJ_ACTIVE_END_DATE||MONTH') != -1 ||
						element.name.indexOf('OBJ_ACTIVE_END_DATE||DAY') != -1)
					{
					    element.disabled = blnEnabled;
					    if(blnEnabled)
					    {
						   element.value = "";
						}
					}
				}
				else
				{
					if(element.type=='text' && 
						(
						element.name.indexOf('OBJ_ACTIVE_START_DATE||YEAR') != -1 || 
						element.name.indexOf('OBJ_ACTIVE_END_DATE||YEAR') != -1
						))
					{
					    element.disabled = blnEnabled;
					    if(blnEnabled)
					    {
						   element.value = "";
						}
					}
				}
			}	
			break;
		}
	}
}


/*This function handles the OnChange event of the Status DDS on the Course Sections page.
When value is Date Range, then date controls are enabled otherwise they are disabled and values are reset to blank.
*/
function SectionSearchStatusHandler()
{
	var objForm = document.BaseForm;
	
	for(var i =  0;i < objForm.elements.length; i++)
	{
		var element=objForm.elements[i];
		
		if (element.type == 'select-one' && element.name.indexOf('SectionStatus') != -1)
		{
		    var blnEnabled = true;
		    
		    if (element.value.toUpperCase() == 'RANGE')
		    {
		       blnEnabled = false;
		    }
		    
			for (j =  0; j < objForm.elements.length; j++)
			{
				var element=objForm.elements[j];
				
				if (element.type=='select-one')
				{
					if (element.name.indexOf('OBJ_ACTIVE_START_DATE||MONTH') != -1 || 
						element.name.indexOf('OBJ_ACTIVE_START_DATE||DAY') != -1 || 
						element.name.indexOf('OBJ_ACTIVE_END_DATE||MONTH') != -1 ||
						element.name.indexOf('OBJ_ACTIVE_END_DATE||DAY') != -1)
					{
					    element.disabled = blnEnabled;
					    
					    if (blnEnabled)
					    {
						   element.value = "";
						}
					}
				}
				else
				{
					if (element.type == 'text' && 
						(
						element.name.indexOf('OBJ_ACTIVE_START_DATE||YEAR') != -1 || 
						element.name.indexOf('OBJ_ACTIVE_END_DATE||YEAR') != -1
						))
					{
					    element.disabled = blnEnabled;
			
					    if (blnEnabled)
					    {
						   element.value = "";
						}
					}
				}
			}
			
			break;
		}
	}
}


function ValidateRunReport(intMaxHeadings, strMaxHeadingsMessage, strSkillsGapMessage) 
{
	var objForm = document.BaseForm;
	var intCounter = 0;

	intMaxHeadings = eval(intMaxHeadings);

	for (var i = 0; i < objForm.elements.length; i++)
	{
		var objElement = objForm.elements[i];
		
		if ((objElement.name.indexOf('strOptionalFields') != -1) && (objElement.checked))
		{
			intCounter++;
		}
		if (objElement.type == 'select-one' && objElement.name.indexOf('strSkillsGapOperator') != -1)
		{
			var strSkillsGapOperator = objElement.value;
		}
		if (objElement.type == 'text' && objElement.name.indexOf('strSkillsGapValue') != -1)
		{
			var strSkillsGapValue = objElement.value;
		}
	}
	
	if (intCounter > intMaxHeadings) 
	{
		alert(strMaxHeadingsMessage.replace('{intHeadingsCount}', intCounter.toString()));	
		return false;	
	}
  	if ((strSkillsGapOperator == '') && (strSkillsGapValue != '')) {
		alert(strSkillsGapMessage);
		return false;
	}
	
	return true;
}


function CheckAllDataGridCheckBoxes(strDataGrid)
{
	var objForm = document.BaseForm;
	var objElement;
	var strName;
	var blnCheckAll = true;
	
	for (var i =  0; i < objForm.elements.length; i++)
	{
		objElement = objForm.elements[i];
		strName = objElement.name;
		
		if (strName == (strDataGrid + "_SelectAll")) 
		{
			if (objElement.checked)
			{
				blnCheckAll = true;
			}
			else
			{
				blnCheckAll = false;
			}
		}
	}

	for (var i =  0; i < objForm.elements.length; i++)
	{
		objElement = objForm.elements[i];
	
		if (objElement.type == 'checkbox')
		{
			strName = objElement.name;
	
			if (strName.indexOf(strDataGrid) != -1)
			{
				objElement.checked = blnCheckAll;
	
			}
		}
		
	}

	return true;
}

function ToggleDiv(strDivID)
{
    if (document.getElementById)
    {
       // this is the way the standards work
       var style2 = document.getElementById(strDivID).style;
       var butSelect = document.getElementById(strDivID.replace('Div_','But_'));
    }
    else if (document.all)
    {
       // this is the way old msie versions work
       var style2 = document.all[strDivID].style;
       var butSelect = document.all[strDivID.replace('Div_','But_')];
       style2.display = style2.display? "":"block";
    }
    else if (document.layers)
    {
       // this is the way nn4 works
       var style2 = document.layers[strDivID].style;
       var butSelect = document.layers[strDivID.replace('Div_','But_')];
       style2.display = style2.display? "":"block";
    }

	if (style2.display == 'none')
	{
	    style2.display = 'block';
	    butSelect.src = butSelect.attributes["MinusImage"].value;
	}
	else
	{
	    style2.display = 'none';
	    butSelect.src = butSelect.attributes["PlusImage"].value;
	}
}

function HideFeedbacks()
{
	var objReturnFeedback = document.getElementById('ReturnFeedback');
	if(objReturnFeedback != null)
	{
	    objReturnFeedback.innerHTML = '';
	}

	var objNegativeFeedback = document.getElementById('NegativeFeedback');
	if(objNegativeFeedback != null)
	{
	    objNegativeFeedback.innerHTML = '';
	}
}

function showHideNav(){
	var oFramesets=parent.window.document.getElementsByTagName("frameset");
	
	if (isNavVisible == "true"){
		oFramesets.item(1).cols="1,*";
		isNavVisible = "false";
	}
	else
	{
		oFramesets.item(1).cols="300,*";
		isNavVisible = "true";
	}
	return false;
}

var strTransparentGif = '/Skins/Graphics/transparentpixel.gif';
function SwapImage() { //v3.0

	var i,j=0,x,a=SwapImage.arguments;
	document.MM_sr = new Array;
	
	for(i=0;i<(a.length-2);i+=3) 
	{
		if ((x = FindObjectByName(a[i], top.Navigation.document))!= null)
		{
			document.MM_sr[j++]=x;
			switch (a[i+2]) 
			{
				case "strPreviousLink":
					strLink = top.Navigation.document.GraphicsDefinition.strPreviousLink.value;
					break;

				case "strNextLink":
					strLink = top.Navigation.document.GraphicsDefinition.strNextLink.value;
					break;
			
				case "strShowHideMenuLink":
					strLink = top.Navigation.document.GraphicsDefinition.strShowHideMenuLink.value;
					break;
			
				case "strAbandonLink":
					strLink = top.Navigation.document.GraphicsDefinition.strAbandonLink.value;
					break;
			
				case "strAbandonAllLink":
					strLink = top.Navigation.document.GraphicsDefinition.strAbandonAllLink.value;
					break;
			
				case "strSuspendLink":
					strLink = top.Navigation.document.GraphicsDefinition.strSuspendLink.value;
					break;
			
				case "strSuspendAllLink":
					strLink = top.Navigation.document.GraphicsDefinition.strSuspendAllLink.value;
					break;
			
				case "strExitLink":
					strLink = top.Navigation.document.GraphicsDefinition.strExitLink.value;
					break;
			
				case "strExitAllLink":
					strLink = top.Navigation.document.GraphicsDefinition.strExitAllLink.value;
					break;
			
				default:
					strLink = a[i+2];
					break;
			}
		
			x.oSrc	=	x.src;
			x.src	=	strLink;
		}
	}
}

function FindObjectByName(strId, objForm) 
{
	var x = objForm.getElementById(strId);
	return x;
}

function changeElementAttribute() 
{
	var objElement = FindObjectByName(changeElementAttribute.arguments[0], document);
	if (objElement != null) 
	{
//		alert (changeElementAttribute.arguments[1]);
		var objAttribute = objElement.attributes["src"];
		objAttribute.value = changeElementAttribute.arguments[1];
	}
}

function changeImages() 
{
	if (document.images) 
	{
		for (var i=0; i<changeImages.arguments.length; i+=2) 
		{
			document.BaseForm[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
	return true;
}

// DGAJAX : Not used
function DGAjax(strDisplayGridId, strPage, strCurrentSort)
{
	blnDGAjaxInProgress = true;

    var strDivID = "DisplayGrid_"+strDisplayGridId;
    var style2;
    if (document.getElementById)
    {
       // this is the way the standards work
       style2 = document.getElementById(strDivID);
    }
    else if (document.all)
    {
       // this is the way old msie versions work
       style2 = document.all[strDivID];
    }
    else if (document.layers)
    {
       // this is the way nn4 works
       style2 = document.layers[strDivID];
    }

	var objXMLHTTPRequest = CreateXMLHTTPRequest();
	
	objXMLHTTPRequest.open ("POST", "/KView/CustomCodeBehind/DGAjax.aspx", false);
	//objXMLHTTPRequest.open ("POST", "/KView/CustomCodeBehind/Test1.asp", false);

	var strParams = "strDisplayGridId=" + strDisplayGridId + "&strPageId=" + strPage + "&strCurrentSort=" + strCurrentSort;

	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	
	objXMLHTTPRequest.send (strParams);

	var strWindowFeatures = objXMLHTTPRequest.responseText;

	//alert(strWindowFeatures);

	strWindowFeatures = strWindowFeatures.substring(strWindowFeatures.indexOf('<table'));
	strWindowFeatures = strWindowFeatures.substring(0, strWindowFeatures.lastIndexOf('</table>')+8);

	strWindowFeatures = strWindowFeatures.replace(/ id="/g, ' id="TabMenu_ML_BASE_TAB_Search_');

	//alert(strWindowFeatures);

	style2.innerHTML = strWindowFeatures;

	blnDGAjaxInProgress = false;
}


///////////////////////////////////////////////////////////////////////////////////////////////////
// Description: Launch Text value selector to be used in menu hiearchy creation.
function GoSelectTextValue(strActiveField, strTextItemId)
{
	newwindow = window.open (GetCalculatedUrl('Utilities/SelectTextItem.aspx') + '?blnIsValidFunction=true&blnByPassCheck=true&strActiveField=' + strActiveField, 'TextValueSelector', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=780,height=620');
	
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return true;
}

///////////////////////////////////////////////////////////////////////////////////////////////////
// Description: Launch Text value selector to be used in menu hiearchy creation.
function GoLocalizedTextInput(strActiveField, strTextItemId)
{
	var objForm		= document.BaseForm;
	var strValueId	= "";
	for(i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		var name = element.name;
		
		if (name.indexOf(strTextItemId) != -1)
		{
			strValueId =  (element.value);
			break;
		}
	}

	newwindow = window.open (GetCalculatedUrl('Utilities/AddDomainTextItem.aspx') + '?blnIsValidFunction=true&blnByPassCheck=true&strActiveField=' + strActiveField + '&strTextItemId=' + strTextItemId + '&strDomainTextId=' + escape(strValueId), 'TextValueInput', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=780,height=620');
	
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return true;
}

function ContentSharingTypeHandler()
{
    var strURL = location.href;
    if(strURL.toLowerCase().indexOf('domaincontentsharing.aspx') == -1)
    {
       return;
    }
	var objForm		= document.BaseForm;
	var strValueId	= "";
	var blnAction = -1;
	for(i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		var name = element.name;
		if('radio' == element.type && name.indexOf("SHARED") != -1)
		{
			strValueId = element.value;
			if(strValueId == 'CONTENT_NOT_SHARED')
			{
			   if(element.checked) // Not shared
			   {
			     blnAction = 0;
			   }
			}
			break;
		}
	}

    for(i = 0; i < objForm.elements.length; i++)
    {
	    var element = objForm.elements[i];
	    var name = element.name;

	    if('checkbox' == element.type && (name.indexOf("ContentShared") != -1 || name.indexOf("ContentPushedOptional") != -1 || name.indexOf("ContentPushedRequired") != -1))
	    {
            if(blnAction == 0)
            {
	        element.checked = false;
	        element.disabled = true;
	        }
	        else
	        {
	        element.disabled = false;
	        }
	    }
    }
}

function ContentShareCheckBoxHandler(strID)
{
    var objForm		= document.BaseForm;
  	var v = document.getElementById(strID);
  	for(i = 0; i < objForm.elements.length; i++)
  	{
  	    var element = objForm.elements[i];
  	    var name = element.name;
  	    if(name.indexOf(strID) != -1)
  	    {
  	       v = element;
  	       break;
  	    }
  	}
  	if(v.name.indexOf('ML.BASE.AllDomains') != -1)
  	{
        for(i =  0; i < objForm.elements.length; i++)
        {
	        var element = objForm.elements[i];
	        var name = element.name;
	        if(name.indexOf("ContentShared") != -1)
	        {
	           element.checked = v.checked;
	        }
	        if(v.checked)
	        {
	           if(element.name.indexOf('ContentPushedRequired') != -1 || element.name.indexOf('ContentPushedOptional') != -1)
	           {
	              element.checked = false;
	           }
	        }
	    }
	}
	else
	{
  	    if(v.checked)
  	    {
  	        for(i = 0; i < objForm.elements.length; i++)
  	        {
  	            var element = objForm.elements[i];
  	            var name = element.name;
  	            if(name.indexOf(v.name.replace('ContentShared', 'ContentPushedOptional')) != -1 ||
  	               name.indexOf(v.name.replace('ContentShared', 'ContentPushedRequired')) != -1)
  	            {
  	               element.checked = false;
  	            }
  	        }
  	    }
	}
}

function ContentPushRequireCheckBoxHandler(strID)
{
    var objForm		= document.BaseForm;
  	var v = document.getElementById(strID);
  	for(i = 0; i < objForm.elements.length; i++)
  	{
  	    var element = objForm.elements[i];
  	    var name = element.name;
  	    if(name.indexOf(strID) != -1)
  	    {
  	       v = element;
  	       break;
  	    }
  	}
  	if(v.checked)
  	{
  	    for(i = 0; i < objForm.elements.length; i++)
  	    {
  	        var element = objForm.elements[i];
  	        var name = element.name;
  	        if(name.indexOf(v.name.replace('ContentPushedRequired', 'ContentPushedOptional')) != -1 ||
  	           name.indexOf(v.name.replace('ContentPushedRequired', 'ContentShared')) != -1)
  	        {
  	           element.checked = false;
  	        }
  	    }
  	}
}

function ContentPushOptionalCheckBoxHandler(strID)
{
    var objForm		= document.BaseForm;
  	var v = document.getElementById(strID);
  	for(i = 0; i < objForm.elements.length; i++)
  	{
  	    var element = objForm.elements[i];
  	    var name = element.name;
  	    if(name.indexOf(strID) != -1)
  	    {
  	       v = element;
  	       break;
  	    }
  	}
  	if(v.checked)
  	{
  	    for(i = 0; i < objForm.elements.length; i++)
  	    {
  	        var element = objForm.elements[i];
  	        var name = element.name;
  	        if(name.indexOf(v.name.replace('ContentPushedOptional', 'ContentPushedRequired')) != -1 ||
  	           name.indexOf(v.name.replace('ContentPushedOptional', 'ContentShared')) != -1)
  	        {
  	           element.checked = false;
  	        }
  	    }
  	}
}

function NodeCheckedEvent(treeId, nodeId, button)
{
	var objTree = igtree_getTreeById(treeId);
	var objNode = igtree_getNodeById(nodeId);
	var strNodeTag = objNode.getTag();

    var strCurrentValue = document.BaseForm.CHECK_TRACKING.value;

    document.BaseForm.CHECK_TRACKING.value = strCurrentValue + '|' + (strNodeTag) + '&' + objNode.getChecked();
}

function ValidateAndConfirmSurveyPublish(strInvalidMessage, strConfirmationMessage)
{
    var objForm	= document.BaseForm;
    var blnInvalidSurvey = false;

    for (i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
        //check to see if the SURVEY has a valid structure and can be published. 
        if(element.name == 'INVALID_SURVEY' && element.value == 'T')
        {
           blnInvalidSurvey = true;
           break;
        }
    }    
    
    if(blnInvalidSurvey)
    {
        alert(strInvalidMessage); 
        return false;
    }
    else    
    {
        return ConfirmClick(strConfirmationMessage);
    }
}

function ValidateAndConfirmDuplicateCheckBoxSelect(TheForm, strPrefix, strType, strConfirmationMessage) 
{
	var intCheckbox;
	var strString = '';
	var blnDuplicate = false;

	for (var i=0;i<TheForm.elements.length;i++) {
		var element = TheForm.elements[i];
		var strElementName;
		strElementName = element.name;
		
		if (element.type == 'checkbox' && strElementName.indexOf(strPrefix) >= 0) {
			if (element.checked) {
                //get the ID associated with the checkbox    
			    var strID = strElementName.substr(strElementName.lastIndexOf("_") + 1);
			    //check to see if there is a duplicate checkbox
			    if(strString.indexOf(strID) >=0 ) {
			        blnDuplicate = true;
			        break;
			    }
			    strString += strID + '|';
			}
		}
	}

	if (blnDuplicate) {
	    if(strType == 'alert'){
	        alert(strConfirmationMessage);
	        return false;
	    }
        else{
            return ConfirmClick(strConfirmationMessage);
        }    
	}

	return true;
}

function NavigateFromTreeNode(treeId, nodeId, button) 
{
	var objTree = igtree_getTreeById(treeId);

	var objNode = igtree_getNodeById(nodeId);
	var strNodeTag = objNode.getTag();
	
	var strVars = strNodeTag.split('?');
	var strLaunchLink = strVars[0];
	var strBreadCrumb = strVars[1];

	if (strLaunchLink.indexOf('GoAboutLMS') == -1 && strLaunchLink.indexOf('GoGlossary') == -1 && strLaunchLink.indexOf('GoPersonalDashboards') == -1) 
	{
		NavigateFromStepMenu(strBreadCrumb, strLaunchLink);
	} 
	else 
	{
		eval(strLaunchLink);
	}
	objTree.CancelPostBack = true;
}


function NavigateFromStepMenu(strBreadCrumb, strItemUrl)
{
	var objXMLHTTPRequest = CreateXMLHTTPRequest();
	objXMLHTTPRequest.open ("POST", GetCalculatedUrl('Utilities/MenuNavigationEvent.aspx'), false);

	var strParams = "strUrl=" + escape(strItemUrl) + "&strBreadCrumb=" + escape(strBreadCrumb);
	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	objXMLHTTPRequest.send (strParams);
	
	var strCalculatedUrl = objXMLHTTPRequest.responseText;
	self.location.href = strCalculatedUrl;
	return false;
}

var menuids=["treemenu1"] //Enter id(s) of TopNav UL menus, separated by commas

function buildsubmenus_horizontal(){
for (var i=0; i<menuids.length; i++){
	var ultags = "";
	if (document.getElementById(menuids[i]) != null) {
		var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul")
	}
    for (var t=0; t<ultags.length; t++){
		if (ultags[t].parentNode.parentNode.id==menuids[i]){ //if this is a first level submenu
			ultags[t].style.top=ultags[t].parentNode.offsetHeight+"px" //dynamically position first level submenus to be height of main menu item
			ultags[t].parentNode.getElementsByTagName("a")[0].className="mainfoldericon"
		}
		else{ //else if this is a sub level menu (ul)
			ultags[t].style.left=ultags[t-1].getElementsByTagName("a")[0].offsetWidth+"px" //position menu to the right of menu item that activated it
	    	ultags[t].parentNode.getElementsByTagName("a")[0].className="subfoldericon"
		}
    ultags[t].parentNode.onmouseover=function(){
    this.getElementsByTagName("ul")[0].style.visibility="visible"
    }
    ultags[t].parentNode.onmouseout=function(){
    this.getElementsByTagName("ul")[0].style.visibility="hidden"
    }
    }
  }
}

if (window.addEventListener) 
{
	window.addEventListener("load", buildsubmenus_horizontal, false);
}
else 
{
	if (window.attachEvent) 
	{
		window.attachEvent("onload", buildsubmenus_horizontal);
	}
}

function AICCAUUploadFileValidation(source,arg)
{
	var objTempForm = document.BaseForm;
	for (i=0;i<objTempForm.elements.length;i++) {
		if (objTempForm.elements[i].name.indexOf('AICC_AU') != -1) {
			var strSelectedDocument = objTempForm.elements[i].value;
			if (strSelectedDocument.substring(strSelectedDocument.length-3).toUpperCase() != ".AU") {
				arg.IsValid = false;
			}
			break;
		}
	}
}

function AICCCRSUploadFileValidation(source,arg)
{
	var objTempForm = document.BaseForm;
	for (i=0;i<objTempForm.elements.length;i++) {
		if (objTempForm.elements[i].name.indexOf('AICC_CRS') != -1) {
			var strSelectedDocument = objTempForm.elements[i].value;
			if (strSelectedDocument.substring(strSelectedDocument.length-4).toUpperCase() != ".CRS") {
				arg.IsValid = false;
			}
			break;
		}
	}
}

function AICCCSTUploadFileValidation(source,arg)
{
	var objTempForm = document.BaseForm;
	for (i=0;i<objTempForm.elements.length;i++) {
		if (objTempForm.elements[i].name.indexOf('AICC_CST') != -1) {
			var strSelectedDocument = objTempForm.elements[i].value;
			if (strSelectedDocument.substring(strSelectedDocument.length-4).toUpperCase() != ".CST") {
				arg.IsValid = false;
			}
			break;
		}
	}
}

function AICCDESUploadFileValidation(source,arg)
{
	var objTempForm = document.BaseForm;
	for (i=0;i<objTempForm.elements.length;i++) {
		if (objTempForm.elements[i].name.indexOf('AICC_DES') != -1) {
			var strSelectedDocument = objTempForm.elements[i].value;
			if (strSelectedDocument.substring(strSelectedDocument.length-4).toUpperCase() != ".DES") {
				arg.IsValid = false;
			}
			break;
		}
	}
}

function ValidateSelectBoxDuplicates(objForm, selectBoxNames, strAlertText)
{
    var strValidationString;
    var strSelectBoxArray = selectBoxNames.split('|');
    var selectBoxName = "";

    for(i = 0; i < strSelectBoxArray.length; i++)
    {
        //Check duplicate values for each available select box on a given form or datagrid.
        selectBoxName = strSelectBoxArray[i];
        strValidationString = "";
        for (j =  0; j < objForm.elements.length; j++)
        {
            strElementName = objForm.elements[j].name;
            strElementValue = objForm.elements[j].value;
            
            if (objForm.elements[j].type == 'select-one' && strElementName.indexOf(selectBoxName) != -1)
            {
                if (strValidationString.indexOf('|' + strElementValue + '|') != -1) 
                {
                    alert(strAlertText);
                    return false;
                }
                strValidationString = strValidationString + '|' + strElementValue + '|';
            }
        }
    }
}
/*
This function launches the CertificationType Info page
*/
function ViewCertificationTypeInfo()
{
    var TheForm = document.BaseForm;
    for (var i=0;i<TheForm.elements.length;i++) 
    {
    
		    var strElementId;
    		var objElement;
		    var strItemId;
    		
		    objElement = TheForm.elements[i];
		    strElementId = objElement.id;
    	    	   		
		    if (objElement.type == 'select-one' && strElementId.indexOf("CERT_CERTTYPE_ID") > 0) 
		    {
		      var strItemId = objElement.options[objElement.selectedIndex].value;
		    }
	 }
	newwindow = window.open(GetCalculatedUrl('Courseware/CertificationType/CertificationTypeInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
		if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
	
}
function ValidateAndConfirmEvaluationSelectionToJobTitle(objForm,  strSelectionMessage, strInvalidSelectionMessage)
{

	var blnOneChecked = false;
	var blnTemplateExists = false;
	for (var i=0;i<objForm.elements.length;i++)
	{
		if (objForm.elements[i].type.toUpperCase() == 'RADIO') 
		{
			if (objForm.elements[i].id.indexOf("SELECTTEMPLATE") != -1)  
			{
				if( objForm.elements[i].checked == true)
				      blnOneChecked = true; 
			}
			if (objForm.elements[i].id.indexOf("CURRENTTEMPLATE") != -1 )
			{
				blnTemplateExists = true;
			}
		}
	}	
	if ((blnOneChecked == true))
	{
	    if ((blnTemplateExists == true))
	    {
	        if (!ConfirmCheckBoxSelect(strSelectionMessage))
	        {
		        return false;
	        }
		    
	    }
	   
	}
	else
	{
	        alert(strInvalidSelectionMessage);
		    return false;
	}
	return true;
}

function RouteActionMenuCallsPreviewIDP(strItemId)
{
   	newwindow = window.open(GetCalculatedUrl('IDP/PreviewIDP.aspx') + '?strItemId=' + escape(strItemId) + '&strArchived=true' ,'_PreviewIDP', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
    if (newwindow && newwindow.open && !newwindow.closed)
	    {
	      newwindow.focus();
	    }
	
	return false;
}

function RouteActionMenuCallsEvaluation(strItemId)
{
   	newwindow = window.open(GetCalculatedUrl('PerformanceEvaluation/TakeEvaluation.aspx') + '?strItemId=' + escape(strItemId) + '&strArchived=true' ,'_ViewPE', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
    if (newwindow && newwindow.open && !newwindow.closed)
	    {
	      newwindow.focus();
	    }
	
	return false;
}
function RouteActionMenuCallsManagerEvaluation(strItemId, strType)
{
    if(strType == 'ML.BASE.PE.Evaluator.Employee')
    {
    	newwindow = window.open(GetCalculatedUrl('PerformanceEvaluation/TakeEvaluation.aspx') + '?strItemId=' + escape(strItemId) + '&strArchived=true' ,'_ViewPE', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
   
    }
    else
    {
   	    newwindow = window.open(GetCalculatedUrl('PerformanceEvaluation/TakeEvaluation.aspx') + '?strItemId=' + escape(strItemId) + '&strArchived=true&strManager=true' ,'_ViewPE', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
    
    }
    if (newwindow && newwindow.open && !newwindow.closed)
	    {
	      newwindow.focus();
	    }
	
	return false;
}
function ValidateAndConfirmRemoveEvaluationFromJobTitle(objForm,  strSelectionMessage, strInvalidSelectionMessage)
{

	var blnOneChecked = false;
	var blnTemplateExists = false;
	for (var i=0;i<objForm.elements.length;i++)
	{
		if (objForm.elements[i].type.toUpperCase() == 'RADIO') 
		{
			if (objForm.elements[i].id.indexOf("CURRENTTEMPLATE") != -1)  
			{
				if( objForm.elements[i].checked == true)
				      blnOneChecked = true; 
			}
			
		}
	}	
	if ((blnOneChecked == true))
	{
	    if (!ConfirmCheckBoxSelect(strSelectionMessage))
	        {
		        return false;
	        }
	   
	}
	else
	{
	        alert(strInvalidSelectionMessage);
		    return false;
	}
	return true;
}
function ViewEvaluationScaleInfo()
{
    var TheForm = document.BaseForm;
    for (var i=0;i<TheForm.elements.length;i++) 
    {
    
		    var strElementId;
    		var objElement;
		    var strItemId;
    		
		    objElement = TheForm.elements[i];
		    strElementId = objElement.id;
    	    	   		
		    if (objElement.type == 'select-one' && strElementId.indexOf("ECMP_SCALE_ID") > 0) 
		    {
		      var strItemId = objElement.options[objElement.selectedIndex].value;
		    }
	 }
	newwindow = window.open(GetCalculatedUrl('PerformanceEvaluation/EvaluationScaleInformation.aspx') + '?strItemId=' + escape(strItemId), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
		if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
	
}
function ValidateAndConfirmEvaluationPublish(strInvalidMessage, strConfirmationMessage)
{
    var objForm	= document.BaseForm;
    var blnInvalidEvaluation = false;

    for (i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
        //check to see if the SURVEY has a valid structure and can be published. 
        if(element.name == 'INVALID_EVALUATION' && element.value == 'T')
        {
           blnInvalidEvaluation = true;
           break;
        }
    }    
    
    if(blnInvalidEvaluation)
    {
        alert(strInvalidMessage); 
        return false;
    }
    else    
    {
        return ConfirmClick(strConfirmationMessage);
    }
}
function DisplayAppropriateWarningMessage(strItemId, strMessageType)
{
	newwindow = window.open(GetCalculatedUrl('Utilities/WarningMessage.aspx?') + 'strItemId=' + escape(strItemId) + '&strMessageType=' + escape(strMessageType), '_MenuItemInformation', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
	return false;
}

function RecurrenceRadioHandler(strRadioId)
{
	var objForm = document.BaseForm;
	InputItemAltered();
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		var strElementName = element.name;
		var j = strElementName.lastIndexOf('$');
		var strName = strElementName.substring(j+1);
		
		if('RTP_RTP_RECUR_TIME' == strName)
		{
			if('RTP_RTP_RADIO_OFF' == strRadioId)
			{
				//element.disabled = true;
				element.value="";
			}
			else if('RTP_RTP_RADIO_ON' == strRadioId)
			{
				//element.disabled = false;
			}
		}
		if('RTP_RTP_RECUR_PERIOD' == strName)
		{
			if('RTP_RTP_RADIO_OFF' == strRadioId)
			{
				//element.disabled = true;
				element.value ="";
			}
			else if('RTP_RTP_RADIO_ON' == strRadioId)
			{
				//element.disabled = false;
			}
		}
		
		continue;
		
	}	
}

function InitialDateDynamicRadioHandler(strRadioId)
{
	var objForm = document.BaseForm;
	InputItemAltered();
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		var strElementName = element.name;
		var j = strElementName.lastIndexOf('$');
		var strName = strElementName.substring(j+1);
		
		if('RTP_ITP_DD_TIME' == strName)
		{
			if('RTP_ITP_DATE_OFF' == strRadioId)
			{
				//element.disabled = true;
				element.value="";
			}
			else if('RTP_ITP_DATE_ON' == strRadioId)
			{
				//element.disabled = false;
			}
		}
		if('RTP_ITP_DD_PERIOD' == strName)
		{
			if('RTP_ITP_DATE_OFF' == strRadioId)
			{
				//element.disabled = true;
				element.value ="";
			}
			else if('RTP_ITP_DATE_ON' == strRadioId)
			{
				//element.disabled = false;
			}
		}
		
		continue;
		
	}	
}

function InitialDateFixedRadioHandler(strRadioId)
{
	var objForm = document.BaseForm;
	InputItemAltered();
	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		var strElementName = element.name;
		var j = strElementName.lastIndexOf('$');
		var strName = strElementName.substring(j+1);
		
		if('RTP_ITP_DATE_FIXED||DAY' == strName || 'RTP_ITP_DATE_FIXED||MONTH' == strName || 'RTP_ITP_DATE_FIXED||YEAR' == strName )
		{
			if('RTP_ITP_DATE_OFF' == strRadioId)
			{
    			//element.disabled = false;
			}
			else if('RTP_ITP_DATE_ON' == strRadioId)
			{
				//element.disabled = true;
				element.value="";
				
			}
		}
		if('RTP_ITP_DATE_FLOATING||DAY' == strName || 'RTP_ITP_DATE_FLOATING||MONTH' == strName)
		{
			if('RTP_ITP_DATE_OFF' == strRadioId)
			{
				//element.disabled = true;
				element.value ="";
			}
			else if('RTP_ITP_DATE_ON' == strRadioId)
			{
				//element.disabled = false;
			}
		}
		
		continue;
		
	}	
}

function SetRecurrenceButton()
{

var objForm = document.BaseForm;

	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		var strElementName = element.name;
		var j = strElementName.lastIndexOf('$');
		var strName = strElementName.substring(j+1);
		
		if(strName == 'RecurrenceGroup')
		{
		    if(!element.Checked)
		    {
		        element.Checked;
		    }		
		}
		continue;
	}
}

//View any image associated with content item  (e.g. Collaboration space logo)
function GetConfigSetting(strConfigSettingId) 
{
	var objXMLHTTPRequest = CreateXMLHTTPRequest();
	objXMLHTTPRequest.open ("POST", "/KView/CustomCodeBehind/Base/Utilities/GetCalculatedUrl.aspx", false);
	var strParams = "strCall=GetConfigSetting&strConfigSettingId=" + strConfigSettingId;
	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	objXMLHTTPRequest.send (strParams);
	
	return objXMLHTTPRequest.responseText;
}

//View any image associated with content item  (e.g. Collaboration space logo)
function ViewImage(strItemId, strFunctionType) 
{
	var objXMLHTTPRequest = CreateXMLHTTPRequest();
	objXMLHTTPRequest.open ("POST", "/KView/CustomCodeBehind/Base/Utilities/GetCalculatedUrl.aspx", false);
	var strParams = "strCall=ViewImage&strItemId=" + strItemId + "&strFunctionType=" + strFunctionType;
	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	objXMLHTTPRequest.send (strParams);
	var strImageUrl = objXMLHTTPRequest.responseText;
	newwindow = window.open (strImageUrl, '_ImageUrl', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=200,height=200');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}
	return false;
}

function ValidateProfileDatesAndRecurrence(strMessage, strDateMessage, strRecurMessage)
{
    var blnValidateForm = false;
    var blnRecurrenceSet = false;
    var blnDateSet = false;
    var blnReturnValue = true;
    var strFormType = '';
    var objForm = document.BaseForm;
    var blnDateRadioSet = false;
    var blnRecurRadioSet = false;
    for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		var strElementName = element.name;
		var j = strElementName.lastIndexOf('$');
		var strName = strElementName.substring(j+1);
		if(strName == 'RTP_RTT_TYPE_ID')
		{
		    strFormType = element.value;
		}
		if(element.value == 'RTP_RTP_RADIO_OFF' && element.checked)
		{
		    blnRecurRadioSet = true;
		}
		if(element.value == 'RTP_RTP_RADIO_ON' && element.checked)
		{
		    blnRecurRadioSet = true;
		}
		if(element.value == 'RTP_ITP_DATE_OFF' && element.checked)
		{
		    blnDateRadioSet = true;
		}
		if(element.value == 'RTP_ITP_DATE_ON' && element.checked)
		{
		    blnDateRadioSet = true;
		}
		
		continue;
    }
	if(!blnDateRadioSet)
	{
	    alert(strDateMessage);
	    return false;
	}
	
	if(!blnRecurRadioSet)
	{
	    alert(strRecurMessage);
	    return false;
	}

	for (i=0;i<objForm.elements.length;i++) 
	{
		var element = objForm.elements[i];
		var strElementName = element.name;
		var j = strElementName.lastIndexOf('$');
		var strName = strElementName.substring(j+1);
		if(strName == 'RTP_RTT_TYPE_ID')
		{
		    strFormType = element.value;
		}
		//alert(strName + ': ' + element.value);
		if(strName == 'InitialDate')
		{
		    blnValidateForm = true;
		    
   		    if(element.value == 'RTP_ITP_DATE_OFF' && element.checked)
		    {
		        if(strFormType == 'ML.BASE.RTT.Fixed'){ 
		            blnDateSet = true;   
		            if(!ValidateProfileDate('Fixed', strDateMessage))
		            {
		                //alert("return false... bad ON date");
		                return false;
		            }
		        }
		    }

		    if(element.value == 'RTP_ITP_DATE_ON' && element.checked)
		    {
		    //validate time?
		        blnDateSet = true;
		        
		        if(strFormType == 'ML.BASE.RTT.Fixed'){    
		            if(!ValidateProfileDate('Floating', strDateMessage))
		            {
		                //alert("return false... bad ON date");
		                return false;
		            }
		        }else
		        {
		        	if(!ValidateProfileDate('Dynamic', strDateMessage))
		            {
		                //alert("return false... bad ON date");
		                return false;
		            }
		        }
		      
		    }
		}
		
		
		if(strName == 'RecurrenceGroup')
		{
		    blnValidateForm = true;
		    if(element.value == 'RTP_RTP_RADIO_ON' && element.checked)
		    {
		        blnRecurrenceSet = true;
		        if(!ValidateProfileRecurrence(strRecurMessage))
		        {
		            return false;
		        }
		    }
		}
		
		continue;
		
	}
	//alert('validate: ' + blnValidateForm + '| dateset: '+ blnDateSet + ' | recur set: '+blnRecurrenceSet);
	if(blnValidateForm)
	{
	    if(!blnDateSet && !blnRecurrenceSet)
	    {
	        alert(strMessage);
	        blnReturnValue = false;
	    }
	}
    return blnReturnValue;
}

function ValidateProfileRecurrence(strRecurMessage)
{
    //alert('validate recurrence');
    var blnReturnValue = true;
    
    var objFormRecur = document.BaseForm;
	var iRecur = 0;
	for (iRecur=0;iRecur<objFormRecur.elements.length;iRecur++) 
	{
		var elementRecur = objFormRecur.elements[iRecur];
		var strElementNameRecur = elementRecur.name;
		var jRecur = strElementNameRecur.lastIndexOf('$');
		var strNameRecur = strElementNameRecur.substring(jRecur+1);
		if(strNameRecur == 'RTP_RTP_RECUR_TIME')
		{
		    //alert('recur time: ' + elementRecur.value);
            if(elementRecur.value == '')
            {
                alert(strRecurMessage);
                return false;
            }
		}
		if(strNameRecur == 'RTP_RTP_RECUR_PERIOD')
		{
		    //alert('recur period: ' + elementRecur.value);
		    if(elementRecur.value == '')
		    {
		        alert(strRecurMessage);
		        return false;
		    }
		}
		
		continue;
		
	}
	//alert('valid');
	return true;
}

function ValidateProfileDate(strDateType, strDateMessage)
{
    //alert('validate initial date');
    var blnReturnValueDate = true;
    
    var objFormDate = document.BaseForm;
	var iDate = 0;
	
	for (iDate=0;iDate<objFormDate.elements.length;iDate++) 
	{
		var elementDate = objFormDate.elements[iDate];
	
		var strElementNameDate = elementDate.name;
		var jDate = strElementNameDate.lastIndexOf('$');
		var strNameDate = strElementNameDate.substring(jDate+1);
		
		if(strNameDate == 'RTP_ITP_DD_TIME' && strDateType == 'Dynamic')
		{
		    //alert('recur time dynamic: ' + elementDate.value);
            if(elementDate.value == '')
            {
                alert(strDateMessage);
                return false;
            }
		}
		if(strNameDate == 'RTP_ITP_DD_PERIOD' && strDateType == 'Dynamic')
		{
		    //alert('recur period dynamic: ' + elementDate.value);
		    if(elementDate.value == '')
		    {
		        alert(strDateMessage);
		        return false;
		    }
		}
		if(strNameDate == 'RTP_ITP_DATE_FIXED||MONTH' && strDateType == 'Fixed')
		{
		    //alert('month fixed: ' + elementDate.value);
		    if(elementDate.value == '')
		    {
		        alert(strDateMessage);
		        return false;
		    }
		}		
		if(strNameDate == 'RTP_ITP_DATE_FIXED||DAY' && strDateType == 'Fixed')
		{
		    //alert('day fixed: ' + elementDate.value);
		    if(elementDate.value == '')
		    {
		        alert(strDateMessage);
		        return false;
		    }
		}		
		if(strNameDate == 'RTP_ITP_DATE_FIXED||YEAR' && strDateType == 'Fixed')
		{
		    //alert('year fixed: ' + elementDate.value);
		    if(elementDate.value == '')
		    {
		        alert(strDateMessage);
		        return false;
		    }
		}		
		if(strNameDate == 'RTP_ITP_DATE_FLOATING||MONTH' && strDateType == 'Floating')
		{
		//alert('month float: ' + elementDate.value);
		    if(elementDate.value == '')
		    {
		        alert(strDateMessage);
		        return false;
		    }
		}
		if(strNameDate == 'RTP_ITP_DATE_FLOATING||DAY' && strDateType == 'Floating')
		{
		    //alert('month day: ' + elementDate.value);
		    if(elementDate.value == '')
		    {
		        alert(strDateMessage);
		        return false;
		    }
		}
		continue;
	}
	//alert('valid');
	return true;
}

function GoPreviewEmail()
{
   	newwindow = window.open(GetCalculatedUrl('RequiredTraining/PreviewEmail.aspx') ,'_ViewEmail', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
   	//newwindow = window.open(GetCalculatedUrl('/EmailConsole/ViewEmailSummary.aspx?strItemId=ML.BASE.RT.UserAssigned.WithDeadline') ,'_ViewEmail', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
   	
    if (newwindow && newwindow.open && !newwindow.closed)
	    {
	      newwindow.focus();
	    }
	
	return false;
}

function ValidateSelectRadioButton(objForm,  strInvalidSelectionMessage)
{
	var blnOneChecked = false;
	for (var i=0;i<document.BaseForm.elements.length;i++)
	{
		if (objForm.elements[i].type.toUpperCase() == 'RADIO') 
		{
			if (objForm.elements[i].checked)
			{
				blnOneChecked = true;
			}
		}
	}	
	if (!(blnOneChecked))
	{
		alert(strInvalidSelectionMessage);
		return false;
	}
}

function ValidateSameRowCheckBoxSelect(TheForm, strPrefix, strPrefix1, strAlertMessage) 
{
	var intCheckbox;
	var strString = 'Link|';
	var blnDuplicate = false;

	for (var i=0;i<TheForm.elements.length;i++) {
		var element = TheForm.elements[i];
		var strElementName;
		strElementName = element.name;
		
		if (element.type == 'checkbox' && strElementName.indexOf(strPrefix) >= 0) {
			if (element.checked) {
                //get the ID associated with the checkbox    
			    var strID = strElementName.substr(strElementName.lastIndexOf("_") + 1);
			    //check to see if there is a duplicate checkbox

			    strString += strID + '|';
			}
		}
		if (element.type == 'checkbox' && strElementName.indexOf(strPrefix1) >= 0) {
			if (element.checked) {
                //get the ID associated with the checkbox    
			    var strID1 = strElementName.substr(strElementName.lastIndexOf("_") + 1);
			    //check to see if a checkbox in the same row is checked
			  	if(strString.indexOf(strID1) >=0 ) {
		            blnDuplicate = true;
			        break;
		        }
			}
		}		

	}

	if (blnDuplicate) {
        alert(strAlertMessage);
        return false;
	}

	return true;
}
function LaunchEvaluationPreview() 
{
	newwindow = window.open (GetCalculatedUrl('PerformanceEvaluation/TakeEvaluation.aspx') + '?strPreview=true', '_PopupReport', 'toolbar=yes,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=840,height=620');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return false;
}

function LaunchUrl(strUrl)
{
   	newwindow = window.open (strUrl, '_PopUpUrl', 'toolbar=yes,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=840,height=620');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return false;
}

//routes cert to new window
function RouteSelectedActionForCertPreview(strRowId, strMessage)
{
    var objForm = document.BaseForm;
    var blnReturnValue = true;
	// Find associated drop-down, see if selected item is lock test.
	var varSelected = '';
	
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
	    alert(element.name.indexOf('_ActionsMenu'));
		if (element.type=='select-one' && 
			element.name.indexOf('_ActionsMenu')!= -1 &&
			element.name.indexOf(strRowId)!= -1)
		{
				varSelected = element.value;
		}
	}
	
	alert(strRowId);
	alert(varSelected);

	if(varSelected == 'ML.BASE.ACT.Preview')
	{
		newwindow = window.open (GetCalculatedUrl('Reports/DPH_ReportRouter.aspx') + '?strReport=ML.BASE.ACT.CERTIFICATE&strItemId=' + strRowId, 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
	    blnReturnValue = false;
	}
	return blnReturnValue;
}


function ShowTermsAndConditions()
{
	var strhref = location.href.toLowerCase();
	strhref = strhref.substring(0, strhref.indexOf("/kview"));

    var strUrl = GetCalculatedUrl("ECommerce/ECTerms.aspx");

   	newwindow = window.open (strUrl, '_ECTerms', 'toolbar=yes,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=960,height=620');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return false;
}

function ShowCVCHelp()
{
    var strUrl = GetCalculatedUrl("ECommerce/ECCVCHelp.aspx");
   	newwindow = window.open (strUrl, '_ECCVCHelp', 'toolbar=yes,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=840,height=620');
	if(newwindow && newwindow.open && !newwindow.closed)
	{
		newwindow.focus();
	}

	return false;
}

function NavigateToShoppingCart()
{
    location.href = GetCalculatedUrl('ECommerce/ShoppingCart.aspx');
    return false;
}
function ValidateAndConfirmOrder(strConfirmOrder, strAcceptTermsAndConditions)
{
    var objForm = document.BaseForm;
	var blnChecked = false;
	for (var i=0;i<objForm.elements.length;i++)
	{
		if (objForm.elements[i].name.toUpperCase().indexOf('RO_TERMS_CONDITION') >= 0) 
		{
			if (objForm.elements[i].checked)
			{
				blnChecked = true;
			}
		}
	}	
	if (!(blnChecked))
	{
		alert(strAcceptTermsAndConditions);
		return false;
	}
	else
	{
	    var blnChoice = confirm(strConfirmOrder);
	    if(blnChoice)
	    {
	        for (var i=0;i<objForm.elements.length;i++)
	        {
                if (objForm.elements[i].name.toUpperCase().indexOf('ML.BASE.BTN.PurchaseNow') >= 0) 
		        {
				    objForm.elements[i].disabled = true;
		        }
		    }
	    }
	    return blnChoice;
	}
}

function PFPCreditCardExpDateValidation(source, args)
{
    var objForm = document.BaseForm;
    var strMonth = '';
    var strYear = '';
    for (var i=0;i<objForm.elements.length;i++)
    {
        if (objForm.elements[i].name.toUpperCase().indexOf('ENCRYPTED_PI_CREDIT_CARD_EXP_MONTH') >= 0)
        {
		    strMonth = objForm.elements[i].value;
        }
        if (objForm.elements[i].name.toUpperCase().indexOf('ENCRYPTED_PI_CREDIT_CARD_EXP_YEAR') >= 0)
        {
		    strYear = objForm.elements[i].value;
        }
    }

    strYear = '20' + strYear;

    var varExpDate = new Date(strYear, strMonth);
    var varCurrentDate = new Date();
    
    var blnValid = true;
    if(varCurrentDate.getTime() >= varExpDate.getTime())
    {
       blnValid = false;
    }

    args.IsValid = blnValid;
    return;
}

function PFPCreditCardValidation(source, args)
{
    var objForm = document.BaseForm;
    var strCardType = '';
    var strCardNumber = '';
    for (var i=0;i<objForm.elements.length;i++)
    {
        if (objForm.elements[i].name.toUpperCase().indexOf('PI_CREDIT_CARD_TYPE') >= 0)
        {
		    strCardType = objForm.elements[i].value;
        }
        if (objForm.elements[i].name.toUpperCase().indexOf('ENCRYPTED_PI_CREDIT_CARD_NUMBER') >= 0)
        {
		    strCardNumber = objForm.elements[i].value;
        }
    }

    var intRetVal  = checkCreditCard(strCardNumber, strCardType);
    var ccErrors = new Array ();
    ccErrors [0] = "ML.BASE.ECOM.PFP.UnknownCard";
    ccErrors [1] = "ML.BASE.ECOM.PFP.NoCardNumber";
    ccErrors [2] = "ML.BASE.ECOM.PFP.InvalidCardFormat";
    ccErrors [3] = "ML.BASE.ECOM.PFP.InvalidCardNumber";
    ccErrors [4] = "ML.BASE.ECOM.PFP.InvalidNumberDigits";

    if(intRetVal > -1)
    {
      args.IsValid = false;
    }

    return;
    
}

function PFPCVCValidation(source, args)
{
    var objForm = document.BaseForm;
    var strCardType = '';
    var strCVCNumber = '';

    for (var i=0;i<objForm.elements.length;i++)
    {
        if (objForm.elements[i].name.toUpperCase().indexOf('PI_CREDIT_CARD_TYPE') >= 0)
        {
		    strCardType = objForm.elements[i].value;
        }
        if (objForm.elements[i].name.toUpperCase().indexOf('ENCRYPTED_PI_CREDIT_CARD_CVC_NUMBER') >= 0)
        {
		    strCVCNumber = objForm.elements[i].value;
        }
    }

    var intRetVal = 0;
    if(strCardType == 'ML.BASE.CREDITCARD.AMEX')
    {
      if(strCVCNumber.length != 4)
      {
         intRetVal = 1;
      }
    }
    else
    {
      if(strCVCNumber.length != 3)
      {
         intRetVal = 1;
      }
    }

    if(intRetVal > 0)
    {
      args.IsValid = false;
    }

    return;
    
}

/*============================================================================*/

/*

This routine checks the credit card number. The following checks are made:

1. A number has been provided
2. The number is a right length for the card
3. The number has an appropriate prefix for the card
4. The number has a valid modulus 10 number check digit if required

If the validation fails an error is reported.

The structure of credit card formats was gleaned from a variety of sources on 
the web, although the best is probably on Wikepedia ("Credit card number"):

  http://en.wikipedia.org/wiki/Credit_card_number

Parameters:
            cardnumber           number on the card
            cardname             name of card as defined in the card list below

Author:     John Gardner
Date:       1st November 2003
Updated:    26th Feb. 2005      Additional cards added by request
Updated:    27th Nov. 2006      Additional cards added from Wikipedia
Updated:    18th Jan. 2008      Additional cards added from Wikipedia

*/

/*
   If a credit card number is invalid, an error reason is loaded into the 
   global ccErrorNo variable. This can be be used to index into the global error  
   string array to report the reason to the user if required:
   
   e.g. if (!checkCreditCard (number, name) alert (ccErrors(ccErrorNo);
*/

function checkCreditCard (cardnumber, cardname) {
     
  // Array to hold the permitted card characteristics
  var cards = new Array();
  var ccErrorNo = 0;
  var blnRetVal = false;

  // Define the cards we support. You may add addtional card types.
  //  Name:      As in the selection box of the form - must be same as user's
  //  Length:    List of possible valid lengths of the card number for the card
  //  prefixes:  List of possible prefixes for the card
  //  checkdigit Boolean to say whether there is a check digit
  
  cards [0] = {name: "ML.BASE.CREDITCARD.VISA", 
               length: "13,16", 
               prefixes: "4",
               checkdigit: true};
  cards [1] = {name: "ML.BASE.CREDITCARD.MASTERCARD", 
               length: "16", 
               prefixes: "51,52,53,54,55",
               checkdigit: true};
  cards [2] = {name: "ML.BASE.CREDITCARD.DINERS", 
               length: "14,16", 
               prefixes: "300,301,302,303,304,305,36,38,55",
               checkdigit: true};
  cards [3] = {name: "ML.BASE.CREDITCARD.CARTEBLANCHE", 
               length: "14", 
               prefixes: "300,301,302,303,304,305,36,38",
               checkdigit: true};
  cards [4] = {name: "ML.BASE.CREDITCARD.AMEX", 
               length: "15", 
               prefixes: "34,37",
               checkdigit: true};
  cards [5] = {name: "ML.BASE.CREDITCARD.DISCOVER", 
               length: "16", 
               prefixes: "6011,650",
               checkdigit: true};
  cards [6] = {name: "ML.BASE.CREDITCARD.JCB", 
               length: "15,16", 
               prefixes: "3,1800,2131",
               checkdigit: true};
  cards [7] = {name: "ML.BASE.CREDITCARD.ENROUTE", 
               length: "15", 
               prefixes: "2014,2149",
               checkdigit: true};
  cards [8] = {name: "ML.BASE.CREDITCARD.SOLO", 
               length: "16,18,19", 
               prefixes: "6334, 6767",
               checkdigit: true};
  cards [9] = {name: "ML.BASE.CREDITCARD.SWITCH", 
               length: "16,18,19", 
               prefixes: "4903,4905,4911,4936,564182,633110,6333,6759",
               checkdigit: true};
  cards [10] = {name: "ML.BASE.CREDITCARD.MAESTRO", 
               length: "16,18", 
               prefixes: "5020,6",
               checkdigit: true};
  cards [11] = {name: "ML.BASE.CREDITCARD.VISAELECTRON", 
               length: "16", 
               prefixes: "417500,4917,4913",
               checkdigit: true};
               
  // Establish card type
  var cardType = -1;
  for (var i=0; i<cards.length; i++) {

    // See if it is this card (ignoring the case of the string)
    if (cardname.toLowerCase () == cards[i].name.toLowerCase()) {
      cardType = i;
      break;
    }
  }
  
  // If card type not found, report an error
  if (cardType == -1) {
     return 0;
  }
   
  // Ensure that the user has provided a credit card number
  if (cardnumber.length == 0)  {
     ccErrorNo = 1;
     return 1;
  }
    
  // Now remove any spaces from the credit card number
  cardnumber = cardnumber.replace (/\s/g, "");
  
  // Check that the number is numeric
  var cardNo = cardnumber
  var cardexp = /^[0-9]{13,19}$/;
  if (!cardexp.exec(cardNo))  {
     ccErrorNo = 2;
     return 2; 
  }
       
  // Now check the modulus 10 check digit - if required
  if (cards[cardType].checkdigit) {
    var checksum = 0;                                  // running checksum total
    var mychar = "";                                   // next char to process
    var j = 1;                                         // takes value of 1 or 2
  
    // Process each digit one by one starting at the right
    var calc;
    for (i = cardNo.length - 1; i >= 0; i--) {
    
      // Extract the next digit and multiply by 1 or 2 on alternative digits.
      calc = Number(cardNo.charAt(i)) * j;
    
      // If the result is in two digits add 1 to the checksum total
      if (calc > 9) {
        checksum = checksum + 1;
        calc = calc - 10;
      }
    
      // Add the units element to the checksum total
      checksum = checksum + calc;
    
      // Switch the value of j
      if (j ==1) {j = 2} else {j = 1};
    } 
  
    // All done - if checksum is divisible by 10, it is a valid modulus 10.
    // If not, report an error.
    if (checksum % 10 != 0)  {
     ccErrorNo = 3;
     return 3;
    }
  }  

  // The following are the card-specific checks we undertake.
  var LengthValid = false;
  var PrefixValid = false; 
  var undefined; 

  // We use these for holding the valid lengths and prefixes of a card type
  var prefix = new Array ();
  var lengths = new Array ();
    
  // Load an array with the valid prefixes for this card
  prefix = cards[cardType].prefixes.split(",");
      
  // Now see if any of them match what we have in the card number
  for (i=0; i<prefix.length; i++) {
    var exp = new RegExp ("^" + prefix[i]);
    if (exp.test (cardNo)) PrefixValid = true;
  }
      
  // If it isn't a valid prefix there's no point at looking at the length
  if (!PrefixValid) {
     ccErrorNo = 3;
     return 3; 
  }
    
  // See if the length is valid for this card
  lengths = cards[cardType].length.split(",");
  for (j=0; j<lengths.length; j++) {
    if (cardNo.length == lengths[j]) LengthValid = true;
  }
  
  // See if all is OK by seeing if the length was valid. We only check the 
  // length if all else was hunky dory.
  if (!LengthValid) {
     ccErrorNo = 4;
     return 4; 
  };   

  // The credit card is in the required format.
  return -1;
}


function GoViewLastBulkImport(strType)
{
   	newwindow = window.open(GetCalculatedUrl('Courseware/LastBulkImportInfoDetails.aspx?strType='+strType) ,'_ViewEmail', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
   	//newwindow = window.open(GetCalculatedUrl('/EmailConsole/ViewEmailSummary.aspx?strItemId=ML.BASE.RT.UserAssigned.WithDeadline') ,'_ViewEmail', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=910,height=480');
   	
    if (newwindow && newwindow.open && !newwindow.closed)
	    {
	      newwindow.focus();
	    }
	
	return false;
}

//Ajax call to Kview every 5 minutes to keep the state object alive.
//If call fails and does not return empty value then make call every 1 minute.
//Keep a counter of failed attempts.
var intFailedAttempts = 0;
function KeepStateAlive()
{
	var objXMLHTTPRequest = CreateXMLHTTPRequest();
	objXMLHTTPRequest.open ("POST", GetCalculatedUrl('Utilities/RefreshPage.aspx'), false);

	var strParams = "";
	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");

	objXMLHTTPRequest.send (strParams);
	
	if (objXMLHTTPRequest.responseText.length == 0) 
	{
		setTimeout(KeepStateAlive, 300000);
	} 
	else 
	{
		setTimeout(KeepStateAlive, 60000);
		intFailedAttempts++;
	}
}
var blnResetOnce = false;
function ResetTextAndFont(strElementName)
{

    var blnReturnValue = true;
    var objFormSearch = document.BaseForm;
	var iSearch = 0;
	if(blnResetOnce != true){
	for (iSearch=0;iSearch<objFormSearch.elements.length;iSearch++) 
	{
		var elementSearch = objFormSearch.elements[iSearch];
		var strElementNameSearch = elementSearch.name;
		var jSearch = strElementNameSearch.lastIndexOf('$');
		var strNameSearch = strElementNameSearch.substring(jSearch+1);
		if(strNameSearch == strElementName)
		{
		    blnResetOnce = true;
            elementSearch.value = '';
            elementSearch.style.color='black';
            elementSearch.style.fontStyle='normal';
            return;
		}		
		continue;
	}
	}
	//alert('valid');
	return;
}

function SimpleTestStringAlert(strString) 
{
	alert (strString);
	
	return "true";
}


function BreadCrumbNavigation(strCurrentPage, strRedirectUrl)
{
//	if (blnHasMadeChange) 
//	{
//	    var strConfirmMessage = GetLocalizedMessage('ML.BASE.JS.NavigateAway');
//		if (!(confirm(strConfirmMessage))) 
//		{
//			return false;
//		}
//	}

    //
	var objXMLHTTPRequest = CreateXMLHTTPRequest();
	objXMLHTTPRequest.open ("POST", "/KView/CustomCodeBehind/Base/Utilities/GetCalculatedUrl.aspx", false);
	var strParams = "strCall=NavigateFromBreadcrumb&strCurrentPage=" + strCurrentPage;
	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	objXMLHTTPRequest.send (strParams);
	
	self.location.href = GetCalculatedUrl(strRedirectUrl);

	return false;
}

function LogoutLMS()
{
	var objXMLHTTPRequest = CreateXMLHTTPRequest();
	objXMLHTTPRequest.open ("POST", "/KView/CustomCodeBehind/Base/Utilities/GetCalculatedUrl.aspx", false);
	var strParams = "strCall=LMSLogout";
	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	objXMLHTTPRequest.send (strParams);

	var strRedirectUrl = objXMLHTTPRequest.responseText;
	
	self.location.href = strRedirectUrl;

	return false;
}

function ViewSiteIndex()
{
	var objXMLHTTPRequest = CreateXMLHTTPRequest();
	objXMLHTTPRequest.open ("POST", "/KView/CustomCodeBehind/Base/Utilities/GetCalculatedUrl.aspx", false);
	var strParams = "strCall=ViewSiteIndex";
	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	objXMLHTTPRequest.send (strParams);

	var strRedirectUrl = objXMLHTTPRequest.responseText;
	
	self.location.href = strRedirectUrl;

	return false;
}
function RemediationLinkClick(strURL)
{
  if (strURL.toUpperCase().indexOf('HTTP://') < 0 && strURL.toUpperCase().indexOf('HTTPS://') < 0) 
    {
        strURL = 'http://' + strURL;
    }
   
  window.open (strURL, 'remediationurl','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=560,height=420');
  return false;
}

function ToggleApplyCreatingDomain()
{
    var strURL = location.href;
	var objForm		= document.BaseForm;
	var strValueId	= "";
	var blnAction = -1;
	for(i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		var name = element.name;
		
		if('radio' == element.type && name.indexOf("DomainSharingOption") != -1)
		{
			strValueId = element.value;
			
			if(strValueId == 'CONTENT_NOT_SHARED' && element.checked)
			{
			    blnAction = 0;
				break;
			}
		}
	}

    for(i = 0; i < objForm.elements.length; i++)
    {
	    var element = objForm.elements[i];
	    var name = element.name;

	    if('checkbox' == element.type && 
			(name.indexOf("ContentShared") != -1 || 
			name.indexOf("ContentPushedOptional") != -1 || 
			name.indexOf("ApplyDescendantDomain") != -1))
	    {
	    
//			if (blnHasDisabledItems)  
//			{
//				alert (GetLocalizedMessage('ML.BASE.JSMSG.UnableToAlterRoleDomainAssignment'));
//				
//				return;
//			}
	    
            if(blnAction == 0)
            {
				element.checked = false;
				element.disabled = true;
	        }
	        else
	        {
				if (name.indexOf("ApplyDescendantDomain") != -1) 
				{
					element.removeAttribute("disabled");
				}
				element.disabled = false;
	        }
	    }
    }
}


var blnHasDisabledItems = false;
function DisableCheckBoxesOnLoad()
{
	var objForm		= document.BaseForm;
	var blnActivate = false;
	
    for(i = 0; i < objForm.elements.length; i++)
    {
	    var element = objForm.elements[i];
	    var name = element.name;
	    
	    if('checkbox' == element.type && 
			(name.indexOf("ContentShared") != -1 || 
			name.indexOf("ContentPushedOptional") != -1 || 
			name.indexOf("ApplyDescendantDomain") == -1))
	    {
			element.disabled = true;
			if (element.checked) 
			{
				blnActivate = true;	
			}
	    }
    }
    
    if (blnActivate) 
    {
		for(i = 0; i < objForm.elements.length; i++)
		{
			var element = objForm.elements[i];
			var name = element.name;

			if('checkbox' == element.type && 
				(name.indexOf("ContentShared") != -1 || 
				name.indexOf("ContentPushedOptional") != -1 || 
				name.indexOf("ApplyDescendantDomain") != -1))
			{
				element.disabled = false;
			}
			
			if (element.type == 'radio' && 
				name.indexOf("DomainSharingOption") != -1 && 
				element.value == "CONTENT_SHARED")
			{
				element.checked = true;
			}
		}
    }
}

function RouteActionMenuCallsShowHideRole(strRowId, strMessageShow, strMessageHide)
{
    var objForm = document.BaseForm;
    // Find associated drop-down, see if selected item is Proxy Login.
	var varSelected = '';
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];

		if (element.type=='select-one' && 
			element.name.indexOf('ActionsMenu')!= -1)
		{
			if(element.attributes["AssocId"].value == strRowId)
		    {
				varSelected = element.value;
				break;
			}
		}
	}
	
	if(varSelected == 'ML.BASE.ACT.ShowRole')
	{
        return confirm(strMessageShow);
	} 
	else 
	{
		if (varSelected == 'ML.BASE.ACT.HideRole') 
		{
			return confirm(strMessageHide);
		}
	
	}
	
}

function ResetPreviousAttempt(strContentId)
{
    var objXMLHTTPRequest = CreateXMLHTTPRequest();
	
	objXMLHTTPRequest.open ("POST", "/KView/CustomCodeBehind/Base/Utilities/ResetPreviousAttemptLogic.aspx", false);
		
	var strParams = "strContentId=" + strContentId;
	
	objXMLHTTPRequest.setRequestHeader ("Content-type", "application/x-www-form-urlencoded");
	
	objXMLHTTPRequest.send (strParams);
	
	var strNewAttemptAllowed = "T";
	
	return strNewAttemptAllowed;
}

//create this function
String.prototype.count=function(s1) { 
	return (this.length - this.replace(new RegExp(s1,"g"), '').length) / s1.length;
}

function ValidateFillInTheBlankBrackets(source,args)
{
    //fill in the blank should only have one open/close bracket
	var objElement = document.getElementById(source.controltovalidate);
	var objValue = objElement.value;
	var intOpenCurl = objValue.count('{');
	var intCloseCurl = objValue.count('}');
	if(intOpenCurl > 1 && intCloseCurl > 1)
	{
	    //there are more than one of each.
		args.IsValid = false;
	}
	return;
}

function LaunchTranscriptPrintVersion()
{
	newwindow = window.open (GetCalculatedUrl('Reports/StudentReports/StudentTranscriptPrint.aspx'), '_PopupReport', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=840,height=620');
	newwindow.focus();
	return false;
}

/*This function disables the start and end date fields in activity pages when the activity is set to Inactive*/
function EditActivityDisableDates() 
{ 
    var strURL = location.href;
    if(strURL.toLowerCase().indexOf('activity.aspx') == -1)
    {
       return;
    }
    
    var objForm = document.BaseForm;
	var blnDisabled = false;
	
	for (i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		if('radio' == element.type && element.value == 'F' && element.checked == true)
		{
		    blnDisabled = true;
		    break;
		}
	}
	
	for (var i =  0; i < objForm.elements.length; i++)
	{
		var element = objForm.elements[i];
		
		//If activity is set to Inactive then disable the date fields
		if(element.type=='select-one')
		{
			if(element.name.indexOf('OBJ_ACTIVE_START_DATE||MONTH') != -1 || 
				element.name.indexOf('OBJ_ACTIVE_START_DATE||DAY') != -1 || 
				element.name.indexOf('OBJ_ACTIVE_END_DATE||MONTH') != -1 ||
				element.name.indexOf('OBJ_ACTIVE_END_DATE||DAY') != -1)
			{
			    element.disabled = blnDisabled;
			    if(blnDisabled)
			    {
				   element.value = "";
				}
			}
		}
		else
		{
			if(element.type=='text' && 
				(
				element.name.indexOf('OBJ_ACTIVE_START_DATE||YEAR') != -1 || 
				element.name.indexOf('OBJ_ACTIVE_END_DATE||YEAR') != -1
				))
			{
			    element.disabled = blnDisabled;
			    if(blnDisabled)
			    {
				   element.value = "";
				}
			}
		}
	}
}

function ConfirmUserLoginProcess(strRowId, strMessage)
{    
	if(!confirm(strMessage))
    {        
        return false;
    }
    else
    {        
        return true;       
    }          
    return false;    
}


function ValidateCountrySelection()
{

var strhref = location.href.toLowerCase();
if(strhref.indexOf("/wizards/useraccountwizard.aspx") == -1 && strhref.indexOf("user/usercontactinformation.aspx") == -1 && strhref.indexOf("user/dph_loginprofileedit.aspx") == -1)
{
   return;
}

var objForm = document.BaseForm;
var strCountry = '';

for (var i=0;i<objForm.elements.length;i++)
    {
        if (objForm.elements[i].name.indexOf('USR_COUNTRY_ID') != -1)
        {
		    strCountry = objForm.elements[i].value;
        }
     }   
        if (strCountry.toUpperCase()=='US'||strCountry.toUpperCase()=='UNITED STATES')
        {
	
	        for(j=0;j<objForm.elements.length;j++)
	        {
	            if (objForm.elements[j].name.indexOf("USR_PROVINCE") != -1) 
		        {
	                objForm.elements[j].value = "";
		            objForm.elements[j].disabled = true; 
		            //objForm.elements[j].style.backgroundColor = true?"#eeeeee":"white" ; 
		            objForm.elements[j].style.backgroundColor = "#eeeeee";  
		        }	
		        if (objForm.elements[j].name.indexOf("USR_STATE_ID") != -1) 
			    {
				    objForm.elements[j].disabled = false;
                    objForm.elements[j].style.backgroundColor = "white" ; 

			    }	
			    if (objForm.elements[j].name.indexOf("USR_POSTAL_CODE") != -1) 
		        {
			        objForm.elements[j].disabled = false;
			     objForm.elements[j].style.backgroundColor = "white" ; 

		        }
			    if (objForm.elements[j].name.indexOf("C_USR_COUNTY") != -1) 
		        {
			        objForm.elements[j].disabled = false;
	                objForm.elements[j].style.backgroundColor = "white" ; 

		        }
	        }
	    }
	  else if (strCountry == '')
        {
	
	        for(j=0;j<objForm.elements.length;j++)
	        {
	            if (objForm.elements[j].name.indexOf("USR_PROVINCE") != -1) 
		        {
		            objForm.elements[j].disabled = false;
		            objForm.elements[j].style.backgroundColor = "white" ; 
		        }	
		        if (objForm.elements[j].name.indexOf("USR_STATE_ID") != -1) 
			    {
				    objForm.elements[j].disabled = false;
				    objForm.elements[j].style.backgroundColor = "white" ; 

			    }	
			    if (objForm.elements[j].name.indexOf("USR_POSTAL_CODE") != -1) 
		        {
			        objForm.elements[j].disabled = false;
			        objForm.elements[j].style.backgroundColor = "white" ; 

		        }
			    if (objForm.elements[j].name.indexOf("C_USR_COUNTY") != -1) 
		        {
			        objForm.elements[j].disabled = false;
			       objForm.elements[j].style.backgroundColor = "white" ; 

		        }
	        }
	    }
        else
        {
            for(k=0;k<objForm.elements.length;k++)
	        {
	            if (objForm.elements[k].name.indexOf("USR_STATE_ID") != -1) 
			    {
		            objForm.elements[k].value = "";
			        objForm.elements[k].disabled = true;
			        objForm.elements[k].style.backgroundColor = "#eeeeee"; 
			    }	
			    if (objForm.elements[k].name.indexOf("USR_POSTAL_CODE") != -1) 
		        {
		            objForm.elements[k].value = "";
			        objForm.elements[k].disabled = true;
			       objForm.elements[k].style.backgroundColor = "#eeeeee"; 
		        }
			    if (objForm.elements[k].name.indexOf("C_USR_COUNTY") != -1) 
		        {
		            objForm.elements[k].value = "";
			        objForm.elements[k].disabled = true;
			       objForm.elements[k].style.backgroundColor = "#eeeeee"; 
		        }
			    if (objForm.elements[k].name.indexOf("USR_PROVINCE") != -1) 
		        {
	            objForm.elements[k].disabled = false;
	            objForm.elements[k].style.backgroundColor = "white" ; 
		        }	
	        }
        }
    return false;
}

function EnableDisabledFields()
{

if(!Page_ClientValidate())
{
    return;
}

var objForm = document.BaseForm;
var strCountry = '';

for (var i=0;i<objForm.elements.length;i++)
    {
        if (objForm.elements[i].name.indexOf('USR_COUNTRY_ID') != -1)
        {
		    strCountry = objForm.elements[i].value;
        }
     }   
        if (strCountry.toUpperCase()=='US'||strCountry.toUpperCase()=='UNITED STATES')
        {
            for(k=0;k<objForm.elements.length;k++)
	        {
			    if (objForm.elements[k].name.indexOf("USR_PROVINCE") != -1) 
		        {
			            objForm.elements[k].disabled = false;
		        }	
	        }
	    }
        else
        {
	        for(j=0;j<objForm.elements.length;j++)
	        {
		         if (objForm.elements[j].name.indexOf("USR_STATE_ID") != -1) 
			    {
				        objForm.elements[j].disabled = false;
			    }	
			    if (objForm.elements[j].name.indexOf("USR_POSTAL_CODE") != -1) 
			        {
				        objForm.elements[j].disabled = false;
			        }
			    if (objForm.elements[j].name.indexOf("C_USR_COUNTY") != -1) 
			        {
				        objForm.elements[j].disabled = false;
			        }
	        }
        }
}
