//This corresponds to the version number of our app.
var jsVersionNumber = '8.0.1.44';

function stopError() {
	return false; //return false to allow javascript error messages to show in the browser
}
window.onerror = stopError;

function loadPage(page) {
	window.top.middleFrame.location.replace(page);
}
i = 0;
var changedQMListObjects = null;
var aQMListChildWindow = null;
var aMessageListChildWindow = null;

function loadPage(page) {
	window.top.middleFrame.location.replace(page);
}
function QMNavigation(QMReturnURL, refreshCacheAlertMsg){
	alert(refreshCacheAlertMsg);
	window.top.location.href = QMReturnURL;
}
function displayFeedback(userName, organizationName, organizationalUnitName, feedbackURL, feedbackWidth, feedbackHeight) {
    var param = new Array(["iq_userid", userName], ["iq_org", organizationName], ["iq_orgunit", organizationalUnitName]);
    var feedbackPage = buildParamURL(feedbackURL, param);
    if( feedbackWidth == ''|| feedbackHeight == ''){
    	feedbackWidth = '600';
    	feedbackHeight = '400';
    }
	window.open(feedbackPage, '_blank', 'status=no,toolbar=no,scrollbars=yes,resizable=yes,width=' + feedbackWidth + ',height=' + feedbackHeight + ',left=100,top=100');
}
function logout(rootURL){
 logoutPage = rootURL + "app/logout?appLogout=true";
 window.top.location.href = logoutPage;
}
function showOrganizationList(rootURL) {
  var pm = rootURL + 'app/pmtop?Tab=0';
  window.top.location.href = pm;
}
function showOrganizationalUnitList(rootURL) {
  var pm = rootURL + 'app/pmtop?Tab=1';
  window.top.location.href = pm;
}
function importDB(rootURL, servlet, pageSelected, navigationType, mode) {
    
  url = rootURL + 'app/'+servlet+'?pageNumber='+ pageSelected + '&navigationType='+ navigationType + '&mode='+ mode;
  window.top.middleFrame.location.href = url;
}
function displayImportDBStatus(message) {
    if(message != null && message != '') {
        alert(message);
    }    
}
function userList(rootURL) {
  var pm = rootURL + 'app/pmtop?Tab=2';
  window.top.location.href = pm;
}
function showRolesList(rootURL) {
  var pm = rootURL + 'app/pmtop?Tab=3';
  window.top.location.href = pm;
}
function denyRolesView(LABEL_NOT_AUTHORIZED_TO_VIEW_ROLES){
	alert(LABEL_NOT_AUTHORIZED_TO_VIEW_ROLES);
}
function createUser(rootURL){
  userDetails = rootURL + 'app/pmtop?Tab=4';
  window.top.location.href = userDetails;
}
function displayUserList(rootURL, pageSelected, navigationType){
  userList = rootURL + 'app/userlist?pageNumber='+ pageSelected + '&navigationType='+ navigationType;
  window.top.middleFrame.location.href = userList;
}
function sortUserList(rootURL, sortBy, sortOrder)
{
  userSort = rootURL + 'app/userlist?' + 'sortBy=' + sortBy + '&sortOrder='+ sortOrder;
  window.top.middleFrame.location.href = userSort;
}
function retrieveUserDetails(rootURL, userID) {
  userDetails = rootURL + 'app/pmtop?Tab=4&userID=' + userID;
  window.top.location.href = userDetails;
}
function deleteUser(rootURL, userID, userName, LABEL_DELETE_USER, LABEL_QUESTION_MARK) {
  var didDelete = false;
  if(getUserDeleteConfirmation(userName, LABEL_DELETE_USER, LABEL_QUESTION_MARK))
  {
   userlist = rootURL + "app/userlist?deleteID="+userID;
   window.top.middleFrame.location.href = userlist;
   didDelete = true;
  }
  return didDelete;
}
function getUserDeleteConfirmation(userName, LABEL_DELETE_USER, LABEL_QUESTION_MARK){
  var confirmation = window.confirm( LABEL_DELETE_USER + userName+ LABEL_QUESTION_MARK);
  return confirmation;
}
function selectUserPage(rootURL, pageSelected)
{
	userlist = rootURL + 'app/userlist?pageNumber='+ pageSelected;
	window.top.middleFrame.location.href = userlist;
}
function sortSearchCustomerList(rootURL, sortBy, sortOrder)
{
  document.forms[0].sortBy.value= sortBy;
  document.forms[0].sortOrder.value= sortOrder;
  customerSearch = rootURL  + 'app/customersearch';
  document.forms[0].action = customerSearch;
  document.forms[0].submit();
}
function searchCustomer(rootURL)
{
  customersearch = rootURL + 'app/customersearch';
  document.forms[0].action =  customersearch;
  //document.forms[0].submit();
}
function selectCustomer(customerID)
{
	window.opener.document.forms[0].defaultCustomerID.value = customerID;
	self.close();
}
function changeOrganizationalUnit(rootURL)
{
  var userDetails = rootURL + 'app/userdetailsservlet?preserveOldValues=true';
  document.forms[0].action = userDetails;
  document.forms[0].submit();
}
function editUserPreferencesXML(userID)
{
	var page = "EditUserPreferences.jsp?retrieveUPXML=retrieveUPXML&userID="+userID;
	var aChildWindow = window.open(page,"editUserPreferences","width=800,height=375,resizable=1,scrollbars=yes,status=yes,left=100,top=100");
}
function defaultCustomerSelection(rootURL, LABEL_COMPLETE_FOLLOWING_FIELD)
{
	var orgSelect = "";
	var orgID =  document.forms[0].OrganizationID.value;
	var orgUnitID;
    var OrganizationalUnitIDExists = false;
    var allObjects = document.forms[0].elements;
    for(var k = 0; k < allObjects.length; k++) {
        if((allObjects[k].name).indexOf("OrganizationalUnitID") > -1) {
            OrganizationalUnitIDExists = true;   
            break;
        }
    }    
    if(OrganizationalUnitIDExists) {
	    eval("orgUnitID =  document.forms[0].OrganizationalUnitID.value");
		if(orgID == "0"){
			orgSelect = orgSelect + "Organization\n";
		}
		if(orgUnitID == "0"){
			orgSelect = orgSelect + "Organizational unit\n";
		}
		if(orgSelect != ""){
			alert(LABEL_COMPLETE_FOLLOWING_FIELD+"\n" + orgSelect);
			return false;
		}
    }  else {
        orgUnitID = 0;
    }  
	
	page = rootURL + "app/customersearch?orgID=" + orgID + "&orgUnitID=" + orgUnitID;
    var aChildWindow = window.open(page,"DefaultCustomerLookup","width=800,height=375,resizable=1,scrollbars=yes,status=yes,left=100,top=100");

}
//below function is used in generalPreferences.xsl while OrganizationalUnitDetailsPage navigation.
function defaultCustomerSelection1(rootURL,LABEL_COMPLETE_FOLLOWING_FIELD)
{
	var orgSelect = "";
	var orgID =  document.forms[0].OrganizationID.value;
	var orgUnitID;	
    	//eval("orgUnitID =  document.forms[0].oUID"+orgID+".value");
    	orgUnitID =  document.forms[0].oUID.value;
	if(orgID == "0"){
		orgSelect = orgSelect + "Organization\n";
	}
	if(orgUnitID == "0"){
		orgSelect = orgSelect + "Organizational unit\n";
	}
	if(orgSelect != ""){
		alert(LABEL_COMPLETE_FOLLOWING_FIELD+ "\n" + orgSelect);
		return false;
	}
	else{
        page = rootURL + "app/customersearch?orgID=" + orgID + "&orgUnitID=" + orgUnitID;
		var aChildWindow = window.open(page,"DefaultCustomerLookup","width=800,height=375,resizable=1,scrollbars=yes,status=yes,left=100,top=100");
	}
}
//function checkOrgUnitFields(rootURL)
function checkOrgUnitFields(LABEL_SELECTED_DISCOUNT_NOT_GOOD, LABEL_COMPLETE_FIELDS_BEFORE_SUBMITTING) {
	missingFields = "";
	NA = false; //DiscountCode Not available
	submit = true;
	if(window.top.middleFrame.document.forms[0].Name.value == "")
	{
		missingFields = missingFields + "NAME\n";
	}

	var allObjects = window.top.middleFrame.document.forms[0].elements;
	for(var k = 0; k < allObjects.length; k++) {
		if(allObjects[k].type == "select-one" && (allObjects[k].name).indexOf("productLine") > -1) {
			if(allObjects[k].value == "NA") NA = true;
		}
	}
	if(missingFields != "" || NA)
	{
		if(NA){
			alert(LABEL_SELECTED_DISCOUNT_NOT_GOOD + "\n" + missingFields);
			submit = false;
		}else{
			alert(LABEL_COMPLETE_FIELDS_BEFORE_SUBMITTING + "\n" + missingFields);
			submit = false;
		}
	}
	/*if(submit)
	{
		//sets the selected parent name.
		var text = window.top.middleFrame.document.forms[0].parentOrganizationalUnit.options[window.top.middleFrame.document.forms[0].parentOrganizationalUnit.selectedIndex].text;
		if(text == "- None -") text = "";
		window.top.middleFrame.document.forms[0].parentOrganizationalUnitName.value=text;
		var organizationalunitsave = rootURL + 'app/organizationalunitsave';
		window.top.middleFrame.document.forms[0].action = organizationalunitsave;
		window.top.middleFrame.document.forms[0].submit();
	}
	else
	{*/
		
    return submit;
	
}
function changeDiscountCode(rootURL)
{
  var orgUnitDetails = rootURL + 'app/organizationalunitdetailsservlet?preserveOldValues=true';
  document.forms[0].action = orgUnitDetails;
  document.forms[0].submit();
}
function createNewOrganizationalUnit(rootURL){
  ouDetails = rootURL + 'app/pmtop?Tab=5';
  window.top.location.href = ouDetails;
}
function displayOrganizationalUnitList(rootURL, pageSelected, navigationType){
  ouList = rootURL + 'app/organizationalunitlist?pageNumber='+ pageSelected + '&navigationType='+ navigationType;
  window.top.middleFrame.location.href = ouList;
}
function retrieveOrgUnitDetails(rootURL, oUnit) {
  ouUnit = rootURL + 'app/pmtop?Tab=5&oUnit=' + oUnit;
  window.top.location.href = ouUnit;
}
function deleteOrgUnit(rootURL, ouID, LABEL_DELETE_ORG_UNIT) {
  var didDelete = false;
  if(getOrgUnitDeleteConfirmation(LABEL_DELETE_ORG_UNIT))
  {
   ouList = rootURL + "app/organizationalunitlist?DeleteOrgUnit="+ouID;
   window.top.middleFrame.location.href = ouList;
   didDelete = true;
  }
  return didDelete;
}
function getOrgUnitDeleteConfirmation(LABEL_DELETE_ORG_UNIT){
  var confirmation = window.confirm(LABEL_DELETE_ORG_UNIT);
  return confirmation;
}
function selectOrgUnitPage(rootURL, pageSelected)
{
	ouList = rootURL + 'app/organizationalunitlist?pageNumber='+ pageSelected;
	window.top.middleFrame.location.href = ouList;
}
function sortOrgUnitList(rootURL, sortBy, sortOrder)
{
  orgUnitSort = rootURL + 'app/organizationalunitlist?' + 'sortBy=' + sortBy + '&sortOrder='+ sortOrder;
  window.top.middleFrame.location.href = orgUnitSort;
}
function checkRoleFields(rootURL, LABEL_COMPLETE_NAME_FIELD)
{
	if(window.top.middleFrame.document.CreateRoleForm.Name.value == "")
	{
		alert(LABEL_COMPLETE_NAME_FIELD);
	}
	else
	{
		var rolesave = rootURL + 'app/rolesave';
		window.top.middleFrame.document.forms[0].action = rolesave;
		window.top.middleFrame.document.forms[0].submit();
	}
}
function createNewRole(rootURL){
  roleDetails = rootURL + 'app/pmtop?Tab=6';
  window.top.location.href = roleDetails;
}
function displayRoleList(rootURL, pageSelected, navigationType){
  roleList = rootURL + 'app/rolelist?pageNumber='+ pageSelected + '&navigationType='+ navigationType;
  window.top.middleFrame.location.href = roleList;
}
function sortRoleList(rootURL, sortBy, sortOrder)
{
  roleSort = rootURL + 'app/rolelist?' + 'sortBy=' + sortBy + '&sortOrder='+ sortOrder;
  window.top.middleFrame.location.href = roleSort;
}
function retrieveRoleDetails(rootURL, roleID) {
  role = rootURL + 'app/pmtop?Tab=6&editRole=' + roleID;
  window.top.location.href = role;
}
function deleteRole(rootURL, roleID, LABEL_DELETE_SELECTED_ROLE) {
  var didDelete = false;
  if(getRoleDeleteConfirmation(LABEL_DELETE_SELECTED_ROLE))
  {
   roleList = rootURL + "app/rolelist?DeleteRole="+roleID;
   window.top.middleFrame.location.href = roleList;
   didDelete = true;
  }
  return didDelete;
}
function getRoleDeleteConfirmation(LABEL_DELETE_SELECTED_ROLE){
  var confirmation = window.confirm(LABEL_DELETE_SELECTED_ROLE);
  return confirmation;
}
function selectRolePage(rootURL, pageSelected)
{
	roleList = rootURL + 'app/rolelist?pageNumber='+ pageSelected;
	window.top.middleFrame.location.href = roleList;
}
function resetForms()
{
	window.top.middleFrame.document.forms[0].reset();
}
function editUserPreferencesXML(rootURL, userID)
{
	var page = rootURL + "edituserpreferences?retrieveUPXML=retrieveUPXML&userID="+userID;
	var aChildWindow = window.open(page,"editUserPreferences","width=800,height=375,resizable=1,scrollbars=yes,status=yes,left=100,top=100");
}

