bIsIE=(document.all)?true:false;

//If change any MENU_STATUS_* codes change in misc\CATUserDefines.h
var MENU_STATUS_UPLOAD=0;
var MENU_STATUS_READY=1;
var MENU_STATUS_PROCESSING=2;
var MENU_STATUS_ERROR=3;
var MENU_STATUS_INUSE=4;
var MENU_STATUS_REPEALED=5;
var MENU_STATUS_DELETED=6;
var MENU_STATUS_LOCKED=7;
var MENU_STATUS_ERRORNOTICE=8;
var MENU_STATUS_ERRORADMIN=9;

//iBarType
var IBARTYPE_SECTION=0;
var IBARTYPE_HEADER=1;
var IBARTYPE_PARAGRAPH=2;
var IBARTYPE_DOCUMENT=3;
var IBARTYPE_MENU=4;
var IBARTYPE_FILEMENU=5;

//sxIcons types
var CICON_SECTION='0';
var CICON_SECTIONS='1';
var CICON_PARAGRAPH='2';
var CICON_JUMP_DOWN='3';
var CICON_JUMP_UP='4';	
var CICON_JUMP_TOP='5';
var CICON_HTM='6';
var CICON_RTF='7';
var CICON_PDF='8';
var CICON_REVLINK='a';
var CICON_SIDE_BY_SIDE='b';
var CICON_HISTORY='c';
var CICON_OPTIONS='d';
var CICON_EXPAND_BAR='e';
var CICON_PRINT='f';	
var CICON_REGMATCH='g';	
var CICON_ESS_ADD_URL='h';
var CICON_EMAIL='i';
var CICON_ADD_TO_PROFILE='j';
var CICON_ALLREGS='k';
var CICON_NEWUPDATED='l';
var CICON_LANGTRANS='m';
var CICON_FULLTEXT='n';
var CICON_ENGLISH_SUMMARY='o';
var CICON_EXENGLISH_SUMMARY='p';


var iCurColor=0;
// var bExpanded=false;
var bNoScroll=false;
var bDoDocMenuBorder=true;
var bDoShowBorder=false;
var bDoSmallText=true;
var bFullExpland=false;
var sxExpandedElem=null;
var sxHotElem = null;
var objSecDrop = null;
var elmGroupList = null;
var elemAnnotFormId= null;
var elemPrevAnnotFormId= null;
var elemMultiSelectFormId=null;
var elmFormGroupList = null;
var elmGroupListBoxes = null;
var elmGroupListBoxesDisplay = null;
var sxPrevGroupSelections='';
var sxActualGroupSelections='';
var sxCurAnnotChangeFormId='';
var sxPrevAnnotChangeFormId='';

var bIFrameComplete=false;
var elmThisTextArea=null;

var ftb = null;
var sxHttpReqData='';

// This script and many more are available free online at
// The JavaScript Source!! http://javascript.internet.com
// Original:  Angus Turnbull
// Web Site:  http://gusnz.cjb.net

// browser type
var isDOM = (document.getElementById ? true : false); 
var isIE4 = ((!isDOM && document.all) ? true : false);
var isNS4 = (document.layers ? true : false);

// other globals
var winStub;
var winData;

var hideTimer;		// Hide timeout.
var popTimer;		// initial pop-down timer
var doDelay = true;
var isNavigating = false;
var onTopMenu = false;
var msDelayOn = 500;
var msDelayOff = 375;
var litNow = new Array();	// Array showing highlighted menu items.

var sxSizeIFrameName=null;
var eStdMenu=null;


var eEditingMenu=null;
var sxEditingMenuEditBlockId='';
var sxMenuLockSid='';
var sxMenuLockScope='';
var sxMenuLockFullPath='';
var sxEditingMenuUDoc='';
var ebaEditBlocks=null;
var sxEditingMenuUploadUrl='';
var sxEditingMenuExt='';

var ANNOT_TEXT_HEIGHT = 86;

//Javascript string prototypes... Extends the standard string (Should be in sep file)
String.prototype.trim = function(){
	return this.replace(/^\s+|\s+$/g,"");
}


// **********************************************************
// These are other functions developed by Citation Publishing
// **********************************************************

// Show the debug window
function showDebug() {
  window.top.debugWindow =
      window.open("","Debug","left=0,top=0,width=300,height=700,scrollbars=yes,status=yes,resizable=yes");
  if (window.top.debugWindow != null){
    window.top.debugWindow.opener = self;
    // open the document for writing
    window.top.debugWindow.document.open();
    window.top.debugWindow.document.write(
      "<HTML><HEAD><TITLE>Debug Window</TITLE></HEAD><BODY><PRE>\n");
  }
}

// If the debug window exists, then write to it
function debug(text) {
  if (window.top.debugWindow && ! window.top.debugWindow.closed) {
    window.top.debugWindow.document.write(text);
    window.top.debugWindow.scrollBy(0, 24);
  }
}

//showDebug();

function Copyright()
{    
    currentDate = new Date();
    if (document.all)
        theYear = currentDate.getYear();
    else if (document.layers || document.getElementById)
        theYear = currentDate.getYear() + 1900;
    
    with (document)
		writeln('<center><a href="/copyright.htm" target="_blank"><font size="1" face="Verdana,Arial" color="#808080"><i>Click here for copyright &copy; information.</i></font></a></center>');
}

function OpenDataWindow(URLstring)
{
    winData = window.open(URLstring, "winData", "width=780,height=500,left=30,top=30,resizable,scrollbars,toolbar,location,status,menubar");
    winData.focus();
}

function OpenStubWindow(URLstring)
{
    winStub = window.open(URLstring,"winStub","width=780,height=500,left=30,top=30,resizable,scrollbars");
    winStub.focus();         
}

function countCBs(iMax)
{
    var frm = document.forms[0];
    var elem;
    var count = 0;

    for (i=0; i<frm.elements.length; i++)
    {
        elem = frm.elements[i];
        if (elem.type == 'checkbox')
        {
            if (elem.checked == true)
                count++;
        }

        if (count > iMax)
        {
            alert("So we can honor your request in a timely manner,\nplease limit your selection to no more than " + iMax + ".\n\nThank you.");
            elem.checked = false;
            return false;
        }
    }
} 

function TDiv(sShow,sHide,iFlag)
{
    if(iFlag==1){
        document.getElementById(sShow).style.display="none";
		document.getElementById(sHide).style.display="block";
    }
    else{
		document.getElementById(sHide).style.display="none";
		document.getElementById(sShow).style.display="block";
    }	
}

function TPMBlk(sShow,sHide,sBlock,iFlag)
{
    if(iFlag==1){
        document.getElementById(sShow).style.display="none";
		document.getElementById(sHide).style.display="inline";
		document.getElementById(sBlock).style.display="block";
    }
    else{
	document.getElementById(sHide).style.display="none";
	document.getElementById(sShow).style.display="inline";
	document.getElementById(sBlock).style.display="none";
    }	
}

function TPMBlkS(sSessionId,sPageId,sShow,sHide,sBlock,iFlag,bSendRequest){
	TPMBlkSEx(sSessionId,sPageId,sShow,sHide,sBlock,iFlag,bSendRequest,false);
}

function TPMBlkSEx(sSessionId,sPageId,sShow,sHide,sBlock,iFlag,bSendRequest,bAsBlock)
{
    var elem;
    if(iFlag==1){
        document.getElementById(sShow).style.display="none";
		document.getElementById(sHide).style.display="inline";

		elem=document.getElementById(sBlock);
		if(bAsBlock==false)
			elem.style.display="inline";
		else
			elem.style.display="block";

		var bNs4=(document.layers)?true:false;
		var iHeight=window.document.body.scrollTop+document.body.clientHeight;
        
		var iDivY=elem.offsetTop;
		var iDivHeight=elem.offsetHeight;
		if(iDivY+iDivHeight>iHeight){
			window.scrollBy(0,iDivHeight+25);
		}	
    }
    else{
		document.getElementById(sHide).style.display="none";
		document.getElementById(sShow).style.display="inline";
		document.getElementById(sBlock).style.display="none";
    }

    if(bSendRequest==true){
	    CPageRequest('/cgi-exe/cpage.dll?source=cpgtask&srccmd=clickswapitem&sid='+sSessionId+'&pageid='+sPageId+'&showid='+sShow+'&hideid='+sHide+'&blockid='+sBlock+'&status='+iFlag);
    }
}

function OpenFocusWindow(URLstring)
{
    winData = window.open(URLstring, "IHSWindow", "resizable,scrollbars,toolbar,location,status,menubar");
    winData.focus();
}

function SetEssData(sxCitation,sxLinkString){
    var sxValues='';
    if(sxCitation=='[NEWMODE]'){
        CPageRequest('/cgi-exe/cpage.dll?source=ess&srccmd=EssInsert'+sxLinkString);
    }
    else{
        sxValues=sxCitation+"||"+sxLinkString;        
    }
    window.returnValue=sxValues;
    window.close();
}




function JumpTo(anch){
//	_MDiv.scrollTop=anch.offsetTop;
}


function FindBookmark(){
	var s=window.location.href;
	var x=s.indexOf('#');
	if(x>0){
		s=s.substr(x+1);
		x=document.getElementsByName(s);
		if(x.length>0){
			x=x[0];
			x.scrollIntoView();
		}
	}	
}

function doHideDropDown()
{
  if (hideTimer == null) return;
  
  window.clearTimeout(hideTimer);
  if (sxExpandedElem != null && sxExpandedElem != sxHotElem){
    document.getElementById(sxExpandedElem).style.visibility = 'hidden';
    sxExpandedElem = null;
  }
}

function DoSecMenu2(sxDivName, iBarType){
  sxHotElem = sxDivName;
}

function DoSecMenuOut2(sxDivName, iBarType){
  if (sxDivName == sxHotElem)
    sxHotElem = null;
  hideTimer = window.setTimeout('doHideDropDown();', msDelayOff);
}

function DoSecMenu3(sxDivName){
  sxHotElem = sxExpandedElem;
}

function DoSecMenuOut3(sxDivName){
  sxHotElem = null;
  hideTimer = window.setTimeout('doHideDropDown2();', msDelayOff);
}

function DoSecDropDown2(sxDivName,iBarType){
  if (sxExpandedElem != sxDivName){
    doHideDropDown();
  }
  
  window.clearTimeout(hideTimer);
  hideTimer = null;
  
  sxExpandedElem = sxDivName;
  sxHotElem = null;
  DoSecDropDown(sxDivName, iBarType, false);
}

function DoSecDropDown2Out(sxDivName,iBarType){
  hideTimer = window.setTimeout('doHideDropDown();', msDelayOff);
}

function doHideDropDown2(){
  if (hideTimer == null) return;
  window.clearTimeout(hideTimer);
  InternalDoHideDropDown2();  
}

function InternalDoHideDropDown2(){  
  if (objSecDrop == null)
    objSecDrop = document.getElementById('secdrop');

  if (sxExpandedElem != null && sxExpandedElem != sxHotElem){
    objSecDrop.style.visibility = 'hidden';
    
    if (elemMultiSelectFormId) {
      var arParams = elemMultiSelectFormId.innerHTML.split('&amp;'); //elemMultiSelectFormId.innerText.split('&');
      var nsact = -1;
      var groupids = nsact;
      var ogroupids = nsact;
      var newgroups = '';
      
      for (var n = 0; n < arParams.length; n++) {
        if (arParams[n].indexOf('nsact=') == 0)
          nsact = n;
        else if (arParams[n].indexOf('groupids=') == 0)
          groupids = n;
        else if (arParams[n].indexOf('ogroupids=') == 0)
          ogroupids = n;
      }
      if (nsact > -1 && groupids > -1 && ogroupids > -1) {
        arParams[nsact] = 'nsact=modify';
               
        var allElements=objSecDrop.getElementsByTagName('*');
        var iLen=allElements.length;
        for (var n = 0; n < iLen; n++) {
          var sxGroupId = allElements[n].value;     //objSecDrop.all[n].value;
          if (sxGroupId) {
            //if (objSecDrop.all[n].checked == true) {
            if (allElements[n].checked == true) {
              if (newgroups.length)
                sxGroupId = '|' + sxGroupId;
            
              newgroups += sxGroupId;
            }
          }
        }
        var arOld = arParams[ogroupids].split('=')[1].split('|');
        var arNew = newgroups.split('|');
        
        arOld.sort();
        arNew.sort();
        
        arParams[groupids] = 'groupids=' + newgroups;
		
        if (arOld.join('|') != arNew.join('|')) {
          //SubmitByParams(arParams.join('&'), true);
          SubmitByParams(arParams.join('&'), false);
          if(sxHttpReqData.length!=0)
		     window.eval(sxHttpReqData);
        }

        arParams[ogroupids] = 'ogroupids=' + newgroups;
        elemMultiSelectFormId.innerHTML = arParams.join('&amp;');
        elemMultiSelectFormId.title = (newgroups.length) ? '1' : '0';
      }
      elemMultiSelectFormId = null;
    }
    objSecDrop.innerHTML = '';
    sxExpandedElem = null;
  }
}

function DoSecDropDown3(sxDivName, iBarType, sxColors, sxTitle, sxItems,iItemsWidth,sxSid,sxUDoc){
  if (sxExpandedElem != sxDivName){
    doHideDropDown2();
  }
  window.clearTimeout(hideTimer);
  hideTimer = null;
  
  sxExpandedElem = sxDivName;
  sxHotElem = null;
  
  if(sxSid==undefined||sxSid==null)
	sxSid='';
  if(sxUDoc==undefined||sxUDoc==null)
	sxUDoc='';
  if(iItemsWidth==undefined||iItemsWidth==null)
	iItemsWidth=4;
  //if(iItemsWidth<4)
	//iItemsWidth=4;
	
  
  var colors = sxColors.split('|');
  var items = sxItems.split('|');

  if (objSecDrop == null)
    objSecDrop = document.getElementById('secdrop');

  var str;
  
  objSecDrop.style.filter = 'progid:DXImageTransform.Microsoft.Glow(color=' + colors[0] + ',strength=2)';
  
  str =  '<table cellspacing=0 cellpadding=0 bgcolor=#ffffff><tr><td valign=top align=left>';
  str += '<table cellspacing=0 cellpadding=3><tr>';
  str += '<td style="border-left-color: #000000; border-top-color: #000000; border-bottom: #000000 1px solid; border-right-color: #000000" valign=top align=left bgcolor=' + colors[1] + ' colspan=';
  str += (iItemsWidth-1);
  str += '>';
  str += '<font size=-1>' + sxTitle + '</font></td></tr>';
  
  var n;
  var iCount=0;
  for (n = 0; n < items.length; n += iItemsWidth){
    if(items[n].length==0 && items.length < n+iItemsWidth)
       break;
    str += '<tr'
    if ((iCount % 2) == 1) str += ' bgcolor=' + colors[2];
    str += '><td style="border-bottom: 1px solid" valign=top align=left width=30>';
    str += '<a ' + items[n] + '><img align=absmiddle border=0 hspace=3 ' + items[n+1] + '></A></TD>';
    str += '<td style="border-bottom: 1px solid" valign=top nowrap align=left width=100%>';
    str += '<font size=-1><a ' + items[n] + '>' + items[n+2] + '</a></font></td>';
    if(iItemsWidth>=4){
		//User defined far right col
		str += '<td style="border-bottom: 1px solid" valign=top nowrap align=right>&nbsp;';		
		str += items[n+3];		
		str +='</td>';
    }
    str += '</tr>';
    iCount++;
  }
  str += '</table>';
  str += '</td></tr></table>';

  objSecDrop.innerHTML = str;
  
  
  if(iItemsWidth>=4&&sxSid!=''&&sxUDoc!=''){
		EditMenuExtGetStatus(sxSid,sxUDoc);  
  }  
  
  DoSecDropDown(sxDivName, iBarType, false);
}

function DoSecDropDown3Out(sxDivName, iBarType){
  hideTimer = window.setTimeout('doHideDropDown2();', msDelayOff);
}


function DoSecDropDownAnnotGroups(sxDivName, sxColors, sxFormId){
  var objImgDrop=document.getElementById(sxDivName+'_ImgMore');		
  //if(objImgDrop.checked==false)
  if(objImgDrop==null)
     return;

  if(elmGroupList == null)
    elmGroupList=document.getElementById('GroupList');
  else if(elmGroupList.id!='GroupList')
	elmGroupList=document.getElementById('GroupList');
    
  if(elmFormGroupList == null)
    elmFormGroupList=document.getElementById('FGroupList');
  if(elmGroupListBoxes==null)  
    elmGroupListBoxes=document.getElementsByName('gidcheck');
  

  var ctrlBoxes=null;
  if(elmGroupListBoxes!=null){
     ctrlBoxes=elmGroupListBoxes;     
  }

  elemPrevAnnotFormId=elemAnnotFormId;
  elemAnnotFormId=document.getElementById(sxFormId); 

  if(elemPrevAnnotFormId!=elemAnnotFormId){
     sxPrevGroupSelections=sxActualGroupSelections;
  }


  if(elemAnnotFormId!=null&&ctrlBoxes!=null){
     var sxaValues=elemAnnotFormId.sgroups.value.split(',');

     var bFoundMatch;     
     for(var v=0;v<ctrlBoxes.length;v++){
        bFoundMatch=false;
        for(i=0;i<sxaValues.length;i++){	     
           if('gid'+sxaValues[i]==ctrlBoxes[v].id){
              ctrlBoxes[v].checked=true;
              ctrlBoxes[v].defaultChecked=true;

              bFoundMatch=true;
              break;
           }
        }
        if(bFoundMatch==false){
            ctrlBoxes[v].checked=false;
            ctrlBoxes[v].defaultChecked=false;
        }
     }     
  }


  if (sxExpandedElem != sxDivName){
    doHideDropDown2();
  }
  
  window.clearTimeout(hideTimer);
  hideTimer = null;
  
  sxExpandedElem = sxDivName;
  sxHotElem = null;
  
  var colors = sxColors.split('|');
  
  if (objSecDrop == null)
    objSecDrop = document.getElementById('secdrop');


  var str;
  var i;
  
  objSecDrop.style.filter = 'progid:DXImageTransform.Microsoft.Glow(color=' + colors[0] + ',strength=2)';  
  str =  '<table cellspacing=0 cellpadding=0 bgcolor=#ffffff><tr><td valign=top align=left>';
  str += '<table cellspacing=0 cellpadding=3><tr>';
  str += '<td style="border-left-color: #000000; border-top-color: #000000; border-bottom: #000000 1px solid; border-right-color: #000000" valign=top align=left bgcolor="#FFFFFF" colspan=2>';
 
  if(elmGroupList!=null){ 
    str+=elmGroupList.innerHTML;    
  }
  else{
    str+='<b>Error:</b> the list of groups could not be found.';
  }
  str += '</td></tr></table>';
  str += '</td></tr></table>';
  
  var count = elmGroupListBoxes.length;
  for (var i=0;i<count;i++)
    str = str.replace('gidcheck>', 'gidchecktemp>');

  objSecDrop.innerHTML = str;

  if(elmGroupListBoxesDisplay==null)  
    elmGroupListBoxesDisplay=document.getElementsByName('gidchecktemp');
    
  DoSecDropDown(sxDivName, -1, false);  
}

