epiton.kerneldependencies={};epiton.gui={};epiton.userinfo={};epiton.userinfo.UserInfo=function(){var ns="userinfo";var timestamp="tms";var cacheMillis=1800000;var _private={isLoaded:false,keys:{},roles:null,localUuid:null,isHandledAsFakeLogin:function(){if(this.localUuid=="none"){this.keys.uuid="none";this.keys.session="none";return true}return false},isUuidMapMatch:function(map){if((map&&map.uuid)&&epiton.codecs.Url.decode(map.uuid)==this.localUuid){return true}return false},parseLocalCookie:function(cval){var unpr=cval.split(":");if(unpr.constructor==Array&&unpr.length==3){if(unpr[0]=="V1"){return unpr[1]}}return undefined},getLocalUuid:function(){var _jsc=epiton.utils.Cookie.get("wsjlocal");if(_jsc){_jsc=epiton.codecs.Base64.decode(_jsc);if(_jsc){_jsc=this.parseLocalCookie(_jsc);if(_jsc){return _jsc}}}return undefined},setKeys:function(map){if(map){this.keys=map;for(var p in this.keys){this.keys[p]=epiton.codecs.Url.decode(this.keys[p])}var r=this.keys.roles;if(r){this.roles=r.split(",")}this.isLoaded=true}},setJsonCache:function(map){if(!map){return}var jmapd=epiton.utils.Object.clone(map);epiton.cache.NSMap.setNamespaceValue(ns,ns,jmapd);epiton.cache.NSMap.setNamespaceValue(ns,timestamp,(new Date()).getTime());epiton.cache.NSMap.commitNamespace(ns)},isJsonCacheExpired:function(map){var tms=epiton.cache.NSMap.getNamespaceValue(ns,timestamp);tms=parseInt(tms);var tmdif=((new Date()).getTime()-tms);if(tmdif>=cacheMillis){return true}return false},getJsonCache:function(){var ju=epiton.cache.NSMap.getNamespaceValue(ns,ns);if(ju){if(_private.isUuidMapMatch(ju)){return ju}else{epiton.cache.NSMap.clearNamespace(ns);epiton.cache.NSMap.commitNamespace(ns)}}return null},finalCheck:function(){if(_private.isLoaded==false){var tms=epiton.cache.NSMap.getNamespaceValue(ns,ns);this.setJsonCache(tms);this.setKeys(tms)}},loadUserInfo:function(){epiton.classloader.require("userinfo.json");function onUserInfoReady(xhReq){if(xhReq.readyState==4){if(xhReq.status==200){var jmap=eval("("+xhReq.responseText+")");_private.setJsonCache(jmap);_private.setKeys(jmap)}else{_private.finalCheck()}epiton.classloader.setRequireLoaded("userinfo.json")}}epiton.utils.Ajax.get("/auth/userinfo.json?rnd="+new Date().getTime().toString()+"R"+Math.floor(Math.random()*100000000000000000),onUserInfoReady)},needsReset:function(){return(_private.localUuid!=_public.getUuid()||!_public.getUuid())}};var _public={initialize:function(){_private.localUuid=_private.getLocalUuid();if(_private.localUuid){if(!_private.isLoaded){var nsc=_private.getJsonCache();if(!nsc||_private.isJsonCacheExpired(nsc)||_private.needsReset()){_private.loadUserInfo()}else{_private.setKeys(nsc)}}else{if(_private.needsReset()){_private.loadUserInfo()}}}},getFirstName:function(){return _private.keys.first_name},getLastName:function(){return _private.keys.last_name},getUserName:function(){var uname=_private.keys.user;return uname},getSessionId:function(){return _private.keys.session},getUuid:function(){return _private.keys.uuid},getUuidUrlEncoded:function(){var u=epiton.userinfo.UserInfo.getUuid();if(u){u=epiton.codecs.Url.encode(u);return u}return null},getEmailAddress:function(){return _private.keys.email},getCallsign:function(){if(_public.getFirstName()&&_public.getFirstName()!="null"&&_public.getLastName()!="null"&&_public.getLastName()){return _public.getFirstName()+" "+_public.getLastName()}else{return _public.getUserName()}},isLoggedIn:function(){return _private.keys.session!=undefined},hasRole:function(role){return(_private.roles)&&(_private.roles.indexOf(role)>=0)},test:function(role){alert(_private.roles);alert(_private.roles.indexOf(role));alert(_private.roles.indexOf)},testUuid:function(){alert("privateUuid:"+_private.localUuid);alert("publicUuid:"+_public.getUuid());alert("isLoaded:"+_private.isLoaded);alert("cache:"+_private.getJsonCache())}};return _public}();epiton.initOnReady(epiton.userinfo.UserInfo.initialize);epiton.classloader.setLoaded("userinfo");String.prototype.replaceAll=function(strTarget,strSubString){var strText=this;var intIndexOfMatch=strText.indexOf(strTarget);while(intIndexOfMatch!=-1){strText=strText.replace(strTarget,strSubString);intIndexOfMatch=strText.indexOf(strTarget)}return(strText)};epiton.codecs={};epiton.codecs.UTF8=function(){var _public={encode:function(str){var string=str.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c)}else{if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128)}else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128)}}}return utftext},decode:function(utftext){var string="";var i=0;var c=0;var c1=0;var c2=0;while(i<utftext.length){c=utftext.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++}else{if((c>191)&&(c<224)){c2=utftext.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2}else{c2=utftext.charCodeAt(i+1);c3=utftext.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3}}}return string.replaceAll("+"," ")}};return _public}();epiton.codecs.Url=function(){var _public={encode:function(string){return escape(epiton.codecs.UTF8.encode(string))},decode:function(string){return epiton.codecs.UTF8.decode(unescape(string))}};return _public}();epiton.codecs.Base64=function(){var _private={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="};var _public={encode:function(input){var output="";var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;input=epiton.codecs.UTF8.encode(input);while(i<input.length){chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64}else{if(isNaN(chr3)){enc4=64}}output=output+_private._keyStr.charAt(enc1)+_private._keyStr.charAt(enc2)+_private._keyStr.charAt(enc3)+_private._keyStr.charAt(enc4)}return output},decode:function(input){var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i<input.length){enc1=_private._keyStr.indexOf(input.charAt(i++));enc2=_private._keyStr.indexOf(input.charAt(i++));enc3=_private._keyStr.indexOf(input.charAt(i++));enc4=_private._keyStr.indexOf(input.charAt(i++));chr1=(enc1<<2)|(enc2>>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2)}if(enc4!=64){output=output+String.fromCharCode(chr3)}}output=epiton.codecs.UTF8.decode(output);return output}};return _public}();epiton.classloader.setLoaded("codecs");epiton.utils={};epiton.utils.Ajax=function(){var _public={ResultMap:function(){this.success=true},createXMLHttpRequest:function(){try{return new XMLHttpRequest()}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(e){}try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}return null},get:function(path,onReadyFunc){var xhReq=epiton.utils.Ajax.createXMLHttpRequest();function onReadReady(){if(xhReq.readyState==4){onReadyFunc(xhReq)}}xhReq.open("GET",path,true);if(onReadyFunc){xhReq.onreadystatechange=onReadReady}xhReq.send(null)},post:function(path,onReadyFunc,body){var xhReq=epiton.utils.Ajax.createXMLHttpRequest();function onReadReady(){if(xhReq.readyState==4){onReadyFunc(xhReq)}}xhReq.open("POST",path,true);xhReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");xhReq.setRequestHeader("Content-length",body.length);xhReq.setRequestHeader("Connection","close");if(onReadyFunc){xhReq.onreadystatechange=onReadReady}xhReq.send(body)}};return _public}();epiton.classloader.setLoaded("utils.ajax");epiton.utils.Object=function(){var _private={clone:function(obj){if(obj==null||typeof(obj)!="object"){return obj}var temp=new obj.constructor();for(var key in obj){temp[key]=this.clone(obj[key])}return temp}};var _public={clone:function(obj){if(obj){try{return eval(uneval(obj))}catch(e){}return _private.clone(obj)}else{return obj}},isString:function(a){return typeof a=="string"}};return _public}();epiton.utils.Json=function(){var _public={isJson:function(json){if(json){if((/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(json))){return true}}return false},eval:function(json){if(_public.isJson(json)){return eval("("+json+")")}return null},serialize:function(obj){switch(typeof obj){case"object":if(obj){var list=[];if(obj instanceof Array){for(var i=0;i<obj.length;i++){list.push(toJson(obj[i]))}return"["+list.join(",")+"]"}else{for(var prop in obj){list.push('"'+prop+'":'+this.serialize(obj[prop]))}return"{"+list.join(",")+"}"}}else{return"null"}case"string":return'"'+obj.replace(/(["'])/g,"\\$1")+'"';case"number":case"boolean":return new String(obj)}}};return _public}();epiton.utils.Cookie=function(){var _public={get:function(check_name){var a_all_cookies=document.cookie.split(";");var a_temp_cookie="";var cookie_name="";var cookie_value="";var b_cookie_found=false;var i=0;for(i=0;i<a_all_cookies.length;i++){a_temp_cookie=a_all_cookies[i].split("=");cookie_name=a_temp_cookie[0].replace(/^\s+|\s+$/g,"");if(cookie_name==check_name){b_cookie_found=true;if(a_temp_cookie.length>1){cookie_value=unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g,""))}return cookie_value;break}a_temp_cookie=null;cookie_name=""}if(!b_cookie_found){return null}},set:function(name,value,expireMins,path,domain,secure){var today=new Date();today.setTime(today.getTime());if(expireMins){expireMins=expireMins*1000*60}var expires_date=new Date(today.getTime()+(expireMins));document.cookie=name+"="+escape(value)+((expireMins)?";expires="+expires_date.toGMTString():"")+((path)?";path="+path:"")+((domain)?";domain="+domain:"")+((secure)?";secure":"")}};return _public}();epiton.utils.Dom=function(){var _private={collateNodes:function(nodes,map){if(!nodes){return}var i=0;for(i=0;i<nodes.length;i++){var n=nodes[i];if(n.type=="radio"||n.type=="checkbox"){if(n.checked==true){map[n.name]=n.value}else{if(!map[n.name]){map[n.name]=""}}}else{map[n.name]=n.value}}},expandNodes:function(nodes,map){if(!nodes){return}var i=0;for(i=0;i<nodes.length;i++){var n=nodes[i];if(n.name){var val=map[n.name];if(val){if(n.nodeName=="SELECT"){var sc=n.getElementsByTagName("option");var j=0;for(j=0;j<sc.length;j++){var sjn=sc[j];if(sjn.value==val){sjn.selected=true}else{sjn.selected=false}}}else{if(n.nodeName=="INPUT"){if(n.type=="radio"){if(n.value==val){n.checked=true}else{n.checked=false}}}}}}}},collateFormTypeElements:function(el,map){if(!el){return}_private.collateNodes(el.getElementsByTagName("select"),map);_private.collateNodes(el.getElementsByTagName("input"),map)},setNodeValuesFromMap:function(el,map){_private.expandNodes(el.getElementsByTagName("select"),map);_private.expandNodes(el.getElementsByTagName("input"),map)}};var _public={renderIntoDiv:function(divId,nval){var _el=document.getElementById(divId);if(_el){if(nval){_el.innerHTML=nval}}},renderIntoElement:function(el,nval){if(el){var _el=null;if(epiton.utils.Object.isString(el)){_el=document.getElementById(el)}else{_el=el}if(_el&&nval){_el.innerHTML=nval}}},createNode:function(ntype,nname){var ret=null;try{return document.createElement("<"+ntype+" name='"+nname+"'></"+ntype+">")}catch(e){}try{ret=document.createElement(ntype);ret.name=nname}catch(e){}return ret},renderIntoInput:function(inputId,nval){var _el=document.getElementById(inputId);if(_el){if(nval){_el.value=nval}}},setElementValue:function(inputEl,nval){inputEl.setAttribute("value",nval);inputEl.value=nval},getDivInputsAsMap:function(divId){var ret={};var el=document.getElementById(divId);_private.collateFormTypeElements(el,ret);return ret},setDivInputsFromMap:function(divId,map){var el=document.getElementById(divId);_private.setNodeValuesFromMap(el,map)},getChildNode:function(parent,childTagName,childIdSubstring,recursive){if(!childTagName){var nodes=parent.childNodes}else{var nodes=parent.getElementsByTagName(childTagName)}if(nodes){for(var i=0;i<nodes.length;i++){if(nodes[i].id&&nodes[i].id.match(childIdSubstring)){return nodes[i]}if(recursive){epiton.utils.Dom.getChildNode(nodes[i],childTagName,childIdSubstring,true)}}}return null},setupInstanceIds:function(node,num){if(node.id){node.baseId=node.id;node.num=num;node.id+=num}var children=node.childNodes;if(children){for(var i=0;i<children.length;i++){epiton.utils.Dom.setupInstanceIds(children[i],num)}}},isInstance:function(node){return node.baseId&&node.baseId!=""&&node.num&&node.num!=""},convertHtmlStringToDom:function(htmlString){var containerNode=document.createElement("div");containerNode.innerHTML=htmlString;var docFrag=document.createDocumentFragment();for(var i=0;i<containerNode.childNodes.length;i++){docFrag.appendChild(containerNode.childNodes[i])}return docFrag},replaceInnerHtml:function(node,htmlString){while(node.hasChildNodes()){node.removeChild(node.firstChild)}node.appendChild(epiton.utils.Dom.convertHtmlStringToDom(htmlString))},getNodeTextContent:function(node){if(node.innerText!==undefined){return node.innerText}else{if(node.textContent!==undefined){return node.textContent}else{return null}}},setNodeTextContent:function(node,text){if(node.innerText!==undefined){node.innerText=text}else{if(node.textContent!==undefined){node.textContent=text}}},setDefaultInputText:function(inputId,defaultText,errorMsg){var input=document.getElementById(inputId);input.defaultText=defaultText;if(errorMsg){input.errorMsg=errorMsg}input.value=defaultText;if(input.type=="text"){input.onfocus=function(){epiton.utils.Dom.focusTextField(inputId)};input.onblur=function(){epiton.utils.Dom.blurTextField(inputId)}}else{if(input.type=="password"){input.onfocus=function(){epiton.utils.Dom.focusPWfield(inputId)};input.onblur=function(){epiton.utils.Dom.blurPWfield(inputId)};epiton.utils.Dom.toggleBtwnPasswordandText(inputId,false)}}},setFieldToDefault:function(field){if(field.defaultText){if(field.type=="password"){epiton.utils.Dom.toggleBtwnPasswordandText(field,false)}field.value=field.defaultText;epiton.utils.Dom.removeClass(field,"field_error")}},setFieldToError:function(field,errorIndex){if(field.type=="password"){field=epiton.utils.Dom.toggleBtwnPasswordandText(field.id,false)}epiton.utils.Dom.addClass(field,"field_error");if(field.errorMsg){if(errorIndex!==undefined&&typeof field.errorMsg!="string"){field.value=field.errorMsg[errorIndex]}else{if(typeof field.errorMsg=="string"){field.value=field.errorMsg}}}},fieldIsError:function(field){if(field.errorMsg){if(typeof field.errorMsg=="string"){return(field.value==field.errorMsg)}else{for(var i=0;i<field.errorMsg.length;i++){if(field.value==field.errorMsg[i]){return true}}}}return false},blurAllFormFields:function(form){for(var i=0;i<form.length;i++){var n=form.elements[i];if(n.nodeName=="INPUT"){n.blur()}}},resetFormFields:function(form){for(var i=0;i<form.length;i++){var input=form.elements[i];if((input.type=="text"||input.type=="password")&&input.defaultText){epiton.utils.Dom.removeClass(input,"field_error");input.value=input.defaultText;if(input.type=="password"){epiton.utils.Dom.toggleBtwnPasswordandText(input.id,false)}}else{if(input.type=="checkbox"){input.checked=input.defaultChecked}}}},findFocusedInput:function(form){for(var i=0;i<form.length;i++){var n=form.elements[i];if(n.nodeName=="INPUT"){if(n.focused!==undefined){if(n.focused){return n}}}}return null},toggleBtwnPasswordandText:function(inputId,isFocus){var oldPW=document.getElementById(inputId);var form=oldPW.parentNode;var newField=document.createElement("input");if(oldPW.type=="text"){newField.type="password"}else{if(oldPW.type=="password"){newField.type="text"}}newField.id=inputId;if(oldPW.name){newField.name=oldPW.name}if(oldPW.size){newField.size=oldPW.size}if(oldPW.defaultText){newField.defaultText=oldPW.defaultText}if(oldPW.errorMsg){newField.errorMsg=oldPW.errorMsg}if(oldPW.className){newField.className=oldPW.className}if(oldPW.style.width){newField.style.width=oldPW.style.width}if(oldPW.onfocus){newField.onfocus=oldPW.onfocus}if(oldPW.onblur){newField.onblur=oldPW.onblur}form.replaceChild(newField,oldPW);if(isFocus){newField.value="";newField.focus();document.getElementById(inputId).focus()}else{newField.value=oldPW.defaultText}return newField},focusTextField:function(id){var elem=document.getElementById(id);elem.focused=true;epiton.utils.Dom.removeClass(elem,"field_error");if(elem.value==elem.defaultText||(epiton.utils.Dom.fieldIsError(elem))){elem.value=""}},blurTextField:function(id){var elem=document.getElementById(id);elem.focused=false;if(elem.value==""){elem.value=elem.defaultText}},blurPWfield:function(pw_id){var pw=document.getElementById(pw_id);pw.focused=false;if(pw.value==""&&pw.type=="password"){setTimeout("if(document.getElementById('"+pw_id+"').type=='password'){epiton.utils.Dom.toggleBtwnPasswordandText('"+pw_id+"',false)}",10)}},focusPWfield:function(pw_id){var pw=document.getElementById(pw_id);pw.focused=true;epiton.utils.Dom.removeClass(pw,"field_error");if((pw.value==pw.defaultText||(epiton.utils.Dom.fieldIsError(pw)))&&pw.type=="text"){epiton.utils.Dom.toggleBtwnPasswordandText(pw_id,true)}},addClass:function(element,newClass){if(typeof newClass=="string"&&!element.className.match(newClass)){if(element.className.length>0){element.className+=(" "+newClass)}else{element.className+=newClass}}},removeClass:function(element,removeMe){if(typeof removeMe=="string"){var start=element.className.indexOf(removeMe);if(start!=-1){var end=start+removeMe.length-1;var classStr="";if(start>0){classStr+=element.className.substring(0,start)}if(end<(element.className.length-1)){classStr+=element.className.substring(end+2)}element.className=classStr}}},replaceClass:function(element,oldClass,newClass){if(typeof oldClass=="string"&&typeof newClass=="string"){if(!element.className.match(oldClass)){epiton.utils.Dom.addClass(element,newClass)}else{if(!element.className.match(newClass)){element.className=element.className.replace(oldClass,newClass)}}}},stopBubble:function(event){if(!event){window.event.cancelBubble=true}else{event.stopPropagation()}},attachEvent:function(elem,eventType,handlerFunction){if(elem.addEventListener){elem.addEventListener(eventType,handlerFunction,false)}else{if(elem.attachEvent){elem.attachEvent("on"+eventType,handlerFunction)}}},detachEvent:function(elem,eventType,handlerFunction){if(elem.removeEventListener){elem.removeEventListener(eventType,handlerFunction,false)}else{if(elem.detachEvent){elem.detachEvent("on"+eventType,handlerFunction)}}}};return _public}();epiton.utils.DebugLogger=function(){var _private={isActive:false,active:["ProxyCache"],window:null,reset:function(){delete _private.window;_private.window=null;window.onunload=null}};var _public={start:function(){if(_private.window===null){_private.window=window.open("","debug","width=500,height=500,menubar=no,toolbar=no,location=no,scrollbars=yes");_private.window.document.title="Debug Logger :)";_private.window.onclose=_private.reset;var close=_private.window.document.createElement("div");epiton.utils.Dom.setNodeTextContent(close,"[close me]");close.style.cursor="pointer";close.style.color="orange";close.onclick=function(){_private.window.close()};_private.window.document.body.appendChild(close);window.onunload=function(){if(_private.window!==null&&!_private.window.closed){var divider=_private.window.document.createElement("p");epiton.utils.Dom.setNodeTextContent(divider,"///// page refresh or change ////");divider.style.color="red";_private.window.document.body.appendChild(divider)}};_private.isActive=true}},log:function(senderName,message){var active=false;for(var i=0;i<_private.active.length;i++){if(_private.active[i]==senderName){active=true;break}}if(active){if(_private.window!==null&&!_private.window.closed){var p=_private.window.document.createElement("p");epiton.utils.Dom.setNodeTextContent(p,message);_private.window.document.body.appendChild(p);return true}}return false},activate:function(senderName){var exists=false;for(var i=0;i<_private.active.length;i++){if(_private.active[i]==senderName){exists=true;break}}if(!exists){_private.active.push(senderName)}}};return _public}();epiton.utils.ProxyCache={instance:function(parent,parentName,filepath,selectedDivArray,init){epiton.utils.DebugLogger.log("ProxyCache","---creating proxycache instance. parent is: "+parentName+", init is "+init);var _private={_parent:parent,_parentName:parentName,_filepath:filepath,_divArray:selectedDivArray,_dataCache:null,_requestSent:false,_queue:[],_dequeueAll:function(){epiton.utils.DebugLogger.log("ProxyCache","---dequeueAll");if(_private._queue.length>0){for(var item=_private._queue.shift();item!=undefined;item=_private._queue.shift()){_private._handleItem(item)}}},_handleItem:function(item){epiton.utils.DebugLogger.log("ProxyCache","---handleItem");var data=null;if(item.stripToDivId){epiton.utils.DebugLogger.log("ProxyCache","finding stripToDivId");if(_private._dataCache.isAll===true){epiton.utils.DebugLogger.log("ProxyCache","data isAll");data=_private._trim(_private._dataCache.all,item.stripToDivId)}else{epiton.utils.DebugLogger.log("ProxyCache","try: find div in map");data=_private._dataCache[item.stripToDivId];if(!data){epiton.utils.DebugLogger.log("ProxyCache","searching within divs in map");for(var divId in _private._dataCache){data=_private._trim(_private._dataCache[divId]);if(data!=""){epiton.utils.DebugLogger.log("ProxyCache","found div within");break}}}}}else{epiton.utils.DebugLogger.log("ProxyCache","no strip");if(_private._dataCache.isAll===true){epiton.utils.DebugLogger.log("ProxyCache","returning all");data=_private._dataCache.all}else{epiton.utils.DebugLogger.log("ProxyCache","concat and returning all");var allText="";for(var divId in _private._dataCache){allText+=_private._dataCache[divId]}data=allText}}item.instanceHandler(item.instance,data)},_storeData:function(req){epiton.utils.DebugLogger.log("ProxyCache","---storeData");if(!req||req.status!=200){return}var responseText=req.responseText;_private._dataCache={};if(_private._divArray){epiton.utils.DebugLogger.log("ProxyCache","divArray -> caching via trim multiple");_private._trimMultiple(responseText,_private._divArray)}else{epiton.utils.DebugLogger.log("ProxyCache","storing entire text to dataCache.all");_private._dataCache.isAll=true;_private._dataCache.all=responseText}if(!init){_private._dequeueAll()}},_trimMultiple:function(text,divIdArray){epiton.utils.DebugLogger.log("ProxyCache","---trimMultiple");if(divIdArray.length>0){for(var i=0;i<divIdArray.length;i++){epiton.utils.DebugLogger.log("ProxyCache","divIdArray[i] is "+divIdArray[i]);_private._dataCache[divIdArray[i]]=_private._trim(text,divIdArray[i])}}else{}},_trim:function(text,divId){epiton.utils.DebugLogger.log("ProxyCache","---trim - divId is "+divId);if(text.indexOf(divId)!=-1){var start=-1;var end=-1;var splitArray=text.split("<");var inComment=false;for(var i=0;i<splitArray.length;i++){if(!inComment&&splitArray[i].indexOf("!--")==0){inComment=true}if(!inComment){if(splitArray[i].indexOf("div")==0){if(splitArray[i].match(divId)){start=i;break}}}else{if(splitArray[i].match("-->")){inComment=false}}}epiton.utils.DebugLogger.log("ProxyCache","start found as: "+i);var innerCount=0;inComment=false;for(var i=start+1;i<splitArray.length;i++){if(!inComment&&splitArray[i].indexOf("!--")==0){inComment=true}if(!inComment){if(splitArray[i].indexOf("div")==0){innerCount++}else{if(splitArray[i].indexOf("/div")==0){if(innerCount>0){innerCount--}else{if(innerCount==0){end=i;epiton.utils.DebugLogger.log("ProxyCache","end found as: "+i);break}}}}}else{if(splitArray[i].match("-->")){inComment=false}}}var divText="";for(var i=start;i<=end;i++){divText+="<"+splitArray[i]}return divText}else{return""}}};var _public={enqueue:function(instance,instanceHandler,stripToDivId){epiton.utils.DebugLogger.log("ProxyCache","---enqueue: instance id is "+instance.id+", stripToDivId is "+stripToDivId);if(!_private._requestSent){epiton.utils.DebugLogger.log("ProxyCache","sending ajax get");epiton.utils.Ajax.get(_private._filepath,_private._storeData);_private._requestSent=true}var item={instance:instance,instanceHandler:instanceHandler,stripToDivId:stripToDivId};if(_private._dataCache===null){epiton.utils.DebugLogger.log("ProxyCache","data not retrieved yet, adding to queue");_private._queue.push(item)}else{epiton.utils.DebugLogger.log("ProxyCache","have data already, going directly to handle");_private._handleItem(item)}},getParent:function(){return _private._parent}};if(init&&!_private._requestSent){epiton.utils.DebugLogger.log("ProxyCache","init->sending ajax get");epiton.utils.Ajax.get(_private._filepath,_private._storeData);init=false;_private._requestSent=true}return _public}};epiton.classloader.setLoaded("utils");epiton.gui.Demographics=function(){var _private={queryForQuestions:function(readyCallBack){function onQuestionsReady(xhReq){if(xhReq.readyState==4&&xhReq.status==200){if(readyCallBack){readyCallBack(xhReq.responseText)}}}epiton.utils.Ajax.get("/epiton/views/demographics/questions.html",onQuestionsReady)},queryForUserDemographics:function(uuid,readyCallBack){if(uuid){function onDemosReady(xhReq){if(xhReq.readyState==4&&xhReq.status==200){if(readyCallBack){readyCallBack(xhReq.responseText)}}}epiton.utils.Ajax.get("/epiton/services/demographics/references/uuid/"+uuid+".json",onDemosReady)}},submitDemographics:function(map,onSubmit){var errors=_private.validateMap(map);if(!errors){var tok=_private.getFormUuidToken(map);if(tok){tok="uuidToken/"+epiton.codecs.Url.encode(tok)}else{tok=epiton.userinfo.UserInfo.getUuid();if(tok){tok="uuid/"+epiton.codecs.Url.encode(tok)}}epiton.utils.Ajax.post("/epiton/services/demographics/references/"+tok,onSubmit,epiton.utils.Json.serialize(map))}},getOptionUuidToken:function(options){if(options.uuidToken){return options.uuidToken}return null},getIsOptionPrefill:function(options){var opt=options.prefill;if(opt&&opt=="true"){return true}return false},getFormUuidToken:function(map){if(map&&map.uuidToken){return map.uuidToken}return null},createFormUuidTokenNode:function(val){var ntok=epiton.utils.Dom.createNode("input","uuidToken");epiton.utils.Dom.setElementValue(ntok,val);ntok.type="hidden";ntok.id="uuidToken";return ntok},validateMap:function(map){return null}};var _public={renderIntoDiv:function(divId,options){function renderQuestionsToDiv(content){var ndiv=document.createElement("div");ndiv.innerHTML=content;var u=epiton.userinfo.UserInfo.getUuidUrlEncoded();if(options){var opt=_private.getOptionUuidToken(options);if(opt){var ntok=_private.createFormUuidTokenNode(opt);ndiv.appendChild(ntok)}if(_private.getIsOptionPrefill(options)){function demoReady(text){var demomap=eval("("+text+")");epiton.utils.Dom.setDivInputsFromMap(divId,demomap)}_private.queryForUserDemographics(u,demoReady)}}epiton.utils.Dom.renderIntoDiv(divId,ndiv.innerHTML)}_private.queryForQuestions(renderQuestionsToDiv)},submitFromDiv:function(divId,onSuccess,onFail){var map=epiton.utils.Dom.getDivInputsAsMap(divId);function onFinish(req){if(req.readyState==4){if(req.status==200){if(onSuccess){onSuccess()}}else{if(req.responseText){try{var map=eval("("+req.responseText+")");onFail(map)}catch(e){onFail()}}else{onFail()}}}}_private.submitDemographics(map,onFinish)}};return _public}();epiton.classloader.setLoaded("gui.demographics");epiton.cache={};epiton.cache.NSMap=function(){var _private={cookieName:"djcs_epiton",store:{},cache:{},writeCookie:function(){var val=epiton.utils.Json.serialize(_private.store);if(val){val=_ck=epiton.codecs.Base64.encode(val)}epiton.utils.Cookie.set(_private.cookieName,val,null,"/",epiton.kerneldependencies.Browser.getCookieSld())},readCache:function(){var _ck=epiton.utils.Cookie.get(_private.cookieName);if(_ck){_ck=epiton.codecs.Base64.decode(_ck);if(epiton.utils.Json.isJson(_ck)){_private.store=eval("("+_ck+")");_private.cache=eval("("+_ck+")")}}},getOrCreateNamespace:function(ns){var nsm=_private.cache[ns];if(!nsm){nsm=_private.cache[ns]={}}return nsm}};var _public={commitNamespace:function(ns){var cobj=_private.cache[ns];if(cobj){_private.store[ns]=epiton.utils.Object.clone(cobj)}else{delete (_private.store[ns])}_private.writeCookie()},setNamespaceValue:function(ns,name,value){var nsm=_private.getOrCreateNamespace(ns);if(value){nsm[name]=value}else{delete (nsm[name])}},revertNamespace:function(ns){var robj=_private.store[ns];if(robj){_private.cache[ns]=_private.clone(robj)}else{delete (_private.cache[ns])}},getNamespaceValue:function(ns,key){var nsv=_private.cache[ns];if(nsv){nsv=nsv[key];if(nsv){return nsv}}return null},clearNamespace:function(ns){delete (_private.cache[ns])},initialize:function(){_private.readCache()}};return _public}();epiton.preInitOnReady(epiton.cache.NSMap.initialize);epiton.classloader.setLoaded("cache");epiton.gui.Callsign=function(){var _public={renderIntoInput:function(inputId){epiton.utils.Dom.renderIntoInput(inputId,epiton.userinfo.UserInfo.getCallsign())},renderIntoDiv:function(divId){epiton.utils.Dom.renderIntoDiv(divId,epiton.userinfo.UserInfo.getCallsign())},renderIntoElement:function(el){epiton.utils.Dom.renderIntoElement(el,epiton.userinfo.UserInfo.getCallsign())}};return _public}();epiton.gui.FirstName=function(){var _public={renderIntoInput:function(inputId){epiton.utils.Dom.renderIntoInput(inputId,epiton.userinfo.UserInfo.getFirstName())},renderIntoDiv:function(divId){epiton.utils.Dom.renderIntoDiv(divId,epiton.userinfo.UserInfo.getFirstName())},renderIntoElement:function(el){epiton.utils.Dom.renderIntoElement(el,epiton.userinfo.UserInfo.getFirstName())}};return _public}();epiton.gui.LastName=function(){var _public={renderIntoInput:function(inputId){epiton.utils.Dom.renderIntoInput(inputId,epiton.userinfo.UserInfo.getLastName())},renderIntoDiv:function(divId){epiton.utils.Dom.renderIntoDiv(divId,epiton.userinfo.UserInfo.getLastName())},renderIntoElement:function(el){epiton.utils.Dom.renderIntoElement(el,epiton.userinfo.UserInfo.getLastName())}};return _public}();epiton.gui.EmailAddress=function(){var _public={renderIntoInput:function(inputId){epiton.utils.Dom.renderIntoInput(inputId,epiton.userinfo.UserInfo.getEmailAddress())},renderIntoDiv:function(divId){epiton.utils.Dom.renderIntoDiv(divId,epiton.userinfo.UserInfo.getEmailAddress())},renderIntoElement:function(el){epiton.utils.Dom.renderIntoElement(el,epiton.userinfo.UserInfo.getEmailAddress())}};return _public}();epiton.gui.Credentials=function(){var _public={hasRole:function(role){return epiton.userinfo.UserInfo.hasRole(role)},isLoggedIn:function(){return epiton.userinfo.UserInfo.isLoggedIn()},getUuid:function(){return epiton.userinfo.UserInfo.getUuid()}};return _public}();epiton.classloader.setLoaded("gui");epiton.kerneldependencies.Browser=function(){var _private={uriParts:{},initUriParts:function(){epiton.classloader.require("epiton.kerneldependencies.Browser.uriParts");_private.uriParts=this.parseUri(document.location);epiton.classloader.setRequireLoaded("epiton.kerneldependencies.Browser.uriParts")},parseOptions:{strictMode:false,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}},isIp:function(str){var p=str.split(".");if(p.length==4){var i=0;for(i=0;i<p.length;i++){if(isNaN(parseInt(p[i]))){return false}}return true}else{return false}},parseUri:function(string){var o=_private.parseOptions,m=o.parser[o.strictMode?"strict":"loose"].exec(string),uri={},i=14;while(i--){uri[o.key[i]]=m[i]||""}uri[o.q.name]={};uri[o.key[12]].replace(o.q.parser,function($0,$1,$2){if($1){uri[o.q.name][$1]=$2}});var h=uri.host;if(h&&!_private.isIp(h)){var dp=h.split(".");if(dp.length>2){h=dp[dp.length-2]+"."+dp[dp.length-1];hp=2;if(dp[dp.length-2]=="co"){h=dp[dp.length-3]+"."+h;hp++}if(hp<dp.length){h="."+h}}}uri.csld=h;return uri}};var _public={getCookieSld:function(){return _private.uriParts.csld},getHost:function(){return _private.uriParts.host},parseUri:function(string){return _private.parseUri(string)}};_private.initUriParts();return _public}();epiton.classloader.setLoaded("kerneldependencies");