function openEditUserWindow(target) 
{
    var aChildWindow = window.open(target, '_blank',  'status=no,toolbar=no,scrollbars=no,resizable=yes,width=1000,height=500,left=20,top=20');
}

function changeRoleType(roleType) 
{
    if ( roleType == "0" ) {
        rolePrivilegesDetailsDiv.style.display='inline';
    } else {
       rolePrivilegesDetailsDiv.style.display='none';
    }
}

function manageTimeout(childWindow, timeoutURL) {
	var myOpener = childWindow.opener;
	if(typeof myOpener != 'undefined' && myOpener != null) {
		manageTimeout(myOpener.top, timeoutURL);
		if(!childWindow.closed) childWindow.close();
	} else {
		childWindow.top.location = "/Party/SessionTimeout.jsp?defaultTimeoutURL=" + timeoutURL;
	}
}

function createNewSellingOrganization(rootURL){
  organizationDetails = rootURL + 'app/pmtop?Tab=7';
  window.top.location.href = organizationDetails;
}
function displaySellingOrganizationList(rootURL, pageSelected, navigationType){
  soList = rootURL + 'app/sellingorganizationlist?pageNumber='+ pageSelected + '&navigationType='+ navigationType;
  window.top.middleFrame.location.href = soList;
}
function retrieveSellingOrgDetails(rootURL, sellingOrgID) {
  sellingOrgDetailsURL = rootURL + 'app/pmtop?Tab=7&sellingOrgID=' + sellingOrgID;
  window.top.location.href = sellingOrgDetailsURL;
}
function deleteSellingOrg(rootURL, ID, LABEL_DELETE_ORG) {
  var didDelete = false;
  if(getSellingOrgDeleteConfirmation(LABEL_DELETE_ORG))
  {
   soList = rootURL + "app/sellingorganizationlist?DeleteSellingOrg="+ID;
   window.top.middleFrame.location.href = soList;
   didDelete = true;
  }
  return didDelete;
}
function getSellingOrgDeleteConfirmation(LABEL_DELETE_ORG){
  var confirmation = window.confirm(LABEL_DELETE_ORG);
  return confirmation;
}
function selectSellingOrgPage(rootURL, pageSelected)
{
	soList = rootURL + 'app/sellingorganizationlist?pageNumber='+ pageSelected;
	window.top.middleFrame.location.href = soList;
}
function sortSellingOrgList(rootURL, sortBy, sortOrder)
{
  soList = rootURL + 'app/sellingorganizationlist?' + 'sortBy=' + sortBy + '&sortOrder='+ sortOrder;
  window.top.middleFrame.location.href = soList;
}
/*****************************
 * Common Javascript library *
 *****************************/