function DoSecDropDownMultiSelect(sxDivName, sxColors, sxFormId){
  var objImgDrop=document.getElementById(sxDivName+'_ImgMore');		
  //if(objImgDrop.checked==false)
  if (objImgDrop==null)
     return;

  doHideDropDown2();
  if(elmGroupList == null)
	elmGroupList=document.getElementById('CitSelGroupList');
  else if(elmGroupList.id!='CitSelGroupList')
	elmGroupList=document.getElementById('CitSelGroupList');

  elemMultiSelectFormId=document.getElementById(sxFormId);
  if(elmGroupListBoxes==null) {
    elmGroupListBoxes = document.getElementsByName('msgidcheck');
  }
  
  var ctrlBoxes=null;
  if(elmGroupListBoxes!=null){
     ctrlBoxes=elmGroupListBoxes;     
  }  
  
  if(elemMultiSelectFormId!=null&&ctrlBoxes!=null){
     var aParams = elemMultiSelectFormId.innerHTML.split('&amp;');
     var aParm;
     var sxaValues = new Array();
     
     for (var n = 0; n < aParams.length; n++) {
       aParm = aParams[n].split('=');
       if (aParm.length == 0) continue;
       if (aParm[0] == 'ogroupids') {
         sxaValues = aParm[1].split('|');
         break;
       }
     }
     
     var bFoundMatch;     
     for(var v=0;v<ctrlBoxes.length;v++){
        bFoundMatch=false;
        for(i=0;i<sxaValues.length;i++){	     
           if('msgid'+sxaValues[i]==ctrlBoxes[v].id){
              ctrlBoxes[v].checked=true;
              ctrlBoxes[v].defaultChecked=true;

              bFoundMatch=true;
              break;
           }
        }
        if(bFoundMatch==false){
            ctrlBoxes[v].checked=false;
            ctrlBoxes[v].defaultChecked=false;
        }
     }     
  }
  
 
  if(sxExpandedElem != sxDivName){
    doHideDropDown2();
  }
  
  window.clearTimeout(hideTimer);
  hideTimer = null;
  
  sxExpandedElem = sxDivName;
  sxHotElem = null;
  
  var colors = sxColors.split('|');
  
  if (objSecDrop == null)
    objSecDrop = document.getElementById('secdrop');


  var str;
  var i;
  
  objSecDrop.style.filter = 'progid:DXImageTransform.Microsoft.Glow(color=' + colors[0] + ',strength=2)';  
  str =  '<table cellspacing=0 cellpadding=0 bgcolor=#ffffff><tr><td valign=top align=left>';
  str += '<table cellspacing=0 cellpadding=3><tr>';
  str += '<td style="border-left-color: #000000; border-top-color: #000000; border-bottom: #000000 1px solid; border-right-color: #000000" valign=top align=left bgcolor="#FFFFFF" colspan=2>';
 
  if(elmGroupList!=null){ 
    str+=elmGroupList.innerHTML;    
  }
  else{
    str+='<b>Error:</b> failed to load the selection group list.';
  }
  
  str += '</td></tr></table>';
  str += '</td></tr></table>';

  var count = elmGroupListBoxes.length;
  for (var i=0;i<count;i++)
    str = str.replace('msgidcheck>', 'msgidchecktemp>');

  objSecDrop.innerHTML = str;

  if(elmGroupListBoxesDisplay==null) {
    elmGroupListBoxesDisplay = document.getElementsByName('msgidchecktemp');
  }
  
  DoSecDropDown(sxDivName, -1, false);      
}

function DoSecDropDownAnnotOut(sxGroupListId){
  hideTimer = window.setTimeout('doHideDropDown2();', msDelayOff);
}

function DoSecDropDownMultiSelectOut(){
  hideTimer = window.setTimeout('doHideDropDown2();', msDelayOff);
}

function DoSomething(){
	//TODO: this function is junk... Delete later.
}

function DoMultiSelectAll(bCheckAll){	
	var ctrlBoxes=null;
	var ctrlBoxesDisplay=null;

	if(elmGroupListBoxes!=null){
		ctrlBoxes=elmGroupListBoxes;     
	}  	
	if (elmGroupListBoxesDisplay!= null){
		ctrlBoxesDisplay = elmGroupListBoxesDisplay;
	}
		
	if(elemMultiSelectFormId!=null&&ctrlBoxes!=null&&ctrlBoxesDisplay!=null){
		for(var v=0;v<ctrlBoxes.length;v++){
			if (ctrlBoxes[v].disabled == false) {
				ctrlBoxes[v].checked=bCheckAll;
				ctrlBoxes[v].defaultChecked=bCheckAll;
				ctrlBoxesDisplay[v].checked=bCheckAll;
				ctrlBoxesDisplay[v].defaultChecked=bCheckAll;
			}
		}
	}
	ClkMultiSelectGB(null);
}

function DoMultiSelectPrevious(sxSid){
	var ctrlBoxes=null;
	var ctrlBoxesDisplay=null;
	if(elmGroupListBoxes!=null){
		ctrlBoxes=elmGroupListBoxes;
	}
	if (elmGroupListBoxesDisplay!= null){
		ctrlBoxesDisplay=elmGroupListBoxesDisplay;
	}

	if(elemMultiSelectFormId!=null&&ctrlBoxes!=null){
		SubmitByParams('sid='+sxSid+'&nsact=getlast&srccmd=NotifSel&source=Citation&srcid=',false);
		var sxDataGroupIds=sxHttpReqData;    //SendServerReq('/cgi-exe/cpage.dll','sid='+sxSid+'&nsact=getlast&srccmd=notifsel&source=citation');
		if(sxDataGroupIds.length==0){
			DoMultiSelectAll(false);
			return;
		}
		var sxaValues=sxDataGroupIds.split('|');
		

		var bFoundMatch;     
		for(var v=0;v<ctrlBoxes.length;v++){
			bFoundMatch=false;
			for(i=0;i<sxaValues.length;i++){	     
				if('msgid'+sxaValues[i]==ctrlBoxes[v].id){
					ctrlBoxes[v].checked=true;
					ctrlBoxes[v].defaultChecked=true;
					ctrlBoxesDisplay[v].checked=true;
					ctrlBoxesDisplay[v].defaultChecked=true;
					bFoundMatch=true;
					break;
				}
			}
			if(bFoundMatch==false){
				ctrlBoxes[v].checked=false;
				ctrlBoxes[v].defaultChecked=false;
				ctrlBoxesDisplay[v].checked=false;
				ctrlBoxesDisplay[v].defaultChecked=false;
			}
		}     
	}
	ClkMultiSelectGB(null);
}


function DeleteMultiSelectChildren(){
  if (elemMultiSelectFormId) {
    var arParams = elemMultiSelectFormId.innerHTML.split('&amp;');
    
    for (var n = 0; n < arParams.length; n++) {
      if (arParams[n].indexOf('nsact=') == 0) {
        arParams[n] = 'nsact=clear';
        SubmitByParams(arParams.join('&'), false);
        break;
      }
    }
    //doHideDropDown2();    
    sxHotElem = null;
    InternalDoHideDropDown2();
    window.location.reload();
//    MultiSelectTraverse(elemMultiSelectFormId, false);
  }
}

function DoSecDropDown(sxDivName,iBarType, bHide){
	var objImgDrop=document.getElementById(sxDivName+'_ImgMore');		
	var objSection;

	var bExpanded;
	var Elem;
	var ElemDiv;
  
	var iImageX=0;
	var iImageY=0;
	var iImageWidth=0;
	var iImageHeight=0;	
	var x;
	var iter;

  if (objSecDrop == null)
    objSecDrop = document.getElementById('secdrop');

  Elem = document.getElementById(sxDivName);
  ElemDiv = objSecDrop;
  
  //debug('DoSecDropDown starting\r\n');
  if (ElemDiv == null) ElemDiv = Elem;
  
  bExpanded = bHide;
   
  objSection = Elem.offsetParent;
  iImageX=getElementX(objImgDrop);
  iImageY=getElementY(objImgDrop);
  iImageWidth=objImgDrop.offsetWidth;
  iImageHeight=objImgDrop.offsetHeight;
  
  var ww = document.body.clientWidth + document.body.scrollLeft;
  var wh = document.body.clientHeight + document.body.scrollTop;
  var pt = iImageY + iImageHeight;
  var pl = iImageX +10; //- 2;
  var pw = ElemDiv.offsetWidth;
  var ph = ElemDiv.offsetHeight;
 
  if (pt + ph > wh) pt = wh - ph;
  if (pl + pw > ww) pl = ww - pw;
  
  if(bExpanded==false){
    //debug('Dropdown showing ' + sxDivName + ' BarType ' + iBarType + '\r\n');
		  		    
    ElemDiv.style.top=pt;
    ElemDiv.style.left=pl;
    ElemDiv.style.visibility="visible";
  }
  else{
    //debug('Dropdown hiding ' + sxDivName + ' BarType ' + iBarType + '\r\n');
    ElemDiv.style.top=pt;
    ElemDiv.style.left=pl;
    ElemDiv.style.visibility="hidden";
  }	
}

function xbGetWindowWidth(windowRef)
{
  var width = 0;

  if (!windowRef)
  {
    windowRef = window;
  }
  
  if (typeof(windowRef.innerWidth) == 'number')
  {
    width = windowRef.innerWidth;
  }
  else if (windowRef.document.body && typeof(windowRef.document.body.clientWidth) == 'number')
  {
    width = windowRef.document.body.clientWidth;  
  }
    
  return width;
}

function xbGetWindowHeight(windowRef)
{
  var height = 0;
  
  if (!windowRef)
  {
    windowRef = window;
  }

  if (typeof(windowRef.innerWidth) == 'number')
  {
    height = windowRef.innerHeight;
  }
  else if (windowRef.document.body && typeof(windowRef.document.body.clientWidth) == 'number')
  {
    height = windowRef.document.body.clientHeight;    
  }
  return height;
}

function ResizeMainDiv(){	
	if(bNoScroll==false)
		return;
	var iTopHeight=48;
	
	//var bNs4=(document.layers)?true:false;
	//var bIe4=(document.all)?true:false;
	
	//var iHeight=(bNs4)?window.innerHeight:document.body.offsetHeight;

	document.getElementById('_MDiv').style.height='100%'; //Avoid netscape shrinking bar	
	var iWidth=(bIsIE)?document.body.offsetWidth-4:document.body.offsetWidth-10;
	var iHeight=(bIsIE)?document.body.offsetHeight-4-iTopHeight:document.body.offsetHeight-68-iTopHeight;		
	
	document.getElementById('_MDiv').style.height=iHeight;
	document.getElementById('_MDiv').style.width=iWidth;	
		
}

function DrawMainDiv(bScrollIt){	
	//document.write('<div id="_MDiv" style="height: 100%; width: 100%; padding: 5px; overflow: auto">');
	document.write('<span id="_MDiv"');	
	if(bScrollIt==false){	
		document.write('">');
		document.body.scroll='yes';
		document.body.style.overflow='auto';
		bNoScroll=false;		
	}
	else{
		document.write(' style="height: 100%; width: 100%; padding: 5px; overflow: auto">');
		document.body.scroll='no';
		document.body.style.overflow='hidden';
		bNoScroll=true;
	}	
	ResizeMainDiv();
}


function CPageRequest(sxUrl){
    var elem=document.getElementById('CpgTaskFrame');
    elem.contentWindow.location.replace(sxUrl);
}

var winConfirm = null;
var childItems = null;
var childMode = null;
var childUrl = null;

/* This function shows the confirm box *************************************/

function showConfirm()
{
  var windowWidth = 300;
  var windowHeight = 140;
  var locX = ( screen.width - windowWidth ) / 2;
  var locY = ( screen.height - windowHeight ) / 2;
  var windowFeatures = "width=" + windowWidth
                     + ",height=" + windowHeight
                     + ",screenX=" + locX
                     + ",screenY=" + locY
                     + ",left=" + locX
                     + ",top=" + locY;

  /* Close window first to make sure that our window has */
  /* the desired features */

  if ( ( winConfirm != null )
    && !winConfirm.closed )
  {
    winConfirm.close();
  }

  /* Open the new confirm */
  winConfirm = open("", "winConfirm", windowFeatures, true);

  var sxMode = '';
  if (childMode == 0) sxMode = 'un-';
  
  /* Write to the confirm box */
  var theHTML = '<HEAD><TITLE>Apply to Children</TITLE></HEAD>'
              + '<BODY BGCOLOR="buttonface">'
              + '<CENTER><B>'
              + 'Would you also like to ' + sxMode + 'select all sub-items of this item?'
              + '</B><FORM NAME="buttonForm">'
              + '<INPUT TYPE="button" VALUE=" YES  "'
              + ' ONCLICK="opener.buttonClicked(0);self.close();">'
              + '&nbsp;'
              + '<INPUT TYPE="button" VALUE="  NO  "'
              + ' ONCLICK="opener.buttonClicked(1);self.close();">'
//              + '&nbsp;'
//              + '<INPUT TYPE="button" VALUE="CANCEL"'
//              + ' ONCLICK="opener.buttonClicked(2);self.close();">'
              + '</FORM></BODY>';

  winConfirm.document.writeln( theHTML );
}

/* This function is called by the buttons on the confirm box ***************/

function buttonClicked(buttonChoice)
{
  if (buttonChoice == 0)
  {
    var fr = document.getElementById('CpgTaskFrame');
    var wnd = fr.contentWindow;
    
    var sxUrl = childUrl;

    sxUrl += '&ichldrn=1';
    wnd.location.replace(sxUrl);
    
    var i;
    var sx;
    //var sxCompare;
    
    //if (childMode) sxCompare = 'UChk';
    //else sxCompare = 'Chk';

    //debugger;
    var iNumChildItems=childItems.length;
    for (i = 0; i < iNumChildItems; i++)
    {
      if (childItems[i] == null) break;
      sx = childItems[i].id;
      if (sx == null) continue;
      
      if(childMode){
        if(sx.indexOf('UChk')==0){
            childItems[i].style.display='none';        
        }
        else{
            childItems[i].style.display='inline';        
        }
      }
      else{
        if(sx.indexOf('Chk')==0){
            childItems[i].style.display='none';        
        }
        else{
            childItems[i].style.display='inline';        
        }
      }
      
      /*
      if(sx.indexOf('UChk')==0){
        //Uncheck button
        if(childMode)
            childItems[i].style.display='none';
        else
            childItems[i].style.display='inline';
      }
      else{
        //Check button
        if(childMode)
            childItems[i].style.display='none';
        else
            childItems[i].style.display='inline';      
      }
      */
      
      /*
      if (sx.indexOf(sxCompare) == 0)
      {
        sx = sx.substring(sxCompare.length, sx.length);
        TDiv('UChk' + sx, 'Chk' + sx, childMode);
      }
      */
    }      
  }
}

function GetCheckChildren(sxId, bHide)
{
  var divs = document.getElementsByTagName('SPAN');
  var children = new Array(divs.length);
  var i;
  var sxChildId;
  var sxCompare;

  //if (bHide) sxCompare = 'UChk' + sxId;
  //else sxCompare = 'Chk' + sxId;

  var x = 0;
  var iLenDivs=divs.length;
  for (i = 0; i < iLenDivs; i++)
  {
    sxChildId = divs[i].id;
    if (sxChildId == null) continue;
    if ((sxChildId.indexOf('UChk'+sxId) == 0 || sxChildId.indexOf('Chk'+sxId) == 0)&&
        sxChildId != sxCompare/* &&
        divs[i].style.display != 'none'*/)
    {
      children[x++] = divs[i];
    }
    
  }
  return children;
}

function STree(sxId, bHide, sxUrl)
{
  var fr = document.getElementById('CpgTaskFrame');
  var wnd = fr.contentWindow;
  
  childUrl = sxUrl;
  
  wnd.location.replace(sxUrl);

  TDiv('UChk' + sxId, 'Chk' + sxId, bHide);

  var children = GetCheckChildren(sxId, bHide);
  
  if (children.length > 0)
  {
    if (children[0] != null) 
    {
      childItems = children;
      childMode = bHide;
      showConfirm();
    }
  }
}

function vo()
{
}

function UpdatePagingDivs(sxHtml){       
    var elem=document.getElementById('PgTop');
    if(elem!=null){
    	elem.innerHTML=sxHtml;
    }
    elem=document.getElementById('PgBottom');
    if(elem!=null){
    	elem.innerHTML=sxHtml;
    }
}

function ExpandFrItems(bExp,sSessionId,bSendRequest){
    TDiv('FrExpShow','FrExpHide',bExp);
    TDiv('FrExpShowImg','FrExpHideImg',bExp);

    //Send request to CPage
    if(bSendRequest==true){
	    var iFlag=0;
	    if(bExp==true)
	       iFlag=1;
	    CPageRequest('/cgi-exe/cpage.dll?source=cpgtask&srccmd=clickswapitem&sid='+sSessionId+'&pageid=FR&showid=&hideid=&blockid=&status='+iFlag);
    }


	var ixx;
	for(ixx=0;ixx<2;ixx++){
    var divs;
		if(ixx==0)
			divs=document.getElementsByTagName('DIV');
		else 
			divs=document.getElementsByTagName('SPAN');
    var i;
    var sxDivId;

    var iLen=divs.length;

    if(bExp==true){
        for(i=0;i<iLen;i++){

			sxDivId=divs[i].id;
			if(sxDivId==null){
				    continue;
			}
			if(sxDivId.indexOf('ShFr')==0){
				    divs[i].style.display="none";                
			}
			else if(sxDivId.indexOf('HdFr')==0){
				divs[i].style.display="inline";
			}
			else if(sxDivId.indexOf('FRB')==0){
				divs[i].style.display="block";			
			}
			else if(sxDivId.indexOf('Sh')==0){
				    divs[i].style.display="none";                
			}
			else if(sxDivId.indexOf('Hd')==0){
				divs[i].style.display="inline";
			}
			else if(sxDivId.indexOf('SUM')==0)
				divs[i].style.display="block";

        }
    }
    else if(bExp==false){
        for(i=0;i<iLen;i++){

			sxDivId=divs[i].id;
			if(sxDivId==null){
				    continue;
			}

			if(sxDivId.indexOf('ShFr')==0){
				divs[i].style.display="inline";
			}
			else if(sxDivId.indexOf('HdFr')==0){
				divs[i].style.display="none";
			}
			else if(sxDivId.indexOf('FRB')==0){
				divs[i].style.display="none";
			}
			else if(sxDivId.indexOf('Sh')==0){
				divs[i].style.display="inline";
			}
			else if(sxDivId.indexOf('Hd')==0){
				divs[i].style.display="none";
			}
			else if(sxDivId.indexOf('SUM')==0)
				divs[i].style.display="none";
        }
    }
    }

}

function ApplyDbEnglish(sxUrl,sxId){
    var elem=document.getElementById(sxId);
    if(elem!=null){
        var sxEnglish=elem.value;
	sxEnglish=sxEnglish.replace(/,+/g, '&sbquo;');
	var sxGotoUrl='http://www.cyberregs.com';
	sxGotoUrl+=sxUrl;
	sxGotoUrl+=escape(sxEnglish);
        CPageRequest(sxGotoUrl);
    }
}

function DoFrLoadedAutoExpand(sxSessionId,sxPageId){
	CPageRequest('/cgi-exe/cpage.dll?source=cpgtask&srccmd=clickswapfill&sid='+sxSessionId+'&pageid='+sxPageId);
}

function loadImage(src){
	var img = new Image();
	img.src = src;
	return img;
}


