
function isValidElement(htmlElem){if(htmlElem!==null&&htmlElem!==undefined){return true;}
return false;}
function isValidElemProperty(htmlElemProperty){if(htmlElemProperty!==null&&htmlElemProperty!==undefined){return true;}
return false;}
function setHtmlElementFocus(htmlElem,selectFlag){if(htmlElem.type=="text"){if(!selectFlag){setInputTextFocus(htmlElem,true);}else{htmlElem.select();htmlElem.focus();}}else if(htmlElem.type!="hidden"){htmlElem.focus();}}
function setHtmlElemIdFocus(htmlElemId,selectFlag){var htmlElem=document.getElementById(htmlElemId);if(isValidElement(htmlElem)){setHtmlElementFocus(htmlElem,selectFlag);}}
function setInputTextFocus(textElem,updateClass){var textLen=textElem.value.length;if(textElem.createTextRange){var textRange=textElem.createTextRange();textRange.moveStart('character',textLen);textRange.select();}else if(textElem.setSelectionRange){textElem.setSelectionRange(textLen,textLen);}
if(updateClass&&textElem.className.search("text_focus")==-1){textElem.className+=" text_focus";}
textElem.focus();}
function setInputTextFocusAtPos(textElem,focusPos){if(textElem.createTextRange){var textRange=textElem.createTextRange();textRange.collapse(true);textRange.moveEnd('character',focusPos);textRange.moveStart('character',focusPos);textRange.select();}else if(textElem.setSelectionRange){textElem.setSelectionRange(focusPos,focusPos);}
textElem.focus();}
function getTextCursorPosition(textElem){var cursorPos=null;if(typeof textElem.selectionStart=="number"){cursorPos=textElem.selectionStart;}else if(document.selection&&textElem.createTextRange){textElem.focus();selRange=document.selection.createRange();selRange.collapse(true);selRange.moveStart("character",-textElem.value.length);cursorPos=selRange.text.length;}
return cursorPos;}
function checkElementType(checkElem,formElemTypes){for(j=0;j<formElemTypes.length;j++){if(checkElem.type==formElemTypes[j]){return true;}}
return false;}
function getTabSeqElement(storedElem,nextFlag,toolContextFlag){var formElemTypes=[];formElemTypes[0]="text";formElemTypes[1]="select-one";if(!toolContextFlag){formElemTypes[2]="button";}
var elemTabIndex=storedElem.tabIndex;var tabSeqElem=null;if(!isValidElemProperty(elemTabIndex)){tabSeqElem=getTabIndexSeqElem(storedElem,nextFlag,null,formElemTypes,toolContextFlag);if(!isValidElement(tabSeqElem)){tabSeqElem=getTabIndexSeqElem(null,nextFlag,null,formElemTypes,toolContextFlag);}}else{tabSeqElem=getTabIndexSeqElem(storedElem,nextFlag,elemTabIndex,formElemTypes,toolContextFlag);if(!isValidElement(tabSeqElem)){if(elemTabIndex==1){tabSeqElem=getTabIndexSeqElem(null,nextFlag,0,formElemTypes,toolContextFlag);}else{tabSeqElem=getTabIndexSeqElem(null,nextFlag,1,formElemTypes,toolContextFlag);}}
if(!isValidElement(tabSeqElem)){tabSeqElem=getTabIndexSeqElem(null,nextFlag,elemTabIndex,formElemTypes,toolContextFlag);}}
return tabSeqElem;}
function getTabIndexSeqElem(storedElem,nextFlag,tabIndex,formElemTypes,toolContextFlag){var elems=document.toolform.elements;var foundElemFlag=false;var tabElem=null;var formElem=null;for(i=0;i<elems.length;i++){if(nextFlag){formElem=elems[i];}else{formElem=elems[elems.length-1-i];}
if(isValidElement(storedElem)&&formElem.id==storedElem.id){foundElemFlag=true;}else if(checkElementType(formElem,formElemTypes)){if(tabIndex===null||(tabIndex>0&&formElem.tabIndex==tabIndex)||(tabIndex<=0&&formElem.tabIndex<=0)){if(!isValidElement(storedElem)||foundElemFlag){tabElem=formElem;break;}}}}
return tabElem;}
function getNextCalcElement(currElem){var formElemTypes=[];formElemTypes[0]="text";formElemTypes[1]="select-one";var nextCalcElem=getNextFormElement(currElem,formElemTypes);return nextCalcElem;}
function getFirstToolCalcElement(toolNum){var formElemTypes=[];formElemTypes[0]="text";formElemTypes[1]="select-one";var firstCalcElem=getFirstToolFormElement(toolNum,formElemTypes);return firstCalcElem;}
function getNextFormElement(currElem,formElemTypes){var debugOn=false;var elems=document.toolform.elements;if(debugOn){document.write(elems.length+"<br />");}
var findFlag=false;for(i=0;i<elems.length;i++){if(debugOn){document.write(i+" "+elems[i]+" "+elems[i].type+" "+
elems[i].id+"<br />");}
if(elems[i].id==currElem.id){if(debugOn)
{document.write("Found current elem "+currElem.id+"<br />");}
findFlag=true;}else if(findFlag){for(j=0;j<formElemTypes.length;j++){if(elems[i].type==formElemTypes[j]){if(debugOn){document.write("Found next form elem "+elems[i].id+"<br />");}
return elems[i];}}}}
for(i=0;i<elems.length;i++){if(debugOn){document.write(i+" "+elems[i]+" "+elems[i].type+" "+
elems[i].id+"<br />");}
if(elems[i].id==currElem.id){if(debugOn){document.write("Found current elem "+currElem.id+"<br />");}
break;}else{for(j=0;j<formElemTypes.length;j++){if(elems[i].type==formElemTypes[j]){if(debugOn){document.write("Found next form elem "+elems[i].id+"<br />");}
return elems[i];}}}}
return currElem;}
function getFirstToolFormElement(toolNum,formElemTypes){var debugOn=false;var elems=document.toolform.elements;if(debugOn){document.write(elems.length+"<br />");}
var toolNumMatch="e_"+toolNum+"_";for(i=0;i<elems.length;i++){if(debugOn){document.write(i+" "+elems[i]+" "+elems[i].type+" "+
elems[i].id+"<br />");}
if(elems[i].id.indexOf(toolNumMatch)===0){for(j=0;j<formElemTypes.length;j++){if(elems[i].type==formElemTypes[j]){if(debugOn){document.write("Found next form elem "+elems[i].id+"<br />");}
return elems[i];}}}}
return null;}
function storeCurrentScrollPosition(){var scrollPosXElem=document.getElementById("scroll_pos_x");if(isValidElement(scrollPosXElem)){scrollPosXElem.value=getScrollPosXAxis();}
var scrollPosYElem=document.getElementById("scroll_pos_y");if(isValidElement(scrollPosYElem)){scrollPosYElem.value=getScrollPosYAxis();}}
function getScrollPosXAxis(){var scrollPosX=0;if(typeof(window.pageXOffset)=="number"){scrollPosX=window.pageXOffset;}else if(document.body&&document.body.scrollLeft){scrollPosX=document.body.scrollLeft;}else if(document.documentElement&&document.documentElement.scrollLeft){scrollPosX=document.documentElement.scrollLeft;}
return scrollPosX;}
function getScrollPosYAxis(){var scrollPosY=0;if(typeof(window.pageYOffset)=="number"){scrollPosY=window.pageYOffset;}else if(document.body&&document.body.scrollTop){scrollPosY=document.body.scrollTop;}else if(document.documentElement&&document.documentElement.scrollTop){scrollPosY=document.documentElement.scrollTop;}
return scrollPosY;}
function updateActiveSiteArea(areaCode){document.getElementById("active_site_area").value=areaCode;}
function updateClickedSubmitId(submitId){document.getElementById("clicked_submit_id").value=submitId;}
function launchLoginClicked(){updateActiveSiteArea("SITE_BUTTON");}
function launchRegisterClicked(){updateActiveSiteArea("SITE_BUTTON");}
function logoutSubmitClicked(){updateActiveSiteArea("SITE_BUTTON");}
function launchToolMgrClicked(){updateActiveSiteArea("SITE_BUTTON");}
function launchOpenSetClicked(){updateActiveSiteArea("SITE_BUTTON");}
function launchSaveSetClicked(){updateActiveSiteArea("SITE_BUTTON");}
function launchEditUserClicked(){updateActiveSiteArea("SITE_BUTTON");}
function returnMainPageClicked(){updateActiveSiteArea("SITE_BUTTON");}
function loginUserNameFocus(){updateActiveSiteArea("LOGIN");}
function loginPasswordFocus(){updateActiveSiteArea("LOGIN");}
function loginRememberMeFocus(){updateActiveSiteArea("LOGIN");}
function loginSubmitClicked(){updateActiveSiteArea("LOGIN");}
function registerUserNameFocus(){updateActiveSiteArea("REGISTER");}
function registerPassword1Focus(){updateActiveSiteArea("REGISTER");}
function registerPassword2Focus(){updateActiveSiteArea("REGISTER");}
function registerEmailFocus(){updateActiveSiteArea("REGISTER");}
function registerSiteFoundFocus(){updateActiveSiteArea("REGISTER");}
function registerSubmitClicked(){updateActiveSiteArea("REGISTER");}
function mgrOpenToolNameFocus(nameTextElemId,nameCellElemId){updateActiveSiteArea("MGR_OPEN");var nameTextElem=document.getElementById(nameTextElemId);var nameCellElem=document.getElementById(nameCellElemId);nameTextElem.className+=" text_focus";nameCellElem.className+=" cell_focus";nameTextElem.select();}
function mgrOpenToolNameBlur(nameTextElemId,nameCellElemId){var nameTextElem=document.getElementById(nameTextElemId);var nameCellElem=document.getElementById(nameCellElemId);nameTextElem.className=nameTextElem.className.replace(" text_focus","");nameCellElem.className=nameCellElem.className.replace(" cell_focus","");}
function mgrOpenToolDescFocus(descTextElemId,descCellElemId){updateActiveSiteArea("MGR_OPEN");var descTextElem=document.getElementById(descTextElemId);var descCellElem=document.getElementById(descCellElemId);descTextElem.className+=" textarea_focus";descCellElem.className+=" cell_focus";descTextElem.rows="4";descTextElem.select();}
function mgrOpenToolDescBlur(descTextElemId,descCellElemId){var descTextElem=document.getElementById(descTextElemId);var descCellElem=document.getElementById(descCellElemId);descTextElem.className=descTextElem.className.replace(" textarea_focus","");descCellElem.className=descCellElem.className.replace(" cell_focus","");descTextElem.rows="2";}
function mgrOpenSubmitClicked(){updateActiveSiteArea("MGR_OPEN");}
function mgrOrderByClicked(){updateActiveSiteArea("MGR_BUTTON");}
function mgrSavedSetNameFocus(nameTextElemId,nameCellElemId){updateActiveSiteArea("MGR_SAVED");var nameTextElem=document.getElementById(nameTextElemId);var nameCellElem=document.getElementById(nameCellElemId);nameTextElem.className+=" text_focus";nameCellElem.className+=" cell_focus";nameTextElem.select();}
function mgrSavedSetNameBlur(nameTextElemId,nameCellElemId){var nameTextElem=document.getElementById(nameTextElemId);var nameCellElem=document.getElementById(nameCellElemId);nameTextElem.className=nameTextElem.className.replace(" text_focus","");nameCellElem.className=nameCellElem.className.replace(" cell_focus","");}
function mgrSavedSetDescFocus(descTextElemId,descCellElemId){updateActiveSiteArea("MGR_SAVED");var descTextElem=document.getElementById(descTextElemId);var descCellElem=document.getElementById(descCellElemId);descTextElem.className+=" textarea_focus";descCellElem.className+=" cell_focus";descTextElem.select();}
function mgrSavedSetDescBlur(descTextElemId,descCellElemId){var descTextElem=document.getElementById(descTextElemId);var descCellElem=document.getElementById(descCellElemId);descTextElem.className=descTextElem.className.replace(" textarea_focus","");descCellElem.className=descCellElem.className.replace(" cell_focus","");}
function mgrSavedSetDeleteFocus(){updateActiveSiteArea("MGR_SAVED");}
function mgrSavedSetOpenClicked(mgrOpenSetId){updateActiveSiteArea("MGR_BUTTON");updateClickedSubmitId(mgrOpenSetId);}
function mgrSavedSubmitClicked(){updateActiveSiteArea("MGR_SAVED");}
function toolSaveNameFocus(nameTextElemId,nameCellElemId){updateActiveSiteArea("SAVE");var nameTextElem=document.getElementById(nameTextElemId);var nameCellElem=document.getElementById(nameCellElemId);nameTextElem.className+=" text_focus";nameCellElem.className+=" cell_focus";nameTextElem.select();}
function toolSaveNameBlur(nameTextElemId,nameCellElemId){var nameTextElem=document.getElementById(nameTextElemId);var nameCellElem=document.getElementById(nameCellElemId);nameTextElem.className=nameTextElem.className.replace(" text_focus","");nameCellElem.className=nameCellElem.className.replace(" cell_focus","");}
function toolSaveDescFocus(descTextElemId,descCellElemId){updateActiveSiteArea("SAVE");var descTextElem=document.getElementById(descTextElemId);var descCellElem=document.getElementById(descCellElemId);descTextElem.className+=" textarea_focus";descCellElem.className+=" cell_focus";descTextElem.select();}
function toolSaveDescBlur(descTextElemId,descCellElemId){var descTextElem=document.getElementById(descTextElemId);var descCellElem=document.getElementById(descCellElemId);descTextElem.className=descTextElem.className.replace(" textarea_focus","");descCellElem.className=descCellElem.className.replace(" cell_focus","");}
function toolSaveCheckboxFocus(){updateActiveSiteArea("SAVE");}
function toolSaveSubmitClicked(){updateActiveSiteArea("SAVE");}
function toolSetUrlFocus(activeAreaCode,urlTextElemId,urlCellElemId){updateActiveSiteArea(activeAreaCode);var urlTextElem=document.getElementById(urlTextElemId);var urlCellElem=document.getElementById(urlCellElemId);urlTextElem.className+=" text_focus";urlCellElem.className+=" cell_focus";urlTextElem.select();}
function toolSetUrlBlur(urlTextElemId,urlCellElemId){var urlTextElem=document.getElementById(urlTextElemId);var urlCellElem=document.getElementById(urlCellElemId);urlTextElem.className=urlTextElem.className.replace(" text_focus","");urlCellElem.className=urlCellElem.className.replace(" cell_focus","");}
function toolSetUrlTypeFocus(activeAreaCode){updateActiveSiteArea(activeAreaCode);}
function toolSetUrlPwdProtectClicked(activeAreaCode,urlPwdProtectElemId,urlPwdCellElemId){updateActiveSiteArea(activeAreaCode);var urlPwdProtectElem=document.getElementById(urlPwdProtectElemId);var urlPwdCellElem=document.getElementById(urlPwdCellElemId);if(urlPwdProtectElem.checked){urlPwdCellElem.className=urlPwdCellElem.className.replace("hide_element","");}else{if(urlPwdCellElem.className.search("hide_element")==-1){urlPwdCellElem.className+="hide_element";}}}
function toolSetUrlPwdFocus(activeAreaCode,urlPwdTextElemId){updateActiveSiteArea(activeAreaCode);var urlPwdTextElem=document.getElementById(urlPwdTextElemId);urlPwdTextElem.className+=" text_focus";urlPwdTextElem.select();}
function toolSetUrlPwdBlur(urlPwdTextElemId){var urlPwdTextElem=document.getElementById(urlPwdTextElemId);urlPwdTextElem.className=urlPwdTextElem.className.replace(" text_focus","");}
function toolSetUrlSearchableFocus(activeAreaCode){updateActiveSiteArea(activeAreaCode);}
function saveSetCheckboxFocus(){updateActiveSiteArea("SAVE_SET");}
function saveSetNameFocus(){updateActiveSiteArea("SAVE_SET");}
function saveSetSubmitClicked(){updateActiveSiteArea("SAVE_SET");}
function choiceSetOpenFocus(){updateActiveSiteArea("OPEN_SET");}
function openSetSubmitClicked(){updateActiveSiteArea("OPEN_SET");}
function editUserNameFocus(){updateActiveSiteArea("EDIT_USER");}
function editUserEmailFocus(){updateActiveSiteArea("EDIT_USER");}
function editUserSiteFoundFocus(){updateActiveSiteArea("EDIT_USER");}
function editUserSubmitClicked(){updateActiveSiteArea("EDIT_USER");}
function launchEditPwdClicked(){updateActiveSiteArea("EDIT_USER");}
function launchUnregisterClicked(){updateActiveSiteArea("SITE_BUTTON");}
function editPwdNameFocus(){updateActiveSiteArea("EDIT_PWD");}
function editPwdOldPasswordFocus(){updateActiveSiteArea("EDIT_PWD");}
function editPwdPassword1Focus(){updateActiveSiteArea("EDIT_PWD");}
function editPwdPassword2Focus(){updateActiveSiteArea("EDIT_PWD");}
function editPwdSubmitClicked(){updateActiveSiteArea("EDIT_PWD");}
function unregisterSubmitClicked(){updateActiveSiteArea("UNREGISTER");}
function accessPasswordFocus(){updateActiveSiteArea("ACCESS_PRIVATE_TOOL");}
function accessToolClicked(){updateActiveSiteArea("ACCESS_PRIVATE_TOOL");}
function cancelAccessClicked(){updateActiveSiteArea("ACCESS_PRIVATE_TOOL");}
function searchSubmitClicked(searchSubmitId){updateActiveSiteArea("SEARCH");}
function searchTextFocus(searchTextId){updateActiveSiteArea("SEARCH");}
function urlSearchSubmitClicked(searchSubmitId){updateActiveSiteArea("URL_SEARCH");}
function urlSearchTextFocus(searchTextId){updateActiveSiteArea("URL_SEARCH");}
function suggestBoxEmailFocus(){updateActiveSiteArea("SUGGEST_BOX");}
function suggestBoxNameFocus(){updateActiveSiteArea("SUGGEST_BOX");}
function suggestBoxTextFocus(){updateActiveSiteArea("SUGGEST_BOX");}
function suggestBoxSubmitClicked(){updateActiveSiteArea("SUGGEST_BOX");}
function handleUserRelatedValidations(){var activeAreaCode=document.getElementById("active_site_area").value;var loginSubmitElem=document.getElementById("login_submit");if(isValidElement(loginSubmitElem)&&activeAreaCode=="LOGIN"){return checkLoginSubmit();}
var registerSubmitElem=document.getElementById("register_submit");if(isValidElement(registerSubmitElem)&&activeAreaCode=="REGISTER"){return checkRegisterSubmit();}
var mgrOpenSubmitElem=document.getElementById("mgr_open_submit");if(isValidElement(mgrOpenSubmitElem)&&activeAreaCode=="MGR_OPEN"){return checkMgrOpenSubmit();}
var mgrSavedSubmitElem=document.getElementById("mgr_saved_submit");if(isValidElement(mgrSavedSubmitElem)&&activeAreaCode=="MGR_SAVED"){return checkMgrSavedSubmit();}
var toolSaveSubmitElem=document.getElementById("tool_save_submit");if(isValidElement(toolSaveSubmitElem)&&activeAreaCode=="SAVE"){return checkToolSaveSubmit();}
var saveSetSubmitElem=document.getElementById("save_set_submit");if(isValidElement(saveSetSubmitElem)&&activeAreaCode=="SAVE_SET"){return checkSaveSetSubmit();}
var editUserSubmitElem=document.getElementById("edit_user_submit");if(isValidElement(editUserSubmitElem)&&activeAreaCode=="EDIT_USER"){return checkEditUserSubmit();}
var editPwdSubmitElem=document.getElementById("edit_pwd_submit");if(isValidElement(editPwdSubmitElem)&&activeAreaCode=="EDIT_PWD"){return checkEditPwdSubmit();}
var suggestBoxSubmitElem=document.getElementById("suggest_box_submit");if(isValidElement(suggestBoxSubmitElem)&&activeAreaCode=="SUGGEST_BOX"){return checkSuggestBoxSubmit();}
return true;}
function checkLoginSubmit(){var userNameElem=document.getElementById("site_user");if(userNameElem.value.length===0){alert("The user name cannot be left blank.");userNameElem.focus();userNameElem.select();return false;}
var userPassword1Elem=document.getElementById("site_pwd");if(userPassword1Elem.value.length===0){alert("The password cannot be left blank.");userPassword1Elem.focus();userPassword1Elem.select();return false;}
return true;}
function checkRegisterSubmit(){var userNameElem=document.getElementById("new_site_user");if(!isUserNameValid(userNameElem.value)){userNameElem.focus();userNameElem.select();return false;}
var userPassword1Elem=document.getElementById("new_site_pwd1");if(!isUserPasswordValid(userPassword1Elem.value)){userPassword1Elem.focus();userPassword1Elem.select();return false;}
var userPassword2Elem=document.getElementById("new_site_pwd2");if(userPassword1Elem.value!=userPassword2Elem.value){alert("The second password entry must match the first.");userPassword2Elem.focus();userPassword2Elem.select();return false;}
var userEmailElem=document.getElementById("new_user_email");if(userEmailElem.value!==""&&!isUserEmailValid(userEmailElem.value)){userEmailElem.focus();userEmailElem.select();return false;}
return true;}
function checkMgrOpenSubmit(){var maxToolNumElem=document.getElementById("max_tool_num");if(isValidElement(maxToolNumElem)){var maxToolNum=parseInt(maxToolNumElem.value,10);var toolNum;for(toolNum=1;toolNum<=maxToolNum;toolNum++){var mgrToolNameInd="mgr_tool_"+toolNum+"_name";var mgrToolNameElem=document.getElementById(mgrToolNameInd);if(!isUserToolNameValid(mgrToolNameElem.value,"The tool instance name")){mgrToolNameElem.focus();mgrToolNameElem.select();return false;}}}
return true;}
function checkMgrSavedSubmit(){var minMgrSetIdElem=document.getElementById("min_mgr_set_id");var maxMgrSetIdElem=document.getElementById("max_mgr_set_id");if(isValidElement(minMgrSetIdElem)&&isValidElement(maxMgrSetIdElem)){var minMgrSetId=parseInt(minMgrSetIdElem.value,10);var maxMgrSetId=parseInt(maxMgrSetIdElem.value,10);var setId;for(setId=minMgrSetId;setId<=maxMgrSetId;setId++){var mgrSetNameInd="mgr_set_"+setId+"_name";var mgrSetNameElem=document.getElementById(mgrSetNameInd);if(isValidElement(mgrSetNameElem)){var mgrSetDeleteInd="mgr_set_"+setId+"_delete";var mgrSetDeleteElem=document.getElementById(mgrSetDeleteInd);if(!mgrSetDeleteElem.checked){if(!isUserToolNameValid(mgrSetNameElem.value,"The tool instance name")){mgrSetNameElem.focus();mgrSetNameElem.select();return false;}
var mgrSetUrlInd="mgr_set_"+setId+"_url";var mgrSetUrlElem=document.getElementById(mgrSetUrlInd);if(!isUserToolUrlValid(mgrSetUrlElem.value,"The tool instance URL")){mgrSetUrlElem.focus();mgrSetUrlElem.select();return false;}
var mgrSetUrlPwdProtectInd="mgr_set_"+setId+"_url_pwd_protect";var mgrSetUrlPwdProtectElem=document.getElementById(mgrSetUrlPwdProtectInd);if(mgrSetUrlPwdProtectElem.checked){var mgrSetUrlPwdInd="mgr_set_"+setId+"_url_pwd";var mgrSetUrlPwdElem=document.getElementById(mgrSetUrlPwdInd);if(!isUserToolUrlPasswordValid(mgrSetUrlPwdElem.value,"The tool instance URL password")){mgrSetUrlPwdElem.focus();mgrSetUrlPwdElem.select();return false;}}}}}}
return true;}
function checkToolSaveSubmit(){var saveToolNumElem=document.getElementById("do_save_tool_num");if(isValidElement(saveToolNumElem)&&saveToolNumElem.value!==""){if(!checkToolSaveData(saveToolNumElem.value)){return false;}}else{var toolToSaveFlag=false;var maxToolNumElem=document.getElementById("max_tool_num");if(isValidElement(maxToolNumElem)){var maxToolNum=parseInt(maxToolNumElem.value,10);var toolNum;for(toolNum=1;toolNum<=maxToolNum;toolNum++){var toolSaveInd="tool_num_"+toolNum+"_save";var toolSaveElem=document.getElementById(toolSaveInd);if(toolSaveElem.checked){toolToSaveFlag=true;if(!checkToolSaveData(toolNum)){return false;}}}}
if(!toolToSaveFlag){alert("At least one tool instance must be saved.");return false;}}
return true;}
function checkToolSaveData(toolNum){var toolSaveNameInd="tool_"+toolNum+"_save_name";var toolSaveNameElem=document.getElementById(toolSaveNameInd);if(!isUserToolNameValid(toolSaveNameElem.value,"The tool instance save as name")){toolSaveNameElem.focus();toolSaveNameElem.select();return false;}
var toolSaveUrlInd="tool_"+toolNum+"_save_url";var toolSaveUrlElem=document.getElementById(toolSaveUrlInd);if(!isUserToolUrlValid(toolSaveUrlElem.value,"The tool instance save as URL")){toolSaveUrlElem.focus();toolSaveUrlElem.select();return false;}
var toolSaveUrlPwdProtectInd="tool_"+toolNum+"_save_url_pwd_protect";var toolSaveUrlPwdProtectElem=document.getElementById(toolSaveUrlPwdProtectInd);if(toolSaveUrlPwdProtectElem.checked){var toolSaveUrlPwdInd="tool_"+toolNum+"_save_url_pwd";var toolSaveUrlPwdElem=document.getElementById(toolSaveUrlPwdInd);if(!isUserToolUrlPasswordValid(toolSaveUrlPwdElem.value,"The tool instance save as URL password")){toolSaveUrlPwdElem.focus();toolSaveUrlPwdElem.select();return false;}}
return true;}
function checkSaveSetSubmit(){var toolToSaveFlag=false;var maxToolNumElem=document.getElementById("max_tool_num");if(isValidElement(maxToolNumElem)){var maxToolNum=parseInt(maxToolNumElem.value,10);var toolNum;for(toolNum=1;toolNum<=maxToolNum;toolNum++){var toolSaveInd="tool_num_"+toolNum+"_save";var toolSaveElem=document.getElementById(toolSaveInd);if(toolSaveElem.checked){toolToSaveFlag=true;break;}}}
if(!toolToSaveFlag){alert("At least one tool instance must be saved.");return false;}
var saveSetNameElem=document.getElementById("save_set_name");if(saveSetNameElem.value===""){alert("The tool instances set name cannot be blank.");saveSetNameElem.focus();saveSetNameElem.select();return false;}
return true;}
function checkEditPwdSubmit(){var userOldPasswordElem=document.getElementById("old_site_pwd");if(userOldPasswordElem.value===""){alert("The current password cannot be left blank.");userOldPasswordElem.focus();userOldPasswordElem.select();return false;}
var userPassword1Elem=document.getElementById("new_site_pwd1");if(!isUserPasswordValid(userPassword1Elem.value)){userPassword1Elem.focus();userPassword1Elem.select();return false;}
var userPassword2Elem=document.getElementById("new_site_pwd2");if(userPassword1Elem.value!=userPassword2Elem.value){alert("The second password entry must match the first.");userPassword2Elem.focus();userPassword2Elem.select();return false;}
return true;}
function checkEditUserSubmit(){var userEmailElem=document.getElementById("new_user_email");if(userEmailElem.value!==""&&!isUserEmailValid(userEmailElem.value)){userEmailElem.focus();userEmailElem.select();return false;}
return true;}
function checkSuggestBoxSubmit(){var suggestTextElem=document.getElementById("suggest_box_text");if(suggestTextElem.value===""){alert("The suggestion field cannot be left blank.");suggestTextElem.focus();suggestTextElem.select();return false;}
var suggestEmailElem=document.getElementById("suggest_box_email");if(suggestEmailElem.value.length>100){alert("The email address cannot contain more than 100 characters.");suggestEmailElem.focus();suggestEmailElem.select();return false;}
var suggestNameElem=document.getElementById("suggest_box_name");if(suggestNameElem.value.length>100){alert("The name cannot contain more than 100 characters.");suggestNameElem.focus();suggestNameElem.select();return false;}
return true;}
function isUserNameValid(userName){if(!userName.match(/^[A-Za-z0-9',-\._\xc0-\xff]{5,15}$/)){var errorMsg="This user name is not allowed. User names require "+"5-15 supported characters. Please see the About "+"Coggit section for more details.";alert(errorMsg);return false;}
return true;}
function isUserPasswordValid(userPassword){if(!userPassword.match(/^[A-Za-z0-9!#\$,-\._\xc0-\xff]{5,15}$/)){var errorMsg="The password is not allowed. Passwords require "+"5-15 supported characters. Please see the About "+"Coggit section for more details.";alert(errorMsg);return false;}
return true;}
function isUserEmailValid(userEmail){if(userEmail.length>100){alert("The email address cannot contain more than 100 characters.");return false;}else if(!userEmail.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)){var errorMsg="The email address does not have a recognised valid "+"format.";alert(errorMsg);return false;}
return true;}
function isUserToolNameValid(userToolName,errorMsgStub){if(userToolName===""){alert(errorMsgStub+" cannot be blank.");return false;}else if(userToolName.length>35){alert(errorMsgStub+" cannot contain more than 35 characters.");return false;}else if(!userToolName.match(/^[A-Za-z0-9&'\(\),-\._\x20\xc0-\xff]{1,35}$/)){alert(errorMsgStub+" contains characters that are not allowed. "+"Please see the About Coggit section for more details.");return false;}
return true;}
function isUserToolUrlValid(userToolUrl,errorMsgStub){if(userToolUrl!==""){if(userToolUrl.length>100){alert(errorMsgStub+" cannot contain more than 100 characters.");return false;}else if(!userToolUrl.match(/^([A-Z0-9_-]+\/)*(([A-Z0-9_-]+\/?)|([A-Z0-9_-]+\.[A-Z]+))?$/i)){alert(errorMsgStub+" contains characters that are not allowed. "+"Please see the About Coggit section for more details.");return false;}}
return true;}
function isUserToolUrlPasswordValid(userToolUrlPwd){if(userToolUrlPwd!="*set*"){if(!userToolUrlPwd.match(/^[A-Za-z0-9!#\$,-\._\xc0-\xff]{5,15}$/)){var errorMsg="The password is not allowed. Passwords require "+"5-15 supported characters. Please see the About "+"Coggit section for more details.";alert(errorMsg);return false;}}
return true;}
function closeAllSubmitClicked(){updateActiveSiteArea("SITE_BUTTON");}
function toolListItemClicked(toolListItemId){updateActiveSiteArea("TOOL_LIST");updateClickedSubmitId(toolListItemId);}
function toolListItemMouseOver(toolListItemId){var itemClass=document.getElementById(toolListItemId).className;if(itemClass.substring(itemClass.length-5)!="_over"){document.getElementById(toolListItemId).className=itemClass+"_over";}}
function toolListItemMouseOut(toolListItemId){var itemClass=document.getElementById(toolListItemId).className;if(itemClass.substring(itemClass.length-5)=="_over"){document.getElementById(toolListItemId).className=itemClass.substring(0,itemClass.length-5);}}
function shouldToolSubmitBeCancelled(){var activeAreaCode=document.getElementById("active_site_area").value;if(activeAreaCode=="TOOL_BUTTON"){return true;}
return false;}
function toolInfoButtonClicked(toolDescHtmlFilePath){updateActiveSiteArea("TOOL_BUTTON");var infoWindowUrl=toolDescHtmlFilePath;var windowHeight=400;var windowWidth=600;window.open(infoWindowUrl,"toolinfo","height="+windowHeight+", width="+windowWidth+", toolbar=no, "+"scrollbars=yes, location=no, menubar=no, resizable=yes");}
function formatOptionsButtonClicked(toolNum,formatOptionsInd){storeCurrentScrollPosition();updateActiveSiteArea("TOOL_SUBMIT");if(document.getElementById(formatOptionsInd).value=="S"){document.getElementById(formatOptionsInd).value="H";}else{document.getElementById(formatOptionsInd).value="S";}}
function calcModeAutoButtonClicked(toolNum,calcModeAButtonId,calcModeMButtonId,calcSubmitId,inPreview){if(!inPreview){var toolCalcModeInd="tool_num_"+toolNum+"_calc_mode";var toolCalcModeElem=document.getElementById(toolCalcModeInd);if(toolCalcModeElem.value=="SA"){toolCalcModeElem.value="SM";}else{toolCalcModeElem.value="CM";}}
var calcModeAButtonElem=document.getElementById(calcModeAButtonId);var calcModeMButtonElem=document.getElementById(calcModeMButtonId);calcModeAButtonElem.className=calcModeAButtonElem.className+" hide_element";calcModeMButtonElem.className=calcModeMButtonElem.className.replace(" hide_element","");if(calcSubmitId!==null){var calcSubmitElem=document.getElementById(calcSubmitId);calcSubmitElem.className=calcSubmitElem.className.replace(" hide_element","");}
updateActiveSiteArea("TOOL_BUTTON");}
function calcModeManButtonClicked(toolNum,calcModeAButtonId,calcModeMButtonId,calcSubmitId,inPreview){if(!inPreview){var toolCalcModeInd="tool_num_"+toolNum+"_calc_mode";var toolCalcModeElem=document.getElementById(toolCalcModeInd);if(toolCalcModeElem.value=="SM"){toolCalcModeElem.value="SA";}else{toolCalcModeElem.value="CA";}}
var calcModeAButtonElem=document.getElementById(calcModeAButtonId);var calcModeMButtonElem=document.getElementById(calcModeMButtonId);calcModeAButtonElem.className=calcModeAButtonElem.className.replace(" hide_element","");calcModeMButtonElem.className=calcModeMButtonElem.className+" hide_element";if(calcSubmitId!==null){var calcSubmitElem=document.getElementById(calcSubmitId);calcSubmitElem.className=calcSubmitElem.className+" hide_element";}
updateActiveSiteArea("TOOL_BUTTON");}
function calculateSubmitClicked(toolNum){storeCurrentScrollPosition();if(toolNum!==null){updateActiveSiteArea("TOOL_"+toolNum);}else{updateActiveSiteArea("TOOL");}}
function createToolInstanceInitText(toolNum,initViaForm){var toolInitText="";var toolCalcModeInd="tool_num_"+toolNum+"_calc_mode";var toolCalcMode=document.getElementById(toolCalcModeInd).value;if(toolCalcMode!="SA"){toolInitText+=createToolInstVariableText(initViaForm,"cm",toolCalcMode);}
var toolFormatOptionsInd="tool_num_"+toolNum+"_format_opt";var toolFormatOptions=document.getElementById(toolFormatOptionsInd).value;if(toolFormatOptions!="S"){toolInitText+=createToolInstVariableText(initViaForm,"foi",toolFormatOptions);}
var toolErrorInd="tool_num_"+toolNum+"_err";var toolErrorElem=document.getElementById(toolErrorInd);if(isValidElement(toolErrorElem)&&toolErrorElem.value!==""){toolInitText+=createToolInstVariableText(initViaForm,"err",toolErrorElem.value);}
var toolChangeOrderInd="tool_num_"+toolNum+"_change_order";var toolChangeOrderElem=document.getElementById(toolChangeOrderInd);if(isValidElement(toolChangeOrderElem)&&toolChangeOrderElem.value!==""){var changeOrderText="";var toolChangeOrderArr=toolChangeOrderElem.value.split(":");var firstEnt=true;for(key in toolChangeOrderArr){var entFormIndArr=toolChangeOrderArr[key].split("_");if(entFormIndArr.length==3&&entFormIndArr[0]=="e"&&entFormIndArr[1]==toolNum){if(!firstEnt){changeOrderText+=":";}else{firstEnt=false;}
changeOrderText+=entFormIndArr[2];}}
toolInitText+=createToolInstVariableText(initViaForm,"co",changeOrderText);}
var toolLastCalcSetsInd="tool_num_"+toolNum+"_last_calc_sets";var toolLastCalcSetsElem=document.getElementById(toolLastCalcSetsInd);if(isValidElement(toolLastCalcSetsElem)&&toolLastCalcSetsElem.value!==""){toolInitText+=createToolInstVariableText(initViaForm,"lcs",toolLastCalcSetsElem.value);}
var elems=document.toolform.elements;for(i=0;i<elems.length;i++){if(elems[i].type=="text"||elems[i].type=="select-one"||elems[i].type=="hidden"){var elemId=elems[i].id;var elemIdArr=elemId.split("_");if(elemIdArr.length==3&&elemIdArr[0]=="e"){if(elemIdArr[1]==toolNum){var entityId=elemIdArr[2];var entValue,entStatusInd,entStatusElem;if(elems[i].type=="text"||elems[i].type=="hidden"){var entValStoreInd=elemId+"_val";var entValStoreElem=document.getElementById(entValStoreInd);entStatusInd=elemId+"_status";entStatusElem=document.getElementById(entStatusInd);if(isValidElement(entValStoreElem)&&!(isValidElement(entStatusElem)&&entStatusElem.value=="ai_de")){entValue=entValStoreElem.value;}else{entValue=elems[i].value;}}else{entValue=elems[i].value;}
toolInitText+=createToolInstVariableText(initViaForm,"e"+entityId,entValue);if(elems[i].type=="text"||elems[i].type=="select-one"){entStatusInd=elemId+"_status";entStatusElem=document.getElementById(entStatusInd);if(isValidElement(entStatusElem)){var entStatus=entStatusElem.value;if(entStatus!="bi_bc"){toolInitText+=createToolInstVariableText(initViaForm,"e"+entityId+"s",entStatus);}}}
if(elems[i].type=="text"){var entFormatInd=elemId+"_format";var entFormatElem=document.getElementById(entFormatInd);if(isValidElement(entFormatElem)&&entFormatElem.value.search("_DEF_")==-1){toolInitText+=createToolInstVariableText(initViaForm,"e"+entityId+"f",entFormatElem.value);}
var entPropsInd=elemId+"_props";var entPropsElem=document.getElementById(entPropsInd);if(isValidElement(entPropsElem)&&entPropsElem.value!==""){toolInitText+=createToolInstVariableText(initViaForm,"e"+entityId+"p",entPropsElem.value);}}
if(elems[i].type=="text"||elems[i].type=="select-one"){var entChangedInd=elemId+"_changed";var entChangedElem=document.getElementById(entChangedInd);if(isValidElement(entChangedElem)&&entChangedElem.value=="Y"){toolInitText+=createToolInstVariableText(initViaForm,"e"+entityId+"c",entChangedElem.value);}}}}}}
return toolInitText;}
function createToolInstVariableText(asFormVariable,variableName,variableValue){var variableText;if(asFormVariable){variableText="<input type='hidden' name='"+variableName+"' value='"+variableValue+"' />";}else{variableText="&"+variableName+"="+escape(variableValue);}
return variableText;}
function viewToolInApp(appType,toolNum){var toolIndElemId="tool_num_"+toolNum;var toolId=document.getElementById(toolIndElemId).value;var appForm=document.createElement("form");document.body.appendChild(appForm);appForm.method="POST";appForm.action="/coggit_app.php?app="+appType+"&toolid="+toolId;appForm.innerHTML=createToolInstanceInitText(toolNum,true);appForm.submit();document.body.removeChild(appForm);}
function refreshButtonClicked(toolNum,buttonId){toolActionButtonClicked(toolNum,"REFRESH");}
function duplicateButtonClicked(toolNum,buttonId){var scrollByYElem=document.getElementById("scroll_by_y");if(isValidElement(scrollByYElem)){var toolTableId="tool_num_"+toolNum+"_table";var toolTableElem=document.getElementById(toolTableId);var toolHeaderTableId="tool_num_"+toolNum+"_header_table";var toolHeaderTableElem=document.getElementById(toolHeaderTableId);var toolFooterTableId="tool_num_"+toolNum+"_footer_table";var toolFooterTableElem=document.getElementById(toolFooterTableId);scrollByYElem.value=toolTableElem.offsetHeight+
toolHeaderTableElem.offsetHeight+
toolFooterTableElem.offsetHeight;}
toolActionButtonClicked(toolNum,"DUPLICATE");}
function newWinButtonClicked(toolNum,buttonId){updateActiveSiteArea("TOOL_BUTTON");openStandaloneToolWindow(toolNum);}
function minimiseButtonClicked(toolNum,buttonId){toolActionButtonClicked(toolNum,"MIN");}
function restoreButtonClicked(toolNum,buttonId){toolActionButtonClicked(toolNum,"RESTORE");}
function closeButtonClicked(toolNum,buttonId){toolActionButtonClicked(toolNum,"CLOSE");}
function saveButtonClicked(toolNum,buttonId){var userToolNameInd="tool_num_"+toolNum+"_user_name";var userToolNameElem=document.getElementById(userToolNameInd);if(isValidElement(userToolNameElem)){var dirSaveToolNumElem=document.getElementById("dir_save_tool_num");if(isValidElement(dirSaveToolNumElem)){dirSaveToolNumElem.value=toolNum;}
storeCurrentScrollPosition();}else{var saveToolNumElem=document.getElementById("save_tool_num");if(isValidElement(saveToolNumElem)){saveToolNumElem.value=toolNum;}}
updateActiveSiteArea("TOOL_SUBMIT");}
function saveAsButtonClicked(toolNum,buttonId){var saveToolNumElem=document.getElementById("save_tool_num");if(isValidElement(saveToolNumElem)){saveToolNumElem.value=toolNum;}
updateActiveSiteArea("TOOL_SUBMIT");}
function relatedSubmitClicked(toolNum){updateActiveSiteArea("TOOL_SUBMIT");}
function toolActionButtonClicked(toolNum,toolAction){document.getElementById("focus_action").value="";document.getElementById("focus_elem_id").value="";document.getElementById("focus_tool_num").value="";document.getElementById("tab_elem_id").value="";document.getElementById("shift_tab_elem_id").value="";storeCurrentScrollPosition();updateActiveSiteArea("TOOL_SUBMIT");}
function openStandaloneToolWindow(toolNum){var toolIndElemId="tool_num_"+toolNum;var toolId=document.getElementById(toolIndElemId).value;var initViaForm=!isStandaloneToolInitViaGet();var windowUrl,htmlText;if(initViaForm){windowUrl="";var windowAction="/coggit_inst.php?toolid="+toolId;htmlText="<html><head></head><body><form name='winform' action='"+
windowAction+"' method='post'>";}else{var toolsDirPos=location.pathname.indexOf("/tools/");if(toolsDirPos!=-1){windowUrl=location.pathname.substring(0,toolsDirPos+1);}else{windowUrl=location.pathname.substring(0,location.pathname.lastIndexOf("/")+1);}
windowUrl+="coggit_inst.php?toolid="+toolId;}
var toolInitText=createToolInstanceInitText(toolNum,initViaForm);if(initViaForm){htmlText+=toolInitText+"</form><script type='text/javascript'>"+"document.winform.submit()</script></body></html>";}else{windowUrl+=toolInitText;}
var toolTableId="tool_num_"+toolNum+"_table";var toolTableElem=document.getElementById(toolTableId);var toolHeaderTableId="tool_num_"+toolNum+"_header_table";var toolHeaderTableElem=document.getElementById(toolHeaderTableId);var toolFooterTableId="tool_num_"+toolNum+"_footer_table";var toolFooterTableElem=document.getElementById(toolFooterTableId);var windowHeight=toolTableElem.offsetHeight+
toolHeaderTableElem.offsetHeight+
toolFooterTableElem.offsetHeight+80;var calcTableElem=document.getElementById("calc_submit_table");if(isValidElement(calcTableElem)){windowHeight+=calcTableElem.offsetHeight;}
var windowWidth=toolTableElem.offsetWidth;var newWindow=window.open(windowUrl,"newwin","height="+windowHeight+", width="+windowWidth+", toolbar=no, "+"scrollbars=yes, location=no, menubar=no, "+"resizable=yes");if(initViaForm){newWindow.document.write(htmlText);}}
function areToolsValid(){var validTools=true;var maxToolNumElem=document.getElementById("max_tool_num");if(!isValidElement(maxToolNumElem)){return validTools;}
var maxToolNum=parseInt(maxToolNumElem.value,10);var toolNum=1;for(toolNum=1;toolNum<=maxToolNum;toolNum++){var toolInd="tool_num_"+toolNum;var toolId=document.getElementById(toolInd).value;var toolChangedInd=toolInd+"_changed";var toolChangedElem=document.getElementById(toolChangedInd);if(isValidElement(toolChangedElem)&&toolChangedElem.value=="Y"&&isToolInActiveSiteArea(toolNum)){if(!areAllToolCalcSetsSpecified(toolNum)){var validResult=checkToolValueChanges(toolNum,true,null,true);if(!validResult){validTools=false;break;}}}}
return validTools;}
function isToolInActiveSiteArea(toolNum){var activeAreaCode=document.getElementById("active_site_area").value;if((activeAreaCode=="TOOL_"+toolNum)||activeAreaCode=="TOOL"){return true;}
return false;}
function areAllToolCalcSetsSpecified(toolNum){var toolCalcSetsInd="tool_num_"+toolNum+"_calc_sets";var toolCalcSetsElem=document.getElementById(toolCalcSetsInd);if(!isValidElement(toolCalcSetsElem)){return false;}else{var toolCalcSets=toolCalcSetsElem.value;if(toolCalcSets===""){return false;}else{var calcSetIdArr=toolCalcSets.split("_");for(var gIdx=0;gIdx<calcSetIdArr.length;gIdx++){var calcSetIdInfoArr=calcSetIdArr[gIdx].split("#");if(calcSetIdInfoArr.length!=2||calcSetIdInfoArr[1]===""){return false;}}}}
return true;}
function processFloatEntityChange(entFormInd,onlyIfError,errorMsgRoot,minValue,maxValue,toolNum){if(onlyIfError){var entStatusInd=entFormInd+"_status";var entStatusElem=document.getElementById(entStatusInd);if(!isValidElement(entStatusElem)||(entStatusElem.value!="ai_de"&&entStatusElem.value!="ai_de_ci")){return true;}}
if(!hasEntityChanged(entFormInd)){return true;}
var entValue=document.getElementById(entFormInd).value;var spacesRemoved=false;if(entValue.search(" ")!=-1){entValue=entValue.replace(/ /g,"");spacesRemoved=true;}
var entFormatInd=entFormInd+"_format";var entFormatElem=document.getElementById(entFormatInd);var entFormatVal=entFormatElem.value;if(entFormatVal.search("P_")!=-1&&entValue.length>0){if(entValue.indexOf("%")==entValue.length-1){entValue=entValue.substr(0,entValue.length-1);}}
var storeEntValue=entValue;var errorMsg;if(!(entValue===""&&getToolGenProperty(toolNum,"CCE")=="Y")){if(!isNaN(parseFloat(entValue))&&isFinite(entValue)){if(entFormatVal.search("P_")!=-1){entValue/=100;}
if(minValue!==null&&isFinite(minValue)&&entValue<minValue){errorMsg=errorMsgRoot+" must not be less than "+minValue;alert(errorMsg);return false;}else if(maxValue!==null&&isFinite(maxValue)&&entValue>maxValue){errorMsg=errorMsgRoot+" must not be greater than "+
maxValue;alert(errorMsg);return false;}}else{errorMsg=errorMsgRoot+" must be a number";alert(errorMsg);return false;}}
var entValStoreInd=entFormInd+"_val";var entValStoreElem=document.getElementById(entValStoreInd);entValStoreElem.value=entValue;if(entFormatVal!==""&&entValue!==""){if(entFormatVal.search("P_")!=-1){entValue=storeEntValue;}
var formatArr=entFormatVal.split("_");var sfPos=formatArr[0].search("S");if(sfPos!=-1){var sigFigs=formatArr[0].substring(sfPos+1);entValue=applySignificantFiguresFormat(entValue,parseInt(sigFigs,10));}else{var dpPos=formatArr[0].search("D");if(dpPos!=-1){var decPlaces=formatArr[0].substring(dpPos+1);entValue=applyDecimalPlacesFormat(entValue,parseInt(decPlaces,10));}}
if(entFormatVal.search("P_")!=-1){entValue+="%";}
document.getElementById(entFormInd).value=entValue;}else if(spacesRemoved){document.getElementById(entFormInd).value=entValue;}
return true;}
function processIntEntityChange(entFormInd,onlyIfError,errorMsgRoot,minValue,maxValue,toolNum){if(onlyIfError){var entStatusInd=entFormInd+"_status";var entStatusElem=document.getElementById(entStatusInd);if(!isValidElement(entStatusElem)||(entStatusElem.value!="ai_de"&&entStatusElem.value!="ai_de_ci")){return true;}}
if(!hasEntityChanged(entFormInd)){return true;}
var entValue=document.getElementById(entFormInd).value;var spacesRemoved=false;if(entValue.search(" ")!=-1){entValue=entValue.replace(/ /g,"");spacesRemoved=true;}
var errorMsg;if(!(entValue===""&&getToolGenProperty(toolNum,"CCE")=="Y")){if((parseInt(entValue,10)==parseFloat(entValue))&&isFinite(entValue)){if(minValue!==null&&isFinite(minValue)&&entValue<minValue){errorMsg=errorMsgRoot+" must not be less than "+minValue;alert(errorMsg);return false;}else if(maxValue!==null&&isFinite(maxValue)&&entValue>maxValue){errorMsg=errorMsgRoot+" must not be greater than "+
maxValue;alert(errorMsg);return false;}}else{errorMsg=errorMsgRoot+" must be an integer";alert(errorMsg);return false;}}
var entValStoreInd=entFormInd+"_val";document.getElementById(entValStoreInd).value=entValue;if(spacesRemoved){document.getElementById(entFormInd).value=entValue;}
return true;}
function processStringEntityChange(entFormInd,onlyIfError,errorMsgRoot,minLength,maxLength,fixedLength,toolNum){if(onlyIfError){var entStatusInd=entFormInd+"_status";var entStatusElem=document.getElementById(entStatusInd);if(!isValidElement(entStatusElem)||(entStatusElem.value!="ai_de"&&entStatusElem.value!="ai_de_ci")){return true;}}
if(!hasEntityChanged(entFormInd)){return true;}
var entValue=document.getElementById(entFormInd).value;var errorMsg;if(!(entValue===""&&getToolGenProperty(toolNum,"CCE")=="Y")){if(fixedLength!==null&&entValue.length<fixedLength){errorMsg=errorMsgRoot+" must have "+fixedLength+" characters ";alert(errorMsg);return false;}else if(minLength!==null&&entValue.length<minLength){errorMsg=errorMsgRoot+" must not have less than "+minLength+" characters ";alert(errorMsg);return false;}else if(maxLength!==null&&entValue.length>maxLength){errorMsg=errorMsgRoot+" must not have more than "+maxLength+" characters ";alert(errorMsg);return false;}}
var entValStoreInd=entFormInd+"_val";document.getElementById(entValStoreInd).value=entValue;return true;}
function processDateEntityChange(entFormInd,onlyIfError,errorMsgRoot,minValue,maxValue,toolNum){if(onlyIfError){var entStatusInd=entFormInd+"_status";var entStatusElem=document.getElementById(entStatusInd);if(!isValidElement(entStatusElem)||(entStatusElem.value!="ai_de"&&entStatusElem.value!="ai_de_ci")){return true;}}
if(!hasEntityChanged(entFormInd)){return true;}
var entValue=document.getElementById(entFormInd).value;var spacesRemoved=false;if(entValue.search(" ")!=-1){entValue=entValue.replace(/ /g,"");spacesRemoved=true;}
var entValStoreInd=entFormInd+"_val";var entValStoreElem=document.getElementById(entValStoreInd);if(entValue===""&&getToolGenProperty(toolNum,"CCE")=="Y"){entValStoreElem.value="";if(spacesRemoved){document.getElementById(entFormInd).value="";}
return true;}
var entFormatInd=entFormInd+"_format";var entFormatElem=document.getElementById(entFormatInd);var entFormatVal=entFormatElem.value;entFormatVal=entFormatVal.replace("_DEF_","");var errorMsg;var dateArr=entValue.split("-");if(dateArr.length==1){dateArr=entValue.split("/");}
if(dateArr.length!=3&&(dateArr.length==1&&dateArr[0].length!=8)){errorMsg=errorMsgRoot+" must be a date that can be "+"interpreted from the format "+entFormatVal;alert(errorMsg);return false;}
var day;var month;var year;switch(entFormatVal){case"DD/MM/YYYY":case"DD-MM-YYYY":case"DDMMYYYY":if(dateArr.length==3){day=dateArr[0];month=dateArr[1];year=dateArr[2];}else{day=dateArr[0].substr(0,2);month=dateArr[0].substr(2,2);year=dateArr[0].substr(4);}
break;case"YYYY/MM/DD":case"YYYY-MM-DD":case"YYYYMMDD":if(dateArr.length==3){year=dateArr[0];month=dateArr[1];day=dateArr[2];}else{year=dateArr[0].substr(0,4);month=dateArr[0].substr(4,2);day=dateArr[0].substr(6);}
break;case"MM/DD/YYYY":case"MM-DD-YYYY":case"MMDDYYYY":if(dateArr.length==3){month=dateArr[0];day=dateArr[1];year=dateArr[2];}else{month=dateArr[0].substr(0,2);day=dateArr[0].substr(2,2);year=dateArr[0].substr(6);}
break;default:entFormatElem.value="YYYY-MM-DD";if(dateArr.length==3){year=dateArr[0];month=dateArr[1];day=dateArr[2];}else{year=dateArr[0].substr(0,4);month=dateArr[0].substr(4,2);day=dateArr[0].substr(6);}}
if(!isFinite(day)||(parseInt(day,10)!=parseFloat(day))){errorMsg=errorMsgRoot+" must specify a day in integer format";alert(errorMsg);return false;}
var intDay=parseInt(day,10);if(!isFinite(month)||(parseInt(month,10)!=parseFloat(month))){errorMsg=errorMsgRoot+" must specify a month in integer format";alert(errorMsg);return false;}
var intMonth=parseInt(month,10);if(!isFinite(year)||(parseInt(year,10)!=parseFloat(year))){errorMsg=errorMsgRoot+" must specify a year in integer format";alert(errorMsg);return false;}
var intYear=parseInt(year,10);if(year.length<=2){if(intYear>=50){intYear+=1900;}else{intYear+=2000;}}
var checkDate=new Date();checkDate.setFullYear(intYear,intMonth-1,intDay);if(checkDate.getDate()!=intDay||checkDate.getMonth()!=intMonth-1||checkDate.getFullYear()!=intYear){errorMsg=errorMsgRoot+" must specify a valid date";alert(errorMsg);return false;}
day=intDay+"";while(day.length<2){day="0"+day;}
month=intMonth+"";while(month.length<2){month="0"+month;}
year=intYear+"";while(year.length<4){year="0"+year;}
var stdDate=year+"-"+month+"-"+day;if(minValue!==null&&minValue!==""&&stdDate<minValue){errorMsg=errorMsgRoot+" must not be less than "+minValue;alert(errorMsg);return false;}else if(maxValue!==null&&maxValue!==""&&stdDate>maxValue){errorMsg=errorMsgRoot+" must not be greater than "+maxValue;alert(errorMsg);return false;}
entValStoreElem.value=stdDate;var formatDate=applyDateFormat(stdDate,entFormatVal);document.getElementById(entFormInd).value=formatDate;return true;}
function hasEntityChanged(entFormInd){var entChangedInd=entFormInd+"_changed";var entChangedElem=document.getElementById(entChangedInd);if(!isValidElement(entChangedElem)){return false;}
var entChanged=entChangedElem.value;if(entChanged=="Y"){return true;}else{return false;}}
function setEntityChangedFlag(entFormInd,changedFlag){var entChangedInd=entFormInd+"_changed";document.getElementById(entChangedInd).value=changedFlag;}
var changeErrorTimeout=null;var changeEntFormInd=null;function inputTextChanged(eventObj,entFormInd,submitFlag,textClassStub,cellClassStub,toolNum){if(changeErrorTimeout!==null){clearTimeout(changeErrorTimeout);changeErrorTimeout=null;}
changeEntFormInd=entFormInd;var entTextElem=document.getElementById(entFormInd);var entCellInd=entFormInd+"_cell";var entCellElem=document.getElementById(entCellInd);var entChangedInd=entFormInd+"_changed";document.getElementById(entChangedInd).value="Y";var toolChangedInd="tool_num_"+toolNum+"_changed";var toolChangedElem=document.getElementById(toolChangedInd);var prevToolChangedFlag=toolChangedElem.value;toolChangedElem.value="Y";var entStatusInd=entFormInd+"_status";var entStatusElem=document.getElementById(entStatusInd);var currEntStatus=entStatusElem.value;var toolCalcModeInd="tool_num_"+toolNum+"_calc_mode";var toolCalcMode=document.getElementById(toolCalcModeInd).value;var newEntStatus,toolChangeOrder;var validResult=checkToolValueChanges(toolNum,false,entFormInd,false);if(validResult){if(!shouldEntityChangeBeIgnored(toolNum,entFormInd)){document.getElementById("focus_elem_id").value=entFormInd;newEntStatus="ai_bc";if(currEntStatus.search("_ci")!=-1){newEntStatus+="_ci";}else if(currEntStatus.search("_co")!=-1){newEntStatus+="_co";}
entStatusElem.value=newEntStatus;toolChangeOrder=updateToolChangeOrder(toolNum,entFormInd,"A");var updateClassInd;if(toolCalcMode=="SM"){updateClassInd="Y";}else{updateClassInd="C";}
var calcRequired=checkForCalcSetChanges(toolNum,toolChangeOrder,entFormInd,updateClassInd);if(entStatusElem.value!=newEntStatus){newEntStatus=entStatusElem.value;}
if(toolCalcMode!="SM"&&calcRequired){storeCurrentScrollPosition();document.toolform.submit();}else{if(currEntStatus!=newEntStatus){updateInputTextClassStatus(textClassStub,entTextElem,cellClassStub,entCellElem,newEntStatus);}}}else{newEntStatus="ai_bc";if(currEntStatus.search("_co")!=-1){newEntStatus+="_co";}
entStatusElem.value=newEntStatus;toolChangeOrder=updateToolChangeOrder(toolNum,entFormInd,"D");if(currEntStatus.search("_ci")!=-1){checkForCalcSetChanges(toolNum,toolChangeOrder,entFormInd,"Y");if(entStatusElem.value!=newEntStatus){newEntStatus=entStatusElem.value;}}
if(currEntStatus!=newEntStatus){updateInputTextClassStatus(textClassStub,entTextElem,cellClassStub,entCellElem,newEntStatus);}}}else{newEntStatus="ai_de";entStatusElem.value=newEntStatus;var entValStoreInd=entFormInd+"_val";var entValStoreElem=document.getElementById(entValStoreInd);entValStoreElem.value=entTextElem.value;toolChangeOrder=updateToolChangeOrder(toolNum,entFormInd,"D");if(currEntStatus.search("_ci")!=-1){checkForCalcSetChanges(toolNum,toolChangeOrder,entFormInd,"Y");if(entStatusElem.value!=newEntStatus){newEntStatus=entStatusElem.value;}}
if(currEntStatus!=newEntStatus){updateInputTextClassStatus(textClassStub,entTextElem,cellClassStub,entCellElem,newEntStatus);}
entTextElem.select();entTextElem.focus();if(window.event){window.event.returnValue=false;}else{changeErrorTimeout=setTimeout("changeErrorTimeout = null",1000);}}
changeEntFormInd=null;}
function inputTextKeyDown(eventObj,entFormInd){handleKeyDown(eventObj,entFormInd);}
function inputTextFocus(entFormInd,activeAreaCode){if(changeEntFormInd==entFormInd){return;}
updateActiveSiteArea(activeAreaCode);var entTextElem=document.getElementById(entFormInd);var textElemClass=entTextElem.className;textElemClass=textElemClass.replace(" text_focus_no_val","");textElemClass=textElemClass.replace(" text_focus","");var entValStoreInd=entFormInd+"_val";var entValStoreElem=document.getElementById(entValStoreInd);var entStatusInd=entFormInd+"_status";if(entValStoreElem.value===""&&document.getElementById(entStatusInd).value.search("ai_de")==-1){entTextElem.value=returnEmptyValueFormat(entFormInd);entTextElem.className=textElemClass+" text_focus_no_val";}else{entTextElem.className=textElemClass+" text_focus";}
if(!entTextElem.readOnly){var entTextLen=entTextElem.value.length;if(entTextElem.value.charAt(entTextLen-1)=="%"){if(entTextElem.createTextRange){var entTextRange=entTextElem.createTextRange();entTextRange.moveEnd('character',-1);entTextRange.select();}else if(entTextElem.setSelectionRange){entTextElem.setSelectionRange(0,entTextLen-1);}else{entTextElem.select();}}else{entTextElem.select();}}}
function inputTextBlur(entFormInd){if(changeEntFormInd==entFormInd){return;}
var entTextElem=document.getElementById(entFormInd);if(entTextElem.value==returnEmptyValueFormat(entFormInd)){entTextElem.value="";}
var entStatusInd=entFormInd+"_status";var entStatus=document.getElementById(entStatusInd).value;var textElemClass=entTextElem.className;textElemClass=textElemClass.replace(" text_focus_no_val","");entTextElem.className=textElemClass.replace(" text_focus","");}
function dropDownSelChanged(selEntFormInd,submitFlag,selClassStub,toolNum){var entChangedInd=selEntFormInd+"_changed";document.getElementById(entChangedInd).value="Y";var toolChangedInd="tool_num_"+toolNum+"_changed";document.getElementById(toolChangedInd).value="Y";var entStatusInd=selEntFormInd+"_status";var entStatusElem=document.getElementById(entStatusInd);var currEntStatus=entStatusElem.value;var toolCalcModeInd="tool_num_"+toolNum+"_calc_mode";var toolCalcMode=document.getElementById(toolCalcModeInd).value;document.getElementById("focus_elem_id").value=selEntFormInd;var newEntStatus="ai_bc";if(currEntStatus.search("_ci")!=-1){newEntStatus+="_ci";}else if(currEntStatus.search("_co")!=-1){newEntStatus+="_co";}
entStatusElem.value=newEntStatus;var toolChangeOrder=updateToolChangeOrder(toolNum,selEntFormInd,"A");var updateClassInd;if(toolCalcMode=="SM"){updateClassInd="Y";}else{updateClassInd="C";}
var calcRequired=checkForCalcSetChanges(toolNum,toolChangeOrder,selEntFormInd,updateClassInd);if(entStatusElem.value!=newEntStatus){newEntStatus=entStatusElem.value;}
doDropDownOptionActions(selEntFormInd);if((toolCalcMode!="SM"&&calcRequired)||submitFlag=="A"){storeCurrentScrollPosition();document.toolform.submit();}else{if(currEntStatus!=newEntStatus){updateDropDownClassStatus(selClassStub,selEntFormInd,newEntStatus);}}}
function eventDropDownSelChanged(toolNum,eventId,selEntityId,selEntFormInd){var lastEventInd="tool_num_"+toolNum+"_last_event";document.getElementById(lastEventInd).value=eventId+":"+selEntityId;document.getElementById("focus_elem_id").value=selEntFormInd;storeCurrentScrollPosition();document.toolform.submit();}
function dropDownKeyDown(eventObj,selEntFormInd){handleKeyDown(eventObj,selEntFormInd);}
function dropDownFocus(activeAreaCode){updateActiveSiteArea(activeAreaCode);}
function handleKeyDown(eventObj,entFormInd){var keyNum;if(window.event){keyNum=eventObj.keyCode;}else if(eventObj.which){keyNum=eventObj.which;}
if(keyNum==9){if(eventObj.shiftKey){document.getElementById("shift_tab_elem_id").value=entFormInd;document.getElementById("tab_elem_id").value="";}else{document.getElementById("tab_elem_id").value=entFormInd;document.getElementById("shift_tab_elem_id").value="";}}}
function checkboxControlClicked(toolNum,checkboxId,ctrlEntFormInd,checkedCtrlVal,nonCheckedCtrlVal,activeAreaCode){updateActiveSiteArea(activeAreaCode);var checkboxElem=document.getElementById(checkboxId);if(checkboxElem.checked){document.getElementById(ctrlEntFormInd).value=checkedCtrlVal;}else{document.getElementById(ctrlEntFormInd).value=nonCheckedCtrlVal;}
displayValueCtrlChange(toolNum,ctrlEntFormInd);}
function toggleDisplay(showCtrlFormInd,toolNum,activeAreaCode){updateActiveSiteArea(activeAreaCode);updateToolChangeOrder(toolNum,showCtrlFormInd,"A");storeCurrentScrollPosition();if(document.getElementById(showCtrlFormInd).value=="Y"){document.getElementById(showCtrlFormInd).value="N";}else{document.getElementById(showCtrlFormInd).value="Y";}}
function displayChoiceButtonClicked(displayChoiceFormInd,defaultChoiceInd,toggledChoiceInd,toolNum,activeAreaCode){updateActiveSiteArea(activeAreaCode);updateToolChangeOrder(toolNum,displayChoiceFormInd,"A");storeCurrentScrollPosition();if(document.getElementById(displayChoiceFormInd).value==defaultChoiceInd){document.getElementById(displayChoiceFormInd).value=toggledChoiceInd;}else{document.getElementById(displayChoiceFormInd).value=defaultChoiceInd;}}
function entityCopyButtonClicked(toolNum,buttonId){var entityCopyInd="entity_copy_"+toolNum+"_"+buttonId;var entityCopyElem=document.getElementById(entityCopyInd);if(isValidElement(entityCopyElem)){var entityCopyActionArr=entityCopyElem.value.split(":");for(var aIdx=0;aIdx<entityCopyActionArr.length;aIdx++){var actionInfoArr=entityCopyActionArr[aIdx].split("#");if(actionInfoArr.length===3&&actionInfoArr[0]!==""&&actionInfoArr[1]!==""&&actionInfoArr[2]!==""){if(actionInfoArr[0]=="EC"){doEntityCopyAction(actionInfoArr[1],actionInfoArr[2]);}}}}
updateActiveSiteArea("TOOL_BUTTON");}
function shouldEntityChangeBeIgnored(toolNum,entFormInd){var entValStoreInd=entFormInd+"_val";var entValStoreElem=document.getElementById(entValStoreInd);var entValue=entValStoreElem.value;if(entValue===""&&getToolGenProperty(toolNum,"CCC")!="Y"){return true;}
return false;}
function updateInputTextClassStatus(textClassStub,entTextElem,cellClassStub,entCellElem,newEntStatus){if(textClassStub!==null){var textElemClass=entTextElem.className;textElemClass=textElemClass.replace("_no_val","");textElemClass=textElemClass.replace("_ci","");textElemClass=textElemClass.replace("_co","");var stubPos=textElemClass.search(textClassStub);if(stubPos!=-1){var endStubPos=stubPos+textClassStub.length;entTextElem.className=textElemClass.substring(0,endStubPos)+"_"+newEntStatus+
textElemClass.substring(endStubPos+6);}}
if(cellClassStub!==null){entCellElem.className=cellClassStub+"_"+newEntStatus;}}
function updateDropDownClassStatus(selClassStub,selEntFormInd,newSelEntStatus){if(selClassStub!==null){var selEntElem=document.getElementById(selEntFormInd);var selEntClass=selEntElem.className;selEntClass=selEntClass.replace("_ci","");selEntClass=selEntClass.replace("_co","");var stubPos=selEntClass.search(selClassStub);if(stubPos!=-1){var endStubPos=stubPos+selClassStub.length;selEntElem.className=selEntClass.substring(0,endStubPos)+"_"+newSelEntStatus+
selEntClass.substring(endStubPos+6);}}}
function updateClassStatusFromPrev(entFormInd,prevEntStatus,newEntStatus){var entFormElem=document.getElementById(entFormInd);if(isValidElement(entFormElem)&&isValidElemProperty(entFormElem.className)&&entFormElem.className!==""){entFormElem.className=entFormElem.className.replace(prevEntStatus,newEntStatus);}
var entCellInd=entFormInd+"_cell";var entCellElem=document.getElementById(entCellInd);if(isValidElement(entCellElem)&&isValidElemProperty(entCellElem.className)&&entCellElem.className!==""){entCellElem.className=entCellElem.className.replace(prevEntStatus,newEntStatus);}}
function updateToolChangeOrder(toolNum,entFormInd,actionFlag){var pos;var toolChangeOrder=null;var toolChangeOrderInd="tool_num_"+toolNum+"_change_order";var toolChangeOrderElem=document.getElementById(toolChangeOrderInd);if(isValidElement(toolChangeOrderElem)){toolChangeOrder=toolChangeOrderElem.value;var chgIdx;var matchIdx=null;var toolChangeOrderArr=toolChangeOrder.split(":");for(chgIdx=0;chgIdx<toolChangeOrderArr.length;chgIdx++){if(toolChangeOrderArr[chgIdx]==entFormInd){matchIdx=chgIdx;break;}}
if(actionFlag=="A"||matchIdx!==null){chgIdx=0;if(actionFlag=="A"&&toolChangeOrderArr.length==8&&matchIdx===null){chgIdx=1;}
if(chgIdx==1||matchIdx!==null){toolChangeOrder="";for(chgIdx;chgIdx<toolChangeOrderArr.length;chgIdx++){if(chgIdx!=matchIdx){if(toolChangeOrder!=""){toolChangeOrder+=":";}
toolChangeOrder+=toolChangeOrderArr[chgIdx];}}}
if(actionFlag=="A"){if(toolChangeOrder!=""){toolChangeOrder+=":";}
toolChangeOrder+=entFormInd;}
toolChangeOrderElem.value=toolChangeOrder;}}
return toolChangeOrder;}
function changeStatusOfCalcSetIOs(toolNum,newCombCalcSetsIOArr,oldCombCalcSetsIOArr,lastChangeEntFormInd,updateClass){var entFormInd,entStatusInd,entStatusElem,entStatus,updEntStatus;for(entFormInd in newCombCalcSetsIOArr){if(isValidElement(document.getElementById(entFormInd))){entStatusInd=entFormInd+"_status";entStatusElem=document.getElementById(entStatusInd);if(isValidElement(entStatusElem)){entStatus=entStatusElem.value;if(newCombCalcSetsIOArr[entFormInd]=="I"){if(entStatus.search("_ci")==-1){updEntStatus=entStatus.replace("_co","")+"_ci";entStatusElem.value=updEntStatus;if(entFormInd!=lastChangeEntFormInd&&updateClass){updateClassStatusFromPrev(entFormInd,entStatus,updEntStatus);}}}else{if(entStatus.search("_co")==-1){updEntStatus=entStatus.replace("_ci","")+"_co";entStatusElem.value=updEntStatus;if(entFormInd!=lastChangeEntFormInd&&updateClass){updateClassStatusFromPrev(entFormInd,entStatus,updEntStatus);}}}}}}
for(entFormInd in oldCombCalcSetsIOArr){if(isValidElement(document.getElementById(entFormInd))){entStatusInd=entFormInd+"_status";entStatusElem=document.getElementById(entStatusInd);if(isValidElement(entStatusElem)){if(newCombCalcSetsIOArr[entFormInd]===undefined){entStatus=entStatusElem.value;if(entStatus.search("_ci")!=-1||entStatus.search("_co")!=-1){updEntStatus=entStatus.replace("_ci","");updEntStatus=updEntStatus.replace("_co","");entStatusElem.value=updEntStatus;if(entFormInd!=lastChangeEntFormInd&&updateClass){updateClassStatusFromPrev(entFormInd,entStatus,updEntStatus);}}}}}}}
function checkForCalcSetChanges(toolNum,toolChangeOrder,lastChangeEntFormInd,updateClassInd){var currCombCalcSetsIOArr=getCurrCombCalcSetsIOArray(toolNum);var calcRequired=false;var execNewCalcSetIdArr=[];var newCalcSetId;var newCalcSetArr=determineToolCalcSets(toolNum,toolChangeOrder);for(var nIdx=0;nIdx<newCalcSetArr.length;nIdx++){var calcSetInfo=newCalcSetArr[nIdx];var calcSetInfoArr=calcSetInfo.split("#");var calcSetGroupId=calcSetInfoArr[0];var calcSetPair=calcSetInfoArr[1];if(calcSetPair!==""){var calcSetPairArr=calcSetPair.split(":");newCalcSetId=calcSetPairArr[0];if(calcSetPairArr[1]=="Y"&&!areCalcSetIOsHidden(toolNum,newCalcSetId,calcSetGroupId)){calcRequired=true;}}else{newCalcSetId=null;}
if(newCalcSetId!==null){execNewCalcSetIdArr[calcSetGroupId]=newCalcSetId;}}
var combCalcSetsIOArr=getCombCalcSetsIOArray(toolNum,execNewCalcSetIdArr);var updateClass;if(updateClassInd=="N"){updateClass=false;}else if(updateClassInd=="C"){updateClass=!calcRequired;}else{updateClass=true;}
changeStatusOfCalcSetIOs(toolNum,combCalcSetsIOArr,currCombCalcSetsIOArr,lastChangeEntFormInd,updateClass);return calcRequired;}
function areCalcSetIOsHidden(toolNum,setId,setGroupId){var allIOsHidden=true;var calcSetIOArr=getCalcSetIOArray(toolNum,setId,setGroupId);for(entFormInd in calcSetIOArr){var entFormElem=document.getElementById(entFormInd);if(isValidElement(entFormElem)&&entFormElem.type!="hidden"){allIOsHidden=false;break;}}
return allIOsHidden;}
function doDropDownOptionActions(selEntFormInd){var selectActionsInd="select_actions_"+selEntFormInd+"-"+
document.getElementById(selEntFormInd).value;var selectActionsElem=document.getElementById(selectActionsInd);if(isValidElement(selectActionsElem)){var selectActionArr=selectActionsElem.value.split(":");for(var aIdx=0;aIdx<selectActionArr.length;aIdx++){var actionPartArr=selectActionArr[aIdx].split(";");var conditionsMet=true;for(var cIdx=1;cIdx<actionPartArr.length;cIdx++){var conditionArr=actionPartArr[cIdx].split("-");if(conditionArr.length===3&&conditionArr[0]!==""&&conditionArr[1]!==""&&conditionArr[2]!==""){var entFormInd=conditionArr[0];var matchFlag=conditionArr[1];var entMatchValue=conditionArr[2];var entFormElem=document.getElementById(entFormInd);if(isValidElement(entFormElem)){var entValue;var entValStoreInd=entFormInd+"_val";var entValStoreElem=document.getElementById(entValStoreInd);if(isValidElement(entValStoreElem)){entValue=entValStoreElem.value;}else{entValue=entFormElem.value;}
if((matchFlag=="Y"&&entValue!==entMatchValue)||(matchFlag=="N"&&entValue===entMatchValue)){conditionsMet=false;break;}}}}
if(conditionsMet){var actionInfoArr=actionPartArr[0].split("#");if(actionInfoArr.length===3&&actionInfoArr[0]!==""&&actionInfoArr[1]!==""&&actionInfoArr[2]!==""){if(actionInfoArr[0]=="EC"){doEntityCopyAction(actionInfoArr[1],actionInfoArr[2]);}else if(actionInfoArr[0]=="EF"){doEntityFormatAction(actionInfoArr[1],actionInfoArr[2]);}else if(actionInfoArr[0]=="RS"){doRelSelectEntityAction(actionInfoArr[1],actionInfoArr[2]);}}}}}}
function doEntityCopyAction(copyActionInd,entityCopyPair){var entityCopyPairArr=entityCopyPair.split("-");if(entityCopyPairArr.length===2&&entityCopyPairArr[0]!==""&&entityCopyPairArr[1]!==""){var fromEntFormInd=entityCopyPairArr[0];var toEntFormInd=entityCopyPairArr[1];var fromEntFormElem=document.getElementById(fromEntFormInd);var toEntFormElem=document.getElementById(toEntFormInd);if(isValidElement(fromEntFormElem)&&isValidElement(toEntFormElem)){if(copyActionInd=="A"){toEntFormElem.value=fromEntFormElem.value;var fromEntOrigValInd=fromEntFormInd+"_origval";var toEntOrigValInd=toEntFormInd+"_origval";var fromEntOrigValElem=document.getElementById(fromEntOrigValInd);var toEntOrigValElem=document.getElementById(toEntOrigValInd);if(isValidElement(fromEntOrigValElem)&&isValidElement(toEntOrigValElem)){toEntOrigValElem.value=fromEntOrigValElem.value;}
var fromEntValStoreInd=fromEntFormInd+"_val";var toEntValStoreInd=toEntFormInd+"_val";var fromEntValStoreElem=document.getElementById(fromEntValStoreInd);var toEntValStoreElem=document.getElementById(toEntValStoreInd);if(isValidElement(fromEntValStoreElem)&&isValidElement(toEntValStoreElem)){toEntValStoreElem.value=fromEntValStoreElem.value;}
var fromEntStatusInd=fromEntFormInd+"_status";var toEntStatusInd=toEntFormInd+"_status";var fromEntStatusElem=document.getElementById(fromEntStatusInd);var toEntStatusElem=document.getElementById(toEntStatusInd);if(isValidElement(fromEntStatusElem)&&isValidElement(toEntStatusElem)){toEntStatusElem.value=fromEntStatusElem.value;}
toEntFormElem.className=fromEntFormElem.className;var fromEntCellInd=fromEntFormInd+"_cell";var toEntCellInd=toEntFormInd+"_cell";var fromEntCellElem=document.getElementById(fromEntCellInd);var toEntCellElem=document.getElementById(toEntCellInd);if(isValidElement(fromEntCellElem)&&isValidElement(toEntCellElem)){toEntCellElem.className=fromEntCellElem.className;}
var fromEntFormatInd=fromEntFormInd+"_format";var toEntFormatInd=toEntFormInd+"_format";var fromEntFormatElem=document.getElementById(fromEntFormatInd);var toEntFormatElem=document.getElementById(toEntFormatInd);if(isValidElement(fromEntFormatElem)&&isValidElement(toEntFormatElem)){toEntFormatElem.value=fromEntFormatElem.value;}
var fromFormatText=extractFormatTextFromTitle(fromEntFormElem.title);updateEntityTitleWithFormatText(toEntFormElem,fromFormatText);var fromEntPropsInd=fromEntFormInd+"_props";var toEntPropsInd=toEntFormInd+"_props";var fromEntPropsElem=document.getElementById(fromEntPropsInd);var toEntPropsElem=document.getElementById(toEntPropsInd);if(isValidElement(fromEntPropsElem)&&isValidElement(toEntPropsElem)){toEntPropsElem.value=fromEntPropsElem.value;}
var fromEntChangedInd=fromEntFormInd+"_changed";var toEntChangedInd=toEntFormInd+"_changed";var fromEntChangedElem=document.getElementById(fromEntChangedInd);var toEntChangedElem=document.getElementById(toEntChangedInd);if(isValidElement(fromEntChangedElem)&&isValidElement(toEntChangedElem)){toEntChangedElem.value=fromEntChangedElem.value;}
var fromEntErrorInd=fromEntFormInd+"_err";var toEntErrorInd=toEntFormInd+"_err";var fromEntErrorElem=document.getElementById(fromEntErrorInd);var toEntErrorElem=document.getElementById(toEntErrorInd);if(isValidElement(fromEntErrorElem)&&isValidElement(toEntErrorElem)){toEntErrorElem.value=fromEntErrorElem.value;}}else if(copyActionInd=="F"||copyActionInd=="FP"){var fromEntFormatInd=fromEntFormInd+"_format";var toEntFormatInd=toEntFormInd+"_format";var fromEntFormatElem=document.getElementById(fromEntFormatInd);var toEntFormatElem=document.getElementById(toEntFormatInd);if(isValidElement(fromEntFormatElem)&&isValidElement(toEntFormatElem)){if(copyActionInd=="F"){var formatText=extractFormatTextFromTitle(fromEntFormElem.title);applyFormatToEntity(toEntFormInd,fromEntFormatElem.value,formatText);}else if(copyActionInd=="FP"){applyPctFormatPartToEntity(toEntFormInd,null,fromEntFormatElem.value);}}}}}}
function doEntityFormatAction(formatActionInd,entFormatInfo){if(formatActionInd=="P"){var entFormatInfoArr=entFormatInfo.split("-");if(entFormatInfoArr.length===2&&entFormatInfoArr[0]!==""&&entFormatInfoArr[1]!==""){var entFormInd=entFormatInfoArr[0];var asPercentage=entFormatInfoArr[1];var entFormElem=document.getElementById(entFormInd);if(isValidElement(entFormElem)){applyPctFormatPartToEntity(entFormInd,asPercentage,null);}}}}
function doRelSelectEntityAction(relSelectActionInd,selEntFormInd){if(relSelectActionInd=="S"){doDropDownOptionActions(selEntFormInd);}}
function returnEmptyValueFormat(entFormInd){var formatEntVal="";var entFormatInd=entFormInd+"_format";var entFormat=document.getElementById(entFormatInd).value;if(entFormat.search("P_")!=-1){formatEntVal+="%";}
return formatEntVal;}
var closeTimeout;function displayFormatMenu(eventObj,formatMenuId,toolNum,buttonId){var openFormatMenus=document.getElementById("open_format_menus").value;if(openFormatMenus!==""){closeFormatMenus(openFormatMenus,null);}
document.getElementById("open_format_menus").value=formatMenuId;var menuDivId="format_menu_div_"+formatMenuId;document.getElementById(menuDivId).className="format_menu_div";document.getElementById(menuDivId).style.left=eventObj.clientX+
getScrollPosXAxis()+"px";document.getElementById(menuDivId).style.top=eventObj.clientY+
getScrollPosYAxis()+"px";var formatButtonInd="format_button_"+formatMenuId;document.getElementById(formatButtonInd).value=toolNum+"_"+buttonId;updateActiveSiteArea("TOOL_BUTTON");closeTimeout=setTimeout("checkClose()",5000);}
function displaySubFormatMenu(eventObj,formatMenuId,subFormatMenuId,itemOffsetTop){var subMenuDivId="format_menu_div_"+subFormatMenuId;document.getElementById(subMenuDivId).className="format_menu_div";var parentMenuDivId="format_menu_div_"+formatMenuId;var posLeft=document.getElementById(parentMenuDivId).offsetLeft;posLeft+=document.getElementById(parentMenuDivId).offsetWidth;var posTop=document.getElementById(parentMenuDivId).offsetTop;posTop=posTop+itemOffsetTop;document.getElementById(subMenuDivId).style.left=posLeft+"px";document.getElementById(subMenuDivId).style.top=posTop+"px";var formatButtonInd="format_button_"+formatMenuId;var formatButtonStr=document.getElementById(formatButtonInd).value;formatButtonInd="format_button_"+subFormatMenuId;document.getElementById(formatButtonInd).value=formatButtonStr;document.getElementById("open_format_menus").value+="_"+subFormatMenuId;}
function closeFormatMenus(openFormatMenus,stopFormatMenuId){var menuIdArr=openFormatMenus.split('_');menuIdArr.reverse();var newOpenFormatMenus="";var closeMenus=true;var idx;for(idx in menuIdArr){if(closeMenus){if(stopFormatMenuId!==null&&stopFormatMenuId!==undefined&&stopFormatMenuId==menuIdArr[idx]){closeMenus=false;}}
if(closeMenus){var menuDivId="format_menu_div_"+menuIdArr[idx];document.getElementById(menuDivId).className="hide_element";}else{if(newOpenFormatMenus!==""){newOpenFormatMenus="_"+newOpenFormatMenus;}
newOpenFormatMenus=menuIdArr[idx]+newOpenFormatMenus;}}
document.getElementById("open_format_menus").value=newOpenFormatMenus;}
function formatItemClicked(formatMenuId,itemType,formatNum,asPercentage,formatText){var formatButtonInd="format_button_"+formatMenuId;var formatButtonStr=document.getElementById(formatButtonInd).value;var entCount=0;var stopLoop=false;do{entCount++;var formatEntInd="format_"+formatButtonStr+"_"+entCount;var formatEntIndElem=document.getElementById(formatEntInd);if(isValidElement(formatEntIndElem)){var formatEntId=formatEntIndElem.value;var formatEntElem=document.getElementById(formatEntId);if(!isValidElement(formatEntElem)){continue;}
performEntityFormatting(formatEntId,itemType,formatNum,asPercentage,formatText);}else{stopLoop=true;}}
while(!stopLoop);doFormatBasedLabelUpdates(formatButtonStr);}
function performEntityFormatting(formatEntId,itemType,formatNum,asPercentage,formatText){var formatEntElem=document.getElementById(formatEntId);var formatEntValInd=formatEntId+"_val";var formatEntValElem=document.getElementById(formatEntValInd);var formatEntVal=formatEntValElem.value;var actFormatEntVal=formatEntVal;var formatEntStatusInd=formatEntId+"_status";var formatEntStatus=document.getElementById(formatEntStatusInd).value;var entFormatInd=formatEntId+"_format";var entFormatElem=document.getElementById(entFormatInd);var entFormatVal=entFormatElem.value;var newEntFormatVal="";var applyFormat=true;if(actFormatEntVal===""||formatEntStatus.search("ai_de")!=-1){applyFormat=false;}
if(asPercentage=="Y"){if(applyFormat){formatEntVal*=100;}
newEntFormatVal="P_";}
if(itemType=="SF"){if(applyFormat){formatEntVal=applySignificantFiguresFormat(formatEntVal,formatNum);}
newEntFormatVal="S"+formatNum+"_"+newEntFormatVal;}else if(itemType=="DP"){if(applyFormat){formatEntVal=applyDecimalPlacesFormat(formatEntVal,formatNum);}
newEntFormatVal="D"+formatNum+"_"+newEntFormatVal;}else if(itemType=="DT"){if(applyFormat){formatEntVal=applyDateFormat(formatEntVal,formatText);}
newEntFormatVal=formatText;}else if(itemType=="NF"){newEntFormatVal="";}
if(applyFormat){if(asPercentage=="Y"){formatEntVal+="%";}}
if(applyFormat){formatEntElem.value=formatEntVal;var formatEntChangedInd=formatEntId+"_changed";if(document.getElementById(formatEntChangedInd).value!="Y"){var formatEntOrigValInd=formatEntId+"_origval";var formatEntOrigValElem=document.getElementById(formatEntOrigValInd);if(isValidElement(formatEntOrigValElem)){formatEntOrigValElem.value=formatEntVal;}}}
entFormatElem.value=newEntFormatVal;updateEntityTitleWithFormatText(formatEntElem,formatText);}
function applyPctFormatPartToEntity(formatEntId,newAsPercentage,fromEntFormatVal){var entFormatInd=formatEntId+"_format";var entFormatVal=document.getElementById(entFormatInd).value;var asPercentage=(entFormatVal.search("P_")!=-1)?"Y":"N";if(newAsPercentage==null){newAsPercentage=(fromEntFormatVal.search("P_")!=-1)?"Y":"N";}
if(asPercentage==newAsPercentage){return;}
entFormatVal=entFormatVal.replace("_DEF_","");var itemType;var formatNum;var formatArr=entFormatVal.split("_");var sdPos=formatArr[0].search("S");if(sdPos!=-1){itemType="SF";formatNum=formatArr[0].substring(sdPos+1);}else{var dpPos=formatArr[0].search("D");if(dpPos!=-1){itemType="DP";formatNum=formatArr[0].substring(dpPos+1);}else{itemType="OP";formatNum=0;}}
var formatEntTitle=document.getElementById(formatEntId).title;var formatText=extractFormatTextFromTitle(formatEntTitle);if(newAsPercentage=="Y"){formatText+="%";}else{formatText=formatText.replace("%","");if(formatText===""){formatText=null;}}
performEntityFormatting(formatEntId,itemType,formatNum,newAsPercentage,formatText);}
function applyFormatToEntity(formatEntId,newEntFormatVal,newFormatText){newEntFormatVal=newEntFormatVal.replace("_DEF_","");var entFormatInd=formatEntId+"_format";var entFormatVal=document.getElementById(entFormatInd).value;if(entFormatVal==newEntFormatVal){return;}
var itemType;var formatNum=null;var asPercentage=null;if(newEntFormatVal===""){itemType="NF";}else if(newEntFormatVal.search("_")==-1){itemType="DT";}else{if(newEntFormatVal.search("P_")!=-1){asPercentage="Y";}else{asPercentage="N";}
var formatArr=newEntFormatVal.split("_");var sdPos=formatArr[0].search("S");if(sdPos!=-1){itemType="SF";formatNum=formatArr[0].substring(sdPos+1);}else{var dpPos=formatArr[0].search("D");if(dpPos!=-1){itemType="DP";formatNum=formatArr[0].substring(dpPos+1);}else{itemType="OP";formatNum=0;}}}
performEntityFormatting(formatEntId,itemType,formatNum,asPercentage,newFormatText);}
function applySignificantFiguresFormat(inputVal,significantFigures){var formatVal="";if(significantFigures===0){return formatVal;}
if(inputVal==""){return 0;}
var testInputVal=inputVal+"";testInputVal=testInputVal.replace(/0/g,"");testInputVal=testInputVal.replace(/\./g,"");if(testInputVal.length===0){return 0;}
sfPrecision=Math.floor(0-Math.log(Math.abs(inputVal))/Math.LN10)+
significantFigures;var sfPow=Math.pow(10,sfPrecision);if(sfPrecision<0){formatVal=Math.round(inputVal*sfPow)*Math.round(1/sfPow);}else{formatVal=Math.round(inputVal*sfPow)/sfPow;}
return formatVal;}
function applyDecimalPlacesFormat(inputVal,decimalPlaces){var formatVal="";var inputDecimalPlaces=0;var dp;if(inputVal!=""){var inputValStr=inputVal+"";var pointPos=inputValStr.lastIndexOf(".");if(pointPos!=-1){inputDecimalPlaces=inputValStr.length-1-pointPos;}}
if(inputDecimalPlaces>decimalPlaces){var dpPow=Math.pow(10,decimalPlaces);formatVal=Math.round(inputVal*dpPow)/dpPow;var formatValStr=formatVal+"";var resDecimalPlaces=0;if(formatValStr.lastIndexOf(".")!=-1){resDecimalPlaces=formatValStr.length-1-
formatValStr.lastIndexOf(".");}
for(dp=resDecimalPlaces;dp<decimalPlaces;dp++){if(dp===0){formatVal+=".";}
formatVal+="0";}}else{if(inputVal==""){formatVal="0";}else{formatVal=inputVal;}
for(dp=inputDecimalPlaces;dp<decimalPlaces;dp++){if(dp===0){formatVal+=".";}
formatVal+="0";}}
return formatVal;}
function applyDateFormat(inputVal,dateFormat){if(inputVal==""){return dateFormat;}
var dateArr=inputVal.split("-");var year=dateArr[0];var month=dateArr[1];var day=dateArr[2];var formatVal="";switch(dateFormat){case"DD/MM/YYYY":formatVal=day+"/"+month+"/"+year;break;case"DD-MM-YYYY":formatVal=day+"-"+month+"-"+year;break;case"DDMMYYYY":formatVal=day+month+year;break;case"YYYY/MM/DD":formatVal=year+"/"+month+"/"+day;break;case"YYYY-MM-DD":formatVal=year+"-"+month+"-"+day;break;case"YYYYMMDD":formatVal=year+month+day;break;case"MM/DD/YYYY":formatVal=month+"/"+day+"/"+year;break;case"MM-DD-YYYY":formatVal=month+"-"+day+"-"+year;break;case"MMDDYYYY":formatVal=month+day+year;break;default:formatVal=year+"-"+month+"-"+day;}
return formatVal;}
function updateEntityTitleWithFormatText(formatEntElem,formatText)
{var formatEntTitle,formatPos;if(formatText!==null){var entDescShown=false;formatEntTitle=formatEntElem.title;formatEntElem.title="";if(isValidElemProperty(formatEntTitle)&&formatEntTitle!==""){formatPos=formatEntTitle.search("Format:");if(formatPos==-1){formatEntElem.title=formatEntTitle+" (";entDescShown=true;}else if(formatPos!==0){formatEntElem.title=formatEntTitle.substring(0,formatPos);entDescShown=true;}}
formatEntElem.title+="Format: "+formatText;if(entDescShown){formatEntElem.title+=")";}}else{formatEntTitle=formatEntElem.title;formatEntElem.title="";if(isValidElemProperty(formatEntTitle)&&formatEntTitle!==""){formatPos=formatEntTitle.search("Format:");if(formatPos>0){formatEntElem.title=formatEntTitle.substring(0,formatPos-2);}}}}
function extractFormatTextFromTitle(formatEntTitle){var formatText="";if(isValidElemProperty(formatEntTitle)&&formatEntTitle!==""){var formatPos=formatEntTitle.search("Format: ");if(formatPos!=-1){formatText=formatEntTitle.substring(formatPos+8);formatText=formatText.replace(")","");}}
return formatText;}
function doFormatBasedLabelUpdates(formatButtonStr){var labelCount=0;var stopLoop=false;do{labelCount++;var formatLabelInd="format_"+formatButtonStr+"_l_"+labelCount;var formatLabelIndElem=document.getElementById(formatLabelInd);if(isValidElement(formatLabelIndElem)){var labelElemId=formatLabelIndElem.value;var labelElem=document.getElementById(labelElemId);var labelText=labelElem.firstChild.nodeValue;var labelFormatElemId=labelElemId+"_f_ent";var formatEntId=document.getElementById(labelFormatElemId).value;var entFormatInd=formatEntId+"_format";var entFormat=document.getElementById(entFormatInd).value;if(entFormat.search("P_")!=-1){if(labelText.length<4||labelText.substring(labelText.length-4)!=" (%)"){labelText=labelText+" (%)";labelElem.firstChild.nodeValue=labelText;}}else{if(labelText.length>=4&&labelText.substring(labelText.length-4)==" (%)"){labelText=labelText.substring(0,labelText.length-4);labelElem.firstChild.nodeValue=labelText;}}}else{stopLoop=true;}}
while(!stopLoop);}
function formatItemMouseOver(eventObj,formatItemId,formatMenuId,subFormatMenuId){clearTimeout(closeTimeout);document.getElementById(formatItemId).className="format_menu_button_over";if(subFormatMenuId!==null){var itemOffsetTop=document.getElementById(formatItemId).offsetParent.offsetTop;displaySubFormatMenu(eventObj,formatMenuId,subFormatMenuId,itemOffsetTop);}else{var openFormatMenus=document.getElementById("open_format_menus").value;if(openFormatMenus!==""){closeFormatMenus(openFormatMenus,formatMenuId);}}}
function formatItemMouseOut(eventObj,formatItemId,formatMenuId){document.getElementById(formatItemId).className="format_menu_button";closeTimeout=setTimeout("checkClose()",1000);}
function checkClose(){var openFormatMenus=document.getElementById("open_format_menus").value;if(openFormatMenus!==""){closeFormatMenus(openFormatMenus,null);}}
var overCalculatorToolNum=null;function calcButtonClicked(buttonValue,buttonId,buttonType,ioAreaId,opAssoc,ioHistAreaId,toolNum){if(buttonValue===null){buttonValue=document.getElementById(buttonId).value;}
var ioAreaElem=document.getElementById(ioAreaId);var ioAreaText,ioAreaTextLen,toolCalcModeInd,toolCalcMode;var cursorPos,focusPos;if(buttonType=="ST"||buttonType=="CL"){if(buttonType=="CL"&&buttonValue=="C"){ioAreaElem.value="";setInputTextFocus(ioAreaElem,false);}else{var areaInputsId=document.getElementById(ioAreaId+"_inp").value;var areaInputsElem=document.getElementById(areaInputsId);areaInputsElem.value=buttonType+"["+buttonValue+"]";performCalculatorSubmit();}}else if(buttonType=="UO"||buttonType=="RE"){toolCalcModeInd="tool_num_"+toolNum+"_calc_mode";toolCalcMode=document.getElementById(toolCalcModeInd).value;if(toolCalcMode=="CM"){cursorPos=getTextCursorPosition(ioAreaElem);if(cursorPos===null){cursorPos=ioAreaElem.value.length;}
if(opAssoc=="R"||buttonType=="RE"){ioAreaText=ioAreaElem.value;ioAreaTextLen=ioAreaText.length;ioAreaElem.value=ioAreaText.substring(0,cursorPos)+
buttonValue+"()"+
ioAreaText.substring(cursorPos);focusPos=cursorPos+buttonValue.length+1;}else{ioAreaText=ioAreaElem.value;ioAreaElem.value=ioAreaText.substring(0,cursorPos)+
buttonValue+
ioAreaText.substring(cursorPos);focusPos=cursorPos+buttonValue.length;}
setInputTextFocusAtPos(ioAreaElem,focusPos);}else{if(opAssoc=="R"||buttonType=="RE"){ioAreaElem.value=buttonValue+"("+ioAreaElem.value+")";}else{ioAreaElem.value="("+ioAreaElem.value+")"+buttonValue;}
performCalculatorSubmit();}}else if(buttonType=="SC"){ioAreaText=ioAreaElem.value;ioAreaTextLen=ioAreaText.length;if(ioAreaTextLen>=3&&ioAreaText.charAt(0)=="-"&&ioAreaText.charAt(1)=="("&&ioAreaText.charAt(ioAreaTextLen-1)==")"){ioAreaElem.value=ioAreaText.substring(2,ioAreaTextLen-1);}else{ioAreaElem.value="-("+ioAreaText+")";}
setInputTextFocus(ioAreaElem,false);}else if(buttonType=="CN"){cursorPos=getTextCursorPosition(ioAreaElem);if(cursorPos===null){cursorPos=ioAreaElem.value.length;}
ioAreaText=ioAreaElem.value;ioAreaElem.value=ioAreaText.substring(0,cursorPos);if(buttonValue=="pi"||buttonValue=="PI"){ioAreaElem.value+=Math.PI;}
focusPos=ioAreaElem.value.length;ioAreaElem.value+=ioAreaText.substring(cursorPos);setInputTextFocusAtPos(ioAreaElem,focusPos);}else if(buttonType=="EV"){ioAreaElem.value+=buttonValue;performCalculatorSubmit();}else if(buttonType=="SU"){ioAreaElem.value+=buttonValue;storeCurrentScrollPosition();}else if(buttonType=="MM"){var memoryTextId=document.getElementById(ioAreaId+"_mem").value;var memoryTextElem=document.getElementById(memoryTextId);if(buttonValue=="MC"){memoryTextElem.value="";}else if(buttonValue=="MR"){ioAreaElem.value+=memoryTextElem.value;}else if(buttonValue=="MS"){memoryTextElem.value=ioAreaElem.value;}
setInputTextFocus(ioAreaElem,false);}else if(buttonType=="UH"){var ioHistAreaText=document.getElementById(ioHistAreaId).value;var lastEqIdx=ioHistAreaText.lastIndexOf('=');if(lastEqIdx!=-1&&lastEqIdx!=ioHistAreaText.length-1){var histText=ioHistAreaText.substring(lastEqIdx+1);ioAreaElem.value+=histText;}}else if(buttonType=="HC"){calcHistoryControlClicked(toolNum,buttonValue,buttonId);}else{cursorPos=getTextCursorPosition(ioAreaElem);if(cursorPos===null){cursorPos=ioAreaElem.value.length;}
ioAreaText=ioAreaElem.value;ioAreaElem.value=ioAreaText.substring(0,cursorPos)+
buttonValue+
ioAreaText.substring(cursorPos);focusPos=cursorPos+buttonValue.length;setInputTextFocusAtPos(ioAreaElem,focusPos);}}
function calcHistoryControlClicked(toolNum,controlValue,buttonId){var histEntsInd="calculator_hist_ents_"+toolNum;var histEntElemIds=document.getElementById(histEntsInd).value;var histEntElemIdArr=histEntElemIds.split(":");var histPosLinkInd="calculator_hist_pos_link_"+toolNum;var histPosEntFormInd=document.getElementById(histPosLinkInd).value;var histPosEntElem=document.getElementById(histPosEntFormInd);var histPos=parseInt(histPosEntElem.value,10);var ioHistAreasInd="calculator_io_hist_areas_"+toolNum;var ioHistAreasIds=document.getElementById(ioHistAreasInd).value;var ioHistAreaIdArr=ioHistAreasIds.split(":");var useHistEntsInd="calculator_use_hist_ents_"+toolNum;var useHistEntElemIds=document.getElementById(useHistEntsInd).value;var useHistEntElemIdArr=useHistEntElemIds.split(":");var useHistEntElemIdMapArr=[];var useIdx;for(useIdx=0;useIdx<useHistEntElemIdArr.length;useIdx++){var useHistArr=useHistEntElemIdArr[useIdx].split("-");useHistEntElemIdMapArr[useHistArr[0]]=useHistArr[1];}
var histCtrlEntsInd="calculator_hist_ctrl_ents_"+toolNum;var histCtrlEntElemIds=document.getElementById(histCtrlEntsInd).value;var histCtrlEntElemIdArr=histCtrlEntElemIds.split(":");var buttonImgId=buttonId+"_img";var buttonImgElem=document.getElementById(buttonImgId);var updateIOAreas=false;var ctrlIdx,histCtrlArr,histCtrlImgId,histCtrlImgElem;if(controlValue=="HN"){if(histEntElemIdArr.length>histPos+ioHistAreaIdArr.length-1){histPos++;histPosEntElem.value=histPos;updateIOAreas=true;if(histEntElemIdArr.length==histPos+ioHistAreaIdArr.length-1){document.getElementById(buttonId).disabled=true;if(isValidElement(buttonImgElem)&&buttonImgElem.src.lastIndexOf("enable.")!=-1){buttonImgElem.src=buttonImgElem.src.replace(/enable./,"disable.");}}
if(histPos==2){for(ctrlIdx=0;ctrlIdx<histCtrlEntElemIdArr.length;ctrlIdx++){histCtrlArr=histCtrlEntElemIdArr[ctrlIdx].split("-");if(histCtrlArr[0]=="HP"){document.getElementById(histCtrlArr[1]).disabled=false;histCtrlImgId=histCtrlArr[1]+"_img";histCtrlImgElem=document.getElementById(histCtrlImgId);if(isValidElement(histCtrlImgElem)&&histCtrlImgElem.src.lastIndexOf("disable.")!=-1){histCtrlImgElem.src=histCtrlImgElem.src.replace(/disable./,"enable.");}}}}}}else if(controlValue=="HP"){if(histPos>1){histPos--;histPosEntElem.value=histPos;updateIOAreas=true;if(histPos==1){document.getElementById(buttonId).disabled=true;if(isValidElement(buttonImgElem)&&buttonImgElem.src.lastIndexOf("enable.")!=-1){buttonImgElem.src=buttonImgElem.src.replace(/enable./,"disable.");}}
if(histPos==histEntElemIdArr.length-ioHistAreaIdArr.length){for(ctrlIdx=0;ctrlIdx<histCtrlEntElemIdArr.length;ctrlIdx++){histCtrlArr=histCtrlEntElemIdArr[ctrlIdx].split("-");if(histCtrlArr[0]=="HN"){document.getElementById(histCtrlArr[1]).disabled=false;histCtrlImgId=histCtrlArr[1]+"_img";histCtrlImgElem=document.getElementById(histCtrlImgId);if(isValidElement(histCtrlImgElem)&&histCtrlImgElem.src.lastIndexOf("disable.")!=-1){histCtrlImgElem.src=histCtrlImgElem.src.replace(/disable./,"enable.");}}}}}}
if(updateIOAreas){var areaIdx;for(areaIdx=0;areaIdx<ioHistAreaIdArr.length;areaIdx++){var ioHistAreaId=ioHistAreaIdArr[areaIdx];var ioHistAreaElem=document.getElementById(ioHistAreaId);var histEntVal=document.getElementById(histEntElemIdArr[histPos-1]).value;ioHistAreaElem.value=histEntVal;var useHistElem=document.getElementById(useHistEntElemIdMapArr[ioHistAreaId]);var lastEqIdx=histEntVal.lastIndexOf('=');if(lastEqIdx==-1||lastEqIdx==histEntVal.length-1||histEntVal.substring(lastEqIdx+1)=="Error"){useHistElem.disabled=true;}else{useHistElem.disabled=false;}
histPos++;}}}
function performCalculatorSubmit(){storeCurrentScrollPosition();document.toolform.submit();}
function overCalculator(toolNum,activeSiteArea){if(overCalculatorToolNum!=toolNum){overCalculatorToolNum=toolNum;var ioLinkElem=document.getElementById("calculator_io_link_"+
toolNum);if(isValidElement(ioLinkElem)){var ioAreaElem=document.getElementById(ioLinkElem.value);setInputTextFocus(ioAreaElem,false);}}
updateActiveSiteArea(activeSiteArea);}
function calcIOAreaKeyDown(eventObj){var keyNum;if(window.event){keyNum=eventObj.keyCode;}else if(eventObj.which){keyNum=eventObj.which;}
if((keyNum==61||keyNum==187)&&!eventObj.shiftKey){performCalculatorSubmit();}else if(keyNum==13){storeCurrentScrollPosition();}}
function determineToolCalcSets(toolNum,toolChangeOrder){var calcSetArr=[];var calcSetIdArr=[];var lastCalcSetIdArr=[];var toolLastCalcSetsInd="tool_num_"+toolNum+"_last_calc_sets";var toolLastCalcSetsElem=document.getElementById(toolLastCalcSetsInd);if(isValidElement(toolLastCalcSetsElem)){var interLastCalcSetIdArr=toolLastCalcSetsElem.value.split("_");for(var lIdx=0;lIdx<interLastCalcSetIdArr.length;lIdx++){var lastGroupSetIdPairArr=interLastCalcSetIdArr[lIdx].split("#");if(lastGroupSetIdPairArr.length==2){lastCalcSetIdArr[lastGroupSetIdPairArr[0]]=lastGroupSetIdPairArr[1];}}}
var lastCalcSetId;var calcSetPair;var calcSetPairArr;var calcSetGroupArr=getCalcSetGroupArray(toolNum);if(calcSetGroupArr.length>0){for(var gIdx=0;gIdx<calcSetGroupArr.length;gIdx++){var groupId=calcSetGroupArr[gIdx];var baseGroupId=getCalcSetBaseGroup(toolNum,groupId);var useGroupId;if(baseGroupId!==null){useGroupId=baseGroupId;}else{useGroupId=groupId;}
if(lastCalcSetIdArr[groupId]!==undefined){lastCalcSetId=lastCalcSetIdArr[groupId];}else{lastCalcSetId=null;}
calcSetPair=determineToolCalcSet(toolNum,toolChangeOrder,useGroupId,groupId,lastCalcSetId);if(calcSetPair!==null){calcSetArr[gIdx]=groupId+"#"+calcSetPair;calcSetPairArr=calcSetPair.split(":");calcSetIdArr[gIdx]=groupId+"#"+calcSetPairArr[0];}else{calcSetArr[gIdx]=groupId+"#";calcSetIdArr[gIdx]=groupId+"#";}}}else{if(lastCalcSetIdArr[1]!==undefined){lastCalcSetId=lastCalcSetIdArr[1];}else{lastCalcSetId=null;}
calcSetPair=determineToolCalcSet(toolNum,toolChangeOrder,null,null,lastCalcSetId);if(calcSetPair!==null){calcSetArr[0]="1#"+calcSetPair;calcSetPairArr=calcSetPair.split(":");calcSetIdArr[0]="1#"+calcSetPairArr[0];}else{calcSetArr[0]="1#";calcSetIdArr[0]="1#";}}
var toolCalcSetsInd="tool_num_"+toolNum+"_calc_sets";var toolCalcSetsElem=document.getElementById(toolCalcSetsInd);if(isValidElement(toolCalcSetsElem)){toolCalcSetsElem.value=calcSetIdArr.join("_");}
return calcSetArr;}
function determineToolCalcSet(toolNum,toolChangeOrder,setGroupId,entSetGroupId,lastCalcSetId){var calcSetId=null;var calcRequired=false;var toolChangeOrderArr=toolChangeOrder.split(":");var setChangePenalty=Math.pow(2,toolChangeOrderArr.length)-1;var setUnusedChangesSum=setChangePenalty;var calcSetArr=getCalcSetArray(toolNum,setGroupId);for(var sIdx=0;sIdx<calcSetArr.length;sIdx++){var skipSet=false;var tempCalcRequired=false;var setId=calcSetArr[sIdx];if(!checkCalcSetReqChanges(toolNum,setId,entSetGroupId)){skipSet=true;continue;}
if(!checkCalcSetConditions(toolNum,setId,entSetGroupId)){skipSet=true;continue;}
var calcSetIOArr=[];var calcSetMemberArr=getCalcSetMemberArray(toolNum,setId);for(var mIdx=0;mIdx<calcSetMemberArr.length;mIdx++){var mappingId=calcSetMemberArr[mIdx];if(!checkCalcMapReqChanges(toolNum,mappingId,entSetGroupId)){continue;}
if(checkCalcMapConditions(toolNum,mappingId,calcSetIOArr,entSetGroupId)){tempCalcRequired=true;}else{continue;}
var calcMapInputArr=getCalcMapInputs(toolNum,mappingId,entSetGroupId);for(inp in calcMapInputArr){if(calcSetIOArr[calcMapInputArr[inp]]===undefined){var entStatusInd=calcMapInputArr[inp]+"_status";var entStatusElem=document.getElementById(entStatusInd);if(isValidElement(entStatusElem)&&entStatusElem.value.search("ai_de")!=-1){skipSet=true;break;}
calcSetIOArr[calcMapInputArr[inp]]="I";}}
if(skipSet){tempCalcRequired=false;break;}
var calcMapOutputArr=getCalcMapOutputs(toolNum,mappingId,entSetGroupId);for(oup in calcMapOutputArr){if(calcSetIOArr[calcMapOutputArr[oup]]===undefined){calcSetIOArr[calcMapOutputArr[oup]]="O";}}}
if(!skipSet){var tempSetChangePenalty=determineSetChangePenalty(toolNum,setId,toolChangeOrderArr,calcSetIOArr,setGroupId,entSetGroupId);var tempSetUnusedChangesSum=determineSetUnusedChangesSum(toolChangeOrderArr,calcSetIOArr);if(calcSetId===null||tempSetChangePenalty<setChangePenalty||(tempSetChangePenalty===setChangePenalty&&(tempSetUnusedChangesSum<setUnusedChangesSum||(tempSetUnusedChangesSum===setUnusedChangesSum&&((!calcRequired&&tempCalcRequired)||(!(calcRequired&&!tempCalcRequired)&&setId==lastCalcSetId)))))){calcSetId=setId;calcRequired=tempCalcRequired;if(tempSetChangePenalty===0&&tempSetUnusedChangesSum===0&&calcRequired&&(lastCalcSetId==null||calcSetId==lastCalcSetId)){break;}else{setChangePenalty=tempSetChangePenalty;setUnusedChangesSum=tempSetUnusedChangesSum;}}}}
if(calcSetId!==null){if(calcRequired){return calcSetId+":Y";}else{return calcSetId+":N";}}else{return null;}}
function determineSetChangePenalty(toolNum,setId,toolChangeOrderArr,calcSetIOArr,setGroupId,entSetGroupId){var changePenaltyMethod=getCalcSetListInfo(toolNum,setGroupId,"PM");var onlyCheckOutputs;if(changePenaltyMethod=="O"){onlyCheckOutputs=true;}else{onlyCheckOutputs=false;}
var setChangePenalty=0;var chgIdx,changeEntFormInd;if(onlyCheckOutputs){for(chgIdx=toolChangeOrderArr.length-1;chgIdx>=0;chgIdx--){changeEntFormInd=toolChangeOrderArr[chgIdx];if(calcSetIOArr[changeEntFormInd]=="O"){setChangePenalty+=Math.pow(2,chgIdx);}}}else{var calcSetReqChangeArr=getCalcSetReqChanges(toolNum,setId,entSetGroupId);var numCalcSetReqChanges=calcSetReqChangeArr.length;if(numCalcSetReqChanges>0){var calcSetData=getCalcSetData(toolNum,setId);var reqChangeLogOp;if(calcSetData.length>0){reqChangeLogOp=calcSetData[0];}else{reqChangeLogOp="AND";}
for(chgIdx=toolChangeOrderArr.length-1;chgIdx>=0;chgIdx--){changeEntFormInd=toolChangeOrderArr[chgIdx];var reqChangeMatch=false;for(reqKey in calcSetReqChangeArr){if(calcSetReqChangeArr[reqKey]==changeEntFormInd){reqChangeMatch=true;break;}}
if(reqChangeMatch){if(reqChangeLogOp=="OR"){break;}else{numCalcSetReqChanges--;if(numCalcSetReqChanges===0){break;}}}else{if(calcSetIOArr[changeEntFormInd]=="O"){setChangePenalty+=Math.pow(2,chgIdx);}}}}}
return setChangePenalty;}
function determineSetUnusedChangesSum(toolChangeOrderArr,calcSetIOArr){var setUnusedChangesSum=0;var chgIdx;for(chgIdx=toolChangeOrderArr.length-1;chgIdx>=0;chgIdx--){var changeEntFormInd=toolChangeOrderArr[chgIdx];if(calcSetIOArr[changeEntFormInd]===undefined){setUnusedChangesSum+=Math.pow(2,chgIdx);}}
return setUnusedChangesSum;}
function getCurrCombCalcSetsIOArray(toolNum){var currCombCalcSetsIOArr=[];var toolCalcSetsInd="tool_num_"+toolNum+"_calc_sets";var toolCalcSetsElem=document.getElementById(toolCalcSetsInd);if(isValidElement(toolCalcSetsElem)&&toolCalcSetsElem.value!==""){var calcSetIdArr=toolCalcSetsElem.value.split("_");for(var gIdx=0;gIdx<calcSetIdArr.length;gIdx++){var calcSetIdCompArr=calcSetIdArr[gIdx].split("#");if(calcSetIdCompArr.length==2&&calcSetIdCompArr[1]!==""){var calcSetIOArr=getCalcSetIOArray(toolNum,calcSetIdCompArr[1],calcSetIdCompArr[0]);for(entFormInd in calcSetIOArr){if(currCombCalcSetsIOArr[entFormInd]===undefined){currCombCalcSetsIOArr[entFormInd]=calcSetIOArr[entFormInd];}}}}}
return currCombCalcSetsIOArr;}
function getCombCalcSetsIOArray(toolNum,execCalcSetIdArr){var combCalcSetsIOArr=[];for(setGroupId in execCalcSetIdArr){var calcSetIOArr=getCalcSetIOArray(toolNum,execCalcSetIdArr[setGroupId],setGroupId);for(entFormInd in calcSetIOArr){if(combCalcSetsIOArr[entFormInd]===undefined){combCalcSetsIOArr[entFormInd]=calcSetIOArr[entFormInd];}}}
return combCalcSetsIOArr;}
function getCalcSetIOArray(toolNum,setId,entSetGroupId){var calcSetIOArr=[];var calcSetMemberArr=getCalcSetMemberArray(toolNum,setId);for(var mIdx=0;mIdx<calcSetMemberArr.length;mIdx++){var mappingId=calcSetMemberArr[mIdx];if(!checkCalcMapReqChanges(toolNum,mappingId,entSetGroupId)){continue;}
if(!checkCalcMapConditions(toolNum,mappingId,calcSetIOArr,entSetGroupId)){continue;}
var calcMapInputArr=getCalcMapInputs(toolNum,mappingId,entSetGroupId);for(inp in calcMapInputArr){if(calcSetIOArr[calcMapInputArr[inp]]===undefined){calcSetIOArr[calcMapInputArr[inp]]="I";}}
var calcMapOutputArr=getCalcMapOutputs(toolNum,mappingId,entSetGroupId);for(oup in calcMapOutputArr){if(calcSetIOArr[calcMapOutputArr[oup]]===undefined){calcSetIOArr[calcMapOutputArr[oup]]="O";}}}
return calcSetIOArr;}
function isSetReqEntityChange(toolNum,entFormInd){if(getToolGenProperty(toolNum,"CCC")!="Y"){var entValue=document.getElementById(entFormInd).value;if(entValue===""){return false;}}
return hasEntityChanged(entFormInd);}
function isMapReqEntityChange(toolNum,entFormInd){return isSetReqEntityChange(toolNum,entFormInd);}
function haveEntitiesSameValue(entFormInd1,entFormInd2){var entVal1;var entValInd1=entFormInd1+"_val";var entValElem1=document.getElementById(entValInd1);if(isValidElement(entValElem1)){entVal1=entValElem1.value;}else{entVal1=document.getElementById(entFormInd1).value;}
var entVal2;var entValInd2=entFormInd2+"_val";var entValElem2=document.getElementById(entValInd2);if(isValidElement(entValElem2)){entVal2=entValElem2.value;}else{entVal2=document.getElementById(entFormInd2).value;}
if(entVal1==entVal2){return true;}
return false;}
function doesEntityMatchValue(entFormInd,entMatchVal){var entVal;var entValInd=entFormInd+"_val";var entValElem=document.getElementById(entValInd);if(isValidElement(entValElem)){entVal=entValElem.value;}else{entVal=document.getElementById(entFormInd).value;}
if(entVal==entMatchVal){return true;}
return false;}
function couldEntityValueChange(entFormInd,calcSetIOArr){if(calcSetIOArr[entFormInd]!==undefined&&(calcSetIOArr[entFormInd]=="O"||calcSetIOArr[entFormInd]=="I")){return true;}
return false;}
function catItemClicked(){storeCurrentScrollPosition();updateActiveSiteArea("MENU");}
function catItemMouseOver(catItemId){document.getElementById(catItemId).className="cat_item_submit_over";}
function catItemMouseOut(catItemId){document.getElementById(catItemId).className="cat_item_submit";}
function catSubItemClicked(subItemId){updateActiveSiteArea("MENU");updateClickedSubmitId(subItemId);}
function catSubItemMouseOver(subItemId){var itemClass=document.getElementById(subItemId).className;if(itemClass.substring(itemClass.length-5)!="_over"){document.getElementById(subItemId).className=itemClass+"_over";}}
function catSubItemMouseOut(subItemId){var itemClass=document.getElementById(subItemId).className;if(itemClass.substring(itemClass.length-5)=="_over"){document.getElementById(subItemId).className=itemClass.substring(0,itemClass.length-5);}}
function validateMainForm(){if(changeErrorTimeout!==null){return false;}
if(!handleUserRelatedValidations()){return false;}
if(!handleClientRelatedValidations()){return false;}
if(shouldToolSubmitBeCancelled()){return false;}
if(!areToolsValid()){return false;}
return true;}
function clientAreaControlFocus(clientAreaCode){updateActiveSiteArea(clientAreaCode);}
function clientAreaControlClicked(clientAreaCode){updateActiveSiteArea(clientAreaCode);}
function clientServiceLevelChanged(){var serviceLevelElem=document.getElementById("client_service_level");var serviceLevel=serviceLevelElem.value;var usageLevelElem=document.getElementById("client_usage_level");var usageLevel=usageLevelElem.value;usageLevelElem.options.length=0;if(serviceLevel=="B"){usageLevelElem.options[0]=new Option("Light","L");if(usageLevel!="L"){usageLevelElem.value="L";}}else{addUsageLevelOption(usageLevelElem,0,"Light","L",usageLevel);addUsageLevelOption(usageLevelElem,1,"Medium","M",usageLevel);addUsageLevelOption(usageLevelElem,2,"Heavy","H",usageLevel);addUsageLevelOption(usageLevelElem,3,"Very Heavy","VH",usageLevel);}}
function addUsageLevelOption(usageLevelElem,optionIdx,optionText,optionValue,currUsageLevel){if(optionValue==currUsageLevel){usageLevelElem.options[optionIdx]=new Option(optionText,optionValue,true,true);}else{usageLevelElem.options[optionIdx]=new Option(optionText,optionValue,false,false);}}
function clientInfoPageChoiceClicked(clientAreaCode){var infoPageTextElem=document.getElementById("ca_info_page_text");if(document.getElementById("ca_info_page_choice").checked){infoPageTextElem.className="";}else{infoPageTextElem.className="client_area_fade_text";}
updateActiveSiteArea(clientAreaCode);}
function clientStdButtonsChoiceClicked(clientAreaCode){var buttonFontStyleElem=document.getElementById("ca_button_font_style");if(document.getElementById("ca_std_buttons_choice").checked){buttonFontStyleElem.className="";}else{buttonFontStyleElem.className="client_area_fade_text";}
updateActiveSiteArea(clientAreaCode);}
function previewFormatOptionsClicked(){updateActiveSiteArea("TOOL_BUTTON");}
function previewCalculateClicked(){updateActiveSiteArea("TOOL_BUTTON");}
function clientToolSubTypeChanged(subscriptionTypeId,monthlyPriceTrId,annualPriceTrId){var subscriptionTypeElem=document.getElementById(subscriptionTypeId);var subscriptionType=subscriptionTypeElem.value;var monthlyPriceTrElem=document.getElementById(monthlyPriceTrId);var annualPriceTrElem=document.getElementById(annualPriceTrId);if(subscriptionType=="M"){monthlyPriceTrElem.className=monthlyPriceTrElem.className.replace("hide_element","");if(annualPriceTrElem.className.search("hide_element")==-1){annualPriceTrElem.className+="hide_element";}}else{annualPriceTrElem.className=annualPriceTrElem.className.replace("hide_element","");if(monthlyPriceTrElem.className.search("hide_element")==-1){monthlyPriceTrElem.className+="hide_element";}}}
function handleClientRelatedValidations(){var activeAreaCode=document.getElementById("active_site_area").value;var regClientAddNextElem=document.getElementById("reg_client_add_next");if(isValidElement(regClientAddNextElem)&&activeAreaCode=="CLIENT_AREA_REG_ADD"){return checkRegisterClientSubmit();}
var regClientSubmitElem=document.getElementById("reg_client_submit");if(isValidElement(regClientSubmitElem)&&activeAreaCode=="CLIENT_AREA_REG"){return checkRegisterClientSubmit();}
var addBaseNextSubmitElem=document.getElementById("client_add_base_next");if(isValidElement(addBaseNextSubmitElem)&&activeAreaCode=="CLIENT_ADD_BASE"){return checkAddBaseSubmit();}
var addOptNextSubmitElem=document.getElementById("client_add_opt_next");if(isValidElement(addOptNextSubmitElem)&&activeAreaCode=="CLIENT_ADD_OPTIONS"){return checkAddOptionsSubmit();}
var editBaseNextSubmitElem=document.getElementById("client_edit_base_next");if(isValidElement(editBaseNextSubmitElem)&&activeAreaCode=="CLIENT_EDIT_BASE"){return checkEditBaseSubmit();}
var editOptNextSubmitElem=document.getElementById("client_edit_opt_next");if(isValidElement(editOptNextSubmitElem)&&activeAreaCode=="CLIENT_EDIT_OPTIONS"){return checkEditOptionsSubmit();}
return true;}
function checkRegisterClientSubmit(){var clientEmailElem=document.getElementById("client_email");if(!isClientEmailValid(clientEmailElem.value)){clientEmailElem.focus();clientEmailElem.select();return false;}
var companyNameElem=document.getElementById("company_name");if(!isCompanyNameValid(companyNameElem.value)){companyNameElem.focus();companyNameElem.select();return false;}
return true;}
function checkAddBaseSubmit(){var toolTagElem=document.getElementById("tool_tag");if(!isToolTagValid(toolTagElem.value)){toolTagElem.focus();toolTagElem.select();return false;}
var mainSiteUrlElem=document.getElementById("main_site_url");if(!isMainSiteUrlValid(mainSiteUrlElem.value)){mainSiteUrlElem.focus();mainSiteUrlElem.select();return false;}
return true;}
function checkAddOptionsSubmit(){return areClientToolOptionsValid();}
function checkEditBaseSubmit(){var toolTagElem=document.getElementById("tool_tag");if(!isToolTagValid(toolTagElem.value)){toolTagElem.focus();toolTagElem.select();return false;}
var mainSiteUrlElem=document.getElementById("main_site_url");if(!isMainSiteUrlValid(mainSiteUrlElem.value)){mainSiteUrlElem.focus();mainSiteUrlElem.select();return false;}
return true;}
function checkEditOptionsSubmit(){return areClientToolOptionsValid();}
function areClientToolOptionsValid(){var headerColourElem=document.getElementById("ca_header_colour");if(isValidElement(headerColourElem)&&!isHtmlColourValid(headerColourElem.value,"The header colour")){headerColourElem.focus();headerColourElem.select();return false;}
var footerColourElem=document.getElementById("ca_footer_colour");if(isValidElement(footerColourElem)&&!isHtmlColourValid(footerColourElem.value,"The footer colour")){footerColourElem.focus();footerColourElem.select();return false;}
var borderColourElem=document.getElementById("ca_border_colour");if(isValidElement(borderColourElem)&&!isHtmlColourValid(borderColourElem.value,"The border colour")){borderColourElem.focus();borderColourElem.select();return false;}
var logoPathElem=document.getElementById("ca_logo_path");if(isValidElement(logoPathElem)&&!isLogoPathValid(logoPathElem.value)){logoPathElem.focus();logoPathElem.select();return false;}
var toolNameElem=document.getElementById("ca_tool_name");if(isValidElement(toolNameElem)&&!isUserToolNameValid(toolNameElem.value,"The tool name")){toolNameElem.focus();toolNameElem.select();return false;}
var toolDescElem=document.getElementById("ca_tool_desc");if(isValidElement(toolDescElem)&&!isClientToolDescValid(toolDescElem.value)){toolDescElem.focus();toolDescElem.select();return false;}
var infoPageTextElem=document.getElementById("ca_info_page_text");if(isValidElement(infoPageTextElem)&&!isInfoPageTextValid(infoPageTextElem.value)){infoPageTextElem.focus();infoPageTextElem.select();return false;}
var clientDisclaimerElem=document.getElementById("ca_disclaimer");if(isValidElement(clientDisclaimerElem)&&!isClientDisclaimerValid(clientDisclaimerElem.value)){clientDisclaimerElem.focus();clientDisclaimerElem.select();return false;}
return true;}
function isClientEmailValid(clientEmail){if(clientEmail===""){alert("The email address cannot be blank.");return false;}else if(!isUserEmailValid(clientEmail)){return false;}
return true;}
function isCompanyNameValid(companyName){if(companyName.length>100){alert("The company name cannot contain more than 100 characters.");return false;}
return true;}
function isToolTagValid(toolTag){if(toolTag===""){alert("The tool tag cannot be blank.");return false;}else if(toolTag.length>30){alert("The tool tag cannot contain more than 30 characters.");return false;}else if(!toolTag.match(/^[A-Za-z0-9'\(\),-\._\x20\xc0-\xff]{1,35}$/)){alert("The tool tag contains characters that are not allowed. "+"Please see the About Client Services section for more details.");return false;}
return true;}
function isMainSiteUrlValid(mainSiteUrl){if(mainSiteUrl===""){alert("The main site url cannot be blank.");return false;}else if(mainSiteUrl.length>200){alert("The main site url cannot contain more than 200 characters.");return false;}
return true;}
function isHtmlColourValid(htmlColour,errorMsgStub){htmlColour=htmlColour.toLowerCase();if(isStandardHtmlColour(htmlColour)||htmlColour.match(/^#[a-f0-9]{6}$/)||htmlColour.match(/^#[a-f0-9]{3}$/)){return true;}else{alert(errorMsgStub+" must be one of the 16 standard html colours "+"or expressed as a 6 or 3 character hexadecimal (e.g. #A9A9A9 "+"or #CCC).");}}
function isStandardHtmlColour(htmlColour){var standardColourArr=["aqua","black","blue","fuchsia","gray","green","lime","maroon","navy","olive","purple","red","silver","teal","white","yellow"];for(idx in standardColourArr){if(standardColourArr[idx]==htmlColour){return true;}}
return false;}
function isLogoPathValid(logoPath){if(logoPath.length>200){alert("The logo path cannot contain more than 200 characters.");return false;}
return true;}
function isInfoPageTextValid(infoPageText){if(infoPageText.length>20000){alert("The info page text cannot contain more than 20000 characters.");return false;}
return true;}
function isClientToolDescValid(toolDesc){if(toolDesc.length>500){alert("The tool description cannot contain more than 500 characters.");return false;}
return true;}
function isClientDisclaimerValid(clientDisclaimer){if(clientDisclaimer.length>1000){alert("The client disclaimer cannot contain more than 1000 characters.");return false;}
return true;}
var appMenuCloseTimeout;function displayAppViewMenu(eventObj,toolNum){var openAppViewMenu=document.getElementById("open_app_view_menu").value;if(openAppViewMenu!=="N"){closeAppViewMenu();}
document.getElementById("open_app_view_menu").value="Y";var menuDivId="app_view_menu_div";document.getElementById(menuDivId).className="app_menu_div";document.getElementById(menuDivId).style.left=eventObj.clientX+
getScrollPosXAxis()+"px";document.getElementById(menuDivId).style.top=eventObj.clientY+
getScrollPosYAxis()+"px";var appViewToolInd="app_view_tool";document.getElementById(appViewToolInd).value=toolNum;updateActiveSiteArea("TOOL_BUTTON");appMenuCloseTimeout=setTimeout("checkAppMenuClose()",5000);}
function closeAppViewMenu(){var menuDivId="app_view_menu_div";document.getElementById(menuDivId).className="hide_element";document.getElementById("open_app_view_menu").value="N";}
function appViewItemClicked(appIdent){var appViewToolInd="app_view_tool";var toolNum=document.getElementById(appViewToolInd).value;viewToolInApp(appIdent,toolNum);}
function appViewItemMouseOver(appViewItemId){clearTimeout(appMenuCloseTimeout);document.getElementById(appViewItemId).className="app_menu_button_over";}
function appViewItemMouseOut(appViewItemId){document.getElementById(appViewItemId).className="app_menu_button";appMenuCloseTimeout=setTimeout("checkAppMenuClose()",1000);}
function checkAppMenuClose(){var openAppViewMenu=document.getElementById("open_app_view_menu").value;if(openAppViewMenu!=="N"){closeAppViewMenu();}}