var usesLayers
var usesDocAll
var usesDOM

(document.layers) ? usesLayers=true : usesLayers=false;
(document.all) ? usesDocAll = true: usesDocAll = false;
(document.getElementById) ? usesDOM = true : usesDOM = false;

/**
 * Sets IsSavedFlag form field appropriately.
 */
function setSavedFlag(flagSetting) {
	if(flagSetting) {
		document.forms[0].IsSavedFlag.value = "true";
	} else {
		document.forms[0].IsSavedFlag.value = "false";
	}
}

/**
 * Sets a form field to visible.
 */
function setVisible(id, flag, frame) {
	if(flag) {
		if(usesLayers && frame.document.layers[''+id+''] != null) {
			frame.document.layers[''+id+''].visibility = "show";
		} else if(usesDocAll && frame.document.all[''+id+''] != null) {
			frame.document.all[''+id+''].style.visibility = "visible";
		} else if(usesDOM && frame.document.getElementById(''+id+'') != null) {
			frame.document.getElementById(''+id+'').style.visibility = "visible";
		}
	} else {
		if(usesLayers && frame.document.layers[''+id+''] != null) {
			frame.document.layers[''+id+''].visibility = "hide";
		} else if(usesDocAll && frame.document.all[''+id+''] != null) {
			frame.document.all[''+id+''].style.visibility = "hidden";
		} else if(usesDOM && frame.document.getElementById(''+id+'') != null) {
			frame.document.getElementById(''+id+'').style.visibility = "hidden";
		}
	}
}
//function checkEditUserInfoFields(rootURL, userID)
function checkEditUserInfoFields(LABEL_COMPLETE_FIELDS_BEFORE_SUBMITTING, LABEL_P_AND_CP_NOT_MATCH) {
    var userID = 0;
    userID = parseInt(document.forms[0].uid.value);
    
    var forcePasswordChange = false;
    if(document.forms[0].forcePasswordChange != null) {
    	forcePasswordChange = document.forms[0].forcePasswordChange.value;
    	// forcePasswordChange will be true only while navigating from changePassword.jsp
    }
    
    missingFields = "";
	submit = true;
	var pwdObj = document.forms[0].Password;
	var confirmPwdObj = document.forms[0].ConfirmPassword;
	
	if(document.forms[0].FirstName.value == "")
	{
		missingFields = missingFields + "FIRST NAME\n";
	}
	if(document.forms[0].LastName.value == "")
	{
		missingFields = missingFields + "LAST NAME\n";
	}
	if(document.forms[0].Login.value == "")
	{
		missingFields = missingFields + "LOGIN ID\n";
	}
	if(userID <= 0 || forcePasswordChange == 'true')
	{
		if(typeof pwdObj != 'undefined' && pwdObj.value == "")
		{
			missingFields = missingFields + "PASSWORD\n";
		}
		if(typeof confirmPwdObj != 'undefined' && confirmPwdObj.value == "")
		{
			missingFields = missingFields + "CONFIRM PASSWORD\n";
		}
	}
	if(document.forms[0].OrganizationID.value == "0")
	{
		missingFields = missingFields + "ORGANIZATION\n";
	}
	if(document.forms[0].OrganizationalUnitID && document.forms[0].OrganizationalUnitID.value == "0")
	{
		missingFields = missingFields + "ORGANIZATIONAL UNIT\n";
	}
	if(missingFields != "")
	{
		alert(LABEL_COMPLETE_FIELDS_BEFORE_SUBMITTING +"\n" + missingFields);
		submit = false;
	}
	if(typeof pwdObj != 'undefined' && typeof confirmPwdObj != 'undefined') {
		if (submit && (pwdObj.value != confirmPwdObj.value))
		{
			newMsg = LABEL_P_AND_CP_NOT_MATCH + "\n";
			alert(newMsg);
			submit = false;
		}
	}	
	/*if(submit)
	{
		var usersave = rootURL + 'app/usersave';
		document.forms[0].action = usersave;
		document.forms[0].target = '_top';
		document.forms[0].submit();
	}
	else
	{
		return submit;
	}*/
    return submit;
}
function clearUserFilterValues(rootURL)
{
	userList = rootURL + "app/userlist?useFilter=false";
	document.forms[0].target = '_self';
	document.forms[0].action =  userList;
	document.forms[0].submit();
}
function clearRoleFilterValues(rootURL)
{
	roleList = rootURL + "app/rolelist?useFilter=false";
	document.forms[0].target = '_self';
	document.forms[0].action =  roleList;
	document.forms[0].submit();
}
function submitUserFilterValues(rootURL)
{
  var userlist = rootURL + "app/userlist?useFilter=true";
  document.forms[0].target = '_self';
  document.forms[0].action= userlist;
  document.forms[0].submit();
}
function submitRoleFilterValues(rootURL)
{
  var rolelist = rootURL + "app/rolelist?useFilter=true";
  document.forms[0].target = '_self';
  document.forms[0].action= rolelist;
  document.forms[0].submit();
}
function changeFilterOrganizationalUnit(rootURL)
{
  var userFilter = rootURL + 'app/userfilter';
  document.forms[0].action = userFilter;
  document.forms[0].submit();
}
function showUserFilter(rootURL) {
  var userFilter = rootURL + "app/userfilter";
  document.forms[0].target = '_self';
  document.forms[0].action = userFilter;
  document.forms[0].submit();
}
function refreshSellingOrg(rootURL) {
	var targetURL = rootURL + 'app/sellingorgdetails';
	window.top.middleFrame.document.forms[0].refresh.value = true;
	window.top.middleFrame.document.forms[0].target = '_self';
	window.top.middleFrame.document.forms[0].action = targetURL;
	window.top.middleFrame.document.forms[0].submit();
}
function checkSellingOrgFields(LABEL_DB_INFO_NOT_SAVED,LABEL_CONT_WITHOUT_SAVE) {
	msg = "";
	var submit = true;
	var missingDBFields = "";
	var selectorMissingDBFields = false;
	var quoteManagerMissingFields = false;
	var versionControlDBFields = false;
	var customerDBFields = false;

	if(window.top.middleFrame.document.forms[0].name.value == "") {
		msg = msg + "Please complete the Selling Organization NAME field before submitting.\n";
		window.top.middleFrame.document.forms[0].name.focus();
		submit = false;
	}
	if(msg != "") {
		alert(msg);
		return false;
	}
	/*if(window.top.middleFrame.document.forms[0].selectorDBName.value == "") {
		missingDBFields = missingDBFields + "SELECTOR DB NAME\n";
		selectorMissingDBFields = true;
	}
	if(window.top.middleFrame.document.forms[0].selectorDBUserName.value == "") {
		missingDBFields = missingDBFields + "SELECTOR DB USER NAME\n";
		selectorMissingDBFields = true;
	}
	if(window.top.middleFrame.document.forms[0].selectorDBPassword.value == "") {
		missingDBFields = missingDBFields + "SELECTOR DB PASSWORD\n";
		selectorMissingDBFields = true;
	}
	if(window.top.middleFrame.document.forms[0].selectorDBConfirmPassword.value == "") {
		missingDBFields = missingDBFields + "SELECTOR DB CONFIRM PASSWORD\n";
		selectorMissingDBFields = true;
	}
	//Quote Manager
	if(window.top.middleFrame.document.forms[0].quoteManagerDBName.value == "") {
		missingDBFields = missingDBFields + "QUOTE MANAGER DB NAME\n";
		quoteManagerMissingFields = true;
	}
	if(window.top.middleFrame.document.forms[0].quoteManagerDBUserName.value == "") {
		missingDBFields = missingDBFields + "QUOTE MANAGER DB USER NAME\n";
		quoteManagerMissingFields = true;
	}
	if(window.top.middleFrame.document.forms[0].quoteManagerDBPassword.value == "") {
		missingDBFields = missingDBFields + "QUOTE MANAGER DB PASSWORD\n";
		quoteManagerMissingFields = true;
	}
	if(window.top.middleFrame.document.forms[0].quoteManagerDBConfirmPassword.value == "") {
		missingDBFields = missingDBFields + "QUOTE MANAGER DB CONFIRM PASSWORD\n";
		quoteManagerMissingFields = true;
	}
	//version control
	if(window.top.middleFrame.document.forms[0].versionControlDBName.value == "") {
		missingDBFields = missingDBFields + "VERSION CONTROL DB NAME\n";
		versionControlDBFields = true;
	}
	if(window.top.middleFrame.document.forms[0].versionControlDBUserName.value == "") {
		missingDBFields = missingDBFields + "VERSION CONTROL DB USER NAME\n";
		versionControlDBFields = true;
	}
	if(window.top.middleFrame.document.forms[0].versionControlDBPassword.value == "") {
		missingDBFields = missingDBFields + "VERSION CONTROL DB PASSWORD\n";
		versionControlDBFields = true;
	}
	if(window.top.middleFrame.document.forms[0].versionControlDBConfirmPassword.value == "") {
		missingDBFields = missingDBFields + "VERSION CONTROL DB CONFIRM PASSWORD\n";
		versionControlDBFields = true;
	}*/
	//Customer
	if(window.top.middleFrame.document.forms[0].customerDBName.value == "") {
		missingDBFields = missingDBFields + "CUSTOMER DB NAME\n";
		customerDBFields = true;
	}
	if(window.top.middleFrame.document.forms[0].customerDBUserName.value == "") {
		missingDBFields = missingDBFields + "CUSTOMER DB USER NAME\n";
		customerDBFields = true;
	}
	if(window.top.middleFrame.document.forms[0].customerDBPassword.value == "") {
		missingDBFields = missingDBFields + "CUSTOMER DB PASSWORD\n";
		customerDBFields = true;
	}
	if(window.top.middleFrame.document.forms[0].customerDBConfirmPassword.value == "") {
		missingDBFields = missingDBFields + "CUSTOMER DB CONFIRM PASSWORD\n";
		customerDBFields = true;
	}
	if(missingDBFields != "") {
		var str = "The ";
		var appendComma = false;
		if(selectorMissingDBFields) {
			str = str + "Selector";
			appendComma = true;
			window.top.middleFrame.document.forms[0].doSelectorDatabase.value = "false";
		}
		if(quoteManagerMissingFields) {
			if(appendComma) {
				str =  str + ", ";
			}
			str = str + "Item Manager";
			appendComma = true;
			window.top.middleFrame.document.forms[0].doQuoteManagerDatabase.value = "false";
		}
		if(versionControlDBFields) {
			if(appendComma) {
				str =  str + ", ";
			}
			str = str + "VersionControl";
			appendComma = true;
			window.top.middleFrame.document.forms[0].doVersionControlDatabase.value = "false";
		}
		if(customerDBFields) {
			if(appendComma) {
				str =  str + ", ";
			}
			str = str+ "Customer.";
			window.top.middleFrame.document.forms[0].doCustomerDatabase.value = "false";
		}
		var agree=confirm(str + LABEL_DB_INFO_NOT_SAVED + "\n\n" + missingDBFields +"\n"+ LABEL_CONT_WITHOUT_SAVE);
		submit = agree;
		if(submit == false){
			return submit;
		}
	}
	/*if(window.top.middleFrame.document.forms[0].selectorDBPassword.value != window.top.middleFrame.document.forms[0].selectorDBConfirmPassword.value) {
		alert("SELECTOR PASSWORD and SELECTOR CONFIRM PASSWORD fields do not match.\n");
		window.top.middleFrame.document.forms[0].selectorDBPassword.focus();
		submit = false;
		return submit;
	}
	if(window.top.middleFrame.document.forms[0].quoteManagerDBPassword.value != window.top.middleFrame.document.forms[0].quoteManagerDBConfirmPassword.value) {
		alert("QUOTE MANAGER PASSWORD and QUOTE MANAGER CONFIRM PASSWORD fields do not match.\n");
		window.top.middleFrame.document.forms[0].quoteManagerDBPassword.focus();
		submit = false;
		return submit;
	}
	if (window.top.middleFrame.document.forms[0].versionControlDBPassword.value != window.top.middleFrame.document.forms[0].versionControlDBConfirmPassword.value) {
		alert("VERSION CONTROL PASSWORD and SELECTOR CONFIRM PASSWORD fields do not match.\n");
		window.top.middleFrame.document.forms[0].versionControlDBPassword.focus();
		submit = false;
		return submit;
	}*/
	if (window.top.middleFrame.document.forms[0].customerDBPassword.value != window.top.middleFrame.document.forms[0].customerDBConfirmPassword.value) {
		alert("CUSTOMER PASSWORD and CUSTOMER CONFIRM PASSWORD fields do not match.\n");
		window.top.middleFrame.document.forms[0].customerDBPassword.focus();
		submit = false;
		return submit;
	}
	return submit;
}
function displayTwistieSection(twistieSection, twistieGraphic, imagesPath, saveToForm) {
	var twistieAssigned = "twistieClosed.gif";
	if (twistieSection.style.display=="inline") {
	    twistieSection.style.display="none";
	    twistieGraphic.src = imagesPath+"twistieClosed.gif";
	    twistieAssigned = "twistieClosed.gif";
 		if (saveToForm) {
			//update form
			name = "document.forms[0]." + twistieSection.id + "DisplayStyle.value = 'none'";
			eval(name);
		}
	}
	else {
	   twistieSection.style.display="inline";
	   twistieGraphic.src = imagesPath+"twistieOpen.gif";
	   twistieAssigned = "twistieOpen.gif";
	   if (saveToForm) {
			//update form
			name = "document.forms[0]." + twistieSection.id + "DisplayStyle.value = 'inline'";
			eval(name);
		}
	}
	
	if(twistieSection.id == "discountCodes") document.forms[0].discountCodeTwistieImage.value = twistieAssigned;
	else if(twistieSection.id == "quoteOptions") document.forms[0].quoteOptionTypeTwistieImage.value = twistieAssigned;
	else if(twistieSection.id == "usermessage") document.forms[0].messageTwistieImage.value = twistieAssigned;
    else if(twistieSection.id == "ruleVar1Div") document.forms[0].ruleVar1TwistieImage.value = twistieAssigned;
}
function changeQMList(rootURL)
{
  var quotemanagerlist = rootURL  + 'app/qmlist?preserveOldValues=true';
  document.forms[0].action = quotemanagerlist;
  document.forms[0].submit();
}
function changeMessageList(rootURL)
{
  var messagelist = rootURL  + 'app/messagelist?preserveOldValues=true';
  document.forms[0].action = messagelist;
  document.forms[0].submit();
}
function showEditScreen(rootURL, formName)
{
	if((formName == "discountCode") && (document.forms[0].productLine_discountCode.options.length <= 0))
	{
		alert("Please select 'Discount Codes for:' before editing");
		return false;
	}
	if((formName == "termsOfPayment") && (document.forms[0].discountCode_termsOfPayment.options.length <= 0))
	{
		alert("Please select 'Terms of Payment for:' before editing");
		return false;
	}
	if((formName == "quoteOption") && (document.forms[0].quoteOptionType_QuoteOption.options.length <= 0))
	{
		alert("Please select 'Quote Options for:' before editing");
		return false;
	}
	var page = rootURL + "app/qmlisteditor?formName=" + formName;
	//if(formName != "ruleVar1") {
	//	page = appendTwistie(page);
	//} else {
	//	page += "&sellingOrgID=" + document.forms[0].sellingOrgID.value;
	//}
	page = appendTwistie(page);
    aQMListChildWindow = window.open(page, "_blank", "status=no,toolbar=no,scrollbars=yes,resizable=yes,width=900,height=500,left=50,top=50");
	aQMListChildWindow.opener = window.top;
}
var lineNumber = 0;
function addQMListNewForm(size, name)
{
	var newFormName = "newForm" + "_" + name + i;
	var newRow = document.createElement('tr');
	if(name == 'productLine')
	{
		var codeName = "code_" + newFormName ;
		var productLineTD = document.createElement('td');
		var codeInput = document.createElement('input');
		codeInput.type = "text";
		codeInput.size = size;
		codeInput.name = codeName;
		codeInput.className = "qffdd";
		codeInput.value = "";
		productLineTD.appendChild(codeInput);
		newRow.appendChild(productLineTD);
	}
	if(name == 'termsOfPayment')
	{
		var termsOfPaymentTD = document.createElement('td');
		termsOfPaymentTD.setAttribute("align", "center");
		if(lineNumber <= 0) getLineNumber();
		var lineNumberName = "lineNumber_" + newFormName ;
		var lineNumberHidden = document.createElement('input');
		lineNumberHidden.type = "hidden";
		lineNumberHidden.name = lineNumberName;
		lineNumberHidden.value = lineNumber;
		document.getElementById("listDisplay").appendChild(lineNumberHidden);
		lineNumberNode = document.createTextNode(lineNumber);
		lineNumber = lineNumber + 1;
		termsOfPaymentTD.appendChild(lineNumberNode);
		newRow.appendChild(termsOfPaymentTD);
	}
	if(name == 'quoteOption')
	{
		var quoteOptionName = "name_" + newFormName ;
		var quoteOptionTD = document.createElement('td');
		var quoteOptionNameInput = document.createElement('input');
		quoteOptionNameInput.type = "text";
		quoteOptionNameInput.size = size;
		quoteOptionNameInput.name = quoteOptionName;
		quoteOptionNameInput.className = "qffdd";
		quoteOptionNameInput.value = "";
		quoteOptionTD.appendChild(quoteOptionNameInput);
		newRow.appendChild(quoteOptionTD);
	}
	var descriptionTD = document.createElement('td');
	var descriptionInput = document.createElement('input');
	descriptionInput.type = "text";
	descriptionInput.colSpan = "2";
	descriptionInput.size = size;
	descriptionInput.name = newFormName;
	descriptionInput.className = "qffdd";
	descriptionInput.value = "";
	descriptionTD.appendChild(descriptionInput);
	newRow.appendChild(descriptionTD);

	if(name == 'ruleVar1')
	{
		var ruleVar1Name = "value_" + newFormName ;
		var ruleVar1TD = document.createElement('td');
		var ruleVar1Input = document.createElement('input');
		ruleVar1Input.type = "text";
		ruleVar1Input.size = size;
		ruleVar1Input.name = ruleVar1Name;
		ruleVar1Input.className = "qffdd";
		ruleVar1Input.value = "";
		ruleVar1TD.appendChild(ruleVar1Input);
		newRow.appendChild(ruleVar1TD);
	}


	document.getElementById("listDisplay").appendChild(newRow);
	i++;
}
function getLineNumber()
{
	lineNumber = 1;
	var allObjects = window.document.forms[0].elements;
	for(var k = 0; k < allObjects.length; k++){
		if(allObjects[k].type == 'hidden' && (allObjects[k].name).indexOf("lineNumber_") > -1){
		  if(lineNumber < allObjects[k].value) lineNumber = parseInt(allObjects[k].value) + 1;
		}
	}
	return lineNumber;
}
function addToChangedQMList(obj)
{
	if(changedQMListObjects == null) changedQMListObjects = new Array();
	var index = changedQMListObjects.length;
	changedQMListObjects[index] = obj;
}
function submitQMList(rootURL,LABEL_COMPLETE_FIELDS_BEFORE_SUBMITTING)
{
	if(checkQMFields(LABEL_COMPLETE_FIELDS_BEFORE_SUBMITTING) && clean_QMList()){
		var quotemanagerlistsave = rootURL  + 'app/qmlistsave';
		document.forms[0].action = quotemanagerlistsave;
		//document.forms[0].submit();
		return true;
	}else {
		return false;
	}
}
function submitMessageList(rootURL,LABEL_COMPLETE_FIELDS_BEFORE_SUBMITTING)
{
	if(checkQMFields(LABEL_COMPLETE_FIELDS_BEFORE_SUBMITTING) && clean_QMList()){
		var messagelistsave = rootURL  + 'app/messagelistsave';
		document.forms[0].action = messagelistsave;
		return true;
	}else {
		return false;
	}
}
function checkQMFields(LABEL_COMPLETE_FIELDS_BEFORE_SUBMITTING){
	missingFields = "";
	submit = true;
	var allObjects = window.document.forms[0].elements;
	for(var k = 0; k < allObjects.length; k++) {
		if(allObjects[k].type == 'text' || allObjects[k].type == 'textarea'|| allObjects[k].type == 'select-multiple'){
			if(allObjects[k].type == 'select-multiple'){
				if(allObjects[k].selectedIndex == -1){
					missingFields = missingFields + allObjects[k].name + "\n";
				}
			}else if((allObjects[k].name).substr(0, 19) != "newForm_quoteOption" && (allObjects[k].name).substr(0, 11) != "quoteOption") {
				if(allObjects[k].value == '') {
					missingFields = missingFields + allObjects[k].name + "\n";
				}
			}
		}
	}
	if(missingFields != ""){
		alert(LABEL_COMPLETE_FIELDS_BEFORE_SUBMITTING + "\n" + missingFields);
		submit = false;
	}
	return submit;
}
function clean_QMList() {
	var allObjects = window.document.forms[0].elements;
	if(changedQMListObjects == null) {
		for(var k = 0; k < allObjects.length; k++) {
			if(allObjects[k].type == 'hidden' || allObjects[k].type == 'checkbox' || (allObjects[k].name).indexOf("newForm") > -1
			 || (allObjects[k].name).indexOf("code_") > -1 || (allObjects[k].name).indexOf("name_") > -1
			 ||(allObjects[k].name).indexOf("title_") > -1 || (allObjects[k].name).indexOf("organizationalUnit") > -1)
			 continue;
			allObjects[k].disabled = true;
		}
		return true;
	}
	var i;
	var j;
	for(i = 0; i < allObjects.length; i++) {
		if(allObjects[i].type == 'hidden' || allObjects[i].type == 'checkbox' || (allObjects[i].name).indexOf("newForm") > -1
		|| (allObjects[i].name).indexOf("code_") > -1 || (allObjects[i].name).indexOf("name_") > -1
		||(allObjects[i].name).indexOf("title_") > -1 ||(allObjects[i].name).indexOf("organizationalUnit") > -1)
		continue;
		for(j = 0; j < changedQMListObjects.length; j++){
			if(allObjects[i] == changedQMListObjects[j]) break;
		}
		if(j >= changedQMListObjects.length) allObjects[i].disabled = true;
	}
	return true;
}
function checkQMListChildWindow(){
	if(aQMListChildWindow == null) return;
	if(!this.aQMListChildWindow.closed) {
		window.aQMListChildWindow.focus();
	}
}
function checkMessageListChildWindow(){
	if(aMessageListChildWindow == null) return;
	if(!this.aMessageListChildWindow.closed) {
		window.aMessageListChildWindow.focus();
	}
}
/*FUNCTION IS NOT CALLED
function deleteQMList(rootURL,D0_YOU_WANT_TO_DELETE,SELECT_ITEM_TO_DELETE){ 
	var counter = setSelectedItems();
	if(counter < 1) {
		alert(SELECT_ITEM_TO_DELETE+"\n");
		return false;
	}
	var confirmation = window.confirm(D0_YOU_WANT_TO_DELETE+"\n");
	if(!confirmation) return false;
	var allObjects = window.document.forms[0].elements;
	for(var k = 0; k < allObjects.length; k++) {
		if(allObjects[k].type == 'radio'|| allObjects[k].type == 'checkbox' || allObjects[k].type == 'hidden') continue;
		allObjects[k].disabled = true;
	}
	var quotemanagerlistsave = rootURL  + 'app/qmlistsave';
    document.forms[0].isDeleteRequest.value = 'true';
	document.forms[0].method = 'post';
	document.forms[0].action = quotemanagerlistsave;
	document.forms[0].submit();
	return true;
}*/
function deleteMessageList(rootURL, LABEL_D0_YOU_WANT_TO_DELETE, LABEL_SELECT_ITEM_TO_DELETE){
	var counter = setSelectedItems();
	if(counter < 1) {
		alert(LABEL_SELECT_ITEM_TO_DELETE+"\n");
		return false;
	}
	var confirmation = window.confirm(LABEL_D0_YOU_WANT_TO_DELETE+"\n");
	if(!confirmation) return false;
	var allObjects = window.document.forms[0].elements;
	for(var k = 0; k < allObjects.length; k++) {
		if(allObjects[k].type == 'radio'|| allObjects[k].type == 'checkbox' || allObjects[k].type == 'hidden') continue;
		allObjects[k].disabled = true;
	}
	var messagelistsave = rootURL  + 'app/messagelistsave';
    document.forms[0].isDeleteRequest.value = 'true';
	document.forms[0].method = 'post';
	document.forms[0].action = messagelistsave;
	document.forms[0].submit();
	return true;
}
function showMessageEditScreen(rootURL, formName, operation)
{
	if((formName == "message") && (document.forms[0].message.options.length <= 0) && operation == 'edit')
	{
		alert("Please select 'Message:' before editing");
		return false;
	}
	var page = rootURL + "app/messagelisteditor?formName=" + formName + "&operation=" + operation;
	//page = appendTwistie(page);
	var messageTwistie = document.forms[0].messageTwistieImage.value;
	page += "&msgt=" + messageTwistie;	
	aMessageListChildWindow = window.open(page, "_blank", "status=no,toolbar=no,scrollbars=yes,resizable=yes,width=900,height=500,left=50,top=50");
	aMessageListChildWindow.opener = window.top;
}
function appendTwistie(page){
	var discountTwistie = document.forms[0].discountCodeTwistieImage.value;
	var quoteOptionTypeTwistie = document.forms[0].quoteOptionTypeTwistieImage.value;
	var ruleVar1Twistie = document.forms[0].ruleVar1TwistieImage.value;
	page = page + "&dt=" + discountTwistie + "&qt=" + quoteOptionTypeTwistie + "&rv1=" + ruleVar1Twistie;
	return page;
}
function setStatusValue(){
	var statusValue = document.forms[0].status.value;
	if(statusValue == 0){
		document.forms[0].status.value = 1;
	}else{
		document.forms[0].status.value = 0;
	}
}
function setSelectedItems() {
	var selectedItems = '';
	var counter = 0;
	var allObjects = window.document.forms[0].elements;
	for(var i = 0; i < allObjects.length; i++) {
		if(allObjects[i].type == 'checkbox' && allObjects[i].checked == true) {
			counter++;
		}
	}
return counter;
}