function ClkAnnotShare(sxGroupListId,sxThisId,sxColors){
	var sxImgMore=sxGroupListId+'_ImgMore';
	var bChecked=false;
	var ctrlCheckBox=document.getElementById(sxImgMore);
	if(ctrlCheckBox!=null){
		if(ctrlCheckBox.checked==true){
			DoSecDropDownAnnotGroups(sxGroupListId,sxColors,'EFrm'+sxThisId);
			ctrlCheckBox.checked=false;
			ctrlCheckBox.defaultChecked=false;

		}
		else{
			DoSecDropDownAnnotOut(sxGroupListId);
			var eForm=document.getElementById('EFrm'+sxThisId);
			if(eForm!=null){
				eForm.sgroups.value='';
			}
			
		}
		AnnotChanged(sxThisId);
		ToggleAnnot(sxThisId,false);
	}
}

function ClkAnnotGB(sxCheckBoxId){	
	if(elemAnnotFormId==null)
		return;
	var ctrlCheckBox=document.getElementById(sxCheckBoxId);
	if(ctrlCheckBox==null)
		return;

	for(var i=0;i<elmGroupListBoxes.length;i++){
		if (elmGroupListBoxes[i].id==sxCheckBoxId){
			elmGroupListBoxes[i].checked = ctrlCheckBox.checked;
			break;
		}
	}

	sxPrevGroupSelections=elemAnnotFormId.sgroups.value;


	if(ctrlCheckBox.checked==true){
		if(elemAnnotFormId.sgroups.value.length>0)
			elemAnnotFormId.sgroups.value+=',';
		elemAnnotFormId.sgroups.value+=sxCheckBoxId.substring(3);
	}
	else{
		var sxId=sxCheckBoxId.substring(3);
		var sxaList=elemAnnotFormId.sgroups.value.split(',');
		elemAnnotFormId.sgroups.value='';
		var iLen=sxaList.length;
		for(var i=0;i<iLen;i++){
			if(sxaList[i]==sxId){
				continue;
			}		
			if(elemAnnotFormId.sgroups.value.length!=0)
				elemAnnotFormId.sgroups.value+=',';
			elemAnnotFormId.sgroups.value+=sxaList[i];
		}
	}

	sxActualGroupSelections=elemAnnotFormId.sgroups.value;

	var sxImgMore='gs'+elemAnnotFormId.id.substring(4)+'_ImgMore';
	var ctrlCheckBox2=document.getElementById(sxImgMore);
	if(ctrlCheckBox2!=null){
		if(sxActualGroupSelections.length==0){
			ctrlCheckBox2.checked=false;
			ctrlCheckBox2.defaultChecked=false;
		}
		else{
			ctrlCheckBox2.checked=true;
			ctrlCheckBox2.defaultChecked=true;
		}
	}


	AnnotChanged(elemAnnotFormId.id.substring(4));
	ToggleAnnot(elemAnnotFormId.id.substring(4),false);
}

function ClkMultiSelectGB(sxCheckBoxId){
	if(elemMultiSelectFormId==null)
		return;

	var iCount;
	if (elmGroupListBoxes!=null&&elmGroupListBoxesDisplay!=null){
		iCount = elmGroupListBoxesDisplay.length;
		for (i = 0; i < iCount; i++)
			elmGroupListBoxes[i].checked = elmGroupListBoxesDisplay[i].checked;
	}
	var ctrlBoxes=null;
	if (elmGroupListBoxes!=null){
		ctrlBoxes=elmGroupListBoxes;     
	}
	var checked = 0;
	iCount = ctrlBoxes.length;
	if(elemMultiSelectFormId!=null&&ctrlBoxes!=null){
		for(var v=0;v<iCount;v++){
		    //thischecked = document.getElementById(ctrlBoxes[v].id).checked;
		    thischecked = ctrlBoxes[v].checked;
            if (thischecked) {
  		        checked ++;
  	        }
	    }
	}

	var img = document.getElementById(sxExpandedElem + '_ImgMore');
	if (img) {
		var newsrc = img.src.replace(/p.gif/g, '.gif');
		if (checked == 0) {
			if (newsrc.indexOf('UnChk') == -1)
				img.src = newsrc.replace(/Chk/g, 'UnChk'); // = '/images/NavBox_MsUnChk.gif';
			else
				img.src = newsrc;
		}
		else if (checked == iCount) {
			img.src = newsrc.replace(/UnChk/g, 'Chk'); // '/images/NavBox_MsChk.gif';
		}
		else {
			newsrc = newsrc.replace(/UnChk/g, 'Chk');
			img.src = newsrc.replace(/Chk/g, 'Chkp');      
		}
	}   
}


function MultiSelectTraverse(elemFrom, checked) {

  var n;
  var ar;
  var id = elemFrom.id + '_';
  var found = false;
  
  ar = document.body.getElementsByTagName('span');
  for (n = 0; n < ar.length; n++)
  {
    if (found == false) {
      if (ar[n].id != elemFrom.id) continue;
      
      found = true;
      continue;
    }
    if (ar[n].id.indexOf(id) == 0) {
      var arid = ar[n].id.split('_');
      var arid = arid[arid.length - 1];
      var arid = document.getElementById('msnc' + arid + '_ImgMore');
      if (arid) {
        var newsrc = arid.src.replace(/p.gif/g, '.gif');
        if (checked)
          arid.src = newsrc.replace(/UnChk/g, 'Chk');
        else if (newsrc.indexOf('UnChk') == -1) {
          arid.src = newsrc.replace(/Chk/g, 'UnChk');
          arid = ar[n].innerHTML;
          arid = arid.split('&amp;');
          for (var x = 0; x < arid.length; x++) {
            if (arid[x].indexOf('ogroupids=') == 0)
              arid[x] = 'ogroupids=';
            else if (arid[x].indexOf('groupids') == 0)
              arid[x] = 'groupids=';
          }
          ar[n].innerHTML = arid.join('&amp;');
        }
      }        
    }
    else if (ar[n].id.indexOf('EFMS_') == 0)
      break;    
  }
}

function ClkUsePrevAnnotGroupSels(){
  var ctrlBoxes=null;
  var ctrlBoxesDisplay=null;
  if(elmGroupListBoxes!=null){
     ctrlBoxes=elmGroupListBoxes;     
  }
  if(elmGroupListBoxesDisplay!=null){
     ctrlBoxesDisplay=elmGroupListBoxesDisplay;
  }

  if(elemAnnotFormId!=null&&ctrlBoxes!=null&&ctrlBoxesDisplay!=null){
     var sxaValues=sxPrevGroupSelections.split(',');

     var bFoundMatch;     
     for(var v=0;v<ctrlBoxes.length;v++){
        bFoundMatch=false;
        for(i=0;i<sxaValues.length;i++){	     
           if('gid'+sxaValues[i]==ctrlBoxes[v].id){
              ctrlBoxes[v].checked=true;
              ctrlBoxes[v].defaultChecked=true;
              ctrlBoxesDisplay[v].checked=true;
              ctrlBoxesDisplay[v].defaultChecked=true;
              bFoundMatch=true;
              break;
           }
        }
        if(bFoundMatch==false){
            ctrlBoxes[v].checked=false;
            ctrlBoxes[v].defaultChecked=false;
            ctrlBoxesDisplay[v].checked=false;
            ctrlBoxesDisplay[v].defaultChecked=false;
        }
     }     
     elemAnnotFormId.sgroups.value=sxPrevGroupSelections;     
     sxActualGroupSelections=elemAnnotFormId.sgroups.value;	 
	 var sxImgMore='gs'+elemAnnotFormId.id.substring(4)+'_ImgMore';
	var ctrlCheckBox2=document.getElementById(sxImgMore);
	if(ctrlCheckBox2!=null){
		if(sxActualGroupSelections.length==0){
			ctrlCheckBox2.checked=false;
			ctrlCheckBox2.defaultChecked=false;
		}
		else{
			ctrlCheckBox2.checked=true;
			ctrlCheckBox2.defaultChecked=true;
		}
	}    
     AnnotChanged(elemAnnotFormId.id.substring(4));
  }

}

function DeleteAnnot(sxThisId){
	if(ftb){
		//ftb.hide();
		window.setTimeout('ftb.hide();',100);
	}
	var elem2=document.getElementById('EdtSpn'+sxThisId);
	elem2.style.display='none';

	var form=document.forms['EFrm'+sxThisId];
	
	form.srccmd.value='annotdel';
	form.svd.value='y';
	form.anntext.value='';

	StopAnnotControlLimitCheck();

        window.setTimeout(function() {

	//form.submit();
	SubmitFormByElem(form);	
	//if(sxHttpReqData.length!=0)
	//	window.eval(sxHttpReqData);
        elem2.innerHTML='';
	elem2.id='';

        }, 50);
}

