function objectToField(object,name,typeName,extraInfo){return oft_populateField(object,null,name,typeName,extraInfo);} if(!otf_objectToFieldFxByType){var otf_objectToFieldFxByType=[];} function registerConverter(fieldTypeName,conversionFx){if(!otf_objectToFieldFxByType){otf_objectToFieldFxByType=[];} otf_objectToFieldFxByType[fieldTypeName]=conversionFx;} function oft_populateField(object,parentField,name,typeName,extraInfo){var objectType=typeof(object);if("function"==objectType){return ;} var isObject=object&&(objectType=='object');if(typeName){var converterFx=otf_objectToFieldFxByType[typeName];return converterFx(object,name,extraInfo);} if(isObject){var field=object.length?new array_ArrayType(name,"",0):new collectionfield_Collection(name,"",0);var dO=1;for(var i in object) {var typeIndicatorName=i+"_ft";var extraInfoName=typeIndicatorName+"i";var childField=oft_populateField(object[i],field,i,object[typeIndicatorName],object[extraInfoName]);if(childField){childField.displayOrder=dO;field.addChildField(childField);dO++;} } return field;} else {return new field_String(name,"",0,object,false);} } function oft_isTypeIndicator(fieldName){var nameLength=fieldName.length;if(nameLength<=3){return false;} var suffix=fieldName.substring(nameLength-3,nameLength);return ("_ft"==suffix) } ;var IS_MOZILLA=document.getElementById&&!document.all;var IS_IE=document.all;var IS_CHROME=navigator.userAgent.toLowerCase().indexOf('chrome')>-1;var crossbrowser_browserName;var crossbrowser_wc3MouseButtons=[];crossbrowser_wc3MouseButtons.left=1;crossbrowser_wc3MouseButtons.middle=4;crossbrowser_wc3MouseButtons.right=2;var crossbrowser_ieMouseButtons=[];crossbrowser_ieMouseButtons.left=1;crossbrowser_ieMouseButtons.middle=4;crossbrowser_ieMouseButtons.right=2;function crossbrowser_findMouseButtonStatus(event,buttonPosition){var buttonNumber=(event)?crossbrowser_wc3MouseButtons[buttonPosition]:crossbrowser_ieMouseButtons[buttonPosition];var isPressed=false;if(!event){event=window.event;} if(event.which){isPressed=(event.which==buttonNumber);} else if(event.button){isPressed=(event.button==buttonNumber);} return isPressed;};function crossbrowser_dispatchEvent(element,eventObject){ if(IS_IE){element.fireEvent("on"+eventObject.type,eventObject);} else if(IS_MOZILLA){element.dispatchEvent(eventObject);} } function crossbrowser_isInDom(element){if(!element.parentNode){return false;} else if(element.parentNode.tagName){return true;} else {return false;} } function crossbrowser_getBrowserName(){if(crossbrowser_browserName){return crossbrowser_browserName;} var userAgent=navigator.userAgent;if(userAgent){if(userAgent.indexOf("MSIE")!=-1){crossbrowser_browserName="Internet Explorer";return crossbrowser_browserName;} else if(userAgent.indexOf("Firefox")!=-1){crossbrowser_browserName="Firefox";return crossbrowser_browserName;} else if(userAgent.toLowerCase().indexOf('chrome')>-1){crossbrowser_browserName="Chrome";return crossbrowser_browserName;} } var vendor=navigator.vendor;if(vendor){if(userAgent.indexOf("Apple")!=-1){crossbrowser_browserName="Safari";return crossbrowser_browserName;} } else if(window.opera){crossbrowser_browserName="Opera";return crossbrowser_browserName;} crossbrowser_browserName="Unknown";return crossbrowser_browserName;} function crossbrowser_attachEvent(object,eventName,eventFunction){if(IS_MOZILLA){eventName=eventName.substring(2,eventName.length);object.addEventListener(eventName,eventFunction,false);} else if(IS_IE){object.attachEvent(eventName,eventFunction);} } function crossbrowser_stopEvent(event){if(IS_MOZILLA){event.stopPropagation();event.preventDefault();} else if(IS_IE){if(!event){event=window.event;} event.returnValue=false;event.cancelBubble=true;} } function crossbrowser_handleEvent(event){if(IS_MOZILLA){event.stopPropagation();event.preventDefault();} else if(IS_IE){window.event.returnValue=false;window.event.cancelBubble=true;} } function crossbrowser_cancelBubble(event){if(IS_MOZILLA){event.stopPropagation();} else if(IS_IE&&event){event.cancelBubble=true;} else if(IS_IE&&window.event){window.event.cancelBubble=true;} } function crossbrowser_getKeyCode(event){var key;if(IS_MOZILLA){key=event.which;} else if(IS_IE){key=window.event.keyCode;} return key;} function crossbrowser_getAttribute(anObject,attributeName){var value=(anObject[attributeName])?anObject[attributeName]:anObject.getAttribute(attributeName);return value;} function crossbrowser_removeEvent(element,eventType,eventFunction){if(!eventFunction){return ;} if(IS_MOZILLA){eventType=eventType.substring(2,eventType.length);element.removeEventListener(eventType,eventFunction,false);} else if(IS_IE){element.detachEvent(eventType,eventFunction);} } function crossbrowser_checkBrowser(messageHandler){var isValidBrowser=true;if(navigator.userAgent.indexOf("Firefox")!=-1){var versionindex=navigator.userAgent.indexOf("Firefox")+8 if(parseInt(navigator.userAgent.charAt(versionindex))<2){crossbrowser_buildBrowserAlert("Firefox",messageHandler);isValidBrowser=false;} } else if(navigator.userAgent.indexOf("MSIE")!=-1){var temp=navigator.appVersion.split("MSIE") var version=parseFloat(temp[1]) if(version<6){crossbrowser_buildBrowserAlert("MSIE",messageHandler);isValidBrowser=false;} } else if(navigator.userAgent.indexOf("Safari")!=-1){if(version<3){crossbrowser_buildBrowserAlert("Safari",messageHandler);isValidBrowser=false;} } return isValidBrowser;} function crossbrowser_buildBrowserAlert(browserType,messageHandler){var table=document.createElement("table");table.width="100%";table.cellPadding=0;table.cellSpacing=0;g_cache.popup.editableDiv.appendChild(table);var tbody=document.createElement("tbody");table.appendChild(tbody);var tr=document.createElement("tr");tbody.appendChild(tr);var td=document.createElement("td");td.width=(document.documentElement.clientWidth)?document.documentElement.clientWidth:document.body.clientWidth;td.height=1000;td.style.position="absolute";td.style.backgroundColor="#eeeeee";td.vAlign="middle";td.align="center";tr.appendChild(td);if(browserType=="Firefox"){var element=messageHandler("Firefox","http://www.mozilla.com/en-US/firefox/upgrade");element.style.marginTop=200;td.appendChild(element);} else if(browserType=="MSIE"){var element=messageHandler("Internet Explorer","http://www.microsoft.com/windows/downloads/ie/getitnow.mspx");td.appendChild(element);} else if(browserType=="Safari"){var element=messageHandler("Safari","http://www.apple.com/safari/download");td.appendChild(element);} } function scrambleString(aString){return aString;} function util_isInDom(element){if(!element.parentNode){return false;} else if(element.parentNode.tagName){return true;} else {return false;} } function crossbrowser_getIEVersion(){if(navigator.appName=='Microsoft Internet Explorer'){var rv=-1;var ua=navigator.userAgent;var re=new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");var ver=re.exec(ua)[1];if(ver!=null){rv=ver.charAt(0);} } return rv;} function ajax_ProcessCache(cache,requestHandler){var isAsync=(requestHandler!=null)?true:false;var xmlRequest=ajax_getXMLHttpRequest();var url="ProcessCache.ajax";xmlRequest.open("POST",url,isAsync);xmlRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");xmlRequest.send("cache="+cache);if(!isAsync){do {if(xmlRequest.readyState==4){if(xmlRequest.status==200){ajax_addToCache(xmlRequest.responseText);} } } while(xmlRequest.readyState!=4)} else {xmlRequest.onreadystatechange=function(){if(xmlRequest.readyState==4){if(xmlRequest.status==200){var success=ajax_addToCache(xmlRequest.responseText);if(success){requestHandler();} } } } } } function ajax_addToCache(obj){var errorOccured="error_"+"ocurred" var sessionExpired="session_"+"expired";if(obj==sessionExpired){alert("Your session has expired and you will be re-directed to the home page.");location.reload("");return false;} else if(obj.indexOf(errorOccured)!=-1){if(errorOccured==obj){alert("A problem has occured and we have been notified. Please try again later");} else {alert(obj);} } else {var temp=eval(obj);ajax_updateCache(cache);} return true;} function ajax_updateCache(cache){var recordsById=cache.recordsById;for(var recordId in recordsById) {recordsById[recordId].ownerCache=g_cache;recordsById[recordId].init();g_cache.recordsById[recordId]=recordsById[recordId];} var recordsByName=cache.recordsByName;for(var recordName in recordsByName) {g_cache.recordsByName[recordName]=recordsByName[recordName];} var templates=cache.templates;for(var type in templates) {templates[type].ownerCache=g_cache;g_cache.templates[type]=templates[type];} var dynTables=cache.dynTables;for(var type in dynTables) {dynTables[type].ownerCache=g_cache;dynTables[type].init();g_cache.dynTables[type]=dynTables[type];} var listsByName=cache.listsByName;for(var name in listsByName) {listsByName[name].ownerCache=g_cache;listsByName[name].init();g_cache.listsByName[name]=listsByName[name];} var listsByType=cache.listsByType;for(var type in listsByType) {listsByType[type].ownerCache=g_cache;listsByType[type].init();g_cache.listsByType[type]=listsByType[type];} g_cache.lastUpdate=new Date().getTime();cache=null;} function ajax_doNothing(){} function ajax_getXMLHttpRequest(){var xmlreq=null;if(window.XMLHttpRequest){xmlreq=new XMLHttpRequest();} else if(window.ActiveXObject){try {xmlreq=new ActiveXObject("Msxml2.XMLHTTP");} catch(e) {xmlreq=new ActiveXObject("Microsoft.XMLHTTP");} } else {alert("This browser does not support this feature");} return xmlreq;} function ajax_getReadyStateHandler(xmlRequest,responseXmlHandler){var requestHandler=function(){if(xmlRequest.readyState==4){if(xmlRequest.status==200){responseXmlHandler(xmlRequest.responseText);} else {alert("HTTP error: "+xmlRequest.status);} } } return requestHandler;} var constants_CUSTOM_SCREEN_TABLE_NAME="custom_screens";var constants_JAVASCRIPT_GLOBALS_TABLE_NAME="js_globals";var constants_EDITOR_PATH="editor";var constants_JS_EDITOR_PATH="jseditor";var constants_CACHE_NODE_NAME="cache";var constants_TO_LOAD_NOAD_NAME="to_load";var constants_TO_SAVE_NODE_NAME="to_save";var constants_TO_DELETE_NODE_NAME="to_delete" var constants_TO_ADD_NODE_NAME="to_add";var constans_TO_UPDATE_NODE_NAME="to_update";var constants_PRIMARY_TYPE_ATTRIBUTE="primary_type";var constants_PRIMARY_ID_ATTRIBUTE="id";var constants_DYNTABLES_NODE_NAME="dyntables";var constants_RECORDS_NODE_NAME="records";var constants_LISTS_NODE_NAME="lists";var constants_TABLE_NODE_NAME="table";var constants_NAME_ATTRIBUTE="name";var constants_DISPLAY_NAME_ATTRIBUTE="displayName";var constants_RECORD_NODE_NAME="records";var constans_TYPE_ATTRIBUTE="type" var constants_ID_ATTRIBUTE="id";var contants_FIELD_NODE_NAME="f";var contants_FIELD_TYPE_ATTRIBUTE="type";var contants_NAME_ATTRIBUTE="name";var contants_DISPLAY_NAME_ATTRIBUTE="dn";var contants_DISPLAY_ORDER_ATTRIBUTE="do";var contants_IS_MULTIPLE_ATTRIBUTE="multiple";var contants_VALUE_ATTRIBUTE="value";var contants_NEXT_UNNAMED_CHILD_COUNT_ATTRIBUTE="nucc";var contants_IS_STATIC_ATTRIBUTE="is_static";var constants_LESS_THAN_CHAR="!#"+"lessthanForXml!";var constants_GREATER_THAN_CHAR="!#"+"greaterthanForXml!";var constants_PERCENTAGE_SIGN="!#"+"percentagesing!";var constants_AND_SIGN="!#"+"andsign!";var constants_PLUS_SIGN="!#"+"plussign!";var constants_SPECIFIC_CAT_DEF="specific_category_definition"; function util_isInDom(element){if(!element.parentNode){return false;} else if(element.parentNode.tagName){return true;} else {return false;} } function util_getLength(aList){var counter=0;for(var i in aList) {counter++;} return counter;} function util_replaceAllString(aString,stringValue,replaceString){var re=eval("/"+stringValue+"/g");return aString.replace(re,replaceString);} function util_addUnderlineEvent(element){element.onmouseover=function(){element.style.textDecoration="underline"};element.onmouseout=function(){element.style.textDecoration=""};} var g_processedHtmlForXml=null;function util_formatForXml(value){alert("this function should be used. Please notify Evan");var strForXml=g_processedHtmlForXml;var htmlString=value;htmlString=util_replaceAll(htmlString,"%",constants_PERCENTAGE_SIGN);htmlString=util_replaceAll(htmlString,"&",constants_AND_SIGN);htmlString=util_replaceAll(htmlString,"+",constants_PLUS_SIGN);ajax_getStringForXml(htmlString);var maxTimeTrying=2000;var startTime=new Date();while(null==strForXml&&((new Date()-startTime)");while(scriptStart!=-1&&scriptEnd!=-1) {var scriptString=html.substring(scriptStart,(scriptEnd+9));html=html.replace(scriptString,"");scriptStart=html.indexOf("");} var scriptStart=html.indexOf("");while(scriptStart!=-1&&scriptEnd!=-1) {var scriptString=html.substring(scriptStart,(scriptEnd+9));html=html.replace(scriptString,"");scriptStart=html.indexOf("");} return html;} function util_addHiddenInput(name,value,container){var input=document.createElement("input") input.type="hidden";input.value=value;input.name=name;container.appendChild(input);} function util_clearElement(element){for(var i=element.childNodes.length-1;i>=0;i--) {element.removeChild(element.childNodes[i]);} } function util_openFieldXmlTag(field){var xml=constants_LESS_THAN_CHAR+"f ";xml+="name='"+field.name+"' ";xml+=" dn='"+util_formatForXmlValue(field.displayName);xml+="' type='"+field.TYPE;xml+="' do='"+field.displayOrder+"'";var valueStr=(field.value==null)?">":" value='"+util_formatForXmlValue(field.value)+"'>";xml+=valueStr;return xml;} function util_closeFieldXmlTag(){return constants_LESS_THAN_CHAR+"/f>";} var util_reservedXmlChars=new Array();util_reservedXmlChars["'"]='!#'+'singlequote!';util_reservedXmlChars['<']='!#'+'lessthan!';util_reservedXmlChars['>']='!#'+'greaterthan!';util_reservedXmlChars['"']='!#'+'doublequote!';util_reservedXmlChars['&']='!#'+'andsign!';util_reservedXmlChars['%']='!#'+'percentagesing!';util_reservedXmlChars['+']='!#'+'plussign!';util_reservedXmlChars[' ']=' ';function util_formatValueForHtml(value){if(value==true||value==false){return value;} else if(value==undefined||value==null||value==""){return "";} for(var i in util_reservedXmlChars) {if(i==' '){continue;} value=util_replaceAll(value,util_reservedXmlChars[i],i);} return value;} function util_formatForXmlValue(value){if(value==true||value==false){return value;} else if(value==undefined||value==null||value==""){return "";} value=util_newReplaceAll(value,"'","!#"+"singlequote!");value=util_newReplaceAll(value,"<","!#"+"lessthan!");value=util_newReplaceAll(value,">","!#"+"greaterthan!");value=util_newReplaceAll(value,"\"","!#"+"doublequote!");value=util_newReplaceAll(value,"&","!#"+"andsign!");value=util_newReplaceAll(value,"%","!#"+"percentagesing!");value=util_newReplaceAll(value,"\n","!#"+"breakline!");value=util_newReplaceAll(value,"\\+","!#"+"plussign!");value=util_newReplaceAll(value," "," "); return value;} function util_newReplaceAll(aString,replaceStr,replaceValue){if("string"!=typeof(aString)){return aString;} var rE=new RegExp(replaceStr,"g");return aString.replace(rE,replaceValue);} function util_replaceAll(aString,replaceStr,replaceValue){try {var index=aString.indexOf(replaceStr);} catch(e) {return aString;} while(index>-1) {aString=aString.replace(replaceStr,replaceValue);index=aString.indexOf(replaceStr,index+replaceValue.length);} return aString;} ;;;;var g_types;var g_cache;if(!g_currentDateTime){var g_currentDateTime=new cache_CurrentDateTime();} function core_Cache(primaryType,primaryId,screenType,userHandle,userId,year,month,date,time){if(year){g_currentDateTime.month=month;g_currentDateTime.year=year;g_currentDateTime.date=date;g_currentDateTime.time=time;} this.lastUpdate=new Date().getTime();this.isUpdated=false;this.primaryType=primaryType;this.primaryId=primaryId;this.screenType=screenType;this.userHandle=userHandle;this.userId=userId;this.isUpdated=false;this.typeList=null;this.fieldTypes=null;this.mainDynTable=null;this.mainRecord=null;this.mainList=null;this.recordsById=new Array();this.recordsByName=new Array();this.recordsByKey=new Array();this.dynTables=new Array();this.listsByType=new Array();this.listsByName=new Array();this.templates=new Array();this.dyntablesToDelete=new Array();this.dyntablesToLoad=new Array();this.dyntablesToSave=new Array();this.listsToLoad=new Array();this.recordsByType=new Array();this.recordsToSave=new Array();if(window.pop_Popup){this.popup=(g_cache==null)?new pop_Popup():g_cache.popup;} this.init=function(){cache_init(this);};this.toXml=function(){return cache_toXml(this);};this.loadList=function(type){cache_loadList(type)};this.rebuildScreen=function(){cache_rebuildScreen(this)};this.addListToLoad=function(nameOrType,list){this.listsToLoad[nameOrType]=list;};this.getListByName=function(name){return this.listsByName[name.toLowerCase()];};this.getListByType=function(type){return this.listsByType[type];};this.getRecordToSave=function(type,id){return this.recordsToSave[type+id]};this.getRecordsToSaveOfAType=function(typeName){return cache_getRecordsToSaveOfAType(typeName,this)};this.getChildRecord=function(fieldName,parentRecord){return cache_getChildRecord(fieldName,parentRecord)};this.getRecordById=function(id){var record=(this.recordsById[id]==undefined)?null:this.recordsById[id];return record;} this.getRecordByUniqueId=function(type,id){var record=(this.recordsById[type+id]==undefined)?null:this.recordsById[type+id];return record;} this.getRecordByName=function(name){var recordId=this.recordsByName[name.toLowerCase()];return (recordId!=undefined)?this.getRecordById(recordId):this.getRecordById(name);} this.addRecord=function(record){cache_addRecord(record,this);};this.addRecordToLoad=function(type,id,name){cache_addRecordToLoad(type,id,name,this);};this.addRecordToDelete=function(type,id){cache_addRecordToDelete(type,id,this);};this.addDynTableToDelete=function(type){this.dyntablesToDelete.push(type);};this.addDynTableToSave=function(table){this.dyntablesToSave.push(table);};this.addDynTableToLoad=function(type,loadFull,loadTemplate){if((this.dyntablesToLoad[type]==null||this.dyntablesToLoad[type]==undefined)&&type!=""){this.dyntablesToLoad[type]=new cache_DynTableRequest(type,loadFull,loadTemplate) } } this.getRecordByKey=function(type,fieldName,keyword,name){return cache_getRecordByKey(type,fieldName,keyword,name,this)};this.getTemplate=function(type){return cache_getTemplate(type,this);};this.getRecord=function(type,recordId){return cache_getRecord(type,recordId,this)};this.getList=function(type){return cache_getList(type,this)};this.process=function(requestHandler){cache_process(this,requestHandler)};this.submitCache=function(path,isToSave){cache_submit(path,this)};this.submitCacheNoRefresh=function(){return cache_submitNoRefresh(this)};this.createList=function(type,name,doSave){return cache_createList(this,type,name,doSave)} this.createRecord=function(type){return cache_createRecord(this,type)};this.createMessageSenderRecord=function(){return cache_createMessageSenderRecord(this)};this.clearRecord=function(recordName){cache_clearRecord(recordName)};this.createRecordToProcess=function(recordName){return cache_createRecordToProcess(this,recordName)};this.enableTransaction=function(){cache_EnableTransaction(this);return this;};g_types=this.typeList;return this;} function cache_createRecordToProcess(cache,recordName){var record=new core_Record(recordName,0);record.addName(recordName);record.doProcess=true;cache.addRecord(record);return record;} function cache_clearRecord(recordName){var uniqueId=g_cache.recordsByName[recordName];delete(g_cache.recordsById[uniqueId]);delete(g_cache.recordsByName[recordName]);} var cache_nextMessageId=0;function cache_createMessageSenderRecord(thisObj){cache_nextMessageId--;var record=new core_Record("messageSender",cache_nextMessageId);record.fields.messageSender=new messagesender_MessageSender();record.fields.messageSender.buildChildFields();record.doProcess=true;record.ownerCache=thisObj;record.init();thisObj.addRecord(record);return record;} function cache_getRecordsToSaveOfAType(typeName,thisObj){var recordsToSave=new Array();var recordsOfAType=thisObj.recordsByType[typeName];if(recordsOfAType!=null){for(var recordId in recordsOfAType) {var aRecord=recordsOfAType[recordId];if(aRecord.toSave){recordsToSave.push(aRecord);} } } return recordsToSave;} function cache_getChildRecord(fieldName,parentRecord){var type=parentRecord.getFieldByName(fieldName).selectedType;var id=parentRecord.getFieldByName(fieldName).selectedId;return g_cache.getRecord(type,id);} function cache_loadPresentationRecord(type,id){var path=(type==constants_CUSTOM_SCREEN_TABLE_NAME)?constants_EDITOR_PATH:constants_JS_EDITOR_PATH;var cache=new core_Cache(type,id,path);cache.addRecordToLoad(type,id) cache.primaryId=id;cache.primaryType=path;cache.submitCache(path);} function cache_submitNoRefresh(thisCache){var theForm=document.getElementById("upload_form");theForm.action=globals_webappPath+"/go";util_addHiddenInput("cache",thisCache.toXml(),theForm);try {theForm.submit();return true;} catch(e) {alert("Some files you are trying to submit are not valid. Please select a valid file");return false;} } function cache_submit(path,thisCache){var theForm=document.forms[0];if(null==theForm){theForm=document.createElement("form");theForm.enctype="multipart/form-data";theForm.method="post";} theForm.action=globals_webappPath+"/"+path;util_addHiddenInput("cache",thisCache.toXml(),theForm);theForm.submit();thisCache=null;} function cache_init(thisCache){for(var recordId in thisCache.recordsById) {var record=thisCache.recordsById[recordId];record.ownerCache=thisCache;record.init();} for(var type in thisCache.templates) {thisCache.templates[type].ownerCache=thisCache;} for(var type in thisCache.dynTables) {thisCache.dynTables[type].ownerCache=thisCache;thisCache.dynTables[type].init();} for(var name in thisCache.listsByName) {thisCache.listsByName[name].ownerCache=thisCache;thisCache.listsByName[name].init();} for(var name in thisCache.lists) {thisCache.lists[name].ownerCache=thisCache;thisCache.lists[name].init();} thisCache.mainDynTable=thisCache.dynTables[thisCache.primaryType];thisCache.mainRecord=thisCache.getRecordById(thisCache.primaryType+thisCache.primaryId);thisCache.mainList=thisCache.listsByType[thisCache.primaryType];} function cache_addRecordToDelete(type,id,thisCache){var record=new core_Record(type,id);record.toDelete=true;cache_addRecord(record,thisCache);} function cache_addRecord(record,thisCache){var records;if(thisCache.recordsByType[record.type]==undefined){records=new Array();thisCache.recordsByType[record.type]=records;} else {records=thisCache.recordsByType[record.type];} var existingRecord=records[record.type+record.id];if(existingRecord==null){records[record.type+record.id]=record;} else {existingRecord.addNames(record.names);} } function cache_addRecordToLoad(type,id,name,thisCache){var record=new core_Record(type,id);record.toLoad=true;record.addName(name);var isAdded=false;if(thisCache.recordsByType[type]){isAdded=cache_isRecordOnList(record,thisCache.recordsByType[type]) } if(!isAdded){cache_addRecord(record,thisCache);} } function cache_isRecordOnList(record,addedRecords){var isAdded=false;if(addedRecords[record.type+record.id]){var names=addedRecords[record.type+record.id].names;names=names.concat(record.names);addedRecords[record.type+record.id].toLoad=true;isAdded=true;} return isAdded } function cache_toXml(thisCache){var xml=constants_LESS_THAN_CHAR+"cache primary_type='"+thisCache.primaryType+"' id='"+thisCache.primaryId+"' screen_type='"+thisCache.screenType+"'>";xml+=cache_dynTablesToXml(thisCache);xml+=cache_recordsToToXml(thisCache);xml+=cache_listsToXlm(thisCache);xml+=constants_LESS_THAN_CHAR+"/cache>";return xml;} function cache_dynTablesToXml(thisCache){var xml=constants_LESS_THAN_CHAR+"dyntables>";xml+=constants_LESS_THAN_CHAR+"to_save>";xml+=cache_dyntableToSaveToXml(thisCache);xml+=constants_LESS_THAN_CHAR+"/to_save>";xml+=constants_LESS_THAN_CHAR+"to_load>";xml+=cache_dyntableToLoadToXml(thisCache);xml+=constants_LESS_THAN_CHAR+"/to_load>";xml+=constants_LESS_THAN_CHAR+"to_delete>";xml+=cache_dyntableToDeleteToXml(thisCache);xml+=constants_LESS_THAN_CHAR+"/to_delete>";xml+=constants_LESS_THAN_CHAR+"/dyntables>";return xml;} function cache_dyntableToSaveToXml(thisCache){var xml="";for(tableName in thisCache.dyntablesToSave) {xml+=thisCache.dyntablesToSave[tableName].toXml();} return xml;} function cache_dyntableToLoadToXml(thisCache){var xml="";for(i in thisCache.dyntablesToLoad) {var table=thisCache.dyntablesToLoad[i] xml+=constants_LESS_THAN_CHAR xml+="table name='";xml+=table.name;xml+="' load_full='";xml+=table.loadFull xml+="' load_template='" xml+=table.loadTemplate xml+="'/>";} return xml;} function cache_dyntableToDeleteToXml(thisCache){var xml="";for(var i=0;i";} return xml;} function cache_recordsToToXml(thisCache){var xml=constants_LESS_THAN_CHAR+"records>";for(var type in thisCache.recordsByType) {var records=thisCache.recordsByType[type];if(null==records){continue } for(var recordId in records) {xml+=records[recordId].toXml();} } xml+=constants_LESS_THAN_CHAR+"/records>";thisCache.recordsByType=new Array();return xml;} function cache_listsToXlm(thisCache){var xml=constants_LESS_THAN_CHAR+"lists>";xml+=constants_LESS_THAN_CHAR+"to_load>";for(var nameOrType in thisCache.listsToLoad) {xml+=thisCache.listsToLoad[nameOrType].toXml();} xml+=constants_LESS_THAN_CHAR+"/to_load>";xml+=constants_LESS_THAN_CHAR+"/lists>";return xml;} function cache_process(thisCache,requestHandler){if(null!=g_cache){thisCache.primaryType=g_cache.primaryType;thisCache.primaryId=g_cache.primaryId;thisCache.screenType=g_cache.screenType;} var cacheXml=thisCache.toXml();ajax_ProcessCache(cacheXml,requestHandler);thisCache=null;} function cache_createList(thisCache,type,name,doSave){var list=new core_List(type,[],name);list.createRequiredChildren(doSave);thisCache.addListToLoad(name,list);return list;} function cache_createRecord(thisCache,type){var record=thisCache.getTemplate(type).clone() record.toSave=true;record.ownerCache=thisCache;thisCache.addRecord(record);thisCache.recordsToSave[type+record.id]=record;return record;} function cache_getRecordByKey(type,fieldName,keyword,name,thisCache){var record=g_cache.getRecordByName(name);if(null==record){var cache=new core_Cache('',-1) cache.addRecordToLoadByKey(fieldName,keyword,type,name);cache.process();var maxTimeTrying=2000;var startTime=new Date();while(null==record&&((new Date()-startTime)month){month+=12;year--;} else if(1230&&year<100){year+=1900;} if(this.isValidDate(date,month,year)){if(dateObj!=null){dateObj.date=date;dateObj.month=month;dateObj.year=year;} else {dateObj=new ADate(date,month,year);} return dateObj;} else {return null;} } this.dbFormatToDate=function(str){var dateObj=str.split("-");return new ADate(dateObj[2],dateObj[1],dateObj[0]);} this.getLabel=function(labelKey,index){var labels=this.getLabels(labelKey);if(null==labels){return null;} if(labelKey==this.MONTH_ABBR||labelKey==this.MONTH_STR){index--;} return labels[index];}; this.getLabels=function(labelKey){var labels=this.LABEL_KEYS[labelKey];if(null==labels){return null;} return labels;} this.getMonthDayCount=function(month,year){var dayCounts=[31,-1,31,30,31,30,31,31,30,31,30,31];var dayCount;if(month==2){dayCount=this.isLeapYear(year)?29:28;} else {dayCount=dayCounts[month-1];} return dayCount;} this.getInterval=function(dateObj1,dateObj2){var interval=0;var date1DbFormat=dateObj1.toDbFormat();var date2DbFormat=dateObj2.toDbFormat();var dateA;var dateB;if(date1DbFormatdate2DbFormat){dateA=dateObj2.clone();dateB=dateObj1.clone();} else {return 0;} while(!dateA.equals(dateB)) {interval++;dateA.changeDate(1);} return interval;}; this.TYPE="DATE"; this.EMPTY_DATE="MM/dd/yyyy"; this.SEPARATOR="/"; this.MONTH_POS=1; this.DATE_POS=2; this.YEAR_POS=3; this.NULL_DATE="0000-00-00"; this.LABEL_KEYS=[];{var mAbbr=[];mAbbr.push("Jan");mAbbr.push("Feb");mAbbr.push("Mar");mAbbr.push("Apr");mAbbr.push("May");mAbbr.push("Jun");mAbbr.push("Jul");mAbbr.push("Aug");mAbbr.push("Sep");mAbbr.push("Oct");mAbbr.push("Nov");mAbbr.push("Dec");this.LABEL_KEYS[this.MONTH_ABBR]=mAbbr;} {var months=[];months.push("January");months.push("February");months.push("March");months.push("April");months.push("May");months.push("June");months.push("July");months.push("August");months.push("September");months.push("October");months.push("November");months.push("December");this.LABEL_KEYS[this.MONTH_STR]=months;} {var dAbbrv=[];dAbbrv.push("Sun");dAbbrv.push("Mon");dAbbrv.push("Tue");dAbbrv.push("Wed");dAbbrv.push("Thur");dAbbrv.push("Fri");dAbbrv.push("Sat");this.LABEL_KEYS[this.DAY_ABBR]=dAbbrv;} {var days=[];days.push("Sunday");days.push("Monday");days.push("Tuesday");days.push("Wednesday");days.push("Thursday");days.push("Friday");days.push("Saturday");this.LABEL_KEYS[this.DAY_STR]=days;} {var days=[];days.push("S");days.push("M");days.push("T");days.push("W");days.push("T");days.push("F");days.push("S");this.LABEL_KEYS[this.DAY_LETTER]=days;} this.selectDatePart=function(partNumber,date,month,year){if(partNumber==this.DATE_POS){return this.formatDatePart(date);} else if(partNumber==this.MONTH_POS){return this.formatDatePart(month);} else if(partNumber==this.YEAR_POS){return year;} };this.formatDatePart=function(number){if(number<10){return "0"+number;} return parseInt(number,10);};this.parseDatePart=function(datePart){var i=0;while(datePart.charAt(i)=='0') {i++;} var datePart=datePart.substring(i,datePart.length);return parseInt(datePart,10);}; this.isValidDate=function(date,month,year){if(isNaN(date)||isNaN(month)||isNaN(year)){return false;} if(month<1||month>12){return false;} var daysInMonth=this.getMonthDayCount(month,year);if(date>daysInMonth){return false;} if(year<1000){return false;} return true;}; this.isLeapYear=function(year){if(((year%4)==0)&&((year%100)!=0)||((year%400)==0)){return true;} else {return false;} };this.initDateFormat=function(){try {var dateFormat=g_sessionInformation.settings.date_format;this.EMPTY_DATE=dateFormat.empty_date;this.SEPARATOR=dateFormat.separator;this.DATE_POS=dateFormat.date_pos;this.MONTH_POS=dateFormat.month_pos;this.YEAR_POS=dateFormat.year_pos;} catch(e) {} };this.initDateFormat();}; String.prototype.trim=function(){return trim(this)};String.prototype.safeGetValue=function(val,defVal){return safeGetValue(val,defVal)};String.prototype.escapeStrForSave=function(){return escapeStrForSave(this)};String.prototype.unescapeStrFromLoad=function(){return unescapeStrFromLoad(this)};String.prototype.escapeStrForXml=function(){return escapeStrForXml(this)};String.prototype.unescapeStrFromXml=function(){return unescapeStrFromXml(this)};String.prototype.sc={"\\":"\\\\","(":"\\(","^":"\\^","$":"\\$",".":"\\.","|":"\\|","?":"\\?","*":"\\*","+":"\\+",")":"\\)"};String.prototype.equals=function(value){return value==this;};String.prototype.replaceAll=function(replaceVal,replaceWith){try {var sc=this.sc for(var aChar in this.sc) {var rChar=sc[aChar];replaceVal=replaceVal.replace(aChar,rChar);} return this.replace(new RegExp(replaceVal,"g"),replaceWith);} catch(e) {return this.replace(new RegExp(replaceVal,"g"),replaceWith);} } function trim(str){var str=str.replace(/^\s\s*/,'');var ws=/\s/;var i=str.length;while(ws.test(str.charAt(--i))){};return str.slice(0,i+1);} function safeGetValue(val,defVal){if(null!=val){return val;} return defVal;} function escapeStrForSave(strSrc){if(null==strSrc){return null;} var strRet=strSrc;strRet=strRet.replace(new RegExp("[+]","g"),"!@!plus!@!");strRet=strRet.replace(new RegExp("[\n]","g"),"!@!newline!@!");return strRet;} function unescapeStrFromLoad(strSrc){if(null==strSrc){return null;} var strRet=strSrc;strRet=strRet.replace(new RegExp("!@!plus!@!","g"),"+");strRet=strRet.replace(new RegExp("!@!newline!@!","g"),"\n");return strRet;} function escapeStrForXml(strSrc){if(null==strSrc){return null;} var strRet=strSrc;strRet=strRet.replace(new RegExp("[&]","g"),"&");strRet=strRet.replace(new RegExp("[']","g"),"'");strRet=strRet.replace(new RegExp("[\"]","g"),""");strRet=strRet.replace(new RegExp("[<]","g"),"<");strRet=strRet.replace(new RegExp("[>]","g"),">");return strRet;} function unescapeStrFromXml(strSrc){if(null==strSrc){return null;} var strRet=strSrc;strRet=strRet.replace(new RegExp("&","g"),"&");strRet=strRet.replace(new RegExp("'","g"),"'");strRet=strRet.replace(new RegExp(""","g"),"\"");strRet=strRet.replace(new RegExp("<","g"),"<");strRet=strRet.replace(new RegExp(">","g"),">");return strRet;} ;;function ADate(date,month,year){try {this.date=parseInt(date,10);this.month=parseInt(month,10);this.year=parseInt(year,10);} catch(e) {this.date=date;this.month=month;this.year=year;} };ADate.prototype=new ADateBase();function ADateBase(){ this.getDayIndex=function(){var aDate=new Date(this.year,this.month-1,this.date);return aDate.getDay();}; this.toDbFormat=function(){if(!ADateUtil.isValidDate(this.date,this.month,this.year)){return ADateUtil.NULL_DATE;} return this.year+"-"+ADateUtil.formatDatePart(this.month)+"-"+ADateUtil.formatDatePart(this.date);}; this.update=function(dateStr){return ADateUtil.stringToDate(dateStr,this);}; this.getString=function(params){if(null==params||params.length<1){return this.toDefaultString();} var monthStr="";var monthPos=-1;var dateStr="";var datePos=-1;var fullStr="";for(var i=0;i-1){fullStr=fullStr.replace(usDateFormat,this.toDefaultString());} else {var isDefaultMonthFirst=(ADateUtil.MONTH_POS0&&fullStr.indexOf("!monthStr")>0){fullStr=fullStr.replaceAll("!dateStr!",monthStr);fullStr=fullStr.replaceAll("!monthStr!",dateStr);} else {fullStr=fullStr.replaceAll("!monthStr!",monthStr);fullStr=fullStr.replaceAll("!dateStr!",dateStr);} } else {fullStr=fullStr.replaceAll("!dateStr!",dateStr);fullStr=fullStr.replaceAll("!monthStr!",monthStr);} } return fullStr;}; this.changeDate=function(numberOfDays){numberOfDays=parseInt(numberOfDays,10);if(0==numberOfDays){return this;};var dayOfYear=numberOfDays;var isLeapYear=ADateUtil.isLeapYear(this.year);var daysInYear=(isLeapYear)?366:365;var daysInFebruary=(isLeapYear)?29:28;var dayCounts=[0,31,daysInFebruary,31,30,31,30,31,31,30,31,30,31];for(var i=1;idaysInYear) {dayOfYear=dayOfYear-daysInYear;this.year=this.year+1;isLeapYear=ADateUtil.isLeapYear(this.year);daysInYear=(isLeapYear)?366:365;} while(dayOfYear<=0) {isLeapYear=ADateUtil.isLeapYear(this.year-1);daysInYear=(isLeapYear)?366:365;dayOfYear=daysInYear+dayOfYear;this.year=this.year-1;} daysInFebruary=(isLeapYear)?29:28;dayCounts=[0,31,daysInFebruary,31,30,31,30,31,31,30,31,30,31];for(var i=1;i=dayOfYear){this.month=i;this.date=dayOfYear;break;} dayOfYear-=dayCount;} return this;}; this.clone=function(){return new ADate(this.date,this.month,this.year);}; this.getNextDate=function(){var nextDate=this.clone();nextDate.changeDate(1);return nextDate;}; this.getPreviousDate=function(){var nextDate=this.clone();nextDate.changeDate(-1);return nextDate;}; this.equals=function(otherDate){return ((this.year==otherDate.year)&&(this.month==otherDate.month)&&(this.date==otherDate.date));}; this.isLessThan=function(otherDate){return ((this.year59||isNaN(minute)||isNaN(hour)){return -1;} var timeOffset;if(this.TIME_FORMAT==24){if(hour<0||hour>23){return -1;} timeOffset=this.to24HrToOffset(hour,minute);} else {if(hour<1||hour>12){return -1;} isPM=("p"==result[4])?true:false;timeOffset=this.to12HrToOffset(hour,minute,isPM);} return timeOffset;}; this.offsetTo12Hr=function(offset){if(offset>=0&&offset<60){return "12:"+this.ensureTwoDigits(offset)+"AM";} else if(offset>=60&&offset<720){var hour=Math.floor(offset/60);var minute=offset%60;return hour+":"+this.ensureTwoDigits(minute)+"AM";} else if(offset>=720&&offset<780){var minute=offset%60;return "12:"+this.ensureTwoDigits(minute)+"PM";} else if(offset>=780&&offset<1440){offset-=12*60;var hour=Math.floor(offset/60);var minute=offset%60;return hour+":"+this.ensureTwoDigits(minute)+"PM";} } this.offsetTo24Hr=function(offset){var hour=Math.floor(offset/60);var minute=offset%60;return this.ensureTwoDigits(hour)+":"+this.ensureTwoDigits(minute);} this.ensureTwoDigits=function(number){var numberStr=number.toString() var dot=numberStr.indexOf(".");if(dot!=-1){number=parseInt(numberStr.substring(0,dot),10);} if(number<10){return "0"+number;} return number;};this.to12HrToOffset=function(hour,minute,isPM){var minuteOffset=hour*60+minute;if(isPM){minuteOffset+=60*12;} if(hour==12){minuteOffset-=60*12;} return minuteOffset;};this.to24HrToOffset=function(hour,minute){return hour*60+minute;};this.initTimeFormat=function(){try {this.TIME_FORMAT=g_sessionInformation.settings.time_format;} catch(e) {} };this.isValidValue=function(value){return (this.validValues[value.toLowerCase()]) };this.initTimeFormat();this.validValues={closed:true};} ;function ATime(minuteOffset){this.minuteOffset=minuteOffset;} ATime.prototype=new ATimeBase();function ATimeBase(){ this.getString=function(){var timeStr=ATimeUtil.timeToString(this.minuteOffset);return timeStr;}; this.toDbString=function(){return ATimeUtil.ensureTwoDigits(this.getHour())+":"+ATimeUtil.ensureTwoDigits(this.getMinute())+":00";}; this.clone=function(){return new ATime(this.minuteOffset);}; this.getHour=function(){return Math.floor(this.minuteOffset/60);}; this.getMinute=function(){return this.minuteOffset%60;}; this.changeTime=function(noOfMinutes){this.minuteOffset+=noOfMinutes;if(this.minuteOffset>=1440){this.minuteOffset=1439;} else if(this.minuteOffset<0){this.minuteOffset=0;} return this;}; this.equals=function(time){return this.minuteOffset==time.minuteOffset;}; this.isLessThan=function(time){return this.minuteOffsettime.minuteOffset;}; this.isGreaterThanEqual=function(time){return this.minuteOffset>=time.minuteOffset;}; this.update=function(timeStr){return ATimeUtil.stringToTime(timeStr,this);}; this.timeToString=function(){var timeStr=ATimeUtil.timeToString(this.minuteOffset);return timeStr;};}; ;;mc_fieldTypeExtenders["TIMESTAMP"]=function(dynField){var timeObj=dynField.getValue().date_time.time;if(null!=timeObj){for(var i in ATime.prototype) {timeObj[i]=ATime.prototype[i];};};var dateObj=dynField.getValue().date_time.date;if(null!=dateObj){for(var i in ADate.prototype) {dateObj[i]=ADate.prototype[i];} };dynField.forceSave=true;dynField.getDate=function(){return this.getValue().date_time.date;};dynField.getTime=function(){return this.getValue().date_time.time;};}; mc_fieldTypeExtenders["FILE2"]=function(dynField){extendField(dynField,f2_file2Base);} var f2_file2Base=new File2Base();function File2Base(){this.getImagePath=function(width,height,allowSizingUp,fitType){var path=this.data.full_path var params=ImageUtil.parseQueryString(path);if(width){params["w"]=width;} if(height){params["h"]=height;} if(allowSizingUp){params["u"]=allowSizingUp;} if(fitType){params["f"]=fitType;} var cleanSrc=ImageUtil.getUrlWithNoParams(path);var newPath=cleanSrc+"?"+ImageUtil.createQueryString(params);return newPath;} this.setImageRotation=function(rotateCount){var path=this.getOriginalPath()+"?r="+rotateCount;this.getChildField("full_path").setValue(path);}; this.incrementRotation=function(rotateCount){var path=this.getChildField("full_path").getValue();var index=path.indexOf("?r=");var newRotation;if(-1==index){newRotation=rotateCount;} else {var current=parseInt(path.charAt(index+3));newRotation=(current+rotateCount)%4;} this.setImageRotation(newRotation);return newRotation;} this.getOriginalPath=function(){var fullPath=this.getChildField("full_path").getValue();var end=fullPath.indexOf("?");if(-1==end){return fullPath;} else {return fullPath.substring(0,end);} };} mc_fieldTypeExtenders["DATETIME"]=function(dynField){extendField(dynField,mc_dateTimeBase);var timeObj=dynField.getValue().time;if(null!=timeObj){for(var i in ATime.prototype) {timeObj[i]=ATime.prototype[i];};} var dateObj=dynField.getValue().date;if(null!=dateObj){for(var i in ADate.prototype) {dateObj[i]=ADate.prototype[i];} } } var mc_dateTimeBase=new DateTimeBase();function DateTimeBase(){this.setDate=function(date){this.data.date=date;this.setDoSave();};this.setTime=function(time){this.data.time=time;this.setDoSave();};this.getString=function(){var dateTime=this.getValue();return dateTime.date.getString()+" "+dateTime.time.getString();};} mc_fieldTypeExtenders["NAME"]=function(dynField){extendField(dynField,name_nameBase);} var name_nameBase=new NameBase();function NameBase(){this.getFirstMiddleLast=function(){return this.data.first_name+" "+this.data.middle_name+" "+this.data.last_name;};this.toString=function(lastNameFirst){var nameObj=this.getValue();if(lastNameFirst){return nameObj.last_name+", "+nameObj.first_name } else {return nameObj.first_name+" "+nameObj.last_name } };} ;;;;;mc_fieldTypeExtenders["USERSTAMP"]=function(dynField){dynField.forceSave=true;} mc_fieldTypeExtenders["C3"]=function(dynField){dynField.setDisplayValue=function(displayValue){var optionValue=null;var options=this.getChildField("category_definition.category_definition.options").data;for(var i in options) {if(displayValue==options[i]){optionValue=i;break;} } if(optionValue){this.getChildField("value").setValue(optionValue);} } } mc_fieldTypeExtenders["RECORD_TYPE"]=function(dynField){dynField.getRecord=function(){var mc=this.ownerRecord.ownerCache;return mc.getRecord(this.getChildField("type").getValue(),this.getChildField("id").getValue());} dynField.createNewRecord=function(){var mc=this.ownerRecord.ownerCache;var record=mc.createRecord(this.getChildField("type").getValue());this.getChildField("id").setValue(record.id);return record;};} mc_fieldTypeExtenders["RECORD_NAME"]=function(dynField){dynField.setValue=function(value){this.getChildField("recordName").setValue(value);};dynField.getValue=function(){return this.getChildField("recordName").getValue();};} mc_fieldTypeExtenders["ARRAY"]=function(dynField){dynField.clear=function(){var length=this.getChildFieldNames().length;for(var i=length-1;i>=0;i--) {this.removeChildField(i);} } } mc_fieldTypeExtenders["DATE"]=function(dynField){var dateObj=dynField.getValue();if(null==dateObj){return ;} if(window["ADate"]==undefined){return } for(var i in ADate.prototype) {dateObj[i]=ADate.prototype[i];} };mc_fieldTypeExtenders["TIME_TYPE_NAME"]=function(dynField){var timeObj=dynField.getValue();if(null==timeObj){return ;} if(window["ATime"]==undefined){return } for(var i in ATime.prototype) {timeObj[i]=ATime.prototype[i];} }; ;;function DynField(name,data,metaData,parentField,ownerRecord){this.name=name this.data=data;this.metaData=metaData;this.parentField=parentField;this.ownerRecord=ownerRecord;addExentsions(this);};DynField.prototype=new DynFieldBase();function DynFieldBase(){ this.buildField=function(parentEl,converterName,properties){var fieldType=this.getFieldType();var conversionFx=mc_objectToHtmlFxByType[converterName][fieldType];if(!conversionFx){var doc=(properties&&properties.doc)?properties.doc:document;var div=cE("div",parentEl,doc);div.innerHTML="no for drawing type: "+fieldType+" with converter '"+converterName+"'";return ;} return conversionFx(parentEl,this,properties);};this.getChildField=function(fieldName){fieldName+="";var ownerRecord=this.ownerRecord;var dotIndex=fieldName.indexOf(".");if(this.data[fieldName]||-1==dotIndex){if("RECORD_TYPE"==this.getFieldType()&&fieldName!="id"&&fieldName!="type"&&fieldName!="createRecord"&&fieldName!="deleteRecord"){if(ownerRecord.isTemplate){var template=ownerRecord.ownerCache.getTemplate(this.data.type);if(null==template){alert("The template for "+this.data.type+" is not loaded. Please add it to load");return null;} return ownerRecord.ownerCache.getTemplate(this.data.type).getField(fieldName);} else {var record=ownerRecord.ownerCache.getRecord(this.data.type,this.data.id);if(null==record){return null;} return record.getField(fieldName);} } else {if(!this.metaData[fieldName+"_ft"]){return null;} return new DynField(fieldName,this.data[fieldName],this.metaData[fieldName],this,ownerRecord);} } else {var field=this.getChildField(fieldName.substring(0,dotIndex));if(null==field){return null;} return field.getChildField(fieldName.substring(dotIndex+1,fieldName.length));} };this.addChildField=function(fieldName,fieldType,value,displayName,displayOrder){var newField=this.addChildFieldData(fieldName,fieldType,value,displayName,displayOrder);var liveField=this.getLiveField();if(liveField){newField=liveField.addChildFieldData(fieldName,fieldType,value,displayName,displayOrder);} return newField;};this.addChildFieldData=function(fieldName,fieldType,value,displayName,displayOrder){var metaValue;if(!value){var defaultData=mc_typeToDefaultValue[fieldType]();value=defaultData.data;metaValue=defaultData.metaData;} else {metaValue=value;} if("ARRAY"==this.getFieldType()){fieldName=this.data.length;this.data.push(clone(value));var metaData=this.metaData;metaData[fieldName]=clone(metaValue);metaData[fieldName+"_ft"]=fieldType;metaData[fieldName+"_dn"]=displayName;metaData[fieldName+"_do"]=displayOrder?displayOrder:-1;} else {this.data[fieldName]=clone(value);var metaData=this.metaData;metaData[fieldName]=clone(metaValue);metaData[fieldName+"_ft"]=fieldType;metaData[fieldName+"_dn"]=displayName?displayName:'';metaData[fieldName+"_do"]=displayOrder?displayOrder:-1;} var childField=this.getChildField(fieldName);childField.setDoSave();return childField;};this.getFullFieldName=function(){var fieldName=this.name;var aField=this.parentField;while(aField) {fieldName=aField.name+"."+fieldName;aField=aField.parentField;} return fieldName;} this.insertChildField=function(fieldName,fieldType,field,displayName,displayOrder){field.parentField=this;field.ownerRecord=this.ownerRecord;if("ARRAY"==this.getFieldType()){fieldName=this.data.length;this.data.push(field.data);var metaData=this.metaData;metaData[fieldName]=field.metaData;metaData[fieldName+"_ft"]=fieldType;metaData[fieldName+"_dn"]=displayName;metaData[fieldName+"_do"]=displayOrder?displayOrder:-1;metaData[fieldName+"_uit"]="" } else {field.name=fieldName;this.data[fieldName]=field.data;var metaData=this.metaData;metaData[fieldName]=field.metaData;metaData[fieldName+"_ft"]=fieldType;metaData[fieldName+"_dn"]=displayName?displayName:'';metaData[fieldName+"_do"]=displayOrder?displayOrder:-1;metaData[fieldName+"_uit"]="" } var childField=this.getChildField(fieldName);childField.setDoSave();return childField;};this.renameChild=function(newName,previousName){var oldField=this.getChildField(previousName);var fieldType=oldField.getFieldType();var displayName=oldField.getDisplayName();var displayOrder=oldField.getDisplayOrder();var newChild=oldField.cloneField();this.removeChildField(previousName);return this.insertChildField(newName,fieldType,newChild,displayName,displayOrder);};this.cloneField=function(){var data=clone(this.data);var metaData=clone(this.metaData);return new DynField(this.name,data,metaData,null,null);} this.removeChildField=function(fieldName){this.removeChildFieldData(fieldName);var liveField=this.getLiveField();if(liveField){liveField.removeChildFieldData(fieldName);} };this.removeChildFieldData=function(fieldName){if("ARRAY"==this.getFieldType()){var index=parseInt(fieldName);var originalLength=this.data.length;this.data.splice(index,1);var metaData=this.metaData;delete(metaData[index]);delete(metaData[index+"_ft"]);delete(metaData[index+"_dn"]);delete(metaData[index+"_do"]);delete(metaData[index+"_ds"]);delete(metaData[index+"_uit"]);for(var i=index;i=this.id){var ids=mc_tempToRealId[this.type];if(ids){return ids[this.id]||this.id;} else {return this.id;} } return this.id;} this.getField=function(fieldName){var dotIndex=fieldName.indexOf(".");if(-1==dotIndex){if(typeof(this.metaData[fieldName])!="undefined"){return new DynField(fieldName,this.data[fieldName],this.metaData[fieldName],null,this);} else {return null;} } else {var field=this.getField(fieldName.substring(0,dotIndex));return field.getChildField(fieldName.substring(dotIndex+1,fieldName.length));} };this.addField=function(fieldName,fieldType,displayName,displayOrder){var defaultData=mc_typeToDefaultValue[fieldType]();this.data[fieldName]=clone(defaultData.data);var metaData=this.metaData;metaData[fieldName]=clone(defaultData.metaData);metaData[fieldName+"_ft"]=fieldType;metaData[fieldName+"_dn"]=displayName?displayName:'';metaData[fieldName+"_do"]=displayOrder?displayOrder:-1;return this.getField(fieldName);};this.addName=function(name){this.ownerCache.addRecordName(this,name);};this.insertField=function(fieldName,fieldType,field,displayName,displayOrder){field.ownerRecord=this;this.data[fieldName]=field.data;var metaData=this.metaData;metaData[fieldName]=field.metaData;metaData[fieldName+"_ft"]=fieldType;metaData[fieldName+"_dn"]=displayName?displayName:'';metaData[fieldName+"_do"]=displayOrder?displayOrder:-1;return this.getField(fieldName);};this.replaceField=function(fieldName,dynField){var replacedField=this.insertField(fieldName,dynField.getFieldType(),dynField,dynField.getDisplayName(),dynField.getDisplayOrder());replacedField.setDoSave();return replacedField;} this.setDoSave=function(){if(this.metaData.doProcess){return ;} this.metaData.doSave=true;this.setDoLoad();};this.isSetDoSave=function(){return this.metaData.doSave;};this.cancelSave=function(){this.ownerCache.cancelRecordToLoad(this.type,this.id);this.metaData.doSave=false;};this.setDoLoad=function(){this.ownerCache.addRecordToLoad(this.type,this.id);};this.getFieldNames=function(){return mc_getFieldNames(this.metaData);};this.getRefreshed=function(){return this.ownerCache.getRecord(this.type,this.id);};this.resetMetaInfo=function(value,suffix){var fieldNames=this.getFieldNames();for(var i=0;i";form=document.getElementById("uploadForm");var inputs=document.body.getElementsByTagName("input");for(var i=inputs.length-1;i>=0;i--) {var input=inputs[i];if(input.type.toLowerCase()!="file"){continue;} var removed=input.parentNode.removeChild(input);aE(form,removed);} var input=document.createElement("input") input.type="hidden";input.name="cache";input.id="mc_cache";form.appendChild(input);input.value=xml;mc_onAfterProcessIFrameFx=function(responseText){var uploadElements=document.getElementById("uploadElements");uploadElements.parentNode.removeChild(uploadElements);if(!mc_isResponseValid(responseText)){return ;} mc_setXmlResponseInto(miniCache,responseText,"from upload cache");if(onAfterProcessFx){onAfterProcessFx();} };form.submit();} var mc_onAfterProcessIFrameFx;function mc_setXmlResponseInto(miniCache,responseText,errorInfo){try {eval(responseText);} catch(e) {if(!errorInfo){errorInfo="";} alert("error receiving data: "+errorInfo);return ;} mc_updateData(miniCache,miniCacheData);if(miniCache.doSyncToMaster){mc_updateData(getMasterCache(),miniCacheData);} } function mc_isResponseValid(obj){var errorOccured="error_"+"ocurred";var sessionExpired="session_"+"expired";if(obj==sessionExpired){alert("Your session has expired and you will be re-directed to the home page.");location.reload("");return false;} if(obj.indexOf(errorOccured)==0){if(errorOccured==obj){alert("A problem has occured and we have been notified. Please try again later");} else {alert(obj);} return false;} return true;} function mc_updateData(miniCache,miniCacheData){mc_updateIds(miniCache,miniCacheData);copyData(miniCacheData.records_by_key,miniCache.records_by_key);var recordTypes=miniCacheData.records;var mcRecordTypes=miniCache.records;for(var i in recordTypes) {if(!mcRecordTypes[i]){mcRecordTypes[i]=clone(recordTypes[i]);} else {copyData(recordTypes[i],mcRecordTypes[i]);} } var recordTypes=miniCacheData.record_meta_data;var mcRecordTypes=miniCache.record_meta_data;for(var i in recordTypes) {if(!mcRecordTypes[i]){mcRecordTypes[i]=clone(recordTypes[i]);} else {copyData(recordTypes[i],mcRecordTypes[i]);} } copyData(miniCacheData.lists,miniCache.lists);copyData(miniCacheData.templates,miniCache.templates);copyData(miniCacheData.template_meta_data,miniCache.template_meta_data);copyData(miniCacheData.dyn_tables,miniCache.dyn_tables);copyData(miniCacheData.temp_to_real_id,mc_tempToRealId);copyData(miniCacheData.values,miniCache.values);} function mc_updateIds(miniCache,miniCacheData){var records=miniCache.records;var recordMetaData=miniCache.record_meta_data;for(var i in miniCacheData.temp_to_real_id) {if(!records[i]){continue;} var idMap=miniCacheData.temp_to_real_id[i];for(var j in idMap) {var recordsOfType=records[i];var recordMetaDataOfType=recordMetaData[i];if(recordsOfType[j]){var newId=idMap[j];recordsOfType[newId]=recordsOfType[j];recordMetaDataOfType[newId]=recordMetaDataOfType[j];delete(recordMetaDataOfType[j]);delete(recordsOfType[j]);} } } } function copyData(dataHolder,destinationHolder){for(var i in dataHolder) {destinationHolder[i]=clone(dataHolder[i]);} } function mcs_createCacheXml(miniCache){var xml=constants_LESS_THAN_CHAR+"cache>";xml+=mcs_appendRecordsXml(miniCache);xml+=mcs_appendDynTablesXml(miniCache);xml+=constants_LESS_THAN_CHAR+"/cache>";return xml;} function mcs_appendDynTablesXml(miniCache){var xml=constants_LESS_THAN_CHAR+"dyntables>";xml+=constants_LESS_THAN_CHAR+"to_save>";var dynTables=miniCache.dyn_tables;for(var i in dynTables) {var dynTable=miniCache.getDynTable(i);if(dynTable.settings.doSave){xml+=mcs_appendDynTableXml(dynTable);} } xml+=constants_LESS_THAN_CHAR+"/to_save>";xml+=mcs_appendTablesToDeleteXml(miniCache);xml+=constants_LESS_THAN_CHAR+"/dyntables>";return xml;} function mcs_appendTablesToDeleteXml(miniCache){var tablesToDelete=miniCache.tables_to_delete;if(tablesToDelete.length==0){return "";} var xml=constants_LESS_THAN_CHAR+"to_delete>";for(var i=0;i";} xml+=constants_LESS_THAN_CHAR+"/to_delete>";return xml;} function mcs_appendDynTableXml(dynTable){var xml=constants_LESS_THAN_CHAR+"table";xml+=" name='"+dynTable.type;xml+="' dn='"+dynTable.settings.singularName+"'>";xml+=mcs_appendTableFieldsToDelete(dynTable);xml+=mcs_appendTableFieldsToSave(dynTable);xml+=mcs_appendTableSettings(dynTable);xml+=constants_LESS_THAN_CHAR+"/table>";return xml;} function mcs_appendTableFieldsToDelete(dynTable){var deleteXml="";var fieldsToDelete=dynTable.settings.fieldsToDelete;for(var i in fieldsToDelete) {deleteXml+=constants_LESS_THAN_CHAR+"f name='"+fieldsToDelete[i]+"'/>";} delete(dynTable.settings.fieldsToDelete);if(""==deleteXml){return "";} var xml=constants_LESS_THAN_CHAR+"to_delete>";xml+=deleteXml;xml+=constants_LESS_THAN_CHAR+"/to_delete>";return xml;} function mcs_appendTableSettings(dynTable){var xml=constants_LESS_THAN_CHAR+"settings>";xml+=constants_LESS_THAN_CHAR+"f ";xml+=" type='"+"DYNTABLE_SETTINGS"+"'>";var settings=dynTable.settings;delete(settings.doSave);for(var i in settings) {xml+=constants_LESS_THAN_CHAR+"f ";xml+="name='"+i;xml+="' type='"+"TEXT";xml+="' value='"+util_formatForXmlValue(settings[i])+"'/>";} xml+=constants_LESS_THAN_CHAR+"/f>";xml+=constants_LESS_THAN_CHAR+"/settings>";return xml;} function mcs_appendTableFieldsToSave(dynTable){var xml="";var fieldNames=mc_getFieldNames(dynTable.metaData);for(var i in fieldNames) {var field=dynTable.getField(fieldNames[i]);if(field.getMetaInfo("ds")){xml+=mcs_appendFieldXml(field);} } if(""==xml){return "";} return constants_LESS_THAN_CHAR+"to_save>"+xml+constants_LESS_THAN_CHAR+"/to_save>";} function mcs_appendRecordsXml(miniCache){var xml=constants_LESS_THAN_CHAR+"records>";var recordsMetaData=miniCache.record_meta_data;for(var type in recordsMetaData) {var records=recordsMetaData[type];for(var id in records) {var record=miniCache.getRecord(type,id);xml+=mcs_appendRecordXml(record);} } xml+=constants_LESS_THAN_CHAR+"/records>";return xml;} function mcs_appendRecordXml(record){var xml="";if(!record.metaData.doSave&&!record.metaData.doProcess){return xml;} xml+=constants_LESS_THAN_CHAR+"record type='"+record.type+"'";if(record.metaData.doSave){xml+=" do_save='true' ";} if(record.metaData.doProcess){xml+=" do_process='true' ";} xml+="id='"+record.id+"'>";var fieldNames=record.getFieldNames();var fieldXml="";for(var i=0;i0){return "";} xml+=fieldXml+constants_LESS_THAN_CHAR+"/record>" record.metaData.doSave=false;return xml;} function mcs_appendFieldXml(dynField){var fieldType=dynField.getFieldType();var xml=constants_LESS_THAN_CHAR+"f ";xml+="name='"+dynField.name;xml+="' dn='"+util_formatForXmlValue(dynField.getMetaInfo("dn"));xml+="' type='"+fieldType;xml+="' do='"+dynField.getMetaInfo("do");xml+="' uit='"+dynField.getUiType();xml+="' value='"+vfc_getValue(dynField)+"'";var childFieldNames=mc_getFieldNames(dynField.metaData);var chidFieldCount=childFieldNames.length;if(0==chidFieldCount){xml+="/>";return xml;} else {xml+=">";for(var i=0;i";return xml;} } function createListInput(type,name,startRecord,max,sortField,sortDirection){startRecord=startRecord||0;max=max||-1;sortDirection=sortDirection||"asc";name=name||"temp";var listInput=new DynField(null,{},{},null,null);listInput.addChildField("record_type","TEXT",type);listInput.addChildField("name","TEXT",name);listInput.addChildField("start_record","INTEGER",startRecord);listInput.addChildField("max_record_count","INTEGER",max);listInput.addChildField("fields_to_load","TEXT","");listInput.addChildField("sort_field","TEXT",sortField);listInput.addChildField("sort_direction","TEXT",sortDirection);listInput.addChildField("search_criteria","ARRAY");extendField(listInput,g_listInputBase);return listInput;} function turnIntoListInput(field){extendField(field,g_listInputBase);return field;} var g_listInputBase=new ListInputBase();function ListInputBase(){this.addField=function(fieldName){var fieldsToLoad=this.getChildField("fields_to_load");fieldsToLoad.setValue(fieldsToLoad.getValue()+fieldName+",");return this;};this.setMax=function(max){this.getChildField("max_record_count").setValue(max);};this.setSortField=function(sortField){this.getChildField("sort_field").setValue(sortField);};this.setStartRecord=function(startRecord){this.getChildField("start_record").setValue(startRecord);};this.setSortDirection=function(sortDirection){this.getChildField("sort_direction").setValue(sortDirection);};this.addSearchTerm=function(fieldName,value,searchType,groupName){var searchCriteria=this.getChildField("search_criteria");var criteria=searchCriteria.addChildField(null,"COLLECTION");criteria.addChildField("criteria_type","TEXT","search_term");criteria.addChildField("field_name","TEXT",fieldName);criteria.addChildField("value","TEXT",value);criteria.addChildField("search_type","INTEGER",searchType);var position=this.getChildField("search_criteria").getChildFieldNames().length;criteria.addChildField("position","INTEGER",position);if(null==groupName){groupName="";} criteria.addChildField("group","TEXT",groupName);return criteria;};this.addOrSearchTerm=function(fieldName,value,searchCriteria,groupName){var criteria=this.addSearchTerm(fieldName,value,searchCriteria);if(null==groupName){groupName="";} criteria.addChildField("group","TEXT",groupName);var position=this.getChildField("search_criteria").getChildFieldNames().length;criteria.addChildField("position","INTEGER",position);criteria.addChildField("is_or","BOOLEAN",true);};this.addConditional=function(fieldName,value,conditionalType){var searchCriteria=this.getChildField("search_criteria");var criteria=searchCriteria.addChildField(null,"COLLECTION");criteria.addChildField("criteria_type","TEXT","conditional");criteria.addChildField("field_name","TEXT",fieldName);criteria.addChildField("value","TEXT",value);criteria.addChildField("conditional_type","INTEGER",conditionalType);};this.addDateConditional=function(fieldName,value,conditionalType){alert("need to implement");};this.cloneField=function(){var newListInput=createListInput();newListInput.data=clone(this.data);newListInput.metaData=clone(this.metaData);return newListInput;};this.getSortFieldName=function(){return this.getChildField("sort_field").getValue();};this.getSearchCriteria=function(fieldName){var criteria=[];var searchCriteria=this.getChildField("search_criteria");var childNames=searchCriteria.getChildFieldNames();for(var i=0;ivalue2){return 1;} else if(value1"));} else if(window.showMessage){showMessage(errMsg.replaceAll("\n","
"));} else {alert(errMsg);} };this.resetErrors=function(){this.hasErrors=false;this.errorList={};this.errors=[];};this.addToErrorList=function(type,element){this.hasErrors=true;var errorListByType=this.errorList[type];if(null==errorListByType){errorListByType=[];this.errorList[type]=errorListByType;} errorListByType.push(element);};};if(null==ValidationUtil){var ValidationUtil=new ValidationHandler();} var KeyCodeUtil=new KeyCodeUtilBase();function KeyCodeUtilBase(){this.getTranslation=function(keyCode){var trans=this.KEY_CODE_TRANSLATOR[keyCode];return trans;};this.cancelPressKey=function(event){if(null!=event.stopPropagation){event.stopPropagation();event.preventDefault();} else {window.event.returnValue=false;window.event.cancelBubble=true;} return null;};this.isNumeric=function(event){var keyCode=this.getKeyCode(event);if(keyCode>=48&&keyCode<=57){return true;} return false;};this.isAlphabetic=function(event){var keyCode=this.getKeyCode(event);if((keyCode>=65&&keyCode<=90)||(keyCode>=97&&keyCode<=122)){return true;} return false;};this.getKeyCode=function(event){var key;if(null!=event&&null!=event.which){key=event.which;} else if(null!=window.event){key=window.event.keyCode;} return key;};this.isNumber=function(keyCode){return ((keyCode>=48&&keyCode<=57)||(keyCode>=96&&keyCode<=105));};this.isCharacter=function(event,keyCode){var keyCodePressed=this.getKeyCode(event);if(keyCodePressed==keyCode){return true;} return false;} this.isValidCharForNumber=function(event){if(this.isNumeric(event)){return true;} var isValidCharacter=(this.isCharacter(event,46)|| this.isCharacter(event,44)|| this.isCharacter(event,45)|| this.isCharacter(event,8)|| this.isCharacter(event,0));return isValidCharacter;} var kc=[];kc[48]="0";kc[49]="1";kc[50]="2";kc[51]="3";kc[52]="4";kc[53]="5";kc[54]="6";kc[55]="7";kc[56]="8";kc[57]="9";kc[65]="A";kc[66]="B";kc[67]="C";kc[68]="D";kc[69]="E";kc[70]="F";kc[71]="G";kc[72]="H";kc[73]="I";kc[74]="J";kc[75]="K";kc[76]="L";kc[77]="M";kc[78]="N";kc[79]="O";kc[80]="P";kc[81]="Q";kc[82]="R";kc[83]="S";kc[84]="T";kc[85]="U";kc[86]="V";kc[87]="W";kc[88]="X";kc[89]="Y";kc[90]="Z";kc[96]="0";kc[97]="1";kc[98]="2";kc[99]="3";kc[100]="4";kc[101]="5";kc[102]="6";kc[103]="7";kc[104]="8";kc[105]="9";this.KEY_CODE_TRANSLATOR=kc;}; function getProperty(properties,name,defaultValue){if(properties==null||properties[name]==null){return defaultValue;} return properties[name];}; function RequiredValidation(validationHandler){this.reqElCount=0;this.validationHandler=validationHandler;validationHandler.addValidationObject(this.TYPE,this);validationHandler.registerValidation(this.TYPE,this.validateFx,this.errorFx);} RequiredValidation.prototype=new RequiredValidationBase();function RequiredValidationBase(){this.TYPE="REQUIRED";var eV={};eV[g_sessionInformation.settings.date_format.empty_date]=true;this.emptyValues=eV;this.attachValidation=function(element){if(element.name.trim()==""){element.name="Unnamed element "+this.reqElCount;} this.validationHandler.addObjectToVal(this.TYPE,element);this.reqElCount++;};this.validateFx=function(element){var value=element.value.trim();if(value==""||RequiredUtil.emptyValues[value]){return false;} return true;} this.errorFx=function(element){return element.name+" "+"is required.";};this.registerEmptyValue=function(val){this.emptyValues[val]=true;};} var RequiredUtil=new RequiredValidation(ValidationUtil); ;;;; ;;;;;;;;;;;;;; function MiniCache(){ this.records_by_key={}; this.records={}; this.lists={}; this.values={}; this.record_meta_data={}; this.templates={}; this.template_meta_data={}; this.dyn_tables={}; this.tables_to_delete=[]; this.record_names={}; this.validationHandler=new ValidationHandler(); this.onBeforeProcessFxs={}; this.addBeforeProcessFx=function(fx,name){var count=++mc_processFxCounter;if(!name){name="fx"+count;} this.onBeforeProcessFxs[name]=fx;}; this.removeBeforeProcessFx=function(name){delete(this.onBeforeProcessFxs[name]);}; this.runBeforeProcesses=function(){for(var i in this.onBeforeProcessFxs) {var fx=this.onBeforeProcessFxs[i];fx();} }; this.addRecordName=function(record,name){this.record_names[name]={type:record.type,id:record.getId()};}; this.getRecordByName=function(name){var info=this.record_names[name];if(!info){return null;} return this.getRecord(info.type,info.id);};this.getValue=function(name){return this.values[name];}; this.getDynTable=function(type){var data=this.html metaData=this.template_meta_data[type];var settings=this.dyn_tables[type];return new DynTable(type,data,metaData,settings,this);}; this.getRecord=function(type,id){id=parseInt(id);if(0>id&&mc_tempToRealId[type]&&mc_tempToRealId[type][id]){id=mc_tempToRealId[type][id];} var recordsOfType=this.records[type];if(!recordsOfType){if(mc_masterCache&&mc_masterCache.records[type]){this.records[type]=clone(mc_masterCache.records[type]);this.record_meta_data[type]=clone(mc_masterCache.record_meta_data[type]);recordsOfType=this.records[type];} else {return null;} } var data=recordsOfType[id];if(!data){if(mc_masterCache&&mc_masterCache.records[type]&&mc_masterCache.records[type][id]){this.records[type][id]=clone(mc_masterCache.records[type][id]);this.record_meta_data[type][id]=clone(mc_masterCache.record_meta_data[type][id]);data=recordsOfType[id];} else {return null;} } var metaData=this.record_meta_data[type][id];return new Record(type,id,data,metaData,this);}; this.getListByName=function(name){var aList=this.lists[name];if(!aList){if(!mc_masterCache){return null;} var masterList=mc_masterCache.lists[name];if(null==masterList){return null;} var masterCache=masterList.ownerCache;masterList.ownerCache=null;aList=clone(masterList);masterList.ownerCache=masterCache;} if(!aList){return null;} aList.ownerCache=this;return extendList(aList);}; this.getRecordByKey=function(type,fieldName,key){if(mc_masterCache&&mc_masterCache.records_by_key[type+"|"+fieldName+"|"+key]){var recordInfo=clone(mc_masterCache.records_by_key[type+"|"+fieldName+"|"+key]);} else {var recordInfo=this.records_by_key[type+"|"+fieldName+"|"+key];} var record=null;if(null!=recordInfo){record=this.getRecord(recordInfo.type,recordInfo.id);} return record;}; this.deleteRecord=function(type,id){var deleter=createRecordDeleter(this);deleter.setType(type);deleter.addId(id);this.clearRecord(type,id);}; this.clearRecord=function(type,id){if(!this.record_meta_data[type]){return ;} delete(this.record_meta_data[type][id]);delete(this.records[type][id]);}; this.clearAllRecords=function(){this.records_by_key={};this.records={};this.lists={};this.record_meta_data={};}; this.getTemplate=function(type){if(!this.templates[type]&&mc_masterCache.templates[type]){this.templates[type]=clone(mc_masterCache.templates[type]);this.template_meta_data[type]=clone(mc_masterCache.template_meta_data[type]);} if(this.templates[type]){var template=new Record(type,0,this.templates[type],this.template_meta_data[type],this);template.isTemplate=true;return template;} return null;}; this.createRecord=function(type,id){if(!id){mc_newIdCounter--;id=mc_newIdCounter;} var templateData=this.getTemplate(type);var record=clone(templateData.data);record.type=type;record.id=id;var recordsOfType=this.records[type];if(!recordsOfType){this.records[type]={};recordsOfType=this.records[type];} recordsOfType[id]=record;var recordMetaData=clone(templateData.metaData);recordMetaData.type=type;recordMetaData.id=id;var metaDataForType=this.record_meta_data[type];if(!metaDataForType){this.record_meta_data[type]={};metaDataForType=this.record_meta_data[type];} metaDataForType[id]=recordMetaData;var record=this.getRecord(type,id);record.setDoSave();return record;};this.createTable=function(name,displayName,pluralName,packageName){this.dyn_tables[name]={singularName:displayName,pluralName:pluralName,packageName:packageName,cachingSetting:"",doSave:true};this.templates[name]={};this.template_meta_data[name]={};};this.initializeProcessor=function(){this.records["processor"]={};this.records["processor"][0]={};this.record_meta_data["processor"]={};this.record_meta_data["processor"][0]={};this.record_meta_data["processor"][0].doProcess=true;var recordToProcess=this.getRecord("processor",0);return recordToProcess.addField("processor","MCL","",0);};this.processor=this.initializeProcessor();this.process=function(onAfterProcessFx,onErrorFx){this.syncToMaster();var thisCache=this;var finishFx=function(){thisCache.processor=thisCache.initializeProcessor();if(onAfterProcessFx){onAfterProcessFx();} } mcs_process(thisCache,finishFx,onErrorFx);}; this.syncProcess=function(){this.syncToMaster();var thisCache=this;mcs_process(thisCache);thisCache.processor=thisCache.initializeProcessor();};this.createAction=function(name,fieldType){return this.processor.getChildField("fields_to_process").addChildField(name,fieldType);};this.createFirstAction=function(name,fieldType){return this.processor.getChildField("fields_to_process_first").addChildField(name,fieldType);};this.createLastAction=function(name,fieldType){return this.processor.getChildField("fields_to_process_last").addChildField(name,fieldType);};this.removeActionField=function(name){this.processor.getChildField("fields_to_process_last").removeChildField(name);this.processor.getChildField("fields_to_process_first").removeChildField(name);this.processor.getChildField("fields_to_process").removeChildField(name);};this.getActionField=function(name){return this.getRecord(name,0).getField(name);} this.addKeyedRecordToLoad=function(type,fieldName,key,fieldsToLoad){if(!fieldsToLoad){fieldsToLoad="*";} var recordsByKey=this.processor.getChildField("records_by_key");var requestId=type+fieldName+key;var recordToLoad=recordsByKey.addChildField(requestId,"COLLECTION",null,null,null);recordToLoad.addChildField("type","TEXT",type,null,null);recordToLoad.addChildField("field_name","TEXT",fieldName,null,null);recordToLoad.addChildField("key","TEXT",key,null,null);recordToLoad.addChildField("fields_to_load","TEXT",fieldsToLoad,null,null);return recordToLoad;};this.addRecordToLoad=function(type,id){var recordInput=createRecordInput(type,id);this.addRecordInput(recordInput);return recordInput;};this.addRecordInput=function(recordInput){var requestId=recordInput.data.type+recordInput.data.id;this.processor.getChildField("records_to_load").insertChildField(requestId,"COLLECTION",recordInput);};this.cancelRecordToLoad=function(type,id){var requestId=type+id;this.processor.getChildField("records_to_load").removeChildField(requestId);} this.addListToLoad=function(type,name,startRecord,max,sortField,sortDirection){var listInput=createListInput(type,name,startRecord,max,sortField,sortDirection);this.addListInput(listInput);return listInput;};this.addListInput=function(listInput){this.processor.getChildField("lists").insertChildField(null,"COLLECTION",listInput);};this.addTableToLoad=function(tableName){var tablesToLoad=this.processor.getChildField("dyn_tables");tablesToLoad.addChildField(tableName,"TEXT",tableName);};this.addTemplateToLoad=function(tableName){var templates=this.processor.getChildField("templates");templates.addChildField(tableName,"TEXT",tableName);};this.syncToMaster=function(){if(this.isMaster||!mc_masterCache){return ;} var recordsToSave=this.getRecordsToSave();for(var i in recordsToSave) {var newRecord=recordsToSave[i];var masterRecord=mc_masterCache.getRecord(newRecord.type,newRecord.id);if(!masterRecord){continue;} mc_cloneContent(newRecord.data,masterRecord.data);mc_cloneContent(newRecord.metaData,masterRecord.metaData);masterRecord.resetMetaInfo(null,"bs");} };this.getRecordsToSave=function(){var recordsToSave=[];var recordsMetaData=this.record_meta_data;for(var type in recordsMetaData) {var records=recordsMetaData[type];for(var id in records) {var record=this.getRecord(type,id);if(record.metaData.doSave){recordsToSave.push(record);} } } return recordsToSave;};this.getRecordsToSaveOfAType=function(type){var recordsToSave=[];var records=this.record_meta_data[type];for(var id in records) {var record=this.getRecord(type,id);if(record.metaData.doSave){recordsToSave.push(record);} } return recordsToSave;};this.getRecordsByType=function(type,sortField,sortDirection){var recordsByType=[];var records=this.record_meta_data[type];for(var id in records) {var record=this.getRecord(type,id);recordsByType.push(record);} if(sortField){if(sortDirection=="asc"||!sortDirection){sorter_sortAscending("data."+sortField,recordsByType);} else {sorter_sortDescending("data."+sortField,recordsByType);} } return recordsByType;};this.syncToMasterOnProcess=function(){this.doSyncToMaster=true;} this.clearRecordsOfAType=function(type){var records=this.record_meta_data[type];for(var id in records) {this.clearRecord(type,id);} } this.copyTemplate=function(recordType,fromMiniCache){var data=fromMiniCache.templates[recordType];var metaData=fromMiniCache.template_meta_data[recordType] if(data&&metaData){this.templates[recordType]=clone(data);this.template_meta_data[recordType]=clone(metaData);} }; this.addValType=function(valType,valFx){this.validationHandler.addVal(valType,valFx);return this;}; this.addValToObj=function(valType,valObj){this.validationHandler.addObjectToVal(valType,valObj);return this;}; this.validate=function(){return this.validationHandler.validate();}; this.id=++mc_newCacheIdCounter;} function getMasterCache(){if(null==mc_masterCache){mc_masterCache=new MiniCache();mc_masterCache.isMaster=true;mc_masterCache.id="master";} return mc_masterCache;} var mc_newIdCounter=0;var mc_newCacheIdCounter=0;var mc_processFxCounter=0;var mc_tempToRealId={};if(!mc_masterCache){var mc_masterCache=null;} if(!mc_objectToHtmlFxByType){var mc_objectToHtmlFxByType={};} function mc_getFieldNames(metaData){var fieldNames=[];for(var i in metaData) {var nameLength=i.length;if(nameLength<=3){continue;} var suffix=i.substring(nameLength-3,nameLength);if("_do"==suffix){var fieldName=i.substring(0,nameLength-3);fieldNames.push({name:fieldName,order:metaData[i]});} } sorter_sortAscending("order",fieldNames);for(var i in fieldNames) {fieldNames[i]=fieldNames[i].name;} return fieldNames;} function mc_clearObject(anObject){for(var i in anObject) {delete(anObject[i]);} } function mc_cloneContent(source,destination){mc_clearObject(destination);for(var i in source) {destination[i]=clone(source[i]);} return destination;} var HtmlDtd=new HtmlDtdDef();function HtmlDtdDef(){this.isEmptyTag=function(tagName){return emptyTags[tagName.toLowerCase()]?true:false;} this.isNotEmptyTag=function(tagName){return !this.isEmptyTag(tagName)&&this.isValidTag(tagName);} this.isValidTag=function(tagName){if(!tagName){} return tags[tagName.toUpperCase()]?true:false;} this.getAttributes=function(tagName){return clone(tags[tagName]);} var emptyTags={area:1,base:1,br:1,col:1,hr:1,img:1,input:1,link:1,meta:1,param:1};var tags={};this.tags=tags; tags["A"]=["href","tabIndex"];tags["ABBR"]=[];tags["ACRONYM"]=[];tags["ADDRESS"]=[];tags["APPLET"]=[];tags["AREA"]=[];tags["B"]=[];tags["BASE"]=[];tags["BASEFONT"]=[];tags["BDO"]=[];tags["BIG"]=[];tags["BLOCKQUOTE"]=[];tags["BODY"]=["topMargin","rightMargin","bottomMargin","leftMargin"];tags["BR"]=[];tags["BUTTON"]=["tabIndex"];tags["CAPTION"]=[];tags["CENTER"]=[];tags["CITE"]=[];tags["CODE"]=[];tags["COL"]=["align","vAlign"];tags["COLGROUP"]=[];tags["DD"]=[];tags["DEL"]=[];tags["DFN"]=[];tags["DIR"]=[];tags["DIV"]=["align"];tags["DL"]=[];tags["DT"]=[];tags["EM"]=[];tags["FIELDSET"]=[];tags["FONT"]=[];tags["FORM"]=[];tags["FRAME"]=[];tags["FRAMESET"]=[];tags["H1"]=[];tags["H2"]=[];tags["H3"]=[];tags["H4"]=[];tags["H5"]=[];tags["H6"]=[];tags["HEAD"]=[];tags["HR"]=[];tags["HTML"]=[];tags["I"]=[];tags["IFRAME"]=[];tags["IMG"]=["src","alt"];tags["INPUT"]=[];tags["INS"]=[];tags["ISINDEX"]=[];tags["KBD"]=[];tags["LABEL"]=[];tags["LEGEND"]=[];tags["LI"]=[];tags["LINK"]=[];tags["MAP"]=[];tags["MENU"]=[];tags["META"]=[];tags["NOFRAMES"]=[];tags["NOSCRIPT"]=[];tags["OBJECT"]=[];tags["OL"]=[];tags["OPTGROUP"]=[];tags["OPTION"]=[];tags["P"]=["align"];tags["PARAM"]=[];tags["PRE"]=[];tags["Q"]=[];tags["S"]=[];tags["SAMP"]=[];tags["SCRIPT"]=[];tags["SELECT"]=[];tags["SMALL"]=[];tags["SPAN"]=[];tags["STRIKE"]=[];tags["STRONG"]=[];tags["STYLE"]=[];tags["SUB"]=[];tags["SUP"]=[];tags["TABLE"]=["cellSpacing","cellPadding","border","summary"];tags["TBODY"]=[];tags["TD"]=["align","vAlign","colSpan","rowSpan"];tags["TEXTAREA"]=[];tags["TFOOT"]=[];tags["TH"]=[];tags["THEAD"]=[];tags["TITLE"]=[];tags["TR"]=[];tags["TT"]=[];tags["U"]=[];tags["UL"]=[];tags["VAR"]=[];} ;function css_StyleSheet(aDocument){this.aDocument=!aDocument?document:aDocument;this.classes=[];this.addClass=function(ccsClassObj){this.classes[ccsClassObj.name]=ccsClassObj.styles;} this.init=function(){css_buildStyleSheet(this)};} function css_CssClass(name){this.name=name;this.styles=[];this.addStyle=function(name,value){this.styles[name]=value;} } function css_addRule(doc,className,styleStr,index){var styleSheet=doc.styleSheets[0];var selector=(HtmlDtd.isValidTag(className)||className.charAt(0)=='.'||className.charAt(0)=='#')?className:"."+className;var selectors=selector.split(",");for(var i=0;i=0&&isNaN(parseInt(value.charAt(index)))) {unit=value.charAt(index)+unit;index--;} return unit;};this.getElementsByClassName=function(className){var results=[];if(document.body.getElementsByClassName){return document.body.getElementsByClassName(className);} else {var elements=document.all;for(var i=0;i='A'&&aChar<='Z'){parts.push(jsPropName.substring(partStart,i));partStart=i;} } parts.push(jsPropName.substring(partStart));var propName=parts[0];for(var i=1;i=end1)|| (start1windowHeight){var oldTop=CssUtil.pixelToInt(this.anchor.style.top);var newTop=oldTop-((this.centerEl.offsetHeight+popupLoc.y)-windowHeight)-10;this.anchor.style.top=newTop+"px";} else if(0>popupLoc.y){this.anchor.style.top=(this.doc.documentElement.scrollTop||this.doc.body.scrollTop)+"px";} var windowWidth=this.getWindowWidth();if((this.centerEl.offsetWidth+popupLoc.x)>windowWidth){var oldLeft=CssUtil.pixelToInt(this.anchor.style.left);var newLeft=oldLeft-((this.centerEl.offsetWidth+popupLoc.x)-windowWidth)-30;this.anchor.style.left=newLeft+"px";} };this.getWindowWidth=function(){return window.innerWidth||this.doc.documentElement.offsetWidth;};this.getWindowHeight=function(){return window.innerHeight||this.doc.documentElement.offsetHeight;};this.adjustForTooTall=function(){var totalHeight=window.innerHeight||this.doc.body.clientHeight;if(this.mainArea.scrollHeight>=totalHeight){this.mainArea.style.height=(totalHeight-20)+"px";this.mainArea.style.overflow="auto";} }; this.align=function(alignment,noOverlapEl){var alignment=alignment||this.alignment;var positionEl=this.positionEl||this.doc.body;var position=findElCoord(positionEl,false);var x=position.x+this.offsetLeft;var y=position.y+this.offsetTop;if("belowLeft"==alignment){x+=(this.positionEl.offsetWidth-this.contentArea.offsetWidth);if(this.shadow){x-=18;} y+=this.positionEl.offsetHeight;} else if("belowRight"==alignment){if(this.shadow){x-=9;} y+=this.positionEl.offsetHeight;} else if("rightCenter"==alignment){x+=this.positionEl.offsetWidth;y+=(this.positionEl.offsetHeight/2)-this.anchor.offsetHeight/2;} else if("upperRight"==alignment){x+=positionEl.offsetWidth-this.contentArea.offsetWidth;if(this.shadow){x-=18;} } else if("aboveCenter"==alignment){x+=positionEl.offsetWidth-this.contentArea.offsetWidth/2;if(this.shadow){x-=18;} y-=(this.contentArea.offsetHeight);} else if("aboveLeft"==alignment){y-=(this.contentArea.offsetHeight);if(this.shadow){y-=9;} } else if("coordinate"==alignment){x=this.offsetLeft;y=this.offsetTop;} this.anchor.style.left=x+"px";this.anchor.style.top=y+"px";this.adjustForOverflow(noOverlapEl);};this.makeDraggable=function(element,onDragStart,onDragEnd){element.style.cursor="move";CssUtil.makeNotSelectable(element) var thisObj=this;var mouseDownFx=function(ev){if(onDragStart){onDragStart();} document.body.style.cursor="move";var originalX=ev.clientX;var originalY=ev.clientY;var anchorX=css_pixelToInt(thisObj.anchor.style.left);var anchorY=css_pixelToInt(thisObj.anchor.style.top);var moveFx=function(moveEv){thisObj.anchor.style.left=(anchorX+(moveEv.clientX-originalX))+"px";thisObj.anchor.style.top=(anchorY+(moveEv.clientY-originalY))+"px";};eh_attachEvent("onmousemove",thisObj.doc.body,moveFx);var mouseUpFx=function(){thisObj.doc.body.onmousemove=null;document.body.style.cursor="";thisObj.doc.body.onmouseup=null;if(onDragEnd){onDragEnd();} };eh_attachEvent("onmouseup",thisObj.doc.body,mouseUpFx);};eh_attachEvent("onmousedown",element,mouseDownFx);};this.createDragger=function(parentEl){var dragger=cE("div",parentEl);dragger.align="center";dragger.style.height="8px";dragger.style.paddingTop="3px";dragger.style.fontSize=0;dragger.style.cursor="move";this.makeDraggable(dragger);var dotSrc="/upload/custom_screens/architect/components/dropdownmenu/grip_dot.gif";for(var i=0;i<4;i++) {var dot=cE("img",dragger);dot.src=dotSrc;dot.style.margin="2px";} };this.close=function(){this.removeInstance(this);if(this.closeFx){try {this.closeFx();} catch(e) {} this.closeFx=null;} if(this.container){this.container.parentNode.removeChild(this.container);} try {this.anchor.parentNode.removeChild(this.anchor);} catch(e) {} this.positionEl=null;this.container=null;this.contentArea=null;window.setTimeout(eh_clearEventsNotInDom,10);};};function fade_setOpacity(element,opacity){if(IS_IE){element.style.filter="alpha(opacity="+opacity+")";} else {element.style.opacity=opacity/100;} } ;function registerHtmlConverter(fieldTypeName,converterName,conversionFx){var converters=mc_objectToHtmlFxByType[converterName];if(!converters){var converters={};mc_objectToHtmlFxByType[converterName]=converters;} converters[fieldTypeName]=conversionFx;} function setStyles(element,properties){if(null==properties){return ;} var stylesObj=properties.style;if(null==stylesObj){return ;} for(var i in stylesObj) {var value=stylesObj[i];if(!isNaN(value)){value=value+"px";} element.style[i]=value;} } var TextUtil=new TextUtilBase();function TextUtilBase(){this.removeHtmlFormat=function(str){if(null==str){return "";} str=str.replaceAll("<","<");str=str.replaceAll(">",">");return str;};this.parseForHtml=function(str){if(null==str){return "";} str=str.replaceAll("<","<");str=str.replaceAll(">",">");return str;};this.removeMsFormating=function(str){return str;};this.removeBr=function(value){value=value.replaceAll("
","\n");return value.replaceAll("
","\n");};this.addBr=function(value){value=value.replaceAll("\r\n","
");return value.replaceAll("\n","
");};}; function EmailValidation(validationHandler){this.validationHandler=validationHandler;validationHandler.addValidationObject(this.TYPE,this);validationHandler.registerValidation(this.TYPE,this.validateFx,this.errorFx);} EmailValidation.prototype=new EmailValidationBase() function EmailValidationBase(){this.TYPE="EMAIL";this.attachValidation=function(element){this.validationHandler.addObjectToVal(this.TYPE,element);};this.validateFx=function(element){var value=element.value.trim();if(value==""){return true;} var re=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;var result=value.match(re);if(result==null){return false;} return true;};this.errorFx=function(element){return element.value+" "+"is not a valid email address.";};}; ;;function buildTextInput(parentEl,properties){var input=cE("input",parentEl);input.type="text";enableTextInput(input,properties);return input;} function enableTextInput(input,properties){var displayName=getProperty(properties,"displayName","");input.name=displayName;var maxLength=getProperty(properties,"maxLength",1027);input.maxLength=maxLength;var value=getProperty(properties,"value","").trim();var shadowText=getProperty(properties,"shadowText","").trim();var validationHandler=getProperty(properties,"validationHandler",null);if(shadowText!=""&&""==value){input.value=shadowText input.style.color="#CCCCCC";} else {input.value=TextUtil.parseForHtml(value);} if(shadowText!=""){var onFocusFx=function(){if(input.value==shadowText){input.value="";input.style.color="";} };eh_attachEvent("onfocus",input,onFocusFx);var onBlurFx=function(){if(input.value==""){input.value=shadowText;input.style.color="#999999";} else {input.style.color="";} };eh_attachEvent("onblur",input,onBlurFx);} var isRequired=getProperty(properties,"isRequired",false);if(isRequired){var requiredVal=validationHandler.getValObject("REQUIRED") if(null==requiredVal){requiredVal=new RequiredValidation(validationHandler);} requiredVal.registerEmptyValue(shadowText);requiredVal.attachValidation(input);} if("phone"==getProperty(properties,"uiType","")){input.maxLength=20;var validateKeyStroke=function(){if(KeyCodeUtil.isAlphabetic(event)){KeyCodeUtil.cancelPressKey(event) return null;} };eh_attachEvent("onkeypress",input,validateKeyStroke);} else if("email"==getProperty(properties,"uiType",false)){var emailVal=validationHandler.getValObject("EMAIL");if(null==emailVal){emailVal=new EmailValidation(validationHandler);} emailVal.attachValidation(input);} var onAfterChangeFx=getProperty(properties,"onAfterChangeFx",null);var onChangeFx=function(){if(null!=onAfterChangeFx){var value=TextUtil.removeHtmlFormat(input.value);onAfterChangeFx(value);} };eh_attachEvent("onchange",input,onChangeFx);var onKeyUpFx=function(event){if(!event){event=window.event;} var keyCode=KeyCodeUtil.getKeyCode(event) if((keyCode==86||keyCode==118)&&event.ctrlKey){if(null!=onAfterChangeFx){var value=TextUtil.removeHtmlFormat(input.value);value=TextUtil.removeMsFormating(value);onAfterChangeFx(value);} } };eh_attachEvent("onkeyup",input,onKeyUpFx);setStyles(input,properties);return input;}; ;function str_fieldToEditHtml(parentEl,dynField,properties){if(null==properties){properties={};} var onAfterValueChange=properties.onAfterChangeFx;properties.onAfterChangeFx=function(value){dynField.setValue(value);if(null!=onAfterValueChange){onAfterValueChange(dynField);} };properties.value=dynField.data;properties.uiType=dynField.getUiType();properties.validationHandler=dynField.getOwnerCache().validationHandler;return buildTextInput(parentEl,properties);};registerHtmlConverter("TEXT","edit",str_fieldToEditHtml); function drawCounter(parentEl,string,maxChar){parentEl.innerHTML="";var numberHolder=cE("span",parentEl);numberHolder.style.fontWeight="bold";numberHolder.style.marginRight=4;numberHolder.innerHTML=getRemainingCharacters(string,maxChar);var span=cE("span",parentEl);span.style.fontWeight="normal";span.innerHTML="characters remaining";};function getFilteredString(string,maxChar){if(string.length>=maxChar){return string.substring(0,maxChar);} else {return string;} };function getRemainingCharacters(string,maxChar){string=(string)?string:"";return maxChar-string.length;}; ;function buildTextArea(parentEl,properties){var maxLength=getProperty(properties,"maxLength",null);var value=getProperty(properties,"value","");var taHolder;if(maxLength){var width=200;if(properties.style){width=properties.style.width;} var counterHolder=cE("div",parentEl) counterHolder.align="right";counterHolder.style.fontSize="11px";counterHolder.style.fontFamily="arial";counterHolder.style.width=width;drawCounter(counterHolder,value,maxLength);properties.counterHolder=counterHolder;taHolder=cE("div",parentEl);} else {taHolder=parentEl;} var displayName=getProperty(properties,"displayName","");var textArea=cE("textArea",taHolder);textArea.style.width=200;textArea.style.height=100;textArea.style.fontFamily="arial";textArea.name=displayName;return enableTextArea(textArea,properties);} function enableTextArea(textArea,properties){var maxLength=getProperty(properties,"maxLength",null);var value=getProperty(properties,"value","");var shadowText=getProperty(properties,"shadowText","").trim();if(shadowText!=""&&""==value){textArea.value=shadowText textArea.style.color="#999999";} else {textArea.value=TextUtil.removeBr(value);} if(shadowText!=""){var onFocusFx=function(){if(textArea.value==shadowText){textArea.value="";textArea.style.color="";} };eh_attachEvent("onfocus",textArea,onFocusFx);var onBlurFx=function(){if(textArea.value==""){textArea.value=shadowText;textArea.style.color="#999999";} else {textArea.style.color="";} };eh_attachEvent("onblur",textArea,onBlurFx);} if(null!=maxLength){var validateLength=function(event){if(!event){event=window.event;} var value=textArea.value;var counterHolder=properties.counterHolder;if(maxLength!=null&&counterHolder){var curLength=value.length;if(curLength>maxLength){textArea.value=value.substring(0,maxLength);} drawCounter(counterHolder,textArea.value,maxLength);} };eh_attachEvent("onkeydown",textArea,validateLength);} var onAfterChangeFx=getProperty(properties,"onAfterChangeFx",null);var afterSetVal=getProperty(properties,"afterSetVal",null);var onChangeFx=function(event){var value=TextUtil.removeHtmlFormat(textArea.value);value=TextUtil.removeMsFormating(value);value=TextUtil.addBr(value);if(onAfterChangeFx){onAfterChangeFx(value);} if(afterSetVal){afterSetVal(value);} };eh_attachEvent("onchange",textArea,onChangeFx) var validatePastedTxt=function(){var keyCode=crossbrowser_getKeyCode(event) if((keyCode==86||keyCode==118)&&event.ctrlKey){var value=TextUtil.removeHtmlFormat(textArea.value);value=TextUtil.removeMsFormating(value);value=TextUtil.addBr(value);if(onAfterChangeFx){onAfterChangeFx(value);} if(afterSetVal){afterSetVal(value);} } };eh_attachEvent("onkeyup",textArea,validatePastedTxt);var validationHandler=getProperty(properties,"validationHandler",null);var isRequired=getProperty(properties,"isRequired",false);if(isRequired){var requiredVal=validationHandler.getValObject("REQUIRED") if(null==requiredVal){requiredVal=new RequiredValidation(validationHandler);} requiredVal.attachValidation(textArea);} setStyles(textArea,properties);return textArea;}; ;function long_fieldToHtml(parentEl,dynField,properties){if(null==properties){properties={};} properties.onAfterChangeFx=function(value){dynField.setValue(value);};properties.value=dynField.data;properties.validationHandler=dynField.getOwnerCache().validationHandler;if(null==properties.style){properties.style={width:450,height:250};} return buildTextArea(parentEl,properties);} registerHtmlConverter("LONG_TEXT","edit",long_fieldToHtml); function cat_fieldToHtml(parentEl,dynField,properties){var definitionId=dynField.data.category_definition.id;var miniCache=dynField.ownerRecord.ownerCache;var definitionRecord=miniCache.getRecord("cat_def3",definitionId);var cSelect=cE("select",parentEl);cSelect.style.width=(properties&&properties.style&&properties.style.width)?properties.style.width+"px":"248px";if(properties&&properties.noSelect!=null){var option=cE("option",cSelect);option.innerHTML=properties.noSelect;option.value="";} var initValue=dynField.data.default_value;var options=definitionRecord.getField("category_definition").getChildField("options");var fNames=options.getChildFieldNames();for(var i=0;i1)){return "" } } if(decimalPlaces!=undefined){var decimalPlaces=parseInt(decimalPlaces,10);if(!isNaN(decimalPlaces)){x=this.ensureDecimalPlaces(x,decimalPlaces);} else {x=Math.floor(x);} } return this.reformat(x);};this.reformat=function(x){if(x==0){return x } if(null==x||""==x){return "";} var re=/(\-?)([^\.]*)\.?(\d*)/;var result=re.exec(x);var sign=result[1];var numberPart=result[2];var decimalPart=result[3];var newNumberPart="";var digitPlace=0;for(var i=numberPart.length-1;i>=0;i--) {if(isNaN(parseInt(numberPart.charAt(i)))){continue;} newNumberPart=numberPart.charAt(i)+newNumberPart;digitPlace++;if(digitPlace==3&&i!=0){newNumberPart=this.TS+newNumberPart;digitPlace=0;} } decimal=(decimalPart=="")?"":this.DS;return sign+newNumberPart+decimal+decimalPart;};this.occurence=function(aString,c){var total=0;for(var i=0;i1){interval=calendarObj.noOfMonths;} var previousMonthDate=ADateUtil.adjustMonth(calendarObj.firstDate,(-1*interval));calendarObj.buildCalendars(previousMonthDate);} eh_attachEvent("onclick",prevNavEl,previousFx);} {var nextNavEl=this.nextNavHolder;nextNavEl.style.cursor="pointer";nextNavEl.className="sc_nextImg";var calendarObj=this;var nextFx=function(){var interval=1;if(calendarObj.noOfRows>1){interval=calendarObj.noOfMonths;} var nextMonthDate=ADateUtil.adjustMonth(calendarObj.firstDate,interval);calendarObj.buildCalendars(nextMonthDate);} eh_attachEvent("onclick",nextNavEl,nextFx);} };this.populateDateCells=function(dateCells,dateObj){var dayIndices=this.populateCurrentMonth(dateCells,dateObj);if(this.noOfMonths==1){var prevMthCells=dateCells.slice(0,dayIndices.first);var nextMthCells=dateCells.slice(dayIndices.last,dateCells.length);this.populatePastMonth(prevMthCells,dateObj);this.populateNextMonth(nextMthCells,dateObj);} };this.populatePastMonth=function(cells,dateObj){var previousMonthDate=ADateUtil.adjustMonth(dateObj,-1);var prevMnthDayCount=ADateUtil.getMonthDayCount(previousMonthDate.month,previousMonthDate.year);var x=cells.length;for(var i=x;i>0;i--) {var cell=cells[i-1];this.attachDateInfo(cell,prevMnthDayCount,previousMonthDate.month,previousMonthDate.year,false);prevMnthDayCount--;} };this.populateNextMonth=function(cells,dateObj){var nextMonthDate=ADateUtil.adjustMonth(dateObj,1);for(var i=0;i]*style=['"]([^'"]*)/i;var result=rE.exec(node.outerHTML);if(result){filteredAttrs["style"]=result[1].toLowerCase();} } } else {if(""!=attributes[i].value.trim()){filteredAttrs[nodeName]=attributes[i].value;} else if(du_booleanAttrs[nodeName]){filteredAttrs[nodeName]="";} } } return filteredAttrs;};var du_booleanAttrs={"checked":1,"selected":1,"disabled":1,"readonly":1,"multiple":1,"ismap":1,"isMap":1,"allowfullscreen":1,"allowFullScreen":1};function getChildrenByTagName(element,tagName){tagName=tagName.toUpperCase();var nodes=[];for(var i=0;i0) {var element=elToReplace.removeChild(elToReplace.childNodes[0]);parentEl.insertBefore(element,elToReplace);if(isFirst){firstEl=element;isFirst=false;} } parentEl.removeChild(elToReplace);return firstEl;} function insertAfter(toInsert,sibling){if(sibling.nextSibling){sibling.parentNode.insertBefore(toInsert,sibling.nextSibling);} else {sibling.parentNode.appendChild(toInsert);} } function removeChildNodes(node,typesToRemove){for(var i=0;i0){return node.childNodes[0];} else {while(!node.nextSibling) {node=node.parentNode;if(!node){return null;} } return node.nextSibling;} } function getPreviousNode(node){if(!node.previousElementSibling){return node.parentNode;} return getLastDescendent(node.previousElementSibling);} function getLastDescendent(node){if(node.childNodes.length==0){return node;} else {var newNode;for(var i=node.childNodes.length-1;i>=0;i--) {var temp=node.childNodes[i];if(temp.nodeType!=3){newNode=temp;break;} } if(!newNode){return node;} return getLastDescendent(newNode)||newNode;} } var whiteSpaceTags=["BR"]; function doesContainContent(node){node=node.cloneNode(true);node.innerHTML=node.innerHTML.trim();if(node.innerHTML==""){return false;} for(var i=0;i0){newValue+="|";} dynField.getChildField("selected_options").setValue(newValue);};eh_attachEvent("onclick",checkHolder,onCheck);};} FieldHandler.registerConverter("MS3","edit",MultiSelect3Edit); var Category3Edit=new Category3EditBase();function Category3EditBase(){this.init=function(data,dynField){var selectEl=document.getElementById(data.id);var fx=function(ev){dynField.getChildField("value").setValue(selectEl.value);};eh_attachEvent("onchange",selectEl,fx);};} FieldHandler.registerConverter("C3","edit",Category3Edit); var ComponentHandler=new ComponentHandlerBase();function ComponentHandlerBase(){this.init=function(data){if(!data.componentName){return ;} var constructor=eval(data.componentName);if(!constructor){return ;} var parentEl=gE("#"+data.elId);var obj=new constructor(data);obj.build(parentEl);};}; var CycleHandler=new CycleHandlerBase();function CycleHandlerBase(){this.init=function(data){var el=gE("#"+data.elId);var cycle=new Cycle(el);cycle.interval=data.interval;cycle.modules=[];for(var i=0;ioriginalW/originalH){var ratio=totalWidth/originalW;image.style.width=Math.ceil(originalW*ratio)+"px";image.style.height=Math.ceil(originalH*ratio)+"px";image.style.left=0;image.style.top=(image.offsetHeight-totalHeight)/-2+"px";} else {var ratio=totalHeight/originalH;image.style.width=Math.ceil(originalW*ratio)+"px";image.style.height=Math.ceil(originalH*ratio)+"px";image.style.left=(image.offsetWidth-totalWidth)/-2+"px";image.style.top=0;} };this.attachResize=function(){var thisObj=this;var fx=function(){thisObj.center(thisObj.resizeImage);};eh_addEvent("onresize",window,fx);};} ;var FullScreenImageBgHandler=new FullScreenImageBgHandlerBase();function FullScreenImageBgHandlerBase(){this.initializeBg=function(){var imagePath=document.body.getAttribute("full_screen_bg_image");if(!imagePath){return ;} FullScreen.setImage(imagePath);FullScreen.attachResize();};this.init=function(){var thisObj=this;var fx=function(){thisObj.initializeBg();};BodyOnloader.addFx(fx);};this.init();} var ImagePreloaderUtil=new ImagePreloaderUtil();function ImagePreloaderUtil(){this.numToLoadSimultaneously=2;this.addImageToPreload=function(path){this.imagesToPreload.push(path);};this.run=function(afterLoadFx){this.afterLoadFx=afterLoadFx;this.setNewBatch();};this.imagesToPreload=[];this.loadedCounter=0;this.afterLoadFx;this.setNewBatch=function(){this.loadedCounter=0;var paths=[];for(var i=0;i1){this.runAfterLoad();} else if(this.loadedCounter==this.numToLoadSimultaneously){this.removeFromLoadingList();if(0==this.imagesToPreload.length){this.runAfterLoad();} else {this.setNewBatch();};};};this.init=function(){if(window["BodyOnloader"]){var thisObj=this;var fx=function(){thisObj.run();};BodyOnloader.addFxToRunLast(fx);} };this.init();}; function a_init(){var initializer=new BodyInitializer();initializer.init();} eh_addEvent("onload",window,a_init);function BodyInitializer(){this.init=function(){if(this.isInSA()){var fx=window.parent["g_specialModeInit"];if(fx){fx(window);} } else if(window.g_params&&g_params.mode){g_specialMode=g_params.mode;} DataInitializer.init();var thisObj=this;var afterFx=function(){var finishFx=function(){thisObj.finish();} BodyOnloader.run(finishFx);} ATagInitializer.initElements(afterFx);};this.finish=function(){if(window["buildScreen"]){buildScreen();} if(null!=g_pp&&(true==g_pp.myP.lp_edit||true==g_pp.lp_allow_all)){if(!window.g_specialMode||window.g_specialMode=="normal"){var afterFx=function(){var popup=new EnablePageEditPopup();popup.build();};sl_loadScript('/0/we8947_0.js',afterFx);afterFx;} else if("visual_edit"==g_specialMode){this.initVisualEditMode();} } };this.isInSA=function(){return (window.parent!=window);};this.initVisualEditMode=function(){var thisObj=this;var fx=function(){if(thisObj.isInSA()){return ;} var afterFx=function(){var popup=new FloatingEditToolBar();popup.build();};sl_loadScript('/0/we8528_0.js',afterFx);afterFx;} LivePage.loadData(fx);};} function createModuleHtmlGetter(name,miniCache,modulePath,moduleId){var getter=createGEToRunLast(name,miniCache,"ModuleHtmlGetter");if(!modulePath){modulePath="";} if(!moduleId){moduleId=0;} var params=getter.getChildField("exec_params");params.addChildField("module_path","TEXT",modulePath);params.addChildField("module_id","INTEGER",moduleId);return getter;} function fade_fadeElement(fadeEl,startOpacity,endOpacity,timeInterval,iterations,startTime,onAfterFadeFx){var fadeTrigger=[];var timeToTrigger=startTime;var opacityIncrement=(endOpacity-startOpacity)/iterations;var opacity=startOpacity;for(var i=0;i=this.modules.length){nextIndex=0;} return nextIndex;};this.getBackwardIndex=function(index){nextIndex=index-1;if(nextIndex<0){nextIndex=this.modules.length-1;} return nextIndex;};this.getNextIndex=function(index){var nextIndex;if(this.direction=="forward"){nextIndex=this.getForwardIndex(index);} else {nextIndex=this.getBackwardIndex(index);} var module=this.getModule(nextIndex);if(!module||module.status=="error"){if(this.errorCount>=this.modules.length-1){return -1;} return this.getNextIndex(nextIndex);} return nextIndex;};this.showSlide=function(index){var module=this.getModule(index);if(!module){return ;} if("loaded"==module.status){this.deselectIndex(this.currentIndex);this.currentIndex=index;var elOut=this.displayPane;var pane=module.pane;this.displayPane=pane;var elIn=pane;this.recenter();this.crossfade(elOut,elIn);this.selectIndex(index);} };this.selectIndex=function(index){var props=this.getControlProps();var module=this.getModule(index);if(!module){return ;} var buttonEl=module.buttonEl;if(buttonEl&&props["on-class"]){buttonEl.className=props["on-class"];} };this.deselectIndex=function(index){var module=this.getModule(index);var buttonEl=module.buttonEl;var props=this.getControlProps();if(buttonEl&&props["off-class"]){buttonEl.className=props["off-class"];} } this.recenter=function(){var display=this.displayHolder;var height=display.offsetHeight;display.style.width="";display.style.left="";var width=display.offsetWidth;var pane=this.displayPane;pane.style.height=height+"px";pane.style.width=width+"px";var offset=Math.round((width-display.scrollWidth)/2);pane.style.width=(width-offset*2)+"px";pane.style.left=offset+"px";};this.attachResize=function(){var thisObj=this;var fx=function(){thisObj.recenter();} eh_addEvent("onresize",window,fx);};this.resize=function(){var display=this.displayHolder;var height=display.offsetHeight;display.style.width="";display.style.left="";var width=display.offsetWidth;var pane=this.displayPane;pane.style.height=height+"px";pane.style.width=width+"px";var offset=Math.round((width-display.scrollWidth)/2);pane.style.width=(width-offset*2)+"px";pane.style.left=offset+"px";};this.crossfade=function(elOut,elIn){var thisObj=this;elOut.style.zIndex=2;elIn.style.zIndex=1;var foAttributes=this.fadeOutAttributes;fade_fadeElement(elOut,foAttributes.startOpacity,foAttributes.endOpacity,foAttributes.timeInterval,foAttributes.iterations,foAttributes.startTime);var fiAttributes=this.fadeInAttributes;var fx=function(){elOut.style.display="none";};fade_fadeElement(elIn,fiAttributes.startOpacity,fiAttributes.endOpacity,fiAttributes.timeInterval,fiAttributes.iterations,fiAttributes.startTime,fx);};this.getModule=function(index){return this.modules[index];};this.cacheModuleData=function(index){var results=this.mc.getActionField("m"+index).getChildField("exec_res");var moduleData=this.modules[index];moduleData.status=(results.getChildField("status").getValue()=="success")?"loaded":"error";if("error"==moduleData.status){this.errorCount++;return ;} else if("loaded"==moduleData.status){this.loadedCount++;} if("loaded"!=moduleData.status){return ;} var pane=cE("div",this.displayHolder);moduleData.pane=pane;pane.style.position="absolute";pane.style.display="none";pane.innerHTML=results.getChildField("html").getValue();};this.load=function(index,onAfterFx){if(-1==index){return ;} var module=this.getModule(index);if(!module||module.status=="error"){this.load(this.getModule(this.getNextIndex(index)),onAfterFx);return ;} else if(module.status=="loaded"){if(onAfterFx){onAfterFx(index);} return ;} var path=this.getModule(index).path;var name="m"+index;createModuleHtmlGetter(name,this.mc,path);var thisObj=this;var fx=function(){thisObj.cacheModuleData(index);if(onAfterFx){onAfterFx(index);} };this.mc.process(fx);};this.initialize=function(){this.cacheElements();this.buildControls();this.attachResize();this.go();this.selectIndex(this.currentIndex);} this.cycles=[];this.createCycle=function(cycleEl){var cycle=new Cycle(cycleEl);cycle.interval=parseInt(gA(cycleEl,"interval"));var moduleList=cycleEl.getAttribute("modules").split(",");cycle.modules=[];for(var i=0;i