function changeOrganizationalUnitDefaultRoles(rootURL, userID)
{
  var uid = 0;
  if(userID != '') uid = parseInt(userID);
  if(uid <= 0)  {
	var userDetails = rootURL + 'app/userdetailsservlet?preserveOldValues=true';
	document.forms[0].action = userDetails;
	document.forms[0].submit();
  }
}
function displayUserInformation(imagesPath) {
  var f = document.forms[0];
  if(userMain.style.display=="inline") {
   userMain.style.display="none";
	f.twistieUserMain.src = imagesPath + "twistieClosed.gif";
  }
  else {
	userMain.style.display="inline";
	f.twistieUserMain.src = imagesPath + "twistieOpen.gif";
  }
}
function displayCustomerInformation(imagesPath) {
  var f = document.forms[0];
  if(customerMain.style.display=="inline") {
   customerMain.style.display="none";
	f.twistieCustomerMain.src = imagesPath + "twistieClosed.gif";
  }
  else {
	customerMain.style.display="inline";
	f.twistieCustomerMain.src = imagesPath + "twistieOpen.gif";
  }
}
function displayQuoteInformation(imagesPath) {
  var f = document.forms[0];
  if(quoteMain.style.display=="inline") {
   quoteMain.style.display="none";
	f.twistieQuoteMain.src = imagesPath + "twistieClosed.gif";
  }
  else {
	quoteMain.style.display="inline";
	f.twistieQuoteMain.src = imagesPath + "twistieOpen.gif";
  }
}
function displayQuestions(imagesPath) {
  var f = document.forms[0];
  if(question.style.display=="inline") {
   question.style.display="none";
	f.twistieQuestion.src = imagesPath + "twistieClosed.gif";
  }
  else {
	question.style.display="inline";
	f.twistieQuestion.src = imagesPath + "twistieOpen.gif";
  }
}
function validateDate(str){
	formObj = "document.forms[0]." + str;
	var dt = eval(formObj);
	if(dt.value != ""){
		if(isDate(dt.value)== false){
			dt.focus();
			return false
		}
		return true
	}
 }
// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
  var i;
	for (i = 0; i < s.length; i++){
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	// All characters are numbers.
	return true;
}

function stripCharsInBag(s, bag){
  var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++){
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}

function daysInFebruary (year){
  // February has 29 days in any year evenly divisible by four,
	// EXCEPT for centurial years which are not also divisible by 400.
	return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
  for (var i = 1; i <= n; i++) {
	this[i] = 31
	if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
	if (i==2) {this[i] = 29}
   }
   return this
}

function isDate(dtStr){
  var daysInMonth = DaysArray(12)
  var pos1=dtStr.indexOf(dtCh)
  var pos2=dtStr.indexOf(dtCh,pos1+1)
  var strMonth=dtStr.substring(0,pos1)
  var strDay=dtStr.substring(pos1+1,pos2)
  var strYear=dtStr.substring(pos2+1)
  strYr=strYear
  if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
  if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
  for (var i = 1; i <= 3; i++) {
	if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
  }
  month=parseInt(strMonth)
  day=parseInt(strDay)
  year=parseInt(strYr)
  if (pos1==-1 || pos2==-1){
	alert("The date format should be : mm/dd/yyyy")
	return false
  }
  if (strMonth.length<1 || month<1 || month>12){
	alert("Please enter a valid month")
	return false
  }
  if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
	alert("Please enter a valid day")
	return false
  }
  if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
	alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
	return false
  }
  if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
	alert("Please enter a valid date")
	return false
  }