function FixAnnotationHtml(){       
	var sxHtml=ftb.GetHtml();	
	var iBeg;
	var iEnd;
	var iIndex=0;
	var bChanged=false;
	var sxNew='';
	var sxTag='';
	var sxNewTag='';
	for(;;){
	    iBeg=sxHtml.indexOf('<',iIndex);
	    if(iBeg==-1){
	        if(bChanged==true)
	            sxNew+=sxHtml.substring(iIndex);	        
	        break;	    
	    }
	    
	    iEnd=sxHtml.indexOf('>',iBeg+1);
	    if(iEnd==-1){
	        if(bChanged==true)
	            sxNew+=sxHtml.substring(iIndex);	        
	        break;	    
	    }
	    iEnd++;
	    sxNew+=sxHtml.substring(iIndex,iBeg);
	    
	    
	    sxTag=sxHtml.substring(iBeg,iEnd);
	  	    
	  	//Tokenize two cases with " or ' types
	    sxNewTag=sxTag.replace(/id="/g,'@!@!@');
	    sxNewTag=sxNewTag.replace(/id='/g,'@$@$@');
	    
	    //Convert back to normal id=
	    sxNewTag=sxNewTag.replace(/@!@!@zyx/g,'@!@!@');
	    sxNewTag=sxNewTag.replace(/@$@$@zyx/g,'@$@$@');	    
	    sxNewTag=sxNewTag.replace(/id=zyx/g,'id=');
	    
	    //Convert to id=zyx
	    sxNewTag=sxNewTag.replace(/id=/g,'id=zyx');	    
	    sxNewTag=sxNewTag.replace(/@!@!@/g,'id="zyx');
	    sxNewTag=sxNewTag.replace(/@$@$@/g,'id=\'zyx');

            //Handle SID issue
	    sxNewTag=sxNewTag.replace(/sid=zyx/g,'sid=');	    

	    
	    if(sxNewTag!=sxTag){
	        bChanged=true;
	    }
	    sxNew+=sxNewTag;
	    
	    iIndex=iEnd;
	}
	
	if(bChanged==true){	    
	    ftb.SetHtml(sxNew);
	}	
}

function SaveAnnot(sxThisId,sxSvd){
	if (DoAnnotControlDataSave == false)
		return false;

	FixAnnotationHtml();	

	if(ftb&&sxSvd!='noprompt'){
		ftb.hide();
		// window.setTimeout('ftb.hide();',100);
	}

	var e=document.getElementById('EFrm'+sxThisId);
	if(e==null)
		return;
	e.anntext.value=document.getElementById('EdtDv'+sxThisId).innerHTML;
	e.srccmd.value='annotsave';
	e.svd.value=sxSvd;
	//e.submit();

	SetHiddenStatusControls(e);
	if(sxSvd!='noprompt')
		StopAnnotControlLimitCheck();
	AnnotControlsHeightChange();

	SubmitFormByElem(e);	
	if(sxHttpReqData.length!=0)
		window.eval(sxHttpReqData);

	if(sxSvd=='noprompt'){
		e.svd.value='';
	}

}

function ToggleAnnot(sxThisId,bShowEdit){
	if (DoAnnotControlDataSave == false){
		DoAnnotControlDataSave = true;
		return false;
	}

	var eSave=document.getElementById('Tgls'+sxThisId);
	var eEdit=document.getElementById('Tgle'+sxThisId);
	var eForm=document.getElementById('EFrm'+sxThisId);
	if(eSave==null||eEdit==null)
		return;

	if(bShowEdit==true){
		if (eForm!=null){
			var iNum=eForm.elements.length;
			for(i=0;i<iNum;i++){
				if(eForm.elements[i].id!=''){
					if(eForm.elements[i].id.substr(0, 10) == 'AnnotCntrl'){
						eForm.elements[i].disabled=true;
					}
				}
			}
		}
		eSave.style.display='none';
		eEdit.style.display='';
	}
	else{
		if (eForm!=null){
			var iNum=eForm.elements.length;
			for(i=0;i<iNum;i++){
				if(eForm.elements[i].id!=''){
					if(eForm.elements[i].id.substr(0, 10) == 'AnnotCntrl'){
						eForm.elements[i].disabled=false;
					}
				}
			}
		}
		eSave.style.display='';
		eEdit.style.display='none';
	}
}

function AddAnnot(sxId,sxSid,sxUid,sxCompanyId,sxUDoc,sxUSec,sxUPar,bIsFootnote,sxCreatedOnDate,iNum,sxAnnotater,bCanShare,sxColors,sxClsPrefix,sxStyle,sxCntrlsTop,sxCntrlsMiddle,sxCntrlsBottom){
	var elem=document.getElementById('EdtSpn'+sxId);
	if(elem==null)
		return;
	if (ftb)
		ftb.hide();

	while (sxCntrlsTop.indexOf(";dbquot;") != -1)
		sxCntrlsTop = sxCntrlsTop.replace(";dbquot;", "\"");
	while (sxCntrlsMiddle.indexOf(";dbquot;") != -1)
		sxCntrlsMiddle = sxCntrlsMiddle.replace(";dbquot;", "\"");
	while (sxCntrlsBottom.indexOf(";dbquot;") != -1)
		sxCntrlsBottom = sxCntrlsBottom.replace(";dbquot;", "\"");
	while (sxCntrlsTop.indexOf(";squot;") != -1)
		sxCntrlsTop = sxCntrlsTop.replace(";squot;", "'");
	while (sxCntrlsMiddle.indexOf(";squot;") != -1)
		sxCntrlsMiddle = sxCntrlsMiddle.replace(";squot;", "'");
	while (sxCntrlsBottom.indexOf(";squot;") != -1)
		sxCntrlsBottom = sxCntrlsBottom.replace(";squot;", "'");

	sxColors.replace('~','|');
	var sx='';
	var sxPrefix;

	if(bIsIE==true)
		sxPrefix='id=EdtSpn'+sxId+'_'+sxUid+'_';
	else
		sxPrefix='id="EdtSpn'+sxId+'_'+sxUid+'_';
	
	var iLastIndex=-1;
	var i;
	var iBeg=-999;
	var iLargest=0;

	while(true){
		if(iBeg==-999)
			i=elem.innerHTML.lastIndexOf(sxPrefix);
		else
			i=elem.innerHTML.lastIndexOf(sxPrefix,iBeg);
		if(i!=-1){		
			var iEnd;
			if(bIsIE==true)
				iEnd=elem.innerHTML.indexOf('>',i+sxPrefix.length);
			else
				iEnd=elem.innerHTML.indexOf('"',i+sxPrefix.length);
			if(iEnd!=-1){
				var sxIndex=elem.innerHTML.substring(i+sxPrefix.length,iEnd);				
				iLastIndex=parseInt(sxIndex);			
				if(iLastIndex>iLargest)
					iLargest=iLastIndex;
			}
		}
		else{
			break;
		}
		iBeg=i-1;
		if(iBeg<0)
			break;
	}
	iLastIndex=iLargest;
	iLastIndex++;


	var sxSetDiv = "";
	var iDivIndex;
	var sxDiv = "AnnotControlsDiv" + sxId;

	iDivIndex = sxCntrlsTop.indexOf(sxDiv);
	if (iDivIndex != -1)
	{
		sxCntrlsTop = sxCntrlsTop.replace("id='" + sxDiv, "id='" + sxDiv + "_" + iLastIndex);
		sxCntrlsTop = sxCntrlsTop.replace("name='" + sxDiv, "name='" + sxDiv + "_" + iLastIndex);
		sxSetDiv = sxDiv + "_" + iLastIndex;
	}

	iDivIndex = sxCntrlsMiddle.indexOf(sxDiv);
	if ((iDivIndex != -1) && (sxSetDiv == ""))
	{
		sxCntrlsMiddle = sxCntrlsMiddle.replace("id='" + sxDiv, "id='" + sxDiv + "_" + iLastIndex);
		sxCntrlsMiddle = sxCntrlsMiddle.replace("name='" + sxDiv, "name='" + sxDiv + "_" + iLastIndex);
		sxSetDiv = sxDiv + "_" + iLastIndex;
	}

	iDivIndex = sxCntrlsBottom.indexOf(sxDiv);
	if ((iDivIndex != -1) && (sxSetDiv == ""))
	{
		sxCntrlsBottom = sxCntrlsBottom.replace("id='" + sxDiv, "id='" + sxDiv + "_" + iLastIndex);
		sxCntrlsBottom = sxCntrlsBottom.replace("name='" + sxDiv, "name='" + sxDiv + "_" + iLastIndex);
		sxSetDiv = sxDiv + "_" + iLastIndex;
	}

	if(sxUSec.length==0&&sxUPar.length==0){
		if(elem.innerHTML.lastIndexOf('<BR><BR>')+8==elem.innerHTML.length){			
			elem.innerHTML=elem.innerHTML.substring(0,elem.innerHTML.length-8);						
		}
	}

	var sxThisId=sxId;
	sxThisId+='_';
	sxThisId+=sxUid;
	sxThisId+='_';
	sxThisId+=''+iLastIndex;
	sx+='<span id="EdtSpn'+sxThisId+'" style="display:">';

	
	if(sxUPar.length!=0&&(iNum+iLastIndex)==0){
		sx+='<font size="-1">(Editor\'s note: paragraph text follows the annotation)</font>';
	}


	var sxGenId='TBD';
	
	sx+='<form name="EFrm'+sxThisId+'" id="EFrm'+sxThisId+'" method="Post" action="/cgi-exe/cpage.dll" target="CpgTaskFrame" style="display:inline;">';
	sx+='<input type="hidden" name="source" value="cpgtask">';
	sx+='<input type="hidden" name="srccmd" value="">';
	sx+='<input type="hidden" name="sid" value="'+sxSid+'">';
	sx+='<input type="hidden" name="uid" value="'+sxUid+'">';
	sx+='<input type="hidden" name="uiddelby" value="'+sxUid+'">';
	sx+='<input type="hidden" name="cid" value="'+sxCompanyId+'">';
	sx+='<input type="hidden" name="udoc" value="'+sxUDoc+'">';
	sx+='<input type="hidden" name="usec" value="'+sxUSec+'">';
	sx+='<input type="hidden" name="upar" value="'+sxUPar+'">';
	sx+='<input type="hidden" name="adidx" value="'+iLastIndex+'">';
	sx+='<input type="hidden" name="genid" value="'+sxThisId+'">';
	sx+='<input type="hidden" name="PrimaryStatus" value="-1" />';
	sx+='<input type="hidden" name="SecondaryStatus" value="-1" />';

	if(bIsFootnote==true)
		sx+='<input type="hidden" name="afootn" value="true">';
	else
		sx+='<input type="hidden" name="afootn" value="false">';	
	sx+='<input type="hidden" name="sgroups" value="">';
	sx+='<input type="hidden" name="svd" value="">';
        sx+='<input type="hidden" name="anntext" value="">';

	sx+='<table cellpadding="0" cellspacing="0" style="padding-top:2px;">';
	sx+=sxCntrlsTop;
	sx+='<tr><td>&nbsp;</td><td width="100%" align="left" valign="top">';

	sx+='<div id="EdtDv'+sxThisId+'" class="'+sxClsPrefix+'AnnotBox"></div>';

	sx+='</td></tr>';
	sx+=sxCntrlsMiddle;
	sx+='<tr><td>&nbsp;</td><td width="100%" align="left" valign="middle">';
	
	sx+='<table width="100%" height="10" cellpadding=0 cellspacing=0><tr><td class="AnCtrl1" align="left" valign="middle" nowrap>';
	sx+='<span id="Tgls'+sxThisId+'" style="display:">';
	sx+='<a href="javascript:vo();" onclick="CheckRequiredControlData();SaveAnnot(\''+sxThisId+'\',\'y\');ToggleAnnot(\''+sxThisId+'\',true);"><img src="/images/IcoDisk.gif" align="absmiddle" width="13" height="13" border="0" />&nbsp;Save</a>';
	sx+='</span>';
	sx+='<span id="Tgle'+sxThisId+'" style="display:none">';
	sx+='<a href="javascript:vo();" onclick="OnEdit(document.getElementById(\'EdtDv'+sxThisId+'\'),\''+sxThisId+'\',\''+sxStyle+'\');ToggleAnnot(\''+sxThisId+'\',false);StartAnnotControlLimitCheck(\''+sxSetDiv+'\');"><img src="/images/IcoEdit.gif" align="absmiddle" width="13" height="13" border="0" />&nbsp;Edit</a>';
	sx+='</span>';

	sx+='&nbsp;&nbsp;&nbsp;&nbsp;';
	sx+='<a href="javascript:vo();" onclick="DeleteAnnot(\''+sxThisId+'\');"><img src="/images/IcoDel.gif" align="absmiddle" width=13 height=13 border=0>&nbsp;Delete</a>';
	sx+='</td><td class="AnCtrl2" align="left" valign="middle" nowrap>&nbsp;</td>';	

	sx+='<td class="AnCtrl3" align="left" valign="middle" nowrap>';

	var sxGroupListId='gs'+sxThisId;

	if(bCanShare==true){
		sx+='<a href="javascript:vo();" name="ABC" id="'+sxGroupListId+'" onmouseout="DoSecDropDownAnnotOut(this.id);"  onmouseover="';
		sx+='DoSecDropDownAnnotGroups(this.id,\''+sxColors+'\',\'EFrm'+sxThisId+'\');';
		sx+='">';
	}
	sx+='<input type="checkbox" name="shared" value="1" id="'+sxGroupListId+'_ImgMore"';
	if(bCanShare==false)
		sx+=' DISABLED';
	sx+=' style="vertical-align:middle;" onclick="ClkAnnotShare(\''+sxGroupListId+'\',\''+sxThisId+'\',\''+sxColors+'\');">&nbsp;';	
       	sx+='<label for="'+sxGroupListId+'_ImgMore">Share</label>';
	if(bCanShare==true)
		sx+='</a>';
	sx+='<span id="spn'+sxGroupListId+'" style="display:"></span>';
	sx+='</td>';
	
	sx+='<td class="AnCtrl4" align="left" valign="middle" nowrap>&nbsp;&nbsp;<span id="SMid'+sxThisId+'"></span></td>';		
	sx+='<td class="AnCtrl5" align="right" valign="middle" width="100%"><i><b>Annotated by: </b>'+sxAnnotater+' on '+sxCreatedOnDate+' <b>(#</b><span id="gid'+sxThisId+'">'+sxGenId+'</span><b>)</b></i></td></tr></table>';
	sx+='</td></tr>';
	sx+=sxCntrlsBottom;
	sx+='</table>';
	sx+='</form>';
	sx+='</span>';
        
	if(sxUSec.length==0&&sxUPar.length==0){ 
		sx+='<BR><BR>';
	}

	elem.innerHTML+=sx;
	elem.style.display='inline';
	OnEdit(document.getElementById('EdtDv'+sxThisId),sxThisId,sxStyle);	
	StartAnnotControlLimitCheck(sxSetDiv);

	if(objSecDrop==null)
		objSecDrop=document.getElementById('secdrop');

	objSecDrop.style.visibility = 'hidden';
	objSecDrop.innerHTML = '';
	SaveAnnot(sxThisId,'noprompt');
}

function AnnotChanged(sxId){
	var e=document.getElementById('EFrm'+sxId);
	if(e==null)
		return;
	e.svd.value='';
	e=document.getElementById('SMid'+sxId);
	if(e!=null){
		if(e.innerHTML.length!=0){
			e.innerHTML='';
		}
	}


	sxCurAnnotChangeFormId='EFrm'+sxId;
	if(sxCurAnnotChangeFormId!=sxPrevAnnotChangeFormId){
		//Changed forms...
		e=document.getElementById(sxPrevAnnotChangeFormId);
		if(e!=null){
			if(e.svd.value!='y'){
				e.srccmd.value='annotsave';
				e.svd.value='y'; //'noprompt';
				e.anntext.value=document.getElementById('EdtDv'+sxPrevAnnotChangeFormId.substring(4)).innerHTML;
				//e.submit();
				SubmitFormByElem(e);	
				if(sxHttpReqData.length!=0)
					window.eval(sxHttpReqData);
				e.svd.value='y';
				ToggleAnnot(sxPrevAnnotChangeFormId.substring(4),true);
			}
		}		
		sxPrevAnnotChangeFormId=sxCurAnnotChangeFormId;
	}
}

function XUnload(){
	var i;
	var iCount=0;	
	var eaSaved=document.getElementsByName('svd');
	for(i=0;i<eaSaved.length;i++){
		if(eaSaved[i].value.length==0)
			iCount++;
	}
	if(iCount!=0){
		if(ftb)
			ftb.hide();
		
		for(i=0;i<eaSaved.length;i++){
			if(eaSaved[i].value.length==0){
				eaSaved[i].parentNode.srccmd.value='annotsave';
				eaSaved[i].parentNode.svd.value='y'; //'noprompt';
				eaSaved[i].parentNode.anntext.value=document.getElementById('EdtDv'+eaSaved[i].parentNode.id.substring(4)).innerHTML;
				SubmitFormByElem(eaSaved[i].parentNode);
				eaSaved[i].parentNode.svd.value='y';
			}
		}
	}
	
	UnloadEditMenu();
}

function RefreshGroups(iCmd,sxUserName,sxCompanyId,sxSessionId,sxLinkColor,sxLightBgLinkColor,sxLightLinkColor,iType){
	if(iCmd==0){
		CPageRequest('/cgi-exe/cpage.dll?source=cpgtask&srccmd=refreshgroups&uid='+sxUserName+'&cid='+sxCompanyId+'&sid='+sxSessionId+'&c1='+sxLinkColor+'&c2='+sxLightBgLinkColor+'&c3='+sxLightLinkColor+'&curid=&typ='+iType);
	}
	else{
		if(elemAnnotFormId==null)
			return;
		//Else it looks like EFrm+id
		var sxId=elemAnnotFormId.id.substring(4);
		var sxColors;
		sxColors='#'+sxLinkColor+'|#'+sxLightBgLinkColor+'|#'+sxLightLinkColor;
		DoSecDropDownAnnotGroups('gs'+sxId,sxColors,'EFrm'+sxId);
	}
}

function Jump(id)
{
  var elem = document.getElementById(id);
  if (elem)
    elem.scrollIntoView(false);
    
  return false;
}

function JumpEx(thisElem, nextElemName, nextElemBorder)
{
  SetItemBorder(nextElemBorder);

  var elem = document.getElementById(nextElemName);
  if (elem == null) return false;
  
  var x = getElementX(elem) + elem.offsetWidth;
  var y = getElementY(elem);
  
  y -= getElementY(thisElem);
  
  window.scrollBy(-65535, y);
     
  if (document.body.offsetWidth < x)
    window.scrollBy(x - document.body.offsetWidth + 120, 0);
    
  return false;
}

var prevHighlightItem;
function SetItemBorder(nextHighlight)
{
  var nextObject;
  if (prevHighlightItem != undefined)
    document.getElementById(prevHighlightItem).style.border = "2px solid transparent";
  nextObject = document.getElementById(nextHighlight);
  if (nextObject != null){
	nextObject.style.border = "2px solid #000000";
    prevHighlightItem = nextHighlight;
  }
}

function getElementX(elem)
{
  var x = elem.offsetLeft;
  
  while (1)
  {
    elem = elem.offsetParent;
    if (!elem) break;
    x += elem.offsetLeft;
  }
  
  return x;
} 

function getElementY(elem)
{
  var y = elem.offsetTop;
  
  while (1)
  {
    elem = elem.offsetParent;
    if (!elem) break;
    y += elem.offsetTop;
  }
  
  return y;
}


function SubmitForm(sxFormId){
	var eForm=document.getElementById(sxFormId);
	if(eForm==null)
		return false;

	return SubmitFormByElem(eForm);
}

function SubmitFormByElem(eForm){
	if(eForm==null)
		return false;	
		
	var sxParams='';
	var iNum=eForm.elements.length;
	var sxAnnotCntrl='';
	var sxTagName;
	var sxType;
	
	for(i=0;i<iNum;i++){
		if(eForm.elements[i].name!=''){
			if(eForm.elements[i].name.substr(0, 10) == 'AnnotCntrl'){
				sxTagName = eForm.elements[i].tagName.toLowerCase();
				if (sxTagName == 'input'){
					sxType = eForm.elements[i].type.toLowerCase();
					if ((sxType == 'radio') || (sxType == 'checkbox'))
						sxAnnotCntrl += eForm.elements[i].id + '=' + eForm.elements[i].checked + '^|!';
					else if (sxType == 'text'){
						sxAnnotCntrl += eForm.elements[i].id + '=' + escape(eForm.elements[i].value) + '^|!';
					}
				}
				else if (sxTagName == 'select'){
					if(bIsIE==true)
						sxAnnotCntrl += eForm.elements[i].id + '=' + eForm.elements[i].options(eForm.elements[i].selectedIndex).text + '^|!';
					else
						sxAnnotCntrl += eForm.elements[i].id + '=' + eForm.elements[i].options.item(eForm.elements[i].selectedIndex).text + '^|!';
				}
				else if (sxTagName == 'textarea'){
					sxAnnotCntrl += eForm.elements[i].id + '=' + escape(eForm.elements[i].value) + '^|!';
				}
			}
			else{
				if(sxParams.length>0)
					sxParams+='&';
				sxParams+=eForm.elements[i].name+'='+escape(eForm.elements[i].value);
			}
		}
	}
	if (sxAnnotCntrl.length>0)
		sxParams+='&AnnotCntrls='+sxAnnotCntrl;

	var sxBuffer='';
	var iIndex=0;
	var iBeg;
	var iLen=sxParams.length;
	var sxUCode;
	for(;;){
		iBeg=sxParams.indexOf('%u',iIndex);
		if(iBeg==-1){
			sxBuffer+=sxParams.substring(iIndex);
			break;	
		}

		sxBuffer+=sxParams.substring(iIndex,iBeg);

		if(iBeg+5<iLen){
			sxBuffer+='%26%23x';	
			sxBuffer+=sxParams.substring(iBeg+2,iBeg+6);
			sxBuffer+='%3B';								
		}	

		iIndex=iBeg+6;  
	}
    
	return SubmitByParams(sxBuffer, false);
}

function SubmitByParams(sxParams, async)
{
  if (async != true) async = false;
	var http=null;
	try{
		if(window.XMLHttpRequest)
			http=new XMLHttpRequest();
		else if (window.ActiveXObject)
			http=new ActiveXObject('Microsoft.XMLHTTP');
		else
			return false;
	}
	catch(e){
		return false;
	}
	if(http==null)
		return false;
	http.open('POST','/cgi-exe/cpage.dll',async);
	http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	http.send(sxParams);
	try
	{
	  sxHttpReqData=http.responseText;
	}
	catch(e)
	{
	}

	return true;
}

function SendServerReq(sxUrl, sxParams){
	var http=null;
	try{
		if(window.XMLHttpRequest)
			http=new XMLHttpRequest();
		else if (window.ActiveXObject)
			http=new ActiveXObject('Microsoft.XMLHTTP');
		else
			return false;
	}
	catch(e){
		return false;
	}
	if(http==null)
		return false;
	
	
	http.open('get',sxUrl,false);
	http.send(sxParams);

	return http.responseText;
}

function checkApprovedLink(href) {
  return true;
}
function SizeIFrame(iHeight){
	if(sxSizeIFrameName==null)
		return;
	var e=document.getElementById(sxSizeIFrameName);
	if(e==null)
		return;
	e.style.height=iHeight;
}

function CloseStdMenu(){
	if(eStdMenu!=null)
		eStdMenu.style.display='none';
	eStdMenu=null;
}



//TEMPORARY
function FindPosX(obj) { var curleft = 0; if(obj.offsetParent) while(1) { curleft += obj.offsetLeft; if(!obj.offsetParent) break; obj = obj.offsetParent; } else if(obj.x) curleft += obj.x; return curleft; }
function FindPosY(obj) { var curtop = 0; if(obj.offsetParent) while(1) { curtop += obj.offsetTop; if(!obj.offsetParent) break; obj = obj.offsetParent; } else if(obj.y) curtop += obj.y; return curtop; } 


function DoStdMenu(eThis,sxTag,sxSid,sxShortId,sxCompanyId,iPortalId){
	CloseStdMenu();

	var e=document.getElementById('HttpReqVis');
	if(e==null){
		alert('Error: failed to obtain object for HttpReqDiv. Please contact customer service.');
		return;
	}

	var sxParams='source=cpgtask&srccmd=stdlink&sid='+sxSid+'&uid='+sxShortId+'&cid='+sxCompanyId+'&pid='+iPortalId+'&tag='+sxTag;
	if(SubmitByParams(sxParams,false)==false){
		alert('Error: server failed to return information for this link. Please contact customer service.');
		return;
	}
	

	if(sxHttpReqData.indexOf('Url=')==0){
		var sxSingleUrl=sxHttpReqData.substring(4);
		//window.location.href=sxSingleUrl;
		eThis.href=sxSingleUrl;
		return;
	}
	
	e.innerHTML=sxHttpReqData;
	


	eStdMenu=document.getElementById('StdMenu');
	if(eStdMenu==null){
		alert('Error: failed to obtain StdMenu object.');
		return;
	}



	eStdMenu.style.position='absolute';
	eStdMenu.style.display='block';	

	/*
	if(eStdMenu.offsetHeight>100){
		eStdMenu.style.height='100px';
		eStdMenu.style.overflowY='scroll';
	}
	*/

	var iX=FindPosX(eThis);
	var iY=FindPosY(eThis);
	
	if(iX+eStdMenu.offsetWidth>document.body.clientWidth){
		eStdMenu.style.left=(document.body.clientWidth-eStdMenu.offsetWidth-eThis.offsetWidth)+'px';			
	}
	else
		eStdMenu.style.left=iX+'px';

	eStdMenu.style.top=(iY+eThis.offsetHeight)+'px';

	if (parseInt(eStdMenu.style.left) < 0)
		eStdMenu.style.left = '0px';
	if (parseInt(eStdMenu.style.top) < 0)
		eStdMenu.style.top = '0px';

	eStdMenu.style.zIndex=100;
}

function CopyToClip(sxId){
	var e=document.getElementById(sxId);
	if(e==null)
		return false;
	
	if(window.clipboardData && clipboardData.setData )
	{
		//clipboardData.setData('Text', e.innerHTML);
		clipboardData.setData('Text', e.innerHTML.replace(/&amp;/g,"&"));		
	}
	else
	{
		var sxCopyMsg='Your browser does not support automatically copying data to your clipboard.';
		sxCopyMsg+=' To manually copy the link:\r\n';
		sxCopyMsg+='1. Use your mouse to select the URL below.\r\n';
		sxCopyMsg+='2. Right/secondary click the selection.\r\n';
		sxCopyMsg+='3. Select copy from the drop down menu.\r\n';
		
		/*
		var eClip=document.getElementById('ClipData');
		if(eClip==null){
			return false;
		}
		var eClipWin; //=eClip.contentWindow;
		
		eClipWin=(eClip.contentWindow||eClip.contentDocument);
		var eDoc=eClipWin;
		if(eDoc) 
			eDoc=eDoc.document;

		eDoc.designMode = 'on';
		eDoc.body.innerHTML=e.innerHTML;		

		var oRange=null;
		if(eClip.createTextRange){
			oRange=eClip.createTextRange();			
		}
		else if(eDoc.setSelectionRange){
			eDoc.setSelectionRange(0,10);
		*/
			/*
			var sel=eClipWin.getSelection();
			if(sel.rangeCount>0){
				alert('yy');
      				oRange=sel.getRangeAt(0);
			}
			else
				alert('zzz '+sel.rangeCount);
			*/

			//alert('x');
			//oRange=eClip.getRangeAt(0);
			//alert(oRange.value);
			//alert('3');
		/*
		}
		else{
		*/
			alert(sxCopyMsg);
		/*
			return false;
		}
		*/
		//alert('4');
		//oRange.execCommand('Copy');
		//eDoc.execCommand('Copy');
		
		

		/* Not a good solution
		// You have to sign the code to enable this or allow the action in about:config by changing
		user_pref("signed.applets.codebase_principal_support", true);
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');

		var clip=Components.classes['@mozilla.org/widget/clipboard;[[[[1]]]]'].createInstance(Components.interfaces.nsIClipboard);
		if (!clip) 
			return false;

		// create a transferable
		var trans = Components.classes['@mozilla.org/widget/transferable;[[[[1]]]]'].createInstance(Components.interfaces.nsITransferable);
		if (!trans) 
			return false;

		// specify the data we wish to handle. Plaintext in this case.
		trans.addDataFlavor('text/unicode');

		// To get the data from the transferable we need two new objects
		var str = new Object();
		var len = new Object();

		var str = Components.classes["@mozilla.org/supports-string;[[[[1]]]]"].createInstance(Components.interfaces.nsISupportsString);

		var copytext=meintext;

		str.data=copytext;

		trans.setTransferData("text/unicode",str,copytext.length*[[[[2]]]]);

		var clipid=Components.interfaces.nsIClipboard;

		if (!clip) 
			return false;

		clip.setData(trans,null,clipid.kGlobalClipboard);	   
		*/
	}
	return true;
}


function PFHideAnnots(bHide){
	var eHide=document.getElementById('AnnotHideLink');
	var eShow=document.getElementById('AnnotShowLink');

	if(eHide==null||eShow==null)
		return;


	var ea=document.getElementsByTagName('SPAN');
	var iLen=ea.length;
	var i=0;

	for(i=0;i<iLen;i++){
		//<span id="EdtSpn4" style="display:">  (CONTAINS NO _'s)
		var sx=ea[i].id;
		if(sx.indexOf('EdtSpn')==0&&sx.indexOf('_')==-1){
			if(bHide==true)
				ea[i].style.display='none';
			else
				ea[i].style.display='inline';
		}		
	}

	if(bHide==true){
		eHide.style.display='none';
		eShow.style.display='inline';
	}
	else{
		eHide.style.display='inline';
		eShow.style.display='none';
	}	
}

function GoToUrl(sxUrl){
	window.location.href=sxUrl;
}


/***Menu Locking for editable portal***/

function EnableMenuLockInserts(sxDisplay){
	//Turn on / off inserts	
	var eaDivs=document.getElementsByTagName('DIV');
	var iLen=eaDivs.length;
	var i=0;
	for(i=0;i<iLen;i++){
		if(eaDivs[i].id==null)
			continue;
		if(eaDivs[i].id.indexOf('EditBlock_')==0){
			eaDivs[i].style.display=sxDisplay;
		}
	}
	
	var eaChks=document.getElementsByName('EditMenuSelBox');
	iLen=eaChks.length;	
	for(i=0;i<iLen;i++){
			if(eaChks[i].id==null)
			continue;
		if(eaChks[i].id.indexOf('EMICheck_')==0){
			eaChks[i].style.display=sxDisplay;
		}
	}
	
	//TODO: hide the indent / unindent arrows!!!
}

function GetMenuChangedStatus(sxSid,sxScope,sxFullPath){	
	var eChangeMsg=document.getElementById('EditingInsChangedByMsg');
	
	if(eChangeMsg==null){	
		return;
	}

	var sx='';	
	SubmitByParams('sid='+sxSid+'&Scope='+sxScope+'&FullPath='+escape(sxFullPath)+'&source=cpgtask&srccmd=editmenuchangestatus',false);
	sx=sxHttpReqData;
	
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
		if(sx.length==0){
			//Not new changed. Ignore
			return;
		}
		else{
			eChangeMsg.innerHTML=sx+' <input type="button" name="Refresh" value="Refresh" onclick="DoPageRefresh();"/>';
			eChangeMsg.style.display='block';			
		}
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);
		//eChangeMsg.innerHTML=sx;
		//eChangeMsg.style.display='block';
	}
	else{		
		return;
	}
}

