window.decimalseparator ='.'; window.groupseparator =','; window.negativeprefix ='-'; window.negativesuffix =''; window.weekstart ='1'; window.dateformat ='fmMM/DDfm/YYYY'; window.userfacing_dateformat = 'M/D/YYYY'; window.longdateformat ='fmMonth DDfm, YYYY'; window.timeformat ='fmHH:fmMI am'; window.timeformatwithseconds ='fmHH:fmMI:SS am'; window.decimalseparator ='.'; window.groupseparator =','; window.negativeprefix ='-'; window.negativesuffix =''; window.number_blacklist_regex = new RegExp('[^\\.\\-\\d]','g'); window.datetime_am_string ='am'; window.datetime_pm_string ='pm'; window.datetime_short_months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""]; var fieldtosubrecordmap = new Array(); var fieldtosubrecordfieldmap = new Array(); function page_unload() { if(document.activeElement != null && document.activeElement.form != null) { document.activeElement.blur(); } if (NS.form.isChanged()) { return ('You have not yet submitted this record.'); } } function save_record(lastcall, allowEnhancedResult) { var _saverec = function _saverec(lastcall) { if (!NS.form.isInited()) return false; for(key in window.subrecordcache) { if (window.subrecordcache.hasOwnProperty(key) && window.subrecordcache[key]) { window.subrecordcache[key].commit(); } } var form = document.forms['main_form']; if (form.submitted) { if (form.submitted.value == 'T') { var resubmit = false; resubmit = confirm('You have already submitted this form, would you like to submit it again?'); if(!resubmit) return false; } } try { var mfrm = document.forms['main_form']; for (var i = 0; i < mfrm.elements.length; i++) { var elem = mfrm.elements[i]; if (elem.className=='input' && elem.type=='text' && elem.value.length > 0 && mfrm.elements[elem.name+'type']!=null && getSelectValue(mfrm.elements[elem.name+'type'])=='ANY') elem.onchange() } for(key in window.subrecordcache) { if (window.subrecordcache.hasOwnProperty(key) && window.subrecordcache[key]) { window.subrecordcache[key].commit(); } } } catch(err) { alert('You cannot submit this form due to an unexpected error.'); return false; } setWindowChanged(window, false); if(lastcall == true && form.submitted) form.submitted.value='T'; return true; } var result = _saverec(lastcall); if (result){ } if (!allowEnhancedResult) result = handleValidationResult(result); return result; } function restore_splits() { } function clear_splits(sublist) { } function page_reset() { document.page_is_resetting=true; document.forms['main_form'].reset(); resetNLDropDowns(document.forms['main_form']); resetNLPopupSelects(document.forms['main_form']); resetHtmlEditors(document.forms['main_form']); setWindowChanged(window, false); page_init3(); var savechanged = NS.form.isChanged(); restore_splits(); setWindowChanged(window, savechanged); NS.form.setValid(true); window.clickCount=0; if (window.clickCount == 0) { setTimeout(function(){if ( isFocusable( document.forms['main_form'].elements['Item_SEARCHKEYWORDS'] ) ) { document.forms['main_form'].elements['Item_SEARCHKEYWORDS'].focus();}}, 0); } nlapiSetFieldValue('nsbrowserenv', 'istop=' + (window==top ? 'T':'F')); document.page_is_resetting=false; } function checkMachineValid(mach) { if (document.forms[0].elements[mach+'valid'] != null && document.forms[0].elements[mach+'valid'].value=='F') { alert('One or more sublists had errors.'); return false;} return true; } function delete_record(url) { function deleteEventHandler(arguments) { return true; }; if (confirm('Are you sure you want to ' + (url == 'void.jsp' ? 'void' : 'delete') + ' this '+'search?') && deleteEventHandler(arguments)) { document.forms['main_form'].onsubmit=null; setWindowChanged(window, false); return true; } else return false; } function appendMastersForQueryRequest(sublistId, queryFieldId, url){ var masters = null; if(sublistId == null){ masters = fmasters.main[queryFieldId]; } else if(sublistId != null){ masters = fmasters.sublists[sublistId] ? fmasters.sublists[sublistId][queryFieldId] : null; } if(masters && Array.isArray(masters)){ masters.forEach(function(master){ var dotIndex = master.indexOf('.'), sublistId, fieldId; if(dotIndex != -1){ sublistId = master.substring(0, dotIndex); fieldId = master.substring(dotIndex+1); }else{ fieldId = master }; var val = sublistId ? nlapiGetCurrentLineItemValue(sublistId, fieldId) : nlapiGetFieldValue(fieldId); url = addParamToURL(url, 'si_'+fieldId, val); }) } return url; } function NLEntryForm_querySelectText(fldname, machine, linenum, value) { if ( isValEmpty( value ) ) return null; var url = '/s.nl?it=I&id=123&e=T'; var id = document.forms['main_form'].elements['id'].value; if ( !isValEmpty( id ) && id != -1 ) url = addParamToURL( url, 'id', id ); url = addParamToURL( url, 'q', fldname ); url = addParamToURL( url, 'si', encodeURIComponent(value) ); url = appendMastersForQueryRequest(machine, fldname, url); url = addParamToURL( url, 'lookuplabel', 'T' ); if ( !isValEmpty( machine ) ) url = addParamToURL( url, 'machine', machine ); var response = new NLXMLHttpRequest().requestURL( url ).getBody(); eval( response.replace(/^\s*\s*$/gm, '') ); return selectmap; } function NLEntryForm_querySelectValue(fldname, machine, text) { if ( isValEmpty( text ) ) return null; var url = '/s.nl?it=I&id=123&e=T'; var id = document.forms['main_form'].elements['id'].value; if ( !isValEmpty( id ) && id != -1 ) url = addParamToURL( url, 'id', id ); url = addParamToURL( url, 'q', fldname ); url = addParamToURL( url, 'st', encodeURIComponent( text ) ); url = appendMastersForQueryRequest(machine, fldname, url); url = addParamToURL( url, 'resolvelabel', 'T' ); if ( !isValEmpty( machine ) ) url = addParamToURL( url, 'machine', machine ); var response = new NLXMLHttpRequest().requestURL( url ).getBody(); eval( response.replace(/^\s*\s*$/gm, '') ); return selectmap; } function Syncoutputtype(fieldspec, linenum, onlySlaveSelect, mach, addlparams, callbacks) { } var ftabs = new Array(); var ftypes = new Array(); var fparents = new Array(); var fmasters = {main:{}, sublists:{}}; ftypes['Item_SEARCHKEYWORDS']='text'; ftabs['Item_SEARCHKEYWORDS']='main'; ftypes['sort1desc']='checkbox'; ftypes['sort2desc']='checkbox'; ftypes['sort3desc']='checkbox'; ftypes['outputtype']='select'; ftypes['hastotals']='checkbox'; ftypes['unrestricted']='checkbox'; ftypes['maxrows']='integer'; ftypes['disabledrilldown']='checkbox'; fmasters.sublists['filters']={}; fmasters.sublists['summaryfilters']={}; fmasters.sublists['returnfields']={}; fmasters.sublists['detailfields']={}; fmasters.sublists['filterfields']={}; fmasters.sublists['highlight']={}; fmasters.sublists['summaryhighlight']={}; fmasters.main = (Object.freeze) ? Object.freeze(fmasters.main) : fmasters.main; fmasters.sublists = (Object.freeze) ? Object.freeze(fmasters.sublists) : fmasters.sublists; fmasters = (Object.freeze) ? Object.freeze(fmasters) : fmasters; var fScriptIds = null; var _defaultLocale = null; var _macro = {"macroMetadata":[]};if (Object.freeze) {(function deepFreeze(obj){Object.freeze(obj);for (var p in obj) {if (!obj.hasOwnProperty(p) || !(typeof obj[p] === 'object') || Object.isFrozen(obj[p])) { continue; }deepFreeze(obj[p]);}})(_macro);} function setValueToFormula(sel,formulafld,addbraces,win) { if (win == null) win=window; var val=win.getSelectValue(sel) if (addbraces) val = '{'+val+'}'; if ( window.getHtmlEditor != null && getHtmlEditor( formulafld.name ) != null ) insertHtmlValue(formulafld.name,val); else setFormValue(formulafld,getFormValue(formulafld)+val); win.setSelectValue(sel,''); } function openFormulaJoinWindow(sel,filterformula,formulafldnam,useids) { var params="formulajoin="+getSelectValue(sel).replace("_","")+"&filterformula="+(filterformula?"T":"F")+"&field="+formulafldnam+"&useids="+(useids?"T":"F")+"&searchtype=Item" setSelectValue(sel,''); nlExtOpenWindow("/app/common/search/search.nl?"+params,"formulajoin",560,500,sel,false,'null'); } function setRfType(fld,typ) { rfTypes[fld] = typ; } function validateSummaryAndFunction(typ,sumfunc,func) { if ((sumfunc == 'SUM' ||sumfunc == 'AVG') && typ != 'CURRENCY' && typ != 'CURRENCY2' && typ != 'PERCENT' && typ != 'FLOAT' && typ != 'INTEGER') { alert('Sum and Average may only be used with numeric type fields.'); return false; } if (func == 'ABSOLUTEVALUE' || func == 'NEGATE' || func == 'ROUND' || func == 'RANK' || func == 'ROUND2' || func == 'TIME' || func == 'ROUND1' || func == 'PERCENT_OF_TOTAL') {if (typ != 'CURRENCY' && typ != 'CURRENCY2' && typ != 'PERCENT' && typ != 'FLOAT' && typ != 'INTEGER' && sumfunc != 'SUM' && sumfunc != 'AVG' && sumfunc != 'COUNT') { alert('Numeric functions may only be used with numeric type fields'); return false; } else if (sumfunc == 'GROUP' && ( func == 'PERCENT_OF_TOTAL')) {alert('This function may not be used with GROUP summary type.'); return false; } else return true; } else if (func.length > 0 && ((typ != 'DATE' && typ != 'DATETIME' && typ != 'DATETIMETZ') || (sumfunc.length > 0 && sumfunc != 'GROUP' && sumfunc != 'MAX' && sumfunc != 'MIN'))) { alert('Date functions may only be used with date type fields'); return false; } else return true; } function isWithin(sModi) { return /^(NOT)?WITHIN$/.test(sModi); } function isEmpty(sModi) { return /^(NOT)?EMPTY/.test(sModi); } function isOn(sModi) { return /^(NOT)?ON$/.test(sModi); } function isDay(sAttr) { return /^TODAY|YESTERDAY|TOMORROW$/.test(sAttr); } function isTimeFieldEnabled(sAttr, sModi, which) { var isInterval = (which == 'from') ? isWithin(sModi) : !isEmpty(sModi); var isCustom = (sAttr == 'CUSTOM'); return isInterval && (isDay(sAttr) || isCustom) && !isOn(sModi); } function updateRelTypeOptions(sel, sAttr, sModi) { var isRelative = (sAttr == 'RELATIVE'); var timeGranularity = isRelative && !isEmpty(sModi) && !isOn(sModi); var hasTimeOptions = getlisttext(sel, 'SAGO'); if (timeGranularity && !hasTimeOptions) { addSelectOption(document, sel, 'seconds ago', 'SAGO', false, window, 0); addSelectOption(document, sel, 'minutes ago', 'NAGO', false, window, 1); addSelectOption(document, sel, 'hours ago', 'HAGO', false, window, 2); addSelectOption(document, sel, 'seconds from now', 'SFN', false, window, 8); addSelectOption(document, sel, 'minutes from now', 'NFN', false, window, 9); addSelectOption(document, sel, 'hours from now', 'HFN', false, window, 10); } if (!timeGranularity && hasTimeOptions) { deleteOneSelectOption(sel, 'SAGO'); deleteOneSelectOption(sel, 'NAGO'); deleteOneSelectOption(sel, 'HAGO'); deleteOneSelectOption(sel, 'SFN'); deleteOneSelectOption(sel, 'NFN'); deleteOneSelectOption(sel, 'HFN'); } } function getDateTimeCriterionTZ(sAttr) { return isDay(sAttr) ? 'Local Time' : '(GMT-05:00) Eastern Time (US & Canada)'; } function synctimefld(sel, timefld) { if (isValEmpty(getSelectValue(sel))) { timefld.value = ''; return; } var time = parseInt(getSelectValue(sel),10); var hours = parseInt(time/100); var minutes = time%100; var date_time = new Date(); date_time.setHours(hours, minutes, 0, 0); timefld.value = gettimestring(date_time); if (timefld.onchange) timefld.onchange(); } function syncauxtimeflds(timefld, sel) { if (isValEmpty(timefld.value)) { synclist(sel, ''); return; } var time = stringtotime(null, timefld.value); var hours = time.getHours(); var minutes = time.getMinutes(); var ampm = hours < 12 ? 'am' : 'pm'; var timestr = (hours*100) + parseInt(minutes/60)*60; timestr = timestr.toString(); while (timestr.length < 4) timestr = '0'+timestr; synclist(sel, timestr.toString()); } function localEval(s) { return eval(s); } function refreshmachine(machs, auxparams, handleDelayLoad, dotmachs ) { var machineparams = ''; var dotmachineparams = ''; var id = document.forms['main_form'].elements['id'].value; id = isValEmpty( id ) ? '' : '&id='+id; var machines = new Object(); var auxparamfields = new Array(); if (machs != null) { var targetmachines = machs.split(String.fromCharCode(5)); for (var i = 0; i < targetmachines.length; i++) { if ( machines[targetmachines[i]] != null ) { if ( handleDelayLoad && eval( 'window.' + machines[targetmachines[i]] + '_machine' ) != null ) { eval( 'window.' + machines[targetmachines[i]] + '_machine' ).buildtable( ); if (document.forms.main_form.elements[machines[targetmachines[i]] +'loaded'] != null) document.forms.main_form.elements[machines[targetmachines[i]] +'loaded'].value = 'T'; } else { machineparams += '&machine='+targetmachines[i]; if (!isValEmpty(auxparamfields[targetmachines[i]])) auxparams = (!isValEmpty(auxparams) ? auxparams + '&' : '')+auxparamfields[targetmachines[i]]+'='+nlapiGetFieldValue(auxparamfields[targetmachines[i]]); } } } } if (dotmachs != null) { targetmachines = dotmachs.split(String.fromCharCode(5)); for (var i = 0; i < targetmachines.length; i++) { if ( machines[targetmachines[i]] != null ) { dotmachineparams += '&dotmachine='+targetmachines[i]; if (!isValEmpty(auxparamfields[targetmachines[i]])) auxparams = (!isValEmpty(auxparams) ? auxparams + '&' : '')+auxparamfields[targetmachines[i]]+'='+nlapiGetFieldValue(auxparamfields[targetmachines[i]]); } } } if ( isValEmpty(machineparams) && isValEmpty(dotmachineparams) ) return; NS.form.setInited(false); document.frames['server_commands'].document.location.replace('/s.nl?id=123&e=T&searchtype=Item&grouptarget=&r=T&e=T'+id+machineparams+dotmachineparams+(isValEmpty(auxparams) ? '' : '&'+auxparams)); } function showmachine(mname,shown) { document.getElementById(mname+'_layer').style.display = shown ? '' : 'none'; NLDisplaySubTab(mname, shown); if (shown && document.forms.main_form.elements[mname+'loaded'] != null && document.forms.main_form.elements[mname+'loaded'].value=='F') refreshmachine( mname, null, true ); document.getElementById(mname+'ltidot').src = shown ? '/images/forms/tab/contentindicator_on.png': '/images/forms/tab/contentindicator_off.png'; if (typeof onShowMachineTab == "function") onShowMachineTab(mname,shown); } function collapsemachine(mname,sethidden,autoshow) { expandCollapseTab(mname, sethidden); if (autoshow != false && !sethidden && document.forms.main_form.elements[mname+'loaded'] != null && document.forms.main_form.elements[mname+'loaded'].value=='F') refreshmachine( mname, null, true ); if (autoshow != false && !sethidden && allmachs[mname] && document.forms.main_form.elements[allmachs[mname]+'loaded'] != null && document.forms.main_form.elements[allmachs[mname]+'loaded'].value=='F') refreshmachine(allmachs[mname], null, true); } function simple_collapsemachine(mname,sethidden) { if (sethidden == null) sethidden = document.getElementById(mname+'_layer').style.display != 'none'; document.getElementById(mname+'_layer').style.display=sethidden ? 'none' : ''; document.getElementById(mname+'_collapse').src = document.getElementById(mname+'_collapse').src.replace(sethidden ? 'collapse' : 'expand', sethidden ? 'expand' : 'collapse'); } function NLDisplaySubTab(tname,shown) { var tab = document.getElementById(tname+'lnk'); tab.className = shown ? 'formsubtabon':'formsubtaboff'; document.getElementById(tname+'txt').className = shown ? 'formsubtabtext formsubtabtexton':'formsubtabtext formsubtabtextoff'; if (shown && typeof NetSuite!='undefined' && NetSuite.RTEManager) NetSuite.RTEManager.resyncSizeAll(); } function ShowmainMachine(lname) { if (NS.form.isInited() && NS.form.isValid()) { } } function CollapsemainMachines(hidden) { if (NS.form.isInited() && NS.form.isValid()) { } } function hideMachine(mname,hide) { if (document.getElementById(mname+'_layer') == null) return; var isHighlighted = (document.getElementById(mname+'lnk') ? document.getElementById(mname+'lnk').className.indexOf('formsubtabon')>=0 : true); ns_tabUtils.hideTab(mname,hide); if (!hide) {if (!isHighlighted) document.getElementById(mname+'_layer').style.display = 'none'; return;} else if (!isHighlighted) return; }