return true
}
function saveUser(rootURL,LABEL_COMPLETE_FIELDS_BEFORE_SUBMITTING , LABEL_P_AND_CP_NOT_MATCH){
	missingFields = "";
	submit = true;
	if(window.top.document.forms[0].FirstName.value == "") {
		missingFields = missingFields + "FIRST NAME\n";
	}
	if(window.top.document.forms[0].LastName.value == ""){
		missingFields = missingFields + "LAST NAME\n";
	}
	if(window.top.document.forms[0].Login.value == ""){
		missingFields = missingFields + "LOGIN ID\n";
	}
	if(window.top.document.forms[0].Password.value == ""){
		missingFields = missingFields + "PASSWORD\n";
	}
	if(window.top.document.forms[0].ConfirmPassword.value == ""){
		missingFields = missingFields + "CONFIRM PASSWORD\n";
	}
	if(window.top.document.forms[0].customerName.value == ""){
		missingFields = missingFields + "Company\n";
	}
	if(window.top.document.forms[0].location.value == ""){
		missingFields = missingFields + "Location\n";
	}
	if(window.top.document.forms[0].projectName.value == ""){
		missingFields = missingFields + "Project name\n";
	}
	if(missingFields != ""){
		alert(LABEL_COMPLETE_FIELDS_BEFORE_SUBMITTING + "\n" + missingFields);
		submit = false;
	}
	if (submit && (window.top.document.forms[0].Password.value != window.top.document.forms[0].ConfirmPassword.value)){
		newMsg = LABEL_P_AND_CP_NOT_MATCH + "\n";
		alert(newMsg);
		submit = false;
	}
	if(submit){
		var usersave = rootURL + 'userregistersave';
		window.top.document.forms[0].action = usersave;
		window.top.document.forms[0].submit();
	}
	else{
		return submit;
	}
}
function setHideOrgAdminValue(){
	var hideOrgAdminValue = document.forms[0].hideOrgAdmin.value;
	if(hideOrgAdminValue =='' || hideOrgAdminValue == 0){
		document.forms[0].hideOrgAdmin.value = 1;
	}else{
		document.forms[0].hideOrgAdmin.value = 0;

	}
}
function jsDatePicker( szField, szDate, szAction){
	var form = document.forms[0];
	var field = form.elements[szField];
	if(szAction == "1")//set
	{
		field.value=szDate;
	}
	return field.value;
}
function hide(obj) {
	obj.style.visibility='hidden';
}