function GetMenuItemsStatusInfo(sxSid,sxScope,sxFullPath){
	//debugger;
	var sx='';	
	SubmitByParams('sid='+sxSid+'&Scope='+sxScope+'&FullPath='+escape(sxFullPath)+'&source=cpgtask&srccmd=editmenuitemsstatusinfo',false);
	sx=sxHttpReqData;
	
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
		
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);
		//alert(sx);
		return;
	}
	else{		
		//alert('Failed to obtain response from the server.');
		return;
	}
	
	var iBeg;
	var iEnd;
	var iIndex=0;
	while(true){
		var sxUDoc='';
		var iStatus=-1;
		var sxStatusName='';
		var sxStatusMsg='';
		var iCanResubmit=0;
	
		//UDoc
		iBeg=sx.indexOf('<UDoc>',iIndex);
		if(iBeg==-1)
			break;
		iBeg+=6;
		iEnd=sx.indexOf('</UDoc>',iBeg);
		if(iEnd==-1)
			break;
		sxUDoc=sx.substring(iBeg,iEnd);
		iIndex=iEnd+7;
		
		//Status
		iBeg=sx.indexOf('<StatusCode>',iIndex);
		if(iBeg==-1)
			break;
		iBeg+=12;
		iEnd=sx.indexOf('</StatusCode>',iBeg);
		if(iEnd==-1)
			break;
		iStatus=parseInt(sx.substring(iBeg,iEnd));
		iIndex=iEnd+13;
		
		//StatusName
		iBeg=sx.indexOf('<StatusName>',iIndex);
		if(iBeg==-1)
			break;
		iBeg+=12;
		iEnd=sx.indexOf('</StatusName>',iBeg);
		if(iEnd==-1)
			break;
		sxStatusName=sx.substring(iBeg,iEnd);
		iIndex=iEnd+13;
				
		//Msg
		iBeg=sx.indexOf('<Msg>',iIndex);
		if(iBeg==-1)
			break;
		iBeg+=5;
		iEnd=sx.indexOf('</Msg>',iBeg);
		if(iEnd==-1)
			break;
		sxStatusMsg=sx.substring(iBeg,iEnd);
		iIndex=iEnd+6;
		
		//CanResubmit
		iBeg=sx.indexOf('<CanResubmit>',iIndex);
		if(iBeg==-1)
			break;
		iBeg+=13;
		iEnd=sx.indexOf('</CanResubmit>',iBeg);
		if(iEnd==-1)
			break;
		iCanResubmit=parseInt(sx.substring(iBeg,iEnd));
		iIndex=iEnd+14;
	
	
		var eButton=document.getElementById('EditMenuItem_'+sxUDoc);			
		var eStatusMsg=document.getElementById('EMIMsg_'+sxUDoc);
		if(eButton!=null&&eStatusMsg!=null){
			eButton.value=sxStatusName;
			eButton.setAttribute('StatusCode',iStatus);
			eButton.setAttribute('CanResubmit',iCanResubmit);
			eButton.disabled=false;
			eStatusMsg.innerHTML=sxStatusMsg;		
		}	
	}
	
}

function GetLockMenuStatus(sxSid,sxScope,sxFullPath,bAlerts){	
	//Only called if button is currently locked.
	var eOn=document.getElementById('EditingInsOn');
	var eOff=document.getElementById('EditingInsOff');
	var eLocked=document.getElementById('EditingInsLocked');
	var eIconOn=document.getElementById('EditInsIconOn');
	var eIconOff=document.getElementById('EditInsIconOff');
	var eIconLocked=document.getElementById('EditInsIconLocked');
	var eLockedByMsg=document.getElementById('EditingInsLockedByMsg');
	var eMsg=document.getElementById('EditBlockMsg');	
	

	if(eOn==null||eOff==null||eLocked==null||eIconOn==null||eIconOff==null||eIconLocked==null||eLockedByMsg==null){
		if(bAlerts==true)
			alert('Error: One or more required controls are missing (2). Please contact customer service.');
		return;
	}


	var sx='';
	//var sx=SendServerReq('/cgi-exe/cpage.dll','sid='+sxSid+'&Scope='+sxScope+'&FullPath='+sxFullPath+'&source=cpgtask&srccmd=editmenulockstatus');
	SubmitByParams('sid='+sxSid+'&Scope='+sxScope+'&FullPath='+escape(sxFullPath)+'&source=cpgtask&srccmd=editmenulockstatus',false);
	sx=sxHttpReqData;
	

	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
		if(sx.length==0){
			//Not locked.
			eOn.style.display='inline';
			eIconOn.style.display='inline';
			eOff.style.display='none';
			eIconOff.style.display='none';
			eLocked.style.display='none';
			eIconLocked.style.display='none';
			eLockedByMsg.style.display='none';
			eLockedByMsg.innerHTML='';
			if(eMsg!=null)
				eMsg.style.display='block';
			EnableMenuLockInserts('none');
			if(bAlerts==true)
				alert('This menu is no longer locked.');
			return;
		}
		else{
			eLockedByMsg.innerHTML=sx;
			eLockedByMsg.style.display='block';			
		}
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);
		eLockedByMsg.innerHTML=sx;
		eLockedByMsg.style.display='block';
	}
	else{
		if(bAlerts==true)
			alert('Failed to obtain locked status from the server.');
		return;
	}

	if(bAlerts==true)
		alert(eLockedByMsg.innerHTML);	
}

function LockMenuForEditing(sxSid,sxScope,sxFullPath){
	//Called to turn on or off menu locking
	
	var eOn=document.getElementById('EditingInsOn');
	var eOff=document.getElementById('EditingInsOff');
	var eLocked=document.getElementById('EditingInsLocked');
	var eIconOn=document.getElementById('EditInsIconOn');
	var eIconOff=document.getElementById('EditInsIconOff');
	var eIconLocked=document.getElementById('EditInsIconLocked');
	var eLockedByMsg=document.getElementById('EditingInsLockedByMsg');
	var eMsg=document.getElementById('EditBlockMsg');

	if(eOn==null||eOff==null||eLocked==null||eIconOn==null||eIconOff==null||eIconLocked==null||eLockedByMsg==null){
		alert('Error: One or more required controls are missing (3). Please contact customer service.');
		return;
	}

	var iLock=1;
	if(eOn.style.display=='none'){
		iLock=0;
	}

	//debugger;
	//var sx=SendServerReq('/cgi-exe/cpage.dll','sid='+sxSid+'&Scope='+sxScope+'&FullPath='+sxFullPath+'&source=cpgtask&srccmd=editmenulock&Lock='+iLock);
	var sx='';
	SubmitByParams('sid='+sxSid+'&Scope='+sxScope+'&FullPath='+escape(sxFullPath)+'&source=cpgtask&srccmd=editmenulock&Lock='+iLock,false);
	sx=sxHttpReqData;

	//alert('Server Msg='+sx);
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
		eLockedByMsg.innerHTML=sx;		
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);
		eLockedByMsg.innerHTML=sx;
		eLockedByMsg.style.display='block';
		alert(sx);
		return; 
	}
	else{
		alert('Failed to obtain locked status from the server.');
		//eLockedByMsg.style.display='block';
		return;
	}

	var sxDisplay='block';
	if(iLock==0){
		sxDisplay='none';
		eOn.style.display='inline';
		eIconOn.style.display='inline';
		eOff.style.display='none';
		eIconOff.style.display='none';		
		if(eMsg!=null)
			eMsg.style.display='block';
		sxMenuLockSid='';
		sxMenuLockScope='';
		sxMenuLockFullPath='';
		eLockedByMsg.style.display='none';
	}
	else{
		eOn.style.display='none';
		eIconOn.style.display='none';
		eOff.style.display='inline';
		eIconOff.style.display='inline';
		if(eMsg!=null)
			eMsg.style.display='none';
		sxMenuLockSid=sxSid;
		sxMenuLockScope=sxScope;
		sxMenuLockFullPath=sxFullPath;
		if(eLockedByMsg.innerHTML.length>0)
			eLockedByMsg.style.display='block';
	}

	EnableMenuLockInserts(sxDisplay);
	return true;
}

function ToggleEditingInserts(eThis,sxSid,sxScope,sxFullPath,sxUrlStartEditMenu,sxUrlStopEditMenu){	
	var eOn=document.getElementById('EditingInsOn');
	var eOff=document.getElementById('EditingInsOff');
	var eLocked=document.getElementById('EditingInsLocked');

	if(eOn==null||eOff==null||eLocked==null){
		alert('Error: One or more required controls are missing. Please contact customer service.');
		return false;
	}
	
	if(eOn.style.display!='none'){		
		eThis.href=sxUrlStartEditMenu;	
		return true;
	}
	else if(eOff.style.display!='none'){
		eThis.href=sxUrlStopEditMenu;	
		return true;
	}
	else
		eThis.href='javascript:vo();';
		

	if(eLocked.style.display!='none'){
		GetLockMenuStatus(sxSid,sxScope,sxFullPath,true);	
	}
	else{
		LockMenuForEditing(sxSid,sxScope,sxFullPath);
	}
	
	return false;	
}


function RunEditingMenuUpdateTimer(sxSid,sxScope,sxFullPath,bFirstRun){
	if(bFirstRun==false){
		GetLockMenuStatus(sxSid,sxScope,sxFullPath,false);
		GetMenuChangedStatus(sxSid,sxScope,sxFullPath);		
	}
	else{
		EditMenuEnableAdjustLevelControls(); //Do this only once	
	}
	GetMenuItemsStatusInfo(sxSid,sxScope,sxFullPath);

	var iMs=1000*45;	
	window.setTimeout('RunEditingMenuUpdateTimer(\''+sxSid+'\',\''+sxScope+'\',\''+sxFullPath+'\',false);',iMs);
}

function UnloadEditMenu(){
	if(sxMenuLockSid.length>0&&sxMenuLockScope.length>0&&sxMenuLockFullPath.length>0){
		//alert('Unload');
		LockMenuForEditing(sxMenuLockSid,sxMenuLockScope,sxMenuLockFullPath);		
	}
}

function DisplayEditingMenu(eThis,sxId,bInsert){
	if(eThis==null){
		if(eEditingMenu==null)
			return;
		eEditingMenu.style.display='none';
		sxEditingMenuEditBlockId='';
		return;	
	}
		
	DisplayEditingMenu(null,'',false);
	
	eEditingMenu=document.getElementById(sxId);
	if(eEditingMenu==null){
		alert('Error: failed to obtain menu object. Please contact customer service.');
		return;
	}
	
	//debugger;
	eEditingMenu.style.display='block';	
	sxEditingMenuEditBlockId='';	
	var e=eThis;
	while(bInsert==true){
		e=e.parentNode;
		if(e==null){
			alert('Error: failed to obtain edit block index. Please contact customer service.');
			return;		
		}
		if(e.id!=null){
			if(e.id.indexOf('EditBlock_')==0){
				sxEditingMenuEditBlockId=e.id;
				break;		
			}	
		}
	}
	
	var iX=FindPosX(eThis);
	var iY=FindPosY(eThis);
	
	if(iX+eEditingMenu.offsetWidth>document.body.clientWidth){
		eEditingMenu.style.left=(document.body.clientWidth-eEditingMenu.offsetWidth-eThis.offsetWidth)+'px';			
	}
	else
		eEditingMenu.style.left=iX+'px';
	
	/*
	if(iY+eEditingMenu.offsetHeight>document.body.clientHeight){
		eEditingMenu.style.top=(document.body.clientHeight-eEditingMenu.offsetHeight-eThis.offsetHeight)+'px';			
	}
	else
		eEditingMenu.style.top=(iY+eThis.offsetHeight)+'px';
	*/


	eEditingMenu.style.top=(iY+eThis.offsetHeight)+'px';	
}

function AdjustPageIndexItems(iAtIndex,iAmount){
	eaDivs=document.getElementsByTagName('DIV');
	var iLen=eaDivs.length;
	var i=0;
	
	var iUseIndex=0;
	for(i=0;i<iLen;i++){
		if(eaDivs[i].id.indexOf('EditBlock_')==0){
			if(eaDivs[i].style.display=='none'){
				continue; //This is a deleted menu item
			}
			//Level,Index
			//var iLevel=eaDivs[i].getAttribute('Level');
			var iIndex=parseInt(eaDivs[i].getAttribute('Index'));			
			var iIsHeading=parseInt(eaDivs[i].getAttribute('IsHeading'));
			if(iIndex!=null){
				//if(iIndex>=iAtIndex){ 
				//	iIndex+=iAmount;		
				//	eaDivs[i].setAttribute('Index',iIndex);
				//}	
				eaDivs[i].setAttribute('Index',iUseIndex);
				iUseIndex++;				
			}
					
		}
	}	
}

function InjectDynamicMenuItem(eEditBlock,sxSid,sxUDoc,bIsHeader,iIndex,iLevel,sxCitation,sxDesc,sxLinkColor,sxScope,sxFullPath,sxCitVal){	
		var eInsBefore=eEditBlock; //document.getElementById('EditBlock_'+iIndex);
		eInsBefore=eInsBefore.nextSibling;
		if(eInsBefore==null){
			alert('Error: failed to find insertion point for new menu item. Please refresh the page.');
			return;		
		}
		
		var sx='';		
		var eTable=document.createElement('TABLE');
		eTable.width='100%';
		eTable.border=0;
		eTable.cellPadding=4;
		eTable.cellSpacing=0;
		eTable.id=sxUDoc+'_T0';
		eTable.summary=sxCitation+' - '+sxDesc;
		
		var eTBody=document.createElement('TBODY');		
			
		var eTr=document.createElement('TR');
		eTr.vAlign='top';
		eTr.id=sxUDoc+'_T0R0';
				
		var eTd0=document.createElement('TD');				
		eTd0.id=sxUDoc+'_T0R0C0';
		eTd0.noWrap=true;
		eTd0.width=5+35*(iLevel-1);
		eTd0.scope='ROW';
		eTr.appendChild(eTd0);
		
		var eTd1=document.createElement('TD');				
		eTd1.id=sxUDoc+'_T0R0C1';
		if(bIsHeader==true){
			eTd1.colSpan=2;
			eTd1.width='100%';
		}
		else{
			eTd1.noWrap=true;
		}
		
		//Check select delete/publish box
		sx='<input type="checkbox" name="EditMenuSelBox" value="'+sxUDoc+'" id="EMICheck_'+sxUDoc+'" /> ';
		
		//Unindent
		sx+='<a href="javascript:vo();" onclick="EditMenuAdjustLevel(\''+sxSid+'\',\''+sxUDoc+'\',-1);" id="'+sxUDoc+'_UnIndent" style="display: none;">';
		sx+='<img src="/images/ArrowLeft.gif" class="IndentArrow" /></a>';
		sx+='<img src="/images/ArrowLeftg.gif" class="IndentArrow" id="'+sxUDoc+'_UnIndentG" />';
		
		//Indent
		sx+='<a href="javascript:vo();" onclick="EditMenuAdjustLevel(\''+sxSid+'\',\''+sxUDoc+'\',1);" id="'+sxUDoc+'_Indent" style="display: none;">';
		sx+='<img src="/images/ArrowRight.gif" class="IndentArrow" /></a>';
		sx+='<img src="/images/ArrowRightg.gif" class="IndentArrow" id="'+sxUDoc+'_IndentG" />';
		
		//Edit / Command button		
		sx+='<input type="button" class="EditButton" name="EditMenuItem_'+sxUDoc+'" id="EditMenuItem_'+sxUDoc;
		sx+='" value="Edit" onclick="EditMenuItem(this,\''+sxSid+'\',\''+sxUDoc+'\',';		
		if(bIsHeader==true)
			sx+='true';
		else
			sx+='false';		
		sx+=');" StatusCode="'+MENU_STATUS_READY+'" CanResubmit="0" /><span id="EMIMsg_'+sxUDoc+'" class="CNoDim"></span> ';
		if(bIsHeader==true){
			sx+='<B>'+sxDesc+'</B>';		
		}
		else{
			sx+='<img hspace="3" border="0" src="/images/MenuHtm.gif" WIDTH="20" HEIGHT="18" BORDER="0" title="Document menu item" alt="Document menu item" align="absmiddle" />';
			//sx+='GB1 STUFF HERE';	
			/*	
						//<!--$$LINK:GB1,D0,/CFR/10CFR,CFR_10_202,htm,rtf-->
						XStringArray sxaParams;
						sxaParams.Add("GB1");
						XString sxTmp2;
						sxTmp="D";
						sxTmp+=i;
						sxaParams.Add(sxTmp);
						sxTmp="/";
						sxTmp+=m_pseudo.m_szArgList[1];
						sxTmp+="/";
						sxTmp2=sxFullPath;
						sxTmp2.Replace('\\','/');
						sxTmp+=sxTmp2;
						sxaParams.Add(sxTmp);
						sxaParams.Add(sxFileTitle);
						XStringArray sxaExts=sxExtensions.Split(' ');
						int iLenExts=sxaExts.GetLength();
						for(int iX=0;iX<iLenExts;iX++){
							sxaParams.Add(sxaExts[iX]);
						}						
						RenderGB1Tag(params,sxaParams,pSkin,pszSource,pszSourceCommand,pszSourceId);
			*/	
		}
		eTd1.innerHTML=sx;
		eTr.appendChild(eTd1);
		
		var eTd2=null;
		if(bIsHeader==false){
			eTd2=document.createElement('TD');				
			eTd2.id=sxUDoc+'_T0R0C2';
			eTd2.width='100%';
			sx='<B>';
			
			/*
						if(iClass!=4){
							Write(params,"<A HREF=\"/indx/");
							Write(params,m_pseudo.m_szArgList[1]);
							Write(params,"/");
							sxTmp=sxFullPath;
							sxTmp.Replace('\\','/');
							Write(params,sxTmp);
							Write(params,"/");
							Write(params,sxFileTitle);
							Write(params,".");
							sxTmp=sxExtensions.SubBegFindFwd(' ');
							Write(params,sxTmp);                        						
							Write(params,"\">");
						}
			*/
			
			var sxUrl='/indx/'+sxScope+'/'+sxFullPath.replace(/\\/g,'/')+'/'+sxScope+'_'+sxFullPath.replace(/\\/g,'_')+'_'+sxCitVal+'.htm';
			
			sx+=sxCitation;
			if(sxCitation.length>0&&sxDesc.length>0)
				sx+=' - ';
				
			//sx+='<a href="'+sxUrl+'" onclick="return EditableMenuCanViewDoc(this,\''+sxSid+'\',\''+sxUDoc+'\');">';
			sx+='<DOCDESC>';
			sx+=sxDesc;
			sx+='</DOCDESC>';
			//sx+='</a>';			
			
			//sx+=' <a href="/cgi-exe/cpage.dll?ref='+sxUrl+'&pg=compare&rp='+sxUrl+'&sid='+sxSid+'&TRF=';
			//sxUrl.replace('/indx/','/nonindx/');
			//sx+=sxUrl;
			//sx+='&ShowEditHist=1">';						
			//sx+='<img src="/images/DocHistory.gif" class="ImgDocHistory" alt="Document history" /></a>';
			
			sx+='</B>';
			sx+=' <IMG id="IcoRepealed_'+sxUDoc+'" alt="Repealed" width="52" height="12" border="0" align="baseline" src="/images/LibRepealed.gif" style="display: none" />';
			eTd2.innerHTML+=sx;
			eTr.appendChild(eTd2);			
		}
		
		eTBody.appendChild(eTr);
		eTable.appendChild(eTBody);		
				
		
		
		var eInserted=eInsBefore.parentNode.insertBefore(eTable,eInsBefore);
		if(eInserted==null){
			alert('Error: failed to dynamically insert item. Please refresh the page.');
			return;		
		}
				
		
		var eDiv=document.createElement('DIV');
		//eDiv.id='EditBlock_'+iIndex;
		eDiv.id='EditBlock_'+sxUDoc;
		if(bIsHeader==false)
			eDiv.setAttribute('Level',iLevel);
		else
			eDiv.setAttribute('Level',iLevel+1);
		eDiv.setAttribute('Index',iIndex);
		if(bIsHeader==true)
			eDiv.setAttribute('IsHeading',1);
		else
			eDiv.setAttribute('IsHeading',0);		
		
		if(bIsHeader==false)
			eDiv.style.marginLeft=(5+35*(iLevel-1)+4)+'px';
		else
			eDiv.style.marginLeft=(5+35*iLevel+4)+'px';
		
		var eSpan=document.createElement('SPAN');
		eSpan.style.borderColor=sxLinkColor; 
		eSpan.className='EditInsertBlock';
		eSpan.innerHTML='<a href="javascript:vo();" onclick="DisplayEditingMenu(this,\'InsertHeadingMenu\',true);\">Insert heading</a> | <a href="javascript:vo();" onclick="DisplayEditingMenu(this,\'InsertDocumentMenu\',true);">Insert document</a>';
		eDiv.appendChild(eSpan);
		
		
		eInserted=eInsBefore.parentNode.insertBefore(eDiv,eInsBefore);
		if(eInserted==null){
			alert('Error: failed to dynamically insert control item. Please refresh the page.');
			return;		
		}		
		
		EditMenuEnableAdjustLevelControls();		
}

function EditMenuInsertHeading(sxSid,sxScope,sxFullPath,sxLinkColor){
	var eDesc=document.getElementById('HeadingDesc');
	if(eDesc==null){
		alert('Error: failed to obtain heading description. Please contact customer service.');
		return;
	}
	
	var eEditBlock=document.getElementById(sxEditingMenuEditBlockId);
	if(eEditBlock==null){
		alert('Error: failed to obtain EditBlock object. Please contact customer service.');
		return;	
	}
	
	var iInsIndex=parseInt(eEditBlock.getAttribute('Index'));
	var iInsLevel=parseInt(eEditBlock.getAttribute('Level'));	
	eDesc.value=eDesc.value.trim();
	if(eDesc.value.length==0){	
		alert('Error: you must specify the description for this heading.');
		return;
	}

	var sx='';
	SubmitByParams('sid='+sxSid+'&Scope='+sxScope+'&FullPath='+escape(sxFullPath)+'&source=cpgtask&srccmd=editmenuinsheading&InsIndex='+iInsIndex+'&InsLevel='+iInsLevel+'&Desc='+escape(eDesc.value),false);
	sx=sxHttpReqData;

	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		alert(sx);
		return; 
	}
	else{
		alert('Failed to obtain insert heading status response from the server.');
		return;
	}
		
	InjectDynamicMenuItem(eEditBlock,sxSid,sx,true,iInsIndex,iInsLevel,'',eDesc.value,sxLinkColor,sxScope,sxFullPath,'');
	AdjustPageIndexItems(iInsIndex,1);
	eDesc.value='';
	DisplayEditingMenu(null,'',false);
}

function EditMenuInsertDocument(sxSid,sxScope,sxFullPath,sxLinkColor){
	var eCit=document.getElementById('DocumentCitation');
	var eCitVal=document.getElementById('DocumentCitationVal');
	var eDesc=document.getElementById('DocumentDesc');	
	if(eCit==null||eDesc==null||eCitVal==null){
		alert('Error: failed to obtain document citation or description. Please contact customer service.');
		return;
	}
	
	var eEditBlock=document.getElementById(sxEditingMenuEditBlockId);
	if(eEditBlock==null){
		alert('Error: failed to obtain EditBlock object. Please contact customer service.');
		return;	
	}
	
	eCit.value=eCit.value.trim();
	eDesc.value=eDesc.value.trim();
		
	eCitVal.value=eCitVal.value.trim();
	var iLen=eCitVal.value.length;
	if(iLen==0){	
		alert('Error: you must specify at least the citation value for this document.');
		return;
	}
	
	var i=0;	
	var c='';
	for(i=0;i<iLen;i++){
		c=eCitVal.value.charAt(i);
		if((c>='a'&&c<='z')||(c>='A'&&c<='Z')||(c>='0'&&c<='9')||c=='.'||c=='-')
			continue;
		else{
			alert('Error: invalid character = "'+c+'" found in the citation value. Allowed characters are "A-Z", "0-9", ".", and "-". Please remove the invalid character and try again.');
			return;
		}
	}	
	
	
	var iInsIndex=parseInt(eEditBlock.getAttribute('Index'));
	var iInsLevel=parseInt(eEditBlock.getAttribute('Level'));
		
	
	//eDesc.value;
	var sx='';
	SubmitByParams('sid='+sxSid+'&Scope='+sxScope+'&FullPath='+escape(sxFullPath)+'&source=cpgtask&srccmd=editmenuinsdocument&InsIndex='+iInsIndex+'&InsLevel='+iInsLevel+'&Desc='+escape(eDesc.value)+'&Cit='+escape(eCit.value)+'&CitVal='+escape(eCitVal.value),false);
	sx=sxHttpReqData;

	//alert('Server Msg='+sx);
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		alert(sx);
		return; 
	}
	else{
		alert('Failed to obtain insert document status response from the server.');
		return;
	}
	
	var sxCitation=eCit.value;
	if(sxCitation.length>0)
		sxCitation+=' ';
	sxCitation+=eCitVal.value;
		
	InjectDynamicMenuItem(eEditBlock,sxSid,sx,false,iInsIndex,iInsLevel,sxCitation,eDesc.value,sxLinkColor,sxScope,sxFullPath,eCitVal.value);
	AdjustPageIndexItems(iInsIndex,1);
	eCit.value='';
	eDesc.value='';
	DisplayEditingMenu(null,'',false);	
}

function EditMenuAdjustItemsOnMenu(eaDivs,sxUDoc,iAmount){
	var iLen=eaDivs.length;
	var i=0;
	var iSeekLevel=-1;
	var bFirst=true;
	//debugger;
	for(i=0;i<iLen;i++){
		if(eaDivs[i].id==null)
			continue;
		if(eaDivs[i].id.indexOf('EditBlock_')==0){
			var sxTmpUDoc=eaDivs[i].id.substring(10);
			if(sxTmpUDoc.length==0)
				continue;
			if(eaDivs[i].style.display=='none'){
				continue; //This is a deleted menu item
			}
			
			var iLevel=parseInt(eaDivs[i].getAttribute('Level'));			
			var iIsHeading=parseInt(eaDivs[i].getAttribute('IsHeading'));
			if(iIsHeading==1){
				iLevel--;				
			}
			//alert('Level: '+iLevel);
	
			if(iSeekLevel==-1){		
				if(sxTmpUDoc==sxUDoc){					
					iSeekLevel=iLevel;				
				}			
			}
			
			if(iSeekLevel!=-1){				
				if(bFirst==false){
					if(iLevel<=iSeekLevel)
						break;
				}
				
				var eTd=document.getElementById(sxTmpUDoc+'_T0R0C0');
				if(eTd!=null){
					var iNewLevel=iLevel;
					iNewLevel+=iAmount;
					//alert('Width='+eTd.width);
					if(iNewLevel>0)
						eTd.width=5+35*(iNewLevel-1);
					//alert('NewWidth='+eTd.width);
					//alert('Adj: '+iAmount+', Level: '+iLevel+', NewLevel: '+iNewLevel);
					
					if(iIsHeading==1)
						iNewLevel++;
					
					if(iNewLevel>0)
						eaDivs[i].style.marginLeft=(5+35*(iNewLevel-1)+4)+'px';
					eaDivs[i].setAttribute('Level',iNewLevel);
										
					var eTable=eTd;
					while(true){
						eTable=eTable.parentNode;
						if(eTable==null)
							break;
						if(eTable.tagName=='TABLE')
							break;
					}
					
					if(iIsHeading==1&&(iNewLevel-1)==1)
						eTable.style.marginTop='20px';
					else
						eTable.style.marginTop='0px';					
				}				
				bFirst=false;		
			}					
		}
	}

}

function EditMenuAdjustLevel(sxSid,sxUDoc,iAmount){	
	var sx='';	
	SubmitByParams('sid='+sxSid+'&UDoc='+sxUDoc+'&source=cpgtask&srccmd=editmenuadjlevel&Amount='+iAmount,false);
	sx=sxHttpReqData;
	
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		alert(sx);
		return; 
	}
	else{
		alert('Failed to adjust menu item level. No response from server.');
		return;
	}
			
	var eaDivs=document.getElementsByTagName('DIV');
	EditMenuAdjustItemsOnMenu(eaDivs,sxUDoc,iAmount);
	EditMenuEnableAdjustLevelControls();
}

function EditMenuEnableAdjustLevelControls(){
	//H
	//	D
	//	D  TODO: this is a bug.. Should be able to unindent last item
	
	//debugger;
	if(ebaEditBlocks==null){
		ebaEditBlocks=document.getElementsByTagName('DIV');	
	}
	var eaDivs=ebaEditBlocks;
	var iLen=eaDivs.length;
	var i=0;
	
	var sxPrevUDoc='';
	var iPrevLevel=-1;
	var iPrevIsHeading=-1;
	var iLevel=-1;
	var iIsHeading=-1;
	var sxUDoc='';
	
	//var ePrevUnIndent=null;
	//var ePrevIndent=null;
	//var ePrevUnIndentG=null;
	//var ePrevIndentG=null;
	var bIndent=true;
	var bUnIndent=true;
	//debugger;
	for(i=0;i<iLen;i++){
		if(eaDivs[i].id==null)
			continue;		
		if(eaDivs[i].id.indexOf('EditBlock_')==0){
			sxUDoc=eaDivs[i].id.substring(10);
			if(sxUDoc.length==0)
				continue;
			if(eaDivs[i].style.display=='none'){
				continue; //This is a deleted menu item
			}
			
			iLevel=parseInt(eaDivs[i].getAttribute('Level'));
			//var iIndex=eaDivs[i].getAttribute('Index');
			iIsHeading=parseInt(eaDivs[i].getAttribute('IsHeading'));
			if(iIsHeading==1){
				iLevel--;
				//alert('Heading level='+iLevel);
			}
			else{
				//alert('Document level='+iLevel);				
			
			}
			
			
					
			var eUnIndent=document.getElementById(sxPrevUDoc+'_UnIndent');			
			var eUnIndentG=document.getElementById(sxPrevUDoc+'_UnIndentG');
			
			var eIndent=document.getElementById(sxUDoc+'_Indent');
			var eIndentG=document.getElementById(sxUDoc+'_IndentG');
			
					
			bIndent=true;
			bUnIndent=true;
			if(eUnIndent!=null&&eUnIndentG!=null){
				if(iPrevLevel==1){					
					bUnIndent=false;
				}
				else if(iPrevIsHeading==0&&iPrevLevel-1<iLevel){
					bUnIndent=false;
				}			
				
				if(bUnIndent==true){
					eUnIndent.style.display='inline';
					eUnIndentG.style.display='none';
				}
				else{
					eUnIndent.style.display='none';
					eUnIndentG.style.display='inline';				
				}
			}
				
			if(eIndent!=null&&eIndentG!=null){
				if(iLevel+1-iPrevLevel>1){
					bIndent=false;
				}
				else if(iPrevIsHeading==0&&iLevel+1>iPrevLevel){
					bIndent=false;
				}
					
				
				if(bIndent==true){
					eIndent.style.display='inline';
					eIndentG.style.display='none';
				}
				else{
					eIndent.style.display='none';
					eIndentG.style.display='inline';				
				}				
			}			
			
			sxPrevUDoc=sxUDoc;
			iPrevLevel=iLevel;
			iPrevIsHeading=iIsHeading;			
		}
	}
	
	
	var eUnIndent=document.getElementById(sxPrevUDoc+'_UnIndent');			
	var eUnIndentG=document.getElementById(sxPrevUDoc+'_UnIndentG');
			
	bUnIndent=true;
	if(eUnIndent!=null&&eUnIndentG!=null){
		if(iPrevLevel==1){					
			bUnIndent=false;
		}
		else if(iPrevIsHeading==0&&iPrevLevel-1<iLevel){
			bUnIndent=false;
		}			
				
		if(bUnIndent==true){
			eUnIndent.style.display='inline';
			eUnIndentG.style.display='none';
		}
		else{
			eUnIndent.style.display='none';
			eUnIndentG.style.display='inline';				
		}
	}
}

function DoPageRefresh(){
	window.location.reload(true);
}

function EditMenuGetSelectedUDocs(bClearCheck){
	var sxUDocs='';
	
	var eaChks=document.getElementsByName('EditMenuSelBox');
	iLen=eaChks.length;
	for(i=0;i<iLen;i++){
		if(eaChks[i].id==null)
			continue;
		if(eaChks[i].id.indexOf('EMICheck_')==0){
			if(eaChks[i].checked==true){
				if(sxUDocs.length>0)
					sxUDocs+="|";
				sxUDocs+=eaChks[i].value;
				if(bClearCheck==true){
					eaChks[i].checked=false;
				}				
			}
		}
	}
	
	return sxUDocs;
}

function EditMenuDeleteMenuItems(sxSid){	
	var sxUDocs=EditMenuGetSelectedUDocs(true);	
	if(sxUDocs.length==0){
		alert('You must select at least one menu item to remove before you click "Remove Selected Menu Items".');
		return;
	}
	
	var sx='';
	SubmitByParams('sid='+sxSid+'&source=cpgtask&srccmd=editmenuremoveitems&UDocList='+sxUDocs+'&IsRepealed=false',false);
	sx=sxHttpReqData;
	
	//Check status...	
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		alert(sx);
		return; 
	}
	else{
		alert('Failed to remove menu items. No response from server.');
		return;
	}	
		
	var eaDivs=document.getElementsByTagName('DIV');
		
	var i=0;
	var sxa=sxUDocs.split('|');
	var iLen=sxa.length;
	//Adjust the levels
	for(i=0;i<iLen;i++){
		EditMenuAdjustItemsOnMenu(eaDivs,sxa[i],-1);					
	}	
	
	//Now delete the ones we wanted deleted
	for(i=0;i<iLen;i++){
		var eDiv=document.getElementById('EditBlock_'+sxa[i]);
		var eTable=document.getElementById(sxa[i]+'_T0');
				
		if(eDiv!=null){
			var iIndex=eDiv.getAttribute('Index');			
			AdjustPageIndexItems(iIndex,-1);
		
			eDiv.style.display='none';
		}
		if(eTable!=null)
			eTable.style.display='none';		
	}	
		
	EditMenuEnableAdjustLevelControls();
}


function EditMenuPublishMenuItems(sxSid){	
	var sxUDocs=EditMenuGetSelectedUDocs(true);	
	if(sxUDocs.length==0){
		alert('You must select at least one menu item to remove before you click "Publish Selected Menu Items".');
		return;
	}
	
	var sx='';
	SubmitByParams('sid='+sxSid+'&source=cpgtask&srccmd=editmenupublishitems&UDocList='+sxUDocs,false);
	sx=sxHttpReqData;
	
	//Check status...	
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		alert(sx);
		return; 
	}
	else{
		alert('Failed to publish menu items. No response from server.');
		return;
	}		
	
	alert('The selected items have been scheduled for publishing.');
}

function EditMenuItem(eThis,sxSid,sxUDoc,bIsHeader){
	//eThis is the button	
	var eStatusMsg=eThis.nextSibling; //<span id=EMIMsg_ directly follows the button
	if(eStatusMsg==null){
		alert('Edit menu item could not find the status message. Please contact customer service.');
		return;
	}
	sxEditingMenuUDoc=sxUDoc;	

	iStatusCode=parseInt(eThis.getAttribute('StatusCode'));
	iCanResubmit=parseInt(eThis.getAttribute('CanResubmit'));

	var sxId;
	if(bIsHeader==true){		
		sxId='EditHeadingMenu';
		var eDesc=document.getElementById('UpdateHeadingDesc');
		var sxColId=sxEditingMenuUDoc+'_T0R0C1';
		var eCol=document.getElementById(sxColId);
		if(eDesc!=null&&eCol!=null){
			var iIndexBegB;
			var iIndexEndB;
			iIndexBegB=eCol.innerHTML.indexOf('<B>');
			if(iIndexBegB!=-1){
				iIndexEndB=eCol.innerHTML.indexOf('</B>');
				if(iIndexEndB!=-1){
					eDesc.value=eCol.innerHTML.substring(iIndexBegB+3,iIndexEndB);
				}
			}
		}		
		else{
			//ERROR			
		}
	}
	else{
		if(iStatusCode==MENU_STATUS_PROCESSING||iStatusCode==MENU_STATUS_ERROR||iStatusCode==MENU_STATUS_ERRORNOTICE||iStatusCode==MENU_STATUS_ERRORADMIN||iStatusCode==MENU_STATUS_DELETED||iStatusCode==MENU_STATUS_INUSE||iStatusCode==MENU_STATUS_LOCKED){			
			var sxStatusMsg;
			sxId='DocumentStatusMenu';
			
			var eDownloadButton=document.getElementById('DocumentStatusMenuDownload');
			var eAbortButton=document.getElementById('DocumentStatusMenuAbort');
			var eRetryButton=document.getElementById('DocumentStatusMenuRetry');
			var eCancelCheckoutButton=document.getElementById('DocumentStatusMenuCancelCheckout');
			var eMsgDiv=document.getElementById('DocumentStatusMenuMsgDiv');
			
			if(eAbortButton==null||eMsgDiv==null){
				alert('Error: cannot obtain status information because one or more controls are missing. Please contact customer service.');				
			}
			else{		
				var iIsMasterUser=eAbortButton.getAttribute('MasterUser');
			
			
				if(iStatusCode==MENU_STATUS_ERROR||iStatusCode==MENU_STATUS_ERRORADMIN){
					eAbortButton.style.display='inline';
				}
				else{
					eAbortButton.style.display='none';				
				}
				
				if(eCancelCheckoutButton!=null){
					if(iStatusCode==MENU_STATUS_INUSE&&iIsMasterUser==1){
						eCancelCheckoutButton.style.display='inline';
					}
					else{
						eCancelCheckoutButton.style.display='none';
					}
				}
					
				if(eStatusMsg.innerHTML.length>0){
					sxStatusMsg=eStatusMsg.innerHTML;
				}
				else{
					sxStatusMsg='There is no status information for this document.';
				}
								
				if(iCanResubmit==1&&(iStatusCode==MENU_STATUS_ERROR||iStatusCode==MENU_STATUS_ERRORADMIN)){
					eRetryButton.style.display='inline';
					eDownloadButton.style.display='inline';
				}
				else{
					eRetryButton.style.display='none';	
					eDownloadButton.style.display='none';			
				}
				
				eMsgDiv.innerHTML=sxStatusMsg;								
				if(eMsgDiv.offsetHeight>375)
					eMsgDiv.style.height='375px';
				DisplayEditingMenu(eThis,sxId,false);
			}						
			return;
		}
		
		if(iStatusCode==MENU_STATUS_UPLOAD){
			sxId='UploadDocumentMenu';
			//http://devensr-e.citation.com/webapps/SimpleUpload/Upload.aspx
			var eIFrame=document.getElementById('SimpleUploadIFrame');
			var eTemplateExt=document.getElementById('TemplateExt');
			if (eTemplateExt != null)
			{
				var sExt=eTemplateExt.value;
				sxEditingMenuUploadUrl=sxSid+'_'+sxUDoc+'.'+sExt;
				eIFrame.src='/webapps/SimpleUpload/Upload.aspx?sid='+sxSid+'&Fn='+sxUDoc+'.'+sExt
			}
			else
			{
				sxEditingMenuUploadUrl=sxSid+'_'+sxUDoc+'.rtf';
				eIFrame.src='/webapps/SimpleUpload/Upload.aspx?sid='+sxSid+'&Fn='+sxUDoc+'.rtf'
			}
			
			var eDesc=document.getElementById('UploadDocumentDesc');
			var sxColId=sxEditingMenuUDoc+'_T0R0C2';
			var eCol=document.getElementById(sxColId);
			if(eDesc!=null&&eCol!=null){				
				var iIndexBegB;
				var iIndexEndB;
				iIndexBegB=eCol.innerHTML.indexOf('<DOCDESC>');
				if(iIndexBegB!=-1){
					iIndexBegB+='<DOCDESC>'.length;
					iIndexEndB=eCol.innerHTML.indexOf('</DOCDESC>');
					if(iIndexEndB!=-1){
						eDesc.value=eCol.innerHTML.substring(iIndexBegB,iIndexEndB);												
					}
				}				
			}		
			else{
				//ERROR	
				alert('Error: could not find existing document description. Please contact customer service.');		
			}			
		}
		else if(iStatusCode==MENU_STATUS_READY||iStatusCode==MENU_STATUS_REPEALED)
			sxId='EditDocumentMenu';		
	}
	
	DisplayEditingMenu(eThis,sxId,false);
}