function pageOffsetX(obj) {
	leftOffset = obj.offsetLeft;
	curParent = obj.offsetParent;
	while (curParent != null) {
		leftOffset += curParent.offsetLeft;
		curParent = curParent.offsetParent;
	}
return (leftOffset);
}
function pageOffsetY(obj) {
	topOffset = obj.offsetTop;
	curParent = obj.offsetParent;
	while (curParent != null) {
		topOffset += curParent.offsetTop;
		curParent = curParent.offsetParent;
	}
	return (topOffset);
}

/**
 * Marks specified form field as dirty.
 */
function setDirtyFlag(dirtyField) {
    name = "document.forms[0]." + dirtyField + ".value = 'true'";
    eval(name);
}

function show(obj) {
	obj.style.visibility='visible';
}
function checkMouseOutCoords(pullDown) {
	if (ie5_5up){
		pullDown.style.visibility='hidden';
	}
	else if (event.clientY>pullDown.offsetParent.offsetParent.offsetTop+pullDown.offsetParent.offsetTop+pullDown.offsetTop) {
		pullDown.style.visibility='hidden';
	}

}
function checkMouseOutCoordsForParent(parentPullDown, pullDown) {
	if (ie5_5up){
		parentPullDown.style.visibility='hidden';
	}
	else if ( pullDown.style.visibility == 'hidden'){
		parentPullDown.style.visibility='hidden';
	}
}
function changeLanguage(rootURL, language)
{
    var banner = rootURL + 'app/banner';
	document.forms[0].LanguageID.value = language;
	document.forms[0].action = banner;
	document.forms[0].submit();
}

function showOrganizationalUnitFilter(rootURL) {
  var organizationalunitfilter = rootURL + "app/organizationalunitfilter";
  document.forms[0].target = '_self';
  document.forms[0].action = organizationalunitfilter;
  document.forms[0].submit();
}

function showRoleFilter(rootURL) {
  var rolefilter = rootURL + "app/rolefilter";
  document.forms[0].target = '_self';
  document.forms[0].action = rolefilter;
  document.forms[0].submit();
}

function clearOrganizationalUnitFilterValues(rootURL){
	organizationalunitList = rootURL + "app/organizationalunitlist?organizationalUnitFilter=false";
	document.forms[0].target = '_self';
	document.forms[0].action =  organizationalunitList;
	document.forms[0].submit();
}
function submitOrganizationalUnitFilterValues(rootURL){
  var organizationalunitlist = rootURL + "app/organizationalunitlist?organizationalUnitFilter=true";
  document.forms[0].target = '_self';
  document.forms[0].action= organizationalunitlist;
  document.forms[0].submit();
}

function checkCookieSupport(cookiesDisabledJSP) {
    //test for this value
    var testValue = new String(Math.floor(1000*Math.random()));
    
    //write cookie
    var expire = new Date();
	expire.setTime(expire.getTime() + 3600000*2);//2 hrs
	document.cookie ="IEQCookieTest="+testValue+";expires="+expire.toGMTString();
    
    //read cookie
    var readCookie = ""+document.cookie;
    var idx1 = readCookie.indexOf("IEQCookieTest");
    if (idx1 == -1) {
        document.location.href = cookiesDisabledJSP;
    }
    var idx2 = readCookie.indexOf(';',idx1);
    if (idx2 == -1) {
        idx2=readCookie.length;
    }
    
    //compare cookie value
    var readVal = readCookie.substring(idx1+"IEQCookieTest".length+1,idx2);
    if(readVal != testValue) {
        document.location.href = cookiesDisabledJSP;
    }
}

function cursorFocus() {
    document.admin.username.focus();
}

function postLogin() {
    var login =document.admin.username.value;
    var password =document.admin.userpwd.value;
    if(login =="") {
        alert("Please enter the login ID");
         document.admin.username.focus();
        return false;
    } else if(password=="") {
        alert("Please enter the password");
        document.admin.userpwd.focus();
        return false;
    }
}

function postBlackmerLogin(destination, keyCodePressed) {
    if(keyCodePressed == 13 || keyCodePressed == "hrefClick") {
        var login = document.admin.username.value;
        var password = document.admin.userpwd.value;
        if(login == "") {
            alert("Please enter the login ID");
            document.admin.username.focus();
            return false;
        }else if(password=="") {
            alert("Please enter the password");
            document.admin.userpwd.focus();
            return false;
        }
        document.admin.ReturnUrl.value = destination;
        document.admin.submit();
        return true;
    }
}