function EditMenuDownloadFile(sxSid){
	var sx='';
	SubmitByParams('sid='+sxSid+'&UDoc='+sxEditingMenuUDoc+'&source=cpgtask&srccmd=editmenudownloadfile',false);
	sx=sxHttpReqData;
	
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');
	
	var sxUrl='';	

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
		sxUrl=sx;		
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		alert(sx);
		return; 
	}
	else{
		alert('Failed to download a copy of the document being processed. Failed to obtain status response from the server.');
		return;
	}
	
	window.location.href='/cgi-exe/cpage.dll?sid='+sxSid+'&file='+sxUrl;
	DisplayEditingMenu(null,'',false);

}

function EditMenuUpdateHeading(sxSid){
	var eDesc=document.getElementById('UpdateHeadingDesc');
	if(eDesc==null){
		alert('Error: failed to obtain heading description. Please contact customer service.');
		return;
	}
	
	eDesc.value=eDesc.value.trim();
	if(eDesc.value.length==0){	
		alert('Error: you must specify the description for this heading.');
		return;
	}
			
	var sx='';
	SubmitByParams('sid='+sxSid+'&UDoc='+sxEditingMenuUDoc+'&source=cpgtask&srccmd=editmenuupdateheading&Desc='+escape(eDesc.value),false);
	sx=sxHttpReqData;

	//alert('Server Msg='+sx);
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		alert(sx);
		return; 
	}
	else{
		alert('Failed to update heading information. No response from server.');
		return;
	}
	
	var sxColId=sxEditingMenuUDoc+'_T0R0C1';
	var eCol=document.getElementById(sxColId);
	if(eCol!=null){
		var iIndexBegB;
		var iIndexEndB;
		iIndexBegB=eCol.innerHTML.indexOf('<B>');
		if(iIndexBegB!=-1){
			iIndexEndB=eCol.innerHTML.indexOf('</B>');
			if(iIndexEndB!=-1){
				var sxEnd=eCol.innerHTML.substring(iIndexEndB);
				var sx=eCol.innerHTML.substring(0,iIndexBegB+3);
				sx+=eDesc.value;
				sx+=sxEnd;
				eCol.innerHTML=sx;
			}
		}
	}		
	else{
		alert('Failed to dynamically update the heading description on the menu. Please reload the page.');
	}	
	
	eDesc.value='';
	DisplayEditingMenu(null,'',false);
}

function EditMenuCheckoutDocument(sxSid,sxScope,sxFullPath){	
	var sx='';
	SubmitByParams('sid='+sxSid+'&Scope='+sxScope+'&FullPath='+escape(sxFullPath)+'&UDoc='+sxEditingMenuUDoc+'&source=cpgtask&srccmd=editmenucheckoutdocument',false);
	sx=sxHttpReqData;
	
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');
	
	var sxUrl='';
	var sxStatusMsg='';

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
	
		var iBegUrl=sx.indexOf('<Url>');
		var iEndUrl=sx.indexOf('</Url>');
		var iBegMsg=sx.indexOf('<Msg>');
		var iEndMsg=sx.indexOf('</Msg>');
				
		if(iBegUrl!=-1&&iEndUrl!=-1){
			sxUrl=sx.substring(iBegUrl+5,iEndUrl);
		}
		if(iBegMsg!=-1&&iEndMsg!=-1){
			sxStatusMsg=sx.substring(iBegMsg+5,iEndMsg);
		}		
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		alert(sx);
		return; 
	}
	else{
		alert('Failed to edit document. Failed to obtain status response from the server.');
		return;
	}
	
	var eButton=document.getElementById('EditMenuItem_'+sxEditingMenuUDoc);	
	var eStatusMsg=document.getElementById('EMIMsg_'+sxEditingMenuUDoc);
	
	if(sxUrl.length==0){
		if(eButton!=null)
			eButton.value='In Use';
		if(eStatusMsg!=null)
			eStatusMsg.innerHTML=sxStatusMsg;
		alert(sxStatusMsg);			
	}
	else{		
		//It was checked out by the user!
		//We need to have the user download sxUrl!
		if(eButton!=null){
			eButton.value='Upload';		
			eButton.setAttribute('StatusCode',MENU_STATUS_UPLOAD);
		}
		if(eStatusMsg!=null)
			eStatusMsg.innerHTML='';
		window.location.href='/cgi-exe/cpage.dll?sid='+sxSid+'&file='+sxUrl;			
	}	
		
	DisplayEditingMenu(null,'',false);
}


function EditMenuCheckinDocument(sxSid,sxScope,sxFullPath){	
	EditMenuSubmitDocument(sxSid,sxScope,sxFullPath,'editmenucheckindocument');
}

function EditMenuRetry(sxSid,sxScope,sxFullPath){
	EditMenuSubmitDocument(sxSid,sxScope,sxFullPath,'editmenuresubmitdocument');	
}

function EditMenuSubmitDocument(sxSid,sxScope,sxFullPath,sxSrcCmd){
	var eDesc=document.getElementById('UploadDocumentDesc');
	var ePublish=document.getElementById('UploadDocumentPublish');
	var eRepublish=document.getElementById('UploadDocumentRepublish');	
	var eSimpleUploadIFrame;
	if(sxSrcCmd=='editmenureplaceext')
		eSimpleUploadIFrame=document.getElementById('SimpleUploadIFrame2');
	else
		eSimpleUploadIFrame=document.getElementById('SimpleUploadIFrame');
	
	
	if(eDesc==null||ePublish==null||eRepublish==null||eSimpleUploadIFrame==null){
		alert('Error: one or more required input values are missing. Please contact customer service.');
		return;
	}
	
	var sxDesc='';
	var iPublishType=0;	
	if(sxSrcCmd!='editmenureplaceext'){
		if(ePublish.checked==true)
			iPublishType=0;
		else if(eRepublish.checked==true)
			iPublishType=1;
			
		sxDesc=eDesc.value;
		sxDesc=sxDesc.trim();
	}
		
	if(sxSrcCmd!='editmenureplaceext'){
		if(document.frames.SimpleUploadIFrame.document.forms[0].UploadInputFile.value.length==0){
			alert('You must first click "Browse" to select the file containing the changes you made for this document.');
			return;	
		}
		document.frames.SimpleUploadIFrame.document.forms[0].HtmlUploadButton.click();
	}
	else{
		if(document.frames.SimpleUploadIFrame2.document.forms[0].UploadInputFile.value.length==0){
			alert('You must first click "Browse" to select the file containing the changes you made for this document.');
			return;	
		}
		document.frames.SimpleUploadIFrame2.document.forms[0].HtmlUploadButton.click();
	}
	window.setTimeout('RunEditingMenuCheckinFinalizeTimer(\''+sxSid+'\',\''+sxScope+'\',\''+sxFullPath+'\',\''+sxEditingMenuUDoc+'\',\''+sxEditingMenuUploadUrl+'\','+iPublishType+',\''+sxDesc+'\',\''+sxSrcCmd+'\');',100);
}

function EditMenuCancel(sxSid,iType){		
	var sx='';
	if(iType==0)
		SubmitByParams('sid='+sxSid+'&UDoc='+sxEditingMenuUDoc+'&source=cpgtask&srccmd=editmenucancelcheckout',false);
	else
		SubmitByParams('sid='+sxSid+'&UDoc='+sxEditingMenuUDoc+'&source=cpgtask&srccmd=editmenuabandonerror',false);
	sx=sxHttpReqData;
	
	var iBegStatus=sx.indexOf('<Status>');
		var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');
	
	var sxUrl='';
	var sxStatusMsg='';

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		alert(sx);
		return; 
	}
	else{
		alert('Failed to cancel document changes. Failed to obtain status response from the server.');
		return;
	}
	
	var eButton=document.getElementById('EditMenuItem_'+sxEditingMenuUDoc);
	var eStatusMsg=document.getElementById('EMIMsg_'+sxEditingMenuUDoc);
	if(eButton!=null&&eStatusMsg!=null){
		eButton.value='Edit';
		eButton.setAttribute('StatusCode',MENU_STATUS_READY);		
		eStatusMsg.innerHTML='';
	}	
	
	DisplayEditingMenu(null,'',false);	
}

function RunEditingMenuCheckinFinalizeTimer(sxSid,sxScope,sxFullPath,sxUDoc,sxFn,iPublishType,sxDesc,sxSrcCmd){	
	var eSimpleUploadIFrame;
	if(sxSrcCmd=='editmenureplaceext')
		eSimpleUploadIFrame=document.getElementById('SimpleUploadIFrame2');
	else
		eSimpleUploadIFrame=document.getElementById('SimpleUploadIFrame');	
	
	if(eSimpleUploadIFrame==null){
		alert('Error: failed to find upload control. Please contact customer service.');
		return;
	}
	
	var iValue=0;
	
	if(sxSrcCmd=='editmenureplaceext')
		iValue=parseInt(document.frames.SimpleUploadIFrame2.document.forms[0].IsUploadComplete.value);
	else
		iValue=parseInt(document.frames.SimpleUploadIFrame.document.forms[0].IsUploadComplete.value);	
	if(iValue==0){	
		var iMs=1000;	
		window.setTimeout('RunEditingMenuCheckinFinalizeTimer(\''+sxSid+'\',\''+sxScope+'\',\''+sxFullPath+'\',\''+sxUDoc+'\',\''+sxFn+'\','+iPublishType+',\''+sxDesc+'\',\''+sxSrcCmd+'\');',iMs);
		return;
	}
	else if(iValue!=1){
		alert('Error: failed to upload the document to the server. Please contact customer service.');
		return;	
	}
		
	var sx='';
	SubmitByParams('sid='+sxSid+'&Scope='+sxScope+'&FullPath='+escape(sxFullPath)+'&UDoc='+sxUDoc+'&Fn='+sxFn+'&source=cpgtask&srccmd='+sxSrcCmd+'&PublishType='+iPublishType+'&Desc='+escape(sxDesc),false);
	sx=sxHttpReqData;
	
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');
	
	var sxUrl='';
	var sxStatusMsg='';

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		alert(sx);
		return; 
	}
	else{
		alert('Failed to upload document changes. Failed to obtain status response from the server.');
		return;
	}
	
	var eButton=document.getElementById('EditMenuItem_'+sxUDoc);
	var eStatusMsg=document.getElementById('EMIMsg_'+sxUDoc);
	if(eButton!=null&&eStatusMsg!=null){
		if(sxSrcCmd=='editmenureplaceext'){
			eButton.value='Edit';
			eButton.setAttribute('StatusCode',MENU_STATUS_READY);		
			eStatusMsg.innerHTML='';
		}
		else{
			eButton.value='Processing';
			eButton.setAttribute('StatusCode',MENU_STATUS_PROCESSING);		
			eStatusMsg.innerHTML='This document has been queued for processing.';
		}
	}	
	
	DisplayEditingMenu(null,'',false);
}


function EditableMenuCanViewDoc(eThis,sxSid,sxUDoc){	
	var sx='';
	SubmitByParams('sid='+sxSid+'&UDoc='+sxUDoc+'&source=cpgtask&srccmd=editmenuisitemviewable',false);
	sx=sxHttpReqData;
	
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');
	
	var sxUrl='';
	var sxStatusMsg='';

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		alert(sx);
		return; 
	}
	else{
		alert('Failed to obtain document status. Failed to obtain status response from the server.');
		return;
	}
	
	if(sx=='1')
		return true;
	else if(sx=='0')
		alert('This document has not been processed. Please click edit to create the first version of this document or check the status of this document later.');
	
	return false;
}

function EditMenuExtLock(sxSid,sxUDoc,sxExt){
	sxExt=sxExt.toLowerCase();
	
	var sx='';
	SubmitByParams('sid='+sxSid+'&UDoc='+sxUDoc+'&Ext='+sxExt+'&source=cpgtask&srccmd=editmenuextlock',false);
	sx=sxHttpReqData;
	
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');
	
	var iObtainedLock=0;
	var sxLockedExt='';
	var sxStatusMsg='';

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
		var iBegObtainedLock=sx.indexOf('<ObtainedLock>');
		var iEndObtainedLock=sx.indexOf('</ObtainedLock>');
		var iBegLockedExt=sx.indexOf('<LockedExt>');
		var iEndLockedExt=sx.indexOf('</LockedExt>');
		var iBegMsg=sx.indexOf('<Msg>');
		var iEndMsg=sx.indexOf('</Msg>');
				
		if(iBegObtainedLock!=-1&&iEndObtainedLock!=-1){
			iObtainedLock=parseInt(sx.substring(iBegObtainedLock+'<ObtainedLock>'.length,iEndObtainedLock));
		}
		if(iBegLockedExt!=-1&&iEndLockedExt!=-1){
			sxLockedExt=sx.substring(iBegLockedExt+'<LockedExt>'.length,iEndLockedExt);
			sxLockedExt=sxLockedExt.toLowerCase();
		}
		if(iBegMsg!=-1&&iEndMsg!=-1){
			sxStatusMsg=sx.substring(iBegMsg+5,iEndMsg);
		}		
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		alert(sx);
		return false; 
	}
	else{
		alert('Failed to lock the document for replacement. Failed to obtain status response from the server.');
		return false;
	}
	
	var eButton=document.getElementById('EditMenuItem_'+sxUDoc);
	var eStatusMsg=document.getElementById('EMIMsg_'+sxUDoc);		
	var iStatusCode=-1;
	if(sxLockedExt!=''){			
		if(eButton!=null&&eStatusMsg!=null){
			eButton.value='Locked';
			eButton.setAttribute('StatusCode',MENU_STATUS_LOCKED);		
			eStatusMsg.innerHTML=sxStatusMsg;
		}
	}
	else{
		if(eButton!=null){
			iStatusCode=parseInt(eButton.getAttribute('StatusCode'));			
		}
	}
	
	
	
	var iExtIndex=0;
	while(true){
		var aLock=document.getElementById('EditRepLock_'+sxUDoc+'.'+iExtIndex);
		if(aLock==null)
			break;
		var sxTmpExt=aLock.getAttribute('Ext');
		sxTmpExt=sxTmpExt.toLowerCase();
		var aUpload=document.getElementById('EditRepUpload_'+sxUDoc+'.'+iExtIndex);
		//var aInUse=document.getElementById('EditRepInUse_'+sxUDoc+'.'+iExtIndex);
		var aLocked=document.getElementById('EditRepLocked_'+sxUDoc+'.'+iExtIndex);
		var spanBox=document.getElementById('EditRepBox_'+sxUDoc+'.'+iExtIndex);
		
		if(iStatusCode==MENU_STATUS_ERROR||iStatusCode==MENU_STATUS_ERRORNOTICE||iStatusCode==MENU_STATUS_ERRORADMIN||iStatusCode==MENU_STATUS_DELETED){
			spanBox.style.display='none';
		}
		else if(iObtainedLock==1&&sxLockedExt==sxTmpExt){
			spanBox.style.display='inline';
			aLock.style.display='none';		
			aUpload.style.display='inline';
			//aInUse.style.display='none';
			aLocked.style.display='none';
		}
		else if(sxStatusMsg.length==0&&iStatusCode!=MENU_STATUS_PROCESSING){
			spanBox.style.display='inline';
			aLock.style.display='inline';		
			aUpload.style.display='none';
			//aInUse.style.display='none';
			aLocked.style.display='none';
		}
		else{
			spanBox.style.display='inline';
			aLock.style.display='none';					
			aUpload.style.display='none';
			//aInUse.style.display='none';
			aLocked.style.display='inline';
		}
					
		iExtIndex++;
	}

	if(iObtainedLock==1){		
		return true;
	}
	return false;
}

function EditMenuExtGetStatus(sxSid,sxUDoc){	
	var sx='';
	SubmitByParams('sid='+sxSid+'&UDoc='+sxUDoc+'&source=cpgtask&srccmd=editmenuextislocked',false);
	sx=sxHttpReqData;
	
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');
	
	var iLockedByUser=0;
	var sxLockedExt='';
	var sxStatusMsg='';

	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);
		var iBegLockedByUser=sx.indexOf('<LockedByUser>');
		var iEndLockedByUser=sx.indexOf('</LockedByUser>');
		var iBegLockedExt=sx.indexOf('<LockedExt>');
		var iEndLockedExt=sx.indexOf('</LockedExt>');
		var iBegMsg=sx.indexOf('<Msg>');
		var iEndMsg=sx.indexOf('</Msg>');
				
		if(iBegLockedByUser!=-1&&iEndLockedByUser!=-1){
			iLockedByUser=parseInt(sx.substring(iBegLockedByUser+'<LockedByUser>'.length,iEndLockedByUser));
		}
		if(iBegLockedExt!=-1&&iEndLockedExt!=-1){
			sxLockedExt=sx.substring(iBegLockedExt+'<LockedExt>'.length,iEndLockedExt);
			sxLockedExt=sxLockedExt.toLowerCase();
		}
		if(iBegMsg!=-1&&iEndMsg!=-1){
			sxStatusMsg=sx.substring(iBegMsg+5,iEndMsg);
		}		
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		return sx;
	}
	else{		
		return 'Failed to obtain document extension lock status. Failed to obtain status response from the server.';		
	}	
		
	var eButton=document.getElementById('EditMenuItem_'+sxUDoc);
	var eStatusMsg=document.getElementById('EMIMsg_'+sxUDoc);		
	var iStatusCode=-1;
	if(sxLockedExt!=''){			
		if(eButton!=null&&eStatusMsg!=null){
			eButton.value='Locked';
			eButton.setAttribute('StatusCode',MENU_STATUS_LOCKED);		
			eStatusMsg.innerHTML=sxStatusMsg;
		}
	}
	else{
		if(eButton!=null){
			iStatusCode=parseInt(eButton.getAttribute('StatusCode'));			
		}
	}
	
	var iExtIndex=0;
	while(true){
		var aLock=document.getElementById('EditRepLock_'+sxUDoc+'.'+iExtIndex);
		if(aLock==null)
			break;
		var sxTmpExt=aLock.getAttribute('Ext');
		sxTmpExt=sxTmpExt.toLowerCase();
		var aUpload=document.getElementById('EditRepUpload_'+sxUDoc+'.'+iExtIndex);
		//var aInUse=document.getElementById('EditRepInUse_'+sxUDoc+'.'+iExtIndex);
		var aLocked=document.getElementById('EditRepLocked_'+sxUDoc+'.'+iExtIndex);
		var spanBox=document.getElementById('EditRepBox_'+sxUDoc+'.'+iExtIndex);
		
		if(iStatusCode==MENU_STATUS_ERROR||iStatusCode==MENU_STATUS_ERRORNOTICE||iStatusCode==MENU_STATUS_ERRORADMIN||iStatusCode==MENU_STATUS_DELETED){
			spanBox.style.display='none';			
		}
		else if(iLockedByUser==1&&sxLockedExt==sxTmpExt){
			spanBox.style.display='inline';
			aLock.style.display='none';		
			aUpload.style.display='inline';
			//aInUse.style.display='none';
			aLocked.style.display='none';
		}		
		else if(sxStatusMsg.length==0&&iStatusCode!=MENU_STATUS_PROCESSING){
			spanBox.style.display='inline';
			aLock.style.display='inline';		
			aUpload.style.display='none';
			//aInUse.style.display='none';
			aLocked.style.display='none';
		}
		else{
			spanBox.style.display='inline';
			aLock.style.display='none';					
			aUpload.style.display='none';
			//aInUse.style.display='none';
			aLocked.style.display='inline';
		}
					
		iExtIndex++;
	}

	return sxStatusMsg;
	//if(iLockedByUser==1)
	//	return true;
	//return false;
}

function EditMenuExtUpload(eThis,sxSid,sxUDoc,sxExt,sxOrigUrl){
	var e=document.getElementById('UploadReplacementFileName');
	if(e!=null){		
		var iEnd=sxOrigUrl.lastIndexOf('/');
		if(iEnd!=-1)
			e.innerHTML=sxOrigUrl.substr(iEnd+1);
		else			
			e.innerHTML=sxOrigUrl;
	}
	sxEditingMenuUDoc=sxUDoc;
	sxEditingMenuExt=sxExt;
	var eIFrame=document.getElementById('SimpleUploadIFrame2');
	sxEditingMenuUploadUrl=sxSid+'_'+sxUDoc+'.'+sxExt;
	eIFrame.src='/webapps/SimpleUpload/Upload.aspx?sid='+sxSid+'&Fn='+sxUDoc+'.'+sxExt;
	DisplayEditingMenu(eThis,'UploadExtDocumentMenu',false);	
	return false;
}

function EditMenuUploadReplacement(sxSid){
	EditMenuSubmitDocument(sxSid,'','','editmenureplaceext');
}

function EditMenuCancelReplacement(sxSid){	
	var sx='';
	SubmitByParams('sid='+sxSid+'&UDoc='+sxEditingMenuUDoc+'&Ext='+sxEditingMenuExt+'&source=cpgtask&srccmd=editmenuextcancel',false);
	sx=sxHttpReqData;
	
	var iBegStatus=sx.indexOf('<Status>');
	var iEndStatus=sx.indexOf('</Status>');
	var iBegError=sx.indexOf('<Error>');
	var iEndError=sx.indexOf('</Error>');
		
	if(iBegStatus!=-1&&iEndStatus!=-1){
		sx=sx.substring(iBegStatus+8,iEndStatus);	
	}
	else if(iBegError!=-1&&iEndError!=-1){
		sx=sx.substring(iBegError+7,iEndError);		
		return sx;
	}
	else{		
		return 'Failed to cancel document extension replacement. Failed to obtain status response from the server.';		
	}	

	EditMenuExtGetStatus(sxSid,sxEditingMenuUDoc);
	
	var eButton=document.getElementById('EditMenuItem_'+sxEditingMenuUDoc);
	var eStatusMsg=document.getElementById('EMIMsg_'+sxEditingMenuUDoc);		
	if(eButton!=null&&eStatusMsg!=null){
		eButton.value='Edit';
		eButton.setAttribute('StatusCode',MENU_STATUS_READY);		
		eStatusMsg.innerHTML='';
	}
	
	
	DisplayEditingMenu(null,'',false);
}

function EditMenuExtIsLocked(sxSid,sxUDoc){
	var sxMsg=EditMenuExtGetStatus(sxSid,sxUDoc);
	if(sxMsg.length>0){
		alert(sxMsg);
	}	
	return false;
}


function RequestDocReview(sxUDoc,sxShortId){
	var sx='';
	SubmitByParams('UDoc='+sxUDoc+'&uid='+sxShortId+'&source=cpgtask&srccmd=requestdocreview',false);
	sx=sxHttpReqData;
	if(sx=='<Success></Success>'){
		var oMsg=document.getElementById('ReviewConfirm');
		var oNotice=document.getElementById('ReviewNotice');
		if(oMsg!=null){
			oMsg.style.display='block';
		}
		if(oNotice!=null){
			oNotice.style.display='none';
		}
	}
	else{
		var iBegError=sx.indexOf('<Error>');
		var iEndError=sx.indexOf('</Error>');

		if(iBegError==-1||iEndError==-1){
			alert('Unknown error. Please contact customer service at 1-800-808-3372 to request the review of document '+sxUDoc);
		}
		else{
			iBegError+=7;
			alert(sx.substring(iBegError,iEndError));
		}
	}	
}

function SizeFilterControl(sxId,sxWidth,sxHeight){
	return; //Disable this for now.
	var e=document.getElementById(sxId);
	if(e==null){
		return;
	}
	e.style.height=sxHeight;
	e.style.width=sxWidth;
}

function ApplyFilter(){
	var eIFrame=document.getElementById('FilterControl');
	var oWin=(eIFrame.contentWindow||eIFrame.contentDocument);
	oWin.ApplyFilter();
}

function ClearFilter(){
	var eIFrame=document.getElementById('FilterControl');
	var oWin=(eIFrame.contentWindow||eIFrame.contentDocument);
	oWin.ClearFilter();
}

/********************************************* functions for controlling ART annotation controls *********************************************/

var DoAnnotControlCheck = true;
var sxCurrentAnnotCntrlDiv = "";
var DoAnnotControlDataSave = true;
var iSelected = -1;

function AnnotControlsLimitCheck()
{
	var TextAreaFound = false;
	var iLimit;
	var AnnotControlsList;

	if (DoAnnotControlCheck == true)
	{
		if (sxCurrentAnnotCntrlDiv != "")
		{
			AnnotControlsList = document.getElementById(sxCurrentAnnotCntrlDiv);
			if (AnnotControlsList)
			{
				AnnotControlsList = AnnotControlsList.getElementsByTagName("textarea");
				for (i = 0; i < AnnotControlsList.length; i++)
				{
					if (AnnotControlsList.item(i).attributes.getNamedItem("id").nodeValue.substring(0, 10).toLowerCase() == "annotcntrl")
					{
						var MaxNode = AnnotControlsList.item(i).attributes.getNamedItem("maxlength");
						if (MaxNode)
						{
							iLimit = MaxNode.nodeValue;
							CheckAnnotControlTextAreaLimit(AnnotControlsList.item(i), iLimit);
							if (iLimit > 0)
								TextAreaFound = true;
						}
					}
				}
				if (TextAreaFound == true)
					setTimeout(AnnotControlsLimitCheck, 500);
			}
		}
	}
}

function CheckAnnotControlTextAreaLimit(sxControl, iLimit)
{
	if ((iLimit > 0) && (sxControl.value.length > iLimit))
	{
		sxControl.value = sxControl.value.substring(0, iLimit);
		alert("You have exceeded the limit and the data has been truncated.");
	}
	if ((sxControl.style.height == undefined) || (sxControl.style.height == ''))
		sxControl.style.height = ANNOT_TEXT_HEIGHT + 'px';
	var iHeight = parseInt(sxControl.style.height);
	if ((sxControl.scrollHeight >= ANNOT_TEXT_HEIGHT) && (sxControl.scrollHeight != iHeight))
		sxControl.style.height = sxControl.scrollHeight + 'px';
	else if ((iHeight < ANNOT_TEXT_HEIGHT) || ((sxControl.scrollHeight < ANNOT_TEXT_HEIGHT) && (iHeight != ANNOT_TEXT_HEIGHT)))
		sxControl.style.height = ANNOT_TEXT_HEIGHT + 'px';
}

function StartAnnotControlLimitCheck(sxSetDiv)
{
	sxCurrentAnnotCntrlDiv = sxSetDiv; // set the global variable
	DoAnnotControlCheck = true;
	DoAnnotControlDataSave = true;
	UpdateAnnotControlView(null);
	AnnotControlsHeightChange();
	AnnotControlsLimitCheck();
}

function StopAnnotControlLimitCheck()
{
	DoAnnotControlCheck = false;
}

function UpdateAnnotControlView(objSelect)
{
	var iCount;
	var DivTag;

	if (sxCurrentAnnotCntrlDiv != "")
	{
		DivTag = document.getElementById(sxCurrentAnnotCntrlDiv);
		if (DivTag)
		{
			if (objSelect == null)
			{
				iSelected = -1;
				CheckPrimaryStatusSelected(DivTag, 0);
			}
			else
			{
				iCount = objSelect.length;
				for (iSelected = 0; iSelected < iCount; iSelected++)
				{
					if (objSelect.item(iSelected).selected == true)
						break;
				}
			}
			CheckChildView(DivTag);
		}
	}
}

function CheckChildView(ChildNode)
{
	var attrib;

	if (ChildNode)
	{
		if (ChildNode.attributes)
		{
			attrib = ChildNode.getAttribute("PrimaryStatusView");
			if (attrib)
			{
				if (iSelected == 0)
				{
					if (attrib.valueOf() == 'Exclusion')
						ChildNode.style.display = "none";
					else if (attrib.valueOf() == 'Comment')
						ChildNode.style.display = "none";
					else if (attrib.valueOf() == 'Deleted')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'Summary')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'Question')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'Guide')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'SubjectArea')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'RiskArea')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'PrimStatus')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'SecStatus')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'SubDoc')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'LinkUrl')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'LinkText')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'UrlSyntax')
						ChildNode.disabled = false;
					else
						ChildNode.disabled = false;
				}
				else if (iSelected == 1)
				{
					if (attrib.valueOf() == 'Exclusion')
					{
						ChildNode.style.display = "";
						ChildNode.disabled = false;
					}
					else if (attrib.valueOf() == 'Comment')
						ChildNode.style.display = "none";
					else if (attrib.valueOf() == 'Summary')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'Question')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'Guide')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'SubjectArea')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'RiskArea')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'Deleted')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'PrimStatus')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'SecStatus')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'SubDoc')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'LinkUrl')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'LinkText')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'UrlSyntax')
						ChildNode.disabled = true;
					else
						ChildNode.disabled = false;
				}
				else if (iSelected == 2)
				{
					if (attrib.valueOf() == 'Exclusion')
						ChildNode.style.display = "none";
					else if (attrib.valueOf() == 'Comment')
					{
						ChildNode.style.display = "";
						ChildNode.disabled = false;
					}
					else if (attrib.valueOf() == 'Summary')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'Question')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'Guide')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'SubjectArea')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'RiskArea')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'Deleted')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'PrimStatus')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'SecStatus')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'SubDoc')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'LinkUrl')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'LinkText')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'UrlSyntax')
						ChildNode.disabled = true;
					else
						ChildNode.disabled = false;
				}
				else if (iSelected == 3)
				{
					if (attrib.valueOf() == 'Exclusion')
					{
						ChildNode.style.display = "";
						ChildNode.disabled = false;
					}
					else if (attrib.valueOf() == 'Comment')
					{
						ChildNode.style.display = "";
						ChildNode.disabled = false;
					}
					else if (attrib.valueOf() == 'Deleted')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'Summary')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'Question')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'Guide')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'SubjectArea')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'RiskArea')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'PrimStatus')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'SecStatus')
						ChildNode.disabled = false;
					else if (attrib.valueOf() == 'SubDoc')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'LinkUrl')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'LinkText')
						ChildNode.disabled = true;
					else if (attrib.valueOf() == 'UrlSyntax')
						ChildNode.disabled = true;
					else
						ChildNode.disabled = true;
				}
			}
		}
		CheckChildView(ChildNode.firstChild);
		CheckChildView(ChildNode.nextSibling);
	}
}

function CheckPrimaryStatusSelected(ChildNode, bControl)
{
	var attrib;

	if ((ChildNode) && (iSelected == -1))
	{
		if (ChildNode.attributes)
		{
			attrib = ChildNode.getAttribute("PrimaryStatusView");
			if (attrib)
			{
				if ((attrib == 'PrimStatus') && (bControl == 0) || (attrib == 'SecStatus') && (bControl == 1))
				{
					if (ChildNode.length)
					{
						var iLength = ChildNode.length;
						for (i = 0; i < iLength; i++)
						{
							if (ChildNode.item(i).selected == true)
							{
								iSelected = i;
								break;
							}
						}
					}
				}
			}
		}
		CheckPrimaryStatusSelected(ChildNode.firstChild, bControl);
		CheckPrimaryStatusSelected(ChildNode.nextSibling, bControl);
	}
}

function CheckRequiredControlData()
{
	var DivTag;

	if (sxCurrentAnnotCntrlDiv != "")
	{
		DivTag = document.getElementById(sxCurrentAnnotCntrlDiv);
		if (DivTag)
		{
			CheckPrimaryStatusSelected(DivTag, 0);
			CheckControlRequired(DivTag);
			if (DoAnnotControlDataSave == true)
				DisableAnnotControls(DivTag);
		}
	}
	return true;
}

function CheckControlRequired(ChildNode)
{
	var attrib;

	if (ChildNode)
	{
		if (ChildNode.attributes)
		{
			attrib = ChildNode.getAttribute("Required");
			if (attrib)
			{
				if (iSelected == 1)
				{
					if ((attrib.valueOf() == 'true') && (ChildNode.value == ''))
					{
						alert("Please enter the Reason for exclusion.");
						DoAnnotControlDataSave = false;
					}
				}
			}
		}
		CheckControlRequired(ChildNode.firstChild);
		CheckControlRequired(ChildNode.nextSibling);
	}
}

function DisableAnnotControls(ChildNode)
{
	var attrib;

	if (ChildNode)
	{
		if (ChildNode.attributes)
		{
			attrib = ChildNode.getAttribute("PrimaryStatusView");
			if (attrib)
				ChildNode.disabled = true;
		}
		DisableAnnotControls(ChildNode.firstChild);
		DisableAnnotControls(ChildNode.nextSibling);
	}
}

function SetHiddenStatusControls(e)
{
	var DivTag;

	if (sxCurrentAnnotCntrlDiv != "")
	{
		DivTag = document.getElementById(sxCurrentAnnotCntrlDiv);
		if (DivTag)
		{
			if (e.PrimaryStatus){
				iSelected = -1;
				CheckPrimaryStatusSelected(DivTag, 0);
				e.PrimaryStatus.value = iSelected;
			}
			if (e.SecondaryStatus){
				iSelected = -1;
				CheckPrimaryStatusSelected(DivTag, 1);
				e.SecondaryStatus.value = iSelected;
			}
		}
	}
}

function AnnotControlsHeightChange()
{
	var AnnotControlsList;

	AnnotControlsList = document.getElementsByTagName("textarea");
	for (i = 0; i < AnnotControlsList.length; i++)
	{
		if (AnnotControlsList.item(i).attributes.getNamedItem("id").nodeValue.substring(0, 10).toLowerCase() == "annotcntrl")
			AnnotControlsList.item(i).style.height = ANNOT_TEXT_HEIGHT + 'px';
	}
}

function DisplaySyntaxMessage()
{
	alert("For CyberRegs links, enter a Link URL consisting of an asterisk followed by the CyberRegs citation, such as *40 CFR 27.14.\r\nFor links to files you create, enter a Link URL consisting of a dollar sign followed by the name of your file, such as $cfr_40_52_guidenote1.doc.  Files may be .htm, .doc., or .pdf.");
}

/*************************** For E-Codes Popup Box **************************************/
var eESMenu=null;
function DoES(eThis,sxSid,sxUDoc,sxUSec,sxUPar){	
	if(eESMenu==null)
		eESMenu=document.getElementById('divESDrop');
	var x=FindPosX(eThis);
	var y=FindPosY(eThis);
	
	eESMenu.style.left=x+'px';
	eESMenu.style.top=y+eThis.offsetHeight+5+'px';
	
	var sx='<div style="border:solid 1px #000000; background:#cedbd8; width:398px; height:27px;">'+
		'<table cellpadding="0" cellspacing="0" border="0" width="98%" align="center">'+
            	'<tr><td valign="middle"><img border="0" src="/images/icc-es/icces_ygg.gif" style="padding:2px;" /></td>'+
                '<td valign="middle" align="left"><font face="Arial" size="2"><b>View ICC-ES Reports/Listings for:</b></font></td>'+
                '<td valign="middle" align="right">'+
		'<a target="_blank" href="/cgi-exe/cpage.dll?pg=nbdr&rp=/data/es/ESReportHelp.htm&sid='+sxSid+'"><img src="/images/HelpIcon.gif" alt="Help" border="0" /></a>'+
                '<a onclick="eESMenu.style.visibility=\'hidden\';return false;" target="_blank" href="javascript:void(0)"><img src="/images/close.gif" alt="close" border="0" /></a></td>'+
                '</tr></table></div><div style="text-align:left; border:1px solid black; background-color:#f1f1f1; height:242px; width:398px; overflow-y:scroll;">'+
		'<table cellSpacing="0" cellPadding="2" border="0" width="381"><tr><td bgColor="#f1f1f1">';

	var sxParams='source=cpgtask&srccmd=esreports&sid='+sxSid+'&udoc='+sxUDoc+'&usec='+sxUSec+'&upar='+sxUPar;
	if(SubmitByParams(sxParams,false)==false){
		alert('Error: server failed to return information for the ICC-ES reports menu. Please contact customer service.');
		return;
	}

	sx+=sxHttpReqData;
	sx+='</tr></table></div><div style="border:solid 1px #000000; background:#cedbd8; width:398px; text-align:center; height:27px; font-family:Arial, Helvetica, sans-serif;"><a href="http://ICC-ES.citation.com" target="_blank">Visit ICC-ES Website</a></div>';

	eESMenu.innerHTML=sx;
	eESMenu.style.visibility='visible';
}

/*****************************************************************************************/

function setWidth()
{
	/**** This is a dummy until the real one is released.  Delete this method ****/
}