function postABSLogin(destination, keyCodePressed) {
    if(keyCodePressed == 13 || keyCodePressed == "hrefClick") {
        var login = document.admin.username.value;
        var password = document.admin.userpwd.value;
        if(login == "") {
            alert("Please enter the login ID");
            document.admin.username.focus();
            return false;
        }else if(password=="") {
            alert("Please enter the password");
            document.admin.userpwd.focus();
            return false;
        }
        document.admin.ReturnUrl.value = destination;
        document.admin.submit();
        return true;
    }
}
function doPopupDetection(popupDetectionURL) {
    var featureString = "status=no,toolbar=no,scrollbars=no,resizable=no,menubar=no,width=1,height=1,left="+window.screen.width+500+",top="+window.screen.height+500;
    newWin = window.open(popupDetectionURL, "_blank", featureString);
    if(newWin == null || newWin.closed) {
        //alert('popup blocked');
        return false;
    } else {
        //alert('popup allowed');
        newWin.close();
        return true;
    }
}

function initRequest(url) {
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return req;
}

/**
* Called from every popup window's onUnload handler.
* This is necessary because a race condition occurs between the closing of the childWin, and the main window's focus check 
* That focus check is performed in main.jsp function checkChildWin().
*/
function doChildWinUnload() {
	//make sure the opener and aChildWindow has been defined
	if(window.opener != null && window.opener.aChildWindow != null) {
		//explicitly set the aChildWindow variable to null, do not rely on the browser to do this when the window closes
		window.opener.aChildWindow=null;
	}
}
function reloadOpenerPage() {
	// this hack is to refresh the page, to clear(reset) the changeUnits dropdown 
	window.opener.location.reload();
}

function checkNumber(obj) {
    objValue = obj.value;
    var s = new String(objValue);
    if(isNaN(s.valueOf()) || s.indexOf(' ') > -1 || s.indexOf('.') > -1 || s.indexOf(',') > -1) {
        alert('Please enter a numeric value');
        obj.value = obj.defaultValue;
        obj.focus();
        return false;
    } else if(s.valueOf() < 0 || s.indexOf('-') > -1) {
    	 alert('Please enter a value > 0');
        obj.value = obj.defaultValue;
        obj.focus();
        return false;
    }    
    return true;    
}
function checkMinLength(obj) {
	if(document.forms[0].passwordLengthMinimum != null) {
		minimumPasswordLength = document.forms[0].passwordLengthMinimum.value;		
		if(obj.value.length < minimumPasswordLength) {
			alert('Password must be at least '+ minimumPasswordLength + ' characters');
			obj.value = obj.defaultValue;
			obj.focus();
			return false;
		}
	}	
	return true;
}
function toggleFieldDisplay(obj) {
	if(obj != null) {
		if(obj.disabled == true) {
			obj.disabled = false;
		} else {
			obj.disabled = true;
		}	
	}
}
function displayPrivileges(rootURL, userID) {
  var privilegesURL = rootURL + 'app/userprivileges?userID=' + userID;
  window.open(privilegesURL, '_blank',  'status=no,toolbar=no,scrollbars=yes,resizable=yes,width=600,height=400,left=100,top=100');
}
function disableAllUncheckedRadioButtons() {
	var allObjects = window.document.forms[0].elements;
	if(allObjects != null) {
		for(i = 0; i < allObjects.length; i++) {
			if(allObjects[i].type == 'radio') {
				allObjects[i].disabled = true;
			}
		}
	}
}

function displayChangedOrgFolderMsg() {
	alert(CHANGED_ORG_FOLDER_MSG+"\n  -  "+CHANGED_ORG_FOLDER_MSG_LINE1+"\n  -  "+CHANGED_ORG_FOLDER_MSG_LINE2+"\n  -  "+CHANGED_ORG_FOLDER_MSG_LINE3+"\n  -  "+CHANGED_ORG_FOLDER_MSG_LINE4);
}

function requestUserAlert(target){
	customChildWindow = window.open(target, '_blank',  'status=no,toolbar=no,scrollbars=no,resizable=yes,width=1280,height=768,left=20,top=20');
    customChildWindow.opener = window.top;
}

function showOrgsetupXML(rootURL) {
	var target = rootURL + 'app/orgsetupxml';
	var orgsetupXmlURL = target + '?getXML=download';
	document.forms[0].method = 'post';
	document.forms[0].target = "_blank";
	document.forms[0].action = orgsetupXmlURL;
	document.forms[0].submit();
}

function showPropertiesXML(rootURL) {
	var target = rootURL + 'app/propertiesxml';
	var propertiesXmlURL = target + '?getXML=download';
	document.forms[0].method = 'post';
	document.forms[0].target = "_blank";
	document.forms[0].action = propertiesXmlURL;
	document.forms[0].submit();
}

function showIntegrationSchemaDownload(rootURL) {
	var target = rootURL + 'app/integrationschemadownload';
	document.forms[0].method = 'post';
	document.forms[0].target = "_self";
	document.forms[0].action = target;
	document.forms[0].submit();
}

function fieldsFocusLoader(){
	inputFieldFocusHandler = function() {
		var els = document.getElementsByTagName("input");
		for (var i=0; i<els.length; i++) {
			els[i].onfocus=function() {
				this.className+=" fieldFocus";
				return true;
			}
			els[i].onblur=function() {
				this.className=this.className.replace(new RegExp(" fieldFocus"), "");
				return true;
			}
		}
	}
	textareaFieldFocusHandler = function() {
		var els = document.getElementsByTagName("textarea");
		for (var i=0; i<els.length; i++) {
			els[i].onfocus=function() {
				this.className+=" fieldFocus";
				return true;
			}
			els[i].onblur=function() {
				this.className=this.className.replace(new RegExp(" fieldFocus"), "");
				return true;
			}
		}
	}
	selectFieldFocusHandler = function() {
		var els = document.getElementsByTagName("select");
		for (var i=0; i<els.length; i++) {
			els[i].onfocusin=function() {
				this.className+=" fieldFocus";
				return true;
			}
			els[i].onblur=function() {
				this.className=this.className.replace(new RegExp(" fieldFocus"), "");
				return true;
			}
		}
	}
	if (window.attachEvent){
		window.attachEvent("onload", inputFieldFocusHandler);
		window.attachEvent("onload", selectFieldFocusHandler);
		window.attachEvent("onload", textareaFieldFocusHandler);
	}
}
//call in js class to avoid modifications on everypage.
fieldsFocusLoader();

/*
* The following two functions send navbar twistie display style change request to the backend through AJAX
*/
function saveNavBarTwistieOption(baseUrl, displayStyle){
	var url = baseUrl + displayStyle;
	//alert('Ajax twistie option, url='+url);
	if (url != null) {
		GLOBAL_AJAX_REQUEST = initRequest(escape(url));
		GLOBAL_AJAX_REQUEST.onreadystatechange = processAJAXnavBarTwistieOption;
		GLOBAL_AJAX_REQUEST.open("GET", url, true);
		GLOBAL_AJAX_REQUEST.send(null);
		return false;
	}
}

function processAJAXnavBarTwistieOption(){
	if (GLOBAL_AJAX_REQUEST.readyState == 4) {
		if (GLOBAL_AJAX_REQUEST.status == 200) {
			return true;
		}
	}
}

function toggleSecurityFieldsDisplay() {
	var ckboxObj = document.forms[0].overrideOrgLevelSecuritySettings;
	if(typeof ckboxObj != 'undefined' && ckboxObj.type == 'checkbox') {
		var SecuritySettingFieldsObj = window.document.all.SecuritySettingFields;
		if(typeof  SecuritySettingFieldsObj != 'undefined') {
			if(ckboxObj.checked == true) {
				SecuritySettingFieldsObj.style.display="inline";
			} else {
				SecuritySettingFieldsObj.style.display="none";
			}
		}	
	}
}