if(!("console"in window)||!("firebug"in console)){(function() {window.console={log:function() {logFormatted(arguments,"");},debug:function() {logFormatted(arguments,"debug");},info:function() {logFormatted(arguments,"info");},warn:function() {logFormatted(arguments,"warning");},error:function() {logFormatted(arguments,"error");},assert:function(truth,message) {if(!truth) {var args=[];for(var i=1;i');for(var i=0;i','',escapeHTML(name),'','');appendObject(value,html);html.push('');} html.push('');logRow(html,"dir");},dirxml:function(node) {var html=[];appendNode(node,html);logRow(html,"dirxml");},group:function() {logRow(arguments,"group",pushGroup);},groupEnd:function() {logRow(arguments,"",popGroup);},time:function(name) {timeMap[name]=(new Date()).getTime();},timeEnd:function(name) {if(name in timeMap) {var delta=(new Date()).getTime()-timeMap[name];logFormatted([name+":",delta+"ms"]);delete timeMap[name];}},count:function() {this.warn(["count() not supported."]);},trace:function() {this.warn(["trace() not supported."]);},profile:function() {this.warn(["profile() not supported."]);},profileEnd:function() {},clear:function() {consoleBody.innerHTML="";},open:function() {toggleConsole(true);},close:function() {if(frameVisible) toggleConsole();}};var consoleFrame=null;var consoleBody=null;var commandLine=null;var frameVisible=false;var messageQueue=[];var groupStack=[];var timeMap={};var clPrefix=">>> ";var isFirefox=navigator.userAgent.indexOf("Firefox")!=-1;var isIE=navigator.userAgent.indexOf("MSIE")!=-1;var isOpera=navigator.userAgent.indexOf("Opera")!=-1;var isSafari=navigator.userAgent.indexOf("AppleWebKit")!=-1;function toggleConsole(forceOpen) {frameVisible=forceOpen||!frameVisible;if(consoleFrame) consoleFrame.style.visibility=frameVisible?"visible":"hidden";else waitForBody();} function focusCommandLine() {toggleConsole(true);if(commandLine) commandLine.focus();} function waitForBody() {if(document.body) createFrame();else setTimeout(waitForBody,200);} function createFrame() {if(consoleFrame) return;window.onFirebugReady=function(doc) {window.onFirebugReady=null;var toolbar=doc.getElementById("toolbar");toolbar.onmousedown=onSplitterMouseDown;commandLine=doc.getElementById("commandLine");addEvent(commandLine,"keydown",onCommandLineKeyDown);addEvent(doc,isIE||isSafari?"keydown":"keypress",onKeyDown);consoleBody=doc.getElementById("log");layout();flush();} var baseURL=getFirebugURL();consoleFrame=document.createElement("iframe");consoleFrame.setAttribute("src",baseURL+"/firebug.html");consoleFrame.setAttribute("frameBorder","0");consoleFrame.style.visibility=(frameVisible?"visible":"hidden");consoleFrame.style.zIndex="2147483647";consoleFrame.style.position="fixed";consoleFrame.style.width="100%";consoleFrame.style.left="0";consoleFrame.style.bottom="0";consoleFrame.style.height="200px";document.body.appendChild(consoleFrame);} function getFirebugURL() {var scripts=document.getElementsByTagName("script");for(var i=0;i=consoleBody.scrollHeight;if(!handler) handler=writeRow;handler(message,className);if(isScrolledToBottom) consoleBody.scrollTop=consoleBody.scrollHeight-consoleBody.offsetHeight;} function appendRow(row) {var container=groupStack.length?groupStack[groupStack.length-1]:consoleBody;container.appendChild(row);} function writeRow(message,className) {var row=consoleBody.ownerDocument.createElement("div");row.className="logRow"+(className?" logRow-"+className:"");row.innerHTML=message.join("");appendRow(row);} function pushGroup(message,className) {logFormatted(message,className);var groupRow=consoleBody.ownerDocument.createElement("div");groupRow.className="logGroup";var groupRowBox=consoleBody.ownerDocument.createElement("div");groupRowBox.className="logGroupBox";groupRow.appendChild(groupRowBox);appendRow(groupRowBox);groupStack.push(groupRowBox);} function popGroup() {groupStack.pop();} function logFormatted(objects,className) {var html=[];var format=objects[0];var objIndex=0;if(typeof(format)!="string") {format="";objIndex=-1;} var parts=parseFormat(format);for(var i=0;i":return">";case"&":return"&";case"'":return"'";case'"':return""";} return"?";};return String(value).replace(/[<>&"']/g,replaceChars);} function objectToString(object) {try {return object+"";} catch(exc) {return null;}} function appendText(object,html) {html.push(escapeHTML(objectToString(object)));} function appendNull(object,html) {html.push('',escapeHTML(objectToString(object)),'');} function appendString(object,html) {html.push('"',escapeHTML(objectToString(object)),'"');} function appendInteger(object,html) {html.push('',escapeHTML(objectToString(object)),'');} function appendFloat(object,html) {html.push('',escapeHTML(objectToString(object)),'');} function appendFunction(object,html) {var reName=/function ?(.*?)\(/;var m=reName.exec(objectToString(object));var name=m?m[1]:"function";html.push('',escapeHTML(name),'()');} function appendObject(object,html) {try {if(object==undefined) appendNull("undefined",html);else if(object==null) appendNull("null",html);else if(typeof object=="string") appendString(object,html);else if(typeof object=="number") appendInteger(object,html);else if(typeof object=="function") appendFunction(object,html);else if(object.nodeType==1) appendSelector(object,html);else if(typeof object=="object") appendObjectFormatted(object,html);else appendText(object,html);} catch(exc) {}} function appendObjectFormatted(object,html) {var text=objectToString(object);var reObject=/\[object (.*?)\]/;var m=reObject.exec(text);html.push('',m?m[1]:text,'')} function appendSelector(object,html) {html.push('');html.push('',escapeHTML(object.nodeName.toLowerCase()),'');if(object.id) html.push('#',escapeHTML(object.id),'');if(object.className) html.push('.',escapeHTML(object.className),'');html.push('');} function appendNode(node,html) {if(node.nodeType==1) {html.push('
','<',node.nodeName.toLowerCase(),'');for(var i=0;i',attr.nodeName.toLowerCase(),'="',escapeHTML(attr.nodeValue),'"')} if(node.firstChild) {html.push('>
');for(var child=node.firstChild;child;child=child.nextSibling) appendNode(child,html);html.push('
</',node.nodeName.toLowerCase(),'>
');} else html.push('/>');} else if(node.nodeType==3) {html.push('
',escapeHTML(node.nodeValue),'
');}} function addEvent(object,name,handler) {if(document.all) object.attachEvent("on"+name,handler);else object.addEventListener(name,handler,false);} function removeEvent(object,name,handler) {if(document.all) object.detachEvent("on"+name,handler);else object.removeEventListener(name,handler,false);} function cancelEvent(event) {if(document.all) event.cancelBubble=true;else event.stopPropagation();} function onError(msg,href,lineNo) {var html=[];var lastSlash=href.lastIndexOf("/");var fileName=lastSlash==-1?href:href.substr(lastSlash+1);html.push('',msg,'','');logRow(html,"error");};function onKeyDown(event) {if(event.keyCode==123) toggleConsole();else if((event.keyCode==108||event.keyCode==76)&&event.shiftKey&&(event.metaKey||event.ctrlKey)) focusCommandLine();else return;cancelEvent(event);} function onSplitterMouseDown(event) {if(isSafari||isOpera) return;addEvent(document,"mousemove",onSplitterMouseMove);addEvent(document,"mouseup",onSplitterMouseUp);for(var i=0;i-1,isSafari=(/webkit|khtml/).test(ua),isSafari3=isSafari&&ua.indexOf("webkit/5")!=-1,isIE=!isOpera&&ua.indexOf("msie")>-1,isIE7=!isOpera&&ua.indexOf("msie 7")>-1,isGecko=!isSafari&&ua.indexOf("gecko")>-1,isGecko3=!isSafari&&ua.indexOf("rv:1.9")>-1,isBorderBox=isIE&&!isStrict,isWindows=(ua.indexOf("windows")!=-1||ua.indexOf("win32")!=-1),isMac=(ua.indexOf("macintosh")!=-1||ua.indexOf("mac os x")!=-1),isAir=(ua.indexOf("adobeair")!=-1),isLinux=(ua.indexOf("linux")!=-1),isSecure=window.location.href.toLowerCase().indexOf("https")===0;if(isIE&&!isIE7){try{document.execCommand("BackgroundImageCache",false,true)}catch(e){}}Ext.apply(Ext,{isStrict:isStrict,isSecure:isSecure,isReady:false,enableGarbageCollector:true,enableListenerCollection:false,SSL_SECURE_URL:"javascript:false",BLANK_IMAGE_URL:"http:/"+"/extjs.com/s.gif",emptyFn:function(){},applyIf:function(o,c){if(o&&c){for(var p in c){if(typeof o[p]=="undefined"){o[p]=c[p]}}}return o},addBehaviors:function(o){if(!Ext.isReady){Ext.onReady(function(){Ext.addBehaviors(o)});return}var cache={};for(var b in o){var parts=b.split("@");if(parts[1]){var s=parts[0];if(!cache[s]){cache[s]=Ext.select(s)}cache[s].on(parts[1],o[b])}}cache=null},id:function(el,prefix){prefix=prefix||"ext-gen";el=Ext.getDom(el);var id=prefix+(++idSeed);return el?(el.id?el.id:(el.id=id)):id},extend:function(){var io=function(o){for(var m in o){this[m]=o[m]}};var oc=Object.prototype.constructor;return function(sb,sp,overrides){if(typeof sp=="object"){overrides=sp;sp=sb;sb=overrides.constructor!=oc?overrides.constructor:function(){sp.apply(this,arguments)}}var F=function(){},sbp,spp=sp.prototype;F.prototype=spp;sbp=sb.prototype=new F();sbp.constructor=sb;sb.superclass=spp;if(spp.constructor==oc){spp.constructor=sp}sb.override=function(o){Ext.override(sb,o)};sbp.override=io;Ext.override(sb,overrides);sb.extend=function(o){Ext.extend(sb,o)};return sb}}(),override:function(origclass,overrides){if(overrides){var p=origclass.prototype;for(var method in overrides){p[method]=overrides[method]}}},namespace:function(){var a=arguments,o=null,i,j,d,rt;for(i=0;i=0){L=G[P]}if(!S||!L){return false}this.doRemove(S,O,L[this.WFN],false);delete G[P][this.WFN];delete G[P][this.FN];G.splice(P,1);return true},getTarget:function(N,M){N=N.browserEvent||N;var L=N.target||N.srcElement;return this.resolveTextNode(L)},resolveTextNode:function(L){if(Ext.isSafari&&L&&3==L.nodeType){return L.parentNode}else{return L}},getPageX:function(M){M=M.browserEvent||M;var L=M.pageX;if(!L&&0!==L){L=M.clientX||0;if(Ext.isIE){L+=this.getScroll()[1]}}return L},getPageY:function(L){L=L.browserEvent||L;var M=L.pageY;if(!M&&0!==M){M=L.clientY||0;if(Ext.isIE){M+=this.getScroll()[0]}}return M},getXY:function(L){L=L.browserEvent||L;return[this.getPageX(L),this.getPageY(L)]},getRelatedTarget:function(M){M=M.browserEvent||M;var L=M.relatedTarget;if(!L){if(M.type=="mouseout"){L=M.toElement}else{if(M.type=="mouseover"){L=M.fromElement}}}return this.resolveTextNode(L)},getTime:function(N){N=N.browserEvent||N;if(!N.time){var M=new Date().getTime();try{N.time=M}catch(L){this.lastError=L;return M}}return N.time},stopEvent:function(L){this.stopPropagation(L);this.preventDefault(L)},stopPropagation:function(L){L=L.browserEvent||L;if(L.stopPropagation){L.stopPropagation()}else{L.cancelBubble=true}},preventDefault:function(L){L=L.browserEvent||L;if(L.preventDefault){L.preventDefault()}else{L.returnValue=false}},getEvent:function(M){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break}N=N.caller}}return L},getCharCode:function(L){L=L.browserEvent||L;return L.charCode||L.keyCode||0},_getCacheIndex:function(Q,N,P){for(var O=0,M=G.length;O0)}var Q=[];for(var M=0,L=H.length;M0){for(var Q=0,S=T.length;Q0){O=G.length;while(O){N=O-1;M=G[N];if(M){R.removeListener(M[R.EL],M[R.TYPE],M[R.FN],N)}O=O-1}M=null;R.clearCache()}R.doRemove(window,"unload",R._unload)},getScroll:function(){var L=document.documentElement,M=document.body;if(L&&(L.scrollTop||L.scrollLeft)){return[L.scrollTop,L.scrollLeft]}else{if(M){return[M.scrollTop,M.scrollLeft]}else{return[0,0]}}},doAdd:function(){if(window.addEventListener){return function(O,M,N,L){O.addEventListener(M,N,(L))}}else{if(window.attachEvent){return function(O,M,N,L){O.attachEvent("on"+M,N)}}else{return function(){}}}}(),doRemove:function(){if(window.removeEventListener){return function(O,M,N,L){O.removeEventListener(M,N,(L))}}else{if(window.detachEvent){return function(N,L,M){N.detachEvent("on"+L,M)}}else{return function(){}}}}()}}();var D=Ext.lib.Event;D.on=D.addListener;D.un=D.removeListener;if(document&&document.body){D._load()}else{D.doAdd(window,"load",D._load)}D.doAdd(window,"unload",D._unload);D._tryPreloadAttach();Ext.lib.Ajax={request:function(K,I,E,J,F){if(F){var G=F.headers;if(G){for(var H in G){if(G.hasOwnProperty(H)){this.initHeader(H,G[H],false)}}}if(F.xmlData){if(!G||!G["Content-Type"]){this.initHeader("Content-Type","text/xml",false)}K=(K?K:(F.method?F.method:"POST"));J=F.xmlData}else{if(F.jsonData){if(!G||!G["Content-Type"]){this.initHeader("Content-Type","application/json",false)}K=(K?K:(F.method?F.method:"POST"));J=typeof F.jsonData=="object"?Ext.encode(F.jsonData):F.jsonData}}}return this.asyncRequest(K,I,E,J)},serializeForm:function(F){if(typeof F=="string"){F=(document.getElementById(F)||document.forms[F])}var G,E,H,J,K="",M=false;for(var L=0;L=200&&G<300){F=this.createResponseObject(I,J.argument);if(J.success){if(!J.scope){J.success(F)}else{J.success.apply(J.scope,[F])}}}else{switch(G){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:F=this.createExceptionObject(I.tId,J.argument,(E?E:false));if(J.failure){if(!J.scope){J.failure(F)}else{J.failure.apply(J.scope,[F])}}break;default:F=this.createResponseObject(I,J.argument);if(J.failure){if(!J.scope){J.failure(F)}else{J.failure.apply(J.scope,[F])}}}}this.releaseObject(I);F=null},createResponseObject:function(E,K){var H={};var M={};try{var G=E.conn.getAllResponseHeaders();var J=G.split("\n");for(var I=0;I=this.left&&E.right<=this.right&&E.top>=this.top&&E.bottom<=this.bottom)},getArea:function(){return((this.bottom-this.top)*(this.right-this.left))},intersect:function(I){var G=Math.max(this.top,I.top);var H=Math.min(this.right,I.right);var E=Math.min(this.bottom,I.bottom);var F=Math.max(this.left,I.left);if(E>=G&&H>=F){return new Ext.lib.Region(G,H,E,F)}else{return null}},union:function(I){var G=Math.min(this.top,I.top);var H=Math.max(this.right,I.right);var E=Math.max(this.bottom,I.bottom);var F=Math.min(this.left,I.left);return new Ext.lib.Region(G,H,E,F)},constrainTo:function(E){this.top=this.top.constrain(E.top,E.bottom);this.bottom=this.bottom.constrain(E.top,E.bottom);this.left=this.left.constrain(E.left,E.right);this.right=this.right.constrain(E.left,E.right);return this},adjust:function(G,F,E,H){this.top+=G;this.left+=F;this.right+=H;this.bottom+=E;return this}};Ext.lib.Region.getRegion=function(H){var J=Ext.lib.Dom.getXY(H);var G=J[1];var I=J[0]+H.offsetWidth;var E=J[1]+H.offsetHeight;var F=J[0];return new Ext.lib.Region(G,I,E,F)};Ext.lib.Point=function(E,F){if(Ext.isArray(E)){F=E[1];E=E[0]}this.x=this.right=this.left=this[0]=E;this.y=this.top=this.bottom=this[1]=F};Ext.lib.Point.prototype=new Ext.lib.Region();Ext.lib.Anim={scroll:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G,Ext.lib.Scroll)},motion:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G,Ext.lib.Motion)},color:function(H,F,I,J,E,G){return this.run(H,F,I,J,E,G,Ext.lib.ColorAnim)},run:function(I,F,K,L,E,H,G){G=G||Ext.lib.AnimBase;if(typeof L=="string"){L=Ext.lib.Easing[L]}var J=new G(I,F,K,L);J.animateX(function(){Ext.callback(E,H)});return J}};function C(E){if(!B){B=new Ext.Element.Flyweight()}B.dom=E;return B}if(Ext.isIE){function A(){var E=Function.prototype;delete E.createSequence;delete E.defer;delete E.createDelegate;delete E.createCallback;delete E.createInterceptor;window.detachEvent("onunload",A)}window.attachEvent("onunload",A)}Ext.lib.AnimBase=function(F,E,G,H){if(F){this.init(F,E,G,H)}};Ext.lib.AnimBase.prototype={toString:function(){var E=this.getEl();var F=E.id||E.tagName;return("Anim "+F)},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(E,G,F){return this.method(this.currentFrame,G,F-G,this.totalFrames)},setAttribute:function(E,G,F){if(this.patterns.noNegatives.test(E)){G=(G>0)?G:0}Ext.fly(this.getEl(),"_anim").setStyle(E,G+F)},getAttribute:function(E){var G=this.getEl();var I=C(G).getStyle(E);if(I!=="auto"&&!this.patterns.offsetUnit.test(I)){return parseFloat(I)}var F=this.patterns.offsetAttribute.exec(E)||[];var J=!!(F[3]);var H=!!(F[2]);if(H||(C(G).getStyle("position")=="absolute"&&J)){I=G["offset"+F[0].charAt(0).toUpperCase()+F[0].substr(1)]}else{I=0}return I},getDefaultUnit:function(E){if(this.patterns.defaultUnit.test(E)){return"px"}return""},animateX:function(G,E){var F=function(){this.onComplete.removeListener(F);if(typeof G=="function"){G.call(E||this,this)}};this.onComplete.addListener(F,this);this.animate()},setRuntimeAttribute:function(F){var K;var G;var H=this.attributes;this.runtimeAttributes[F]={};var J=function(L){return(typeof L!=="undefined")};if(!J(H[F]["to"])&&!J(H[F]["by"])){return false}K=(J(H[F]["from"]))?H[F]["from"]:this.getAttribute(F);if(J(H[F]["to"])){G=H[F]["to"]}else{if(J(H[F]["by"])){if(K.constructor==Array){G=[];for(var I=0,E=K.length;I0&&isFinite(O)){if(K.currentFrame+O>=N){O=N-(M+1)}K.currentFrame+=O}}};Ext.lib.Bezier=new function(){this.getPosition=function(I,H){var J=I.length;var G=[];for(var F=0;F0&&!Ext.isArray(O[0])){O=[O]}else{var N=[];for(P=0,R=O.length;P0){this.runtimeAttributes[S]=this.runtimeAttributes[S].concat(O)}this.runtimeAttributes[S][this.runtimeAttributes[S].length]=L}else{I.setRuntimeAttribute.call(this,S)}};var E=function(J,L){var K=Ext.lib.Dom.getXY(this.getEl());J=[J[0]-K[0]+L[0],J[1]-K[1]+L[1]];return J};var G=function(J){return(typeof J!=="undefined")}})();(function(){Ext.lib.Scroll=function(I,H,J,K){if(I){Ext.lib.Scroll.superclass.constructor.call(this,I,H,J,K)}};Ext.extend(Ext.lib.Scroll,Ext.lib.ColorAnim);var F=Ext.lib;var G=F.Scroll.superclass;var E=F.Scroll.prototype;E.toString=function(){var H=this.getEl();var I=H.id||H.tagName;return("Scroll "+I)};E.doMethod=function(H,K,I){var J=null;if(H=="scroll"){J=[this.method(this.currentFrame,K[0],I[0]-K[0],this.totalFrames),this.method(this.currentFrame,K[1],I[1]-K[1],this.totalFrames)]}else{J=G.doMethod.call(this,H,K,I)}return J};E.getAttribute=function(H){var J=null;var I=this.getEl();if(H=="scroll"){J=[I.scrollLeft,I.scrollTop]}else{J=G.getAttribute.call(this,H)}return J};E.setAttribute=function(H,K,J){var I=this.getEl();if(H=="scroll"){I.scrollLeft=K[0];I.scrollTop=K[1]}else{G.setAttribute.call(this,H,K,J)}}})()})();;Ext.DomHelper=function(){var L=null;var F=/^(?:br|frame|hr|img|input|link|meta|range|spacer|wbr|area|param|col)$/i;var B=/^table|tbody|tr|td$/i;var A=function(T){if(typeof T=="string"){return T}var O="";if(Ext.isArray(T)){for(var R=0,P=T.length;R"}else{O+=">";var U=T.children||T.cn;if(U){O+=A(U)}else{if(T.html){O+=T.html}}O+=""}return O};var M=function(T,O){var S;if(Ext.isArray(T)){S=document.createDocumentFragment();for(var R=0,P=T.length;R",K=""+E,H=C+"",D=""+K;var G=function(N,O,Q,P){if(!L){L=document.createElement("div")}var R;var S=null;if(N=="td"){if(O=="afterbegin"||O=="beforeend"){return}if(O=="beforebegin"){S=Q;Q=Q.parentNode}else{S=Q.nextSibling;Q=Q.parentNode}R=I(4,H,P,D)}else{if(N=="tr"){if(O=="beforebegin"){S=Q;Q=Q.parentNode;R=I(3,C,P,K)}else{if(O=="afterend"){S=Q.nextSibling;Q=Q.parentNode;R=I(3,C,P,K)}else{if(O=="afterbegin"){S=Q.firstChild}R=I(4,H,P,D)}}}else{if(N=="tbody"){if(O=="beforebegin"){S=Q;Q=Q.parentNode;R=I(2,J,P,E)}else{if(O=="afterend"){S=Q.nextSibling;Q=Q.parentNode;R=I(2,J,P,E)}else{if(O=="afterbegin"){S=Q.firstChild}R=I(3,C,P,K)}}}else{if(O=="beforebegin"||O=="afterend"){return}if(O=="afterbegin"){S=Q.firstChild}R=I(2,J,P,E)}}}Q.insertBefore(R,S);return R};return{useDom:false,markup:function(N){return A(N)},applyStyles:function(P,Q){if(Q){P=Ext.fly(P);if(typeof Q=="string"){var O=/\s?([a-z\-]*)\:\s?([^;]*);?/gi;var R;while((R=O.exec(Q))!=null){P.setStyle(R[1],R[2])}}else{if(typeof Q=="object"){for(var N in Q){P.setStyle(N,Q[N])}}else{if(typeof Q=="function"){Ext.DomHelper.applyStyles(P,Q.call())}}}}},insertHtml:function(P,R,Q){P=P.toLowerCase();if(R.insertAdjacentHTML){if(B.test(R.tagName)){var O;if(O=G(R.tagName.toLowerCase(),P,R,Q)){return O}}switch(P){case"beforebegin":R.insertAdjacentHTML("BeforeBegin",Q);return R.previousSibling;case"afterbegin":R.insertAdjacentHTML("AfterBegin",Q);return R.firstChild;case"beforeend":R.insertAdjacentHTML("BeforeEnd",Q);return R.lastChild;case"afterend":R.insertAdjacentHTML("AfterEnd",Q);return R.nextSibling}throw"Illegal insertion point -> \""+P+"\""}var N=R.ownerDocument.createRange();var S;switch(P){case"beforebegin":N.setStartBefore(R);S=N.createContextualFragment(Q);R.parentNode.insertBefore(S,R);return R.previousSibling;case"afterbegin":if(R.firstChild){N.setStartBefore(R.firstChild);S=N.createContextualFragment(Q);R.insertBefore(S,R.firstChild);return R.firstChild}else{R.innerHTML=Q;return R.firstChild}case"beforeend":if(R.lastChild){N.setStartAfter(R.lastChild);S=N.createContextualFragment(Q);R.appendChild(S);return R.lastChild}else{R.innerHTML=Q;return R.lastChild}case"afterend":N.setStartAfter(R);S=N.createContextualFragment(Q);R.parentNode.insertBefore(S,R.nextSibling);return R.nextSibling}throw"Illegal insertion point -> \""+P+"\""},insertBefore:function(N,P,O){return this.doInsert(N,P,O,"beforeBegin")},insertAfter:function(N,P,O){return this.doInsert(N,P,O,"afterEnd","nextSibling")},insertFirst:function(N,P,O){return this.doInsert(N,P,O,"afterBegin","firstChild")},doInsert:function(Q,S,R,T,P){Q=Ext.getDom(Q);var O;if(this.useDom){O=M(S,null);(P==="firstChild"?Q:Q.parentNode).insertBefore(O,P?Q[P]:Q)}else{var N=A(S);O=this.insertHtml(T,Q,N)}return R?Ext.get(O,true):O},append:function(P,R,Q){P=Ext.getDom(P);var O;if(this.useDom){O=M(R,null);P.appendChild(O)}else{var N=A(R);O=this.insertHtml("beforeEnd",P,N)}return Q?Ext.get(O,true):O},overwrite:function(N,P,O){N=Ext.getDom(N);N.innerHTML=A(P);return O?Ext.get(N.firstChild,true):N.firstChild},createTemplate:function(O){var N=A(O);return new Ext.Template(N)}}}();Ext.Template=function(E){var B=arguments;if(Ext.isArray(E)){E=E.join("")}else{if(B.length>1){var C=[];for(var D=0,A=B.length;D+~]\s?|\s|$)/;var tagTokenRe=/^(#)?([\w-\*]+)/;var nthRe=/(\d*)n\+?(\d*)/,nthRe2=/\D/;function child(p,index){var i=0;var n=p.firstChild;while(n){if(n.nodeType==1){if(++i==index){return n}}n=n.nextSibling}return null}function next(n){while((n=n.nextSibling)&&n.nodeType!=1){}return n}function prev(n){while((n=n.previousSibling)&&n.nodeType!=1){}return n}function children(d){var n=d.firstChild,ni=-1;while(n){var nx=n.nextSibling;if(n.nodeType==3&&!nonSpace.test(n.nodeValue)){d.removeChild(n)}else{n.nodeIndex=++ni}n=nx}return this}function byClassName(c,a,v){if(!v){return c}var r=[],ri=-1,cn;for(var i=0,ci;ci=c[i];i++){if((" "+ci.className+" ").indexOf(v)!=-1){r[++ri]=ci}}return r}function attrValue(n,attr){if(!n.tagName&&typeof n.length!="undefined"){n=n[0]}if(!n){return null}if(attr=="for"){return n.htmlFor}if(attr=="class"||attr=="className"){return n.className}return n.getAttribute(attr)||n[attr]}function getNodes(ns,mode,tagName){var result=[],ri=-1,cs;if(!ns){return result}tagName=tagName||"*";if(typeof ns.getElementsByTagName!="undefined"){ns=[ns]}if(!mode){for(var i=0,ni;ni=ns[i];i++){cs=ni.getElementsByTagName(tagName);for(var j=0,ci;ci=cs[j];j++){result[++ri]=ci}}}else{if(mode=="/"||mode==">"){var utag=tagName.toUpperCase();for(var i=0,ni,cn;ni=ns[i];i++){cn=ni.children||ni.childNodes;for(var j=0,cj;cj=cn[j];j++){if(cj.nodeName==utag||cj.nodeName==tagName||tagName=="*"){result[++ri]=cj}}}}else{if(mode=="+"){var utag=tagName.toUpperCase();for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(n&&(n.nodeName==utag||n.nodeName==tagName||tagName=="*")){result[++ri]=n}}}else{if(mode=="~"){for(var i=0,n;n=ns[i];i++){while((n=n.nextSibling)&&(n.nodeType!=1||(tagName=="*"||n.tagName.toLowerCase()!=tagName))){}if(n){result[++ri]=n}}}}}}return result}function concat(a,b){if(b.slice){return a.concat(b)}for(var i=0,l=b.length;i1){return nodup(results)}return results},selectNode:function(path,root){return Ext.DomQuery.select(path,root)[0]},selectValue:function(path,root,defaultValue){path=path.replace(trimRe,"");if(!valueCache[path]){valueCache[path]=Ext.DomQuery.compile(path,"select")}var n=valueCache[path](root);n=n[0]?n[0]:n;var v=(n&&n.firstChild?n.firstChild.nodeValue:null);return((v===null||v===undefined||v==="")?defaultValue:v)},selectNumber:function(path,root,defaultValue){var v=Ext.DomQuery.selectValue(path,root,defaultValue||0);return parseFloat(v)},is:function(el,ss){if(typeof el=="string"){el=document.getElementById(el)}var isArray=Ext.isArray(el);var result=Ext.DomQuery.filter(isArray?el:[el],ss);return isArray?(result.length==el.length):(result.length>0)},filter:function(els,ss,nonMatches){ss=ss.replace(trimRe,"");if(!simpleCache[ss]){simpleCache[ss]=Ext.DomQuery.compile(ss,"simple")}var result=simpleCache[ss](els);return nonMatches?quickDiff(result,els):result},matchers:[{re:/^\.([\w-]+)/,select:"n = byClassName(n, null, \" {1} \");"},{re:/^\:([\w-]+)(?:\(((?:[^\s>\/]*|.*?))\))?/,select:"n = byPseudo(n, \"{1}\", \"{2}\");"},{re:/^(?:([\[\{])(?:@)?([\w-]+)\s?(?:(=|.=)\s?['"]?(.*?)["']?)?[\]\}])/,select:"n = byAttribute(n, \"{2}\", \"{4}\", \"{3}\", \"{1}\");"},{re:/^#([\w-]+)/,select:"n = byId(n, null, \"{1}\");"},{re:/^@([\w-]+)/,select:"return {firstChild:{nodeValue:attrValue(n, \"{1}\")}};"}],operators:{"=":function(a,v){return a==v},"!=":function(a,v){return a!=v},"^=":function(a,v){return a&&a.substr(0,v.length)==v},"$=":function(a,v){return a&&a.substr(a.length-v.length)==v},"*=":function(a,v){return a&&a.indexOf(v)!==-1},"%=":function(a,v){return(a%v)==0},"|=":function(a,v){return a&&(a==v||a.substr(0,v.length+1)==v+"-")},"~=":function(a,v){return a&&(" "+a+" ").indexOf(" "+v+" ")!=-1}},pseudos:{"first-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.previousSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"last-child":function(c){var r=[],ri=-1,n;for(var i=0,ci;ci=n=c[i];i++){while((n=n.nextSibling)&&n.nodeType!=1){}if(!n){r[++ri]=ci}}return r},"nth-child":function(c,a){var r=[],ri=-1;var m=nthRe.exec(a=="even"&&"2n"||a=="odd"&&"2n+1"||!nthRe2.test(a)&&"n+"+a||a);var f=(m[1]||1)-0,l=m[2]-0;for(var i=0,n;n=c[i];i++){var pn=n.parentNode;if(batch!=pn._batch){var j=0;for(var cn=pn.firstChild;cn;cn=cn.nextSibling){if(cn.nodeType==1){cn.nodeIndex=++j}}pn._batch=batch}if(f==1){if(l==0||n.nodeIndex==l){r[++ri]=n}}else{if((n.nodeIndex+l)%f==0){r[++ri]=n}}}return r},"only-child":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(!prev(ci)&&!next(ci)){r[++ri]=ci}}return r},"empty":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var cns=ci.childNodes,j=0,cn,empty=true;while(cn=cns[j]){++j;if(cn.nodeType==1||cn.nodeType==3){empty=false;break}}if(empty){r[++ri]=ci}}return r},"contains":function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if((ci.textContent||ci.innerText||"").indexOf(v)!=-1){r[++ri]=ci}}return r},"nodeValue":function(c,v){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.firstChild&&ci.firstChild.nodeValue==v){r[++ri]=ci}}return r},"checked":function(c){var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(ci.checked==true){r[++ri]=ci}}return r},"not":function(c,ss){return Ext.DomQuery.filter(c,ss,true)},"any":function(c,selectors){var ss=selectors.split("|");var r=[],ri=-1,s;for(var i=0,ci;ci=c[i];i++){for(var j=0;s=ss[j];j++){if(Ext.DomQuery.is(ci,s)){r[++ri]=ci;break}}}return r},"odd":function(c){return this["nth-child"](c,"odd")},"even":function(c){return this["nth-child"](c,"even")},"nth":function(c,a){return c[a-1]||[]},"first":function(c){return c[0]||[]},"last":function(c){return c[c.length-1]||[]},"has":function(c,ss){var s=Ext.DomQuery.select;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){if(s(ss,ci).length>0){r[++ri]=ci}}return r},"next":function(c,ss){var is=Ext.DomQuery.is;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=next(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r},"prev":function(c,ss){var is=Ext.DomQuery.is;var r=[],ri=-1;for(var i=0,ci;ci=c[i];i++){var n=prev(ci);if(n&&is(n,ss)){r[++ri]=ci}}return r}}}}();Ext.query=Ext.DomQuery.select;Ext.util.Observable=function(){if(this.listeners){this.on(this.listeners);delete this.listeners}};Ext.util.Observable.prototype={fireEvent:function(){if(this.eventsSuspended!==true){var A=this.events[arguments[0].toLowerCase()];if(typeof A=="object"){return A.fire.apply(A,Array.prototype.slice.call(arguments,1))}}return true},filterOptRe:/^(?:scope|delay|buffer|single)$/,addListener:function(A,C,B,F){if(typeof A=="object"){F=A;for(var E in F){if(this.filterOptRe.test(E)){continue}if(typeof F[E]=="function"){this.addListener(E,F[E],F.scope,F)}else{this.addListener(E,F[E].fn,F[E].scope,F[E])}}return}F=(!F||typeof F=="boolean")?{}:F;A=A.toLowerCase();var D=this.events[A]||true;if(typeof D=="boolean"){D=new Ext.util.Event(this,A);this.events[A]=D}D.addListener(C,B,F)},removeListener:function(A,C,B){var D=this.events[A.toLowerCase()];if(typeof D=="object"){D.removeListener(C,B)}},purgeListeners:function(){for(var A in this.events){if(typeof this.events[A]=="object"){this.events[A].clearListeners()}}},relayEvents:function(F,D){var E=function(G){return function(){return this.fireEvent.apply(this,Ext.combine(G,Array.prototype.slice.call(arguments,0)))}};for(var C=0,A=D.length;C0},suspendEvents:function(){this.eventsSuspended=true},resumeEvents:function(){this.eventsSuspended=false},getMethodEvent:function(G){if(!this.methodEvents){this.methodEvents={}}var F=this.methodEvents[G];if(!F){F={};this.methodEvents[G]=F;F.originalFn=this[G];F.methodName=G;F.before=[];F.after=[];var C,B,D;var E=this;var A=function(J,I,H){if((B=J.apply(I||E,H))!==undefined){if(typeof B==="object"){if(B.returnValue!==undefined){C=B.returnValue}else{C=B}if(B.cancel===true){D=true}}else{if(B===false){D=true}else{C=B}}}};this[G]=function(){C=B=undefined;D=false;var I=Array.prototype.slice.call(arguments,0);for(var J=0,H=F.before.length;J0){this.firing=true;var G=Array.prototype.slice.call(arguments,0);for(var H=0;H=33&&D<=40)||D==this.RETURN||D==this.TAB||D==this.ESC},isSpecialKey:function(){var D=this.keyCode;return(this.type=="keypress"&&this.ctrlKey)||D==9||D==13||D==40||D==27||(D==16)||(D==17)||(D>=18&&D<=20)||(D>=33&&D<=35)||(D>=36&&D<=39)||(D>=44&&D<=45)},stopPropagation:function(){if(this.browserEvent){if(this.browserEvent.type=="mousedown"){Ext.EventManager.stoppedMouseDownEvent.fire(this)}B.stopPropagation(this.browserEvent)}},getCharCode:function(){return this.charCode||this.keyCode},getKey:function(){var D=this.keyCode||this.charCode;return Ext.isSafari?(A[D]||D):D},getPageX:function(){return this.xy[0]},getPageY:function(){return this.xy[1]},getTime:function(){if(this.browserEvent){return B.getTime(this.browserEvent)}return null},getXY:function(){return this.xy},getTarget:function(E,F,D){return E?Ext.fly(this.target).findParent(E,F,D):(D?Ext.get(this.target):this.target)},getRelatedTarget:function(){if(this.browserEvent){return B.getRelatedTarget(this.browserEvent)}return null},getWheelDelta:function(){var D=this.browserEvent;var E=0;if(D.wheelDelta){E=D.wheelDelta/120}else{if(D.detail){E=-D.detail/3}}return E},hasModifier:function(){return((this.ctrlKey||this.altKey)||this.shiftKey)?true:false},within:function(E,F){var D=this[F?"getRelatedTarget":"getTarget"]();return D&&Ext.fly(E).contains(D)},getPoint:function(){return new Ext.lib.Point(this.xy[0],this.xy[1])}};return new Ext.EventObjectImpl()}();(function(){var D=Ext.lib.Dom;var E=Ext.lib.Event;var A=Ext.lib.Anim;var propCache={};var camelRe=/(-[a-z])/gi;var camelFn=function(m,a){return a.charAt(1).toUpperCase()};var view=document.defaultView;Ext.Element=function(element,forceNew){var dom=typeof element=="string"?document.getElementById(element):element;if(!dom){return null}var id=dom.id;if(forceNew!==true&&id&&Ext.Element.cache[id]){return Ext.Element.cache[id]}this.dom=dom;this.id=id||Ext.id(dom)};var El=Ext.Element;El.prototype={originalDisplay:"",visibilityMode:1,defaultUnit:"px",setVisibilityMode:function(visMode){this.visibilityMode=visMode;return this},enableDisplayMode:function(display){this.setVisibilityMode(El.DISPLAY);if(typeof display!="undefined"){this.originalDisplay=display}return this},findParent:function(simpleSelector,maxDepth,returnEl){var p=this.dom,b=document.body,depth=0,dq=Ext.DomQuery,stopEl;maxDepth=maxDepth||50;if(typeof maxDepth!="number"){stopEl=Ext.getDom(maxDepth);maxDepth=10}while(p&&p.nodeType==1&&depthch||tcb){c.scrollTop=b-ch}}c.scrollTop=c.scrollTop;if(hscroll!==false){if(el.offsetWidth>c.clientWidth||lcr){c.scrollLeft=r-c.clientWidth}}c.scrollLeft=c.scrollLeft}return this},scrollChildIntoView:function(child,hscroll){Ext.fly(child,"_scrollChildIntoView").scrollIntoView(this,hscroll)},autoHeight:function(animate,duration,onComplete,easing){var oldHeight=this.getHeight();this.clip();this.setHeight(1);setTimeout(function(){var height=parseInt(this.dom.scrollHeight,10);if(!animate){this.setHeight(height);this.unclip();if(typeof onComplete=="function"){onComplete()}}else{this.setHeight(oldHeight);this.setHeight(height,animate,duration,function(){this.unclip();if(typeof onComplete=="function"){onComplete()}}.createDelegate(this),easing)}}.createDelegate(this),0);return this},contains:function(el){if(!el){return false}return D.isAncestor(this.dom,el.dom?el.dom:el)},isVisible:function(deep){var vis=!(this.getStyle("visibility")=="hidden"||this.getStyle("display")=="none");if(deep!==true||!vis){return vis}var p=this.dom.parentNode;while(p&&p.tagName.toLowerCase()!="body"){if(!Ext.fly(p,"_isVisible").isVisible()){return false}p=p.parentNode}return true},select:function(selector,unique){return El.select(selector,unique,this.dom)},query:function(selector){return Ext.DomQuery.select(selector,this.dom)},child:function(selector,returnDom){var n=Ext.DomQuery.selectNode(selector,this.dom);return returnDom?n:Ext.get(n)},down:function(selector,returnDom){var n=Ext.DomQuery.selectNode(" > "+selector,this.dom);return returnDom?n:Ext.get(n)},initDD:function(group,config,overrides){var dd=new Ext.dd.DD(Ext.id(this.dom),group,config);return Ext.apply(dd,overrides)},initDDProxy:function(group,config,overrides){var dd=new Ext.dd.DDProxy(Ext.id(this.dom),group,config);return Ext.apply(dd,overrides)},initDDTarget:function(group,config,overrides){var dd=new Ext.dd.DDTarget(Ext.id(this.dom),group,config);return Ext.apply(dd,overrides)},setVisible:function(visible,animate){if(!animate||!A){if(this.visibilityMode==El.DISPLAY){this.setDisplayed(visible)}else{this.fixDisplay();this.dom.style.visibility=visible?"visible":"hidden"}}else{var dom=this.dom;var visMode=this.visibilityMode;if(visible){this.setOpacity(0.01);this.setVisible(true)}this.anim({opacity:{to:(visible?1:0)}},this.preanim(arguments,1),null,0.35,"easeIn",function(){if(!visible){if(visMode==El.DISPLAY){dom.style.display="none"}else{dom.style.visibility="hidden"}Ext.get(dom).setOpacity(1)}})}return this},isDisplayed:function(){return this.getStyle("display")!="none"},toggle:function(animate){this.setVisible(!this.isVisible(),this.preanim(arguments,0));return this},setDisplayed:function(value){if(typeof value=="boolean"){value=value?this.originalDisplay:"none"}this.setStyle("display",value);return this},focus:function(){try{this.dom.focus()}catch(e){}return this},blur:function(){try{this.dom.blur()}catch(e){}return this},addClass:function(className){if(Ext.isArray(className)){for(var i=0,len=className.length;idw+scrollX){x=swapX?r.left-w:dw+scrollX-w}if(xdh+scrollY){y=swapY?r.top-h:dh+scrollY-h}if(yvr){x=vr-w;moved=true}if((y+h)>vb){y=vb-h;moved=true}if(x";E.onAvailable(id,function(){var hd=document.getElementsByTagName("head")[0];var re=/(?:]*)?>)((\n|\r|.)*?)(?:<\/script>)/ig;var srcRe=/\ssrc=([\'\"])(.*?)\1/i;var typeRe=/\stype=([\'\"])(.*?)\1/i;var match;while(match=re.exec(html)){var attrs=match[1];var srcMatch=attrs?attrs.match(srcRe):false;if(srcMatch&&srcMatch[2]){var s=document.createElement("script");s.src=srcMatch[2];var typeMatch=attrs.match(typeRe);if(typeMatch&&typeMatch[2]){s.type=typeMatch[2]}hd.appendChild(s)}else{if(match[2]&&match[2].length>0){if(window.execScript){window.execScript(match[2])}else{window.eval(match[2])}}}}var el=document.getElementById(id);if(el){Ext.removeNode(el)}if(typeof callback=="function"){callback()}});dom.innerHTML=html.replace(/(?:)((\n|\r|.)*?)(?:<\/script>)/ig,"");return this},load:function(){var um=this.getUpdater();um.update.apply(um,arguments);return this},getUpdater:function(){if(!this.updateManager){this.updateManager=new Ext.Updater(this)}return this.updateManager},unselectable:function(){this.dom.unselectable="on";this.swallowEvent("selectstart",true);this.applyStyles("-moz-user-select:none;-khtml-user-select:none;");this.addClass("x-unselectable");return this},getCenterXY:function(){return this.getAlignToXY(document,"c-c")},center:function(centerIn){this.alignTo(centerIn||document,"c-c");return this},isBorderBox:function(){return noBoxAdjust[this.dom.tagName.toLowerCase()]||Ext.isBorderBox},getBox:function(contentBox,local){var xy;if(!local){xy=this.getXY()}else{var left=parseInt(this.getStyle("left"),10)||0;var top=parseInt(this.getStyle("top"),10)||0;xy=[left,top]}var el=this.dom,w=el.offsetWidth,h=el.offsetHeight,bx;if(!contentBox){bx={x:xy[0],y:xy[1],0:xy[0],1:xy[1],width:w,height:h}}else{var l=this.getBorderWidth("l")+this.getPadding("l");var r=this.getBorderWidth("r")+this.getPadding("r");var t=this.getBorderWidth("t")+this.getPadding("t");var b=this.getBorderWidth("b")+this.getPadding("b");bx={x:xy[0]+l,y:xy[1]+t,0:xy[0]+l,1:xy[1]+t,width:w-(l+r),height:h-(t+b)}}bx.right=bx.x+bx.width;bx.bottom=bx.y+bx.height;return bx},getFrameWidth:function(sides,onlyContentBox){return onlyContentBox&&Ext.isBorderBox?0:(this.getPadding(sides)+this.getBorderWidth(sides))},setBox:function(box,adjust,animate){var w=box.width,h=box.height;if((adjust&&!this.autoBoxAdjust)&&!this.isBorderBox()){w-=(this.getBorderWidth("lr")+this.getPadding("lr"));h-=(this.getBorderWidth("tb")+this.getPadding("tb"))}this.setBounds(box.x,box.y,w,h,this.preanim(arguments,2));return this},repaint:function(){var dom=this.dom;this.addClass("x-repaint");setTimeout(function(){Ext.get(dom).removeClass("x-repaint")},1);return this},getMargins:function(side){if(!side){return{top:parseInt(this.getStyle("margin-top"),10)||0,left:parseInt(this.getStyle("margin-left"),10)||0,bottom:parseInt(this.getStyle("margin-bottom"),10)||0,right:parseInt(this.getStyle("margin-right"),10)||0}}else{return this.addStyles(side,El.margins)}},addStyles:function(sides,styles){var val=0,v,w;for(var i=0,len=sides.length;i=0?w:-1*w)}}}return val},createProxy:function(config,renderTo,matchBox){config=typeof config=="object"?config:{tag:"div",cls:config};var proxy;if(renderTo){proxy=Ext.DomHelper.append(renderTo,config,true)}else{proxy=Ext.DomHelper.insertBefore(this.dom,config,true)}if(matchBox){proxy.setBox(this.getBox())}return proxy},mask:function(msg,msgCls){if(this.getStyle("position")=="static"){this.setStyle("position","relative")}if(this._maskMsg){this._maskMsg.remove()}if(this._mask){this._mask.remove()}this._mask=Ext.DomHelper.append(this.dom,{cls:"ext-el-mask"},true);this.addClass("x-masked");this._mask.setDisplayed(true);if(typeof msg=="string"){this._maskMsg=Ext.DomHelper.append(this.dom,{cls:"ext-el-mask-msg",cn:{tag:"div"}},true);var mm=this._maskMsg;mm.dom.className=msgCls?"ext-el-mask-msg "+msgCls:"ext-el-mask-msg";mm.dom.firstChild.innerHTML=msg;mm.setDisplayed(true);mm.center(this)}if(Ext.isIE&&!(Ext.isIE7&&Ext.isStrict)&&this.getStyle("height")=="auto"){this._mask.setSize(this.dom.clientWidth,this.getHeight())}return this._mask},unmask:function(){if(this._mask){if(this._maskMsg){this._maskMsg.remove();delete this._maskMsg}this._mask.remove();delete this._mask}this.removeClass("x-masked")},isMasked:function(){return this._mask&&this._mask.isVisible()},createShim:function(){var el=document.createElement("iframe");el.frameBorder="0";el.className="ext-shim";if(Ext.isIE&&Ext.isSecure){el.src=Ext.SSL_SECURE_URL}var shim=Ext.get(this.dom.parentNode.insertBefore(el,this.dom));shim.autoBoxAdjust=false;return shim},remove:function(){Ext.removeNode(this.dom);delete El.cache[this.dom.id]},hover:function(overFn,outFn,scope){var preOverFn=function(e){if(!e.within(this,true)){overFn.apply(scope||this,arguments)}};var preOutFn=function(e){if(!e.within(this,true)){outFn.apply(scope||this,arguments)}};this.on("mouseover",preOverFn,this.dom);this.on("mouseout",preOutFn,this.dom);return this},addClassOnOver:function(className){this.hover(function(){Ext.fly(this,"_internal").addClass(className)},function(){Ext.fly(this,"_internal").removeClass(className)});return this},addClassOnFocus:function(className){this.on("focus",function(){Ext.fly(this,"_internal").addClass(className)},this.dom);this.on("blur",function(){Ext.fly(this,"_internal").removeClass(className)},this.dom);return this},addClassOnClick:function(className){var dom=this.dom;this.on("mousedown",function(){Ext.fly(dom,"_internal").addClass(className);var d=Ext.getDoc();var fn=function(){Ext.fly(dom,"_internal").removeClass(className);d.removeListener("mouseup",fn)};d.on("mouseup",fn)});return this},swallowEvent:function(eventName,preventDefault){var fn=function(e){e.stopPropagation();if(preventDefault){e.preventDefault()}};if(Ext.isArray(eventName)){for(var i=0,len=eventName.length;idom.clientHeight||dom.scrollWidth>dom.clientWidth},scrollTo:function(side,value,animate){var prop=side.toLowerCase()=="left"?"scrollLeft":"scrollTop";if(!animate||!A){this.dom[prop]=value}else{var to=prop=="scrollLeft"?[value,this.dom.scrollTop]:[this.dom.scrollLeft,value];this.anim({scroll:{"to":to}},this.preanim(arguments,2),"scroll")}return this},scroll:function(direction,distance,animate){if(!this.isScrollable()){return}var el=this.dom;var l=el.scrollLeft,t=el.scrollTop;var w=el.scrollWidth,h=el.scrollHeight;var cw=el.clientWidth,ch=el.clientHeight;direction=direction.toLowerCase();var scrolled=false;var a=this.preanim(arguments,2);switch(direction){case"l":case"left":if(w-l>cw){var v=Math.min(l+distance,w-cw);this.scrollTo("left",v,a);scrolled=true}break;case"r":case"right":if(l>0){var v=Math.max(l-distance,0);this.scrollTo("left",v,a);scrolled=true}break;case"t":case"top":case"up":if(t>0){var v=Math.max(t-distance,0);this.scrollTo("top",v,a);scrolled=true}break;case"b":case"bottom":case"down":if(h-t>ch){var v=Math.min(t+distance,h-ch);this.scrollTo("top",v,a);scrolled=true}break}return scrolled},translatePoints:function(x,y){if(typeof x=="object"||Ext.isArray(x)){y=x[1];x=x[0]}var p=this.getStyle("position");var o=this.getXY();var l=parseInt(this.getStyle("left"),10);var t=parseInt(this.getStyle("top"),10);if(isNaN(l)){l=(p=="relative")?0:this.dom.offsetLeft}if(isNaN(t)){t=(p=="relative")?0:this.dom.offsetTop}return{left:(x-o[0]+l),top:(y-o[1]+t)}},getScroll:function(){var d=this.dom,doc=document;if(d==doc||d==doc.body){var l,t;if(Ext.isIE&&Ext.isStrict){l=doc.documentElement.scrollLeft||(doc.body.scrollLeft||0);t=doc.documentElement.scrollTop||(doc.body.scrollTop||0)}else{l=window.pageXOffset||(doc.body.scrollLeft||0);t=window.pageYOffset||(doc.body.scrollTop||0)}return{left:l,top:t}}else{return{left:d.scrollLeft,top:d.scrollTop}}},getColor:function(attr,defaultValue,prefix){var v=this.getStyle(attr);if(!v||v=="transparent"||v=="inherit"){return defaultValue}var color=typeof prefix=="undefined"?"#":prefix;if(v.substr(0,4)=="rgb("){var rvs=v.slice(4,v.length-1).split(",");for(var i=0;i<3;i++){var h=parseInt(rvs[i]);var s=h.toString(16);if(h<16){s="0"+s}color+=s}}else{if(v.substr(0,1)=="#"){if(v.length==4){for(var i=1;i<4;i++){var c=v.charAt(i);color+=c+c}}else{if(v.length==7){color+=v.substr(1)}}}}return(color.length>5?color.toLowerCase():defaultValue)},boxWrap:function(cls){cls=cls||"x-box";var el=Ext.get(this.insertHtml("beforeBegin",String.format("
"+El.boxMarkup+"
",cls)));el.child("."+cls+"-mc").dom.appendChild(this.dom);return el},getAttributeNS:Ext.isIE?function(ns,name){var d=this.dom;var type=typeof d[ns+":"+name];if(type!="undefined"&&type!="unknown"){return d[ns+":"+name]}return d[name]}:function(ns,name){var d=this.dom;return d.getAttributeNS(ns,name)||d.getAttribute(ns+":"+name)||d.getAttribute(name)||d[name]},getTextWidth:function(text,min,max){return(Ext.util.TextMetrics.measure(this.dom,Ext.value(text,this.dom.innerHTML,true)).width).constrain(min||0,max||1000000)}};var ep=El.prototype;ep.on=ep.addListener;ep.mon=ep.addListener;ep.getUpdateManager=ep.getUpdater;ep.un=ep.removeListener;ep.autoBoxAdjust=true;El.unitPattern=/\d+(px|em|%|en|ex|pt|in|cm|mm|pc)$/i;El.addUnits=function(v,defaultUnit){if(v===""||v=="auto"){return v}if(v===undefined){return""}if(typeof v=="number"||!El.unitPattern.test(v)){return v+(defaultUnit||"px")}return v};El.boxMarkup="
";El.VISIBILITY=1;El.DISPLAY=2;El.borders={l:"border-left-width",r:"border-right-width",t:"border-top-width",b:"border-bottom-width"};El.paddings={l:"padding-left",r:"padding-right",t:"padding-top",b:"padding-bottom"};El.margins={l:"margin-left",r:"margin-right",t:"margin-top",b:"margin-bottom"};El.cache={};var docEl;El.get=function(el){var ex,elm,id;if(!el){return null}if(typeof el=="string"){if(!(elm=document.getElementById(el))){return null}if(ex=El.cache[el]){ex.dom=elm}else{ex=El.cache[el]=new El(elm)}return ex}else{if(el.tagName){if(!(id=el.id)){id=Ext.id(el)}if(ex=El.cache[id]){ex.dom=el}else{ex=El.cache[id]=new El(el)}return ex}else{if(el instanceof El){if(el!=docEl){el.dom=document.getElementById(el.id)||el.dom;El.cache[el.id]=el}return el}else{if(el.isComposite){return el}else{if(Ext.isArray(el)){return El.select(el)}else{if(el==document){if(!docEl){var f=function(){};f.prototype=El.prototype;docEl=new f();docEl.dom=document}return docEl}}}}}}return null};El.uncache=function(el){for(var i=0,a=arguments,len=a.length;i0){F()}else{B.afterFx(D)}})};F.call(this)});return this},pause:function(C){var A=this.getFxEl();var B={};A.queueFx(B,function(){setTimeout(function(){A.afterFx(B)},C*1000)});return this},fadeIn:function(B){var A=this.getFxEl();B=B||{};A.queueFx(B,function(){this.setOpacity(0);this.fixDisplay();this.dom.style.visibility="visible";var C=B.endOpacity||1;arguments.callee.anim=this.fxanim({opacity:{to:C}},B,null,0.5,"easeOut",function(){if(C==1){this.clearOpacity()}A.afterFx(B)})});return this},fadeOut:function(B){var A=this.getFxEl();B=B||{};A.queueFx(B,function(){arguments.callee.anim=this.fxanim({opacity:{to:B.endOpacity||0}},B,null,0.5,"easeOut",function(){if(this.visibilityMode==Ext.Element.DISPLAY||B.useDisplay){this.dom.style.display="none"}else{this.dom.style.visibility="hidden"}this.clearOpacity();A.afterFx(B)})});return this},scale:function(A,B,C){this.shift(Ext.apply({},C,{width:A,height:B}));return this},shift:function(B){var A=this.getFxEl();B=B||{};A.queueFx(B,function(){var E={},D=B.width,F=B.height,C=B.x,H=B.y,G=B.opacity;if(D!==undefined){E.width={to:this.adjustWidth(D)}}if(F!==undefined){E.height={to:this.adjustHeight(F)}}if(B.left!==undefined){E.left={to:B.left}}if(B.top!==undefined){E.top={to:B.top}}if(B.right!==undefined){E.right={to:B.right}}if(B.bottom!==undefined){E.bottom={to:B.bottom}}if(C!==undefined||H!==undefined){E.points={to:[C!==undefined?C:this.getX(),H!==undefined?H:this.getY()]}}if(G!==undefined){E.opacity={to:G}}if(B.xy!==undefined){E.points={to:B.xy}}arguments.callee.anim=this.fxanim(E,B,"motion",0.35,"easeOut",function(){A.afterFx(B)})});return this},ghost:function(A,C){var B=this.getFxEl();C=C||{};B.queueFx(C,function(){A=A||"b";var H=this.getFxRestore();var E=this.getWidth(),G=this.getHeight();var F=this.dom.style;var J=function(){if(C.useDisplay){B.setDisplayed(false)}else{B.hide()}B.clearOpacity();B.setPositioning(H.pos);F.width=H.width;F.height=H.height;B.afterFx(C)};var D={opacity:{to:0},points:{}},I=D.points;switch(A.toLowerCase()){case"t":I.by=[0,-G];break;case"l":I.by=[-E,0];break;case"r":I.by=[E,0];break;case"b":I.by=[0,G];break;case"tl":I.by=[-E,-G];break;case"bl":I.by=[-E,G];break;case"br":I.by=[E,G];break;case"tr":I.by=[E,-G];break}arguments.callee.anim=this.fxanim(D,C,"motion",0.5,"easeOut",J)});return this},syncFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:true,stopFx:false});return this},sequenceFx:function(){this.fxDefaults=Ext.apply(this.fxDefaults||{},{block:false,concurrent:false,stopFx:false});return this},nextFx:function(){var A=this.fxQueue[0];if(A){A.call(this)}},hasActiveFx:function(){return this.fxQueue&&this.fxQueue[0]},stopFx:function(){if(this.hasActiveFx()){var A=this.fxQueue[0];if(A&&A.anim&&A.anim.isAnimated()){this.fxQueue=[A];A.anim.stop(true)}}return this},beforeFx:function(A){if(this.hasActiveFx()&&!A.concurrent){if(A.stopFx){this.stopFx();return true}return false}return true},hasFxBlock:function(){var A=this.fxQueue;return A&&A[0]&&A[0].block},queueFx:function(C,A){if(!this.fxQueue){this.fxQueue=[]}if(!this.hasFxBlock()){Ext.applyIf(C,this.fxDefaults);if(!C.concurrent){var B=this.beforeFx(C);A.block=C.block;this.fxQueue.push(A);if(B){this.nextFx()}}else{A.call(this)}}return this},fxWrap:function(F,D,C){var B;if(!D.wrap||!(B=Ext.get(D.wrap))){var A;if(D.fixPosition){A=this.getXY()}var E=document.createElement("div");E.style.visibility=C;B=Ext.get(this.dom.parentNode.insertBefore(E,this.dom));B.setPositioning(F);if(B.getStyle("position")=="static"){B.position("relative")}this.clearPositioning("auto");B.clip();B.dom.appendChild(this.dom);if(A){B.setXY(A)}}return B},fxUnwrap:function(A,C,B){this.clearPositioning();this.setPositioning(C);if(!B.wrap){A.dom.parentNode.insertBefore(this.dom,A.dom);A.remove()}},getFxRestore:function(){var A=this.dom.style;return{pos:this.getPositioning(),width:A.width,height:A.height}},afterFx:function(A){if(A.afterStyle){this.applyStyles(A.afterStyle)}if(A.afterCls){this.addClass(A.afterCls)}if(A.remove===true){this.remove()}Ext.callback(A.callback,A.scope,[this]);if(!A.concurrent){this.fxQueue.shift();this.nextFx()}},getFxEl:function(){return Ext.get(this.dom)},fxanim:function(D,E,B,F,C,A){B=B||"run";E=E||{};var G=Ext.lib.Anim[B](this.dom,D,(E.duration||F)||0.35,(E.easing||C)||"easeOut",function(){Ext.callback(A,this)},this);E.anim=G;return G}};Ext.Fx.resize=Ext.Fx.scale;Ext.apply(Ext.Element.prototype,Ext.Fx);Ext.CompositeElement=function(A){this.elements=[];this.addElements(A)};Ext.CompositeElement.prototype={isComposite:true,addElements:function(E){if(!E){return this}if(typeof E=="string"){E=Ext.Element.selectorFunction(E)}var D=this.elements;var B=D.length-1;for(var C=0,A=E.length;C"+A.text+""}if(typeof A.scripts!="undefined"){this.loadScripts=A.scripts}if(typeof A.timeout!="undefined"){this.timeout=A.timeout}}this.showLoading();if(!D){this.defaultUrl=B}if(typeof B=="function"){B=B.call(this)}var E=Ext.apply({},{url:B,params:(typeof F=="function"&&C)?F.createDelegate(C):F,success:this.processSuccess,failure:this.processFailure,scope:this,callback:undefined,timeout:(this.timeout*1000),disableCaching:this.disableCaching,argument:{"options":A,"url":B,"form":null,"callback":G,"scope":C||window,"params":F}},A);this.transaction=Ext.Ajax.request(E)}},formUpdate:function(C,A,B,D){if(this.fireEvent("beforeupdate",this.el,C,A)!==false){if(typeof A=="function"){A=A.call(this)}C=Ext.getDom(C);this.transaction=Ext.Ajax.request({form:C,url:A,success:this.processSuccess,failure:this.processFailure,scope:this,timeout:(this.timeout*1000),argument:{"url":A,"form":C,"callback":D,"reset":B}});this.showLoading.defer(1,this)}},refresh:function(A){if(this.defaultUrl==null){return}this.update(this.defaultUrl,null,A,true)},startAutoRefresh:function(B,C,D,E,A){if(A){this.update(C||this.defaultUrl,D,E,true)}if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId)}this.autoRefreshProcId=setInterval(this.update.createDelegate(this,[C||this.defaultUrl,D,E,true]),B*1000)},stopAutoRefresh:function(){if(this.autoRefreshProcId){clearInterval(this.autoRefreshProcId);delete this.autoRefreshProcId}},isAutoRefreshing:function(){return this.autoRefreshProcId?true:false},showLoading:function(){if(this.showLoadIndicator){this.el.update(this.indicatorText)}},processSuccess:function(A){this.transaction=null;if(A.argument.form&&A.argument.reset){try{A.argument.form.reset()}catch(B){}}if(this.loadScripts){this.renderer.render(this.el,A,this,this.updateComplete.createDelegate(this,[A]))}else{this.renderer.render(this.el,A,this);this.updateComplete(A)}},updateComplete:function(A){this.fireEvent("update",this.el,A);if(typeof A.argument.callback=="function"){A.argument.callback.call(A.argument.scope,this.el,true,A,A.argument.options)}},processFailure:function(A){this.transaction=null;this.fireEvent("failure",this.el,A);if(typeof A.argument.callback=="function"){A.argument.callback.call(A.argument.scope,this.el,false,A,A.argument.options)}},setRenderer:function(A){this.renderer=A},getRenderer:function(){return this.renderer},setDefaultUrl:function(A){this.defaultUrl=A},abort:function(){if(this.transaction){Ext.Ajax.abort(this.transaction)}},isUpdating:function(){if(this.transaction){return Ext.Ajax.isLoading(this.transaction)}return false}});Ext.Updater.defaults={timeout:30,loadScripts:false,sslBlankUrl:(Ext.SSL_SECURE_URL||"javascript:false"),disableCaching:false,showLoadIndicator:true,indicatorText:"
Loading...
"};Ext.Updater.updateElement=function(D,C,E,B){var A=Ext.get(D).getUpdater();Ext.apply(A,B);A.update(C,E,B?B.callback:null)};Ext.Updater.BasicRenderer=function(){};Ext.Updater.BasicRenderer.prototype={render:function(C,A,B,D){C.update(A.responseText,B.loadScripts,D)}};Ext.UpdateManager=Ext.Updater;(function(){Date.formatCodeToRegex=function(character,currentGroup){var p=Date.parseCodes[character];if(p){p=Ext.type(p)=="function"?p():p;Date.parseCodes[character]=p}return p?Ext.applyIf({c:p.c?String.format(p.c,currentGroup||"{0}"):p.c},p):{g:0,c:null,s:Ext.escapeRe(character)}};var $f=Date.formatCodeToRegex;Ext.apply(Date,{parseFunctions:{count:0},parseRegexes:[],formatFunctions:{count:0},daysInMonth:[31,28,31,30,31,30,31,31,30,31,30,31],y2kYear:50,MILLI:"ms",SECOND:"s",MINUTE:"mi",HOUR:"h",DAY:"d",MONTH:"mo",YEAR:"y",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNumbers:{Jan:0,Feb:1,Mar:2,Apr:3,May:4,Jun:5,Jul:6,Aug:7,Sep:8,Oct:9,Nov:10,Dec:11},getShortMonthName:function(month){return Date.monthNames[month].substring(0,3)},getShortDayName:function(day){return Date.dayNames[day].substring(0,3)},getMonthNumber:function(name){return Date.monthNumbers[name.substring(0,1).toUpperCase()+name.substring(1,3).toLowerCase()]},formatCodes:{d:"String.leftPad(this.getDate(), 2, '0')",D:"Date.getShortDayName(this.getDay())",j:"this.getDate()",l:"Date.dayNames[this.getDay()]",N:"(this.getDay() ? this.getDay() : 7)",S:"this.getSuffix()",w:"this.getDay()",z:"this.getDayOfYear()",W:"String.leftPad(this.getWeekOfYear(), 2, '0')",F:"Date.monthNames[this.getMonth()]",m:"String.leftPad(this.getMonth() + 1, 2, '0')",M:"Date.getShortMonthName(this.getMonth())",n:"(this.getMonth() + 1)",t:"this.getDaysInMonth()",L:"(this.isLeapYear() ? 1 : 0)",o:"(this.getFullYear() + (this.getWeekOfYear() == 1 && this.getMonth() > 0 ? +1 : (this.getWeekOfYear() >= 52 && this.getMonth() < 11 ? -1 : 0)))",Y:"this.getFullYear()",y:"('' + this.getFullYear()).substring(2, 4)",a:"(this.getHours() < 12 ? 'am' : 'pm')",A:"(this.getHours() < 12 ? 'AM' : 'PM')",g:"((this.getHours() % 12) ? this.getHours() % 12 : 12)",G:"this.getHours()",h:"String.leftPad((this.getHours() % 12) ? this.getHours() % 12 : 12, 2, '0')",H:"String.leftPad(this.getHours(), 2, '0')",i:"String.leftPad(this.getMinutes(), 2, '0')",s:"String.leftPad(this.getSeconds(), 2, '0')",u:"String.leftPad(this.getMilliseconds(), 3, '0')",O:"this.getGMTOffset()",P:"this.getGMTOffset(true)",T:"this.getTimezone()",Z:"(this.getTimezoneOffset() * -60)",c:function(){for(var c="Y-m-dTH:i:sP",code=[],i=0,l=c.length;i 0) {";var regex="";var special=false;var ch="";for(var i=0;i= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0 && ms >= 0){\n"+"v = new Date(y, m, d, h, i, s, ms);\n"+"}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0 && s >= 0){\n"+"v = new Date(y, m, d, h, i, s);\n"+"}else if (y >= 0 && m >= 0 && d > 0 && h >= 0 && i >= 0){\n"+"v = new Date(y, m, d, h, i);\n"+"}else if (y >= 0 && m >= 0 && d > 0 && h >= 0){\n"+"v = new Date(y, m, d, h);\n"+"}else if (y >= 0 && m >= 0 && d > 0){\n"+"v = new Date(y, m, d);\n"+"}else if (y >= 0 && m >= 0){\n"+"v = new Date(y, m);\n"+"}else if (y >= 0){\n"+"v = new Date(y);\n"+"}\n}\nreturn (v && (z || o))?"+" (Ext.type(z) == 'number' ? v.add(Date.SECOND, -v.getTimezoneOffset() * 60 - z) :"+" v.add(Date.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn))) : v;\n"+"}";Date.parseRegexes[regexNum]=new RegExp("^"+regex+"$","i");eval(code)},parseCodes:{d:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},j:{g:1,c:"d = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},D:function(){for(var a=[],i=0;i<7;a.push(Date.getShortDayName(i)),++i){}return{g:0,c:null,s:"(?:"+a.join("|")+")"}},l:function(){return{g:0,c:null,s:"(?:"+Date.dayNames.join("|")+")"}},N:{g:0,c:null,s:"[1-7]"},S:{g:0,c:null,s:"(?:st|nd|rd|th)"},w:{g:0,c:null,s:"[0-6]"},z:{g:0,c:null,s:"(?:\\d{1,3}"},W:{g:0,c:null,s:"(?:\\d{2})"},F:function(){return{g:1,c:"m = parseInt(Date.getMonthNumber(results[{0}]), 10);\n",s:"("+Date.monthNames.join("|")+")"}},M:function(){for(var a=[],i=0;i<12;a.push(Date.getShortMonthName(i)),++i){}return Ext.applyIf({s:"("+a.join("|")+")"},$f("F"))},m:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{2})"},n:{g:1,c:"m = parseInt(results[{0}], 10) - 1;\n",s:"(\\d{1,2})"},t:{g:0,c:null,s:"(?:\\d{2})"},L:{g:0,c:null,s:"(?:1|0)"},o:function(){return $f("Y")},Y:{g:1,c:"y = parseInt(results[{0}], 10);\n",s:"(\\d{4})"},y:{g:1,c:"var ty = parseInt(results[{0}], 10);\n"+"y = ty > Date.y2kYear ? 1900 + ty : 2000 + ty;\n",s:"(\\d{1,2})"},a:{g:1,c:"if (results[{0}] == 'am') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(am|pm)"},A:{g:1,c:"if (results[{0}] == 'AM') {\n"+"if (h == 12) { h = 0; }\n"+"} else { if (h < 12) { h += 12; }}",s:"(AM|PM)"},g:function(){return $f("G")},G:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{1,2})"},h:function(){return $f("H")},H:{g:1,c:"h = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},i:{g:1,c:"i = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},s:{g:1,c:"s = parseInt(results[{0}], 10);\n",s:"(\\d{2})"},u:{g:1,c:"ms = results[{0}]; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n",s:"(\\d+)"},O:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1);","var hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60);","var mn = o.substring(3,5) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{4})"},P:{g:1,c:["o = results[{0}];","var sn = o.substring(0,1);","var hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60);","var mn = o.substring(4,6) % 60;","o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + String.leftPad(hr, 2, '0') + String.leftPad(mn, 2, '0')) : null;\n"].join("\n"),s:"([+-]\\d{2}:\\d{2})"},T:{g:0,c:null,s:"[A-Z]{1,4}"},Z:{g:1,c:"z = results[{0}] * 1;\n"+"z = (-43200 <= z && z <= 50400)? z : null;\n",s:"([+-]?\\d{1,5})"},c:function(){var calc=[];var arr=[$f("Y",1),$f("m",2),$f("d",3),$f("h",4),$f("i",5),$f("s",6),{c:"ms = (results[7] || '.0').substring(1); ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n"},{c:"if(results[9] == 'Z'){\no = 0;\n}else{\n"+$f("P",9).c+"\n}"}];for(var i=0,l=arr.length;i0?"-":"+")+String.leftPad(Math.abs(Math.floor(this.getTimezoneOffset()/60)),2,"0")+(A?":":"")+String.leftPad(Math.abs(this.getTimezoneOffset()%60),2,"0")},getDayOfYear:function(){var A=0;Date.daysInMonth[1]=this.isLeapYear()?29:28;for(var B=0;B28){A=Math.min(A,this.getFirstDateOfMonth().add("mo",C).getLastDateOfMonth().getDate())}D.setDate(A);D.setMonth(this.getMonth()+C);break;case Date.YEAR:D.setFullYear(this.getFullYear()+C);break}return D},between:function(C,A){var B=this.getTime();return C.getTime()<=B&&B<=A.getTime()}});Date.prototype.format=Date.prototype.dateFormat;if(Ext.isSafari){Date.brokenSetMonth=Date.prototype.setMonth;Date.prototype.setMonth=function(A){if(A<=-1){var D=Math.ceil(-A);var C=Math.ceil(D/12);var B=(D%12)?12-D%12:0;this.setFullYear(this.getFullYear()-C);return Date.brokenSetMonth.call(this,B)}else{return Date.brokenSetMonth.apply(this,arguments)}}};Ext.util.DelayedTask=function(E,D,A){var G=null,F,B;var C=function(){var H=new Date().getTime();if(H-B>=F){clearInterval(G);G=null;E.apply(D,A||[])}};this.delay=function(I,K,J,H){if(G&&I!=F){this.cancel()}F=I;B=new Date().getTime();E=K||E;D=J||D;A=H||A;if(!G){G=setInterval(C,F)}};this.cancel=function(){if(G){clearInterval(G);G=null}}};Ext.util.TaskRunner=function(E){E=E||10;var F=[],A=[];var B=0;var G=false;var D=function(){G=false;clearInterval(B);B=0};var H=function(){if(!G){G=true;B=setInterval(I,E)}};var C=function(J){A.push(J);if(J.onStop){J.onStop.apply(J.scope||J)}};var I=function(){if(A.length>0){for(var O=0,K=A.length;O1||Ext.isArray(E)){var B=arguments.length>1?arguments:E;for(var D=0,A=B.length;D=this.length){return this.add(B,C)}this.length++;this.items.splice(A,0,C);if(typeof B!="undefined"&&B!=null){this.map[B]=C}this.keys.splice(A,0,B);this.fireEvent("add",A,C,B);return C},remove:function(A){return this.removeAt(this.indexOf(A))},removeAt:function(A){if(A=0){this.length--;var C=this.items[A];this.items.splice(A,1);var B=this.keys[A];if(typeof B!="undefined"){delete this.map[B]}this.keys.splice(A,1);this.fireEvent("remove",C,B);return C}return false},removeKey:function(A){return this.removeAt(this.indexOfKey(A))},getCount:function(){return this.length},indexOf:function(A){return this.items.indexOf(A)},indexOfKey:function(A){return this.keys.indexOf(A)},item:function(A){var B=typeof this.map[A]!="undefined"?this.map[A]:this.items[A];return typeof B!="function"||this.allowFunctions?B:null},itemAt:function(A){return this.items[A]},key:function(A){return this.map[A]},contains:function(A){return this.indexOf(A)!=-1},containsKey:function(A){return typeof this.map[A]!="undefined"},clear:function(){this.length=0;this.items=[];this.keys=[];this.map={};this.fireEvent("clear")},first:function(){return this.items[0]},last:function(){return this.items[this.length-1]},_sort:function(I,A,H){var C=String(A).toUpperCase()=="DESC"?-1:1;H=H||function(K,J){return K-J};var G=[],B=this.keys,F=this.items;for(var D=0,E=F.length;D=A;C--){D[D.length]=B[C]}}return D},filter:function(C,B,D,A){if(Ext.isEmpty(B,false)){return this.clone()}B=this.createValueMatcher(B,D,A);return this.filterBy(function(E){return E&&B.test(E[C])})},filterBy:function(F,E){var G=new Ext.util.MixedCollection();G.getKey=this.getKey;var B=this.keys,D=this.items;for(var C=0,A=D.length;C0){for(var C=0;Clen){return value.substr(0,len-3)+"..."}return value},undef:function(value){return value!==undefined?value:""},defaultValue:function(value,defaultValue){return value!==undefined&&value!==""?value:defaultValue},htmlEncode:function(value){return!value?value:String(value).replace(/&/g,"&").replace(/>/g,">").replace(/").replace(/</g,"<").replace(/"/g,"\"").replace(/&/g,"&")},trim:function(value){return String(value).replace(trimRe,"")},substr:function(value,start,length){return String(value).substr(start,length)},lowercase:function(value){return String(value).toLowerCase()},uppercase:function(value){return String(value).toUpperCase()},capitalize:function(value){return!value?value:value.charAt(0).toUpperCase()+value.substr(1).toLowerCase()},call:function(value,fn){if(arguments.length>2){var args=Array.prototype.slice.call(arguments,2);args.unshift(value);return eval(fn).apply(window,args)}else{return eval(fn).call(window,value)}},usMoney:function(v){v=(Math.round((v-0)*100))/100;v=(v==Math.floor(v))?v+".00":((v*10==Math.floor(v*10))?v+"0":v);v=String(v);var ps=v.split(".");var whole=ps[0];var sub=ps[1]?"."+ps[1]:".00";var r=/(\d+)(\d{3})/;while(r.test(whole)){whole=whole.replace(r,"$1"+","+"$2")}v=whole+sub;if(v.charAt(0)=="-"){return"-$"+v.substr(1)}return"$"+v},date:function(v,format){if(!v){return""}if(!Ext.isDate(v)){v=new Date(Date.parse(v))}return v.dateFormat(format||"m/d/Y")},dateRenderer:function(format){return function(v){return Ext.util.Format.date(v,format)}},stripTagsRE:/<\/?[^>]+>/gi,stripTags:function(v){return!v?v:String(v).replace(this.stripTagsRE,"")},stripScriptsRe:/(?:)((\n|\r|.)*?)(?:<\/script>)/ig,stripScripts:function(v){return!v?v:String(v).replace(this.stripScriptsRe,"")},fileSize:function(size){if(size<1024){return size+" bytes"}else{if(size<1048576){return(Math.round(((size*10)/1024))/10)+" KB"}else{return(Math.round(((size*10)/1048576))/10)+" MB"}}},math:function(){var fns={};return function(v,a){if(!fns[a]){fns[a]=new Function("v","return v "+a+";")}return fns[a](v)}}(),nl2br:function(v){return v===undefined||v===null?"":v.replace(/\n/g,"
")}}}();Ext.XTemplate=function(){Ext.XTemplate.superclass.constructor.apply(this,arguments);var P=this.html;P=["",P,""].join("");var O=/]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/;var N=/^]*?for="(.*?)"/;var L=/^]*?if="(.*?)"/;var J=/^]*?exec="(.*?)"/;var C,B=0;var G=[];while(C=P.match(O)){var M=C[0].match(N);var K=C[0].match(L);var I=C[0].match(J);var E=null,H=null,D=null;var A=M&&M[1]?M[1]:"";if(K){E=K&&K[1]?K[1]:null;if(E){H=new Function("values","parent","xindex","xcount","with(values){ return "+(Ext.util.Format.htmlDecode(E))+"; }")}}if(I){E=I&&I[1]?I[1]:null;if(E){D=new Function("values","parent","xindex","xcount","with(values){ "+(Ext.util.Format.htmlDecode(E))+"; }")}}if(A){switch(A){case".":A=new Function("values","parent","with(values){ return values; }");break;case"..":A=new Function("values","parent","with(values){ return parent; }");break;default:A=new Function("values","parent","with(values){ return "+A+"; }")}}G.push({id:B,target:A,exec:D,test:H,body:C[1]||""});P=P.replace(C[0],"{xtpl"+B+"}");++B}for(var F=G.length-1;F>=0;--F){this.compileTpl(G[F])}this.master=G[G.length-1];this.tpls=G};Ext.extend(Ext.XTemplate,Ext.Template,{re:/\{([\w-\.\#]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?(\s?[\+\-\*\\]\s?[\d\.\+\-\*\\\(\)]+)?\}/g,codeRe:/\{\[((?:\\\]|.|\n)*?)\]\}/g,applySubTemplate:function(A,H,G,D,C){var J=this.tpls[A];if(J.test&&!J.test.call(this,H,G,D,C)){return""}if(J.exec&&J.exec.call(this,H,G,D,C)){return""}var I=J.target?J.target.call(this,H,G):H;G=J.target?H:G;if(J.target&&Ext.isArray(I)){var B=[];for(var E=0,F=I.length;E=0;--E){D[H[E].selectorText]=H[E]}}catch(G){}},getRules:function(F){if(D==null||F){D={};var H=C.styleSheets;for(var G=0,E=H.length;G=37&&A<=40){C.stopEvent()}},relay:function(C){var A=C.getKey();var B=this.keyToHandler[A];if(B&&this[B]){if(this.doRelay(C,this[B],B)!==true){C[this.defaultEventAction]()}}},doRelay:function(C,B,A){return B.call(this.scope||this,C)},enter:false,left:false,right:false,up:false,down:false,tab:false,esc:false,pageUp:false,pageDown:false,del:false,home:false,end:false,keyToHandler:{37:"left",39:"right",38:"up",40:"down",33:"pageUp",34:"pageDown",46:"del",36:"home",35:"end",13:"enter",27:"esc",9:"tab"},enable:function(){if(this.disabled){if(this.forceKeyDown||Ext.isIE||Ext.isSafari3||Ext.isAir){this.el.on("keydown",this.relay,this)}else{this.el.on("keydown",this.prepareEvent,this);this.el.on("keypress",this.relay,this)}this.disabled=false}},disable:function(){if(!this.disabled){if(this.forceKeyDown||Ext.isIE||Ext.isSafari3||Ext.isAir){this.el.un("keydown",this.relay)}else{this.el.un("keydown",this.prepareEvent);this.el.un("keypress",this.relay)}this.disabled=true}}};Ext.KeyMap=function(C,B,A){this.el=Ext.get(C);this.eventName=A||"keydown";this.bindings=[];if(B){this.addBinding(B)}this.enable()};Ext.KeyMap.prototype={stopEvent:false,addBinding:function(D){if(Ext.isArray(D)){for(var F=0,H=D.length;F=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true}}this.xTicks.sort(this.DDM.numericSort)},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true}}this.yTicks.sort(this.DDM.numericSort)},setXConstraint:function(E,D,C){this.leftConstraint=E;this.rightConstraint=D;this.minX=this.initPageX-E;this.maxX=this.initPageX+D;if(C){this.setXTicks(this.initPageX,C)}this.constrainX=true},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks()},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0},setYConstraint:function(C,E,D){this.topConstraint=C;this.bottomConstraint=E;this.minY=this.initPageY-C;this.maxY=this.initPageY+E;if(D){this.setYTicks(this.initPageY,D)}this.constrainY=true},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C)}else{this.setInitPosition()}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize)}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)}},getTick:function(I,F){if(!F){return I}else{if(F[0]>=I){return F[0]}else{for(var D=0,C=F.length;D=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E]}}return F[F.length-1]}}},toString:function(){return("DragDrop "+this.id)}}})();if(!Ext.dd.DragDropMgr){Ext.dd.DragDropMgr=function(){var A=Ext.EventManager;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,init:function(){this.initialized=true},POINT:0,INTERSECT:1,mode:0,_execOnAll:function(D,C){for(var E in this.ids){for(var B in this.ids[E]){var F=this.ids[E][B];if(!this.isTypeOfDD(F)){continue}F[D].apply(F,C)}}},_onLoad:function(){this.init();A.on(document,"mouseup",this.handleMouseUp,this,true);A.on(document,"mousemove",this.handleMouseMove,this,true);A.on(window,"unload",this._onUnload,this,true);A.on(window,"resize",this._onResize,this,true)},_onResize:function(B){this._execOnAll("resetConstraints",[])},lock:function(){this.locked=true},unlock:function(){this.locked=false},isLocked:function(){return this.locked},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:350,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,regDragDrop:function(C,B){if(!this.initialized){this.init()}if(!this.ids[B]){this.ids[B]={}}this.ids[B][C.id]=C},removeDDFromGroup:function(D,B){if(!this.ids[B]){this.ids[B]={}}var C=this.ids[B];if(C&&C[D.id]){delete C[D.id]}},_remove:function(C){for(var B in C.groups){if(B&&this.ids[B][C.id]){delete this.ids[B][C.id]}}delete this.handleIds[C.id]},regHandle:function(C,B){if(!this.handleIds[C]){this.handleIds[C]={}}this.handleIds[C][B]=B},isDragDrop:function(B){return(this.getDDById(B))?true:false},getRelated:function(F,C){var E=[];for(var D in F.groups){for(j in this.ids[D]){var B=this.ids[D][j];if(!this.isTypeOfDD(B)){continue}if(!C||B.isTarget){E[E.length]=B}}}return E},isLegalTarget:function(F,E){var C=this.getRelated(F,true);for(var D=0,B=C.length;Dthis.clickPixelThresh||B>this.clickPixelThresh){this.startDrag(this.startX,this.startY)}}if(this.dragThreshMet){this.dragCurrent.b4Drag(D);this.dragCurrent.onDrag(D);if(!this.dragCurrent.moveOnly){this.fireEvents(D,false)}}this.stopEvent(D);return true},fireEvents:function(K,L){var N=this.dragCurrent;if(!N||N.isLocked()){return}var O=K.getPoint();var B=[];var E=[];var I=[];var G=[];var D=[];for(var F in this.dragOvers){var C=this.dragOvers[F];if(!this.isTypeOfDD(C)){continue}if(!this.isOverTarget(O,C,this.mode)){E.push(C)}B[F]=true;delete this.dragOvers[F]}for(var M in N.groups){if("string"!=typeof M){continue}for(F in this.ids[M]){var H=this.ids[M][F];if(!this.isTypeOfDD(H)){continue}if(H.isTarget&&!H.isLocked()&&H!=N){if(this.isOverTarget(O,H,this.mode)){if(L){G.push(H)}else{if(!B[H.id]){D.push(H)}else{I.push(H)}this.dragOvers[H.id]=H}}}}}if(this.mode){if(E.length){N.b4DragOut(K,E);N.onDragOut(K,E)}if(D.length){N.onDragEnter(K,D)}if(I.length){N.b4DragOver(K,I);N.onDragOver(K,I)}if(G.length){N.b4DragDrop(K,G);N.onDragDrop(K,G)}}else{var J=0;for(F=0,J=E.length;F2000){}else{setTimeout(B._addListeners,10);if(document&&document.body){B._timeoutCount+=1}}}},handleWasClicked:function(B,D){if(this.isHandle(D,B.id)){return true}else{var C=B.parentNode;while(C){if(this.isHandle(D,C.id)){return true}else{C=C.parentNode}}}return false}}}();Ext.dd.DDM=Ext.dd.DragDropMgr;Ext.dd.DDM._addListeners()}Ext.dd.DD=function(C,A,B){if(C){this.init(C,A,B)}};Ext.extend(Ext.dd.DD,Ext.dd.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D)},setDelta:function(B,A){this.deltaX=B;this.deltaY=A},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B)},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);var B=C.dom?C:Ext.fly(C,"_dd");if(!this.deltaSetXY){var H=[E.x,E.y];B.setXY(H);var D=B.getLeft(true);var A=B.getTop(true);this.deltaSetXY=[D-E.x,A-E.y]}else{B.setLeftTop(E.x+this.deltaSetXY[0],E.y+this.deltaSetXY[1])}this.cachePosition(E.x,E.y);this.autoScroll(E.x,E.y,C.offsetHeight,C.offsetWidth);return E},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A}else{var C=Ext.lib.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1]}},autoScroll:function(J,I,E,K){if(this.scroll){var L=Ext.lib.Dom.getViewHeight();var B=Ext.lib.Dom.getViewWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G0&&I-NB&&F0&&J-Dthis.maxX){A=this.maxX}}if(this.constrainY){if(Dthis.maxY){D=this.maxY}}A=this.getTick(A,this.xTicks);D=this.getTick(D,this.yTicks);return{x:A,y:D}},applyConfig:function(){Ext.dd.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false)},b4MouseDown:function(A){this.autoOffset(A.getPageX(),A.getPageY())},b4Drag:function(A){this.setDragElPos(A.getPageX(),A.getPageY())},toString:function(){return("DD "+this.id)}});Ext.dd.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame()}};Ext.dd.DDProxy.dragElId="ygddfdiv";Ext.extend(Ext.dd.DDProxy,Ext.dd.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this;var A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame()},50);return}var D=this.getDragEl();if(!D){D=document.createElement("div");D.id=this.dragElId;var C=D.style;C.position="absolute";C.visibility="hidden";C.cursor="move";C.border="2px solid #aaa";C.zIndex=999;A.insertBefore(D,A.firstChild)}},initFrame:function(){this.createFrame()},applyConfig:function(){Ext.dd.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||Ext.dd.DDProxy.dragElId)},showFrame:function(E,D){var C=this.getEl();var A=this.getDragEl();var B=A.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(B.width,10)/2),Math.round(parseInt(B.height,10)/2))}this.setDragElPos(E,D);Ext.fly(A).show()},_resizeProxy:function(){if(this.resizeFrame){var A=this.getEl();Ext.fly(this.getDragEl()).setSize(A.offsetWidth,A.offsetHeight)}},b4MouseDown:function(B){var A=B.getPageX();var C=B.getPageY();this.autoOffset(A,C);this.setDragElPos(A,C)},b4StartDrag:function(A,B){this.showFrame(A,B)},b4EndDrag:function(A){Ext.fly(this.getDragEl()).hide()},endDrag:function(C){var B=this.getEl();var A=this.getDragEl();A.style.visibility="";this.beforeMove();B.style.visibility="hidden";Ext.dd.DDM.moveToEl(B,A);A.style.visibility="hidden";B.style.visibility="";this.afterDrag()},beforeMove:function(){},afterDrag:function(){},toString:function(){return("DDProxy "+this.id)}});Ext.dd.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B)}};Ext.extend(Ext.dd.DDTarget,Ext.dd.DragDrop,{toString:function(){return("DDTarget "+this.id)}});Ext.dd.DragTracker=function(A){Ext.apply(this,A);this.addEvents("mousedown","mouseup","mousemove","dragstart","dragend","drag");this.dragRegion=new Ext.lib.Region(0,0,0,0);if(this.el){this.initEl(this.el)}};Ext.extend(Ext.dd.DragTracker,Ext.util.Observable,{active:false,tolerance:5,autoStart:false,initEl:function(A){this.el=Ext.get(A);A.on("mousedown",this.onMouseDown,this,this.delegate?{delegate:this.delegate}:undefined)},destroy:function(){this.el.un("mousedown",this.onMouseDown,this)},onMouseDown:function(C,B){if(this.fireEvent("mousedown",this,C)!==false&&this.onBeforeStart(C)!==false){this.startXY=this.lastXY=C.getXY();this.dragTarget=this.delegate?B:this.el.dom;C.preventDefault();var A=Ext.getDoc();A.on("mouseup",this.onMouseUp,this);A.on("mousemove",this.onMouseMove,this);A.on("selectstart",this.stopSelect,this);if(this.autoStart){this.timer=this.triggerStart.defer(this.autoStart===true?1000:this.autoStart,this)}}},onMouseMove:function(D,C){D.preventDefault();var B=D.getXY(),A=this.startXY;this.lastXY=B;if(!this.active){if(Math.abs(A[0]-B[0])>this.tolerance||Math.abs(A[1]-B[1])>this.tolerance){this.triggerStart()}else{return}}this.fireEvent("mousemove",this,D);this.onDrag(D);this.fireEvent("drag",this,D)},onMouseUp:function(B){var A=Ext.getDoc();A.un("mousemove",this.onMouseMove,this);A.un("mouseup",this.onMouseUp,this);A.un("selectstart",this.stopSelect,this);B.preventDefault();this.clearStart();this.active=false;delete this.elRegion;this.fireEvent("mouseup",this,B);this.onEnd(B);this.fireEvent("dragend",this,B)},triggerStart:function(A){this.clearStart();this.active=true;this.onStart(this.startXY);this.fireEvent("dragstart",this,this.startXY)},clearStart:function(){if(this.timer){clearTimeout(this.timer);delete this.timer}},stopSelect:function(A){A.stopEvent();return false},onBeforeStart:function(A){},onStart:function(A){},onDrag:function(A){},onEnd:function(A){},getDragTarget:function(){return this.dragTarget},getDragCt:function(){return this.el},getXY:function(A){return A?this.constrainModes[A].call(this,this.lastXY):this.lastXY},getOffset:function(C){var B=this.getXY(C);var A=this.startXY;return[A[0]-B[0],A[1]-B[1]]},constrainModes:{"point":function(B){if(!this.elRegion){this.elRegion=this.getDragCt().getRegion()}var A=this.dragRegion;A.left=B[0];A.top=B[1];A.right=B[0];A.bottom=B[1];A.constrainTo(this.elRegion);return[A.left,A.top]}}});Ext.dd.ScrollManager=function(){var C=Ext.dd.DragDropMgr;var E={};var B=null;var H={};var G=function(K){B=null;A()};var I=function(){if(C.dragCurrent){C.refreshCache(C.dragCurrent.groups)}};var D=function(){if(C.dragCurrent){var K=Ext.dd.ScrollManager;var L=H.el.ddScrollConfig?H.el.ddScrollConfig.increment:K.increment;if(!K.animate){if(H.el.scroll(H.dir,L)){I()}}else{H.el.scroll(H.dir,L,true,K.animDuration,I)}}};var A=function(){if(H.id){clearInterval(H.id)}H.id=0;H.el=null;H.dir=""};var F=function(L,K){A();H.el=L;H.dir=K;var M=(L.ddScrollConfig&&L.ddScrollConfig.frequency)?L.ddScrollConfig.frequency:Ext.dd.ScrollManager.frequency;H.id=setInterval(D,M)};var J=function(N,P){if(P||!C.dragCurrent){return}var Q=Ext.dd.ScrollManager;if(!B||B!=C.dragCurrent){B=C.dragCurrent;Q.refreshCache()}var R=Ext.lib.Event.getXY(N);var S=new Ext.lib.Point(R[0],R[1]);for(var L in E){var M=E[L],K=M._region;var O=M.ddScrollConfig?M.ddScrollConfig:Q;if(K&&K.contains(S)&&M.isScrollable()){if(K.bottom-S.y<=O.vthresh){if(H.el!=M){F(M,"down")}return}else{if(K.right-S.x<=O.hthresh){if(H.el!=M){F(M,"left")}return}else{if(S.y-K.top<=O.vthresh){if(H.el!=M){F(M,"up")}return}else{if(S.x-K.left<=O.hthresh){if(H.el!=M){F(M,"right")}return}}}}}}A()};C.fireEvents=C.fireEvents.createSequence(J,C);C.stopDrag=C.stopDrag.createSequence(G,C);return{register:function(M){if(Ext.isArray(M)){for(var L=0,K=M.length;L]+>/gi,asText:function(A){return String(A).replace(this.stripTagsRE,"")},asUCText:function(A){return String(A).toUpperCase().replace(this.stripTagsRE,"")},asUCString:function(A){return String(A).toUpperCase()},asDate:function(A){if(!A){return 0}if(Ext.isDate(A)){return A.getTime()}return Date.parse(String(A))},asFloat:function(A){var B=parseFloat(String(A).replace(/,/g,""));if(isNaN(B)){B=0}return B},asInt:function(A){var B=parseInt(String(A).replace(/,/g,""));if(isNaN(B)){B=0}return B}};Ext.data.Record=function(A,B){this.id=(B||B===0)?B:++Ext.data.Record.AUTO_ID;this.data=A};Ext.data.Record.create=function(E){var C=Ext.extend(Ext.data.Record,{});var D=C.prototype;D.fields=new Ext.util.MixedCollection(false,function(F){return F.name});for(var B=0,A=E.length;BG?1:(H0},isExpandable:function(){return this.attributes.expandable||this.hasChildNodes()},appendChild:function(E){var F=false;if(Ext.isArray(E)){F=E}else{if(arguments.length>1){F=arguments}}if(F){for(var D=0,A=F.length;D0){var F=D?function(){E.apply(D,arguments)}:E;C.sort(F);for(var B=0;BG+L.left){H=G-I-this.shadowOffset;E=true}if((F+D)>C+L.top){F=C-D-this.shadowOffset;E=true}if(H=J){F=J-D-5}}K=[H,F];this.storeXY(K);A.setXY.call(this,K);this.sync()}}},isVisible:function(){return this.visible},showAction:function(){this.visible=true;if(this.useDisplay===true){this.setDisplayed("")}else{if(this.lastXY){A.setXY.call(this,this.lastXY)}else{if(this.lastLT){A.setLeftTop.call(this,this.lastLT[0],this.lastLT[1])}}}},hideAction:function(){this.visible=false;if(this.useDisplay===true){this.setDisplayed(false)}else{this.setLeftTop(-10000,-10000)}},setVisible:function(E,D,G,H,F){if(E){this.showAction()}if(D&&E){var C=function(){this.sync(true);if(H){H()}}.createDelegate(this);A.setVisible.call(this,true,true,G,C,F)}else{if(!E){this.hideUnders(true)}var C=H;if(D){C=function(){this.hideAction();if(H){H()}}.createDelegate(this)}A.setVisible.call(this,E,D,G,C,F);if(E){this.sync(true)}else{if(!D){this.hideAction()}}}},storeXY:function(C){delete this.lastLT;this.lastXY=C},storeLeftTop:function(D,C){delete this.lastXY;this.lastLT=[D,C]},beforeFx:function(){this.beforeAction();return Ext.Layer.superclass.beforeFx.apply(this,arguments)},afterFx:function(){Ext.Layer.superclass.afterFx.apply(this,arguments);this.sync(this.isVisible())},beforeAction:function(){if(!this.updating&&this.shadow){this.shadow.hide()}},setLeft:function(C){this.storeLeftTop(C,this.getTop(true));A.setLeft.apply(this,arguments);this.sync()},setTop:function(C){this.storeLeftTop(this.getLeft(true),C);A.setTop.apply(this,arguments);this.sync()},setLeftTop:function(D,C){this.storeLeftTop(D,C);A.setLeftTop.apply(this,arguments);this.sync()},setXY:function(F,D,G,H,E){this.fixDisplay();this.beforeAction();this.storeXY(F);var C=this.createCB(H);A.setXY.call(this,F,D,G,C,E);if(!D){C()}},createCB:function(D){var C=this;return function(){C.constrainXY();C.sync(true);if(D){D()}}},setX:function(C,D,F,G,E){this.setXY([C,this.getY()],D,F,G,E)},setY:function(G,C,E,F,D){this.setXY([this.getX(),G],C,E,F,D)},setSize:function(E,F,D,H,I,G){this.beforeAction();var C=this.createCB(I);A.setSize.call(this,E,F,D,H,C,G);if(!D){C()}},setWidth:function(E,D,G,H,F){this.beforeAction();var C=this.createCB(H);A.setWidth.call(this,E,D,G,C,F);if(!D){C()}},setHeight:function(E,D,G,H,F){this.beforeAction();var C=this.createCB(H);A.setHeight.call(this,E,D,G,C,F);if(!D){C()}},setBounds:function(J,H,K,D,I,F,G,E){this.beforeAction();var C=this.createCB(G);if(!I){this.storeXY([J,H]);A.setXY.call(this,[J,H]);A.setSize.call(this,K,D,I,F,C,E);C()}else{A.setBounds.call(this,J,H,K,D,I,F,C,E)}return this},setZIndex:function(C){this.zindex=C;this.setStyle("z-index",C+2);if(this.shadow){this.shadow.setZIndex(C+1)}if(this.shim){this.shim.setStyle("z-index",C)}}})})();Ext.Shadow=function(C){Ext.apply(this,C);if(typeof this.mode!="string"){this.mode=this.defaultMode}var D=this.offset,B={h:0};var A=Math.floor(this.offset/2);switch(this.mode.toLowerCase()){case"drop":B.w=0;B.l=B.t=D;B.t-=1;if(Ext.isIE){B.l-=this.offset+A;B.t-=this.offset+A;B.w-=A;B.h-=A;B.t+=1}break;case"sides":B.w=(D*2);B.l=-D;B.t=D-1;if(Ext.isIE){B.l-=(this.offset-A);B.t-=this.offset+A;B.l+=1;B.w-=(this.offset-A)*2;B.w-=A+1;B.h-=1}break;case"frame":B.w=B.h=(D*2);B.l=B.t=-D;B.t+=1;B.h-=2;if(Ext.isIE){B.l-=(this.offset-A);B.t-=(this.offset-A);B.l+=1;B.w-=(this.offset+A+1);B.h-=(this.offset+A);B.h+=1}break}this.adjusts=B};Ext.Shadow.prototype={offset:4,defaultMode:"drop",show:function(A){A=Ext.get(A);if(!this.el){this.el=Ext.Shadow.Pool.pull();if(this.el.dom.nextSibling!=A.dom){this.el.insertBefore(A)}}this.el.setStyle("z-index",this.zIndex||parseInt(A.getStyle("z-index"),10)-1);if(Ext.isIE){this.el.dom.style.filter="progid:DXImageTransform.Microsoft.alpha(opacity=50) progid:DXImageTransform.Microsoft.Blur(pixelradius="+(this.offset)+")"}this.realign(A.getLeft(true),A.getTop(true),A.getWidth(),A.getHeight());this.el.dom.style.display="block"},isVisible:function(){return this.el?true:false},realign:function(A,M,L,D){if(!this.el){return}var I=this.adjusts,G=this.el.dom,N=G.style;var E=0;N.left=(A+I.l)+"px";N.top=(M+I.t)+"px";var K=(L+I.w),C=(D+I.h),F=K+"px",J=C+"px";if(N.width!=F||N.height!=J){N.width=F;N.height=J;if(!Ext.isIE){var H=G.childNodes;var B=Math.max(0,(K-12))+"px";H[0].childNodes[1].style.width=B;H[1].childNodes[1].style.width=B;H[2].childNodes[1].style.width=B;H[1].style.height=Math.max(0,(C-12))+"px"}}},hide:function(){if(this.el){this.el.dom.style.display="none";Ext.Shadow.Pool.push(this.el);delete this.el}},setZIndex:function(A){this.zIndex=A;if(this.el){this.el.setStyle("z-index",A)}}};Ext.Shadow.Pool=function(){var B=[];var A=Ext.isIE?"
":"
";return{pull:function(){var C=B.shift();if(!C){C=Ext.get(Ext.DomHelper.insertHtml("beforeBegin",document.body.firstChild,A));C.autoBoxAdjust=false}return C},push:function(C){B.push(C)}}}();Ext.BoxComponent=Ext.extend(Ext.Component,{initComponent:function(){Ext.BoxComponent.superclass.initComponent.call(this);this.addEvents("resize","move")},boxReady:false,deferHeight:false,setSize:function(B,D){if(typeof B=="object"){D=B.height;B=B.width}if(!this.boxReady){this.width=B;this.height=D;return this}if(this.lastSize&&this.lastSize.width==B&&this.lastSize.height==D){return this}this.lastSize={width:B,height:D};var C=this.adjustSize(B,D);var F=C.width,A=C.height;if(F!==undefined||A!==undefined){var E=this.getResizeEl();if(!this.deferHeight&&F!==undefined&&A!==undefined){E.setSize(F,A)}else{if(!this.deferHeight&&A!==undefined){E.setHeight(A)}else{if(F!==undefined){E.setWidth(F)}}}this.onResize(F,A,B,D);this.fireEvent("resize",this,F,A,B,D)}return this},setWidth:function(A){return this.setSize(A)},setHeight:function(A){return this.setSize(undefined,A)},getSize:function(){return this.el.getSize()},getPosition:function(A){if(A===true){return[this.el.getLeft(true),this.el.getTop(true)]}return this.xy||this.el.getXY()},getBox:function(A){var B=this.el.getSize();if(A===true){B.x=this.el.getLeft(true);B.y=this.el.getTop(true)}else{var C=this.xy||this.el.getXY();B.x=C[0];B.y=C[1]}return B},updateBox:function(A){this.setSize(A.width,A.height);this.setPagePosition(A.x,A.y);return this},getResizeEl:function(){return this.resizeEl||this.el},getPositionEl:function(){return this.positionEl||this.el},setPosition:function(A,F){if(A&&typeof A[1]=="number"){F=A[1];A=A[0]}this.x=A;this.y=F;if(!this.boxReady){return this}var B=this.adjustPosition(A,F);var E=B.x,D=B.y;var C=this.getPositionEl();if(E!==undefined||D!==undefined){if(E!==undefined&&D!==undefined){C.setLeftTop(E,D)}else{if(E!==undefined){C.setLeft(E)}else{if(D!==undefined){C.setTop(D)}}}this.onPosition(E,D);this.fireEvent("move",this,E,D)}return this},setPagePosition:function(A,C){if(A&&typeof A[1]=="number"){C=A[1];A=A[0]}this.pageX=A;this.pageY=C;if(!this.boxReady){return}if(A===undefined||C===undefined){return}var B=this.el.translatePoints(A,C);this.setPosition(B.left,B.top);return this},onRender:function(B,A){Ext.BoxComponent.superclass.onRender.call(this,B,A);if(this.resizeEl){this.resizeEl=Ext.get(this.resizeEl)}if(this.positionEl){this.positionEl=Ext.get(this.positionEl)}},afterRender:function(){Ext.BoxComponent.superclass.afterRender.call(this);this.boxReady=true;this.setSize(this.width,this.height);if(this.x||this.y){this.setPosition(this.x,this.y)}else{if(this.pageX||this.pageY){this.setPagePosition(this.pageX,this.pageY)}}},syncSize:function(){delete this.lastSize;this.setSize(this.autoWidth?undefined:this.el.getWidth(),this.autoHeight?undefined:this.el.getHeight());return this},onResize:function(D,B,A,C){},onPosition:function(A,B){},adjustSize:function(A,B){if(this.autoWidth){A="auto"}if(this.autoHeight){B="auto"}return{width:A,height:B}},adjustPosition:function(A,B){return{x:A,y:B}}});Ext.reg("box",Ext.BoxComponent);Ext.SplitBar=function(C,E,B,D,A){this.el=Ext.get(C,true);this.el.dom.unselectable="on";this.resizingEl=Ext.get(E,true);this.orientation=B||Ext.SplitBar.HORIZONTAL;this.minSize=0;this.maxSize=2000;this.animate=false;this.useShim=false;this.shim=null;if(!A){this.proxy=Ext.SplitBar.createProxy(this.orientation)}else{this.proxy=Ext.get(A).dom}this.dd=new Ext.dd.DDProxy(this.el.dom.id,"XSplitBars",{dragElId:this.proxy.id});this.dd.b4StartDrag=this.onStartProxyDrag.createDelegate(this);this.dd.endDrag=this.onEndProxyDrag.createDelegate(this);this.dragSpecs={};this.adapter=new Ext.SplitBar.BasicLayoutAdapter();this.adapter.init(this);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.placement=D||(this.el.getX()>this.resizingEl.getX()?Ext.SplitBar.LEFT:Ext.SplitBar.RIGHT);this.el.addClass("x-splitbar-h")}else{this.placement=D||(this.el.getY()>this.resizingEl.getY()?Ext.SplitBar.TOP:Ext.SplitBar.BOTTOM);this.el.addClass("x-splitbar-v")}this.addEvents("resize","moved","beforeresize","beforeapply");Ext.SplitBar.superclass.constructor.call(this)};Ext.extend(Ext.SplitBar,Ext.util.Observable,{onStartProxyDrag:function(A,E){this.fireEvent("beforeresize",this);this.overlay=Ext.DomHelper.append(document.body,{cls:"x-drag-overlay",html:" "},true);this.overlay.unselectable();this.overlay.setSize(Ext.lib.Dom.getViewWidth(true),Ext.lib.Dom.getViewHeight(true));this.overlay.show();Ext.get(this.proxy).setDisplayed("block");var C=this.adapter.getElementSize(this);this.activeMinSize=this.getMinimumSize();this.activeMaxSize=this.getMaximumSize();var D=C-this.activeMinSize;var B=Math.max(this.activeMaxSize-C,0);if(this.orientation==Ext.SplitBar.HORIZONTAL){this.dd.resetConstraints();this.dd.setXConstraint(this.placement==Ext.SplitBar.LEFT?D:B,this.placement==Ext.SplitBar.LEFT?B:D);this.dd.setYConstraint(0,0)}else{this.dd.resetConstraints();this.dd.setXConstraint(0,0);this.dd.setYConstraint(this.placement==Ext.SplitBar.TOP?D:B,this.placement==Ext.SplitBar.TOP?B:D)}this.dragSpecs.startSize=C;this.dragSpecs.startPoint=[A,E];Ext.dd.DDProxy.prototype.b4StartDrag.call(this.dd,A,E)},onEndProxyDrag:function(C){Ext.get(this.proxy).setDisplayed(false);var B=Ext.lib.Event.getXY(C);if(this.overlay){this.overlay.remove();delete this.overlay}var A;if(this.orientation==Ext.SplitBar.HORIZONTAL){A=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.LEFT?B[0]-this.dragSpecs.startPoint[0]:this.dragSpecs.startPoint[0]-B[0])}else{A=this.dragSpecs.startSize+(this.placement==Ext.SplitBar.TOP?B[1]-this.dragSpecs.startPoint[1]:this.dragSpecs.startPoint[1]-B[1])}A=Math.min(Math.max(A,this.activeMinSize),this.activeMaxSize);if(A!=this.dragSpecs.startSize){if(this.fireEvent("beforeapply",this,A)!==false){this.adapter.setElementSize(this,A);this.fireEvent("moved",this,A);this.fireEvent("resize",this,A)}}},getAdapter:function(){return this.adapter},setAdapter:function(A){this.adapter=A;this.adapter.init(this)},getMinimumSize:function(){return this.minSize},setMinimumSize:function(A){this.minSize=A},getMaximumSize:function(){return this.maxSize},setMaximumSize:function(A){this.maxSize=A},setCurrentSize:function(B){var A=this.animate;this.animate=false;this.adapter.setElementSize(this,B);this.animate=A},destroy:function(A){if(this.shim){this.shim.remove()}this.dd.unreg();Ext.removeNode(this.proxy);if(A){this.el.remove()}}});Ext.SplitBar.createProxy=function(B){var C=new Ext.Element(document.createElement("div"));C.unselectable();var A="x-splitbar-proxy";C.addClass(A+" "+(B==Ext.SplitBar.HORIZONTAL?A+"-h":A+"-v"));document.body.appendChild(C.dom);return C.dom};Ext.SplitBar.BasicLayoutAdapter=function(){};Ext.SplitBar.BasicLayoutAdapter.prototype={init:function(A){},getElementSize:function(A){if(A.orientation==Ext.SplitBar.HORIZONTAL){return A.resizingEl.getWidth()}else{return A.resizingEl.getHeight()}},setElementSize:function(B,A,C){if(B.orientation==Ext.SplitBar.HORIZONTAL){if(!B.animate){B.resizingEl.setWidth(A);if(C){C(B,A)}}else{B.resizingEl.setWidth(A,true,0.1,C,"easeOut")}}else{if(!B.animate){B.resizingEl.setHeight(A);if(C){C(B,A)}}else{B.resizingEl.setHeight(A,true,0.1,C,"easeOut")}}}};Ext.SplitBar.AbsoluteLayoutAdapter=function(A){this.basic=new Ext.SplitBar.BasicLayoutAdapter();this.container=Ext.get(A)};Ext.SplitBar.AbsoluteLayoutAdapter.prototype={init:function(A){this.basic.init(A)},getElementSize:function(A){return this.basic.getElementSize(A)},setElementSize:function(B,A,C){this.basic.setElementSize(B,A,this.moveSplitter.createDelegate(this,[B]))},moveSplitter:function(A){var B=Ext.SplitBar;switch(A.placement){case B.LEFT:A.el.setX(A.resizingEl.getRight());break;case B.RIGHT:A.el.setStyle("right",(this.container.getWidth()-A.resizingEl.getLeft())+"px");break;case B.TOP:A.el.setY(A.resizingEl.getBottom());break;case B.BOTTOM:A.el.setY(A.resizingEl.getTop()-A.el.getHeight());break}}};Ext.SplitBar.VERTICAL=1;Ext.SplitBar.HORIZONTAL=2;Ext.SplitBar.LEFT=1;Ext.SplitBar.RIGHT=2;Ext.SplitBar.TOP=3;Ext.SplitBar.BOTTOM=4;Ext.Container=Ext.extend(Ext.BoxComponent,{autoDestroy:true,defaultType:"panel",initComponent:function(){Ext.Container.superclass.initComponent.call(this);this.addEvents("afterlayout","beforeadd","beforeremove","add","remove");var A=this.items;if(A){delete this.items;if(Ext.isArray(A)){this.add.apply(this,A)}else{this.add(A)}}},initItems:function(){if(!this.items){this.items=new Ext.util.MixedCollection(false,this.getComponentId);this.getLayout()}},setLayout:function(A){if(this.layout&&this.layout!=A){this.layout.setContainer(null)}this.initItems();this.layout=A;A.setContainer(this)},render:function(){Ext.Container.superclass.render.apply(this,arguments);if(this.layout){if(typeof this.layout=="string"){this.layout=new Ext.Container.LAYOUTS[this.layout.toLowerCase()](this.layoutConfig)}this.setLayout(this.layout);if(this.activeItem!==undefined){var A=this.activeItem;delete this.activeItem;this.layout.setActiveItem(A);return}}if(!this.ownerCt){this.doLayout()}if(this.monitorResize===true){Ext.EventManager.onWindowResize(this.doLayout,this,[false])}},getLayoutTarget:function(){return this.el},getComponentId:function(A){return A.itemId||A.id},add:function(C){if(!this.items){this.initItems()}var B=arguments,A=B.length;if(A>1){for(var D=0;D2){for(var E=A-1;E>=1;--E){this.insert(D,B[E])}return}var F=this.lookupComponent(this.applyDefaults(C));if(F.ownerCt==this&&this.items.indexOf(F)0){B.setSize(A)}}});Ext.Container.LAYOUTS["fit"]=Ext.layout.FitLayout;Ext.layout.CardLayout=Ext.extend(Ext.layout.FitLayout,{deferredRender:false,renderHidden:true,setActiveItem:function(A){A=this.container.getComponent(A);if(this.activeItem!=A){if(this.activeItem){this.activeItem.hide()}this.activeItem=A;A.show();this.layout()}},renderAll:function(A,B){if(this.deferredRender){this.renderItem(this.activeItem,undefined,B)}else{Ext.layout.CardLayout.superclass.renderAll.call(this,A,B)}}});Ext.Container.LAYOUTS["card"]=Ext.layout.CardLayout;Ext.layout.AnchorLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,getAnchorViewSize:function(A,B){return B.dom==document.body?B.getViewSize():B.getStyleSize()},onLayout:function(F,I){Ext.layout.AnchorLayout.superclass.onLayout.call(this,F,I);var O=this.getAnchorViewSize(F,I);var M=O.width,E=O.height;if(M<20||E<20){return}var B,K;if(F.anchorSize){if(typeof F.anchorSize=="number"){B=F.anchorSize}else{B=F.anchorSize.width;K=F.anchorSize.height}}else{B=F.initialConfig.width;K=F.initialConfig.height}var H=F.items.items,G=H.length,D,J,L,C,A;for(D=0;D ");B.disableFormats=true;B.compile();Ext.layout.BorderLayout.Region.prototype.toolTemplate=B}this.collapsedEl=this.targetEl.createChild({cls:"x-layout-collapsed x-layout-collapsed-"+this.position,id:this.panel.id+"-xcollapsed"});this.collapsedEl.enableDisplayMode("block");if(this.collapseMode=="mini"){this.collapsedEl.addClass("x-layout-cmini-"+this.position);this.miniCollapsedEl=this.collapsedEl.createChild({cls:"x-layout-mini x-layout-mini-"+this.position,html:" "});this.miniCollapsedEl.addClassOnOver("x-layout-mini-over");this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.onExpandClick,this,{stopEvent:true})}else{var A=this.toolTemplate.append(this.collapsedEl.dom,{id:"expand-"+this.position},true);A.addClassOnOver("x-tool-expand-"+this.position+"-over");A.on("click",this.onExpandClick,this,{stopEvent:true});if(this.floatable!==false){this.collapsedEl.addClassOnOver("x-layout-collapsed-over");this.collapsedEl.on("click",this.collapseClick,this)}}}return this.collapsedEl},onExpandClick:function(A){if(this.isSlid){this.afterSlideIn();this.panel.expand(false)}else{this.panel.expand()}},onCollapseClick:function(A){this.panel.collapse()},beforeCollapse:function(B,A){this.lastAnim=A;if(this.splitEl){this.splitEl.hide()}this.getCollapsedEl().show();this.panel.el.setStyle("z-index",100);this.isCollapsed=true;this.layout.layout()},onCollapse:function(A){this.panel.el.setStyle("z-index",1);if(this.lastAnim===false||this.panel.animCollapse===false){this.getCollapsedEl().dom.style.visibility="visible"}else{this.getCollapsedEl().slideIn(this.panel.slideAnchor,{duration:0.2})}this.state.collapsed=true;this.panel.saveState()},beforeExpand:function(A){var B=this.getCollapsedEl();this.el.show();if(this.position=="east"||this.position=="west"){this.panel.setSize(undefined,B.getHeight())}else{this.panel.setSize(B.getWidth(),undefined)}B.hide();B.dom.style.visibility="hidden";this.panel.el.setStyle("z-index",100)},onExpand:function(){this.isCollapsed=false;if(this.splitEl){this.splitEl.show()}this.layout.layout();this.panel.el.setStyle("z-index",1);this.state.collapsed=false;this.panel.saveState()},collapseClick:function(A){if(this.isSlid){A.stopPropagation();this.slideIn()}else{A.stopPropagation();this.slideOut()}},onHide:function(){if(this.isCollapsed){this.getCollapsedEl().hide()}else{if(this.splitEl){this.splitEl.hide()}}},onShow:function(){if(this.isCollapsed){this.getCollapsedEl().show()}else{if(this.splitEl){this.splitEl.show()}}},isVisible:function(){return!this.panel.hidden},getMargins:function(){return this.isCollapsed&&this.cmargins?this.cmargins:this.margins},getSize:function(){return this.isCollapsed?this.getCollapsedEl().getSize():this.panel.getSize()},setPanel:function(A){this.panel=A},getMinWidth:function(){return this.minWidth},getMinHeight:function(){return this.minHeight},applyLayoutCollapsed:function(A){var B=this.getCollapsedEl();B.setLeftTop(A.x,A.y);B.setSize(A.width,A.height)},applyLayout:function(A){if(this.isCollapsed){this.applyLayoutCollapsed(A)}else{this.panel.setPosition(A.x,A.y);this.panel.setSize(A.width,A.height)}},beforeSlide:function(){this.panel.beforeEffect()},afterSlide:function(){this.panel.afterEffect()},initAutoHide:function(){if(this.autoHide!==false){if(!this.autoHideHd){var A=new Ext.util.DelayedTask(this.slideIn,this);this.autoHideHd={"mouseout":function(B){if(!B.within(this.el,true)){A.delay(500)}},"mouseover":function(B){A.cancel()},scope:this}}this.el.on(this.autoHideHd)}},clearAutoHide:function(){if(this.autoHide!==false){this.el.un("mouseout",this.autoHideHd.mouseout);this.el.un("mouseover",this.autoHideHd.mouseover)}},clearMonitor:function(){Ext.getDoc().un("click",this.slideInIf,this)},slideOut:function(){if(this.isSlid||this.el.hasActiveFx()){return}this.isSlid=true;var A=this.panel.tools;if(A&&A.toggle){A.toggle.hide()}this.el.show();if(this.position=="east"||this.position=="west"){this.panel.setSize(undefined,this.collapsedEl.getHeight())}else{this.panel.setSize(this.collapsedEl.getWidth(),undefined)}this.restoreLT=[this.el.dom.style.left,this.el.dom.style.top];this.el.alignTo(this.collapsedEl,this.getCollapseAnchor());this.el.setStyle("z-index",102);if(this.animFloat!==false){this.beforeSlide();this.el.slideIn(this.getSlideAnchor(),{callback:function(){this.afterSlide();this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this)},scope:this,block:true})}else{this.initAutoHide();Ext.getDoc().on("click",this.slideInIf,this)}},afterSlideIn:function(){this.clearAutoHide();this.isSlid=false;this.clearMonitor();this.el.setStyle("z-index","");this.el.dom.style.left=this.restoreLT[0];this.el.dom.style.top=this.restoreLT[1];var A=this.panel.tools;if(A&&A.toggle){A.toggle.show()}},slideIn:function(A){if(!this.isSlid||this.el.hasActiveFx()){Ext.callback(A);return}this.isSlid=false;if(this.animFloat!==false){this.beforeSlide();this.el.slideOut(this.getSlideAnchor(),{callback:function(){this.el.hide();this.afterSlide();this.afterSlideIn();Ext.callback(A)},scope:this,block:true})}else{this.el.hide();this.afterSlideIn()}},slideInIf:function(A){if(!A.within(this.el)){this.slideIn()}},anchors:{"west":"left","east":"right","north":"top","south":"bottom"},sanchors:{"west":"l","east":"r","north":"t","south":"b"},canchors:{"west":"tl-tr","east":"tr-tl","north":"tl-bl","south":"bl-tl"},getAnchor:function(){return this.anchors[this.position]},getCollapseAnchor:function(){return this.canchors[this.position]},getSlideAnchor:function(){return this.sanchors[this.position]},getAlignAdj:function(){var A=this.cmargins;switch(this.position){case"west":return[0,0];break;case"east":return[0,0];break;case"north":return[0,0];break;case"south":return[0,0];break}},getExpandAdj:function(){var B=this.collapsedEl,A=this.cmargins;switch(this.position){case"west":return[-(A.right+B.getWidth()+A.left),0];break;case"east":return[A.right+B.getWidth()+A.left,0];break;case"north":return[0,-(A.top+A.bottom+B.getHeight())];break;case"south":return[0,A.top+A.bottom+B.getHeight()];break}}};Ext.layout.BorderLayout.SplitRegion=function(B,A,C){Ext.layout.BorderLayout.SplitRegion.superclass.constructor.call(this,B,A,C);this.applyLayout=this.applyFns[C]};Ext.extend(Ext.layout.BorderLayout.SplitRegion,Ext.layout.BorderLayout.Region,{splitTip:"Drag to resize.",collapsibleSplitTip:"Drag to resize. Double click to hide.",useSplitTips:false,splitSettings:{north:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.TOP,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},south:{orientation:Ext.SplitBar.VERTICAL,placement:Ext.SplitBar.BOTTOM,maxFn:"getVMaxSize",minProp:"minHeight",maxProp:"maxHeight"},east:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.RIGHT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"},west:{orientation:Ext.SplitBar.HORIZONTAL,placement:Ext.SplitBar.LEFT,maxFn:"getHMaxSize",minProp:"minWidth",maxProp:"maxWidth"}},applyFns:{west:function(C){if(this.isCollapsed){return this.applyLayoutCollapsed(C)}var D=this.splitEl.dom,B=D.style;this.panel.setPosition(C.x,C.y);var A=D.offsetWidth;B.left=(C.x+C.width-A)+"px";B.top=(C.y)+"px";B.height=Math.max(0,C.height)+"px";this.panel.setSize(C.width-A,C.height)},east:function(C){if(this.isCollapsed){return this.applyLayoutCollapsed(C)}var D=this.splitEl.dom,B=D.style;var A=D.offsetWidth;this.panel.setPosition(C.x+A,C.y);B.left=(C.x)+"px";B.top=(C.y)+"px";B.height=Math.max(0,C.height)+"px";this.panel.setSize(C.width-A,C.height)},north:function(C){if(this.isCollapsed){return this.applyLayoutCollapsed(C)}var D=this.splitEl.dom,B=D.style;var A=D.offsetHeight;this.panel.setPosition(C.x,C.y);B.left=(C.x)+"px";B.top=(C.y+C.height-A)+"px";B.width=Math.max(0,C.width)+"px";this.panel.setSize(C.width,C.height-A)},south:function(C){if(this.isCollapsed){return this.applyLayoutCollapsed(C)}var D=this.splitEl.dom,B=D.style;var A=D.offsetHeight;this.panel.setPosition(C.x,C.y+A);B.left=(C.x)+"px";B.top=(C.y)+"px";B.width=Math.max(0,C.width)+"px";this.panel.setSize(C.width,C.height-A)}},render:function(A,C){Ext.layout.BorderLayout.SplitRegion.superclass.render.call(this,A,C);var D=this.position;this.splitEl=A.createChild({cls:"x-layout-split x-layout-split-"+D,html:" ",id:this.panel.id+"-xsplit"});if(this.collapseMode=="mini"){this.miniSplitEl=this.splitEl.createChild({cls:"x-layout-mini x-layout-mini-"+D,html:" "});this.miniSplitEl.addClassOnOver("x-layout-mini-over");this.miniSplitEl.on("click",this.onCollapseClick,this,{stopEvent:true})}var B=this.splitSettings[D];this.split=new Ext.SplitBar(this.splitEl.dom,C.el,B.orientation);this.split.placement=B.placement;this.split.getMaximumSize=this[B.maxFn].createDelegate(this);this.split.minSize=this.minSize||this[B.minProp];this.split.on("beforeapply",this.onSplitMove,this);this.split.useShim=this.useShim===true;this.maxSize=this.maxSize||this[B.maxProp];if(C.hidden){this.splitEl.hide()}if(this.useSplitTips){this.splitEl.dom.title=this.collapsible?this.collapsibleSplitTip:this.splitTip}if(this.collapsible){this.splitEl.on("dblclick",this.onCollapseClick,this)}},getSize:function(){if(this.isCollapsed){return this.collapsedEl.getSize()}var A=this.panel.getSize();if(this.position=="north"||this.position=="south"){A.height+=this.splitEl.dom.offsetHeight}else{A.width+=this.splitEl.dom.offsetWidth}return A},getHMaxSize:function(){var B=this.maxSize||10000;var A=this.layout.center;return Math.min(B,(this.el.getWidth()+A.el.getWidth())-A.getMinWidth())},getVMaxSize:function(){var B=this.maxSize||10000;var A=this.layout.center;return Math.min(B,(this.el.getHeight()+A.el.getHeight())-A.getMinHeight())},onSplitMove:function(B,A){var C=this.panel.getSize();this.lastSplitSize=A;if(this.position=="north"||this.position=="south"){this.panel.setSize(C.width,A);this.state.height=A}else{this.panel.setSize(A,C.height);this.state.width=A}this.layout.layout();this.panel.saveState();return false},getSplitBar:function(){return this.split}});Ext.Container.LAYOUTS["border"]=Ext.layout.BorderLayout;Ext.layout.FormLayout=Ext.extend(Ext.layout.AnchorLayout,{labelSeparator:":",getAnchorViewSize:function(A,B){return A.body.getStyleSize()},setContainer:function(B){Ext.layout.FormLayout.superclass.setContainer.call(this,B);if(B.labelAlign){B.addClass("x-form-label-"+B.labelAlign)}if(B.hideLabels){this.labelStyle="display:none";this.elementStyle="padding-left:0;";this.labelAdjust=0}else{this.labelSeparator=B.labelSeparator||this.labelSeparator;B.labelWidth=B.labelWidth||100;if(typeof B.labelWidth=="number"){var C=(typeof B.labelPad=="number"?B.labelPad:5);this.labelAdjust=B.labelWidth+C;this.labelStyle="width:"+B.labelWidth+"px;";this.elementStyle="padding-left:"+(B.labelWidth+C)+"px"}if(B.labelAlign=="top"){this.labelStyle="width:auto;";this.labelAdjust=0;this.elementStyle="padding-left:0;"}}if(!this.fieldTpl){var A=new Ext.Template("
","","
","
","
");A.disableFormats=true;A.compile();Ext.layout.FormLayout.prototype.fieldTpl=A}},renderItem:function(D,A,C){if(D&&!D.rendered&&D.isFormField&&D.inputType!="hidden"){var B=[D.id,D.fieldLabel,D.labelStyle||this.labelStyle||"",this.elementStyle||"",typeof D.labelSeparator=="undefined"?this.labelSeparator:D.labelSeparator,(D.itemCls||this.container.itemCls||"")+(D.hideLabel?" x-hide-label":""),D.clearCls||"x-form-clear-left"];if(typeof A=="number"){A=C.dom.childNodes[A]||null}if(A){this.fieldTpl.insertBefore(A,B)}else{this.fieldTpl.append(C,B)}D.render("x-form-el-"+D.id)}else{Ext.layout.FormLayout.superclass.renderItem.apply(this,arguments)}},adjustWidthAnchor:function(B,A){return B-(A.isFormField?(A.hideLabel?0:this.labelAdjust):0)},isValidParent:function(B,A){return true}});Ext.Container.LAYOUTS["form"]=Ext.layout.FormLayout;Ext.layout.Accordion=Ext.extend(Ext.layout.FitLayout,{fill:true,autoWidth:true,titleCollapse:true,hideCollapseTool:false,collapseFirst:false,animate:false,sequence:false,activeOnTop:false,renderItem:function(A){if(this.animate===false){A.animCollapse=false}A.collapsible=true;if(this.autoWidth){A.autoWidth=true}if(this.titleCollapse){A.titleCollapse=true}if(this.hideCollapseTool){A.hideCollapseTool=true}if(this.collapseFirst!==undefined){A.collapseFirst=this.collapseFirst}if(!this.activeItem&&!A.collapsed){this.activeItem=A}else{if(this.activeItem){A.collapsed=true}}Ext.layout.Accordion.superclass.renderItem.apply(this,arguments);A.header.addClass("x-accordion-hd");A.on("beforeexpand",this.beforeExpand,this)},beforeExpand:function(C,B){var A=this.activeItem;if(A){if(this.sequence){delete this.activeItem;if(!A.collapsed){A.collapse({callback:function(){C.expand(B||true)},scope:this});return false}}else{A.collapse(this.animate)}}this.activeItem=C;if(this.activeOnTop){C.el.dom.parentNode.insertBefore(C.el.dom,C.el.dom.parentNode.firstChild)}this.layout()},setItemSize:function(F,E){if(this.fill&&F){var B=this.container.items.items;var D=0;for(var C=0,A=B.length;C=B)||(this.cells[C]&&this.cells[C][A])){if(B&&A>=B){C++;A=0}else{A++}}return[A,C]},renderItem:function(C,A,B){if(C&&!C.rendered){C.render(this.getNextCell(C))}},isValidParent:function(B,A){return true}});Ext.Container.LAYOUTS["table"]=Ext.layout.TableLayout;Ext.layout.AbsoluteLayout=Ext.extend(Ext.layout.AnchorLayout,{extraCls:"x-abs-layout-item",isForm:false,setContainer:function(A){Ext.layout.AbsoluteLayout.superclass.setContainer.call(this,A);if(A.isXType("form")){this.isForm=true}},onLayout:function(A,B){if(this.isForm){A.body.position()}else{B.position()}Ext.layout.AbsoluteLayout.superclass.onLayout.call(this,A,B)},getAnchorViewSize:function(A,B){return this.isForm?A.body.getStyleSize():Ext.layout.AbsoluteLayout.superclass.getAnchorViewSize.call(this,A,B)},isValidParent:function(B,A){return this.isForm?true:Ext.layout.AbsoluteLayout.superclass.isValidParent.call(this,B,A)},adjustWidthAnchor:function(B,A){return B?B-A.getPosition(true)[0]:B},adjustHeightAnchor:function(B,A){return B?B-A.getPosition(true)[1]:B}});Ext.Container.LAYOUTS["absolute"]=Ext.layout.AbsoluteLayout;Ext.Viewport=Ext.extend(Ext.Container,{initComponent:function(){Ext.Viewport.superclass.initComponent.call(this);document.getElementsByTagName("html")[0].className+=" x-viewport";this.el=Ext.getBody();this.el.setHeight=Ext.emptyFn;this.el.setWidth=Ext.emptyFn;this.el.setSize=Ext.emptyFn;this.el.dom.scroll="no";this.allowDomMove=false;this.autoWidth=true;this.autoHeight=true;Ext.EventManager.onWindowResize(this.fireResize,this);this.renderTo=this.el},fireResize:function(A,B){this.fireEvent("resize",this,A,B,A,B)}});Ext.reg("viewport",Ext.Viewport);Ext.Panel=Ext.extend(Ext.Container,{baseCls:"x-panel",collapsedCls:"x-panel-collapsed",maskDisabled:true,animCollapse:Ext.enableFx,headerAsText:true,buttonAlign:"right",collapsed:false,collapseFirst:true,minButtonWidth:75,elements:"body",toolTarget:"header",collapseEl:"bwrap",slideAnchor:"t",disabledClass:"",deferHeight:true,expandDefaults:{duration:0.25},collapseDefaults:{duration:0.25},initComponent:function(){Ext.Panel.superclass.initComponent.call(this);this.addEvents("bodyresize","titlechange","collapse","expand","beforecollapse","beforeexpand","beforeclose","close","activate","deactivate");if(this.tbar){this.elements+=",tbar";if(typeof this.tbar=="object"){this.topToolbar=this.tbar}delete this.tbar}if(this.bbar){this.elements+=",bbar";if(typeof this.bbar=="object"){this.bottomToolbar=this.bbar}delete this.bbar}if(this.header===true){this.elements+=",header";delete this.header}else{if(this.title&&this.header!==false){this.elements+=",header"}}if(this.footer===true){this.elements+=",footer";delete this.footer}if(this.buttons){var C=this.buttons;this.buttons=[];for(var B=0,A=C.length;B"+this.header.dom.innerHTML+"";if(this.iconCls){this.setIconClass(this.iconCls)}}}if(this.floating){this.makeFloating(this.floating)}if(this.collapsible){this.tools=this.tools?this.tools.slice(0):[];if(!this.hideCollapseTool){this.tools[this.collapseFirst?"unshift":"push"]({id:"toggle",handler:this.toggleCollapse,scope:this})}if(this.titleCollapse&&this.header){this.header.on("click",this.toggleCollapse,this);this.header.setStyle("cursor","pointer")}}if(this.tools){var J=this.tools;this.tools={};this.addTool.apply(this,J)}else{this.tools={}}if(this.buttons&&this.buttons.length>0){var D=this.footer.createChild({cls:"x-panel-btns-ct",cn:{cls:"x-panel-btns x-panel-btns-"+this.buttonAlign,html:"
"}},null,true);var L=D.getElementsByTagName("tr")[0];for(var F=0,I=this.buttons.length;F ");F.disableFormats=true;F.compile();Ext.Panel.prototype.toolTemplate=F}for(var E=0,C=arguments,B=C.length;E0){J.sort(C);var I=J[0].manager.zseed;for(var K=0;K=0;--H){if(!D[H].hidden){B(D[H]);return}}B(null)};return{zseed:9000,register:function(H){F[H.id]=H;D.push(H);H.on("hide",A)},unregister:function(H){delete F[H.id];H.un("hide",A);D.remove(H)},get:function(H){return typeof H=="object"?H:F[H]},bringToFront:function(H){H=this.get(H);if(H!=E){H._lastAccess=new Date().getTime();G();return true}return false},sendToBack:function(H){H=this.get(H);H._lastAccess=-(new Date().getTime());G();return H},hideAll:function(){for(var H in F){if(F[H]&&typeof F[H]!="function"&&F[H].isVisible()){F[H].hide()}}},getActive:function(){return E},getBy:function(J,I){var K=[];for(var H=D.length-1;H>=0;--H){var L=D[H];if(J.call(I||L,L)!==false){K.push(L)}}return K},each:function(I,H){for(var J in F){if(F[J]&&typeof F[J]!="function"){if(I.call(H||F[J],F[J])===false){return}}}}}};Ext.WindowMgr=new Ext.WindowGroup();Ext.dd.PanelProxy=function(A,B){this.panel=A;this.id=this.panel.id+"-ddproxy";Ext.apply(this,B)};Ext.dd.PanelProxy.prototype={insertProxy:true,setStatus:Ext.emptyFn,reset:Ext.emptyFn,update:Ext.emptyFn,stop:Ext.emptyFn,sync:Ext.emptyFn,getEl:function(){return this.ghost},getGhost:function(){return this.ghost},getProxy:function(){return this.proxy},hide:function(){if(this.ghost){if(this.proxy){this.proxy.remove();delete this.proxy}this.panel.el.dom.style.display="";this.ghost.remove();delete this.ghost}},show:function(){if(!this.ghost){this.ghost=this.panel.createGhost(undefined,undefined,Ext.getBody());this.ghost.setXY(this.panel.el.getXY());if(this.insertProxy){this.proxy=this.panel.el.insertSibling({cls:"x-panel-dd-spacer"});this.proxy.setSize(this.panel.getSize())}this.panel.el.dom.style.display="none"}},repair:function(B,C,A){this.hide();if(typeof C=="function"){C.call(A||this)}},moveProxy:function(A,B){if(this.proxy){A.insertBefore(this.proxy.dom,B)}}};Ext.Panel.DD=function(B,A){this.panel=B;this.dragData={panel:B};this.proxy=new Ext.dd.PanelProxy(B,A);Ext.Panel.DD.superclass.constructor.call(this,B.el,A);var C=B.header;if(C){this.setHandleElId(C.id)}(C?C:this.panel.body).setStyle("cursor","move");this.scroll=false};Ext.extend(Ext.Panel.DD,Ext.dd.DragSource,{showFrame:Ext.emptyFn,startDrag:Ext.emptyFn,b4StartDrag:function(A,B){this.proxy.show()},b4MouseDown:function(B){var A=B.getPageX();var C=B.getPageY();this.autoOffset(A,C)},onInitDrag:function(A,B){this.onStartDrag(A,B);return true},createFrame:Ext.emptyFn,getDragEl:function(A){return this.proxy.ghost.dom},endDrag:function(A){this.proxy.hide();this.panel.saveState()},autoOffset:function(A,B){A-=this.startPageX;B-=this.startPageY;this.setDelta(A,B)}});Ext.state.Provider=function(){this.addEvents("statechange");this.state={};Ext.state.Provider.superclass.constructor.call(this)};Ext.extend(Ext.state.Provider,Ext.util.Observable,{get:function(B,A){return typeof this.state[B]=="undefined"?A:this.state[B]},clear:function(A){delete this.state[A];this.fireEvent("statechange",this,A,null)},set:function(A,B){this.state[A]=B;this.fireEvent("statechange",this,A,B)},decodeValue:function(A){var J=/^(a|n|d|b|s|o)\:(.*)$/;var C=J.exec(unescape(A));if(!C||!C[1]){return}var F=C[1];var H=C[2];switch(F){case"n":return parseFloat(H);case"d":return new Date(Date.parse(H));case"b":return(H=="1");case"a":var G=[];var I=H.split("^");for(var B=0,D=I.length;B0){if(!B){this.selected.removeClass(this.selectedClass)}this.selected.clear();this.last=false;if(!A){this.fireEvent("selectionchange",this,this.selected.elements)}}},isSelected:function(A){return this.selected.contains(this.getNode(A))},deselect:function(A){if(this.isSelected(A)){A=this.getNode(A);this.selected.removeElement(A);if(this.last==A.viewIndex){this.last=false}Ext.fly(A).removeClass(this.selectedClass);this.fireEvent("selectionchange",this,this.selected.elements)}},select:function(D,F,B){if(Ext.isArray(D)){if(!F){this.clearSelections(true)}for(var C=0,A=D.length;C=A&&D[C];C--){B.push(D[C])}}return B},indexOf:function(A){A=this.getNode(A);if(typeof A.viewIndex=="number"){return A.viewIndex}return this.all.indexOf(A)},onBeforeLoad:function(){if(this.loadingText){this.clearSelections(false,true);this.el.update("
"+this.loadingText+"
");this.all.clear()}},onDestroy:function(){Ext.DataView.superclass.onDestroy.call(this);this.setStore(null)}});Ext.reg("dataview",Ext.DataView);Ext.ColorPalette=function(A){Ext.ColorPalette.superclass.constructor.call(this,A);this.addEvents("select");if(this.handler){this.on("select",this.handler,this.scope,true)}};Ext.extend(Ext.ColorPalette,Ext.Component,{itemCls:"x-color-palette",value:null,clickEvent:"click",ctype:"Ext.ColorPalette",allowReselect:false,colors:["000000","993300","333300","003300","003366","000080","333399","333333","800000","FF6600","808000","008000","008080","0000FF","666699","808080","FF0000","FF9900","99CC00","339966","33CCCC","3366FF","800080","969696","FF00FF","FFCC00","FFFF00","00FF00","00FFFF","00CCFF","993366","C0C0C0","FF99CC","FFCC99","FFFF99","CCFFCC","CCFFFF","99CCFF","CC99FF","FFFFFF"],onRender:function(B,A){var C=this.tpl||new Ext.XTemplate(" ");var D=document.createElement("div");D.className=this.itemCls;C.overwrite(D,this.colors);B.dom.insertBefore(D,A);this.el=Ext.get(D);this.el.on(this.clickEvent,this.handleClick,this,{delegate:"a"});if(this.clickEvent!="click"){this.el.on("click",Ext.emptyFn,this,{delegate:"a",preventDefault:true})}},afterRender:function(){Ext.ColorPalette.superclass.afterRender.call(this);if(this.value){var A=this.value;this.value=null;this.select(A)}},handleClick:function(B,A){B.preventDefault();if(!this.disabled){var C=A.className.match(/(?:^|\s)color-(.{6})(?:\s|$)/)[1];this.select(C.toUpperCase())}},select:function(A){A=A.replace("#","");if(A!=this.value||this.allowReselect){var B=this.el;if(this.value){B.child("a.color-"+this.value).removeClass("x-color-palette-sel")}B.child("a.color-"+A).addClass("x-color-palette-sel");this.value=A;this.fireEvent("select",this,A)}}});Ext.reg("colorpalette",Ext.ColorPalette);Ext.DatePicker=Ext.extend(Ext.Component,{todayText:"Today",okText:" OK ",cancelText:"Cancel",todayTip:"{0} (Spacebar)",minText:"This date is before the minimum date",maxText:"This date is after the maximum date",format:"m/d/y",disabledDaysText:"Disabled",disabledDatesText:"Disabled",constrainToViewport:true,monthNames:Date.monthNames,dayNames:Date.dayNames,nextText:"Next Month (Control+Right)",prevText:"Previous Month (Control+Left)",monthYearText:"Choose a month (Control+Up/Down to move years)",startDay:0,showToday:true,initComponent:function(){Ext.DatePicker.superclass.initComponent.call(this);this.value=this.value?this.value.clearTime():new Date().clearTime();this.addEvents("select");if(this.handler){this.on("select",this.handler,this.scope||this)}this.initDisabledDays()},initDisabledDays:function(){if(!this.disabledDatesRE&&this.disabledDates){var A=this.disabledDates;var C="(?:";for(var B=0;B","  ",""];var E=this.dayNames;for(var D=0;D<7;D++){var G=this.startDay+D;if(G>6){G=G-7}C.push("")}C[C.length]="";for(var D=0;D<42;D++){if(D%7==0&&D!=0){C[C.length]=""}C[C.length]=""}C.push("
",E[G].substr(0,1),"
",this.showToday?"":"","
");var B=document.createElement("div");B.className="x-date-picker";B.innerHTML=C.join("");A.dom.insertBefore(B,F);this.el=Ext.get(B);this.eventEl=Ext.get(B.firstChild);new Ext.util.ClickRepeater(this.el.child("td.x-date-left a"),{handler:this.showPrevMonth,scope:this,preventDefault:true,stopDefault:true});new Ext.util.ClickRepeater(this.el.child("td.x-date-right a"),{handler:this.showNextMonth,scope:this,preventDefault:true,stopDefault:true});this.eventEl.on("mousewheel",this.handleMouseWheel,this);this.monthPicker=this.el.down("div.x-date-mp");this.monthPicker.enableDisplayMode("block");var I=new Ext.KeyNav(this.eventEl,{"left":function(J){J.ctrlKey?this.showPrevMonth():this.update(this.activeDate.add("d",-1))},"right":function(J){J.ctrlKey?this.showNextMonth():this.update(this.activeDate.add("d",1))},"up":function(J){J.ctrlKey?this.showNextYear():this.update(this.activeDate.add("d",-7))},"down":function(J){J.ctrlKey?this.showPrevYear():this.update(this.activeDate.add("d",7))},"pageUp":function(J){this.showNextMonth()},"pageDown":function(J){this.showPrevMonth()},"enter":function(J){J.stopPropagation();return true},scope:this});this.eventEl.on("click",this.handleDateClick,this,{delegate:"a.x-date-date"});this.el.unselectable();this.cells=this.el.select("table.x-date-inner tbody td");this.textNodes=this.el.query("table.x-date-inner tbody span");this.mbtn=new Ext.Button({text:" ",tooltip:this.monthYearText,renderTo:this.el.child("td.x-date-middle",true)});this.mbtn.on("click",this.showMonthPicker,this);this.mbtn.el.child(this.mbtn.menuClassTarget).addClass("x-btn-with-menu");if(this.showToday){this.todayKeyListener=this.eventEl.addKeyListener(Ext.EventObject.SPACE,this.selectToday,this);var H=(new Date()).dateFormat(this.format);this.todayBtn=new Ext.Button({renderTo:this.el.child("td.x-date-bottom",true),text:String.format(this.todayText,H),tooltip:String.format(this.todayTip,H),handler:this.selectToday,scope:this})}if(Ext.isIE){this.el.repaint()}this.update(this.value)},createMonthPicker:function(){if(!this.monthPicker.dom.firstChild){var A=[""];for(var B=0;B<6;B++){A.push("","",B==0?"":"")}A.push("","
",this.monthNames[B].substr(0,3),"",this.monthNames[B+6].substr(0,3),"
");this.monthPicker.update(A.join(""));this.monthPicker.on("click",this.onMonthClick,this);this.monthPicker.on("dblclick",this.onMonthDblClick,this);this.mpMonths=this.monthPicker.select("td.x-date-mp-month");this.mpYears=this.monthPicker.select("td.x-date-mp-year");this.mpMonths.each(function(C,D,E){E+=1;if((E%2)==0){C.dom.xmonth=5+Math.round(E*0.5)}else{C.dom.xmonth=Math.round((E-1)*0.5)}})}},showMonthPicker:function(){this.createMonthPicker();var A=this.el.getSize();this.monthPicker.setSize(A);this.monthPicker.child("table").setSize(A);this.mpSelMonth=(this.activeDate||this.value).getMonth();this.updateMPMonth(this.mpSelMonth);this.mpSelYear=(this.activeDate||this.value).getFullYear();this.updateMPYear(this.mpSelYear);this.monthPicker.slideIn("t",{duration:0.2})},updateMPYear:function(E){this.mpyear=E;var C=this.mpYears.elements;for(var B=1;B<=10;B++){var D=C[B-1],A;if((B%2)==0){A=E+Math.round(B*0.5);D.firstChild.innerHTML=A;D.xyear=A}else{A=E-(5-Math.round(B*0.5));D.firstChild.innerHTML=A;D.xyear=A}this.mpYears.item(B-1)[A==this.mpSelYear?"addClass":"removeClass"]("x-date-mp-sel")}},updateMPMonth:function(A){this.mpMonths.each(function(B,C,D){B[B.dom.xmonth==A?"addClass":"removeClass"]("x-date-mp-sel")})},selectMPMonth:function(A){},onMonthClick:function(D,B){D.stopEvent();var C=new Ext.Element(B),A;if(C.is("button.x-date-mp-cancel")){this.hideMonthPicker()}else{if(C.is("button.x-date-mp-ok")){var E=new Date(this.mpSelYear,this.mpSelMonth,(this.activeDate||this.value).getDate());if(E.getMonth()!=this.mpSelMonth){E=new Date(this.mpSelYear,this.mpSelMonth,1).getLastDateOfMonth()}this.update(E);this.hideMonthPicker()}else{if(A=C.up("td.x-date-mp-month",2)){this.mpMonths.removeClass("x-date-mp-sel");A.addClass("x-date-mp-sel");this.mpSelMonth=A.dom.xmonth}else{if(A=C.up("td.x-date-mp-year",2)){this.mpYears.removeClass("x-date-mp-sel");A.addClass("x-date-mp-sel");this.mpSelYear=A.dom.xyear}else{if(C.is("a.x-date-mp-prev")){this.updateMPYear(this.mpyear-10)}else{if(C.is("a.x-date-mp-next")){this.updateMPYear(this.mpyear+10)}}}}}}},onMonthDblClick:function(D,B){D.stopEvent();var C=new Ext.Element(B),A;if(A=C.up("td.x-date-mp-month",2)){this.update(new Date(this.mpSelYear,A.dom.xmonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}else{if(A=C.up("td.x-date-mp-year",2)){this.update(new Date(A.dom.xyear,this.mpSelMonth,(this.activeDate||this.value).getDate()));this.hideMonthPicker()}}},hideMonthPicker:function(A){if(this.monthPicker){if(A===true){this.monthPicker.hide()}else{this.monthPicker.slideOut("t",{duration:0.2})}}},showPrevMonth:function(A){this.update(this.activeDate.add("mo",-1))},showNextMonth:function(A){this.update(this.activeDate.add("mo",1))},showPrevYear:function(){this.update(this.activeDate.add("y",-1))},showNextYear:function(){this.update(this.activeDate.add("y",1))},handleMouseWheel:function(A){var B=A.getWheelDelta();if(B>0){this.showPrevMonth();A.stopEvent()}else{if(B<0){this.showNextMonth();A.stopEvent()}}},handleDateClick:function(B,A){B.stopEvent();if(A.dateValue&&!Ext.fly(A.parentNode).hasClass("x-date-disabled")){this.setValue(new Date(A.dateValue));this.fireEvent("select",this,this.value)}},selectToday:function(){if(this.todayBtn&&!this.todayBtn.disabled){this.setValue(new Date().clearTime());this.fireEvent("select",this,this.value)}},update:function(a,U){var A=this.activeDate;this.activeDate=a;if(!U&&A&&this.el){var K=a.getTime();if(A.getMonth()==a.getMonth()&&A.getFullYear()==a.getFullYear()){this.cells.removeClass("x-date-selected");this.cells.each(function(d){if(d.dom.firstChild.dateValue==K){d.addClass("x-date-selected");setTimeout(function(){try{d.dom.firstChild.focus()}catch(f){}},50);return false}});return}}var G=a.getDaysInMonth();var L=a.getFirstDateOfMonth();var D=L.getDay()-this.startDay;if(D<=this.startDay){D+=7}var V=a.add("mo",-1);var E=V.getDaysInMonth()-D;var C=this.cells.elements;var M=this.textNodes;G+=D;var R=86400000;var X=(new Date(V.getFullYear(),V.getMonth(),E)).clearTime();var W=new Date().clearTime().getTime();var P=a.clearTime().getTime();var O=this.minDate?this.minDate.clearTime():Number.NEGATIVE_INFINITY;var S=this.maxDate?this.maxDate.clearTime():Number.POSITIVE_INFINITY;var Z=this.disabledDatesRE;var N=this.disabledDatesText;var c=this.disabledDays?this.disabledDays.join(""):false;var Y=this.disabledDaysText;var T=this.format;if(this.showToday){var I=new Date().clearTime();var B=(IS||(Z&&T&&Z.test(I.dateFormat(T)))||(c&&c.indexOf(I.getDay())!=-1));this.todayBtn.setDisabled(B);this.todayKeyListener[B?"disable":"enable"]()}var H=function(g,d){d.title="";var e=X.getTime();d.firstChild.dateValue=e;if(e==W){d.className+=" x-date-today";d.title=g.todayText}if(e==P){d.className+=" x-date-selected";setTimeout(function(){try{d.firstChild.focus()}catch(h){}},50)}if(eS){d.className=" x-date-disabled";d.title=g.maxText;return}if(c){if(c.indexOf(X.getDay())!=-1){d.title=Y;d.className=" x-date-disabled"}}if(Z&&T){var f=X.dateFormat(T);if(Z.test(f)){d.title=N.replace("%0",f);d.className=" x-date-disabled"}}};var Q=0;for(;Q","","{text}","");D.disableFormats=true;D.compile();Ext.TabPanel.prototype.itemTpl=D}this.items.each(this.initTab,this)},afterRender:function(){Ext.TabPanel.superclass.afterRender.call(this);if(this.autoTabs){this.readTabs(false)}},initEvents:function(){Ext.TabPanel.superclass.initEvents.call(this);this.on("add",this.onAdd,this);this.on("remove",this.onRemove,this);this.strip.on("mousedown",this.onStripMouseDown,this);this.strip.on("contextmenu",this.onStripContextMenu,this);if(this.enableTabScroll){this.strip.on("mousewheel",this.onWheel,this)}},findTargets:function(C){var B=null;var A=C.getTarget("li",this.strip);if(A){B=this.getComponent(A.id.split(this.idDelimiter)[1]);if(B.disabled){return{close:null,item:null,el:null}}}return{close:C.getTarget(".x-tab-strip-close",this.strip),item:B,el:A}},onStripMouseDown:function(B){if(B.button!=0){return}B.preventDefault();var A=this.findTargets(B);if(A.close){this.remove(A.item);return}if(A.item&&A.item!=this.activeTab){this.setActiveTab(A.item)}},onStripContextMenu:function(B){B.preventDefault();var A=this.findTargets(B);if(A.item){this.fireEvent("contextmenu",this,A.item,B)}},readTabs:function(D){if(D===true){this.items.each(function(G){this.remove(G)},this)}var C=this.el.query(this.autoTabSelector);for(var B=0,A=C.length;B20?C:20);if(!this.scrolling){if(!this.scrollLeft){this.createScrollers()}else{this.scrollLeft.show();this.scrollRight.show()}}this.scrolling=true;if(H>(A-C)){E.scrollLeft=A-C}else{this.scrollToTab(this.activeTab,false)}this.updateScrollButtons()}},createScrollers:function(){var C=this.stripWrap.dom.offsetHeight;var A=this.header.insertFirst({cls:"x-tab-scroller-left"});A.setHeight(C);A.addClassOnOver("x-tab-scroller-left-over");this.leftRepeater=new Ext.util.ClickRepeater(A,{interval:this.scrollRepeatInterval,handler:this.onScrollLeft,scope:this});this.scrollLeft=A;var B=this.header.insertFirst({cls:"x-tab-scroller-right"});B.setHeight(C);B.addClassOnOver("x-tab-scroller-right-over");this.rightRepeater=new Ext.util.ClickRepeater(B,{interval:this.scrollRepeatInterval,handler:this.onScrollRight,scope:this});this.scrollRight=B},getScrollWidth:function(){return this.edge.getOffsetsTo(this.stripWrap)[0]+this.getScrollPos()},getScrollPos:function(){return parseInt(this.stripWrap.dom.scrollLeft,10)||0},getScrollArea:function(){return parseInt(this.stripWrap.dom.clientWidth,10)||0},getScrollAnim:function(){return{duration:this.scrollDuration,callback:this.updateScrollButtons,scope:this}},getScrollIncrement:function(){return this.scrollIncrement||(this.resizeTabs?this.lastTabWidth+2:100)},scrollToTab:function(E,A){if(!E){return}var C=this.getTabEl(E);var G=this.getScrollPos(),D=this.getScrollArea();var F=Ext.fly(C).getOffsetsTo(this.stripWrap)[0]+G;var B=F+C.offsetWidth;if(F(G+D)){this.scrollTo(B-D,A)}}},scrollTo:function(B,A){this.stripWrap.scrollTo("left",B,A?this.getScrollAnim():false);if(!A){this.updateScrollButtons()}},onWheel:function(D){var E=D.getWheelDelta()*this.wheelIncrement*-1;D.stopEvent();var F=this.getScrollPos();var C=F+E;var A=this.getScrollWidth()-this.getScrollArea();var B=Math.max(0,Math.min(A,C));if(B!=F){this.scrollTo(B,false)}},onScrollRight:function(){var A=this.getScrollWidth()-this.getScrollArea();var C=this.getScrollPos();var B=Math.min(A,C+this.getScrollIncrement());if(B!=C){this.scrollTo(B,this.animScroll)}},onScrollLeft:function(){var B=this.getScrollPos();var A=Math.max(0,B-this.getScrollIncrement());if(A!=B){this.scrollTo(A,this.animScroll)}},updateScrollButtons:function(){var A=this.getScrollPos();this.scrollLeft[A==0?"addClass":"removeClass"]("x-tab-scroller-left-disabled");this.scrollRight[A>=(this.getScrollWidth()-this.getScrollArea())?"addClass":"removeClass"]("x-tab-scroller-right-disabled")}});Ext.reg("tabpanel",Ext.TabPanel);Ext.TabPanel.prototype.activate=Ext.TabPanel.prototype.setActiveTab;Ext.TabPanel.AccessStack=function(){var A=[];return{add:function(B){A.push(B);if(A.length>10){A.shift()}},remove:function(E){var D=[];for(var C=0,B=A.length;C","  ","")}this.template=Ext.Button.buttonTemplate}var B,E=[this.text||" ",this.type];if(A){B=this.template.insertBefore(A,E,true)}else{B=this.template.append(C,E,true)}var D=B.child(this.buttonSelector);D.on("focus",this.onFocus,this);D.on("blur",this.onBlur,this);this.initButtonEl(B,D);if(this.menu){this.el.child(this.menuClassTarget).addClass("x-btn-with-menu")}Ext.ButtonToggleMgr.register(this)},initButtonEl:function(B,C){this.el=B;B.addClass("x-btn");if(this.icon){C.setStyle("background-image","url("+this.icon+")")}if(this.iconCls){C.addClass(this.iconCls);if(!this.cls){B.addClass(this.text?"x-btn-text-icon":"x-btn-icon")}}if(this.tabIndex!==undefined){C.dom.tabIndex=this.tabIndex}if(this.tooltip){if(typeof this.tooltip=="object"){Ext.QuickTips.register(Ext.apply({target:C.id},this.tooltip))}else{C.dom[this.tooltipType]=this.tooltip}}if(this.pressed){this.el.addClass("x-btn-pressed")}if(this.handleMouseEvents){B.on("mouseover",this.onMouseOver,this);B.on("mousedown",this.onMouseDown,this)}if(this.menu){this.menu.on("show",this.onMenuShow,this);this.menu.on("hide",this.onMenuHide,this)}if(this.id){this.el.dom.id=this.el.id=this.id}if(this.repeat){var A=new Ext.util.ClickRepeater(B,typeof this.repeat=="object"?this.repeat:{});A.on("click",this.onClick,this)}B.on(this.clickEvent,this.onClick,this)},afterRender:function(){Ext.Button.superclass.afterRender.call(this);if(Ext.isIE6){this.autoWidth.defer(1,this)}else{this.autoWidth()}},setIconClass:function(A){if(this.el){this.el.child(this.buttonSelector).replaceClass(this.iconCls,A)}this.iconCls=A},beforeDestroy:function(){if(this.rendered){var A=this.el.child(this.buttonSelector);if(A){A.removeAllListeners()}}if(this.menu){Ext.destroy(this.menu)}},onDestroy:function(){if(this.rendered){Ext.ButtonToggleMgr.unregister(this)}},autoWidth:function(){if(this.el){this.el.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var A=this.el.child(this.buttonSelector);if(A&&A.getWidth()>20){A.clip();A.setWidth(Ext.util.TextMetrics.measure(A,this.text).width+A.getFrameWidth("lr"))}}if(this.minWidth){if(this.el.getWidth()","","","
 
","","","
 
");var C,F=[this.text||" ",this.type];if(A){C=B.insertBefore(A,F,true)}else{C=B.append(D,F,true)}var E=C.child(this.buttonSelector);this.initButtonEl(C,E);this.arrowBtnTable=C.child("table:last");if(this.arrowTooltip){C.child(this.arrowSelector).dom[this.tooltipType]=this.arrowTooltip}},autoWidth:function(){if(this.el){var C=this.el.child("table:first");var B=this.el.child("table:last");this.el.setWidth("auto");C.setWidth("auto");if(Ext.isIE7&&Ext.isStrict){var A=this.el.child(this.buttonSelector);if(A&&A.getWidth()>20){A.clip();A.setWidth(Ext.util.TextMetrics.measure(A,this.text).width+A.getFrameWidth("lr"))}}if(this.minWidth){if((C.getWidth()+B.getWidth())"},onRender:function(C,B){this.el=C.createChild(Ext.apply({id:this.id},this.autoCreate),B);this.tr=this.el.child("tr",true)},afterRender:function(){A.superclass.afterRender.call(this);if(this.buttons){this.add.apply(this,this.buttons);delete this.buttons}},add:function(){var C=arguments,B=C.length;for(var D=0;D"){this.addFill()}else{this.addText(E)}}}}else{if(E.tagName){this.addElement(E)}else{if(typeof E=="object"){if(E.xtype){this.addField(Ext.ComponentMgr.create(E,"button"))}else{this.addButton(E)}}}}}}}},addSeparator:function(){return this.addItem(new A.Separator())},addSpacer:function(){return this.addItem(new A.Spacer())},addFill:function(){return this.addItem(new A.Fill())},addElement:function(B){return this.addItem(new A.Item(B))},addItem:function(B){var C=this.nextBlock();this.initMenuTracking(B);B.render(C);this.items.add(B);return B},addButton:function(D){if(Ext.isArray(D)){var F=[];for(var E=0,C=D.length;E=1&C<=E.pages){this.field.dom.value=C}}}}}},beforeLoad:function(){if(this.rendered&&this.loading){this.loading.disable()}},doLoad:function(C){var B={},A=this.paramNames;B[A.start]=C;B[A.limit]=this.pageSize;if(this.fireEvent("beforechange",this,B)!==false){this.store.load({params:B})}},changePage:function(A){this.doLoad(((A-1)*this.pageSize).constrain(0,this.store.getTotalCount()))},onClick:function(E){var B=this.store;switch(E){case"first":this.doLoad(0);break;case"prev":this.doLoad(Math.max(0,this.cursor-this.pageSize));break;case"next":this.doLoad(this.cursor+this.pageSize);break;case"last":var D=B.getTotalCount();var A=D%this.pageSize;var C=A?(D-A):D-this.pageSize;this.doLoad(C);break;case"refresh":this.doLoad(this.cursor);break}},unbind:function(A){A=Ext.StoreMgr.lookup(A);A.un("beforeload",this.beforeLoad,this);A.un("load",this.onLoad,this);A.un("loadexception",this.onLoadError,this);this.store=undefined},bind:function(A){A=Ext.StoreMgr.lookup(A);A.on("beforeload",this.beforeLoad,this);A.on("load",this.onLoad,this);A.on("loadexception",this.onLoadError,this);this.store=A}});Ext.reg("paging",Ext.PagingToolbar);Ext.Resizable=function(D,E){this.el=Ext.get(D);if(E&&E.wrap){E.resizeChild=this.el;this.el=this.el.wrap(typeof E.wrap=="object"?E.wrap:{cls:"xresizable-wrap"});this.el.id=this.el.dom.id=E.resizeChild.id+"-rzwrap";this.el.setStyle("overflow","hidden");this.el.setPositioning(E.resizeChild.getPositioning());E.resizeChild.clearPositioning();if(!E.width||!E.height){var F=E.resizeChild.getSize();this.el.setSize(F.width,F.height)}if(E.pinned&&!E.adjustments){E.adjustments="auto"}}this.proxy=this.el.createProxy({tag:"div",cls:"x-resizable-proxy",id:this.el.id+"-rzproxy"},Ext.getBody());this.proxy.unselectable();this.proxy.enableDisplayMode("block");Ext.apply(this,E);if(this.pinned){this.disableTrackOver=true;this.el.addClass("x-resizable-pinned")}var I=this.el.getStyle("position");if(I!="absolute"&&I!="fixed"){this.el.setStyle("position","relative")}if(!this.handles){this.handles="s,e,se";if(this.multiDirectional){this.handles+=",n,w"}}if(this.handles=="all"){this.handles="n s e w ne nw se sw"}var M=this.handles.split(/\s*?[,;]\s*?| /);var C=Ext.Resizable.positions;for(var H=0,J=M.length;H0){if(A>(E/2)){D=C+(E-A)}else{D=C-A}}return Math.max(B,D)},resizeElement:function(){var A=this.proxy.getBox();if(this.updateBox){this.el.setBox(A,false,this.animate,this.duration,null,this.easing)}else{this.el.setSize(A.width,A.height,this.animate,this.duration,null,this.easing)}this.updateChildSize();if(!this.dynamic){this.proxy.hide()}return A},constrain:function(B,C,A,D){if(B-CD){C=D-B}}return C},onMouseMove:function(S){if(this.enabled){try{if(this.resizeRegion&&!this.resizeRegion.contains(S.getPoint())){return}var Q=this.curSize||this.startBox;var I=this.startBox.x,H=this.startBox.y;var C=I,B=H;var J=Q.width,R=Q.height;var D=J,L=R;var K=this.minWidth,T=this.minHeight;var P=this.maxWidth,W=this.maxHeight;var F=this.widthIncrement;var A=this.heightIncrement;var U=S.getXY();var O=-(this.startPoint[0]-Math.max(this.minX,U[0]));var M=-(this.startPoint[1]-Math.max(this.minY,U[1]));var G=this.activeHandle.position;switch(G){case"east":J+=O;J=Math.min(Math.max(K,J),P);break;case"south":R+=M;R=Math.min(Math.max(T,R),W);break;case"southeast":J+=O;R+=M;J=Math.min(Math.max(K,J),P);R=Math.min(Math.max(T,R),W);break;case"north":M=this.constrain(R,M,T,W);H+=M;R-=M;break;case"west":O=this.constrain(J,O,K,P);I+=O;J-=O;break;case"northeast":J+=O;J=Math.min(Math.max(K,J),P);M=this.constrain(R,M,T,W);H+=M;R-=M;break;case"northwest":O=this.constrain(J,O,K,P);M=this.constrain(R,M,T,W);H+=M;R-=M;I+=O;J-=O;break;case"southwest":O=this.constrain(J,O,K,P);R+=M;R=Math.min(Math.max(T,R),W);I+=O;J-=O;break}var N=this.snap(J,F,K);var V=this.snap(R,A,T);if(N!=J||V!=R){switch(G){case"northeast":H-=V-R;break;case"north":H-=V-R;break;case"southwest":I-=N-J;break;case"west":I-=N-J;break;case"northwest":I-=N-J;H-=V-R;break}J=N;R=V}if(this.preserveRatio){switch(G){case"southeast":case"east":R=L*(J/D);R=Math.min(Math.max(T,R),W);J=D*(R/L);break;case"south":J=D*(R/L);J=Math.min(Math.max(K,J),P);R=L*(J/D);break;case"northeast":J=D*(R/L);J=Math.min(Math.max(K,J),P);R=L*(J/D);break;case"north":var X=J;J=D*(R/L);J=Math.min(Math.max(K,J),P);R=L*(J/D);I+=(X-J)/2;break;case"southwest":R=L*(J/D);R=Math.min(Math.max(T,R),W);var X=J;J=D*(R/L);I+=X-J;break;case"west":var E=R;R=L*(J/D);R=Math.min(Math.max(T,R),W);H+=(E-R)/2;var X=J;J=D*(R/L);I+=X-J;break;case"northwest":var X=J;var E=R;R=L*(J/D);R=Math.min(Math.max(T,R),W);J=D*(R/L);H+=E-R;I+=X-J;break}}this.proxy.setBounds(I,H,J,R);if(this.dynamic){this.resizeElement()}}catch(S){}}},handleOver:function(){if(this.enabled){this.el.addClass("x-resizable-over")}},handleOut:function(){if(!this.resizing){this.el.removeClass("x-resizable-over")}},getEl:function(){return this.el},getResizeChild:function(){return this.resizeChild},destroy:function(C){this.proxy.remove();if(this.overlay){this.overlay.removeAllListeners();this.overlay.remove()}var D=Ext.Resizable.positions;for(var A in D){if(typeof D[A]!="function"&&this[D[A]]){var B=this[D[A]];B.el.removeAllListeners();B.el.remove()}}if(C){this.el.update("");this.el.remove()}},syncHandleHeight:function(){var A=this.el.getHeight(true);if(this.west){this.west.el.setHeight(A)}if(this.east){this.east.el.setHeight(A)}}});Ext.Resizable.positions={n:"north",s:"south",e:"east",w:"west",se:"southeast",sw:"southwest",nw:"northwest",ne:"northeast"};Ext.Resizable.Handle=function(C,E,B,D){if(!this.tpl){var A=Ext.DomHelper.createTemplate({tag:"div",cls:"x-resizable-handle x-resizable-handle-{0}"});A.compile();Ext.Resizable.Handle.prototype.tpl=A}this.position=E;this.rz=C;this.el=this.tpl.append(C.el.dom,[this.position],true);this.el.unselectable();if(D){this.el.setOpacity(0)}this.el.on("mousedown",this.onMouseDown,this);if(!B){this.el.on("mouseover",this.onMouseOver,this);this.el.on("mouseout",this.onMouseOut,this)}};Ext.Resizable.Handle.prototype={afterResize:function(A){},onMouseDown:function(A){this.rz.onMouseDown(this,A)},onMouseOver:function(A){this.rz.handleOver(this,A)},onMouseOut:function(A){this.rz.handleOut(this,A)}};Ext.Editor=function(B,A){this.field=B;Ext.Editor.superclass.constructor.call(this,A)};Ext.extend(Ext.Editor,Ext.Component,{value:"",alignment:"c-c?",shadow:"frame",constrain:false,swallowKeys:true,completeOnEnter:false,cancelOnEsc:false,updateEl:false,initComponent:function(){Ext.Editor.superclass.initComponent.call(this);this.addEvents("beforestartedit","startedit","beforecomplete","complete","canceledit","specialkey")},onRender:function(B,A){this.el=new Ext.Layer({shadow:this.shadow,cls:"x-editor",parentEl:B,shim:this.shim,shadowOffset:4,id:this.id,constrain:this.constrain});this.el.setStyle("overflow",Ext.isGecko?"auto":"hidden");if(this.field.msgTarget!="title"){this.field.msgTarget="qtip"}this.field.inEditor=true;this.field.render(this.el);if(Ext.isGecko){this.field.el.dom.setAttribute("autocomplete","off")}this.field.on("specialkey",this.onSpecialKey,this);if(this.swallowKeys){this.field.el.swallowEvent(["keydown","keypress"])}this.field.show();this.field.on("blur",this.onBlur,this);if(this.field.grow){this.field.on("autosize",this.el.sync,this.el,{delay:1})}},onSpecialKey:function(C,B){var A=B.getKey();if(this.completeOnEnter&&A==B.ENTER){B.stopEvent();this.completeEdit()}else{if(this.cancelOnEsc&&A==B.ESC){this.cancelEdit()}else{this.fireEvent("specialkey",C,B)}}if(this.field.triggerBlur&&(A==B.ENTER||A==B.ESC||A==B.TAB)){this.field.triggerBlur()}},startEdit:function(B,C){if(this.editing){this.completeEdit()}this.boundEl=Ext.get(B);var A=C!==undefined?C:this.boundEl.dom.innerHTML;if(!this.rendered){this.render(this.parentEl||document.body)}if(this.fireEvent("beforestartedit",this,this.boundEl,A)===false){return}this.startValue=A;this.field.setValue(A);this.doAutoSize();this.el.alignTo(this.boundEl,this.alignment);this.editing=true;this.show()},doAutoSize:function(){if(this.autoSize){var A=this.boundEl.getSize();switch(this.autoSize){case"width":this.setSize(A.width,"");break;case"height":this.setSize("",A.height);break;default:this.setSize(A.width,A.height)}}},setSize:function(A,B){delete this.field.lastSize;this.field.setSize(A,B);if(this.el){if(Ext.isGecko2||Ext.isOpera){this.el.setSize(A,B)}this.el.sync()}},realign:function(){this.el.alignTo(this.boundEl,this.alignment)},completeEdit:function(A){if(!this.editing){return}var B=this.getValue();if(this.revertInvalid!==false&&!this.field.isValid()){B=this.startValue;this.cancelEdit(true)}if(String(B)===String(this.startValue)&&this.ignoreNoChange){this.editing=false;this.hide();return}if(this.fireEvent("beforecomplete",this,B,this.startValue)!==false){this.editing=false;if(this.updateEl&&this.boundEl){this.boundEl.update(B)}if(A!==true){this.hide()}this.fireEvent("complete",this,B,this.startValue)}},onShow:function(){this.el.show();if(this.hideEl!==false){this.boundEl.hide()}this.field.show();if(Ext.isIE&&!this.fixIEFocus){this.fixIEFocus=true;this.deferredFocus.defer(50,this)}else{this.field.focus()}this.fireEvent("startedit",this.boundEl,this.startValue)},deferredFocus:function(){if(this.editing){this.field.focus()}},cancelEdit:function(A){if(this.editing){var B=this.getValue();this.setValue(this.startValue);if(A!==true){this.hide()}this.fireEvent("canceledit",this,B,this.startValue)}},onBlur:function(){if(this.allowBlur!==true&&this.editing){this.completeEdit()}},onHide:function(){if(this.editing){this.completeEdit();return}this.field.blur();if(this.field.collapse){this.field.collapse()}this.el.hide();if(this.hideEl!==false){this.boundEl.show()}},setValue:function(A){this.field.setValue(A)},getValue:function(){return this.field.getValue()},beforeDestroy:function(){this.field.destroy();this.field=null}});Ext.reg("editor",Ext.Editor);Ext.MessageBox=function(){var R,B,N,Q;var G,J,P,A,K,M,H,F;var O,S,L,C="";var D=function(U){if(R.isVisible()){R.hide();Ext.callback(B.fn,B.scope||window,[U,S.dom.value],1)}};var T=function(){if(B&&B.cls){R.el.removeClass(B.cls)}K.reset()};var E=function(W,U,V){if(B&&B.closable!==false){R.hide()}if(V){V.stopEvent()}};var I=function(U){var W=0;if(!U){O["ok"].hide();O["cancel"].hide();O["yes"].hide();O["no"].hide();return W}R.footer.dom.style.display="";for(var V in O){if(typeof O[V]!="function"){if(U[V]){O[V].show();O[V].setText(typeof U[V]=="string"?U[V]:Ext.MessageBox.buttonText[V]);W+=O[V].el.getWidth()+15}else{O[V].hide()}}}return W};return{getDialog:function(U){if(!R){R=new Ext.Window({autoCreate:true,title:U,resizable:false,constrain:true,constrainHeader:true,minimizable:false,maximizable:false,stateful:false,modal:true,shim:true,buttonAlign:"center",width:400,height:100,minHeight:80,plain:true,footer:true,closable:true,close:function(){if(B&&B.buttons&&B.buttons.no&&!B.buttons.cancel){D("no")}else{D("cancel")}}});O={};var V=this.buttonText;O["ok"]=R.addButton(V["ok"],D.createCallback("ok"));O["yes"]=R.addButton(V["yes"],D.createCallback("yes"));O["no"]=R.addButton(V["no"],D.createCallback("no"));O["cancel"]=R.addButton(V["cancel"],D.createCallback("cancel"));O["ok"].hideMode=O["yes"].hideMode=O["no"].hideMode=O["cancel"].hideMode="offsets";R.render(document.body);R.getEl().addClass("x-window-dlg");N=R.mask;G=R.body.createChild({html:"

"});H=Ext.get(G.dom.firstChild);var W=G.dom.childNodes[1];J=Ext.get(W.firstChild);P=Ext.get(W.childNodes[2].firstChild);P.enableDisplayMode();P.addKeyListener([10,13],function(){if(R.isVisible()&&B&&B.buttons){if(B.buttons.ok){D("ok")}else{if(B.buttons.yes){D("yes")}}}});A=Ext.get(W.childNodes[2].childNodes[1]);A.enableDisplayMode();K=new Ext.ProgressBar({renderTo:G});G.createChild({cls:"x-clear"})}return R},updateText:function(X){if(!R.isVisible()&&!B.width){R.setSize(this.maxWidth,100)}J.update(X||" ");var V=C!=""?(H.getWidth()+H.getMargins("lr")):0;var Z=J.getWidth()+J.getMargins("lr");var W=R.getFrameWidth("lr");var Y=R.body.getFrameWidth("lr");if(Ext.isIE&&V>0){V+=3}var U=Math.max(Math.min(B.width||V+Z+W+Y,this.maxWidth),Math.max(B.minWidth||this.minWidth,L||0));if(B.prompt===true){S.setWidth(U-V-W-Y)}if(B.progress===true||B.wait===true){K.setSize(U-V-W-Y)}R.setSize(U,"auto").center();return this},updateProgress:function(V,U,W){K.updateProgress(V,U);if(W){this.updateText(W)}return this},isVisible:function(){return R&&R.isVisible()},hide:function(){if(this.isVisible()){R.hide();T()}return this},show:function(X){if(this.isVisible()){this.hide()}B=X;var Y=this.getDialog(B.title||" ");Y.setTitle(B.title||" ");var U=(B.closable!==false&&B.progress!==true&&B.wait!==true);Y.tools.close.setDisplayed(U);S=P;B.prompt=B.prompt||(B.multiline?true:false);if(B.prompt){if(B.multiline){P.hide();A.show();A.setHeight(typeof B.multiline=="number"?B.multiline:this.defaultTextHeight);S=A}else{P.show();A.hide()}}else{P.hide();A.hide()}S.dom.value=B.value||"";if(B.prompt){Y.focusEl=S}else{var W=B.buttons;var V=null;if(W&&W.ok){V=O["ok"]}else{if(W&&W.yes){V=O["yes"]}}if(V){Y.focusEl=V}}if(B.iconCls){Y.setIconClass(B.iconCls)}this.setIcon(B.icon);L=I(B.buttons);K.setVisible(B.progress===true||B.wait===true);this.updateProgress(0,B.progressText);this.updateText(B.msg);if(B.cls){Y.el.addClass(B.cls)}Y.proxyDrag=B.proxyDrag===true;Y.modal=B.modal!==false;Y.mask=B.modal!==false?N:false;if(!Y.isVisible()){document.body.appendChild(R.el.dom);Y.setAnimateTarget(B.animEl);Y.show(B.animEl)}Y.on("show",function(){if(U===true){Y.keyMap.enable()}else{Y.keyMap.disable()}},this,{single:true});if(B.wait===true){K.wait(B.waitConfig)}return this},setIcon:function(U){if(U&&U!=""){H.removeClass("x-hidden");H.replaceClass(C,U);C=U}else{H.replaceClass(C,"x-hidden");C=""}return this},progress:function(W,V,U){this.show({title:W,msg:V,buttons:false,progress:true,closable:false,minWidth:this.minProgressWidth,progressText:U});return this},wait:function(W,V,U){this.show({title:V,msg:W,buttons:false,closable:false,wait:true,modal:true,minWidth:this.minProgressWidth,waitConfig:U});return this},alert:function(X,W,V,U){this.show({title:X,msg:W,buttons:this.OK,fn:V,scope:U});return this},confirm:function(X,W,V,U){this.show({title:X,msg:W,buttons:this.YESNO,fn:V,scope:U,icon:this.QUESTION});return this},prompt:function(Z,Y,W,V,U,X){this.show({title:Z,msg:Y,buttons:this.OKCANCEL,fn:W,minWidth:250,scope:V,prompt:true,multiline:U,value:X});return this},OK:{ok:true},CANCEL:{cancel:true},OKCANCEL:{ok:true,cancel:true},YESNO:{yes:true,no:true},YESNOCANCEL:{yes:true,no:true,cancel:true},INFO:"ext-mb-info",WARNING:"ext-mb-warning",QUESTION:"ext-mb-question",ERROR:"ext-mb-error",defaultTextHeight:75,maxWidth:600,minWidth:100,minProgressWidth:250,buttonText:{ok:"OK",cancel:"Cancel",yes:"Yes",no:"No"}}}();Ext.Msg=Ext.MessageBox;Ext.Tip=Ext.extend(Ext.Panel,{minWidth:40,maxWidth:300,shadow:"sides",defaultAlign:"tl-bl?",autoRender:true,quickShowInterval:250,frame:true,hidden:true,baseCls:"x-tip",floating:{shadow:true,shim:true,useDisplay:true,constrain:false},autoHeight:true,initComponent:function(){Ext.Tip.superclass.initComponent.call(this);if(this.closable&&!this.title){this.elements+=",header"}},afterRender:function(){Ext.Tip.superclass.afterRender.call(this);if(this.closable){this.addTool({id:"close",handler:this.hide,scope:this})}},showAt:function(A){Ext.Tip.superclass.show.call(this);if(this.measureWidth!==false&&(!this.initialConfig||typeof this.initialConfig.width!="number")){this.doAutoWidth()}if(this.constrainPosition){A=this.el.adjustForConstraints(A)}this.setPagePosition(A[0],A[1])},doAutoWidth:function(){var A=this.body.getTextWidth();if(this.title){A=Math.max(A,this.header.child("span").getTextWidth(this.title))}A+=this.getFrameWidth()+(this.closable?20:0)+this.body.getPadding("lr");this.setWidth(A.constrain(this.minWidth,this.maxWidth));if(Ext.isIE7&&!this.repainted){this.el.repaint();this.repainted=true}},showBy:function(A,B){if(!this.rendered){this.render(Ext.getBody())}this.showAt(this.el.getAlignToXY(A,B||this.defaultAlign))},initDraggable:function(){this.dd=new Ext.Tip.DD(this,typeof this.draggable=="boolean"?null:this.draggable);this.header.addClass("x-tip-draggable")}});Ext.Tip.DD=function(B,A){Ext.apply(this,A);this.tip=B;Ext.Tip.DD.superclass.constructor.call(this,B.el.id,"WindowDD-"+B.id);this.setHandleElId(B.header.id);this.scroll=false};Ext.extend(Ext.Tip.DD,Ext.dd.DD,{moveOnly:true,scroll:false,headerOffsets:[100,25],startDrag:function(){this.tip.el.disableShadow()},endDrag:function(A){this.tip.el.enableShadow(true)}});Ext.ToolTip=Ext.extend(Ext.Tip,{showDelay:500,hideDelay:200,dismissDelay:5000,mouseOffset:[15,18],trackMouse:false,constrainPosition:true,initComponent:function(){Ext.ToolTip.superclass.initComponent.call(this);this.lastActive=new Date();this.initTarget()},initTarget:function(){if(this.target){this.target=Ext.get(this.target);this.target.on("mouseover",this.onTargetOver,this);this.target.on("mouseout",this.onTargetOut,this);this.target.on("mousemove",this.onMouseMove,this)}},onMouseMove:function(A){this.targetXY=A.getXY();if(!this.hidden&&this.trackMouse){this.setPagePosition(this.getTargetXY())}},getTargetXY:function(){return[this.targetXY[0]+this.mouseOffset[0],this.targetXY[1]+this.mouseOffset[1]]},onTargetOver:function(A){if(this.disabled||A.within(this.target.dom,true)){return}this.clearTimer("hide");this.targetXY=A.getXY();this.delayShow()},delayShow:function(){if(this.hidden&&!this.showTimer){if(this.lastActive.getElapsed()=C){D=C-B-5}return{x:A,y:D}},onDestroy:function(){Ext.ToolTip.superclass.onDestroy.call(this);if(this.target){this.target.un("mouseover",this.onTargetOver,this);this.target.un("mouseout",this.onTargetOut,this);this.target.un("mousemove",this.onMouseMove,this)}}});Ext.QuickTip=Ext.extend(Ext.ToolTip,{interceptTitles:false,tagConfig:{namespace:"ext",attribute:"qtip",width:"qwidth",target:"target",title:"qtitle",hide:"hide",cls:"qclass",align:"qalign"},initComponent:function(){this.target=this.target||Ext.getDoc();this.targets=this.targets||{};Ext.QuickTip.superclass.initComponent.call(this)},register:function(D){var F=Ext.isArray(D)?D:arguments;for(var E=0,A=F.length;E0){var D=function(H,G){if(H&&G){var I=G.findChild(A,B);if(I){I.select();if(F){F(true,I)}}else{if(F){F(false,I)}}}else{if(F){F(false,I)}}};this.expandPath(C.join(this.pathSeparator),A,D)}else{this.root.select();if(F){F(true,this.root)}}},getTreeEl:function(){return this.body},onRender:function(B,A){Ext.tree.TreePanel.superclass.onRender.call(this,B,A);this.el.addClass("x-tree");this.innerCt=this.body.createChild({tag:"ul",cls:"x-tree-root-ct "+(this.useArrows?"x-tree-arrows":this.lines?"x-tree-lines":"x-tree-no-lines")})},initEvents:function(){Ext.tree.TreePanel.superclass.initEvents.call(this);if(this.containerScroll){Ext.dd.ScrollManager.register(this.body)}if((this.enableDD||this.enableDrop)&&!this.dropZone){this.dropZone=new Ext.tree.TreeDropZone(this,this.dropConfig||{ddGroup:this.ddGroup||"TreeDD",appendOnly:this.ddAppendOnly===true})}if((this.enableDD||this.enableDrag)&&!this.dragZone){this.dragZone=new Ext.tree.TreeDragZone(this,this.dragConfig||{ddGroup:this.ddGroup||"TreeDD",scroll:this.ddScroll})}this.getSelectionModel().init(this)},afterRender:function(){Ext.tree.TreePanel.superclass.afterRender.call(this);this.root.render();if(!this.rootVisible){this.root.renderChildren()}},onDestroy:function(){if(this.rendered){this.body.removeAllListeners();Ext.dd.ScrollManager.unregister(this.body);if(this.dropZone){this.dropZone.unreg()}if(this.dragZone){this.dragZone.unreg()}}this.root.destroy();this.nodeHash=null;Ext.tree.TreePanel.superclass.onDestroy.call(this)}});Ext.tree.TreePanel.nodeTypes={};Ext.reg("treepanel",Ext.tree.TreePanel);Ext.tree.TreeEventModel=function(A){this.tree=A;this.tree.on("render",this.initEvents,this)};Ext.tree.TreeEventModel.prototype={initEvents:function(){var A=this.tree.getTreeEl();A.on("click",this.delegateClick,this);if(this.tree.trackMouseOver!==false){A.on("mouseover",this.delegateOver,this);A.on("mouseout",this.delegateOut,this)}A.on("dblclick",this.delegateDblClick,this);A.on("contextmenu",this.delegateContextMenu,this)},getNode:function(B){var A;if(A=B.getTarget(".x-tree-node-el",10)){var C=Ext.fly(A,"_treeEvents").getAttributeNS("ext","tree-node-id");if(C){return this.tree.getNodeById(C)}}return null},getNodeTarget:function(B){var A=B.getTarget(".x-tree-node-icon",1);if(!A){A=B.getTarget(".x-tree-node-el",6)}return A},delegateOut:function(B,A){if(!this.beforeEvent(B)){return}if(B.getTarget(".x-tree-ec-icon",1)){var C=this.getNode(B);this.onIconOut(B,C);if(C==this.lastEcOver){delete this.lastEcOver}}if((A=this.getNodeTarget(B))&&!B.within(A,true)){this.onNodeOut(B,this.getNode(B))}},delegateOver:function(B,A){if(!this.beforeEvent(B)){return}if(this.lastEcOver){this.onIconOut(B,this.lastEcOver);delete this.lastEcOver}if(B.getTarget(".x-tree-ec-icon",1)){this.lastEcOver=this.getNode(B);this.onIconOver(B,this.lastEcOver)}if(A=this.getNodeTarget(B)){this.onNodeOver(B,this.getNode(B))}},delegateClick:function(B,A){if(!this.beforeEvent(B)){return}if(B.getTarget("input[type=checkbox]",1)){this.onCheckboxClick(B,this.getNode(B))}else{if(B.getTarget(".x-tree-ec-icon",1)){this.onIconClick(B,this.getNode(B))}else{if(this.getNodeTarget(B)){this.onNodeClick(B,this.getNode(B))}}}},delegateDblClick:function(B,A){if(this.beforeEvent(B)&&this.getNodeTarget(B)){this.onNodeDblClick(B,this.getNode(B))}},delegateContextMenu:function(B,A){if(this.beforeEvent(B)&&this.getNodeTarget(B)){this.onNodeContextMenu(B,this.getNode(B))}},onNodeClick:function(B,A){A.ui.onClick(B)},onNodeOver:function(B,A){A.ui.onOver(B)},onNodeOut:function(B,A){A.ui.onOut(B)},onIconOver:function(B,A){A.ui.addClass("x-tree-ec-over")},onIconOut:function(B,A){A.ui.removeClass("x-tree-ec-over")},onIconClick:function(B,A){A.ui.ecClick(B)},onCheckboxClick:function(B,A){A.ui.onCheckChange(B)},onNodeDblClick:function(B,A){A.ui.onDblClick(B)},onNodeContextMenu:function(B,A){A.ui.onContextMenu(B)},beforeEvent:function(A){if(this.disabled){A.stopEvent();return false}return true},disable:function(){this.disabled=true},enable:function(){this.disabled=false}};Ext.tree.DefaultSelectionModel=function(A){this.selNode=null;this.addEvents("selectionchange","beforeselect");Ext.apply(this,A);Ext.tree.DefaultSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.tree.DefaultSelectionModel,Ext.util.Observable,{init:function(A){this.tree=A;A.getTreeEl().on("keydown",this.onKeyDown,this);A.on("click",this.onNodeClick,this)},onNodeClick:function(A,B){this.select(A)},select:function(B){var A=this.selNode;if(A!=B&&this.fireEvent("beforeselect",this,B,A)!==false){if(A){A.ui.onSelectedChange(false)}this.selNode=B;B.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,B,A)}return B},unselect:function(A){if(this.selNode==A){this.clearSelections()}},clearSelections:function(){var A=this.selNode;if(A){A.ui.onSelectedChange(false);this.selNode=null;this.fireEvent("selectionchange",this,null)}return A},getSelectedNode:function(){return this.selNode},isSelected:function(A){return this.selNode==A},selectPrevious:function(){var A=this.selNode||this.lastSelNode;if(!A){return null}var C=A.previousSibling;if(C){if(!C.isExpanded()||C.childNodes.length<1){return this.select(C)}else{var B=C.lastChild;while(B&&B.isExpanded()&&B.childNodes.length>0){B=B.lastChild}return this.select(B)}}else{if(A.parentNode&&(this.tree.rootVisible||!A.parentNode.isRoot)){return this.select(A.parentNode)}}return null},selectNext:function(){var B=this.selNode||this.lastSelNode;if(!B){return null}if(B.firstChild&&B.isExpanded()){return this.select(B.firstChild)}else{if(B.nextSibling){return this.select(B.nextSibling)}else{if(B.parentNode){var A=null;B.parentNode.bubble(function(){if(this.nextSibling){A=this.getOwnerTree().selModel.select(this.nextSibling);return false}});return A}}}return null},onKeyDown:function(C){var B=this.selNode||this.lastSelNode;var D=this;if(!B){return}var A=C.getKey();switch(A){case C.DOWN:C.stopEvent();this.selectNext();break;case C.UP:C.stopEvent();this.selectPrevious();break;case C.RIGHT:C.preventDefault();if(B.hasChildNodes()){if(!B.isExpanded()){B.expand()}else{if(B.firstChild){this.select(B.firstChild,C)}}}break;case C.LEFT:C.preventDefault();if(B.hasChildNodes()&&B.isExpanded()){B.collapse()}else{if(B.parentNode&&(this.tree.rootVisible||B.parentNode!=this.tree.getRootNode())){this.select(B.parentNode,C)}}break}}});Ext.tree.MultiSelectionModel=function(A){this.selNodes=[];this.selMap={};this.addEvents("selectionchange");Ext.apply(this,A);Ext.tree.MultiSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.tree.MultiSelectionModel,Ext.util.Observable,{init:function(A){this.tree=A;A.getTreeEl().on("keydown",this.onKeyDown,this);A.on("click",this.onNodeClick,this)},onNodeClick:function(A,B){this.select(A,B,B.ctrlKey)},select:function(A,C,B){if(B!==true){this.clearSelections(true)}if(this.isSelected(A)){this.lastSelNode=A;return A}this.selNodes.push(A);this.selMap[A.id]=A;this.lastSelNode=A;A.ui.onSelectedChange(true);this.fireEvent("selectionchange",this,this.selNodes);return A},unselect:function(B){if(this.selMap[B.id]){B.ui.onSelectedChange(false);var C=this.selNodes;var A=C.indexOf(B);if(A!=-1){this.selNodes.splice(A,1)}delete this.selMap[B.id];this.fireEvent("selectionchange",this,this.selNodes)}},clearSelections:function(B){var D=this.selNodes;if(D.length>0){for(var C=0,A=D.length;C
","",this.indentMarkup,"","","",E?("":"/>")):"","",D.text,"
","
    ",""].join("");var A;if(J!==true&&D.nextSibling&&(A=D.nextSibling.ui.getEl())){this.wrap=Ext.DomHelper.insertHtml("beforeBegin",A,C)}else{this.wrap=Ext.DomHelper.insertHtml("beforeEnd",H,C)}this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var G=this.elNode.childNodes;this.indentNode=G[0];this.ecNode=G[1];this.iconNode=G[2];var F=3;if(E){this.checkbox=G[3];this.checkbox.defaultChecked=this.checkbox.checked;F++}this.anchor=G[F];this.textNode=G[F].firstChild},getAnchor:function(){return this.anchor},getTextEl:function(){return this.textNode},getIconEl:function(){return this.iconNode},isChecked:function(){return this.checkbox?this.checkbox.checked:false},updateExpandIcon:function(){if(this.rendered){var E=this.node,D,C;var A=E.isLast()?"x-tree-elbow-end":"x-tree-elbow";if(E.isExpandable()){if(E.expanded){A+="-minus";D="x-tree-node-collapsed";C="x-tree-node-expanded"}else{A+="-plus";D="x-tree-node-expanded";C="x-tree-node-collapsed"}if(this.wasLeaf){this.removeClass("x-tree-node-leaf");this.wasLeaf=false}if(this.c1!=D||this.c2!=C){Ext.fly(this.elNode).replaceClass(D,C);this.c1=D;this.c2=C}}else{if(!this.wasLeaf){Ext.fly(this.elNode).replaceClass("x-tree-node-expanded","x-tree-node-leaf");delete this.c1;delete this.c2;this.wasLeaf=true}}var B="x-tree-ec-icon "+A;if(this.ecc!=B){this.ecNode.className=B;this.ecc=B}}},getChildIndent:function(){if(!this.childIndent){var A=[];var B=this.node;while(B){if(!B.isRoot||(B.isRoot&&B.ownerTree.rootVisible)){if(!B.isLast()){A.unshift("")}else{A.unshift("")}}B=B.parentNode}this.childIndent=A.join("")}return this.childIndent},renderIndent:function(){if(this.rendered){var A="";var B=this.node.parentNode;if(B){A=B.ui.getChildIndent()}if(this.indentMarkup!=A){this.indentNode.innerHTML=A;this.indentMarkup=A}this.updateExpandIcon()}},destroy:function(){if(this.elNode){Ext.dd.Registry.unregister(this.elNode.id)}delete this.elNode;delete this.ctNode;delete this.indentNode;delete this.ecNode;delete this.iconNode;delete this.checkbox;delete this.anchor;delete this.textNode;Ext.removeNode(this.ctNode)}};Ext.tree.RootTreeNodeUI=Ext.extend(Ext.tree.TreeNodeUI,{render:function(){if(!this.rendered){var A=this.node.ownerTree.innerCt.dom;this.node.expanded=true;A.innerHTML="
    ";this.wrap=this.ctNode=A.firstChild}},collapse:Ext.emptyFn,expand:Ext.emptyFn});Ext.tree.TreeLoader=function(A){this.baseParams={};Ext.apply(this,A);this.addEvents("beforeload","load","loadexception");Ext.tree.TreeLoader.superclass.constructor.call(this)};Ext.extend(Ext.tree.TreeLoader,Ext.util.Observable,{uiProviders:{},clearOnLoad:true,load:function(A,B){if(this.clearOnLoad){while(A.firstChild){A.removeChild(A.firstChild)}}if(this.doPreload(A)){if(typeof B=="function"){B()}}else{if(this.dataUrl||this.url){this.requestData(A,B)}}},doPreload:function(D){if(D.attributes.children){if(D.childNodes.length<1){var C=D.attributes.children;D.beginUpdate();for(var B=0,A=C.length;BK){return E?-1:+1}else{return 0}}}};Ext.tree.TreeSorter.prototype={doSort:function(A){A.sort(this.sortFn)},compareNodes:function(B,A){return(B.text.toUpperCase()>A.text.toUpperCase()?1:-1)},updateSort:function(A,B){if(B.childrenRendered){this.doSort.defer(1,this,[B])}},updateSortParent:function(A){var B=A.parentNode;if(B&&B.childrenRendered){this.doSort.defer(1,this,[B])}}};if(Ext.dd.DropZone){Ext.tree.TreeDropZone=function(A,B){this.allowParentInsert=false;this.allowContainerDrop=false;this.appendOnly=false;Ext.tree.TreeDropZone.superclass.constructor.call(this,A.innerCt,B);this.tree=A;this.dragOverData={};this.lastInsertClass="x-tree-no-status"};Ext.extend(Ext.tree.TreeDropZone,Ext.dd.DropZone,{ddGroup:"TreeDD",expandDelay:1000,expandNode:function(A){if(A.hasChildNodes()&&!A.isExpanded()){A.expand(false,null,this.triggerCacheRefresh.createDelegate(this))}},queueExpand:function(A){this.expandProcId=this.expandNode.defer(this.expandDelay,this,[A])},cancelExpand:function(){if(this.expandProcId){clearTimeout(this.expandProcId);this.expandProcId=false}},isValidDropPoint:function(A,I,G,D,C){if(!A||!C){return false}var E=A.node;var F=C.node;if(!(E&&E.isTarget&&I)){return false}if(I=="append"&&E.allowChildren===false){return false}if((I=="above"||I=="below")&&(E.parentNode&&E.parentNode.allowChildren===false)){return false}if(F&&(E==F||F.contains(E))){return false}var B=this.dragOverData;B.tree=this.tree;B.target=E;B.data=C;B.point=I;B.source=G;B.rawEvent=D;B.dropNode=F;B.cancel=false;var H=this.tree.fireEvent("nodedragover",B);return B.cancel===false&&H!==false},getDropPoint:function(E,D,I){var J=D.node;if(J.isRoot){return J.allowChildren!==false?"append":false}var B=D.ddel;var K=Ext.lib.Dom.getY(B),G=K+B.offsetHeight;var F=Ext.lib.Event.getPageY(E);var H=J.allowChildren===false||J.isLeaf();if(this.appendOnly||J.parentNode.allowChildren===false){return H?false:"append"}var C=false;if(!this.allowParentInsert){C=J.hasChildNodes()&&J.isExpanded()}var A=(G-K)/(H?2:3);if(F>=K&&F<(K+A)){return"above"}else{if(!C&&(H||F>=G-A&&F<=G)){return"below"}else{return"append"}}},onNodeEnter:function(D,A,C,B){this.cancelExpand()},onNodeOver:function(B,G,F,E){var I=this.getDropPoint(F,B,G);var C=B.node;if(!this.expandProcId&&I=="append"&&C.hasChildNodes()&&!B.node.isExpanded()){this.queueExpand(C)}else{if(I!="append"){this.cancelExpand()}}var D=this.dropNotAllowed;if(this.isValidDropPoint(B,I,G,F,E)){if(I){var A=B.ddel;var H;if(I=="above"){D=B.node.isFirst()?"x-tree-drop-ok-above":"x-tree-drop-ok-between";H="x-tree-drag-insert-above"}else{if(I=="below"){D=B.node.isLast()?"x-tree-drop-ok-below":"x-tree-drop-ok-between";H="x-tree-drag-insert-below"}else{D="x-tree-drop-ok-append";H="x-tree-drag-append"}}if(this.lastInsertClass!=H){Ext.fly(A).replaceClass(this.lastInsertClass,H);this.lastInsertClass=H}}}return D},onNodeOut:function(D,A,C,B){this.cancelExpand();this.removeDropIndicators(D)},onNodeDrop:function(C,I,E,D){var H=this.getDropPoint(E,C,I);var F=C.node;F.ui.startDrop();if(!this.isValidDropPoint(C,H,I,E,D)){F.ui.endDrop();return false}var G=D.node||(I.getTreeNode?I.getTreeNode(D,F,H,E):null);var B={tree:this.tree,target:F,data:D,point:H,source:I,rawEvent:E,dropNode:G,cancel:!G,dropStatus:false};var A=this.tree.fireEvent("beforenodedrop",B);if(A===false||B.cancel===true||!B.dropNode){F.ui.endDrop();return B.dropStatus}F=B.target;if(H=="append"&&!F.isExpanded()){F.expand(false,null,function(){this.completeDrop(B)}.createDelegate(this))}else{this.completeDrop(B)}return true},completeDrop:function(G){var D=G.dropNode,E=G.point,C=G.target;if(!Ext.isArray(D)){D=[D]}var F;for(var B=0,A=D.length;BD.offsetLeft){E.scrollLeft=D.offsetLeft}var A=Math.min(this.maxWidth,(E.clientWidth>20?E.clientWidth:E.offsetWidth)-Math.max(0,D.offsetLeft-E.scrollLeft)-5);this.setSize(A,"")},triggerEdit:function(A,B){this.completeEdit();if(A.attributes.editable!==false){this.editNode=A;if(this.tree.autoScroll){A.ui.getEl().scrollIntoView(this.tree.body)}this.autoEditTimer=this.startEdit.defer(this.editDelay,this,[A.ui.textNode,A.text]);return false}},bindScroll:function(){this.tree.getTreeEl().on("scroll",this.cancelEdit,this)},beforeNodeClick:function(A,B){clearTimeout(this.autoEditTimer);if(this.tree.getSelectionModel().isSelected(A)){B.stopEvent();return this.triggerEdit(A)}},onNodeDblClick:function(A,B){clearTimeout(this.autoEditTimer)},updateNode:function(A,B){this.tree.getTreeEl().un("scroll",this.cancelEdit,this);this.editNode.setText(B)},onHide:function(){Ext.tree.TreeEditor.superclass.onHide.call(this);if(this.editNode){this.editNode.ui.focus.defer(50,this.editNode.ui)}},onSpecialKey:function(C,B){var A=B.getKey();if(A==B.ESC){B.stopEvent();this.cancelEdit()}else{if(A==B.ENTER&&!B.hasModifier()){B.stopEvent();this.completeEdit()}}}});Ext.menu.Menu=function(A){if(Ext.isArray(A)){A={items:A}}Ext.apply(this,A);this.id=this.id||Ext.id();this.addEvents("beforeshow","beforehide","show","hide","click","mouseover","mouseout","itemclick");Ext.menu.MenuMgr.register(this);Ext.menu.Menu.superclass.constructor.call(this);var B=this.items;this.items=new Ext.util.MixedCollection();if(B){this.add.apply(this,B)}};Ext.extend(Ext.menu.Menu,Ext.util.Observable,{minWidth:120,shadow:"sides",subMenuAlign:"tl-tr?",defaultAlign:"tl-bl?",allowOtherMenus:false,ignoreParentClicks:false,hidden:true,createEl:function(){return new Ext.Layer({cls:"x-menu",shadow:this.shadow,constrain:false,parentEl:this.parentEl||document.body,zindex:15000})},render:function(){if(this.el){return}var B=this.el=this.createEl();if(!this.keyNav){this.keyNav=new Ext.menu.MenuNav(this)}if(this.plain){B.addClass("x-menu-plain")}if(this.cls){B.addClass(this.cls)}this.focusEl=B.createChild({tag:"a",cls:"x-menu-focus",href:"#",onclick:"return false;",tabIndex:"-1"});var A=B.createChild({tag:"ul",cls:"x-menu-list"});A.on("click",this.onClick,this);A.on("mouseover",this.onMouseOver,this);A.on("mouseout",this.onMouseOut,this);this.items.each(function(D){var C=document.createElement("li");C.className="x-menu-list-item";A.dom.appendChild(C);D.render(C,this)},this);this.ul=A;this.autoWidth()},autoWidth:function(){var D=this.el,C=this.ul;if(!D){return}var A=this.width;if(A){D.setWidth(A)}else{if(Ext.isIE){D.setWidth(this.minWidth);var B=D.dom.offsetWidth;D.setWidth(C.getWidth()+D.getFrameWidth("lr"))}}},delayAutoWidth:function(){if(this.el){if(!this.awTask){this.awTask=new Ext.util.DelayedTask(this.autoWidth,this)}this.awTask.delay(20)}},findTargetItem:function(B){var A=B.getTarget(".x-menu-list-item",this.ul,true);if(A&&A.menuItemId){return this.items.get(A.menuItemId)}},onClick:function(B){var A;if(A=this.findTargetItem(B)){if(A.menu&&this.ignoreParentClicks){A.expandMenu()}else{A.onClick(B);this.fireEvent("click",this,A,B)}}},setActiveItem:function(A,B){if(A!=this.activeItem){if(this.activeItem){this.activeItem.deactivate()}this.activeItem=A;A.activate(B)}else{if(B){A.expandMenu()}}},tryActivate:function(F,E){var B=this.items;for(var C=F,A=B.length;C>=0&&C0){H()}})}function H(){if(D&&D.length>0){var N=D.clone();N.each(function(O){O.hide()})}}function E(N){D.remove(N);if(D.length<1){Ext.getDoc().un("mousedown",L);A=false}}function J(N){var O=D.last();K=new Date();D.add(N);if(!A){Ext.getDoc().on("mousedown",L);A=true}if(N.parentMenu){N.getEl().setZIndex(parseInt(N.parentMenu.getEl().getStyle("z-index"),10)+3);N.parentMenu.activeChild=N}else{if(O&&O.isVisible()){N.getEl().setZIndex(parseInt(O.getEl().getStyle("z-index"),10)+3)}}}function B(N){if(N.activeChild){N.activeChild.hide()}if(N.autoHideTimer){clearTimeout(N.autoHideTimer);delete N.autoHideTimer}}function G(N){var O=N.parentMenu;if(!O&&!N.allowOtherMenus){H()}else{if(O&&O.activeChild){O.activeChild.hide()}}}function L(N){if(K.getElapsed()>50&&D.length>0&&!N.getTarget(".x-menu")){H()}}function I(O,R){if(R){var Q=C[O.group];for(var P=0,N=Q.length;P{1}",this.icon||Ext.BLANK_IMAGE_URL,this.itemText||this.text,this.iconCls||"");this.el=C;Ext.menu.Item.superclass.onRender.call(this,B,A)},setText:function(A){this.text=A;if(this.rendered){this.el.update(String.format("{1}",this.icon||Ext.BLANK_IMAGE_URL,this.text,this.iconCls||""));this.parentMenu.autoWidth()}},setIconClass:function(A){var B=this.iconCls;this.iconCls=A;if(this.rendered){this.el.child("img.x-menu-item-icon").replaceClass(B,this.iconCls)}},handleClick:function(A){if(!this.href){A.stopEvent()}Ext.menu.Item.superclass.handleClick.apply(this,arguments)},activate:function(A){if(Ext.menu.Item.superclass.activate.apply(this,arguments)){this.focus();if(A){this.expandMenu()}}return true},shouldDeactivate:function(A){if(Ext.menu.Item.superclass.shouldDeactivate.call(this,A)){if(this.menu&&this.menu.isVisible()){return!this.menu.getEl().getRegion().contains(A.getPoint())}return true}return false},deactivate:function(){Ext.menu.Item.superclass.deactivate.apply(this,arguments);this.hideMenu()},expandMenu:function(A){if(!this.disabled&&this.menu){clearTimeout(this.hideTimer);delete this.hideTimer;if(!this.menu.isVisible()&&!this.showTimer){this.showTimer=this.deferExpand.defer(this.showDelay,this,[A])}else{if(this.menu.isVisible()&&A){this.menu.tryActivate(0,1)}}}},deferExpand:function(A){delete this.showTimer;this.menu.show(this.container,this.parentMenu.subMenuAlign||"tl-tr?",this.parentMenu);if(A){this.menu.tryActivate(0,1)}},hideMenu:function(){clearTimeout(this.showTimer);delete this.showTimer;if(!this.hideTimer&&this.menu&&this.menu.isVisible()){this.hideTimer=this.deferHide.defer(this.hideDelay,this)}},deferHide:function(){delete this.hideTimer;if(this.menu.over){this.parentMenu.setActiveItem(this,false)}else{this.menu.hide()}}});Ext.menu.CheckItem=function(A){Ext.menu.CheckItem.superclass.constructor.call(this,A);this.addEvents("beforecheckchange","checkchange");if(this.checkHandler){this.on("checkchange",this.checkHandler,this.scope)}Ext.menu.MenuMgr.registerCheckable(this)};Ext.extend(Ext.menu.CheckItem,Ext.menu.Item,{itemCls:"x-menu-item x-menu-check-item",groupClass:"x-menu-group-item",checked:false,ctype:"Ext.menu.CheckItem",onRender:function(A){Ext.menu.CheckItem.superclass.onRender.apply(this,arguments);if(this.group){this.el.addClass(this.groupClass)}if(this.checked){this.checked=false;this.setChecked(true,true)}},destroy:function(){Ext.menu.MenuMgr.unregisterCheckable(this);Ext.menu.CheckItem.superclass.destroy.apply(this,arguments)},setChecked:function(B,A){if(this.checked!=B&&this.fireEvent("beforecheckchange",this,B)!==false){if(this.container){this.container[B?"addClass":"removeClass"]("x-menu-item-checked")}this.checked=B;if(A!==true){this.fireEvent("checkchange",this,B)}}},handleClick:function(A){if(!this.disabled&&!(this.checked&&this.group)){this.setChecked(!this.checked)}Ext.menu.CheckItem.superclass.handleClick.apply(this,arguments)}});Ext.menu.Adapter=function(B,A){Ext.menu.Adapter.superclass.constructor.call(this,A);this.component=B};Ext.extend(Ext.menu.Adapter,Ext.menu.BaseItem,{canActivate:true,onRender:function(B,A){this.component.render(B);this.el=this.component.getEl()},activate:function(){if(this.disabled){return false}this.component.focus();this.fireEvent("activate",this);return true},deactivate:function(){this.fireEvent("deactivate",this)},disable:function(){this.component.disable();Ext.menu.Adapter.superclass.disable.call(this)},enable:function(){this.component.enable();Ext.menu.Adapter.superclass.enable.call(this)}});Ext.menu.DateItem=function(A){Ext.menu.DateItem.superclass.constructor.call(this,new Ext.DatePicker(A),A);this.picker=this.component;this.addEvents("select");this.picker.on("render",function(B){B.getEl().swallowEvent("click");B.container.addClass("x-menu-date-item")});this.picker.on("select",this.onSelect,this)};Ext.extend(Ext.menu.DateItem,Ext.menu.Adapter,{onSelect:function(B,A){this.fireEvent("select",this,A,B);Ext.menu.DateItem.superclass.handleClick.call(this)}});Ext.menu.ColorItem=function(A){Ext.menu.ColorItem.superclass.constructor.call(this,new Ext.ColorPalette(A),A);this.palette=this.component;this.relayEvents(this.palette,["select"]);if(this.selectHandler){this.on("select",this.selectHandler,this.scope)}};Ext.extend(Ext.menu.ColorItem,Ext.menu.Adapter);Ext.menu.DateMenu=function(A){Ext.menu.DateMenu.superclass.constructor.call(this,A);this.plain=true;var B=new Ext.menu.DateItem(A);this.add(B);this.picker=B.picker;this.relayEvents(B,["select"]);this.on("beforeshow",function(){if(this.picker){this.picker.hideMonthPicker(true)}},this)};Ext.extend(Ext.menu.DateMenu,Ext.menu.Menu,{cls:"x-date-menu",beforeDestroy:function(){this.picker.destroy()}});Ext.menu.ColorMenu=function(A){Ext.menu.ColorMenu.superclass.constructor.call(this,A);this.plain=true;var B=new Ext.menu.ColorItem(A);this.add(B);this.palette=B.palette;this.relayEvents(B,["select"])};Ext.extend(Ext.menu.ColorMenu,Ext.menu.Menu);Ext.form.Field=Ext.extend(Ext.BoxComponent,{invalidClass:"x-form-invalid",invalidText:"The value in this field is invalid",focusClass:"x-form-focus",validationEvent:"keyup",validateOnBlur:true,validationDelay:250,defaultAutoCreate:{tag:"input",type:"text",size:"20",autocomplete:"off"},fieldClass:"x-form-field",msgTarget:"qtip",msgFx:"normal",readOnly:false,disabled:false,isFormField:true,hasFocus:false,initComponent:function(){Ext.form.Field.superclass.initComponent.call(this);this.addEvents("focus","blur","specialkey","change","invalid","valid")},getName:function(){return this.rendered&&this.el.dom.name?this.el.dom.name:(this.hiddenName||"")},onRender:function(C,A){Ext.form.Field.superclass.onRender.call(this,C,A);if(!this.el){var B=this.getAutoCreate();if(!B.name){B.name=this.name||this.id}if(this.inputType){B.type=this.inputType}this.el=C.createChild(B,A)}var D=this.el.dom.type;if(D){if(D=="password"){D="text"}this.el.addClass("x-form-"+D)}if(this.readOnly){this.el.dom.readOnly=true}if(this.tabIndex!==undefined){this.el.dom.setAttribute("tabIndex",this.tabIndex)}this.el.addClass([this.fieldClass,this.cls])},initValue:function(){if(this.value!==undefined){this.setValue(this.value)}else{if(this.el.dom.value.length>0&&this.el.dom.value!=this.emptyText){this.setValue(this.el.dom.value)}}this.originalValue=this.getValue()},isDirty:function(){if(this.disabled){return false}return String(this.getValue())!==String(this.originalValue)},afterRender:function(){Ext.form.Field.superclass.afterRender.call(this);this.initEvents();this.initValue()},fireKey:function(A){if(A.isSpecialKey()){this.fireEvent("specialkey",this,A)}},reset:function(){this.setValue(this.originalValue);this.clearInvalid()},initEvents:function(){this.el.on(Ext.isIE||Ext.isSafari3?"keydown":"keypress",this.fireKey,this);this.el.on("focus",this.onFocus,this);var A=this.inEditor&&Ext.isWindows&&Ext.isGecko?{buffer:10}:null;this.el.on("blur",this.onBlur,this,A);this.originalValue=this.getValue()},onFocus:function(){if(!Ext.isOpera&&this.focusClass){this.el.addClass(this.focusClass)}if(!this.hasFocus){this.hasFocus=true;this.startValue=this.getValue();this.fireEvent("focus",this)}},beforeBlur:Ext.emptyFn,onBlur:function(){this.beforeBlur();if(!Ext.isOpera&&this.focusClass){this.el.removeClass(this.focusClass)}this.hasFocus=false;if(this.validationEvent!==false&&this.validateOnBlur&&this.validationEvent!="blur"){this.validate()}var A=this.getValue();if(String(A)!==String(this.startValue)){this.fireEvent("change",this,A,this.startValue)}this.fireEvent("blur",this)},isValid:function(A){if(this.disabled){return true}var C=this.preventMark;this.preventMark=A===true;var B=this.validateValue(this.processValue(this.getRawValue()));this.preventMark=C;return B},validate:function(){if(this.disabled||this.validateValue(this.processValue(this.getRawValue()))){this.clearInvalid();return true}return false},processValue:function(A){return A},validateValue:function(A){return true},markInvalid:function(C){if(!this.rendered||this.preventMark){return}this.el.addClass(this.invalidClass);C=C||this.invalidText;switch(this.msgTarget){case"qtip":this.el.dom.qtip=C;this.el.dom.qclass="x-form-invalid-tip";if(Ext.QuickTips){Ext.QuickTips.enable()}break;case"title":this.el.dom.title=C;break;case"under":if(!this.errorEl){var B=this.getErrorCt();if(!B){this.el.dom.title=C;break}this.errorEl=B.createChild({cls:"x-form-invalid-msg"});this.errorEl.setWidth(B.getWidth(true)-20)}this.errorEl.update(C);Ext.form.Field.msgFx[this.msgFx].show(this.errorEl,this);break;case"side":if(!this.errorIcon){var B=this.getErrorCt();if(!B){this.el.dom.title=C;break}this.errorIcon=B.createChild({cls:"x-form-invalid-icon"})}this.alignErrorIcon();this.errorIcon.dom.qtip=C;this.errorIcon.dom.qclass="x-form-invalid-tip";this.errorIcon.show();this.on("resize",this.alignErrorIcon,this);break;default:var A=Ext.getDom(this.msgTarget);A.innerHTML=C;A.style.display=this.msgDisplay;break}this.fireEvent("invalid",this,C)},getErrorCt:function(){return this.el.findParent(".x-form-element",5,true)||this.el.findParent(".x-form-field-wrap",5,true)},alignErrorIcon:function(){this.errorIcon.alignTo(this.el,"tl-tr",[2,0])},clearInvalid:function(){if(!this.rendered||this.preventMark){return}this.el.removeClass(this.invalidClass);switch(this.msgTarget){case"qtip":this.el.dom.qtip="";break;case"title":this.el.dom.title="";break;case"under":if(this.errorEl){Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl,this)}break;case"side":if(this.errorIcon){this.errorIcon.dom.qtip="";this.errorIcon.hide();this.un("resize",this.alignErrorIcon,this)}break;default:var A=Ext.getDom(this.msgTarget);A.innerHTML="";A.style.display="none";break}this.fireEvent("valid",this)},getRawValue:function(){var A=this.rendered?this.el.getValue():Ext.value(this.value,"");if(A===this.emptyText){A=""}return A},getValue:function(){if(!this.rendered){return this.value}var A=this.el.getValue();if(A===this.emptyText||A===undefined){A=""}return A},setRawValue:function(A){return this.el.dom.value=(A===null||A===undefined?"":A)},setValue:function(A){this.value=A;if(this.rendered){this.el.dom.value=(A===null||A===undefined?"":A);this.validate()}},adjustSize:function(A,C){var B=Ext.form.Field.superclass.adjustSize.call(this,A,C);B.width=this.adjustWidth(this.el.dom.tagName,B.width);return B},adjustWidth:function(A,B){A=A.toLowerCase();if(typeof B=="number"&&!Ext.isSafari){if(Ext.isIE&&(A=="input"||A=="textarea")){if(A=="input"&&!Ext.isStrict){return this.inEditor?B:B-3}if(A=="input"&&Ext.isStrict){return B-(Ext.isIE6?4:1)}if(A=="textarea"&&Ext.isStrict){return B-2}}else{if(Ext.isOpera&&Ext.isStrict){if(A=="input"){return B+2}if(A=="textarea"){return B-2}}}}return B}});Ext.form.MessageTargets={"qtip":{mark:function(A){this.el.dom.qtip=msg;this.el.dom.qclass="x-form-invalid-tip";if(Ext.QuickTips){Ext.QuickTips.enable()}},clear:function(A){this.el.dom.qtip=""}},"title":{mark:function(A){this.el.dom.title=msg},clear:function(A){this.el.dom.title=""}},"under":{mark:function(B){if(!this.errorEl){var A=this.getErrorCt();if(!A){this.el.dom.title=msg;return}this.errorEl=A.createChild({cls:"x-form-invalid-msg"});this.errorEl.setWidth(A.getWidth(true)-20)}this.errorEl.update(msg);Ext.form.Field.msgFx[this.msgFx].show(this.errorEl,this)},clear:function(A){if(this.errorEl){Ext.form.Field.msgFx[this.msgFx].hide(this.errorEl,this)}else{this.el.dom.title=""}}},"side":{mark:function(B){if(!this.errorIcon){var A=this.getErrorCt();if(!A){this.el.dom.title=msg;return}this.errorIcon=A.createChild({cls:"x-form-invalid-icon"})}this.alignErrorIcon();this.errorIcon.dom.qtip=msg;this.errorIcon.dom.qclass="x-form-invalid-tip";this.errorIcon.show();this.on("resize",this.alignErrorIcon,this)},clear:function(A){if(this.errorIcon){this.errorIcon.dom.qtip="";this.errorIcon.hide();this.un("resize",this.alignErrorIcon,this)}else{this.el.dom.title=""}}},"around":{mark:function(A){},clear:function(A){}}};Ext.form.Field.msgFx={normal:{show:function(A,B){A.setDisplayed("block")},hide:function(A,B){A.setDisplayed(false).update("")}},slide:{show:function(A,B){A.slideIn("t",{stopFx:true})},hide:function(A,B){A.slideOut("t",{stopFx:true,useDisplay:true})}},slideRight:{show:function(A,B){A.fixDisplay();A.alignTo(B.el,"tl-tr");A.slideIn("l",{stopFx:true})},hide:function(A,B){A.slideOut("l",{stopFx:true,useDisplay:true})}}};Ext.reg("field",Ext.form.Field);Ext.form.TextField=Ext.extend(Ext.form.Field,{grow:false,growMin:30,growMax:800,vtype:null,maskRe:null,disableKeyFilter:false,allowBlank:true,minLength:0,maxLength:Number.MAX_VALUE,minLengthText:"The minimum length for this field is {0}",maxLengthText:"The maximum length for this field is {0}",selectOnFocus:false,blankText:"This field is required",validator:null,regex:null,regexText:"",emptyText:null,emptyClass:"x-form-empty-field",initComponent:function(){Ext.form.TextField.superclass.initComponent.call(this);this.addEvents("autosize","keydown","keyup","keypress")},initEvents:function(){Ext.form.TextField.superclass.initEvents.call(this);if(this.validationEvent=="keyup"){this.validationTask=new Ext.util.DelayedTask(this.validate,this);this.el.on("keyup",this.filterValidation,this)}else{if(this.validationEvent!==false){this.el.on(this.validationEvent,this.validate,this,{buffer:this.validationDelay})}}if(this.selectOnFocus||this.emptyText){this.on("focus",this.preFocus,this);this.el.on("mousedown",function(){if(!this.hasFocus){this.el.on("mouseup",function(A){A.preventDefault()},this,{single:true})}},this);if(this.emptyText){this.on("blur",this.postBlur,this);this.applyEmptyText()}}if(this.maskRe||(this.vtype&&this.disableKeyFilter!==true&&(this.maskRe=Ext.form.VTypes[this.vtype+"Mask"]))){this.el.on("keypress",this.filterKeys,this)}if(this.grow){this.el.on("keyup",this.onKeyUpBuffered,this,{buffer:50});this.el.on("click",this.autoSize,this)}if(this.enableKeyEvents){this.el.on("keyup",this.onKeyUp,this);this.el.on("keydown",this.onKeyDown,this);this.el.on("keypress",this.onKeyPress,this)}},processValue:function(A){if(this.stripCharsRe){var B=A.replace(this.stripCharsRe,"");if(B!==A){this.setRawValue(B);return B}}return A},filterValidation:function(A){if(!A.isNavKeyPress()){this.validationTask.delay(this.validationDelay)}},onKeyUpBuffered:function(A){if(!A.isNavKeyPress()){this.autoSize()}},onKeyUp:function(A){this.fireEvent("keyup",this,A)},onKeyDown:function(A){this.fireEvent("keydown",this,A)},onKeyPress:function(A){this.fireEvent("keypress",this,A)},reset:function(){Ext.form.TextField.superclass.reset.call(this);this.applyEmptyText()},applyEmptyText:function(){if(this.rendered&&this.emptyText&&this.getRawValue().length<1){this.setRawValue(this.emptyText);this.el.addClass(this.emptyClass)}},preFocus:function(){if(this.emptyText){if(this.el.dom.value==this.emptyText){this.setRawValue("")}this.el.removeClass(this.emptyClass)}if(this.selectOnFocus){this.el.dom.select()}},postBlur:function(){this.applyEmptyText()},filterKeys:function(B){if(B.ctrlKey){return}var A=B.getKey();if(Ext.isGecko&&(B.isNavKeyPress()||A==B.BACKSPACE||(A==B.DELETE&&B.button==-1))){return}var D=B.getCharCode(),C=String.fromCharCode(D);if(!Ext.isGecko&&B.isSpecialKey()&&!C){return}if(!this.maskRe.test(C)){B.stopEvent()}},setValue:function(A){if(this.emptyText&&this.el&&A!==undefined&&A!==null&&A!==""){this.el.removeClass(this.emptyClass)}Ext.form.TextField.superclass.setValue.apply(this,arguments);this.applyEmptyText();this.autoSize()},validateValue:function(A){if(A.length<1||A===this.emptyText){if(this.allowBlank){this.clearInvalid();return true}else{this.markInvalid(this.blankText);return false}}if(A.lengththis.maxLength){this.markInvalid(String.format(this.maxLengthText,this.maxLength));return false}if(this.vtype){var C=Ext.form.VTypes;if(!C[this.vtype](A,this)){this.markInvalid(this.vtypeText||C[this.vtype+"Text"]);return false}}if(typeof this.validator=="function"){var B=this.validator(A);if(B!==true){this.markInvalid(B);return false}}if(this.regex&&!this.regex.test(A)){this.markInvalid(this.regexText);return false}return true},selectText:function(E,A){var C=this.getRawValue();if(C.length>0){E=E===undefined?0:E;A=A===undefined?C.length:A;var D=this.el.dom;if(D.setSelectionRange){D.setSelectionRange(E,A)}else{if(D.createTextRange){var B=D.createTextRange();B.moveStart("character",E);B.moveEnd("character",A-C.length);B.select()}}}},autoSize:function(){if(!this.grow||!this.rendered){return}if(!this.metrics){this.metrics=Ext.util.TextMetrics.createInstance(this.el)}var C=this.el;var B=C.dom.value;var D=document.createElement("div");D.appendChild(document.createTextNode(B));B=D.innerHTML;D=null;B+=" ";var A=Math.min(this.growMax,Math.max(this.metrics.getWidth(B)+10,this.growMin));this.el.setWidth(A);this.fireEvent("autosize",this,A)}});Ext.reg("textfield",Ext.form.TextField);Ext.form.TriggerField=Ext.extend(Ext.form.TextField,{defaultAutoCreate:{tag:"input",type:"text",size:"16",autocomplete:"off"},hideTrigger:false,autoSize:Ext.emptyFn,monitorTab:true,deferHeight:true,mimicing:false,onResize:function(A,B){Ext.form.TriggerField.superclass.onResize.call(this,A,B);if(typeof A=="number"){this.el.setWidth(this.adjustWidth("input",A-this.trigger.getWidth()))}this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth())},adjustSize:Ext.BoxComponent.prototype.adjustSize,getResizeEl:function(){return this.wrap},getPositionEl:function(){return this.wrap},alignErrorIcon:function(){if(this.wrap){this.errorIcon.alignTo(this.wrap,"tl-tr",[2,0])}},onRender:function(B,A){Ext.form.TriggerField.superclass.onRender.call(this,B,A);this.wrap=this.el.wrap({cls:"x-form-field-wrap"});this.trigger=this.wrap.createChild(this.triggerConfig||{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.triggerClass});if(this.hideTrigger){this.trigger.setDisplayed(false)}this.initTrigger();if(!this.width){this.wrap.setWidth(this.el.getWidth()+this.trigger.getWidth())}},afterRender:function(){Ext.form.TriggerField.superclass.afterRender.call(this);var A;if(Ext.isIE&&this.el.getY()!=(A=this.trigger.getY())){this.el.position();this.el.setY(A)}},initTrigger:function(){this.trigger.on("click",this.onTriggerClick,this,{preventDefault:true});this.trigger.addClassOnOver("x-form-trigger-over");this.trigger.addClassOnClick("x-form-trigger-click")},onDestroy:function(){if(this.trigger){this.trigger.removeAllListeners();this.trigger.remove()}if(this.wrap){this.wrap.remove()}Ext.form.TriggerField.superclass.onDestroy.call(this)},onFocus:function(){Ext.form.TriggerField.superclass.onFocus.call(this);if(!this.mimicing){this.wrap.addClass("x-trigger-wrap-focus");this.mimicing=true;Ext.get(Ext.isIE?document.body:document).on("mousedown",this.mimicBlur,this,{delay:10});if(this.monitorTab){this.el.on("keydown",this.checkTab,this)}}},checkTab:function(A){if(A.getKey()==A.TAB){this.triggerBlur()}},onBlur:function(){},mimicBlur:function(A){if(!this.wrap.contains(A.target)&&this.validateBlur(A)){this.triggerBlur()}},triggerBlur:function(){this.mimicing=false;Ext.get(Ext.isIE?document.body:document).un("mousedown",this.mimicBlur,this);if(this.monitorTab){this.el.un("keydown",this.checkTab,this)}this.beforeBlur();this.wrap.removeClass("x-trigger-wrap-focus");Ext.form.TriggerField.superclass.onBlur.call(this)},beforeBlur:Ext.emptyFn,validateBlur:function(A){return true},onDisable:function(){Ext.form.TriggerField.superclass.onDisable.call(this);if(this.wrap){this.wrap.addClass(this.disabledClass);this.el.removeClass(this.disabledClass)}},onEnable:function(){Ext.form.TriggerField.superclass.onEnable.call(this);if(this.wrap){this.wrap.removeClass(this.disabledClass)}},onShow:function(){if(this.wrap){this.wrap.dom.style.display="";this.wrap.dom.style.visibility="visible"}},onHide:function(){this.wrap.dom.style.display="none"},onTriggerClick:Ext.emptyFn});Ext.form.TwinTriggerField=Ext.extend(Ext.form.TriggerField,{initComponent:function(){Ext.form.TwinTriggerField.superclass.initComponent.call(this);this.triggerConfig={tag:"span",cls:"x-form-twin-triggers",cn:[{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger1Class},{tag:"img",src:Ext.BLANK_IMAGE_URL,cls:"x-form-trigger "+this.trigger2Class}]}},getTrigger:function(A){return this.triggers[A]},initTrigger:function(){var A=this.trigger.select(".x-form-trigger",true);this.wrap.setStyle("overflow","hidden");var B=this;A.each(function(D,F,C){D.hide=function(){var G=B.wrap.getWidth();this.dom.style.display="none";B.el.setWidth(G-B.trigger.getWidth())};D.show=function(){var G=B.wrap.getWidth();this.dom.style.display="";B.el.setWidth(G-B.trigger.getWidth())};var E="Trigger"+(C+1);if(this["hide"+E]){D.dom.style.display="none"}D.on("click",this["on"+E+"Click"],this,{preventDefault:true});D.addClassOnOver("x-form-trigger-over");D.addClassOnClick("x-form-trigger-click")},this);this.triggers=A.elements},onTrigger1Click:Ext.emptyFn,onTrigger2Click:Ext.emptyFn});Ext.reg("trigger",Ext.form.TriggerField);Ext.form.TextArea=Ext.extend(Ext.form.TextField,{growMin:60,growMax:1000,growAppend:" \n ",growPad:0,enterIsSpecial:false,preventScrollbars:false,onRender:function(B,A){if(!this.el){this.defaultAutoCreate={tag:"textarea",style:"width:100px;height:60px;",autocomplete:"off"}}Ext.form.TextArea.superclass.onRender.call(this,B,A);if(this.grow){this.textSizeEl=Ext.DomHelper.append(document.body,{tag:"pre",cls:"x-form-grow-sizer"});if(this.preventScrollbars){this.el.setStyle("overflow","hidden")}this.el.setHeight(this.growMin)}},onDestroy:function(){if(this.textSizeEl){Ext.removeNode(this.textSizeEl)}Ext.form.TextArea.superclass.onDestroy.call(this)},fireKey:function(A){if(A.isSpecialKey()&&(this.enterIsSpecial||(A.getKey()!=A.ENTER||A.hasModifier()))){this.fireEvent("specialkey",this,A)}},onKeyUp:function(A){if(!A.isNavKeyPress()||A.getKey()==A.ENTER){this.autoSize()}Ext.form.TextArea.superclass.onKeyUp.call(this,A)},autoSize:function(){if(!this.grow||!this.textSizeEl){return}var C=this.el;var A=C.dom.value;var D=this.textSizeEl;D.innerHTML="";D.appendChild(document.createTextNode(A));A=D.innerHTML;Ext.fly(D).setWidth(this.el.getWidth());if(A.length<1){A="  "}else{if(Ext.isIE){A=A.replace(/\n/g,"

     

    ")}A+=this.growAppend}D.innerHTML=A;var B=Math.min(this.growMax,Math.max(D.offsetHeight,this.growMin)+this.growPad);if(B!=this.lastHeight){this.lastHeight=B;this.el.setHeight(B);this.fireEvent("autosize",this,B)}}});Ext.reg("textarea",Ext.form.TextArea);Ext.form.NumberField=Ext.extend(Ext.form.TextField,{fieldClass:"x-form-field x-form-num-field",allowDecimals:true,decimalSeparator:".",decimalPrecision:2,allowNegative:true,minValue:Number.NEGATIVE_INFINITY,maxValue:Number.MAX_VALUE,minText:"The minimum value for this field is {0}",maxText:"The maximum value for this field is {0}",nanText:"{0} is not a valid number",baseChars:"0123456789",initEvents:function(){Ext.form.NumberField.superclass.initEvents.call(this);var B=this.baseChars+"";if(this.allowDecimals){B+=this.decimalSeparator}if(this.allowNegative){B+="-"}this.stripCharsRe=new RegExp("[^"+B+"]","gi");var A=function(D){var C=D.getKey();if(!Ext.isIE&&(D.isSpecialKey()||C==D.BACKSPACE||C==D.DELETE)){return}var E=D.getCharCode();if(B.indexOf(String.fromCharCode(E))===-1){D.stopEvent()}};this.el.on("keypress",A,this)},validateValue:function(B){if(!Ext.form.NumberField.superclass.validateValue.call(this,B)){return false}if(B.length<1){return true}B=String(B).replace(this.decimalSeparator,".");if(isNaN(B)){this.markInvalid(String.format(this.nanText,B));return false}var A=this.parseValue(B);if(Athis.maxValue){this.markInvalid(String.format(this.maxText,this.maxValue));return false}return true},getValue:function(){return this.fixPrecision(this.parseValue(Ext.form.NumberField.superclass.getValue.call(this)))},setValue:function(A){A=typeof A=="number"?A:parseFloat(String(A).replace(this.decimalSeparator,"."));A=isNaN(A)?"":String(A).replace(".",this.decimalSeparator);Ext.form.NumberField.superclass.setValue.call(this,A)},parseValue:function(A){A=parseFloat(String(A).replace(this.decimalSeparator,"."));return isNaN(A)?"":A},fixPrecision:function(B){var A=isNaN(B);if(!this.allowDecimals||this.decimalPrecision==-1||A||!B){return A?"":B}return parseFloat(parseFloat(B).toFixed(this.decimalPrecision))},beforeBlur:function(){var A=this.parseValue(this.getRawValue());if(A){this.setValue(this.fixPrecision(A))}}});Ext.reg("numberfield",Ext.form.NumberField);Ext.form.DateField=Ext.extend(Ext.form.TriggerField,{format:"m/d/Y",altFormats:"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d",disabledDaysText:"Disabled",disabledDatesText:"Disabled",minText:"The date in this field must be equal to or after {0}",maxText:"The date in this field must be equal to or before {0}",invalidText:"{0} is not a valid date - it must be in the format {1}",triggerClass:"x-form-date-trigger",showToday:true,defaultAutoCreate:{tag:"input",type:"text",size:"10",autocomplete:"off"},initComponent:function(){Ext.form.DateField.superclass.initComponent.call(this);if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue)}if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue)}this.ddMatch=null;this.initDisabledDays()},initDisabledDays:function(){if(this.disabledDates){var A=this.disabledDates;var C="(?:";for(var B=0;Bthis.maxValue.getTime()){this.markInvalid(String.format(this.maxText,this.formatDate(this.maxValue)));return false}if(this.disabledDays){var A=E.getDay();for(var B=0;B
    {"+this.displayField+"}
    "}this.view=new Ext.DataView({applyTo:this.innerList,tpl:this.tpl,singleSelect:true,selectedClass:this.selectedClass,itemSelector:this.itemSelector||"."+A+"-item"});this.view.on("click",this.onViewClick,this);this.bindStore(this.store,true);if(this.resizable){this.resizer=new Ext.Resizable(this.list,{pinned:true,handles:"se"});this.resizer.on("resize",function(E,C,D){this.maxHeight=D-this.handleHeight-this.list.getFrameWidth("tb")-this.assetHeight;this.listWidth=C;this.innerList.setWidth(C-this.list.getFrameWidth("lr"));this.restrictHeight()},this);this[this.pageSize?"footer":"innerList"].setStyle("margin-bottom",this.handleHeight+"px")}}},bindStore:function(A,B){if(this.store&&!B){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("loadexception",this.collapse,this);if(!A){this.store=null;if(this.view){this.view.setStore(null)}}}if(A){this.store=Ext.StoreMgr.lookup(A);this.store.on("beforeload",this.onBeforeLoad,this);this.store.on("load",this.onLoad,this);this.store.on("loadexception",this.collapse,this);if(this.view){this.view.setStore(A)}}},initEvents:function(){Ext.form.ComboBox.superclass.initEvents.call(this);this.keyNav=new Ext.KeyNav(this.el,{"up":function(A){this.inKeyMode=true;this.selectPrev()},"down":function(A){if(!this.isExpanded()){this.onTriggerClick()}else{this.inKeyMode=true;this.selectNext()}},"enter":function(A){this.onViewClick();this.delayedCheck=true;this.unsetDelayCheck.defer(10,this)},"esc":function(A){this.collapse()},"tab":function(A){this.onViewClick(false);return true},scope:this,doRelay:function(C,B,A){if(A=="down"||this.scope.isExpanded()){return Ext.KeyNav.prototype.doRelay.apply(this,arguments)}return true},forceKeyDown:true});this.queryDelay=Math.max(this.queryDelay||10,this.mode=="local"?10:250);this.dqTask=new Ext.util.DelayedTask(this.initQuery,this);if(this.typeAhead){this.taTask=new Ext.util.DelayedTask(this.onTypeAhead,this)}if(this.editable!==false){this.el.on("keyup",this.onKeyUp,this)}if(this.forceSelection){this.on("blur",this.doForce,this)}},onDestroy:function(){if(this.view){this.view.el.removeAllListeners();this.view.el.remove();this.view.purgeListeners()}if(this.list){this.list.destroy()}this.bindStore(null);Ext.form.ComboBox.superclass.onDestroy.call(this)},unsetDelayCheck:function(){delete this.delayedCheck},fireKey:function(A){if(A.isNavKeyPress()&&!this.isExpanded()&&!this.delayedCheck){this.fireEvent("specialkey",this,A)}},onResize:function(A,B){Ext.form.ComboBox.superclass.onResize.apply(this,arguments);if(this.list&&this.listWidth===undefined){var C=Math.max(A,this.minListWidth);this.list.setWidth(C);this.innerList.setWidth(C-this.list.getFrameWidth("lr"))}},onEnable:function(){Ext.form.ComboBox.superclass.onEnable.apply(this,arguments);if(this.hiddenField){this.hiddenField.disabled=false}},onDisable:function(){Ext.form.ComboBox.superclass.onDisable.apply(this,arguments);if(this.hiddenField){this.hiddenField.disabled=true}},setEditable:function(A){if(A==this.editable){return}this.editable=A;if(!A){this.el.dom.setAttribute("readOnly",true);this.el.on("mousedown",this.onTriggerClick,this);this.el.addClass("x-combo-noedit")}else{this.el.dom.setAttribute("readOnly",false);this.el.un("mousedown",this.onTriggerClick,this);this.el.removeClass("x-combo-noedit")}},onBeforeLoad:function(){if(!this.hasFocus){return}this.innerList.update(this.loadingText?"
    "+this.loadingText+"
    ":"");this.restrictHeight();this.selectedIndex=-1},onLoad:function(){if(!this.hasFocus){return}if(this.store.getCount()>0){this.expand();this.restrictHeight();if(this.lastQuery==this.allQuery){if(this.editable){this.el.dom.select()}if(!this.selectByValue(this.value,true)){this.select(0,true)}}else{this.selectNext();if(this.typeAhead&&this.lastKey!=Ext.EventObject.BACKSPACE&&this.lastKey!=Ext.EventObject.DELETE){this.taTask.delay(this.typeAheadDelay)}}}else{this.onEmptyResults()}},onTypeAhead:function(){if(this.store.getCount()>0){var B=this.store.getAt(0);var C=B.data[this.displayField];var A=C.length;var D=this.getRawValue().length;if(D!=A){this.setRawValue(C);this.selectText(D,C.length)}}},onSelect:function(A,B){if(this.fireEvent("beforeselect",this,A,B)!==false){this.setValue(A.data[this.valueField||this.displayField]);this.collapse();this.fireEvent("select",this,A,B)}},getValue:function(){if(this.valueField){return typeof this.value!="undefined"?this.value:""}else{return Ext.form.ComboBox.superclass.getValue.call(this)}},clearValue:function(){if(this.hiddenField){this.hiddenField.value=""}this.setRawValue("");this.lastSelectionText="";this.applyEmptyText();this.value=""},setValue:function(A){var C=A;if(this.valueField){var B=this.findRecord(this.valueField,A);if(B){C=B.data[this.displayField]}else{if(this.valueNotFoundText!==undefined){C=this.valueNotFoundText}}}this.lastSelectionText=C;if(this.hiddenField){this.hiddenField.value=A}Ext.form.ComboBox.superclass.setValue.call(this,C);this.value=A},findRecord:function(C,B){var A;if(this.store.getCount()>0){this.store.each(function(D){if(D.data[C]==B){A=D;return false}})}return A},onViewMove:function(B,A){this.inKeyMode=false},onViewOver:function(D,B){if(this.inKeyMode){return}var C=this.view.findItemFromChild(B);if(C){var A=this.view.indexOf(C);this.select(A,false)}},onViewClick:function(B){var A=this.view.getSelectedIndexes()[0];var C=this.store.getAt(A);if(C){this.onSelect(C,A)}if(B!==false){this.el.focus()}},restrictHeight:function(){this.innerList.dom.style.height="";var B=this.innerList.dom;var E=this.list.getFrameWidth("tb")+(this.resizable?this.handleHeight:0)+this.assetHeight;var C=Math.max(B.clientHeight,B.offsetHeight,B.scrollHeight);var A=this.getPosition()[1]-Ext.getBody().getScroll().top;var F=Ext.lib.Dom.getViewHeight()-A-this.getSize().height;var D=Math.max(A,F,this.minHeight||0)-this.list.shadowOffset-E-5;C=Math.min(C,D,this.maxHeight);this.innerList.setHeight(C);this.list.beginUpdate();this.list.setHeight(C+E);this.list.alignTo(this.wrap,this.listAlign);this.list.endUpdate()},onEmptyResults:function(){this.collapse()},isExpanded:function(){return this.list&&this.list.isVisible()},selectByValue:function(A,C){if(A!==undefined&&A!==null){var B=this.findRecord(this.valueField||this.displayField,A);if(B){this.select(this.store.indexOf(B),C);return true}}return false},select:function(A,C){this.selectedIndex=A;this.view.select(A);if(C!==false){var B=this.view.getNode(A);if(B){this.innerList.scrollChildIntoView(B,false)}}},selectNext:function(){var A=this.store.getCount();if(A>0){if(this.selectedIndex==-1){this.select(0)}else{if(this.selectedIndex0){if(this.selectedIndex==-1){this.select(0)}else{if(this.selectedIndex!=0){this.select(this.selectedIndex-1)}}}},onKeyUp:function(A){if(this.editable!==false&&!A.isSpecialKey()){this.lastKey=A.getKey();this.dqTask.delay(this.queryDelay)}},validateBlur:function(){return!this.list||!this.list.isVisible()},initQuery:function(){this.doQuery(this.getRawValue())},doForce:function(){if(this.el.dom.value.length>0){this.el.dom.value=this.lastSelectionText===undefined?"":this.lastSelectionText;this.applyEmptyText()}},doQuery:function(C,B){if(C===undefined||C===null){C=""}var A={query:C,forceAll:B,combo:this,cancel:false};if(this.fireEvent("beforequery",A)===false||A.cancel){return false}C=A.query;B=A.forceAll;if(B===true||(C.length>=this.minChars)){if(this.lastQuery!==C){this.lastQuery=C;if(this.mode=="local"){this.selectedIndex=-1;if(B){this.store.clearFilter()}else{this.store.filter(this.displayField,C)}this.onLoad()}else{this.store.baseParams[this.queryParam]=C;this.store.load({params:this.getParams(C)});this.expand()}}else{this.selectedIndex=-1;this.onLoad()}}},getParams:function(A){var B={};if(this.pageSize){B.start=0;B.limit=this.pageSize}return B},collapse:function(){if(!this.isExpanded()){return}this.list.hide();Ext.getDoc().un("mousewheel",this.collapseIf,this);Ext.getDoc().un("mousedown",this.collapseIf,this);this.fireEvent("collapse",this)},collapseIf:function(A){if(!A.within(this.wrap)&&!A.within(this.list)){this.collapse()}},expand:function(){if(this.isExpanded()||!this.hasFocus){return}this.list.alignTo(this.wrap,this.listAlign);this.list.show();this.innerList.setOverflow("auto");Ext.getDoc().on("mousewheel",this.collapseIf,this);Ext.getDoc().on("mousedown",this.collapseIf,this);this.fireEvent("expand",this)},onTriggerClick:function(){if(this.disabled){return}if(this.isExpanded()){this.collapse();this.el.focus()}else{this.onFocus({});if(this.triggerAction=="all"){this.doQuery(this.allQuery,true)}else{this.doQuery(this.getRawValue())}this.el.focus()}}});Ext.reg("combo",Ext.form.ComboBox);Ext.form.Checkbox=Ext.extend(Ext.form.Field,{checkedCls:"x-form-check-checked",focusCls:"x-form-check-focus",overCls:"x-form-check-over",mouseDownCls:"x-form-check-down",tabIndex:0,checked:false,defaultAutoCreate:{tag:"input",type:"checkbox",autocomplete:"off"},baseCls:"x-form-check",initComponent:function(){Ext.form.Checkbox.superclass.initComponent.call(this);this.addEvents("check")},initEvents:function(){Ext.form.Checkbox.superclass.initEvents.call(this);this.initCheckEvents()},initCheckEvents:function(){this.innerWrap.removeAllListeners();this.innerWrap.addClassOnOver(this.overCls);this.innerWrap.addClassOnClick(this.mouseDownCls);this.innerWrap.on("click",this.onClick,this);this.innerWrap.on("keyup",this.onKeyUp,this)},onRender:function(B,A){Ext.form.Checkbox.superclass.onRender.call(this,B,A);if(this.inputValue!==undefined){this.el.dom.value=this.inputValue}this.el.addClass("x-hidden");this.innerWrap=this.el.wrap({tabIndex:this.tabIndex,cls:this.baseCls+"-wrap-inner"});this.wrap=this.innerWrap.wrap({cls:this.baseCls+"-wrap"});if(this.boxLabel){this.labelEl=this.innerWrap.createChild({tag:"label",htmlFor:this.el.id,cls:"x-form-cb-label",html:this.boxLabel})}this.imageEl=this.innerWrap.createChild({tag:"img",src:Ext.BLANK_IMAGE_URL,cls:this.baseCls},this.el);if(this.checked){this.setValue(true)}else{this.checked=this.el.dom.checked}this.originalValue=this.checked},onDestroy:function(){if(this.rendered){Ext.destroy(this.imageEl,this.labelEl,this.innerWrap,this.wrap)}Ext.form.Checkbox.superclass.onDestroy.call(this)},onFocus:function(A){Ext.form.Checkbox.superclass.onFocus.call(this,A);this.el.addClass(this.focusCls)},onBlur:function(A){Ext.form.Checkbox.superclass.onBlur.call(this,A);this.el.removeClass(this.focusCls)},onResize:function(){Ext.form.Checkbox.superclass.onResize.apply(this,arguments);if(!this.boxLabel&&!this.fieldLabel){this.el.alignTo(this.wrap,"c-c")}},onKeyUp:function(A){if(A.getKey()==Ext.EventObject.SPACE){this.onClick(A)}},onClick:function(A){if(!this.disabled&&!this.readOnly){this.toggleValue()}A.stopEvent()},onEnable:function(){Ext.form.Checkbox.superclass.onEnable.call(this);this.initCheckEvents()},onDisable:function(){Ext.form.Checkbox.superclass.onDisable.call(this);this.innerWrap.removeAllListeners()},toggleValue:function(){this.setValue(!this.checked)},getResizeEl:function(){if(!this.resizeEl){this.resizeEl=Ext.isSafari?this.wrap:(this.wrap.up(".x-form-element",5)||this.wrap)}return this.resizeEl},getPositionEl:function(){return this.wrap},getActionEl:function(){return this.wrap},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,initValue:Ext.emptyFn,getValue:function(){if(this.rendered){return this.el.dom.checked}return false},setValue:function(A){var B=this.checked;this.checked=(A===true||A==="true"||A=="1"||String(A).toLowerCase()=="on");if(this.el&&this.el.dom){this.el.dom.checked=this.checked;this.el.dom.defaultChecked=this.checked}this.wrap[this.checked?"addClass":"removeClass"](this.checkedCls);if(B!=this.checked){this.fireEvent("check",this,this.checked);if(this.handler){this.handler.call(this.scope||this,this,this.checked)}}}});Ext.reg("checkbox",Ext.form.Checkbox);Ext.form.CheckboxGroup=Ext.extend(Ext.form.Field,{columns:"auto",vertical:false,allowBlank:true,blankText:"You must select at least one item in this group",defaultType:"checkbox",groupCls:"x-form-check-group",onRender:function(H,F){if(!this.el){var M={cls:this.groupCls,layout:"column",border:false,renderTo:H};var A={defaultType:this.defaultType,layout:"form",border:false,defaults:{hideLabel:true,anchor:"100%"}};if(this.items[0].items){Ext.apply(M,{layoutConfig:{columns:this.items.length},defaults:this.defaults,items:this.items});for(var E=0,J=this.items.length;E0&&E%O==0){L++}if(this.items[E].fieldLabel){this.items[E].hideLabel=false}K[L].items.push(this.items[E])}}else{for(var E=0,J=this.items.length;E":">"),C,"")}return D.join("")},createToolbar:function(D){var A=Ext.QuickTips&&Ext.QuickTips.isEnabled();function C(G,E,F){return{itemId:G,cls:"x-btn-icon x-edit-"+G,enableToggle:E!==false,scope:D,handler:F||D.relayBtnCmd,clickEvent:"mousedown",tooltip:A?D.buttonTips[G]||undefined:undefined,tabIndex:-1}}var B=new Ext.Toolbar({renderTo:this.wrap.dom.firstChild});B.el.on("click",function(E){E.preventDefault()});if(this.enableFont&&!Ext.isSafari2){this.fontSelect=B.el.createChild({tag:"select",cls:"x-font-select",html:this.createFontOptions()});this.fontSelect.on("change",function(){var E=this.fontSelect.dom.value;this.relayCmd("fontname",E);this.deferFocus()},this);B.add(this.fontSelect.dom,"-")}if(this.enableFormat){B.add(C("bold"),C("italic"),C("underline"))}if(this.enableFontSize){B.add("-",C("increasefontsize",false,this.adjustFont),C("decreasefontsize",false,this.adjustFont))}if(this.enableColors){B.add("-",{itemId:"forecolor",cls:"x-btn-icon x-edit-forecolor",clickEvent:"mousedown",tooltip:A?D.buttonTips["forecolor"]||undefined:undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({allowReselect:true,focus:Ext.emptyFn,value:"000000",plain:true,selectHandler:function(F,E){this.execCmd("forecolor",Ext.isSafari||Ext.isIE?"#"+E:E);this.deferFocus()},scope:this,clickEvent:"mousedown"})},{itemId:"backcolor",cls:"x-btn-icon x-edit-backcolor",clickEvent:"mousedown",tooltip:A?D.buttonTips["backcolor"]||undefined:undefined,tabIndex:-1,menu:new Ext.menu.ColorMenu({focus:Ext.emptyFn,value:"FFFFFF",plain:true,allowReselect:true,selectHandler:function(F,E){if(Ext.isGecko){this.execCmd("useCSS",false);this.execCmd("hilitecolor",E);this.execCmd("useCSS",true);this.deferFocus()}else{this.execCmd(Ext.isOpera?"hilitecolor":"backcolor",Ext.isSafari||Ext.isIE?"#"+E:E);this.deferFocus()}},scope:this,clickEvent:"mousedown"})})}if(this.enableAlignments){B.add("-",C("justifyleft"),C("justifycenter"),C("justifyright"))}if(!Ext.isSafari2){if(this.enableLinks){B.add("-",C("createlink",false,this.createLink))}if(this.enableLists){B.add("-",C("insertorderedlist"),C("insertunorderedlist"))}if(this.enableSourceEdit){B.add("-",C("sourceedit",true,function(E){this.toggleSourceEdit(E.pressed)}))}}this.tb=B},getDocMarkup:function(){return""},getEditorBody:function(){return this.doc.body||this.doc.documentElement},getDoc:function(){return Ext.isIE?this.getWin().document:(this.iframe.contentDocument||this.getWin().document)},getWin:function(){return Ext.isIE?this.iframe.contentWindow:window.frames[this.iframe.name]},onRender:function(B,A){Ext.form.HtmlEditor.superclass.onRender.call(this,B,A);this.el.dom.style.border="0 none";this.el.dom.setAttribute("tabIndex",-1);this.el.addClass("x-hidden");if(Ext.isIE){this.el.applyStyles("margin-top:-1px;margin-bottom:-1px;")}this.wrap=this.el.wrap({cls:"x-html-editor-wrap",cn:{cls:"x-html-editor-tb"}});this.createToolbar(this);this.tb.items.each(function(E){if(E.itemId!="sourceedit"){E.disable()}});var C=document.createElement("iframe");C.name=Ext.id();C.frameBorder="0";C.src=Ext.isIE?Ext.SSL_SECURE_URL:"javascript:;";this.wrap.dom.appendChild(C);this.iframe=C;this.initFrame();if(this.autoMonitorDesignMode!==false){this.monitorTask=Ext.TaskMgr.start({run:this.checkDesignMode,scope:this,interval:100})}if(!this.width){var D=this.el.getSize();this.setSize(D.width,this.height||D.height)}},initFrame:function(){this.doc=this.getDoc();this.win=this.getWin();this.doc.open();this.doc.write(this.getDocMarkup());this.doc.close();var A={run:function(){if(this.doc.body||this.doc.readyState=="complete"){Ext.TaskMgr.stop(A);this.doc.designMode="on";this.initEditor.defer(10,this)}},interval:10,duration:10000,scope:this};Ext.TaskMgr.start(A)},checkDesignMode:function(){if(this.wrap&&this.wrap.dom.offsetWidth){var A=this.getDoc();if(!A){return}if(!A.editorInitialized||String(A.designMode).toLowerCase()!="on"){this.initFrame()}}},onResize:function(B,C){Ext.form.HtmlEditor.superclass.onResize.apply(this,arguments);if(this.el&&this.iframe){if(typeof B=="number"){var D=B-this.wrap.getFrameWidth("lr");this.el.setWidth(this.adjustWidth("textarea",D));this.iframe.style.width=D+"px"}if(typeof C=="number"){var A=C-this.wrap.getFrameWidth("tb")-this.tb.el.getHeight();this.el.setHeight(this.adjustWidth("textarea",A));this.iframe.style.height=A+"px";if(this.doc){this.getEditorBody().style.height=(A-(this.iframePad*2))+"px"}}}},toggleSourceEdit:function(A){if(A===undefined){A=!this.sourceEditMode}this.sourceEditMode=A===true;var C=this.tb.items.get("sourceedit");if(C.pressed!==this.sourceEditMode){C.toggle(this.sourceEditMode);return}if(this.sourceEditMode){this.tb.items.each(function(D){if(D.itemId!="sourceedit"){D.disable()}});this.syncValue();this.iframe.className="x-hidden";this.el.removeClass("x-hidden");this.el.dom.removeAttribute("tabIndex");this.el.focus()}else{if(this.initialized){this.tb.items.each(function(D){D.enable()})}this.pushValue();this.iframe.className="";this.el.addClass("x-hidden");this.el.dom.setAttribute("tabIndex",-1);this.deferFocus()}var B=this.lastSize;if(B){delete this.lastSize;this.setSize(B)}this.fireEvent("editmodechange",this,this.sourceEditMode)},createLink:function(){var A=prompt(this.createLinkText,this.defaultLinkValue);if(A&&A!="http:/"+"/"){this.relayCmd("createlink",A)}},adjustSize:Ext.BoxComponent.prototype.adjustSize,getResizeEl:function(){return this.wrap},getPositionEl:function(){return this.wrap},initEvents:function(){this.originalValue=this.getValue()},markInvalid:Ext.emptyFn,clearInvalid:Ext.emptyFn,setValue:function(A){Ext.form.HtmlEditor.superclass.setValue.call(this,A);this.pushValue()},cleanHtml:function(A){A=String(A);if(A.length>5){if(Ext.isSafari){A=A.replace(/\sclass="(?:Apple-style-span|khtml-block-placeholder)"/gi,"")}}if(A==" "){A=""}return A},syncValue:function(){if(this.initialized){var D=this.getEditorBody();var C=D.innerHTML;if(Ext.isSafari){var B=D.getAttribute("style");var A=B.match(/text-align:(.*?);/i);if(A&&A[1]){C="
    "+C+"
    "}}C=this.cleanHtml(C);if(this.fireEvent("beforesync",this,C)!==false){this.el.dom.value=C;this.fireEvent("sync",this,C)}}},pushValue:function(){if(this.initialized){var A=this.el.dom.value;if(!this.activated&&A.length<1){A=" "}if(this.fireEvent("beforepush",this,A)!==false){this.getEditorBody().innerHTML=A;this.fireEvent("push",this,A)}}},deferFocus:function(){this.focus.defer(10,this)},focus:function(){if(this.win&&!this.sourceEditMode){this.win.focus()}else{this.el.focus()}},initEditor:function(){var B=this.getEditorBody();var A=this.el.getStyles("font-size","font-family","background-image","background-repeat");A["background-attachment"]="fixed";B.bgProperties="fixed";Ext.DomHelper.applyStyles(B,A);if(this.doc){try{Ext.EventManager.removeAll(this.doc)}catch(C){}}this.doc=this.getDoc();Ext.EventManager.on(this.doc,{"mousedown":this.onEditorEvent,"dblclick":this.onEditorEvent,"click":this.onEditorEvent,"keyup":this.onEditorEvent,buffer:100,scope:this});if(Ext.isGecko){Ext.EventManager.on(this.doc,"keypress",this.applyCommand,this)}if(Ext.isIE||Ext.isSafari||Ext.isOpera){Ext.EventManager.on(this.doc,"keydown",this.fixKeys,this)}this.initialized=true;this.fireEvent("initialize",this);this.doc.editorInitialized=true;this.pushValue()},onDestroy:function(){if(this.monitorTask){Ext.TaskMgr.stop(this.monitorTask)}if(this.rendered){this.tb.items.each(function(A){if(A.menu){A.menu.removeAll();if(A.menu.el){A.menu.el.destroy()}}A.destroy()});this.wrap.dom.innerHTML="";this.wrap.remove()}},onFirstFocus:function(){this.activated=true;this.tb.items.each(function(D){D.enable()});if(Ext.isGecko){this.win.focus();var A=this.win.getSelection();if(!A.focusNode||A.focusNode.nodeType!=3){var B=A.getRangeAt(0);B.selectNodeContents(this.getEditorBody());B.collapse(true);this.deferFocus()}try{this.execCmd("useCSS",true);this.execCmd("styleWithCSS",false)}catch(C){}}this.fireEvent("activate",this)},adjustFont:function(B){var C=B.itemId=="increasefontsize"?1:-1;var A=parseInt(this.doc.queryCommandValue("FontSize")||2,10);if(Ext.isSafari3||Ext.isAir){if(A<=10){A=1+C}else{if(A<=13){A=2+C}else{if(A<=16){A=3+C}else{if(A<=18){A=4+C}else{if(A<=24){A=5+C}else{A=6+C}}}}}A=A.constrain(1,6)}else{if(Ext.isSafari){C*=2}A=Math.max(1,A+C)+(Ext.isSafari?"px":0)}this.execCmd("FontSize",A)},onEditorEvent:function(A){this.updateToolbar()},updateToolbar:function(){if(!this.activated){this.onFirstFocus();return}var B=this.tb.items.map,C=this.doc;if(this.enableFont&&!Ext.isSafari2){var A=(this.doc.queryCommandValue("FontName")||this.defaultFont).toLowerCase();if(A!=this.fontSelect.dom.value){this.fontSelect.dom.value=A}}if(this.enableFormat){B.bold.toggle(C.queryCommandState("bold"));B.italic.toggle(C.queryCommandState("italic"));B.underline.toggle(C.queryCommandState("underline"))}if(this.enableAlignments){B.justifyleft.toggle(C.queryCommandState("justifyleft"));B.justifycenter.toggle(C.queryCommandState("justifycenter"));B.justifyright.toggle(C.queryCommandState("justifyright"))}if(!Ext.isSafari2&&this.enableLists){B.insertorderedlist.toggle(C.queryCommandState("insertorderedlist"));B.insertunorderedlist.toggle(C.queryCommandState("insertunorderedlist"))}Ext.menu.MenuMgr.hideAll();this.syncValue()},relayBtnCmd:function(A){this.relayCmd(A.itemId)},relayCmd:function(B,A){(function(){this.focus();this.execCmd(B,A);this.updateToolbar()}).defer(10,this)},execCmd:function(B,A){this.doc.execCommand(B,false,A===undefined?null:A);this.syncValue()},applyCommand:function(B){if(B.ctrlKey){var C=B.getCharCode(),A;if(C>0){C=String.fromCharCode(C);switch(C){case"b":A="bold";break;case"i":A="italic";break;case"u":A="underline";break}if(A){this.win.focus();this.execCmd(A);this.deferFocus();B.preventDefault()}}}},insertAtCursor:function(B){if(!this.activated){return}if(Ext.isIE){this.win.focus();var A=this.doc.selection.createRange();if(A){A.collapse(true);A.pasteHTML(B);this.syncValue();this.deferFocus()}}else{if(Ext.isGecko||Ext.isOpera){this.win.focus();this.execCmd("InsertHTML",B);this.deferFocus()}else{if(Ext.isSafari){this.execCmd("InsertText",B);this.deferFocus()}}}},fixKeys:function(){if(Ext.isIE){return function(D){var A=D.getKey(),B;if(A==D.TAB){D.stopEvent();B=this.doc.selection.createRange();if(B){B.collapse(true);B.pasteHTML("    ");this.deferFocus()}}else{if(A==D.ENTER){B=this.doc.selection.createRange();if(B){var C=B.parentElement();if(!C||C.tagName.toLowerCase()!="li"){D.stopEvent();B.pasteHTML("
    ");B.collapse(false);B.select()}}}}}}else{if(Ext.isOpera){return function(B){var A=B.getKey();if(A==B.TAB){B.stopEvent();this.win.focus();this.execCmd("InsertHTML","    ");this.deferFocus()}}}else{if(Ext.isSafari){return function(B){var A=B.getKey();if(A==B.TAB){B.stopEvent();this.execCmd("InsertText","\t");this.deferFocus()}}}}}}(),getToolbar:function(){return this.tb},buttonTips:{bold:{title:"Bold (Ctrl+B)",text:"Make the selected text bold.",cls:"x-html-editor-tip"},italic:{title:"Italic (Ctrl+I)",text:"Make the selected text italic.",cls:"x-html-editor-tip"},underline:{title:"Underline (Ctrl+U)",text:"Underline the selected text.",cls:"x-html-editor-tip"},increasefontsize:{title:"Grow Text",text:"Increase the font size.",cls:"x-html-editor-tip"},decreasefontsize:{title:"Shrink Text",text:"Decrease the font size.",cls:"x-html-editor-tip"},backcolor:{title:"Text Highlight Color",text:"Change the background color of the selected text.",cls:"x-html-editor-tip"},forecolor:{title:"Font Color",text:"Change the color of the selected text.",cls:"x-html-editor-tip"},justifyleft:{title:"Align Text Left",text:"Align text to the left.",cls:"x-html-editor-tip"},justifycenter:{title:"Center Text",text:"Center text in the editor.",cls:"x-html-editor-tip"},justifyright:{title:"Align Text Right",text:"Align text to the right.",cls:"x-html-editor-tip"},insertunorderedlist:{title:"Bullet List",text:"Start a bulleted list.",cls:"x-html-editor-tip"},insertorderedlist:{title:"Numbered List",text:"Start a numbered list.",cls:"x-html-editor-tip"},createlink:{title:"Hyperlink",text:"Make the selected text a hyperlink.",cls:"x-html-editor-tip"},sourceedit:{title:"Source Edit",text:"Switch to source editing mode.",cls:"x-html-editor-tip"}}});Ext.reg("htmleditor",Ext.form.HtmlEditor);Ext.form.TimeField=Ext.extend(Ext.form.ComboBox,{minValue:null,maxValue:null,minText:"The time in this field must be equal to or after {0}",maxText:"The time in this field must be equal to or before {0}",invalidText:"{0} is not a valid time",format:"g:i A",altFormats:"g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H",increment:15,mode:"local",triggerAction:"all",typeAhead:false,initDate:"1/1/2008",initComponent:function(){Ext.form.TimeField.superclass.initComponent.call(this);if(typeof this.minValue=="string"){this.minValue=this.parseDate(this.minValue)}if(typeof this.maxValue=="string"){this.maxValue=this.parseDate(this.maxValue)}if(!this.store){var B=this.parseDate(this.minValue);if(!B){B=new Date(this.initDate).clearTime()}var A=this.parseDate(this.maxValue);if(!A){A=new Date(this.initDate).clearTime().add("mi",(24*60)-1)}var C=[];while(B<=A){C.push([B.dateFormat(this.format)]);B=B.add("mi",this.increment)}this.store=new Ext.data.SimpleStore({fields:["text"],data:C});this.displayField="text"}},getValue:function(){var A=Ext.form.TimeField.superclass.getValue.call(this);return this.formatDate(this.parseDate(A))||""},setValue:function(A){Ext.form.TimeField.superclass.setValue.call(this,this.formatDate(this.parseDate(A)))},validateValue:Ext.form.DateField.prototype.validateValue,parseDate:Ext.form.DateField.prototype.parseDate,formatDate:Ext.form.DateField.prototype.formatDate,beforeBlur:function(){var A=this.parseDate(this.getRawValue());if(A){this.setValue(A.dateFormat(this.format))}}});Ext.reg("timefield",Ext.form.TimeField);Ext.form.Label=Ext.extend(Ext.BoxComponent,{onRender:function(B,A){if(!this.el){this.el=document.createElement("label");this.el.id=this.getId();this.el.innerHTML=this.text?Ext.util.Format.htmlEncode(this.text):(this.html||"");if(this.forId){this.el.setAttribute("htmlFor",this.forId)}}Ext.form.Label.superclass.onRender.call(this,B,A)},setText:function(A,B){this.text=A;if(this.rendered){this.el.dom.innerHTML=B!==false?Ext.util.Format.htmlEncode(A):A}return this}});Ext.reg("label",Ext.form.Label);Ext.form.Action=function(B,A){this.form=B;this.options=A||{}};Ext.form.Action.CLIENT_INVALID="client";Ext.form.Action.SERVER_INVALID="server";Ext.form.Action.CONNECT_FAILURE="connect";Ext.form.Action.LOAD_FAILURE="load";Ext.form.Action.prototype={type:"default",run:function(A){},success:function(A){},handleResponse:function(A){},failure:function(A){this.response=A;this.failureType=Ext.form.Action.CONNECT_FAILURE;this.form.afterAction(this,false)},processResponse:function(A){this.response=A;if(!A.responseText){return true}this.result=this.handleResponse(A);return this.result},getUrl:function(C){var A=this.options.url||this.form.url||this.form.el.dom.action;if(C){var B=this.getParams();if(B){A+=(A.indexOf("?")!=-1?"&":"?")+B}}return A},getMethod:function(){return(this.options.method||this.form.method||this.form.el.dom.method||"POST").toUpperCase()},getParams:function(){var A=this.form.baseParams;var B=this.options.params;if(B){if(typeof B=="object"){B=Ext.urlEncode(Ext.applyIf(B,A))}else{if(typeof B=="string"&&A){B+="&"+Ext.urlEncode(A)}}}else{if(A){B=Ext.urlEncode(A)}}return B},createCallback:function(A){var A=A||{};return{success:this.success,failure:this.failure,scope:this,timeout:(A.timeout*1000)||(this.form.timeout*1000),upload:this.form.fileUpload?this.success:undefined}}};Ext.form.Action.Submit=function(B,A){Ext.form.Action.Submit.superclass.constructor.call(this,B,A)};Ext.extend(Ext.form.Action.Submit,Ext.form.Action,{type:"submit",run:function(){var B=this.options;var C=this.getMethod();var A=C=="GET";if(B.clientValidation===false||this.form.isValid()){Ext.Ajax.request(Ext.apply(this.createCallback(B),{form:this.form.el.dom,url:this.getUrl(A),method:C,headers:B.headers,params:!A?this.getParams():null,isUpload:this.form.fileUpload}))}else{if(B.clientValidation!==false){this.failureType=Ext.form.Action.CLIENT_INVALID;this.form.afterAction(this,false)}}},success:function(B){var A=this.processResponse(B);if(A===true||A.success){this.form.afterAction(this,true);return}if(A.errors){this.form.markInvalid(A.errors);this.failureType=Ext.form.Action.SERVER_INVALID}this.form.afterAction(this,false)},handleResponse:function(C){if(this.form.errorReader){var B=this.form.errorReader.read(C);var F=[];if(B.records){for(var D=0,A=B.records.length;D=0){if(!D){C=F-1}D=false;while(C>=0){if(E.call(I||this,J,C,H)===true){return[J,C]}C--}J--}}else{if(C>=F){J++;D=false}while(J","
    ","
    {header}
    ","
    {body}
    ","
    ","
     
    ","
     
    ","")}if(!C.header){C.header=new Ext.Template("","{cells}","
    ")}if(!C.hcell){C.hcell=new Ext.Template("
    ",this.grid.enableHdMenu?"":"","{value}","
    ")}if(!C.body){C.body=new Ext.Template("{rows}")}if(!C.row){C.row=new Ext.Template("
    ","{cells}",(this.enableRowBody?"":""),"
    {body}
    ")}if(!C.cell){C.cell=new Ext.Template("","
    {value}
    ","")}for(var A in C){var B=C[A];if(B&&typeof B.compile=="function"&&!B.compiled){B.disableFormats=true;B.compile()}}this.templates=C;this.colRe=new RegExp("x-grid3-td-([^\\s]+)","")},fly:function(A){if(!this._flyweight){this._flyweight=new Ext.Element.Flyweight(document.body)}this._flyweight.dom=A;return this._flyweight},getEditorParent:function(A){return this.scroller.dom},initElements:function(){var C=Ext.Element;var B=this.grid.getGridEl().dom.firstChild;var A=B.childNodes;this.el=new C(B);this.mainWrap=new C(A[0]);this.mainHd=new C(this.mainWrap.dom.firstChild);if(this.grid.hideHeaders){this.mainHd.setDisplayed(false)}this.innerHd=this.mainHd.dom.firstChild;this.scroller=new C(this.mainWrap.dom.childNodes[1]);if(this.forceFit){this.scroller.setStyle("overflow-x","hidden")}this.mainBody=new C(this.scroller.dom.firstChild);this.focusEl=new C(this.scroller.dom.childNodes[1]);this.focusEl.swallowEvent("click",true);this.resizeMarker=new C(A[1]);this.resizeProxy=new C(A[2])},getRows:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},findCell:function(A){if(!A){return false}return this.fly(A).findParent(this.cellSelector,this.cellSelectorDepth)},findCellIndex:function(C,B){var A=this.findCell(C);if(A&&(!B||this.fly(A).hasClass(B))){return this.getCellIndex(A)}return false},getCellIndex:function(B){if(B){var A=B.className.match(this.colRe);if(A&&A[1]){return this.cm.getIndexById(A[1])}}return false},findHeaderCell:function(B){var A=this.findCell(B);return A&&this.fly(A).hasClass(this.hdCls)?A:null},findHeaderIndex:function(A){return this.findCellIndex(A,this.hdCls)},findRow:function(A){if(!A){return false}return this.fly(A).findParent(this.rowSelector,this.rowSelectorDepth)},findRowIndex:function(A){var B=this.findRow(A);return B?B.rowIndex:false},getRow:function(A){return this.getRows()[A]},getCell:function(B,A){return this.getRow(B).getElementsByTagName("td")[A]},getHeaderCell:function(A){return this.mainHd.dom.getElementsByTagName("td")[A]},addRowClass:function(C,A){var B=this.getRow(C);if(B){this.fly(B).addClass(A)}},removeRowClass:function(C,A){var B=this.getRow(C);if(B){this.fly(B).removeClass(A)}},removeRow:function(A){Ext.removeNode(this.getRow(A));this.focusRow(A)},removeRows:function(C,A){var B=this.mainBody.dom;for(var D=C;D<=A;D++){Ext.removeNode(B.childNodes[C])}this.focusRow(C)},getScrollState:function(){var A=this.scroller.dom;return{left:A.scrollLeft,top:A.scrollTop}},restoreScroll:function(A){var B=this.scroller.dom;B.scrollLeft=A.left;B.scrollTop=A.top},scrollToTop:function(){this.scroller.dom.scrollTop=0;this.scroller.dom.scrollLeft=0},syncScroll:function(){this.syncHeaderScroll();var A=this.scroller.dom;this.grid.fireEvent("bodyscroll",A.scrollLeft,A.scrollTop)},syncHeaderScroll:function(){var A=this.scroller.dom;this.innerHd.scrollLeft=A.scrollLeft;this.innerHd.scrollLeft=A.scrollLeft},updateSortIcon:function(B,A){var D=this.sortClasses;var C=this.mainHd.select("td").removeClass(D);C.item(B).addClass(D[A=="DESC"?1:0])},updateAllColumnWidths:function(){var D=this.getTotalWidth();var H=this.cm.getColumnCount();var F=[];for(var B=0;B=this.ds.getCount()){return}E=(E!==undefined?E:0);var I=this.getRow(P),F;if(!(D===false&&E===0)){while(this.cm.isHidden(E)){E++}F=this.getCell(P,E)}if(!I){return}var L=this.scroller.dom;var O=0;var C=I,M=this.el.dom;while(C&&C!=M){O+=C.offsetTop;C=C.offsetParent}O-=this.mainHd.dom.offsetHeight;var N=O+I.offsetHeight;var A=L.clientHeight;var M=parseInt(L.scrollTop,10);var K=M+A;if(OK){L.scrollTop=N-A}}if(D!==false){var J=parseInt(F.offsetLeft,10);var H=J+F.offsetWidth;var G=parseInt(L.scrollLeft,10);var B=G+L.clientWidth;if(JB){L.scrollLeft=H-L.clientWidth}}}return F?Ext.fly(F).getXY():[L.scrollLeft+this.el.getX(),Ext.fly(I).getY()]},insertRows:function(A,F,C,E){if(!E&&F===0&&C>=A.getCount()-1){this.refresh()}else{if(!E){this.fireEvent("beforerowsinserted",this,F,C)}var B=this.renderRows(F,C);var D=this.getRow(F);if(D){Ext.DomHelper.insertHtml("beforeBegin",D,B)}else{Ext.DomHelper.insertHtml("beforeEnd",this.mainBody.dom,B)}if(!E){this.fireEvent("rowsinserted",this,F,C);this.processRows(F)}}this.focusRow(F)},deleteRows:function(A,C,B){if(A.getRowCount()<1){this.refresh()}else{this.fireEvent("beforerowsdeleted",this,C,B);this.removeRows(C,B);this.processRows(C);this.fireEvent("rowsdeleted",this,C,B)}},getColumnStyle:function(A,C){var B=!C?(this.cm.config[A].css||""):"";B+="width:"+this.getColumnWidth(A)+";";if(this.cm.isHidden(A)){B+="display:none;"}var D=this.cm.config[A].align;if(D){B+="text-align:"+D+";"}return B},getColumnWidth:function(B){var A=this.cm.getColumnWidth(B);if(typeof A=="number"){return(Ext.isBorderBox?A:(A-this.borderWidth>0?A-this.borderWidth:0))+"px"}return A},getTotalWidth:function(){return this.cm.getTotalWidth()+"px"},fitColumns:function(D,G,E){var F=this.cm,S,L,O;var R=F.getTotalWidth(false);var J=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(J<20){return}var B=J-R;if(B===0){return false}var A=F.getColumnCount(true);var P=A-(typeof E=="number"?1:0);if(P===0){P=1;E=undefined}var K=F.getColumnCount();var I=[];var N=0;var M=0;var H;for(O=0;OJ){var Q=P!=A?E:N;F.setColumnWidth(Q,Math.max(1,F.getColumnWidth(Q)-(R-J)),true)}if(D!==true){this.updateAllColumnWidths()}return true},autoExpand:function(B){var G=this.grid,A=this.cm;if(!this.userResized&&G.autoExpandColumn){var D=A.getTotalWidth(false);var H=this.grid.getGridEl().getWidth(true)-this.scrollOffset;if(D!=H){var F=A.getIndexById(G.autoExpandColumn);var E=A.getColumnWidth(F);var C=Math.min(Math.max(((H-D)+E),G.autoExpandMin),G.autoExpandMax);if(C!=E){A.setColumnWidth(F,C,true);if(B!==true){this.updateColumnWidth(F,C)}}}}},getColumnData:function(){var D=[],A=this.cm,E=A.getColumnCount();for(var C=0;C"+this.emptyText+"")}},updateHeaderSortState:function(){var B=this.ds.getSortState();if(!B){return}if(!this.sortState||(this.sortState.field!=B.field||this.sortState.direction!=B.direction)){this.grid.fireEvent("sortchange",this.grid,B)}this.sortState=B;var C=this.cm.findColumnIndex(B.field);if(C!=-1){var A=B.direction;this.updateSortIcon(C,A)}},destroy:function(){if(this.colMenu){this.colMenu.removeAll();Ext.menu.MenuMgr.unregister(this.colMenu);this.colMenu.getEl().remove();delete this.colMenu}if(this.hmenu){this.hmenu.removeAll();Ext.menu.MenuMgr.unregister(this.hmenu);this.hmenu.getEl().remove();delete this.hmenu}if(this.grid.enableColumnMove){var C=Ext.dd.DDM.ids["gridHeader"+this.grid.getGridEl().id];if(C){for(var A in C){if(!C[A].config.isTarget&&C[A].dragElId){var B=C[A].dragElId;C[A].unreg();Ext.get(B).remove()}else{if(C[A].config.isTarget){C[A].proxyTop.remove();C[A].proxyBottom.remove();C[A].unreg()}}if(Ext.dd.DDM.locationCache[A]){delete Ext.dd.DDM.locationCache[A]}}delete Ext.dd.DDM.ids["gridHeader"+this.grid.getGridEl().id]}}Ext.destroy(this.resizeMarker,this.resizeProxy);if(this.dragZone){this.dragZone.unreg()}this.initData(null,null);Ext.EventManager.removeResizeListener(this.onWindowResize,this)},onDenyColumnHide:function(){},render:function(){if(this.autoFill){this.fitColumns(true,true)}else{if(this.forceFit){this.fitColumns(true,false)}else{if(this.grid.autoExpandColumn){this.autoExpand(true)}}}this.renderUI()},initData:function(B,A){if(this.ds){this.ds.un("load",this.onLoad,this);this.ds.un("datachanged",this.onDataChange,this);this.ds.un("add",this.onAdd,this);this.ds.un("remove",this.onRemove,this);this.ds.un("update",this.onUpdate,this);this.ds.un("clear",this.onClear,this)}if(B){B.on("load",this.onLoad,this);B.on("datachanged",this.onDataChange,this);B.on("add",this.onAdd,this);B.on("remove",this.onRemove,this);B.on("update",this.onUpdate,this);B.on("clear",this.onClear,this)}this.ds=B;if(this.cm){this.cm.un("configchange",this.onColConfigChange,this);this.cm.un("widthchange",this.onColWidthChange,this);this.cm.un("headerchange",this.onHeaderChange,this);this.cm.un("hiddenchange",this.onHiddenChange,this);this.cm.un("columnmoved",this.onColumnMove,this);this.cm.un("columnlockchange",this.onColumnLock,this)}if(A){delete this.lastViewWidth;A.on("configchange",this.onColConfigChange,this);A.on("widthchange",this.onColWidthChange,this);A.on("headerchange",this.onHeaderChange,this);A.on("hiddenchange",this.onHiddenChange,this);A.on("columnmoved",this.onColumnMove,this);A.on("columnlockchange",this.onColumnLock,this)}this.cm=A},onDataChange:function(){this.refresh();this.updateHeaderSortState()},onClear:function(){this.refresh()},onUpdate:function(B,A){this.refreshRow(A)},onAdd:function(C,A,B){this.insertRows(C,B,B+(A.length-1))},onRemove:function(D,A,B,C){if(C!==true){this.fireEvent("beforerowremoved",this,B,A)}this.removeRow(B);if(C!==true){this.processRows(B);this.applyEmptyText();this.fireEvent("rowremoved",this,B,A)}},onLoad:function(){this.scrollToTop()},onColWidthChange:function(A,B,C){this.updateColumnWidth(B,C)},onHeaderChange:function(A,B,C){this.updateHeaders()},onHiddenChange:function(A,B,C){this.updateColumnHidden(B,C)},onColumnMove:function(A,D,B){this.indexMap=null;var C=this.getScrollState();this.refresh(true);this.restoreScroll(C);this.afterMove(B)},onColConfigChange:function(){delete this.lastViewWidth;this.indexMap=null;this.refresh(true)},initUI:function(A){A.on("headerclick",this.onHeaderClick,this);if(A.trackMouseOver){A.on("mouseover",this.onRowOver,this);A.on("mouseout",this.onRowOut,this)}},initEvents:function(){},onHeaderClick:function(B,A){if(this.headersDisabled||!this.cm.isSortable(A)){return}B.stopEditing(true);B.store.sort(this.cm.getDataIndex(A))},onRowOver:function(B,A){var C;if((C=this.findRowIndex(A))!==false){this.addRowClass(C,"x-grid3-row-over")}},onRowOut:function(B,A){var C;if((C=this.findRowIndex(A))!==false&&C!==this.findRowIndex(B.getRelatedTarget())){this.removeRowClass(C,"x-grid3-row-over")}},handleWheel:function(A){A.stopPropagation()},onRowSelect:function(A){this.addRowClass(A,"x-grid3-row-selected")},onRowDeselect:function(A){this.removeRowClass(A,"x-grid3-row-selected")},onCellSelect:function(C,B){var A=this.getCell(C,B);if(A){this.fly(A).addClass("x-grid3-cell-selected")}},onCellDeselect:function(C,B){var A=this.getCell(C,B);if(A){this.fly(A).removeClass("x-grid3-cell-selected")}},onColumnSplitterMoved:function(C,B){this.userResized=true;var A=this.grid.colModel;A.setColumnWidth(C,B,true);if(this.forceFit){this.fitColumns(true,false,C);this.updateAllColumnWidths()}else{this.updateColumnWidth(C,B)}this.grid.fireEvent("columnresize",C,B)},handleHdMenuClick:function(C){var B=this.hdCtxIndex;var A=this.cm,D=this.ds;switch(C.id){case"asc":D.sort(A.getDataIndex(B),"ASC");break;case"desc":D.sort(A.getDataIndex(B),"DESC");break;default:B=A.getIndexById(C.id.substr(4));if(B!=-1){if(C.checked&&A.getColumnsBy(this.isHideableColumn,this).length<=1){this.onDenyColumnHide();return false}A.setHidden(B,C.checked)}}return true},isHideableColumn:function(A){return!A.hidden&&!A.fixed},beforeColMenuShow:function(){var A=this.cm,C=A.getColumnCount();this.colMenu.removeAll();for(var B=0;B","
    ",this.groupTextTpl,"
    ","
    ")}this.startGroup.compile();this.endGroup="
    "},findGroup:function(A){return Ext.fly(A).up(".x-grid-group",this.mainBody.dom)},getGroups:function(){return this.hasRows()?this.mainBody.dom.childNodes:[]},onAdd:function(){if(this.enableGrouping&&!this.ignoreAdd){var A=this.getScrollState();this.refresh();this.restoreScroll(A)}else{if(!this.enableGrouping){Ext.grid.GroupingView.superclass.onAdd.apply(this,arguments)}}},onRemove:function(E,A,B,D){Ext.grid.GroupingView.superclass.onRemove.apply(this,arguments);var C=document.getElementById(A._groupId);if(C&&C.childNodes[1].childNodes.length<1){Ext.removeNode(C)}this.applyEmptyText()},refreshRow:function(A){if(this.ds.getCount()==1){this.refresh()}else{this.isUpdating=true;Ext.grid.GroupingView.superclass.refreshRow.apply(this,arguments);this.isUpdating=false}},beforeMenuShow:function(){var C=this.getGroupField();var B=this.hmenu.items.get("groupBy");if(B){B.setDisabled(this.cm.config[this.hdCtxIndex].groupable===false)}var A=this.hmenu.items.get("showGroups");if(A){A.setDisabled(!C&&this.cm.config[this.hdCtxIndex].groupable===false);A.setChecked(!!C,true)}},renderUI:function(){Ext.grid.GroupingView.superclass.renderUI.call(this);this.mainBody.on("mousedown",this.interceptMouse,this);if(this.enableGroupingMenu&&this.hmenu){this.hmenu.add("-",{id:"groupBy",text:this.groupByText,handler:this.onGroupByClick,scope:this,iconCls:"x-group-by-icon"});if(this.enableNoGroups){this.hmenu.add({id:"showGroups",text:this.showGroupsText,checked:true,checkHandler:this.onShowGroupsClick,scope:this})}this.hmenu.on("beforeshow",this.beforeMenuShow,this)}},onGroupByClick:function(){this.grid.store.groupBy(this.cm.getDataIndex(this.hdCtxIndex));this.beforeMenuShow()},onShowGroupsClick:function(A,B){if(B){this.onGroupByClick()}else{this.grid.store.clearGrouping()}},toggleGroup:function(C,B){this.grid.stopEditing(true);C=Ext.getDom(C);var A=Ext.fly(C);B=B!==undefined?B:A.hasClass("x-grid-group-collapsed");this.state[A.dom.id]=B;A[B?"removeClass":"addClass"]("x-grid-group-collapsed")},toggleAllGroups:function(C){var B=this.getGroups();for(var D=0,A=B.length;D=0&&this.config[A].resizable!==false&&this.config[A].fixed!==true},setHidden:function(A,B){var C=this.config[A];if(C.hidden!==B){C.hidden=B;this.totalWidth=null;this.fireEvent("hiddenchange",this,A,B)}},setEditor:function(A,B){this.config[A].editor=B}});Ext.grid.ColumnModel.defaultRenderer=function(A){if(typeof A=="string"&&A.length<1){return" "}return A};Ext.grid.DefaultColumnModel=Ext.grid.ColumnModel;Ext.grid.AbstractSelectionModel=function(){this.locked=false;Ext.grid.AbstractSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.grid.AbstractSelectionModel,Ext.util.Observable,{init:function(A){this.grid=A;this.initEvents()},lock:function(){this.locked=true},unlock:function(){this.locked=false},isLocked:function(){return this.locked}});Ext.grid.RowSelectionModel=function(A){Ext.apply(this,A);this.selections=new Ext.util.MixedCollection(false,function(B){return B.id});this.last=false;this.lastActive=false;this.addEvents("selectionchange","beforerowselect","rowselect","rowdeselect");Ext.grid.RowSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.grid.RowSelectionModel,Ext.grid.AbstractSelectionModel,{singleSelect:false,initEvents:function(){if(!this.grid.enableDragDrop&&!this.grid.enableDrag){this.grid.on("rowmousedown",this.handleMouseDown,this)}else{this.grid.on("rowclick",function(B,D,C){if(C.button===0&&!C.shiftKey&&!C.ctrlKey){this.selectRow(D,false);B.view.focusRow(D)}},this)}this.rowNav=new Ext.KeyNav(this.grid.getGridEl(),{"up":function(C){if(!C.shiftKey){this.selectPrevious(C.shiftKey)}else{if(this.last!==false&&this.lastActive!==false){var B=this.last;this.selectRange(this.last,this.lastActive-1);this.grid.getView().focusRow(this.lastActive);if(B!==false){this.last=B}}else{this.selectFirstRow()}}},"down":function(C){if(!C.shiftKey){this.selectNext(C.shiftKey)}else{if(this.last!==false&&this.lastActive!==false){var B=this.last;this.selectRange(this.last,this.lastActive+1);this.grid.getView().focusRow(this.lastActive);if(B!==false){this.last=B}}else{this.selectFirstRow()}}},scope:this});var A=this.grid.view;A.on("refresh",this.onRefresh,this);A.on("rowupdated",this.onRowUpdated,this);A.on("rowremoved",this.onRemove,this)},onRefresh:function(){var F=this.grid.store,B;var D=this.getSelections();this.clearSelections(true);for(var C=0,A=D.length;C0},isSelected:function(A){var B=typeof A=="number"?this.grid.store.getAt(A):A;return(B&&this.selections.key(B.id)?true:false)},isIdSelected:function(A){return(this.selections.key(A)?true:false)},handleMouseDown:function(D,F,E){if(E.button!==0||this.isLocked()){return}var A=this.grid.getView();if(E.shiftKey&&this.last!==false){var C=this.last;this.selectRange(C,F,E.ctrlKey);this.last=C;A.focusRow(F)}else{var B=this.isSelected(F);if(E.ctrlKey&&B){this.deselectRow(F)}else{if(!B||this.getCount()>1){this.selectRow(F,E.ctrlKey||E.shiftKey);A.focusRow(F)}}}},selectRows:function(C,D){if(!D){this.clearSelections()}for(var B=0,A=C.length;B=A;C--){this.selectRow(C,true)}}},deselectRange:function(C,B,A){if(this.locked){return}for(var D=C;D<=B;D++){this.deselectRow(D,A)}},selectRow:function(B,D,A){if(this.locked||(B<0||B>=this.grid.store.getCount())||this.isSelected(B)){return}var C=this.grid.store.getAt(B);if(C&&this.fireEvent("beforerowselect",this,B,D,C)!==false){if(!D||this.singleSelect){this.clearSelections()}this.selections.add(C);this.last=this.lastActive=B;if(!A){this.grid.getView().onRowSelect(B)}this.fireEvent("rowselect",this,B,C);this.fireEvent("selectionchange",this)}},deselectRow:function(B,A){if(this.locked){return}if(this.last==B){this.last=false}if(this.lastActive==B){this.lastActive=false}var C=this.grid.store.getAt(B);if(C){this.selections.remove(C);if(!A){this.grid.getView().onRowDeselect(B)}this.fireEvent("rowdeselect",this,B,C);this.fireEvent("selectionchange",this)}},restoreLast:function(){if(this._last){this.last=this._last}},acceptsNav:function(C,B,A){return!A.isHidden(B)&&A.isCellEditable(B,C)},onEditorKey:function(F,E){var C=E.getKey(),G,D=this.grid,B=D.activeEditor;var A=E.shiftKey;if(C==E.TAB){E.stopEvent();B.completeEdit();if(A){G=D.walkCells(B.row,B.col-1,-1,this.acceptsNav,this)}else{G=D.walkCells(B.row,B.col+1,1,this.acceptsNav,this)}}else{if(C==E.ENTER){E.stopEvent();B.completeEdit();if(this.moveEditorOnEnter!==false){if(A){G=D.walkCells(B.row-1,B.col,-1,this.acceptsNav,this)}else{G=D.walkCells(B.row+1,B.col,1,this.acceptsNav,this)}}}else{if(C==E.ESC){B.cancelEdit()}}}if(G){D.startEditing(G[0],G[1])}}});Ext.grid.CellSelectionModel=function(A){Ext.apply(this,A);this.selection=null;this.addEvents("beforecellselect","cellselect","selectionchange");Ext.grid.CellSelectionModel.superclass.constructor.call(this)};Ext.extend(Ext.grid.CellSelectionModel,Ext.grid.AbstractSelectionModel,{initEvents:function(){this.grid.on("cellmousedown",this.handleMouseDown,this);this.grid.getGridEl().on(Ext.isIE||Ext.isSafari3?"keydown":"keypress",this.handleKeyDown,this);var A=this.grid.view;A.on("refresh",this.onViewChange,this);A.on("rowupdated",this.onRowUpdated,this);A.on("beforerowremoved",this.clearSelections,this);A.on("beforerowsinserted",this.clearSelections,this);if(this.grid.isEditor){this.grid.on("beforeedit",this.beforeEdit,this)}},beforeEdit:function(A){this.select(A.row,A.column,false,true,A.record)},onRowUpdated:function(A,B,C){if(this.selection&&this.selection.record==C){A.onCellSelect(B,this.selection.cell[1])}},onViewChange:function(){this.clearSelections(true)},getSelectedCell:function(){return this.selection?this.selection.cell:null},clearSelections:function(B){var A=this.selection;if(A){if(B!==true){this.grid.view.onCellDeselect(A.cell[0],A.cell[1])}this.selection=null;this.fireEvent("selectionchange",this,null)}},hasSelection:function(){return this.selection?true:false},handleMouseDown:function(B,D,A,C){if(C.button!==0||this.isLocked()){return}this.select(D,A)},select:function(F,C,B,E,D){if(this.fireEvent("beforecellselect",this,F,C)!==false){this.clearSelections();D=D||this.grid.store.getAt(F);this.selection={record:D,cell:[F,C]};if(!B){var A=this.grid.getView();A.onCellSelect(F,C);if(E!==true){A.focusCell(F,C)}}this.fireEvent("cellselect",this,F,C);this.fireEvent("selectionchange",this,this.selection)}},isSelectable:function(C,B,A){return!A.isHidden(B)},handleKeyDown:function(F){if(!F.isNavKeyPress()){return}var E=this.grid,J=this.selection;if(!J){F.stopEvent();var I=E.walkCells(0,0,1,this.isSelectable,this);if(I){this.select(I[0],I[1])}return}var B=this;var H=function(M,K,L){return E.walkCells(M,K,L,B.isSelectable,B)};var C=F.getKey(),A=J.cell[0],G=J.cell[1];var D;switch(C){case F.TAB:if(F.shiftKey){D=H(A,G-1,-1)}else{D=H(A,G+1,1)}break;case F.DOWN:D=H(A+1,G,1);break;case F.UP:D=H(A-1,G,-1);break;case F.RIGHT:D=H(A,G+1,1);break;case F.LEFT:D=H(A,G-1,-1);break;case F.ENTER:if(E.isEditor&&!E.editing){E.startEditing(A,G);F.stopEvent();return}break}if(D){this.select(D[0],D[1]);F.stopEvent()}},acceptsNav:function(C,B,A){return!A.isHidden(B)&&A.isCellEditable(B,C)},onEditorKey:function(E,D){var B=D.getKey(),F,C=this.grid,A=C.activeEditor;if(B==D.TAB){if(D.shiftKey){F=C.walkCells(A.row,A.col-1,-1,this.acceptsNav,this)}else{F=C.walkCells(A.row,A.col+1,1,this.acceptsNav,this)}D.stopEvent()}else{if(B==D.ENTER){A.completeEdit();D.stopEvent()}else{if(B==D.ESC){D.stopEvent();A.cancelEdit()}}}if(F){C.startEditing(F[0],F[1])}}});Ext.grid.EditorGridPanel=Ext.extend(Ext.grid.GridPanel,{clicksToEdit:2,isEditor:true,detectEdit:false,autoEncode:false,trackMouseOver:false,initComponent:function(){Ext.grid.EditorGridPanel.superclass.initComponent.call(this);if(!this.selModel){this.selModel=new Ext.grid.CellSelectionModel()}this.activeEditor=null;this.addEvents("beforeedit","afteredit","validateedit")},initEvents:function(){Ext.grid.EditorGridPanel.superclass.initEvents.call(this);this.on("bodyscroll",this.stopEditing,this,[true]);if(this.clicksToEdit==1){this.on("cellclick",this.onCellDblClick,this)}else{if(this.clicksToEdit=="auto"&&this.view.mainBody){this.view.mainBody.on("mousedown",this.onAutoEditClick,this)}this.on("celldblclick",this.onCellDblClick,this)}this.getGridEl().addClass("xedit-grid")},onCellDblClick:function(B,C,A){this.startEditing(C,A)},onAutoEditClick:function(C,B){if(C.button!==0){return}var E=this.view.findRowIndex(B);var A=this.view.findCellIndex(B);if(E!==false&&A!==false){this.stopEditing();if(this.selModel.getSelectedCell){var D=this.selModel.getSelectedCell();if(D&&D.cell[0]===E&&D.cell[1]===A){this.startEditing(E,A)}}else{if(this.selModel.isSelected(E)){this.startEditing(E,A)}}}},onEditComplete:function(B,D,A){this.editing=false;this.activeEditor=null;B.un("specialkey",this.selModel.onEditorKey,this.selModel);var C=B.record;var F=this.colModel.getDataIndex(B.col);D=this.postEditValue(D,A,C,F);if(String(D)!==String(A)){var E={grid:this,record:C,field:F,originalValue:A,value:D,row:B.row,column:B.col,cancel:false};if(this.fireEvent("validateedit",E)!==false&&!E.cancel){C.set(F,E.value);delete E.cancel;this.fireEvent("afteredit",E)}}this.view.focusCell(B.row,B.col)},startEditing:function(F,B){this.stopEditing();if(this.colModel.isCellEditable(B,F)){this.view.ensureVisible(F,B,true);var C=this.store.getAt(F);var E=this.colModel.getDataIndex(B);var D={grid:this,record:C,field:E,value:C.data[E],row:F,column:B,cancel:false};if(this.fireEvent("beforeedit",D)!==false&&!D.cancel){this.editing=true;var A=this.colModel.getCellEditor(B,F);if(!A.rendered){A.render(this.view.getEditorParent(A))}(function(){A.row=F;A.col=B;A.record=C;A.on("complete",this.onEditComplete,this,{single:true});A.on("specialkey",this.selModel.onEditorKey,this.selModel);this.activeEditor=A;var G=this.preEditValue(C,E);A.startEdit(this.view.getCell(F,B).firstChild,G)}).defer(50,this)}}},preEditValue:function(A,C){var B=A.data[C];return this.autoEncode&&typeof B=="string"?Ext.util.Format.htmlDecode(B):B},postEditValue:function(C,A,B,D){return this.autoEncode&&typeof C=="string"?Ext.util.Format.htmlEncode(C):C},stopEditing:function(A){if(this.activeEditor){this.activeEditor[A===true?"cancelEdit":"completeEdit"]()}this.activeEditor=null},onDestroy:function(){if(this.rendered){var C=this.colModel.config;for(var B=0,A=C.length;B ",width:20,sortable:false,menuDisabled:true,fixed:true,dataIndex:"",id:"checker",initEvents:function(){Ext.grid.CheckboxSelectionModel.superclass.initEvents.call(this);this.grid.on("render",function(){var A=this.grid.getView();A.mainBody.on("mousedown",this.onMouseDown,this);Ext.fly(A.innerHd).on("mousedown",this.onHdMouseDown,this)},this)},onMouseDown:function(C,B){if(C.button===0&&B.className=="x-grid3-row-checker"){C.stopEvent();var D=C.getTarget(".x-grid3-row");if(D){var A=D.rowIndex;if(this.isSelected(A)){this.deselectRow(A)}else{this.selectRow(A,true)}}}},onHdMouseDown:function(C,A){if(A.className=="x-grid3-hd-checker"){C.stopEvent();var B=Ext.fly(A.parentNode);var D=B.hasClass("x-grid3-hd-checker-on");if(D){B.removeClass("x-grid3-hd-checker-on");this.clearSelections()}else{B.addClass("x-grid3-hd-checker-on");this.selectAll()}}},renderer:function(B,C,A){return"
     
    "}});Ext.LoadMask=function(C,B){this.el=Ext.get(C);Ext.apply(this,B);if(this.store){this.store.on("beforeload",this.onBeforeLoad,this);this.store.on("load",this.onLoad,this);this.store.on("loadexception",this.onLoad,this);this.removeMask=Ext.value(this.removeMask,false)}else{var A=this.el.getUpdater();A.showLoadIndicator=false;A.on("beforeupdate",this.onBeforeLoad,this);A.on("update",this.onLoad,this);A.on("failure",this.onLoad,this);this.removeMask=Ext.value(this.removeMask,true)}};Ext.LoadMask.prototype={msg:"Loading...",msgCls:"x-mask-loading",disabled:false,disable:function(){this.disabled=true},enable:function(){this.disabled=false},onLoad:function(){this.el.unmask(this.removeMask)},onBeforeLoad:function(){if(!this.disabled){this.el.mask(this.msg,this.msgCls)}},show:function(){this.onBeforeLoad()},hide:function(){this.onLoad()},destroy:function(){if(this.store){this.store.un("beforeload",this.onBeforeLoad,this);this.store.un("load",this.onLoad,this);this.store.un("loadexception",this.onLoad,this)}else{var A=this.el.getUpdater();A.un("beforeupdate",this.onBeforeLoad,this);A.un("update",this.onLoad,this);A.un("failure",this.onLoad,this)}}};Ext.ProgressBar=Ext.extend(Ext.BoxComponent,{baseCls:"x-progress",waitTimer:null,initComponent:function(){Ext.ProgressBar.superclass.initComponent.call(this);this.addEvents("update")},onRender:function(D,A){Ext.ProgressBar.superclass.onRender.call(this,D,A);var C=new Ext.Template("
    ","
    ","
    ","
    ","
     
    ","
    ","
    ","
    ","
     
    ","
    ","
    ","
    ");if(A){this.el=C.insertBefore(A,{cls:this.baseCls},true)}else{this.el=C.append(D,{cls:this.baseCls},true)}if(this.id){this.el.dom.id=this.id}var B=this.el.dom.firstChild;this.progressBar=Ext.get(B.firstChild);if(this.textEl){this.textEl=Ext.get(this.textEl);delete this.textTopEl}else{this.textTopEl=Ext.get(this.progressBar.dom.firstChild);var E=Ext.get(B.childNodes[1]);this.textTopEl.setStyle("z-index",99).addClass("x-hidden");this.textEl=new Ext.CompositeElement([this.textTopEl.dom.firstChild,E.dom.firstChild]);this.textEl.setWidth(B.offsetWidth)}this.progressBar.setHeight(B.offsetHeight)},afterRender:function(){Ext.ProgressBar.superclass.afterRender.call(this);if(this.value){this.updateProgress(this.value,this.text)}else{this.updateText(this.text)}},updateProgress:function(B,C){this.value=B||0;if(C){this.updateText(C)}if(this.rendered){var A=Math.floor(B*this.el.dom.firstChild.offsetWidth);this.progressBar.setWidth(A);if(this.textTopEl){this.textTopEl.removeClass("x-hidden").setWidth(A)}}this.fireEvent("update",this,B,C);return this},wait:function(B){if(!this.waitTimer){var A=this;B=B||{};this.updateText(B.text);this.waitTimer=Ext.TaskMgr.start({run:function(C){var D=B.increment||10;this.updateProgress(((((C+D)%D)+1)*(100/D))*0.01)},interval:B.interval||1000,duration:B.duration,onStop:function(){if(B.fn){B.fn.apply(B.scope||this)}this.reset()},scope:A})}return this},isWaiting:function(){return this.waitTimer!=null},updateText:function(A){this.text=A||" ";if(this.rendered){this.textEl.update(this.text)}return this},syncProgressBar:function(){if(this.value){this.updateProgress(this.value,this.text)}return this},setSize:function(A,C){Ext.ProgressBar.superclass.setSize.call(this,A,C);if(this.textTopEl){var B=this.el.dom.firstChild;this.textEl.setSize(B.offsetWidth,B.offsetHeight)}this.syncProgressBar();return this},reset:function(A){this.updateProgress(0);if(this.textTopEl){this.textTopEl.addClass("x-hidden")}if(this.waitTimer){this.waitTimer.onStop=null;Ext.TaskMgr.stop(this.waitTimer);this.waitTimer=null}if(A===true){this.hide()}return this}});Ext.reg("progress",Ext.ProgressBar);Ext.Slider=Ext.extend(Ext.BoxComponent,{vertical:false,minValue:0,maxValue:100,keyIncrement:1,increment:0,clickRange:[5,15],clickToChange:true,animate:true,dragging:false,initComponent:function(){if(this.value===undefined){this.value=this.minValue}Ext.Slider.superclass.initComponent.call(this);this.keyIncrement=Math.max(this.increment,this.keyIncrement);this.addEvents("beforechange","change","changecomplete","dragstart","drag","dragend");if(this.vertical){Ext.apply(this,Ext.Slider.Vertical)}},onRender:function(){this.autoEl={cls:"x-slider "+(this.vertical?"x-slider-vert":"x-slider-horz"),cn:{cls:"x-slider-end",cn:{cls:"x-slider-inner",cn:[{cls:"x-slider-thumb"},{tag:"a",cls:"x-slider-focus",href:"#",tabIndex:"-1",hidefocus:"on"}]}}};Ext.Slider.superclass.onRender.apply(this,arguments);this.endEl=this.el.first();this.innerEl=this.endEl.first();this.thumb=this.innerEl.first();this.halfThumb=(this.vertical?this.thumb.getHeight():this.thumb.getWidth())/2;this.focusEl=this.thumb.next();this.initEvents()},initEvents:function(){this.thumb.addClassOnOver("x-slider-thumb-over");this.mon(this.el,"mousedown",this.onMouseDown,this);this.mon(this.el,"keydown",this.onKeyDown,this);this.focusEl.swallowEvent("click",true);this.tracker=new Ext.dd.DragTracker({onBeforeStart:this.onBeforeDragStart.createDelegate(this),onStart:this.onDragStart.createDelegate(this),onDrag:this.onDrag.createDelegate(this),onEnd:this.onDragEnd.createDelegate(this),tolerance:3,autoStart:300});this.tracker.initEl(this.thumb);this.on("beforedestroy",this.tracker.destroy,this.tracker)},onMouseDown:function(B){if(this.disabled){return}if(this.clickToChange&&B.target!=this.thumb.dom){var A=this.innerEl.translatePoints(B.getXY());this.onClickChange(A)}this.focus()},onClickChange:function(A){if(A.top>this.clickRange[0]&&A.top0){if(A>(C/2)){D=B+(C-A)}else{D=B-A}}return D.constrain(this.minValue,this.maxValue)},afterRender:function(){Ext.Slider.superclass.afterRender.apply(this,arguments);if(this.value!==undefined){var A=this.normalizeValue(this.value);if(A!==this.value){delete this.value;this.setValue(A,false)}else{this.moveThumb(this.translateValue(A),false)}}},getRatio:function(){var A=this.innerEl.getWidth();var B=this.maxValue-this.minValue;return B==0?A:(A/B)},normalizeValue:function(A){if(typeof A!="number"){A=parseInt(A)}A=Math.round(A);A=this.doSnap(A);A=A.constrain(this.minValue,this.maxValue);return A},setValue:function(B,A,C){B=this.normalizeValue(B);if(B!==this.value&&this.fireEvent("beforechange",this,B,this.value)!==false){this.value=B;this.moveThumb(this.translateValue(B),A!==false);this.fireEvent("change",this,B);if(C){this.fireEvent("changecomplete",this,B)}}},translateValue:function(A){var B=this.getRatio();return(A*B)-(this.minValue*B)-this.halfThumb},reverseValue:function(B){var A=this.getRatio();return(B+this.halfThumb+(this.minValue*A))/A},moveThumb:function(B,A){if(!A||this.animate===false){this.thumb.setLeft(B)}else{this.thumb.shift({left:B,stopFx:true,duration:0.35})}},focus:function(){this.focusEl.focus(10)},onBeforeDragStart:function(A){return!this.disabled},onDragStart:function(A){this.thumb.addClass("x-slider-thumb-drag");this.dragging=true;this.dragStartValue=this.value;this.fireEvent("dragstart",this,A)},onDrag:function(A){var B=this.innerEl.translatePoints(this.tracker.getXY());this.setValue(Math.round(this.reverseValue(B.left)),false);this.fireEvent("drag",this,A)},onDragEnd:function(A){this.thumb.removeClass("x-slider-thumb-drag");this.dragging=false;this.fireEvent("dragend",this,A);if(this.dragStartValue!=this.value){this.fireEvent("changecomplete",this,this.value)}},onResize:function(A,B){this.innerEl.setWidth(A-(this.el.getPadding("l")+this.endEl.getPadding("r")));this.syncThumb()},syncThumb:function(){if(this.rendered){this.moveThumb(this.translateValue(this.value))}},getValue:function(){return this.value}});Ext.reg("slider",Ext.Slider);Ext.Slider.Vertical={onResize:function(A,B){this.innerEl.setHeight(B-(this.el.getPadding("t")+this.endEl.getPadding("b")));this.syncThumb()},getRatio:function(){var B=this.innerEl.getHeight();var A=this.maxValue-this.minValue;return B/A},moveThumb:function(B,A){if(!A||this.animate===false){this.thumb.setBottom(B)}else{this.thumb.shift({bottom:B,stopFx:true,duration:0.35})}},onDrag:function(B){var C=this.innerEl.translatePoints(this.tracker.getXY());var A=this.innerEl.getHeight()-C.top;this.setValue(Math.round(A/this.getRatio()),false);this.fireEvent("drag",this,B)},onClickChange:function(B){if(B.left>this.clickRange[0]&&B.left0){this.statusEl.addClass(A);this.currIconCls=A}}else{this.currIconCls=A}return this},showBusy:function(A){if(typeof A=="string"){A={text:A}}A=Ext.applyIf(A||{},{text:this.busyText,iconCls:this.busyIconCls});return this.setStatus(A)}});Ext.reg("statusbar",Ext.StatusBar);Ext.History=(function(){var E,C;var J=false;var D;function F(){var K=top.location.href,L=K.indexOf("#");return L>=0?K.substr(L+1):null}function A(){C.value=D}function G(K){D=K;Ext.History.fireEvent("change",K)}function H(L){var K=["
    ",L,"
    "].join("");try{var N=E.contentWindow.document;N.open();N.write(K);N.close();return true}catch(M){return false}}function B(){if(!E.contentWindow||!E.contentWindow.document){setTimeout(B,10);return}var N=E.contentWindow.document;var L=N.getElementById("state");var K=L?L.innerText:null;var M=F();setInterval(function(){N=E.contentWindow.document;L=N.getElementById("state");var P=L?L.innerText:null;var O=F();if(P!==K){K=P;G(K);top.location.hash=K;M=K;A()}else{if(O!==M){M=O;H(O)}}},50);J=true;Ext.History.fireEvent("ready",Ext.History)}function I(){D=C.value;if(Ext.isIE){B()}else{var K=F();setInterval(function(){var L=F();if(L!==K){K=L;G(K);A()}},50);J=true;Ext.History.fireEvent("ready",Ext.History)}}return{fieldId:"x-history-field",iframeId:"x-history-frame",events:{},init:function(L,K){if(J){Ext.callback(L,K,[this]);return}if(!Ext.isReady){Ext.onReady(function(){Ext.History.init(L,K)});return}C=Ext.getDom(Ext.History.fieldId);if(Ext.isIE){E=Ext.getDom(Ext.History.iframeId)}this.addEvents("ready","change");if(L){this.on("ready",L,K,{single:true})}I()},add:function(K,L){if(L!==false){if(this.getToken()==K){return true}}if(Ext.isIE){return H(K)}else{top.location.hash=K;return true}},back:function(){history.go(-1)},forward:function(){history.go(1)},getToken:function(){return J?D:F()}}})();Ext.apply(Ext.History,new Ext.util.Observable());;(function(){var A=Ext.lib.Ajax,defined=function(test){return typeof test!='undefined';},emptyFn=Ext.emptyFn||function(){},OP=Object.prototype;Ext.lib.Ajax.Queue=function(config){config=config?(config.name?config:{name:config}):{};Ext.apply(this,config,{name:'q-default',priority:5,FIFO:true,callback:null,scope:null,suspended:false,progressive:false});this.requests=new Array();this.pending=false;this.priority=this.priority>9?9:(this.priority<0?0:this.priority);};Ext.extend(Ext.lib.Ajax.Queue,Object,{add:function(req){var permit=A.events?A.fireEvent('beforequeue',this,req):true;if(permit!==false){this.requests.push(req);this.pending=true;A.pendingRequests++;this.manager&&this.manager.start();}},suspended:false,activeRequest:null,next:function(peek){var req=peek?this.requests[this.FIFO?'first':'last']():this.requests[this.FIFO?'shift':'pop']();if(this.requests.length==0){this.pending=false;Ext.isFunction(this.callback)&&this.callback.call(this.scope||null,this);A.events&&A.fireEvent('queueempty',this);} return req||null;},clear:function(){this.suspend();A.pendingRequests-=this.requests.length;this.requests.length=0;this.pending=false;this.resume();this.next();},suspend:function(){this.suspended=true;},resume:function(){this.suspended=false;},requestNext:function(peek){var req;this.activeRequest=null;if(!this.suspended&&(req=this.next(peek))){if(req.active){this.activeRequest=A.request.apply(A,req);A.pendingRequests--;}else{return this.requestNext(peek);}} return this.activeRequest;}});Ext.lib.Ajax.QueueManager=function(config){Ext.apply(this,config||{},{quantas:10,priorityQueues:new Array(new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array(),new Array()),queues:{}});};Ext.extend(Ext.lib.Ajax.QueueManager,Object,{quantas:10,getQueue:function(name){return this.queues[name];},createQueue:function(config){if(!config){return null;} var q=new A.Queue(config);q.manager=this;this.queues[q.name]=q;var pqa=this.priorityQueues[q.priority];pqa&&pqa.indexOf(q.name)==-1&&pqa.push(q.name);return q;},removeQueue:function(q){if(q&&(q=this.getQueue(q.name||q))){q.clear();this.priorityQueues[q.priority].remove(q.name);delete this.queues[q.name];}},start:function(){if(!this.started){this.started=true;this.dispatch();} return this;},suspendAll:function(){forEach(this.queues,function(Q){Q.suspend();});},resumeAll:function(){forEach(this.queues,function(Q){Q.resume();});this.start();},progressive:false,stop:function(){this.started=false;return this;},dispatch:function(){var qm=this,qmq=qm.queues;var quit=(A.activeRequests>A.maxConcurrentRequests);while(A.pendingRequests&&!quit){var disp=function(qName){var q=qmq[qName],AR;while(q&&!q.suspended&&q.pending&&q.requestNext()){quit||(quit=A.activeRequests>A.maxConcurrentRequests);if(quit)break;if(q.progressive||qm.progressive){break;}} if(quit)return false;};forEach(this.priorityQueues,function(pqueue){!!pqueue.length&&forEach(pqueue,disp,this);quit||(quit=A.activeRequests>A.maxConcurrentRequests);if(quit)return false;},this);} if(A.pendingRequests||quit){this.dispatch.defer(this.quantas,this);}else{this.stop();}}});Ext.apply(A,{headers:A.headers||{},defaultPostHeader:A.defaultPostHeader||'application/x-www-form-urlencoded; charset=UTF-8',defaultHeaders:A.defaultHeaders||{},useDefaultXhrHeader:!!A.useDefaultXhrHeader,defaultXhrHeader:'Ext.basex',SCRIPTTAG_POOL:[],poll:{},pollInterval:A.pollInterval||50,queueManager:new A.QueueManager(),queueAll:false,activeRequests:0,pendingRequests:0,maxConcurrentRequests:Ext.isIE?Ext.value(window.maxConnectionsPerServer,2):4,forceActiveX:false,async:true,createXhrObject:function(transactionId,options){var obj={status:{isError:false},tId:transactionId},ecode=null;options||(options={});try{options.xdomain&&window.XDomainRequest&&(obj.conn=new XDomainRequest());if(!defined(obj.conn)&&window.ActiveXObject&&!!Ext.value(options.forceActiveX,this.forceActiveX)){throw("IE7forceActiveX");} obj.conn||(obj.conn=new XMLHttpRequest());}catch(eo){var actX=window.ActiveXObject?(options.multiPart?this.activeXMultipart:this.activeX):null;if(actX){for(var i=0,l=actX.length;i199&&statObj.status<300)));statObj.statusText=reqObj.statusText||'';}catch(e){} return statObj;},handleTransactionResponse:function(o,callback,isAbort,isTimeout){callback=callback||{};var responseObject=null;o.isPart||A.activeRequests--;if(!o.status.isError){o.status=this.getHttpStatus(o.conn,isAbort,isTimeout);responseObject=this.createResponseObject(o,callback.argument,isAbort,isTimeout);} o.isPart||this.releaseObject(o);o.status.isError&&(responseObject=Ext.apply({},responseObject||{},this.createExceptionObject(o.tId,callback.argument,!!isAbort,!!isTimeout,o.status.error)));responseObject.options=o.options;responseObject.fullStatus=o.status;if(!this.events||this.fireEvent('status:'+o.status.status,o.status.status,o,responseObject,callback,isAbort)!==false){if(o.status.isOK&&!o.status.isError){if(!this.events||this.fireEvent('response',o,responseObject,callback,isAbort,isTimeout)!==false){var cb=o.isPart?'onpart':'success';Ext.isFunction(callback[cb])&&callback[cb].call(callback.scope||null,responseObject);}}else{if(!this.events||this.fireEvent('exception',o,responseObject,callback,isAbort,isTimeout,responseObject.fullStatus.error)!==false){Ext.isFunction(callback.failure)&&callback.failure.call(callback.scope||null,responseObject,responseObject.fullStatus.error);}}} return responseObject;},releaseObject:function(o){if(o&&Ext.value(o.tId,-1)+1){if(this.poll[o.tId]){window.clearInterval(this.poll[o.tId]);delete this.poll[o.tId];} if(this.timeout[o.tId]){window.clearInterval(this.timeout[o.tId]);delete this.timeout[o.tId];}} o&&(o.conn=null);},decodeJSON:Ext.decode,reCtypeJSON:/(application|text)\/json/i,reCtypeXML:/(application|text)\/xml/i,createResponseObject:function(o,callbackArg,isAbort,isTimeout){var obj={responseXML:null,responseText:'',responseStream:null,responseJSON:null,contentType:null,getResponseHeader:emptyFn,getAllResponseHeaders:emptyFn};var headerObj={},headerStr='';if(isAbort!==true){try{obj.responseJSON=o.conn.responseJSON||null;obj.responseStream=o.conn.responseStream||null;obj.contentType=o.conn.contentType||null;obj.responseText=o.conn.responseText;}catch(e){o.status.isError=true;o.status.error=e;} try{obj.responseXML=o.conn.responseXML||null;}catch(ex){} try{headerStr=('getAllResponseHeaders'in o.conn?o.conn.getAllResponseHeaders():null)||'';var s;headerStr.split('\n').forEach(function(sHeader){(s=sHeader.split(':'))&&s.first()&&(headerObj[s.first().trim().toLowerCase()]=(s.last()||'').trim());});}catch(ex1){o.status.isError=true;o.status.error=ex1;} finally{obj.contentType=obj.contentType||headerObj['content-type']||'';} if((o.status.isLocal||o.proxied)&&typeof obj.responseText=='string'){o.status.isOK=!o.status.isError&&((o.status.status=(!!obj.responseText.length)?200:404)==200);if(o.status.isOK&&((!obj.responseXML&&this.reCtypeXML.test(obj.contentType))||(obj.responseXML&&obj.responseXML.childNodes.length===0))){var xdoc=null;try{if(window.ActiveXObject){xdoc=new ActiveXObject("MSXML2.DOMDocument.3.0");xdoc.async=false;xdoc.loadXML(obj.responseText);}else{var domParser=null;try{domParser=new DOMParser();xdoc=domParser.parseFromString(obj.responseText,'application\/xml');}catch(exP){}finally{domParser=null;}}}catch(exd){o.status.isError=true;o.status.error=exd;} obj.responseXML=xdoc;} if(obj.responseXML){var parseBad=(obj.responseXML.documentElement&&obj.responseXML.documentElement.nodeName=='parsererror')||(obj.responseXML.parseError||0)!==0||obj.responseXML.childNodes.length===0;parseBad||(obj.contentType=headerObj['content-type']=obj.responseXML.contentType||'text\/xml');}} if(o.options.isJSON||(this.reCtypeJSON&&this.reCtypeJSON.test(headerObj['content-type']||""))){try{Ext.isObject(obj.responseJSON)||(obj.responseJSON=Ext.isFunction(this.decodeJSON)&&Ext.isString(obj.responseText)?this.decodeJSON(obj.responseText):null);}catch(exJSON){o.status.isError=true;o.status.error=exJSON;}}} o.status.proxied=!!o.proxied;Ext.apply(obj,{tId:o.tId,status:o.status.status,statusText:o.status.statusText,contentType:obj.contentType||headerObj['content-type'],getResponseHeader:function(header){return headerObj[(header||'').trim().toLowerCase()];},getAllResponseHeaders:function(){return headerStr;},fullStatus:o.status,isPart:o.isPart||false});o.parts&&!o.isPart&&(obj.parts=o.parts);defined(callbackArg)&&(obj.argument=callbackArg);return obj;},setDefaultPostHeader:function(contentType){this.defaultPostHeader=contentType||'';},setDefaultXhrHeader:function(bool){this.useDefaultXhrHeader=bool||false;},request:function(method,uri,cb,data,options){var O=options=Ext.apply({async:this.async||false,headers:false,userId:null,password:null,xmlData:null,jsonData:null,queue:null,proxied:false,multiPart:false,xdomain:false},options||{});var _to;if(cb.argument&&cb.argument.options&&cb.argument.options.request&&(_to=cb.argument.options.request.arg)){Ext.apply(O,{async:O.async||_to.async,proxied:O.proxied||_to.proxied,multiPart:O.multiPart||_to.multiPart,xdomain:O.xdomain||_to.xdomain,queue:O.queue||_to.queue,onPart:O.onPart||_to.onPart});} if(!this.events||this.fireEvent('request',method,uri,cb,data,O)!==false){if(!O.queued&&(O.queue||(O.queue=this.queueAll||null))){O.queue===true&&(O.queue={name:'q-default'});var oq=O.queue;var qname=oq.name||oq,qm=this.queueManager;var q=qm.getQueue(qname)||qm.createQueue(oq);O.queue=q;O.queued=true;var req=[method,uri,cb,data,O];req.active=true;q.add(req);return{tId:this.transactionId++,queued:true,request:req,options:O};} options.onpart&&(cb.onpart||(cb.onpart=Ext.isFunction(options.onpart)?options.onpart.createDelegate(options.scope):null));O.headers&&forEach(O.headers,function(value,key){this.initHeader(key,value,false);},this);var cType;if(cType=(this.headers?this.headers['Content-Type']||null:null)){delete this.headers['Content-Type'];} if(O.xmlData){cType||(cType='text/xml');method='POST';data=O.xmlData;}else if(O.jsonData){cType||(cType='application/json; charset=utf-8');method='POST';data=Ext.isObject(O.jsonData)?Ext.encode(O.jsonData):O.jsonData;} if(data){cType||(cType=this.useDefaultHeader?this.defaultPostHeader:null);cType&&this.initHeader('Content-Type',cType,false);} return this.makeRequest(O.method||method,uri,cb,data,O);} return null;},getConnectionObject:function(uri,options,data){var o,f;var tId=this.transactionId;options||(options={});try{if(f=options.proxied){o={tId:tId,status:{isError:false},proxied:true,conn:{el:null,send:function(data){var doc=(f.target||window).document,head=doc.getElementsByTagName("head")[0];if(head&&this.el){head.appendChild(this.el.dom);this.readyState=2;}},abort:function(){this.readyState=0;window[o.cbName]=undefined;Ext.isIE||delete window[o.cbName];var d=Ext.getDom(this.el);if(this.el){this.el.removeAllListeners();if(!o.debug){if(Ext.isIE){A.SCRIPTTAG_POOL.push(this.el);}else{this.el.remove();if(d){for(var prop in d){delete d[prop];}}}}} this.el=d=null;},_headers:{},getAllResponseHeaders:function(){var out=[];forEach(this._headers,function(value,name){value&&out.push(name+': '+value);});return out.join('\n');},getResponseHeader:function(header){return this._headers[String(header).toLowerCase()]||'';},onreadystatechange:null,onload:null,readyState:0,status:0,responseText:null,responseXML:null,responseJSON:null},debug:f.debug,params:Ext.isString(options.params)?Ext.urlDecode(options.params):options.params||{},cbName:f.callbackName||'basexCallback'+tId,cbParam:f.callbackParam||null};window[o.cbName]=o.cb=function(content){content&&typeof(content)=='object'&&(this.responseJSON=content);this.responseText=content||null;this.status=!!content?200:404;this.abort();this.readyState=4;Ext.isFunction(this.onreadystatechange)&&this.onreadystatechange();Ext.isFunction(this.onload)&&this.onload();}.createDelegate(o.conn);o.conn.open=function(){if(o.cbParam){o.params[o.cbParam]=o.cbName;} var params=Ext.urlEncode(Ext.apply(Ext.urlDecode(data)||{},o.params,uri.indexOf("?")>-1?Ext.urlDecode(uri.split('?').last()):false));o.uri=params?uri.split('?').first()+'?'+params:uri;this.el=A.monitoredNode(f.tag||'script',{type:f.contentType||"text/javascript",src:o.uri,charset:f.charset||options.charset||null},null,f.target,true);this._headers['content-type']=this.el.dom.type;this.readyState=1;Ext.isFunction(this.onreadystatechange)&&this.onreadystatechange();};options.async=true;}else{o=this.createXhrObject(tId,options);} if(o){this.transactionId++;}}catch(ex3){o&&(o.status.isError=!!(o.status.error=ex3));}finally{return o;}},makeRequest:function(method,uri,callback,postData,options){var o;if(o=this.getConnectionObject(uri,options,postData)){o.options=options;var r=o.conn;try{if(o.status.isError){throw o.status.error};A.activeRequests++;r.open(method.toUpperCase(),uri,options.async,options.userId,options.password);('onreadystatechange'in r)&&(r.onreadystatechange=this.onStateChange.createDelegate(this,[o,callback,'readystate'],0));('onload'in r)&&(r.onload=this.onStateChange.createDelegate(this,[o,callback,'load',4],0));('onprogress'in r)&&(r.onprogress=this.onStateChange.createDelegate(this,[o,callback,'progress'],0));if(callback&&callback.timeout){('timeout'in r)&&(r.timeout=callback.timeout);('ontimeout'in r)&&(r.ontimeout=this.abort.createDelegate(this,[o,callback,true],0));('ontimeout'in r)||(options.async&&(this.timeout[o.tId]=window.setInterval(function(){A.abort(o,callback,true);},callback.timeout)));} if(this.useDefaultXhrHeader&&!options.xdomain){this.defaultHeaders['X-Requested-With']||this.initHeader('X-Requested-With',this.defaultXhrHeader,true);} this.setHeaders(o);if(!this.events||this.fireEvent('beforesend',o,method,uri,callback,postData,options)!==false){r.send(postData||null);}}catch(exr){o.status.isError=true;o.status.error=exr;} if(o.status.isError){return Ext.apply(o,this.handleTransactionResponse(o,callback));} options.async||this.onStateChange(o,callback,'load');return o;}},abort:function(o,callback,isTimeout){o&&Ext.apply(o.status,{isAbort:!!!isTimeout,isTimeout:!!isTimeout,isError:!!isTimeout||!!o.status.isError});if(o&&o.queued&&o.request){o.request.active=o.queued=false;this.events&&this.fireEvent('abort',o,callback);return true;}else if(o&&this.isCallInProgress(o)){if(!this.events||this.fireEvent(isTimeout?'timeout':'abort',o,callback)!==false){'abort'in o.conn&&o.conn.abort();this.handleTransactionResponse(o,callback,o.status.isAbort,o.status.isTimeout);} return true;}else{return false;}},isCallInProgress:function(o){if(o&&o.conn){if('readyState'in o.conn&&{0:true,4:true}[o.conn.readyState]){return false;} return true;} return false;},clearAuthenticationCache:function(url){try{if(Ext.isIE){document.execCommand("ClearAuthenticationCache");}else{var xmlhttp;if(xmlhttp=new XMLHttpRequest()){xmlhttp.open("http://sabsweb.co.uk/GET",url||'/@@',true,"logout","logout");xmlhttp.send("");xmlhttp.abort.defer(100,xmlhttp);}}}catch(e){}},initHeader:function(label,value){(this.headers=this.headers||{})[label]=value;},onStateChange:function(o,callback,mode){if(!o.conn){return;} var C=o.conn,readyState=('readyState'in C?C.readyState:0);if(mode==='load'||readyState>2){var ct;try{ct=C.contentType||C.getResponseHeader('Content-Type')||'';} catch(exRs){} if(ct&&/multipart\//i.test(ct)){var r=null,boundary=ct.split('"')[1],kb='--'+boundary;o.multiPart=true;try{r=C.responseText;}catch(ers){} var p=r?r.split(kb):null;if(p){o.parts||(o.parts=[]);p.shift();p.pop();forEach(Array.slice(p,o.parts.length),function(newPart){var content=newPart.split('\n\n');var H=(content[0]?content[0]:'')+'\n';o.parts.push(this.handleTransactionResponse(Ext.apply(Ext.clone(o),{boundary:boundary,conn:{status:200,responseText:(content[1]||'').trim(),getAllResponseHeaders:function(){return H.split('\n').filter(function(value){return!!value;}).join('\n');}},isPart:true}),callback));},this);}}} (readyState===4||mode==='load')&&A.handleTransactionResponse(o,callback);this.events&&this.fireEvent.apply(this,['readystatechange'].concat(Array.slice(arguments,0)));},setHeaders:function(o){if(o.conn&&'setRequestHeader'in o.conn){this.defaultHeaders&&forEach(this.defaultHeaders,function(value,key){o.conn.setRequestHeader(key,value);});this.headers&&forEach(this.headers,function(value,key){o.conn.setRequestHeader(key,value);});} this.headers={};this.hasHeaders=false;},resetDefaultHeaders:function(){delete this.defaultHeaders;this.defaultHeaders={};this.hasDefaultHeaders=false;},activeXMultipart:['MSXML2.XMLHTTP.6.0','MSXML3.XMLHTTP'],activeX:['MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP']});A.monitoredNode=function(tag,attributes,callback,context,deferred){var node=null,doc=(context||window).document,head=doc?doc.getElementsByTagName("head")[0]:null;if(tag&&doc&&head){node=tag.toUpperCase()=='SCRIPT'&&!!A.SCRIPTTAG_POOL.length?Ext.get(A.SCRIPTTAG_POOL.pop()):null;if(node){node.removeAllListeners();}else{node=Ext.get(doc.createElement(tag));} var ndom=Ext.getDom(node);ndom&&forEach(attributes||{},function(value,attrib){value&&(attrib in ndom)&&ndom.setAttribute(attrib,value);});if(callback){var cb=(callback.success||callback).createDelegate(callback.scope||null,[callback||{}],0);Ext.isIE?node.on('readystatechange',function(){this.dom.readyState=='loaded'&&cb();}):node.on("load",cb);} deferred||ndom.parentNode||head.appendChild(ndom);} return node;};if(Ext.util.Observable){Ext.apply(A,{events:{request:true,beforesend:true,response:true,exception:true,abort:true,timeout:true,readystatechange:true,beforequeue:true,queue:true,queueempty:true},onStatus:function(status,fn,scope,options){var args=Array.slice(arguments,1);status=new Array().concat(status||new Array());forEach(status,function(statusCode){statusCode=parseInt(statusCode,10);if(!isNaN(statusCode)){var ev='status:'+statusCode;this.events[ev]||(this.events[ev]=true);this.on.apply(this,[ev].concat(args));}},this);},unStatus:function(status,fn,scope,options){var args=Array.slice(arguments,1);status=new Array().concat(status||new Array());forEach(status,function(statusCode){statusCode=parseInt(statusCode,10);if(!isNaN(statusCode)){var ev='status:'+statusCode;this.un.apply(this,[ev].concat(args));}},this);}},new Ext.util.Observable());Ext.hasBasex=true;} Ext.stopIteration={stopIter:true};Ext.applyIf(Array.prototype,{map:function(fun,scope){var len=this.length;if(typeof fun!="function"){throw new TypeError();} var res=new Array(len);for(var i=0;i-1&&this[i]!=val){i--;} return i;},unique:function(sorted,exact){var a=new Array();this.forEach(function(value,index){if(0==index||(sorted?a.last()!=value:!a.include(value,exact))){a.push(value);}},this);return a;},grep:function(rePattern,iterFn,scope){var a=new Array();iterFn||(iterFn=function(value){return value;});var fn=scope?iterFn.createDelegate(scope):iterFn;if(typeof rePattern=='string'){rePattern=new RegExp(rePattern);} rePattern instanceof RegExp&&this.forEach(function(value,index){rePattern.test(value)&&a.push(fn(value,index));});return a;},first:function(){return this[0];},last:function(){return this[this.length-1];},clear:function(){this.length=0;},atRandom:function(defValue){var r=Math.floor(Math.random()*this.length);return this[r]||defValue;},clone:function(deep){if(!deep){return this.concat();} var length=this.length||0,t=new Array(length);while(length--){t[length]=Ext.clone(this[length],true);} return t;},forEach:function(block,scope){Array.forEach(this,block,scope);},reversed:function(){var length=this.length||0,t=[];while(length--){t.push(this[length]);} return t;}});window.forEach=function(object,block,context,deep){context=context||object;if(object){if(typeof block!="function"){throw new TypeError();} var resolve=Object;if(object instanceof Function){resolve=Function;}else if(object.forEach instanceof Function){return object.forEach(block,context);}else if(typeof object=="string"){resolve=String;}else if(Ext.isNumber(object.length)){resolve=Array;} return resolve.forEach(object,block,context,deep);}};Ext.clone=function(obj,deep){if(obj===null||obj===undefined){return obj;} if(Ext.isFunction(obj.clone)){return obj.clone(deep);} else if(Ext.isFunction(obj.cloneNode)){return obj.cloneNode(deep);} var o={};forEach(obj,function(value,name,objAll){o[name]=(value===objAll?o:deep?Ext.clone(value,true):value);},obj,deep);return o;};var slice=Array.prototype.slice;var filter=Array.prototype.filter;Ext.applyIf(Array,{slice:function(obj){return slice.apply(obj,slice.call(arguments,1));},filter:function(obj,fn){var t=obj&&typeof obj=='string'?obj.split(''):[];return filter.call(t,fn);},forEach:function(collection,block,scope){if(typeof block!="function"){throw new TypeError();} for(var i=0,l=collection.length;i-1;var isIE9=navigator.userAgent.toLowerCase().indexOf('msie 9')>-1;if(w){el.setWidth(w);}else if(Ext.isIE&&!isIE8&&!isIE9){el.setWidth(this.minWidth);var t=el.dom.offsetWidth;el.setWidth(ul.getWidth()+el.getFrameWidth("lr"));}}});Ext.form.TriggerField.override({afterRender:function(){Ext.form.TriggerField.superclass.afterRender.call(this);}});if((typeof Range!=="undefined")&&!Range.prototype.createContextualFragment){Range.prototype.createContextualFragment=function(html){var frag=document.createDocumentFragment(),div=document.createElement("div");frag.appendChild(div);div.outerHTML=html;return frag;};};if(!("console"in window)||!("firebug"in console)){(function() {window.console={log:function() {logFormatted(arguments,"");},debug:function() {logFormatted(arguments,"debug");},info:function() {logFormatted(arguments,"info");},warn:function() {logFormatted(arguments,"warning");},error:function() {logFormatted(arguments,"error");},assert:function(truth,message) {if(!truth) {var args=[];for(var i=1;i');for(var i=0;i','',escapeHTML(name),'','');appendObject(value,html);html.push('');} html.push('');logRow(html,"dir");},dirxml:function(node) {var html=[];appendNode(node,html);logRow(html,"dirxml");},group:function() {logRow(arguments,"group",pushGroup);},groupEnd:function() {logRow(arguments,"",popGroup);},time:function(name) {timeMap[name]=(new Date()).getTime();},timeEnd:function(name) {if(name in timeMap) {var delta=(new Date()).getTime()-timeMap[name];logFormatted([name+":",delta+"ms"]);delete timeMap[name];}},count:function() {this.warn(["count() not supported."]);},trace:function() {this.warn(["trace() not supported."]);},profile:function() {this.warn(["profile() not supported."]);},profileEnd:function() {},clear:function() {consoleBody.innerHTML="";},open:function() {toggleConsole(true);},close:function() {if(frameVisible) toggleConsole();}};var consoleFrame=null;var consoleBody=null;var commandLine=null;var frameVisible=false;var messageQueue=[];var groupStack=[];var timeMap={};var clPrefix=">>> ";var isFirefox=navigator.userAgent.indexOf("Firefox")!=-1;var isIE=navigator.userAgent.indexOf("MSIE")!=-1;var isOpera=navigator.userAgent.indexOf("Opera")!=-1;var isSafari=navigator.userAgent.indexOf("AppleWebKit")!=-1;function toggleConsole(forceOpen) {frameVisible=forceOpen||!frameVisible;if(consoleFrame) consoleFrame.style.visibility=frameVisible?"visible":"hidden";else waitForBody();} function focusCommandLine() {toggleConsole(true);if(commandLine) commandLine.focus();} function waitForBody() {if(document.body) createFrame();else setTimeout(waitForBody,200);} function createFrame() {if(consoleFrame) return;window.onFirebugReady=function(doc) {window.onFirebugReady=null;var toolbar=doc.getElementById("toolbar");toolbar.onmousedown=onSplitterMouseDown;commandLine=doc.getElementById("commandLine");addEvent(commandLine,"keydown",onCommandLineKeyDown);addEvent(doc,isIE||isSafari?"keydown":"keypress",onKeyDown);consoleBody=doc.getElementById("log");layout();flush();} var baseURL=getFirebugURL();consoleFrame=document.createElement("iframe");consoleFrame.setAttribute("src",baseURL+"/firebug.html");consoleFrame.setAttribute("frameBorder","0");consoleFrame.style.visibility=(frameVisible?"visible":"hidden");consoleFrame.style.zIndex="2147483647";consoleFrame.style.position="fixed";consoleFrame.style.width="100%";consoleFrame.style.left="0";consoleFrame.style.bottom="0";consoleFrame.style.height="200px";document.body.appendChild(consoleFrame);} function getFirebugURL() {var scripts=document.getElementsByTagName("script");for(var i=0;i=consoleBody.scrollHeight;if(!handler) handler=writeRow;handler(message,className);if(isScrolledToBottom) consoleBody.scrollTop=consoleBody.scrollHeight-consoleBody.offsetHeight;} function appendRow(row) {var container=groupStack.length?groupStack[groupStack.length-1]:consoleBody;container.appendChild(row);} function writeRow(message,className) {var row=consoleBody.ownerDocument.createElement("div");row.className="logRow"+(className?" logRow-"+className:"");row.innerHTML=message.join("");appendRow(row);} function pushGroup(message,className) {logFormatted(message,className);var groupRow=consoleBody.ownerDocument.createElement("div");groupRow.className="logGroup";var groupRowBox=consoleBody.ownerDocument.createElement("div");groupRowBox.className="logGroupBox";groupRow.appendChild(groupRowBox);appendRow(groupRowBox);groupStack.push(groupRowBox);} function popGroup() {groupStack.pop();} function logFormatted(objects,className) {var html=[];var format=objects[0];var objIndex=0;if(typeof(format)!="string") {format="";objIndex=-1;} var parts=parseFormat(format);for(var i=0;i":return">";case"&":return"&";case"'":return"'";case'"':return""";} return"?";};return String(value).replace(/[<>&"']/g,replaceChars);} function objectToString(object) {try {return object+"";} catch(exc) {return null;}} function appendText(object,html) {html.push(escapeHTML(objectToString(object)));} function appendNull(object,html) {html.push('',escapeHTML(objectToString(object)),'');} function appendString(object,html) {html.push('"',escapeHTML(objectToString(object)),'"');} function appendInteger(object,html) {html.push('',escapeHTML(objectToString(object)),'');} function appendFloat(object,html) {html.push('',escapeHTML(objectToString(object)),'');} function appendFunction(object,html) {var reName=/function ?(.*?)\(/;var m=reName.exec(objectToString(object));var name=m?m[1]:"function";html.push('',escapeHTML(name),'()');} function appendObject(object,html) {try {if(object==undefined) appendNull("undefined",html);else if(object==null) appendNull("null",html);else if(typeof object=="string") appendString(object,html);else if(typeof object=="number") appendInteger(object,html);else if(typeof object=="function") appendFunction(object,html);else if(object.nodeType==1) appendSelector(object,html);else if(typeof object=="object") appendObjectFormatted(object,html);else appendText(object,html);} catch(exc) {}} function appendObjectFormatted(object,html) {var text=objectToString(object);var reObject=/\[object (.*?)\]/;var m=reObject.exec(text);html.push('',m?m[1]:text,'')} function appendSelector(object,html) {html.push('');html.push('',escapeHTML(object.nodeName.toLowerCase()),'');if(object.id) html.push('#',escapeHTML(object.id),'');if(object.className) html.push('.',escapeHTML(object.className),'');html.push('');} function appendNode(node,html) {if(node.nodeType==1) {html.push('
    ','<',node.nodeName.toLowerCase(),'');for(var i=0;i',attr.nodeName.toLowerCase(),'="',escapeHTML(attr.nodeValue),'"')} if(node.firstChild) {html.push('>
    ');for(var child=node.firstChild;child;child=child.nextSibling) appendNode(child,html);html.push('
    </',node.nodeName.toLowerCase(),'>
    ');} else html.push('/>');} else if(node.nodeType==3) {html.push('
    ',escapeHTML(node.nodeValue),'
    ');}} function addEvent(object,name,handler) {if(document.all) object.attachEvent("on"+name,handler);else object.addEventListener(name,handler,false);} function removeEvent(object,name,handler) {if(document.all) object.detachEvent("on"+name,handler);else object.removeEventListener(name,handler,false);} function cancelEvent(event) {if(document.all) event.cancelBubble=true;else event.stopPropagation();} function onError(msg,href,lineNo) {var html=[];var lastSlash=href.lastIndexOf("/");var fileName=lastSlash==-1?href:href.substr(lastSlash+1);html.push('',msg,'','');logRow(html,"error");};function onKeyDown(event) {if(event.keyCode==123) toggleConsole();else if((event.keyCode==108||event.keyCode==76)&&event.shiftKey&&(event.metaKey||event.ctrlKey)) focusCommandLine();else return;cancelEvent(event);} function onSplitterMouseDown(event) {if(isSafari||isOpera) return;addEvent(document,"mousemove",onSplitterMouseMove);addEvent(document,"mouseup",onSplitterMouseUp);for(var i=0;iv2?1:(v1)((\n|\r|.)*?)(?:<\/script>)/gi,update:function(content,loadScripts,callback,scope){loadScripts=loadScripts||this.getUpdateManager().loadScripts||false;content=Ext.DomHelper.markup(content||'');content=loadScripts===true?content:content.replace(this.scriptRE,"");var doc;if((doc=this.getDocument())&&!!content.length){this._unHook();this._windowContext=this.src=null;this._targetURI=location.href;this.frameInit=true;this.showMask();(function(){this._callBack=typeof callback=='function'?callback.createDelegate(scope):null;doc.open();this._frameAction=true;doc.write(content);doc.close();this.checkDOM();}).defer(10,this);}else{this.hideMask(true);if(callback){callback.call(scope,this);}} return this;},disableMessaging:true,_XFrameMessaging:function(){var tagStack={'$':[]};var isEmpty=function(v,allowBlank){return v===null||v===undefined||(!allowBlank?v==='':false);};window.sendMessage=function(message,tag,origin){var MIF;if(MIF=arguments.callee.manager){if(message._fromHost){var fn,result;var compTag=message.tag||tag||null;var mstack=!isEmpty(compTag)?tagStack[compTag.toLowerCase()]||[]:tagStack["$"];for(var i=0,l=mstack.length;i=0;--j){this.rules[ssRules[j].selectorText]=ssRules[j];}}catch(e){}},getRules:function(refreshCache){if(this.rules==null||refreshCache){this.rules={};if(doc){var ds=doc.styleSheets;for(var i=0,len=ds.length;i1||(code[0]!='&'&&code[code.length-1]!=';')) {if(SABS.CURRENCY_TO_UNICODE[code]){code=SABS.CURRENCY_TO_UNICODE[code];}} return Ext.util.Format.Money(v,code);};renderers.formatRating=function(v) {return v?String.format('{0}',v):'N/A';};renderers.formatPrice=function(v,p,r){if(r.json.Icons){if(r.json.Icons.indexOf('f')>=0){p.css+='x-grid-atol-bound-rule';} else if(r.json.Icons.indexOf('d')>=0){p.css+=' x-pricing-rule';} else if(r.json.Icons.indexOf('n')>=0){p.css+=' x-net-price';}} var curr=r.data.Currency;var txt=''+SABS.Money(v,curr)+'';var sro={Adults:1,Children:0,Infants:0};var rt=r.data.RecType;var journeyType=rt=='HOL'||rt=='JNY'||rt=='FLT';if(journeyType&&(Number(sro.Adults)>1||sro.Children||sro.Infants)){txt+='
    ('+SABS.Money(r.data.ADTPrice,curr)+' pp)';var chd=((Number(sro.Children)||0)+(Number(sro.Infants)||0));if(chd&&r.data.CHDPrice&&r.data.CHDPrice!=r.data.ADTPrice){txt+='
    ('+SABS.Money(r.data.CHDPrice||r.data.ADTPrice,curr)+' pc)';}} return txt;};renderers.formatOperator=function(v,p,r){if(r.data.Operator=='ADH'){return'';} return String.format('',OPERATOR_LOGO_PATH,r.data.Operator,r.data.OperatorFull,v);};renderers.formatDate=function(v){return v?v.dateFormat('D, j M Y'):'';};renderers.formatDateTime=function(v,p,r){if(v){return v.dateFormat('D, j M Y')+'
    '+v.dateFormat('H:i');} return'N/A';};renderers.formatFlightDepartureDateTime=function(v,p,r){if(Number(r.data.LegsCount)){var d=r.data;return[(d.DepDateOut||v).dateFormat('D, j M Y'),'
    ','Dep: ',(d.DepTimeOut||v).dateFormat('H:i'),', Arr: ',(d.ArrTimeOut?d.ArrTimeOut.dateFormat('H:i'):'N/A')].join('');} return renderers.formatDateTime(v,p,r);};renderers.formatFlightReturnDateTime=function(v,p,r){if(Number(r.data.LegsCount)){var d=r.data;return[(d.DepDateIn||v).dateFormat('D, j M Y'),'
    ','Dep: ',(d.DepTimeIn||v).dateFormat('H:i'),', Arr: ',(d.ArrTimeIn?d.ArrTimeIn.dateFormat('H:i'):'N/A')].join('');} return renderers.formatDateTime(v,p,r);};renderers.formatDeparturePoint=function(v,p,r){return String.format('{0}
    {1}',v.split(",")[0],r.data.DepPointOut);};renderers.formatDestinationPoint=function(v,p,r){return String.format('{0}
    {1}',v.split(",")[0],r.data.ArrPointOut);};renderers.formatActions=function(v,p,r){p.css="x-grid-action-cell";var dbvs=r.data.BookableViaSabs;var basket='';var xpress='';var register;if((r.json.Icons||'').indexOf('r')>=0){var opname=r.data.OperatorFull||r.data.Operator;register='';} else{register='';} var direct;var icons=r.json.Icons||'';if(icons.indexOf('v')>=0) {if(r.data.LatesFlag&&r.data.LatesFlag=='L') {direct='';}else {direct='';}} else if(r.json.WebLink&&icons.indexOf('w')>=0){direct='';} else{direct='';} var txt=[basket,xpress,direct,register].join('');return String.format(txt,r.id);};renderers.formatAccommodation=function(v){return v;};renderers.formatRecordType=function(v,p,r){var img,alt,cls,type;switch(v){case'HOL':img='hol';cls='x-grid-recordtype-holiday';alt='Holiday';type='holiday';break;case'ACC':img='acc';cls='x-grid-recordtype-accomm';alt='Accommodation';type='accommodation';break;case'JNY':case'FLT':img='flt';cls='x-grid-recordtype-flight';alt='Flight';type='flight';break;case'PKG':img='hol';cls='x-grid-recordtype-holiday';alt='Fare';type='fare';break;case'TRS':if(r.data.ProductType=='Car Hire'){img='car';cls='x-grid-recordtype-carhire';alt='Car hire';type='carhire';} else{img='trs';cls='x-grid-recordtype-transfer';alt='Transfer';type='transfer';} break;} p.css=cls;var direct;var bookingOrBooked=(r.data.Booking=='Booking item'||r.data.Booking.indexOf('successful')>=0||r.data.BKG.length);var _active=bookingOrBooked?' x-grid-action-inactive':' ';var dlete='';if(type!='fare'){dlete='';} if((r.json.Icons||'').indexOf('v')>=0) {if(r.data.LatesFlag&&r.data.LatesFlag=='L') {direct='';}else {direct='';}} else if((r.json.Icons||'').indexOf('w')>=0){direct='';} var match='';if(v=='HOL'||v=='JNY'){var inactive=(r.data.ExpressBooking||bookingOrBooked)?' x-grid-action-inactive':'';match='';} var txt=[dlete,direct,match].join('');var rv=String.format('
    {0}
    ',alt);return rv+String.format(txt,r.id);};renderers.formatBasketJourney=function(v,p,r){var rt=r.data.RecType;if(rt=='PKG'){return r.data.Description;} else if(rt=='ACC'||rt=='PKG'){p.css='x-grid-notappliccable';return'n/a';} else if(rt=='TRS'){if(r.data.ProductType=='Car Hire'){return String.format('Car type: {0},
    {1},
    {2},
    {3}',r.data.Model,'Doors: '+r.data.Doors?r.data.Doors:'no information',r.data.Auto?'Automatic':'Manual',r.data.Aircon?'Air conditioning':'');} else{return String.format('From airport to hotel
    Time: {0} minutes
    Car type: {1}',r.data.TransferMinutes,r.data.ProductType);}} else{if(Number(r.data.LegsCount)){var d=r.data;return String.format('Out: {0} › {1}
    Dep: {2} {3},
    Arr: {4} {5}
    In: {1} › {0}
    Dep: {6} {7},
    Arr: {8} {9}',d.DepPointOut,d.ArrPointOut,Ext.isDate(d.DepDateOut)?d.DepDateOut.dateFormat('D, j M Y'):'',Ext.isDate(d.DepTimeOut)?d.DepTimeOut.dateFormat('H:i'):'',Ext.isDate(d.ArrDateOut)?d.ArrDateOut.dateFormat('D, j M Y'):'',Ext.isDate(d.ArrTimeOut)?d.ArrTimeOut.dateFormat('H:i'):'',Ext.isDate(d.DepDateIn)?d.DepDateIn.dateFormat('D, j M Y'):'',Ext.isDate(d.DepTimeIn)?d.DepTimeIn.dateFormat('H:i'):'',Ext.isDate(d.ArrDateIn)?d.ArrDateIn.dateFormat('D, j M Y'):'',Ext.isDate(d.ArrTimeIn)?d.ArrTimeIn.dateFormat('H:i'):'');} return String.format('Out: {0} › {1}
    {2}
    In: {1} › {0}
    {3}',r.data.DepPointOut,r.data.ArrPointOut,r.data.DepartureDateTime?r.data.DepartureDateTime.dateFormat('D, j M Y, H:i'):'—',r.data.ReturnDateTime?r.data.ReturnDateTime.dateFormat('D, j M Y, H:i'):'—');}};renderers.formatBasketAccommodation=function(v,p,r){if(r.data.RecType!='ACC'&&r.data.RecType!='HOL'){p.css='x-grid-notappliccable';return'n/a';} else{var rv=String.format('{0}
    ',r.data.HotelName);var detail='';if(r.data.BoardBasis!='AN'){detail+='Board basis: '+r.data.BoardBasis;} if(r.data.Rating){if(detail){detail+=', ';} detail+='Rating: '+r.data.Rating+'';} if(detail){rv+=detail+'
    ';} rv+=r.data.ResortName;if(r.data.RecType=='ACC'){var pr=r.data.PickedRoom;if(typeof pr=='String'){rv+='
    '+r.data.PickedRoom;} else if(Ext.isArray(pr)){for(var i=0,prl=pr.length;i'+pr[i].RoomDesc+', '+pr[i].RateDescription;}} rv+=String.format('
    Check-in: {0};
    Check-out: {1}',r.data.CheckInDate?r.data.CheckInDate.dateFormat('D, j M Y'):'—',r.data.CheckOutDate?r.data.CheckOutDate.dateFormat('D, j M Y'):'—');} return rv;}};renderers.formatBookingPhase=function(v,p,r){var txt;if(r.data.BookableViaSabs!==true){var direct;if(!r.json.Icons){return'';} if(r.json.Icons.indexOf('v')>=0){direct='Book here';} else if(r.json.Icons.indexOf('w')>=0){direct='Book here';} return['

    ','
    ','Not directly bookable via SABS

    ','

    ',direct,'

    '].join('');} else if(v.indexOf('Booking successful')===0){txt=v;if(r.data.BKG){txt+='
    Op.Ref: '+r.data.BKG[0].BookingRef+'';} return'

    '+txt+'

    ';} else if(r.data.BKG instanceof Array){var bkg=r.data.BKG;var bdate=Date.parseDate(bkg[0].ScanDate+bkg[0].ScanTime,'y/m/dHi');var t='Booked at '+bdate.format('d/m/y H:i')+'
    Op.Ref: '+bkg[0].BookingRef+'';return'

    '+t+'

    ';} else if(v===''||v===null||v===false||v===true){if(r.json.Source=='R'&&r.json.ScanDate&&r.json.ScanTime){var d=Date.parseDate(r.json.ScanDate+r.json.ScanTime,'ymdHi');d=d.format('D, j M Y H:i');return'


    Availability confirmed at
    '+d+'

    ';} else{return'


    Availability unconfirmed

    ';}} else if(v=='Confirming availability'||v=='Confirming price'||v=='Booking item'||v=='Quick costing'){return'


    '+v+'

    ';} else if(v=='Booking error'||v=='Booking cancelled'||v=='Connection error'||v=='No alternatives available'){return'


    '+v+'

    ';} else if(v=='Ready to book') {return'

    Book this item

    ';} else if(v=='Pick alternative'){return'

    Item not available

    '+v+'

    ';} else if(v=='Availability confirmed'){txt='

    Do quick costing

    ';txt+='

    Continue booking

    ';return txt;} else if(v=='Quick Costing done'){txt='

    '+v+'

    ';txt+='

    Continue booking

    ';return txt;} else if(v=='Input required'){txt='

    '+v+'

    ';txt+='

    Show form

    ';return txt;} else{return'


    '+v+'

    ';}};renderers.formatBoolean=function(v){return v?'Yes':'No';};renderers.formatLuggage=function(v,p,r){return String.format('small: {0} pcs,
    large: {1} pcs',r.data.SmlLuggage,r.data.LrgLuggage);};renderers.formatBasketPrice=function(v,p,r,ri,ci,store){if((r.json.Icons||'').indexOf('f')>=0){p.css+='x-grid-atol-bound-rule';} var str='',old=false;if(r.data.QTE&&r.data.QTE[0]&&r.data.QTE[0].TotalCost){str='confirmed '+SABS.Money(r.data.QTE[0].TotalCost,r.data.Currency)+'
    ';old=true;} if(r.data.ReturnPrice){p=SABS.Money(r.data.ReturnPrice,r.data.Currency);} else if(r.data.SinglePrice){p=SABS.Money(r.data.SinglePrice,r.data.Currency);} else{p=SABS.Money(v,r.data.Currency);} if(r.data.RecType=='PKG'){SABS.Money(v,r.data.Currency);} if(r.data.QTE&&r.data.QTE[0]&&r.data.RecType!='PKG'){var nprice=Number(r.data.QTE[0].TotalCost);str='confirmed '+SABS.Money(nprice,r.data.Currency)+'
    ';old=true;} str+=old?'':'';str+=p+'';var pp='';var sro=renderers.findPaxDataSource(v,p,r,ri,ci,store);var rt=r.data.RecType;if(!old&&(rt=='HOL'||rt=='JNY'||rt=='FLT')&&(Number(sro.Adults)>1||sro.Children||sro.Infants)){pp+='
    ('+SABS.Money(r.data.ADTPrice,r.data.Currency)+' pp)';var chd=((Number(sro.Children)||0)+(Number(sro.Infants)||0));if(chd&&r.data.CHDPrice&&r.data.CHDPrice!=r.data.ADTPrice){pp+='
    ('+SABS.Money(r.data.CHDPrice||r.data.ADTPrice,r.data.Currency)+' pc)';}} str+=pp;return str;};renderers.findPaxDataSource=function(v,p,r,ri,ci,store){if('Adults'in r.data&&'Children'in r.data&&'Infants'in r.data){return r.data;} if(store.searchRequestObj){return store.searchRequestObj;} if(Ext.isArray(r.data.PAS)){return r.data.PAS[0];}};renderers.bookableGroupRenderer=function(v){return v?'Bookable through SABS':'Not bookable through SABS';};renderers.formatRoomChoice=function(v,m,r){var rm=r.data.AvRooms;if(rm.length&&rm[rm.length-1].length===0){rm.pop();} var rml=rm.length;if(rml>1){m.css='x-grid-room-choice-avail';} if(v){return v;} var rma;var adtp=r.data.ADTPrice;for(var i=0;i=this.minChars)){if(this.lastQuery!=q){this.lastQuery=q;if(this.mode=='local'){this.selectedIndex=-1;if(forceAll){this.store.clearFilter();}else{var lcq=q.toLowerCase();if(lcq.charAt(0)=='*'){lcq=lcq.substring(1);} this.store.filterBy(function(rec,id){if(rec.get(this.valueField).toLowerCase()==lcq){return true;} if(rec.get(this.displayField).toLowerCase().indexOf(lcq)===0){return true;} return false;},this);} this.onLoad();}else{this.store.baseParams[this.queryParam]=q;this.store.load({params:this.getParams(q)});this.expand();}}else{this.selectedIndex=-1;this.onLoad();}}}});Ext.ComponentMgr.registerType('departurecombo',DepartureComboBox);;Ext.apply(Ext.form.VTypes,{daterange:function(val,field){var d=field.parseDate(val);if(!d){return;} if(field.startDateField&&(!this.dateRangeMax||(d.getTime()!=this.dateRangeMax.getTime()))){var start=Ext.getCmp(field.startDateField);start.setMaxValue(d);start.validate();this.dateRangeMax=d;} else if(field.endDateField&&(!this.dateRangeMin||(d.getTime()!=this.dateRangeMin.getTime()))){var end=Ext.getCmp(field.endDateField);end.setMinValue(d);end.validate();this.dateRangeMin=d;} return true;}});;BaseWorker=function(cfg){this.addEvents('start','error','complete');Ext.apply(this,cfg);BaseWorker.superclass.constructor.call(this);};Ext.extend(BaseWorker,Ext.util.Observable,{searchType:null,session:null,extraParams:null,lastResponse:null,start:function(){var type=this.searchType;var conn=this.getConnection();var params=this.getParams(type);this.fireEvent('start',this);conn.request({params:params,callback:this.getResponseHandler(type),scope:this});},getConnection:function(type){if(!this.connection){this.connection=ExtFactory.get('Connection',{url:this.url});} return this.connection;},getResponseHandler:function(){return this.onResponse;},onResponse:function(options,success,response){if(success){this.lastResponse=response.responseText;try{response=ExtFactory.getExt().decode(response.responseText);}catch(e){this.fireEvent('error',this,this.searchType,"CLIENT: Malformed json");return;} if(!Ext.isArray(response)){response=[response];} if(!response[0]) {console.log('empty response');return;} if(response[0].RecType=='ERR'){this.onErrorInHeader(response);} else if(response[0].RecType=='SYS'){this.onOkInHeader(response);} else{this.fireEvent('error',this,this.searchType,"CLIENT: Unknown message");}}else{var stat=response.status;this.fireEvent('error',this,this.searchType,'HTTP '+stat+': '+response.statusText,true);}},onErrorInHeader:function(response){this.fireEvent('error',this,this.searchType,response[0].ErrorText);},onOkInHeader:Ext.emptyFn,getParams:Ext.emptyFn,getApiType:function(type){var apiType=this.SABSConfig.productToApiType[type];if(apiType){return apiType;} throw'product '+type+' has not got apiType assigned';}});;CallWorker=Ext.extend(BaseWorker,{searchParams:null,onOkInHeader:function(response){this.fireEvent('complete',this,this.searchType);},getParams:function(type){var lparams={json:Ext.encode(this.searchParams),search:this.getApiType(type),session:this.session,reqhcached:1,sdays:this.daysEitherSide||0};if(this.extraParams!==null) {Ext.apply(lparams,this.extraParams);} return(lparams);}});;PollWorker=function(cfg){this.addEvents('results');PollWorker.superclass.constructor.call(this,cfg);};Ext.extend(PollWorker,BaseWorker,{searchDate:null,extraParams:null,offset:0,page:null,onOkInHeader:function(response){var result=this.interpretMessageText(response[0].MessageText);this.fireEvent('results',this,this.searchType,response);if(result.finished){this.fireEvent('complete',this,this.searchType);}},interpretMessageText:function(message){var result={};if(message.indexOf('Done')>=0){result.finished=true;} return result;},getParams:function(type){var lparams={session:this.session,'want':this.getWantParam(type),timeout:10,reqhcached:1};if(this.extraParams!==null) {Ext.apply(lparams,this.extraParams);} return lparams;},getWantParam:function(type){var want=this.getApiType(type)+':'+this.offset;if(this.page){want+=':'+this.page;} return want;}});;SerialPollWorker=Ext.extend(PollWorker,{pollRunning:false,ticker:null,delay:2000,repeat:30,start:function(){console.log('SerialPollWorker start:'+this.pollRunning);this.ticker=ExtFactory.get('DelayedTask',this.doAction,this);this.fireEvent('start',this);this.ticker.delay(this.delay);},doAction:function(){console.log('SerialPollWorker doAction:'+this.pollRunning);if(this.pollRunning==false) {this.pollRunning=true;var wkr=this.getPollWorker();this.repeat--;wkr.start();}},getPollWorker:function(){var thisPollWorker=new PollWorker({offset:this.offset,url:this.url,session:this.session,searchType:this.searchType,searchDate:this.searchDate,extraParams:this.extraParams,SABSConfig:this.SABSConfig,listeners:{scope:this,'results':this.onResults,'complete':this.onComplete,'error':this.onError}});return thisPollWorker;},onError:function(wkr,searchType,errorMsg){console.log('SerialPollWorker onError');this.pollRunning=false;if(this.repeat>0){this.ticker.delay(this.delay);}else{this.fireEvent('error',this,searchType,errorMsg);}},onResults:function(wkr,searchType,results){console.log('SerialPollWorker onResults');this.pollRunning=false;this.lastResponse=wkr.lastResponse;this.fireEvent('results',this,searchType,results);this.offset+=results.length;if(results.length>0&&results[0].SessionLookUp) {this.offset--;} if(this.repeat>0){this.ticker.delay(this.delay);}else{this.onComplete();}},onComplete:function(wkr,searchType){console.log('SerialPollWorker onComplete');this.pollRunning=false;this.ticker.cancel();this.fireEvent('complete',this,this.searchType);}});;BookingProcess=function(cfg){this.addEvents('start','error','complete','stagechanged','inputrequired','datachanged','alternatives','beforebook');Ext.apply(this,cfg);this.bookingWorkerConfig=this.bookingWorkerConfig||{};BookingProcess.superclass.constructor.call(this,cfg);this.collectedRecords={};this.jsonString=Ext.encode(this.json);Ext.apply(this.json,this.defaultInput);};Ext.extend(BookingProcess,Ext.util.Observable,{json:null,jsonString:null,recordId:null,session:null,extraParams:null,stage:0,inputRequired:null,lastResponse:null,COMPLETE:3,collectedRecords:null,bookingWorkerConfig:null,peopleUpdated:false,seatsSelected:false,multiRef:null,start:function(sessionReference,multiRef){Ext.Ajax.request({url:'/cgi-bin/SAPS/getSession.pl',params:{basketSess:sessionReference},success:this.onSession,scope:this});if(multiRef) {this.multiRef=multiRef;}},onSession:function(resp,opts){resp=Ext.decode(resp.responseText);this.session=resp.MessageText;this.stage++;this.fireEvent('start',this,this.stage,this.recordId);this.next(this.stage);},getWorker:function(json,stage){json.MsgRef='NoFee';return new BookingWorker(Ext.apply({repeat:30,searchType:this.type,session:this.session,callUrl:'/cgi-bin/SAPS/JSONCall.pl',pollUrl:'/cgi-bin/SAPS/JsponPollwk.pl',extraParams:this.extraParams,bookingStage:stage,SABSConfig:{productToApiType:{taxi:'BT',hotel:'BA',train:'BR',flight:'BS'}},searchParams:json,listeners:{start:this.onWorkerStart,error:this.onWorkerError,results:this.onWorkerResults,complete:this.onWorkerComplete,scope:this}},this.bookingWorkerConfig));},onWorkerStart:function(w,type){if(this.stage==1){}},onWorkerError:function(w,type,err,conn){this.fireEvent('error',this,this.stage,this.recordId,err,conn);},onWorkerResults:function(w,type,results){if(results.length){this.lastResponse=results;var err=this.getError(this.lastResponse);if(err){this.fireEvent('error',this,this.stage,this.recordId,err);w.purgeListeners();}}},onWorkerComplete:function(w,type){var rir=this.requiredInResponse;if(rir){var rectype=rir.match.RecType,match=this.collectMatch(this.lastResponse,rectype,rir.match.matchField,rir.match.matchValue),msg;if(match||this.stage=='3'&&this.hasBKG()){var requiredRecs=rir.records[this.stage.toString()];var optionalRecs=rir.optional[this.stage.toString()];var recs=this.collectRecords(this.lastResponse,requiredRecs,optionalRecs);if(recs){this.collectedRecords[this.stage.toString()]=recs;console.log('completed stage for record '+this.recordId);recs.MATCH=match;this.fireEvent('datachanged',this,this.stage,this.recordId,recs);if(this.stage==this.COMPLETE){this.fireEvent('complete',this,this.recordId);}else{this.stage++;this.next(this.stage);}}else{msg="CLIENT: required records missing";this.fireEvent('error',this,this.stage,this.recordId,msg);}}else{var alts=this.collectRecords(this.lastResponse,[rectype]);if(alts&&alts[rectype].length){this.fireEvent('alternatives',this,this.stage,this.recordId,alts[rectype]);}else{msg="No response from booking server.";this.fireEvent('error',this,this.stage,this.recordId,msg);}}} if(this.stage>3){this.next(++this.stage);}},lastResponseHasOptions:function(){var recs=this.collectRecords(this.lastResponse,['OPT']);return recs!==null;},readyForStage:function(stage){var hasOptions=this.lastResponseHasOptions();var sstr=stage.toString();if(this.inputRequired[sstr]){var prname,prval;for(var i=0,l=this.inputRequired[sstr].length;i=0){if(!this.sharedData[key]){this.sharedData[key]=update;}}},this,{single:true});var win=this.getFormWindow(form);if(this.bookingFormWindows.indexOf(win)<0){var first=this.bookingFormWindows[0];if(!first||first.hidden){this.bookingFormWindows.unshift(win);this.showBookingFormWindow(win);}else{this.bookingFormWindows.push(win);}}}}},this);this.updateBookingAndContinueIfReady(bp,update);},showBookingFormWindow:function(win){if(win.items.get(0).beforeShow){win.items.get(0).beforeShow(win);} win.show();if(win.items.get(0).afterShow){win.items.get(0).afterShow(win);}},updateBookingAndContinueIfReady:function(bp,update){if(update){bp.updateJson(update);} if(bp.readyForStage(bp.stage)){bp.next();}else{}},onBookingDataChanged:function(bp,stage,recId,recs){if(bp.type=='train'&&bp.stage==2&&this.multi_train&&bp.collectedRecords[bp.stage].QTE) {bp.collectedRecords[bp.stage].QTE[0].BookingRef='MULTIPLE:';} var rec=this.store.getById(recId);rec.beginEdit();if(recs.MATCH) {var match=recs.MATCH;var TFR=RecordFactory.getFJS(match);TFR.applyNif(TFR.data,rec.data);delete TFR.data.SearchParams;Ext.apply(rec.data,TFR.data);var newJson=rec.createJson(rec);bp.updateJson(newJson);rec.updateDynamic(rec);} for(var o in recs){if(o in rec.data){rec.set(o,recs[o]);}} if(bp.stage!=3){rec.set("BookingRef","");bp.json.BookingRef='';} if(bp.type=='train'&&bp.stage==2&&this.multi_train&&bp.collectedRecords[bp.stage].QTE) {bp.collectedRecords[bp.stage].QTE[0].BookingRef='MULTIPLE:';} rec.endEdit();this.fireEvent('datachanged',this);},onBookingStageChanged:function(bp,stage,recId){var rec=this.store.getById(recId);if(stage!==0){rec.set("Booking","stage:"+stage);} else if(!((rec.get("Booking")=='complete')||(rec.get("Booking")=='emailing')||(rec.get("Booking")=='inbetween')||(rec.get("Booking")=='booking-cancelled'))) {rec.set("Booking","");}},onBookingBeforeBook:function(bp,recId,callback,scope){console.log('Going to Book');var rec=this.store.getById(recId);rec.set("Booking",'readytobook');return false;},getRequiredData:function(key,input,rec){var val;if(key=='Quotes'||key=='Costs'||key=='Seating'){return input;} if(key=='Railcards'){var bp=this.getBookingProcessByRecord(rec);var discountCodes=(bp.json.DiscountVoucherCodesApplied||'').split(',');var passengers=bp.json.Passengers;for(var person=0,total=passengers.length;person=0;switch(key){case"Passengers":FormConstr=SABS.PaxForm;break;case"Rooms":FormConstr=SABS.RoomsFormROM;break;case"Rooms2":FormConstr=SABS.RoomsForm;break;case"Options":FormConstr=OptionsForm;break;case"Addresses":FormConstr=SABS.AddressForm;break;case"Phones":FormConstr=SABS.PhoneForm;break;case"Seating":FormConstr=SeatingForm;break;} if(common&&this.bookingForms.length){console.log('form doesnt have to be unique');Ext.each(this.bookingForms,function(o){if(o instanceof FormConstr){form=o;if(FormConstr==SABS.PaxForm){console.log('Passengers form');var cfg=this.formatInput(key,val,basicdata);var paxnum=cfg.adults+cfg.children;if(form.adults+form.children!=paxnum){var oldform=form;form=new SABS.PaxForm(cfg,bp);var ncfg=Ext.apply({},cfg);oldform.on('submit',function(f,fdata){console.log('Passenger form got data from existing one');fdata=fdata.slice();Ext.each(fdata,function(o,i,a){a[i]=Ext.applyIf({GroupNum:i+1},o);});form.setData({'Passengers':fdata});console.log('config',ncfg);form.setValues(ncfg);console.log('and got adjusted');},this);this.bookingForms.push(form);console.log('a new Passengers form has been created');console.log('its listeningn to existing fomr submit');}} console.log('found existing form for non-unique data');return false;}},this);console.log('is already created and can be reused? ',form?true:false);} if(!form){console.log('formatting config for ',key,'using input: ',val);var cfg=this.formatInput(key,val,basicdata);cfg.itemType=bp.type;cfg.bp=bp;cfg.clearCache=true;console.log('config for the next form:',cfg);if(FormConstr){form=new FormConstr(cfg,bp);}else{throw'unknown booking data form';} form.setValues(cfg);this.bookingForms.push(form);console.log('created a brand new form, and added to bookingForms array:',this.bookingForms);} return form;},getFormByWindowContainer:function(win){var cmp=win.items.get(0);var form;Ext.each(this.bookingForms,function(o){if(o==cmp||o.get()==cmp){form=o;return false;}});return form;},onContinueBtnPress:function(btn){var win=btn.ownerCt;var form=this.getFormByWindowContainer(win);var data=form.getData();if(data){form.submit();if(this.bookingFormWindows[0]!=win){throw"cancelled booking form window "+win+" wasn't properly registered";} win.hide();this.bookingFormWindows.shift();win.destroy();if(this.bookingFormWindows[0]){this.showBookingFormWindow(this.bookingFormWindows[0]);}}},getFormWindow:function(form){var win;var formcmp=form.get();if(formcmp.ownerCt){win=formcmp.ownerCt;}else{var windowTitle;if(typeof form.windowTitle!=='undefined'){windowTitle=form.windowTitle;} else{windowTitle='Complete Traveller Details';} win=new Ext.Window({title:windowTitle,onContinueBtnPress:this.onContinueBtnPress,closable:false,collapsible:false,plain:false,shadow:false,width:formcmp.width+10||600,items:[formcmp],buttons:[{text:'Continue',handler:this.onContinueBtnPress,scope:this}]});} return win;},formatInput:function(key,val,basicdata){var occ,rooms,adults=0,children=0;if(key=='Rooms'||key=='Rooms2'){occ=basicdata.RoomOcc;if(Ext.isArray(occ)){Ext.each(occ,function(o){adults+=Number(o.Adults)||0;});rooms=occ.length;}else{adults=Number(basicdata.Adults);rooms=1;} return{data:val,adt:adults,rooms:rooms};}else if(key=='Passengers'){occ=basicdata.RoomOcc;if(Ext.isArray(occ)){Ext.each(occ,function(o){adults+=Number(o.Adults)||0;children+=Number(o.Children)||0;children+=Number(o.Infants)||0;});}else{adults=Number(basicdata.Adults);children=Number(basicdata.Children)||0;children+=Number(basicdata.Infants)||0;} return{adults:adults,children:children};}else if(key=='Options'){return{data:val};}else if(key=='Seating'){return{data:basicdata.Legs};}else{return{};}}});;ConsumerBookingProcess=function(cfg) {Ext.apply(this,cfg);ConsumerBookingProcess.superclass.constructor.call(this);};Ext.extend(ConsumerBookingProcess,BookingProcess,{getWorker:function(json,stage){return new BookingWorker(Ext.apply({repeat:10,searchType:this.type,session:this.session,callUrl:'/cgi-bin/SAPS/JSONCall.pl',pollUrl:'/cgi-bin/SAPS/JsponPollwk.pl',extraParams:this.extraParams,bookingStage:stage,SABSConfig:{productToApiType:{carhire:'BC',transfer:'BT',hotel:'BA',train:'BR',flight:'BF',sflight:'BS',holiday:'BH'}},searchParams:json,listeners:{start:this.onWorkerStart,error:this.onWorkerError,results:this.onWorkerResults,complete:this.onWorkerComplete,scope:this}},this.bookingWorkerConfig));},book:function(stage){this.stage=stage||this.stage;var json=this.getJson(this.stage);if(json){var sw=this.getWorker(json,this.stage);if(this.stage===3){sw.start('POLL');}else{sw.start();}}}});;var ConsumerBookingManager=Ext.extend(BookingManager,{start:function(session){if(!this.records.length){} var rec;while(this.records.length){rec=this.records.shift();rec.extraParams=this.extraParams;if(rec.data.Booking!=='complete'){if(session){this.runBookingOldSession(rec,session);}else{this.runBooking(rec);}}}},doBookingStageForRecId:function(recid,stage){var rec=this.store.getById(recid);var bp=this.getBookingProcessByRecord(recid);if(bp){bp.book(stage);rec.set("Booking","stage:3");}else{throw"could not find booking process for record of id: "+recid+' '+bp;}},onBookingBeforeBook:function(bp,recId,callback,scope){var rec=this.store.getById(recId);rec.set("Costs",bp.json.Costs);var ccscs=false;Ext.each(rec.data.Costs,function(o){if(o.CSTDescription==='Credit Card Surcharge'){ccscs=true;return;}});if(!ccscs){var cost=SessionDataProvider.getCosts();if(cost&&cost.keys){var json={RecType:'CST',CSTDescription:cost.keys['bookings.merchantfee_name'],CSTTotal:cost.keys['bookings.merchantfee']};rec.data.Costs.push(json);}else{rec.set("Booking",'error');return false;}} var errata='';Ext.each(rec.data.Costs,function(o){if(typeof o.ErrataCST!='undefined'&&o.ErrataCST!='undefined'&&o.ErrataCST!=''){errata=errata+o.ErrataCST;}});rec.set("Errata",errata);var setPrice=SABSFactory.getItemPrice(undefined,rec.data);rec.set("Price",setPrice);rec.set("FinalPrice",setPrice);rec.set("Booking",'readytobook');this.updateBasketNTE(rec,bp);if(Ext.fly('book-item-action')){Ext.fly('book-item-action').frame("ff0000",3,{duration:1})} if(Ext.fly('costtemplate')){Ext.fly('costtemplate').highlight('eefd06',{endColor:'FFFFFF',duration:3});} return false;},onBookingDataChanged:function(bp,stage,recId,recs){var rec=this.store.getById(recId);rec.beginEdit();if(recs.MATCH){var match=recs.MATCH;var TFR=RecordFactory.getFJS(match);if(bp.stage!=3){TFR.applyNif(TFR.data,rec.data);Ext.applyIf(rec.data,TFR.data);rec.data.Price=TFR.data.Price;delete match.Rooms;bp.updateJson(match);bp.json.TravelCode=rec.data.TravelCode;bp.json.HolidayCode=rec.data.HolidayCode;rec.updateDynamic(rec);}} var hasLoc=false;if(bp.stage!=3){for(var o in recs){if(o in rec.data){rec.set(o,recs[o]);if(o==='LOC'){bp.updateJson({Locations:recs[o]}) hasLoc=true;} if(o==='CST'){bp.updateJson({Costs:recs[o]})}}} if(hasLoc===false&&rec.data.RecType==='TRS'){bp.updateJson({Locations:[{"Context":"CPU","apiRecNum":"API-3","RecType":"LOC","Operator":rec.data.Operator,"Gateway":bp.json.Dep1}]});} if(rec.data.RecType==='TRS'){bp.updateJson({Papers:[{'RecType':'PAP','Type':'DL','Number':'TBA','Value':'UK'}]});} rec.set("BookingRef","");}else{if(recs.BKG[0]&&recs.BKG[0].BookingRef){rec.set("BookingRef",recs.BKG[0].BookingRef);this.updateBasketNTE(rec,bp);}} rec.endEdit();},checkPayment:function(recid){var paymentFinder={ticker:null,rec:null,delay:20000,repeat:15,start:function(bm,recid){this.bm=bm;this.recid=recid;this.ticker=ExtFactory.get('DelayedTask',this.doAction,this);this.ticker.delay(this.delay);},doAction:function(){this.repeat--;SessionDataProvider.retrieveBookingBasketContents(function(response){var r=Ext.decode(response.responseText);var recsToRemove=[];var paid=false;var failed=false;var message;Ext.each(r,function(o){if(o.RecType==='NTE'&&o.Title==='BookingStatus'&&o.Content==='Payment Okay'){paid=true;}else if(o.RecType==='NTE'&&o.Title==='BookingStatus'&&o.Content!='Payment Okay'){failed=true;message=o.Content;}});var rec=this.bm.store.getById(this.recid);if(this.repeat>0&&paid===false&&failed===false){this.ticker.delay(this.delay);if(this.repeat<3){rec.set("Booking","failed-nonpayment-timeout");this.bm.closeBookingWindow();}}else if(failed===true){this.ticker.cancel();if(message.indexOf("Refunded")>=0){rec.set("Booking","failed-failedtobook");}else{rec.set("Booking",message);} this.bm.closeBookingWindow();}else if(paid===false){this.ticker.cancel();rec.set("Booking","failed-failedtobook-nopayment");this.bm.closeBookingWindow();}else{this.ticker.cancel();rec.set("Booking","Paid");this.bm.closeBookingWindow();this.bm.checkConfirmation(this.recid);}},this);}} paymentFinder.start(this,recid);},closeBookingWindow:function(){if(PaymentWindow.instance){PaymentWindow.instance.close();PaymentWindow.instance=null;}},checkConfirmation:function(recid){var confirmationFinder={ticker:null,rec:null,delay:2000,repeat:10,start:function(bm,recid){this.bm=bm;this.recid=recid;this.ticker=ExtFactory.get('DelayedTask',this.doAction,this);this.ticker.delay(this.delay);},doAction:function(){this.repeat--;SessionDataProvider.retrieveBookingBasketContents(function(response){var r=Ext.decode(response.responseText);var recsToRemove=[];var booked=false;var failed=false;Ext.each(r,function(o){if(o.RecType==='NTE'&&o.Title==='BookingComplete'&&o.Content==='Success'){booked=true;}else if(o.RecType==='NTE'&&o.Title==='BookingComplete'&&o.Content==='Failed'){failed=true;}});var rec=this.bm.store.getById(this.recid);if(this.repeat>0&&booked!==true&&failed===false){this.ticker.delay(this.delay);}else if(this.repeat>0&&failed===true){this.ticker.cancel();rec.set("Booking","failed-failedtobook");var button=Ext.get('basket-book-btn');button.setVisible(false);}else if(booked===true){this.ticker.cancel();rec.set("Booking","complete");this.bm.checkBooking(this.recid);}else{this.ticker.cancel();rec.set("Booking","failed-failedtobook");var button=Ext.get('basket-book-btn');button.setVisible(false);}},this);}} confirmationFinder.start(this,recid);},checkBooking:function(recId){var bp=this.getBookingProcessByRecord(recId);bp.book(3);bp.fireEvent('complete',bp);var button=Ext.get('basket-book-btn');button.setVisible(false);},onBookingComplete:function(bp){},updateBasketNTE:function(rec,bp){var json=[];json.push({RecType:'NTE',Title:'BookingStage',Content:Ext.encode({Item:'0',Stage:rec.data.Booking,Session:bp.session,JSON:bp.json})});SessionDataProvider.retrieveBookingBasketContents(function(response){var r=Ext.decode(response.responseText);var recsToRemove=[];Ext.each(r,function(o){if(o.RecType==='NTE'&&o.Title==='BookingStage'){recsToRemove.push(o);}});if(recsToRemove.length>0){SessionDataProvider.deleteFromBookingBasket(recsToRemove,function(){SessionDataProvider.addToBookingBasket(json,function(){});});}else{SessionDataProvider.addToBookingBasket(json,function(){});}});},onBookingError:function(bp,stage,recId,err,conn){var sentBookingErrorEmail=this.sendBookingErrorEmail(bp);var rec=this.store.getById(recId);rec.set("Booking","error");var title=(conn?"Connection":"Booking")+" error";var message=[];if(sentBookingErrorEmail&&site_tel){message=['Sorry, there has been a problem booking your holiday. An email has been sent',' to us and we will contact you shortly. Alternatively if you would like to speak',' to one of our travel advisors now please call: ',site_tel].join('');}else if(sentBookingErrorEmail){message=['Sorry, there has been a problem booking your holiday. An email has been sent',' to us and we will contact you shortly.'].join('');}else if(site_tel){message=['Sorry, there has been a problem booking your holiday. However, this holiday',' may still be available. If you would like to continue with this booking, please',' call one of friendly travel advisors on: ',site_tel].join('');}else{message=['Sorry, there has been a problem booking your holiday.'].join('');} Ext.Msg.alert(title,message);},sendBookingErrorEmail:function(bp){var nessesaryData=false;var data={};if(bp.json.Addresses&&bp.json.Addresses[0]){Ext.each(bp.json.Addresses,function(o){if(o.AddrType==='Addr1'){data.House=o.House||'';data.Address=o.Address||'';data.PostCode=o.PostCode||'';} if(o.AddrType==='Email'){data.Email=o.Address||'';nessesaryData=true;}});} if(nessesaryData){if(bp.json.Phones&&bp.json.Phones[0]){data.Phone=bp.json.Phones[0].AreaCode+' '+bp.json.Phones[0]['Number']||'';} if(bp.json.Passengers&&bp.json.Passengers[0]){data.Title=bp.json.Passengers[0].Title||'';data.Forename=bp.json.Passengers[0].Forename||'';data.Surname=bp.json.Passengers[0].Surname||'';} var contactInfo=SABSFactory.getContactDetailsFormatter()(data);SessionDataProvider.addToBookingBasket(contactInfo,function(){SessionDataProvider.sendBookingErrorEmails(function(){});});return true;} return false;}});;SearchWorker=function(cfg){this.addEvents('start','accepted','error','complete','results');Ext.apply(this,cfg);SearchWorker.superclass.constructor.call(this);};Ext.extend(SearchWorker,Ext.util.Observable,{session:null,extraParams:null,searchType:null,searchParams:null,callUrl:null,pollUrl:null,searchDate:null,daysEitherSide:null,stage:null,repeat:40,pollDelay:3000,lastResponse:null,start:function(stage){if(this.extraParams&&this.extraParams.holistic){delete this.extraParams.holistic;} this.fireEvent('start',this,this.searchType);this.stage=stage||'CALL';this.getWorker().start();},getWorker:function(){var cfg={searchType:this.searchType,session:this.session,SABSConfig:this.SABSConfig};if(this.stage=='CALL'){return new SerialCallWorker(Ext.applyIf({url:this.callUrl,extraParams:this.extraParams,searchParams:this.searchParams,delay:this.pollDelay,repeat:this.repeat,listeners:{complete:this.onCallComplete,error:this.onError,scope:this}},cfg));}else if(this.stage=='POLL'){var searchDate=SearchWorker.getSearchDate(this.searchParams);return new SerialPollWorker(Ext.applyIf({url:this.pollUrl,extraParams:this.extraParams,searchDate:searchDate,delay:this.pollDelay,repeat:this.repeat,listeners:{results:this.onResults,complete:this.onPollComplete,error:this.onError,scope:this}},cfg));}else{throw'unknown search stage';}},onCallComplete:function(worker,product){this.lastResponse=worker.lastResponse;this.fireEvent('accepted',this,product);this.stage='POLL';this.getWorker().start();},onPollComplete:function(worker,product){this.stage='FINISHED';this.fireEvent('complete',this,product);},onResults:function(worker,product,results){this.lastResponse=worker.lastResponse;this.fireEvent('results',this,product,results);},onError:function(worker,product,msg,conn){this.fireEvent('error',this,product,msg,conn);}});SearchWorker.getSearchDate=function(params){var searchDate=Date.parseDate(params.DepDateOut||params.DepDate,'ymd');if(Ext.isDate(searchDate)){return searchDate;} throw'cannot retrieve searchDate from params';};;BookingWorker=Ext.extend(SearchWorker,{pollDelay:3000,getWorker:function(){var cfg={searchType:this.searchType,session:this.session,SABSConfig:this.SABSConfig,extraParams:this.extraParams};var worker;if(this.stage=='CALL'){return new BookingSerialCallWorker(Ext.applyIf({url:this.callUrl,bookingStage:this.bookingStage,searchParams:this.searchParams,extraParams:this.extraParams,listeners:{complete:this.onCallComplete,error:this.onError,scope:this}},cfg));}else if(this.stage=='POLL'){return new BookingSerialPollWorker(Ext.applyIf({url:this.pollUrl,extraParams:this.extraParams,bookingStage:this.bookingStage,delay:this.pollDelay,repeat:this.repeat,listeners:{results:this.onResults,complete:this.onPollComplete,error:this.onError,scope:this}},cfg));}else{throw'unknown search stage';}}});;BookingProcessCreatorFactory={commonInput:['Passengers','Addresses','Phones'],get:function(type){switch(type){case'hotel':return function(r){var roomType var roomInputType if(r.roomType){roomInputType='Rooms';roomType='ROM';}else{roomInputType='Rooms2';roomType='R2M';} var sparms=r.json.SearchParams;var roomOcc;if(sparms.RoomOcc){roomOcc=sparms.RoomOcc;}else{roomOcc=[];for(var i=0,l=Number(sparms.Adults);i=0){result.finished=true;} return result;},getParams:function(type){var lparams={session:this.session,'want':this.getWantParam(type),timeout:10,reqhcached:1};if(this.extraParams!==null) {Ext.apply(lparams,this.extraParams);} return lparams;},getWantParam:function(type){var want=this.getApiType(type)+':'+this.offset;if(this.page){want+=':'+this.page;} return want;}});;BaseWorker=function(cfg){this.addEvents('start','error','complete');Ext.apply(this,cfg);BaseWorker.superclass.constructor.call(this);};Ext.extend(BaseWorker,Ext.util.Observable,{searchType:null,session:null,extraParams:null,lastResponse:null,start:function(){var type=this.searchType;var conn=this.getConnection();var params=this.getParams(type);this.fireEvent('start',this);conn.request({params:params,callback:this.getResponseHandler(type),scope:this});},getConnection:function(type){if(!this.connection){this.connection=ExtFactory.get('Connection',{url:this.url});} return this.connection;},getResponseHandler:function(){return this.onResponse;},onResponse:function(options,success,response){if(success){this.lastResponse=response.responseText;try{response=ExtFactory.getExt().decode(response.responseText);}catch(e){this.fireEvent('error',this,this.searchType,"CLIENT: Malformed json");return;} if(!Ext.isArray(response)){response=[response];} if(!response[0]) {console.log('empty response');return;} if(response[0].RecType=='ERR'){this.onErrorInHeader(response);} else if(response[0].RecType=='SYS'){this.onOkInHeader(response);} else{this.fireEvent('error',this,this.searchType,"CLIENT: Unknown message");}}else{var stat=response.status;this.fireEvent('error',this,this.searchType,'HTTP '+stat+': '+response.statusText,true);}},onErrorInHeader:function(response){this.fireEvent('error',this,this.searchType,response[0].ErrorText);},onOkInHeader:Ext.emptyFn,getParams:Ext.emptyFn,getApiType:function(type){var apiType=this.SABSConfig.productToApiType[type];if(apiType){return apiType;} throw'product '+type+' has not got apiType assigned';}});;RecordFactory=function(){var readers={};var getReader=function(type){if(readers[type]){return readers[type];} var recConstr;if(type=='train'){recConstr=TrainRecord;}else if(type=='hotel'){recConstr=HotelRecord;}else if(type=='taxi'||type=='carhire'){recConstr=TaxiRecord;}else if(type=='flight'||type=='sflight'){recConstr=FlightRecord;}else if(type=='holiday'){recConstr=HolidayRecord;}else if(type=='error'){recConstr=ErrorRecord;} var reader=new Ext.data.JsonReader({root:'results'},recConstr);readers[type]=reader;return reader;};return{get:function(type,cfg){var reader=getReader(type);var rec=reader.readRecords({results:[cfg]}).records[0];return rec;},getFJS:function(cfg){var map={'TRN':'train','TRS':'carhire','ACC':'hotel','JNY':'flight','FLT':'sflight','HOL':'holiday','ERR':'error'};var type=map[cfg.RecType];if(typeof type==='undefined'){return;} else{return this.get(type,cfg);}},combineRecords:function(records){var combined={};var MAIN_RECORD_TYPES=['ACC','TRN','TRS','FLT'];var IGNORE_RECORD_TYPES=['SYS'];Ext.each(records,function(record){if(IGNORE_RECORD_TYPES.indexOf(record.RecType)!==-1){} else if(MAIN_RECORD_TYPES.indexOf(record.RecType)!==-1){if(record.RecType==='TRN'){record=this.get('train',record);record.fields.get('getJourneyLegs').convert(record);record=record.data;} Ext.applyIf(combined,record);} else{if(typeof combined[record.RecType]!=='object'){combined[record.RecType]=[record];}else{combined[record.RecType].push(record);}}},this);if(typeof combined.CNX!=='undefined'&&combined.CNX.length>0){combined.BookingStatus='Cancelled';} else if((typeof combined.BKG!=='undefined')&&(combined.BKG.length>0)){if(typeof combined.BKG[0].Status&&combined.BKG[0].Status) {combined.BookingStatus=combined.BKG[0].Status;} else{combined.BookingStatus='Booked';}} else{combined.BookingStatus='Not Booked';} return combined;}};}();;Ext.override(Ext.data.Record,{updateDynamic:function(cfg){if(cfg.fields&&cfg.fields.get('updateDynamic')&&cfg.fields.get('updateDynamic').convert) {cfg.fields.get('updateDynamic').convert(cfg);}},createJson:function(cfg){if(cfg.fields&&cfg.fields.get('createJson')&&cfg.fields.get('createJson').convert) {return(cfg.fields.get('createJson').convert(cfg));}else {return(cfg.data);}},applyNif:function(o,c){if(o&&c){for(var p in c){if(typeof o[p]==="undefined"||o[p]===null||o[p].length<1||(typeof(o[p])=='object'&&(o[p].length<1))){o[p]=c[p];}}}return o;}});var SABSDataRecord=Ext.applyIf({},Ext.data.Record);;var AccommodationRecord=SABSDataRecord.create([{name:'BookingStatus'},{name:'Currency',type:'string',defaultValue:'GBP'},{name:'Price',mapping:'EstPrice',type:'float'},{name:'TotalPrice',type:'float'},{name:'LocalCurrency',defaultValue:'GBP'},{name:'LocalPrice',mapping:'LocalPrice',type:'float'},{name:'ADTPrice',type:'float'},{name:'id',type:'int'},{name:'OperatorFull'},{name:'Operator'},{name:'CheckInDate',mapping:'ArrDateOut',type:'date',dateFormat:'ymd'},{name:'CheckOutDate',mapping:'DepDateIn',type:'date',dateFormat:'ymd'},{name:'HotelName'},{name:'HolidayCode'},{name:'ResortName'},{name:'BoardBasis'},{name:'DataSource'},{name:'Rating',type:'int'},{name:'Type'},{name:'RecType'},{name:'BrochureImage'},{name:'Nights'},{name:'BrochureDsc'},{name:'ThreeSixtyVideo',mapping:'360Video'},{name:'BookableViaSabs',type:'boolean'},{name:'CST'},{name:'NME'},{name:'QTE'},{name:'OPT'},{name:'ROM'},{name:'R2M',mapping:'RoomDetails'},{name:'BKG'},{name:'CNX'},{name:'PHN',defaultValue:[]},{name:'PAX',defaultValue:[]},{name:'ERA',defaultValue:[]},{name:'PAS',defaultValue:[]},{name:'SYS',defaultValue:[]},{name:'Session'},{name:'Errata'},{name:'AvRooms',mapping:'Rooms'},{name:'PickedRoom',defaultValue:null},{name:'CopyReference'},{name:'Booking'},{name:'ExpressBooking',type:'boolean'},{name:'HotelChain',mapping:'BroName'},{name:'Postcode',mapping:'Postcode'},{name:'Geocode',mapping:'Geocode'},{name:'GuidePriceAge',mapping:'GuidePriceAge'},{name:'PriceType',mapping:'PriceType'},{name:'Preferred',mapping:'Preferred'},{name:'Distance',type:'float'},{name:"TotalCarbonCost",type:"float",defaultValue:0},{name:"TotalManHourCost",type:"float",defaultValue:0},{name:'SearchParams'},{name:'RunAs'},{name:"createJson",convert:function(data) {if(data&&data.data){return(data.data);}}},{name:"SortKey",convert:function(v,rec){return(rec.Preferred==1?'A':'B')+rec.Distance;}},{name:"updateDynamic",convert:function(this_obj){if(this_obj&&this_obj.data&&this_obj.data.PickedRoom&&this_obj.data.PickedRoom.length) {var data=this_obj.data;console.log('tyring to construct from '+data+'---'+this_obj+'---');var price=0;var localPrice=0;Ext.each(data.PickedRoom,function(room){console.log('>>>'+room.MaxPrice+'<<<');price+=Number(room.MaxPrice);localPrice+=Number(room.LocalPrice);});console.log('Price = '+price+'---');this_obj.set('Price',price);this_obj.set('LocalPrice',localPrice);} else if(this_obj&&this_obj.get('ADTPrice')&&this_obj.get('ADTPrice')>0) {this_obj.set('Price',this_obj.get('ADTPrice'));}}}]);var HotelRecord=Ext.extend(AccommodationRecord,{});HotelRecord.prototype.fields.get('Type').defaultValue="hotel";;FlightRecord=SABSDataRecord.create([{name:'adultprice',type:'float'},{name:'totalprice',type:'float'},{name:'airline',type:'string'},{name:'depdate',type:'string'},{name:'returndate',type:'string'},{name:'arrcode',type:'string'},{name:'depcode',type:'string'},{name:'results',defaultValue:[]},{name:'DepartureDateTime',type:'date',dateFormat:'ymdHi'},{name:'ReturnDateTime',type:'date',dateFormat:'ymdHi'},{name:'ArrDateTimeOut',type:'date',dateFormat:'ymdHi'},{name:'ReturnDateTimeDep',type:'date',dateFormat:'ymdHi'},{name:'DepDateOut',type:'date',dateFormat:'ymd'},{name:'DepTimeOut',type:'date',dateFormat:'Hi'},{name:'ArrDateOut',type:'date',dateFormat:'ymd'},{name:'ArrTimeOut',type:'date',dateFormat:'Hi'},{name:'DepDateIn',type:'date',dateFormat:'ymd'},{name:'DepTimeIn',type:'date',dateFormat:'Hi'},{name:'ArrDateIn',type:'date',dateFormat:'ymd'},{name:'ArrTimeIn',type:'date',dateFormat:'Hi'},{name:'Currency',type:'string',defaultValue:'GBP'},{name:'Price',mapping:'EstPrice',type:'float'},{name:'EstPrice',mapping:'EstPrice',type:'float'},{name:'ESTPrice',type:'float'},{name:'ADTPrice',type:'float'},{name:'FareJNYRef',type:'string'},{name:'FLTErrata',type:'string'},{name:'TotalPrice',type:'float'},{name:'GrandTotal',type:'float'},{name:'SinglePrice',mapping:'EstPrice',type:'float'},{name:'GrandTotal',type:'float'},{name:'GrossTotal',type:'float'},{name:'TransactionFee',type:'float'},{name:'HolisticTotal',type:'float',defaultValue:'0'},{name:'CO2Emitted',type:'string'},{name:"TotalCarbonCost",type:"float",defaultValue:0},{name:"TotalManHourCost",type:"float",defaultValue:0},{name:'BookingPolicy'},{name:'BookingPolicyDesc'},{name:'FlightType',type:'string'},{name:'Type'},{name:'fareBasis',type:'string'},{name:'SearchParams'},{name:'Session'},{name:'Adults',type:'int'},{name:'Children',type:'int'},{name:'CHDPrice',type:'float'},{name:'FlightTax',type:'float'},{name:'DataSource'},{name:'BookingRef'},{name:'Operator'},{name:'OperatorFull'},{name:'DepPointOutFull'},{name:'DepPointOut'},{name:'DepPointInFull'},{name:'ArrPointOutFull'},{name:'ArrPointOut'},{name:'ArrPointIn'},{name:'ArrPointInFull'},{name:'FlightNumIn'},{name:'FlightNumOut'},{name:'Nights'},{name:'Type',defaultValue:"flight"},{name:'RecType'},{name:'LatesFlag'},{name:'ThreeSixtyVideo',mapping:'360Video'},{name:'BookableViaSabs',type:'boolean'},{name:'CST'},{name:'NME'},{name:'QTE'},{name:'OPT'},{name:'BKG'},{name:'FLT',defaultValue:[]},{name:'ERA',defaultValue:[]},{name:'PAS',defaultValue:[]},{name:'SYS',defaultValue:[]},{name:'LegDetails',defaultValue:[],convert:function(v,r){var legs=[];if(Ext.isArray(v)){var i=0,l=v.length,f;while(i0) {this_obj.set('Price',this_obj.get('EstPrice'));}}},{name:"createJson",convert:function(rec) {var data=rec.data;if(!data) {return;} var fmt;var json={};for(var o in data){if(o=='json') {continue;} fmt=o.indexOf('Date')>=0?"ymd":"Hi";if(Ext.isDate(data[o])){json[o]=data[o].format(fmt);}else{json[o]=data[o];}} if(json.ReturnArrDate=='88888888') {json.ReturnDepTime=json.ReturnArrTime='8888';} delete json.Adults;delete json.Children;return(json);}}]);;var HolidayRecord=SABSDataRecord.create([{name:'DepartureDateTime',type:'date',dateFormat:'ymdHi'},{name:'ReturnDateTime',type:'date',dateFormat:'ymdHi'},{name:'ArrDateTimeOut',type:'date',dateFormat:'ymdHi'},{name:'ReturnDateTimeDep',type:'date',dateFormat:'ymdHi'},{name:'DepDateOut',type:'date',dateFormat:'ymd'},{name:'DepTimeOut',type:'date',dateFormat:'Hi'},{name:'ArrDateOut',type:'date',dateFormat:'ymd'},{name:'ArrTimeOut',type:'date',dateFormat:'Hi'},{name:'DepDateIn',type:'date',dateFormat:'ymd'},{name:'DepTimeIn',type:'date',dateFormat:'Hi'},{name:'ArrDateIn',type:'date',dateFormat:'ymd'},{name:'ArrTimeIn',type:'date',dateFormat:'Hi'},{name:'Currency',type:'string',defaultValue:'GBP'},{name:'Price',mapping:'EstPrice',type:'float'},{name:'TotalPrice',type:'float'},{name:'ESTPrice',type:'float'},{name:'ADTPrice',type:'float'},{name:'CHDPrice',type:'float'},{name:'CHDMaxAge'},{name:'FlightTax',type:'float'},{name:'DataSource'},{name:'BookingRef'},{name:'Operator'},{name:'OperatorFull'},{name:'DepPointOutFull'},{name:'DepPointOut'},{name:'ArrPointOutFull'},{name:'ArrPointOut'},{name:'ArrPointIn'},{name:'ArrPointInFull'},{name:'FlightNumIn'},{name:'FlightNumOut'},{name:'Nights'},{name:'FlightType'},{name:'Type'},{name:'RecType'},{name:'LatesFlag'},{name:'ThreeSixtyVideo',mapping:'360Video'},{name:'BookableViaSabs',type:'boolean'},{name:'CST'},{name:'NME'},{name:'QTE'},{name:'OPT'},{name:'ROM'},{name:'R2M'},{name:'BKG'},{name:'CNX'},{name:'FLT',defaultValue:[]},{name:'ERA',defaultValue:[]},{name:'PAS',defaultValue:[]},{name:'SYS',defaultValue:[]},{name:'LegDetails',defaultValue:[]},{name:'LegsCount',type:'int'},{name:'Errata'},{name:'CopyReference'},{name:'Booking',mapping:'Booking'},{name:'Session',mapping:'Session'},{name:'ExpressBooking',type:'boolean'},{name:"updateDynamic",convert:function(this_obj){if(this_obj&&this_obj.get('EstPrice')&&this_obj.get('EstPrice')>0) {this_obj.set('Price',this_obj.get('EstPrice'));}}},{name:'Availability'},{name:'Rating'},{name:'TravelCode'},{name:'SABSResortCode'},{name:'ResortName'},{name:'SABSHotelCode'},{name:'HotelName'},{name:'BoardBasis'},{name:'HolidayCode'},{name:'ResortFeatures'},{name:'AccomFeatures'},{name:'BrochureCode'},{name:'BroPage'},{name:'CarrierName'},{name:'ProductName'},{name:'DiscountID'},{name:'DiscountRule'},{name:'DiscountID'},{name:'DiscountGRP'},{name:'DiscountADT'},{name:'DiscountCHD'},{name:'DiscountBKG'},{name:'LatesFlag'}]);;var TaxiRecord=SABSDataRecord.create([{name:'BookingStatus'},{name:'Currency',type:'string',defaultValue:'GBP'},{name:'Price',type:'float',mapping:'SinglePrice'},{name:'Passengers',type:'int'},{name:'TotalPrice',type:'float'},{name:'SinglePrice',type:'float'},{name:'ReturnPrice',type:'float'},{name:'TotalManHourCost',type:'float',defaultValue:0},{name:'TotalCarbonCost',type:'float',defaultValue:0},{name:'OperatorFull'},{name:'Operator'},{name:'TransferMinutes'},{name:'ProductType'},{name:'DataSource'},{name:'ProductDescription'},{name:'ProductImagePath'},{name:'Nights'},{name:'MaxPax'},{name:'CO2',type:'float'},{name:'Type',defaultValue:'taxi'},{name:'RecType'},{name:'BookableViaSabs',type:'boolean'},{name:'Doors',defaultValue:'U'},{name:'Luggage',mapping:'TotLuggage',defaultValue:'U'},{name:'LrgLuggage',defaultValue:'U'},{name:'SmlLuggage',defaultValue:'U'},{name:'LOC',defaultValue:[]},{name:'PAX',defaultValue:[]},{name:'BKG'},{name:'CNX'},{name:'RunAs'},{name:'Session'},{name:'Errata'},{name:'DistanceTravelled',type:'float'},{name:'PickUpDate'},{name:'PickUpTime'},{name:'SearchParams'},{name:"createJson",convert:function(data) {if(data&&data.data) {return(data.data);}}},{name:"updateDynamic",convert:function(this_obj){if(this_obj&&this_obj.get('SinglePrice')) {this_obj.set('Price',this_obj.get('SinglePrice'));}}}]);;Ext.namespace('SABS','SABS.SearchWorker');SABS.SearchWorker=function(cfg){this.addEvents({'searchstarted':true,'searchfinished':true,'resultsreturned':true,'nothingreturned':true,'searcherror':true,'connectionerror':true,'longintervalstarted':true});var df=SABS.SearchWorker.defaultFilters;var dp=SABS.SearchWorker.defaultProcessors;var idp=SABS.SearchWorker.defaultInputProcessors;if(Ext.isArray(cfg.resultFilters)){cfg.resultFilters=cfg.resultFilters.concat(df);} else{cfg.resultFilters=df;} if(Ext.isArray(cfg.resultProcessors)){cfg.resultProcessors=cfg.resultProcessors.concat(dp);} else{cfg.resultProcessors=dp;} if(Ext.isArray(cfg.inputProcessors)){cfg.inputProcessors=cfg.inputProcessors.concat(idp);} else{cfg.inputProcessors=idp;} Ext.apply(this,cfg);SABS.SearchWorker.superclass.constructor.call(this);this.interval=this.shortInterval;};Ext.extend(SABS.SearchWorker,Ext.util.Observable,{CALL:'call_request',CALL_OK:'call_ok',CALL_ERR:'call_error',POLL:'poll_request',POLL_OK:'poll_ok',POLL_END:'poll_end',session:null,daysEitherSide:null,requestObject:null,searchTypes:{},callUrl:null,pollUrl:null,priorityType:null,connection:null,connectionConfig:{url:null,method:'GET',timeout:SABS.DEFAULT_HTTP_REQUEST_TIMEOUT,extraParams:{}},interval:null,shortInterval:3000,longInterval:30000,longIntervalAfter:60000,endProcessAfter:120000,delayedTask:new Ext.util.DelayedTask(),secondStageDelay:new Ext.util.DelayedTask(),endProcessDelay:new Ext.util.DelayedTask(),dateTrack:0,cached:false,origCfg:null,inputProcessors:[],resultFilters:[],resultProcessors:[],inputFilters:[],numRegexp:/\d+/g,stRegexp:/expandgrid|grid|package|accom|flightc|flightb|flight|taxi|car|villa|boat/,search:function() {this.secondStageDelay.delay(this.longIntervalAfter,this.toSecondStage,this);this.endProcessDelay.delay(this.endProcessAfter,this.die,this);var t=this.priorityType;var pt;for(var i=0,sl=this.searchTypes.length;i=0){buffer={msg:[],events:['searcherror'],text:rec.ErrorText,type:stype};} else{buffer=null;}} else if(rec.RecType=='SYS'){if(buffer){this.doBuffer(buffer);} this.lastSYSHeader=rec;types=rec.MessageText.match(this.stRegexp);if(types instanceof Array){atype=types[0];stype=this.getTypeFromJsonResponseType(atype);} else{stype='';} if(vt.indexOf(atype)>=0){txt=rec.MessageText;if(txt.indexOf('Done, Nothing to return')>=0){buffer={msg:[],events:['nothingreturned','searchfinished'],type:stype};} else if(txt.indexOf('Returning ALL records Done')>=0){buffer={msg:[],events:['resultsreturned','searchfinished'],type:stype};} else if(txt.indexOf('Waiting')>=0){buffer={msg:[],events:['nothingreturned'],type:stype};} var matches=rec.MessageText.match(this.numRegexp);if(Ext.isArray(matches)){this.resultTotal=matches[1];var done=(txt.indexOf('Done')>=0)?true:false;if(matches[0]===0){buffer={msg:[],events:['nothingreturned'],type:stype};} else{buffer={msg:[],events:['resultsreturned'],type:stype};} if(done){buffer.events.push('searchfinished');}}} else{buffer=null;}} else if(buffer){if(Ext.isArray(this.resultFilters)){rec=this.applyResultTransformations(this.applyResultTransformations(rec,this.resultFilters),this.resultProcessors);} if(rec){rec.PAS=[{'ErrorStatus':'1','RecType':'PAS','RecNum':'','Adults':this.requestObject.Adults,'Children':this.requestObject.Children,'Infants':this.requestObject.Infants}];rec.SYS=[this.lastSYSHeader];rec.ID=++SABS.SearchWorker.SABSAgentRecId;buffer.msg.push(rec);if(rec.Source=='M'&&rec.RecType!='GRD'){buffer.events.push('searchfinished');}}}} if(buffer){this.doBuffer(buffer);}},applyResultTransformations:function(rec,fns){if(rec){var i=0,l=fns.length;while(i=0) {txt=rec.MessageText;if(txt.indexOf('Done, Nothing to return')>=0) {buffer={msg:[],events:['nothingreturned','searchfinished'],type:stype,mcode:mcode};} else if(txt.indexOf('Returning ALL records Done')>=0) {buffer={msg:[this.lastSYSHeader],events:['resultsreturned','searchfinished'],type:stype,mcode:mcode};} else if(txt.indexOf('Waiting')>=0) {buffer={msg:[],events:['nothingreturned'],type:stype,mcode:mcode};} else{var matches=rec.MessageText.match(this.numRegexp);if(matches) {this.resultTotal=matches[1];var done=(txt.indexOf('Done')>=0)?true:false;if(matches[0]===0) {buffer={msg:[],events:['nothingreturned'],type:stype,mcode:mcode};} else {buffer={msg:[this.lastSYSHeader],events:['resultsreturned'],type:stype,mcode:mcode};} if(done) {buffer.events.push('searchfinished');}}}} else{buffer=null;}} else if(rec.RecType=='ERR') {if(buffer){this.doBuffer(buffer);} if(rec.ErrorText=='Busy') {Ext.Msg.alert('Server busy','Try later');} atype=rec.System;stype=this.getTypeFromJsonResponseType(atype);buffer={msg:[],events:['searcherror'],text:rec.ErrorText,type:stype,mcode:rec.ErrorCode};} else if(buffer) {rec=this.applyResultTransformations(rec,this.resultProcessors);rec.ID=++SABS.SearchWorker.SABSAgentRecId;buffer.msg.push(rec);}} if(buffer){this.buffers.push(buffer);this.doBuffer(buffer);}},doBuffer:function(buffer) {var _item_=this.searchTypes[0];var be=buffer.events;for(j=0;j=0&&'THL|FSH|LCP'.indexOf(rec.Operator)<0) {rec.BookableViaSabs=true;} else{rec.BookableViaSabs=false;} return rec;},setCurrency:function(rec){var sconf=SABS.Config;if(!rec.Currency){var curr;if(rec.DepPointOut){curr=sconf.CountryToCurrency[sconf.AirportToCountry[rec.DepPointOut]];} rec.Currency=curr?curr:'GBP';} return rec;},setPrice:function(rec){var pfnames=['EstPrice','SinglePrice','ReturnPrice'];var i=0;var pfl=pfnames.length;var pfn;while(i0&&(bp===0||bp>v)){bp=v;}}} if(bp){rec.BestPrice=bp;}} return rec;}};SABS.SearchWorker.defaultProcessors=[SABS.SearchWorker.resultProcessors.setType,SABS.SearchWorker.resultProcessors.setPrice,SABS.SearchWorker.resultProcessors.setDateTimes,SABS.SearchWorker.resultProcessors.setViaSabsBookability,SABS.SearchWorker.resultProcessors.setCurrency,SABS.SearchWorker.resultProcessors.setPassengersInWeblink,SABS.SearchWorker.resultProcessors.setLegsDates,SABS.SearchWorker.resultProcessors.setBestPrice];SABS.SearchWorker.resultFilters={filterLimousines:function(rec){return(SABS.SearchWorker.Tests.isTransferLimousineType(rec))?null:rec;},filterTaxis:function(rec){return(SABS.SearchWorker.Tests.isTransferLimousineType(rec))?rec:null;},filterGridResultsWithoutPrices:function(rec){if(SABS.SearchWorker.Tests.isGridType(rec)){var f=['Price12','Price34','PriceAI','PriceBB','PriceFB','PriceHB','PriceSC'];for(var i=0,l=f.length;i=0);},isJourneyType:function(rec){return('HOL|JNY|FLT'.indexOf(rec.RecType)>=0);},isAccommodationType:function(rec){return(rec.RecType=='ACC');},isGridType:function(rec){return rec.RecType=='GRD';}};;Ext.namespace('SABS');SABS.BaseBookingForm=function(cfg){this.addEvents('submit');SABS.BaseBookingForm.superclass.constructor.call(this);if(this.grid){this.grid.on('show',this.onShow,this);}};Ext.extend(SABS.BaseBookingForm,Ext.util.Observable,{win:null,jsonRoot:null,grid:null,valid:false,prepare:Ext.emptyFn,get:function(win) {return this.cmp||this.grid||this.form;},onShow:function() {},getData:function() {var pa=[];this.grid.getStore().each(function(o){pa.push(o.data);});return pa;},isValid:function() {this.grid.getStore().commitChanges();return true;},reset:function(){if(this.grid){this.grid.getStore().removeAll();}},submit:function(){var d=this.getData();if(d){this.fireEvent('submit',this,d);}},setValues:function(cfg){this.prepare(cfg);}});;Ext.namespace('SABS');SABS.RoomsFormROMInit=function(cfg,bp){this.bp=bp SABS.RoomsFormROMInit.superclass.constructor.call(this,cfg);};Ext.extend(SABS.RoomsFormROMInit,Ext.form.FormPanel,{data:[],columnDefinitions:[[400,'Room description'],[100,'Room price'],[100,'Number Available'],[110,'Select rooms']],initComponent:function(){this.addEvents('submit');this.width=750;this.bodyStyle={'padding':'0px'};var items=[];items.push(this._getHeader());this.passengerRows=[];for(var room=0,total=this.data.length;room0){Ext.each(this.form.data,function(o){if(od['room'+option]===o.ROMDescription&&parseInt(od['price'+option].replace(/\,/g,'').substring(1))===parseInt(o.ROMMaxPrice)){o.ROMAvailability=od['required'+option];pa.push(o);}});}} if(this.isValid(pa)){return pa;} else{return null;}},isValid:function(data){var od=this.form.getForm().getValues();for(var option=1,total=this.form.data.length+1;option0){return true;}} return false;}});;Ext.QuickTips.init();Ext.form.VTypes["emailText"]="Not a valid email address";SABS.AddressFormInit=function(cfg){SABS.AddressFormInit.superclass.constructor.call(this,cfg);};Ext.extend(SABS.AddressFormInit,Ext.form.FormPanel,{initComponent:function(){this.addEvents('submit');this.width=730;this.bodyStyle={'padding':'0px'};this.items=[{xtype:'fieldset',width:722,autoHeight:true,style:{padding:'5px'},defaults:{border:false},items:[{xtype:'panel',bodyStyle:'background-color: #ebecee;padding: 2px 0px 2px 3px;',border:false,layout:'form',items:[{xtype:'textarea',width:510,name:'Address',allowBlank:false,fieldLabel:'Address'},{xtype:'textfield',name:'PostCode',fieldLabel:'Post Code'},{xtype:'textfield',name:'Email',width:510,allowBlank:false,fieldLabel:'Emaill',vtype:'email'},{xtype:'panel',html:'Phone Number:',bodyStyle:'padding: 0px 0px 5px 0px;font-size: 110%;background-color: #ebecee;'},{labelAlign:'top',bodyStyle:'background-color: #ebecee;',items:[{layout:'column',bodyStyle:'background-color: #ebecee;',border:false,items:[{columnWidth:.15,layout:'form',bodyStyle:'background-color: #ebecee;',border:false,items:[{xtype:'textfield',fieldLabel:'Area Code',maxLength:7,name:'areacode',anchor:'95%'}]},{columnWidth:.76,layout:'form',bodyStyle:'background-color: #ebecee;',border:false,items:[{xtype:'textfield',width:260,fieldLabel:'Number',maxLength:12,name:'number',anchor:'95%'}]}]}]}]}]}];var addresslookup=SessionDataProvider.getCosts();if(Ext.value(addresslookup.keys.addresslookup,false)){this.items[0].items.unshift({layout:'column',html:'Find a UK address
    Enter your postcode annd click \'Find Address\'.
    ',bodyStyle:'background-color: #ebecee;margin:0px;padding:5px 5px 0px 5px;',style:'font-size: 110%;',items:[{columnWidth:.40,bodyStyle:'background-color: #ebecee;padding-left: 100px;',anchor:'0',layout:'form',items:[{xtype:'textfield',name:'housenumber',fieldLabel:'House Number',allowBlank:true,anchor:'-10'}]},{columnWidth:.35,anchor:'0',bodyStyle:'background-color: #ebecee;',layout:'form',items:{xtype:'textfield',name:'post_code',fieldLabel:'Post code',width:30,allowBlank:true,anchor:'-10'}},{columnWidth:.25,anchor:'0',layout:'form',bodyStyle:'background-color: #ebecee;padding-top: 0px;',items:new Ext.Button({id:'address_lookup_btn',text:'Find Address',handler:function(cmp,rec,i){var vals=this.getForm().getValues();if(vals.post_code&&vals.post_code.length>3){cmp.ownerCt.ownerCt.getEl().mask('Loading...');this.getAddress(vals.post_code,vals.housenumber);}else{Ext.Msg.alert('Postcode','Please enter a full postcode');}},scope:this})}]},{layout:'column',bodyStyle:'background-color: #ebecee;margin:0px;padding:0px 0px 5px 110px;border-bottom: 2px solid #ccc;',items:[{columnWidth:.90,anchor:'0',layout:'form',bodyStyle:'background-color: #ebecee;',label:'Choose your address from below',hideLabel:true,items:new Ext.form.ComboBox({hidden:true,hideLabel:true,bodyStyle:'background-color: #ebecee;padding-top: 0px;',emptyText:'Select the address from below',hiddenName:'addressCombo',id:'addressCombo_id',store:new Ext.data.SimpleStore({fields:['values','display'],data:['wer','rew']}),displayField:'display',valueField:'values',mode:'local',triggerAction:'all',typeAhead:true,width:500,selectOnFocus:true,value:'',listeners:{'select':{fn:function(cmp,rec,i){var address=[];address=rec.data.display.split(', ');var d={};d.PostCode=address.pop();d.Address=address.join('\n');this.getForm().setValues(d);cmp.setValue(rec.data.display);},scope:this}}})}]});} this.items.unshift({type:'label',cls:'panel-bg-override',html:'Please enter the address details of the lead passenger.',style:'padding: 5px 0px 5px 0px;text-align: center;font-size: 130%;'});SABS.AddressFormInit.superclass.initComponent.call(this);},get:function(win){return this;},getAddress:function(postcode,premise){Ext.Ajax.request({url:'/cgi-bin/SAPS/address_lookup.pl',disableCaching:false,method:'POST',params:{postcode:postcode,premise:premise},success:function(response,opts){var obj;try{obj=Ext.decode(response.responseText);} catch(e){options.fail.call(options.scope,'Unable to decode the server response from '+ ProfileAccess.PROFILE_ACCESS_URL+'. The json error is: '+e.message);return;} this.updateAddress(obj) return;},failure:function(response,opts){var address_lookup=Ext.getCmp('address_lookup_btn');address_lookup.ownerCt.ownerCt.getEl().unmask();response.responseText.match(/

    (.*?)<\/H1>/);Ext.Msg.alert('Postcode',RegExp.$1);},scope:this});},updateAddress:function(address){var address_lookup=Ext.getCmp('address_lookup_btn');address_lookup.ownerCt.ownerCt.getEl().unmask();if(address.results.length==0){Ext.Msg.alert('Postcode','Your search returned no results');}else if(address.results.length>1){var data=[];var addressCombo=Ext.getCmp('addressCombo_id');addressCombo.store.removeAll() for(var addressNo=0,total=address.results.length;addressNoIf you do not already have insurance, you will be contacted to confirm insurance arrangements before your tickets are issued.

    '},{style:'font-size: 130%;',ls:'panel-bg-override',html:'You must ensure you have a valid Passport and any Visas required for your destination. If you need any advice contact the Passport Office on the links below.'},{xtype:'radio',hideLabel:true,boxLabel:'Yes, all passengers have a valid Passport expiring at least 6 months after return date.',name:'hasPassport',id:'paxHasPassport',value:'yes'},{xtype:'radio',hideLabel:true,boxLabel:'No, but a valid Passport is being obtained.',name:'hasPassport',id:'paxHasPassport2',value:'no'},{style:'margin-bottom: 10px;',ls:'panel-bg-override',html:'UK Passport Agency  Irish Passport Agency'},{style:'font-size: 130%;',ls:'panel-bg-override',html:'You must ensure you have a valid Passport and any Visas required for your destination. If you need any advice contact the Passport Office on the links below.'},{xtype:'radio',hideLabel:true,boxLabel:'Yes, all passengers satisfy Visa requirements to travel to countries in the itinerary.',name:'hasVisa',id:'paxHasVisa',value:'yes'},{xtype:'radio',hideLabel:true,boxLabel:'No, but required visas are being obtained.',name:'hasVisa',id:'paxHasVisa2',value:'no'},{style:'margin-bottom: 10px;',ls:'panel-bg-override',html:'UK Visa Advice  Irish Visa Advice'}]};this.items=[{type:'label',cls:'panel-bg-override',html:'Please enter passenger details.',style:'padding: 5px 0px 5px 0px;text-align: center;font-size: 130%;'},{xtype:'fieldset',width:762,autoHeight:true,style:{padding:'5px',bodyStyle:'background-color: #ebecee;'},defaults:{border:false},items:items},fs];SABS.PaxFormInit.superclass.initComponent.call(this);},get:function(win){return this;},_getRow:function(cfg){var data=[['MR','Mr.'],['MRS','Mrs.'],['MS','Ms.'],['MISS','Miss'],['MST','Mst.']];if(!cfg.adult){data=data.concat([['MSTR','Mstr.'],['MAST','Mast.'],['INF','Inf']]);} return new Ext.Panel({bodyStyle:'background-color: #ebecee;padding: 2px 0px 2px 0px;',border:false,layout:'table',items:[{xtype:'textfield',width:this.columnDefinitions[0][0],name:'number'+cfg.number,readOnly:true,value:cfg.number,fieldLabel:'number',style:{'margin-right':'10px','border':'0px','text-align':'center'}},{xtype:'checkbox',width:'25',ctCls:'paxcheck',name:'Adult'+cfg.number,readOnly:true,checked:cfg.adult},new Ext.form.ComboBox({hiddenName:'title'+cfg.number,id:'titleField'+cfg.number,allowBlank:false,store:new Ext.data.SimpleStore({fields:['values','display'],data:data}),displayField:'display',valueField:'values',mode:'local',triggerAction:'all',typeAhead:true,width:this.columnDefinitions[2][0],selectOnFocus:true}),{xtype:'textfield',width:this.columnDefinitions[3][0],name:'firstname'+cfg.number,allowBlank:false},{xtype:'textfield',width:this.columnDefinitions[4][0],name:'surname'+cfg.number,allowBlank:false,listeners:{'change':{fn:function(e,f){if(e.name==='surname1'){this.form.items.each(function(item){if(item.name&&item.name.indexOf("surname")>=0&&item.getValue()===''){item.setValue(f);}});}},scope:this}}},new Ext.form.DateField({format:'d/m/Y',altFormats:'d.m.y|d/m/Y|d.m.Y|dmy|dmY',maxValue:new Date(),allowBlank:cfg.adult?true:false,name:'date'+cfg.number,emptyText:cfg.adult?'not required':''}),{xtype:'textfield',width:this.columnDefinitions[6][0],name:'nat'+cfg.number,value:''},{xtype:'textfield',width:this.columnDefinitions[7][0],name:'passport'+cfg.number,value:''}]});},_getHeader:function(){var columns=[];for(var c=0,t=this.columnDefinitions.length;c0?height+=30:height+=100;}else{var row=this._getRow({option:this.data[option],number:option+1,currency:this.bp.json.Currency});items.push(row);option>0?height+=30:height+=100;this.width=790;}} this.height=height>600?600:height;this.items=[{type:'label',html:'Please choose your holiday options.',cls:'panel-bg-override',style:'padding: 5px 0px 5px 0px;text-align: center;font-size: 130%;'}];if(items.length>1){this.items.push({xtype:'panel',html:'Options Per Person',cls:'panel-bg-override',bodyStyle:'margin: 0px 0px 5px 5px; font-size: 130%;'},{xtype:'fieldset',autoScroll:true,maxSize:300,width:762,autoHeight:true,cls:'panel-bg-override',style:'padding: 5px',defaults:{bodyStyle:'background-color: #ebecee;',border:false},items:items})} if(globals.length>1){this.items.push({xtype:'panel',html:'Options Per Party',cls:'panel-bg-override',bodyStyle:'margin: 0px 0px 5px 5px; font-size: 130%;'},{xtype:'fieldset',width:550,autoHeight:true,cls:'panel-bg-override',style:'padding: 5px 0px 5px 5px;',defaults:{bodyStyle:'background-color: #ebecee;',border:false},items:globals})} SABS.OptionsFormInit.superclass.initComponent.call(this);},get:function(win){return this;},_getRow:function(cfg){return new Ext.Panel({bodyStyle:'background-color: #ebecee;padding: 0px;',border:false,layout:'table',items:[{xtype:'textfield',width:320,name:'Option'+cfg.number,readOnly:true,value:cfg.option.OPTDescription,fieldLabel:'number',style:{'margin-right':'10px','border':'0px'}},{xtype:'textfield',width:this.columnDefinitions[2][0],name:'cost'+cfg.number,readOnly:true,value:SABS.Money(cfg.option.OPTADTPrice,cfg.currency)},new Ext.form.ComboBox({hiddenName:'required'+cfg.number,id:'requiredField'+cfg.number,store:cfg.option.OPTDescription.indexOf('MEAL')>=0?this.numberStoreLimited():this.numberStore(),displayField:'display',valueField:'values',mode:'local',triggerAction:'all',typeAhead:true,width:this.columnDefinitions[3][0],selectOnFocus:true,value:'0'}),{type:'label',width:this.columnDefinitions[4][0]},{xtype:'textfield',width:this.columnDefinitions[5][0],name:'costchild'+cfg.number,readOnly:true,value:SABS.Money(cfg.option.OPTCHDPrice,cfg.currency)},new Ext.form.ComboBox({hiddenName:'requiredchild'+cfg.number,id:'requiredchildField'+cfg.number,store:this.numberStore(),displayField:'display',valueField:'values',mode:'local',triggerAction:'all',typeAhead:true,width:this.columnDefinitions[3][0],selectOnFocus:true,value:'0'})]});},_getRowGlobal:function(cfg){return new Ext.Panel({bodyStyle:'background-color: #ebecee;padding: 0px;',border:false,layout:'table',items:[{xtype:'textfield',width:320,name:'Option'+cfg.number,readOnly:true,value:cfg.option.OPTDescription,fieldLabel:'number',style:{'margin-right':'10px','border':'0px'}},{xtype:'textfield',width:this.columnDefinitions[2][0],name:'cost'+cfg.number,readOnly:true,value:SABS.Money(cfg.option.OPTADTPrice,cfg.currency)},new Ext.form.ComboBox({hiddenName:'required'+cfg.number,id:'requiredField'+cfg.number,store:this.numberStore(),displayField:'display',valueField:'values',mode:'local',triggerAction:'all',typeAhead:true,width:this.columnDefinitions[3][0],selectOnFocus:true,value:'0'})]});},_getHeader:function(global){var columns=[];for(var c=0,t=this.columnDefinitions.length;c0||od['requiredchild'+option]>0){return true;}} return true;}});;SessionDataProvider=function(){var sessionType='INQ';var readCookie=function(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i
    {name} ({code})
    ',listeners:{select:function(combo,record,index){this.setRawValue(record.get('name')+' ('+record.get('code')+')');var type=Ext.getCmp('type');if(type){type.setValue(record.get('type'));}},blur:function(){var val=this.getRawValue();this.setRawValue.defer(1,this,[val]);}}});case'boardbasis':return new Ext.form.ComboBox({xtype:'combo',cls:'micros-formelem micros-combobox micros-boardbasis-combobox',ctCls:'micros-formelem-ct micros-combobox-ct micros-boardbasis-combobox-ct',itemCls:'micros-formelem-item micros-combobox-item micros-boardbasis-combobox-item',fieldLabel:'Board Basis',hiddenName:'BoardBasis',store:new Ext.data.SimpleStore({fields:['values','description'],data:[['','All'],['SC','Self Catering'],['BB','Bed and Breakfast'],['HB','Half Board'],['FB','Full Board'],['AI','All Inclusive']]}),displayField:'description',valueField:'values',hideTrigger:false,mode:'local',allowBlank:true,editable:false,anchor:'-10',triggerAction:'all'});case'price':return new Ext.form.ComboBox({fieldLabel:'Price Range',hiddenName:'price',store:new Ext.data.SimpleStore({fields:['desc','price'],data:[['Display All',''],['Up to £100',''],['£100 - £200',''],['£200 - £ 300',''],['£300 - £400',''],['Up to £200',''],['Up to £200',''],['Up to £300',''],['Up to £400',''],['Up to £500','']]}),displayField:'desc',valueField:'price',typeAhead:true,mode:'local',triggerAction:'all',emptyText:'Price',selectOnFocus:true,width:100});case'sideDate':return new Ext.form.ComboBox({fieldLabel:'Days either side',hiddenName:'days',store:new Ext.data.SimpleStore({fields:['desc','days'],data:[['Exact Date Only',0],['1 Day',1],['3 Days',3],['5 Days',5],['7 Days',7],['9 Days',9]]}),displayField:'desc',valueField:'days',typeAhead:true,mode:'local',triggerAction:'all',selectOnFocus:true,width:120});case'numResults':return new Ext.form.ComboBox({fieldLabel:'Results per page',hiddenName:'noResult',store:new Ext.data.SimpleStore({fields:['results'],data:[[10],[20],[30],[40],[50]]}),displayField:'results',valueField:'results',typeAhead:true,mode:'local',triggerAction:'all',selectOnFocus:true,width:50});case'numNights':return new Ext.form.ComboBox({fieldLabel:'Number of Nights',hiddenName:'nights',store:new Ext.data.SimpleStore({fields:['desc','nights'],data:[['One Way',''],['Up to 4 Nights',''],['5 to 10 Nights',''],['11 to 17 Nights',''],['18+ Nights',''],['1 Night',1],['2 Night',2],['3 Nights',3],['4 Nights',4],['5 Nights',5],['6 Nights',6],['7 Nights',7],['8 Nights',8],['9 Nights',9],['10 Nights',10],['11 Nights',11],['12 Nights',12]]}),displayField:'desc',valueField:'nights',typeAhead:true,mode:'local',triggerAction:'all',emptyText:'Number of Nights',selectOnFocus:true,width:130});case'rating':return new Ext.form.ComboBox({xtype:'combo',cls:'micros-formelem micros-combobox micros-rating-combobox',ctCls:'micros-formelem-ct micros-combobox-ct micros-rating-combobox-ct',itemCls:'micros-formelem-item micros-combobox-item micros-rating-combobox-item',fieldLabel:'Rating',hiddenName:'Rating',store:new Ext.data.SimpleStore({fields:['values','description'],data:[['','All'],['2,3,4,5','2-5'],['3,4,5','3-5'],['4,5','4-5'],['5,5','5']]}),displayField:'description',valueField:'values',hideTrigger:false,mode:'local',allowBlank:true,editable:false,anchor:'-10',triggerAction:'all'});}},getTravellersGroup:function(mini){var cfg={xtype:'numberfield',cls:'micros-formelem micros-numberfield micros-travellers-numberfield',ctCls:'micros-formelem-ct micros-numberfield-ct micros-travellers-numberfield-ct',itemCls:'micros-formelem-item micros-numberfield-item micros-travellers-numberfield-item',allowBlank:true,allowDecimals:false,allowNegative:false,maxValue:8,anchor:'-10'};var adultsf=new Ext.form.NumberField(Ext.applyIf({fieldLabel:'adults',allowBlank:false,name:'Adults',value:1,minValue:1,maxValue:9},cfg));var childsf=new Ext.form.NumberField(Ext.applyIf({fieldLabel:'children',name:'Children'},cfg));var infantsf=new Ext.form.NumberField(Ext.applyIf({fieldLabel:'infants',name:'Infants',anchor:'0'},cfg));return{xtype:'fieldset',cls:'micros-formelem micros-fieldset micros-travellers-fieldset',ctCls:'micros-formelem-ct micros-fieldset-ct micros-travellers-fieldset-ct',itemCls:'micros-formelem-item micros-fieldset-item micros-travellers-fieldset-item',layout:'form',autoHeight:true,title:'Number of Travellers',labelSeparator:':',anchor:'-10',style:'margin-top: 15px;',items:[{layout:'form',border:false,items:[{layout:'column',border:false,defaults:{columnWidth:0.33,layout:'form',anchor:'0',border:false},items:[{items:adultsf},{items:childsf},{items:infantsf}]}]}]};},getFormButtons:function(){return[{text:'Clear form',handler:function(b){b.ownerCt.getForm().reset();}},{text:'Search'}];},chromeCalendarBugFix:function(type){var patt=/chrome/i;if(patt.test(window.navigator.userAgent)===true){if(type==='double'){var nbCal=Ext.query("*[class*=x-form-date-trigger]").length;if(nbCal>0){for(i=0;i0){for(i=0;idatefield.getValue().add(Date.MONTH,1)){inbound.setValue(inbound.minValue.add(Date.DAY,7));inbound.setMaxValue(inbound.minValue.add(Date.MONTH,1));inbound.clearInvalid();} else{inbound.clearInvalid();}}}}},dateFieldDefaults),Ext.applyIf({cls:'micros-formelem micros-datefield micros-enddate-datefield',ctCls:'micros-formelem-ct micros-datefield-ct micros-enddate-datefield-ct',itemCls:'micros-formelem-item micros-datefield-item micros-enddate-datefield-item',fieldLabel:cfg.endDateLabel,name:'endDate',maxValue:null,id:'endDate'+cfg.suffix,startDateField:'startDate'+cfg.suffix,vtype:'daterange'},dateFieldDefaults)]}];} else if(cfg.endDateLabel){items=[{items:[Ext.applyIf({cls:'micros-formelem micros-datefield micros-enddate-datefield',ctCls:'micros-formelem-ct micros-datefield-ct micros-enddate-datefield-ct',itemCls:'micros-formelem-item micros-datefield-item micros-enddate-datefield-item',fieldLabel:cfg.endDateLabel,name:'endDate',id:'endDate'+cfg.suffix},dateFieldDefaults)]}];} else if(cfg.startDateLabel){items=[{items:[Ext.applyIf({cls:'micros-formelem micros-datefield micros-startdate-datefield',ctCls:'micros-formelem-ct micros-datefield-ct micros-startdate-datefield-ct',itemCls:'micros-formelem-item micros-datefield-item micros-startdate-datefield-item',fieldLabel:cfg.startDateLabel,name:'startDate',id:'startDate'+cfg.suffix,value:day,listeners:{valid:function(datefield){var inbound=Ext.getCmp('endDate'+cfg.suffix);if(inbound){inbound.minValue=datefield.getValue();datefield.setMaxValue(null);if(inbound.getValue()datefield.getValue().add(Date.MONTH,1)){inbound.setValue(inbound.minValue.add(Date.DAY,7));inbound.setMaxValue(inbound.minValue.add(Date.MONTH,1));inbound.clearInvalid();} else{inbound.clearInvalid();}}}}},dateFieldDefaults)]}];} if(cfg.time){if(cfg.endDateLabel&&cfg.startDateLabel){items=items.concat({defaults:{allowBlank:false,format:'H:i',increment:15,anchor:'-10'},defaultType:'timefield',items:[{cls:'micros-formelem micros-timefield micros-startdate-timefield',ctCls:'micros-formelem-ct micros-timefield-ct micros-startdate-timefield-ct',itemCls:'micros-formelem-item micros-timefield-item micros-startdate-timefield-item',fieldLabel:cfg.startTimeLabel||'Time',name:'startTime',id:'startTime'+cfg.suffix,value:'12:00'},{cls:'micros-formelem micros-timefield micros-enddate-timefield',ctCls:'micros-formelem-ct micros-timefield-ct micros-enddate-timefield-ct',itemCls:'micros-formelem-item micros-timefield-item micros-enddate-timefield-item',fieldLabel:cfg.endTimeLabel||'Time',name:'endTime',id:'endTime'+cfg.suffix,value:'12:00'}]});} else if(cfg.endDateLabel){items=items.concat({defaults:{allowBlank:false,format:'H:i',increment:15,anchor:'-10'},defaultType:'timefield',items:[{cls:'micros-formelem micros-timefield micros-enddate-timefield',ctCls:'micros-formelem-ct micros-timefield-ct micros-enddate-timefield-ct',itemCls:'micros-formelem-item micros-timefield-item micros-enddate-timefield-item',fieldLabel:cfg.endTimeLabel||'Time',name:'endTime',id:'endTime'+cfg.suffix,value:'12:00'}]});} else if(cfg.startDateLabel){items=items.concat({defaults:{allowBlank:false,format:'H:i',increment:15,anchor:'-10'},defaultType:'timefield',items:[{cls:'micros-formelem micros-timefield micros-startdate-timefield',ctCls:'micros-formelem-ct micros-timefield-ct micros-startdate-timefield-ct',itemCls:'micros-formelem-item micros-timefield-item micros-startdate-timefield-item',fieldLabel:cfg.startTimeLabel||'Time',name:'startTime',id:'startTime'+cfg.suffix,value:'12:00'}]});}} else if(cfg.columns==2){items=[{items:items[0].items[0]},{items:items[0].items[1]}];} return{border:false,items:[{layout:cfg.rows===1?'form':'column',id:'dategroup'+cfg.suffix,border:false,defaults:{columnWidth:0.5,layout:'form',labelAlign:'top',border:false},items:items}]};},getAccomSingleRoomGroup:function(num){return{layout:'column',hidden:num>0?true:false,labelAlign:'left',labelWidth:50,border:false,defaults:{layout:'form',anchor:'0',labelAlign:'left',border:false},items:[{columnWidth:0.5,items:new Ext.form.Label({text:'Room '+(num+1),cls:'x-form-item micros-formelem micros-label micros-roomnumber-label',ctCls:'micros-formelem-ct micros-label-ct micros-roomnumber-label-ct',itemCls:'micros-formelem-item micros-label-item micros-roomnumber-label-item'})},{columnWidth:0.25,items:{cls:'micros-formelem micros-numberfield micros-roomoccupants-numberfield',ctCls:'micros-formelem-ct micros-numberfield-ct micros-roomoccupants-numberfield-ct',itemCls:'micros-formelem-item micros-numberfield-item micros-roomoccupants-numberfield-item',xtype:'numberfield',hideLabel:true,fieldLabel:'Adults',name:'room_occupancy',maxValue:9,allowDecimals:false,disabled:num>0?true:false,anchor:'-10',minValue:1,value:1,allowBlank:false}},{columnWidth:0.25,items:{xtype:'numberfield',cls:'micros-formelem micros-numberfield micros-roomoccupants-numberfield',ctCls:'micros-formelem-ct micros-numberfield-ct micros-roomoccupants-numberfield-ct',itemCls:'micros-formelem-item micros-numberfield-item micros-roomoccupants-numberfield-item',fieldLabel:'Children',name:'room_occupancy',hideLabel:true,maxValue:9,minValue:0,allowDecimals:false,disabled:num>0?true:false,anchor:'-10'}}]};},getAccommRoomGroup:function(){return{border:false,items:[{layout:'column',labelAlign:'left',labelWidth:50,border:false,defaults:{layout:'form',anchor:'0',labelAlign:'left',border:false},items:[{columnWidth:0.25,items:new Ext.form.Label({text:'No. of Rooms',height:22,cls:'x-form-item micros-formelem micros-label micros-roomcount-label',ctCls:'micros-formelem-ct micros-label-ct micros-roomcount-label-ct',itemCls:'micros-formelem-item micros-label-item micros-roomcount-label-item'})},{columnWidth:0.25,items:{xtype:'combo',cls:'micros-formelem micros-combobox micros-rating-combobox',ctCls:'micros-formelem-ct micros-combobox-ct micros-rating-combobox-ct',itemCls:'micros-formelem-item micros-combobox-item micros-rating-combobox-item',hideLabel:true,hideTrigger:true,hiddenName:'Rating',store:new Ext.data.SimpleStore({fields:['v'],data:[[1],[2],[3],[4],[5],[6],[7],[8],[9]]}),displayField:'v',valueField:'v',value:1,mode:'local',allowBlank:false,editable:false,triggerAction:'all',anchor:'-10',listeners:{select:function(b,r,i){var rnum=r.data.v;var ct=b.ownerCt.ownerCt.ownerCt;var rows=ct.items.getRange(1);Ext.each(rows,function(o,i,a){var on=i','','','Desc','Cost','','','','','{CSTDescription}','{CSTTotal}','','','','  Total = {[SABS.Money(values.Price, values.Currency)]}','',''].join('');var errata=['','','','','
    ','{Errata}','
    '].join('');var basketButtons=function(type){if(!type){if(subtype==='alts'){return[''].join('');}else{return['
    10050px;">','Add to Basket','','Book Now!','','
    '].join('');}}else if(type=='basket'){if(subtype=='booking'){return['
    ','','Booking
    ','
    ','','Ready to Book','','','Confirming availability

    ','
    ','','Confirming price

    ','
    ','','Booking

    ','
    ','','Please enter the required details','','','Cost breakdown updated.
    ','
    Click below to continue to the payment screen.
    ','
     Pay now ','
    ','','Booking Error','','','An Error has occured with your booking.
    Please start your search again','
    ','','Cannot Book Online','','','No availability can be found','','','Payment Accepted','

    ','
    ','','Failed non-payment','','','Your payment may have not completed in time.','
    We are completing a final check.
    ','

    ','
    ','','Sorry, credit card authentication failed - please check with your bank.','','','Sorry, you used a test credit card number - please check with your bank.','','','Insufficient parameters supplied from credit card authentication.','','','Failed to book
    ','Your payment has been refunded.','
    ','','Failed to book

    ','Your payment may have been held up by the payment provider.
    ','
    ','','Item already booked.','','','This item failed to book. Please search for an alternative of contact the agent.','','','Awaiting Payment Confirmation

    ','

     Pay now','
    ','','Payment Accepted

    ','Finalising Booking

    ','','','','','Your Booking Reference:
    {BookingRef}

    An email has been sent to you containing all important information.','
    ','
    ','','Ready to Book','','
    '].join('');}else{return[''];}}else if(type=='landing'){return'';}}(compositeType);var pricing=['
    ','','

    Total Price

    ','

    ','','From','','','    ','','{[SABS.Money(values.Price, values.Currency)]}','

    ','','

    ','Adult Price from
    ','{[SABS.Money(values.ADTPrice, values.Currency)]} pp','

    ','

    ','Child Price from
    ','{[SABS.Money( (values.CHDPrice == "" || values.CHDPrice == 0) ? values.ADTPrice : values.CHDPrice, values.Currency)]} pp','

    ','
    ','
    ','
    '].join('');var carPricing=['
    ','

    Total Price

    ','

    ','','From','','','    ','','{[SABS.Money(values.Price, values.Currency)]}','

    ','
    '].join('');var validFrom=['
    ','Note that these prices are regularly updated and are subject to change at time of booking.
    ','The total price will always be displayed to you prior to purchase.','
    '].join('');var disclaimer=[' '].join('');var carValidFrom=['
    ','Note that these prices are regularly updated and are subject to change at time of booking.
    ','The total price will always be displayed to you prior to purchase.','
    '].join('');var logo=[''].join('');var accommHeader=['
    ','
    ','{ResortName}','
    ',logo,'','
    {Nights}nts
    ','
    ','
    ','
    '].join('');var carImage=['','Vehicle image','','','No image available',''].join('');var flightTableHeader=function(icon){return['',(icon?'':''),'From','To','Date','Depart','Arrive',''].join('');};switch(type){case'flight':var basicFlightDetailsOut=['','{DepPointOutFull}','{ArrPointOutFull}','{DateOut:date("d-M-y")}','{DepTimeOut:date("H:i")}','{ArrTimeOut:date("H:i")}',''].join('');var basicFlightDetailsIn=['','{ArrPointOutFull}','{ArrPointInFull}','{DateIn:date("d-M-y")}','{DepTimeIn:date("H:i")}','{ArrTimeIn:date("H:i")}',''].join('');var legFlightDetails=function(direction){return['','','','{depPointFull}','{arrPointFull}','{dateDep:date("d-M-y")}','{timeDep:date("H:i")}','{timeArr:date("H:i")}','','',''].join('');};tpl=['
    ','
    ','
    ','{DepPointOutFull} to {ArrPointOutFull}','
    ',logo,'','
    ','{Nights}nts','
    ','
    ','
    ','
    ','
    ','Outbound Journey {RecType}','
    ','
    ','',flightTableHeader(),'',basicFlightDetailsOut,'','',legFlightDetails('O'),'','
    ','
    ','','
    ','Inbound Journey','
    ','
    ','',flightTableHeader(),'',basicFlightDetailsIn,'','',legFlightDetails('I'),'','
    ','
    ','
    ','','
    ','Detailed Cost beakdown','
    ','
    ',costs,'
    ','
    ','','
    ','Important Information','
    ','
    ',errata,'
    ','
    ',validFrom,disclaimer,'
    ','
    ',pricing,basketButtons,'
    ','
    ','
    ','
    '];break;case'holiday':var flightDetails=['',flightTableHeader(true),'','','','','','','','','','','','','','','','','
    {DepPointOutFullIATA}{ArrPointOutFullIATA}{DateOut:date("d-M-y")}{DepTimeOut:date("H:i")}{ArrTimeOut:date("H:i")}
    {ArrPointOutFullIATA}{ArrPointInFullIATA}{DateIn:date("d-M-y")}{DepTimeIn:date("H:i")}{ArrTimeIn:date("H:i")}
    '].join('');tpl=['
    ',accommHeader,'
    ','
    ','
    ','{Rating} star rating','
    ','

    ','{HotelName} - {BoardBasisFull}','

    ','

    ','Click here for brochure details','

    ','
    ','
    ','Flight Details','
    ','
    ',flightDetails,'
    ','','
    ','Detailed Cost beakdown','
    ','
    ',costs,'
    ','
    ','','
    ','Important Information','
    ','
    ',errata,'
    ','
    ',validFrom,disclaimer,'
    ','
    ',pricing,basketButtons,'
    ','
    ','
    ','
    '];break;case'transfer':tpl=['
    ','
    ','
    {ProductType}
    ',logo,'
    ','
    ','
    ',carImage,'

    {ProductDescription}

    ','
    ','
    ','Transfer Dates','
    ','
    ','','','','','','','','','','','','
    Date OutDate In
    {DateOut:date("d-M-y")}{DateIn:date("d-M-y")}
    ','
    ','
    ','Transfer Details','
    ','
    ','','','','','','','','','','','','
    TypeTransfer TimeMax Passengers
    {ProductType}{TransferMinutes}{MaxPax}
    ','
    ','','
    ','Detailed Cost beakdown','
    ','
    ',costs,'
    ','
    ','','
    ','Important Information','
    ','
    ',errata,'
    ','
    ',carValidFrom,disclaimer,'
    ','
    ',carPricing,basketButtons,'
    ','
    ','
    ','
    '];break;case'carhire':tpl=['
    ','
    ','
    {Model}
    ',logo,'
    ','
    ','
    ',carImage,'

    {ProductDescription}

    ','
    ','
    ','Hire Details','
    ','
    ','','','','','','','','','','
    Date FromDate Untill
    {DateOut:date("d-M-y")}{DateIn:date("d-M-y")}
    ','
    ','
    ','Car Details','
    ','
    ','','','','','','','','','','','','
    Car ClassCar ModelPassengers
    {AccrissClass}{Model}{MaxPax}
    ','','','','','','','','','','','','','','
    Air ConAutomaticDoorsLuggage (Large/Small)
    {Aircon}{Auto}{Doors}{LrgLuggage} / {SmlLuggage}
    ','
    ','','
    ','Detailed Cost beakdown','
    ','
    ',costs,'
    ','
    ','','
    ','Important Information','
    ','
    ',errata,'
    ','
    ',carValidFrom,disclaimer,'
    ','
    ',carPricing,basketButtons,'
    ','
    ','
    ','
    '];break;case'accommodation':var summaryDetails=['','','','','','','','','','','','
    Check-in DateCheck-out DateNights
    {ArrDateOut:date("d-M-y")}{DepDateIn:date("d-M-y")}{Nights}
    '].join('');var roomDetails=['','','','','','','','','','','','
    PriceRoom Type
    {MinPrice:ukMoney}{RoomDesc}
    '].join('');tpl=['
    ',accommHeader,'
    ','
    ','
    ','{Rating} star rating','
    ','

    ','{HotelName} - {BoardBasisFull}','

    ','

    ','Click here for brochure details','

    ','
    ','
    ','Booking Details','
    ','
    ',summaryDetails,roomDetails,'
    ','','
    ','Detailed Cost beakdown','
    ','
    ',costs,'
    ','
    ','','
    ','Important Information','
    ','
    ',errata,'
    ','
    ',validFrom,disclaimer,'
    ','
    ',pricing,basketButtons,'
    ','
    ','
    ','
    '];break;case'basket':case'landing':tpl=['',SABSFactory.getTemplate('flight',type,subtype),'','',SABSFactory.getTemplate('carhire',type,subtype),'','',SABSFactory.getTemplate('transfer',type,subtype),'','',SABSFactory.getTemplate('accommodation',type,subtype),'','',SABSFactory.getTemplate('holiday',type,subtype),''];if(subtype==='booking'){tpl.unshift(['

    Below are your',' Flight ',' Car Hire ',' Transfer ',' Accommodation ',' Holiday ','details.

    To continue booking, please click the \'Book\' button.
    When prompted please fill in the travellers details.

    '].join(''));} break;} if(compositeType){return tpl.join('');}else{return new Ext.XTemplate('{[Costs=""]}','','
    ',tpl.join(''),'
    ','
    ',{exists:function(o){return typeof o!='undefined'&&o!==null&&o!=='';}});}},getRecord:function(type){var time=[{name:'DepDateOut',type:'date',dateFormat:'ymd'},{name:'DepTimeOut',type:'date',dateFormat:'hi'},{name:'ArrDateOut',type:'date',dateFormat:'ymd'},{name:'ArrTimeOut',type:'date',dateFormat:'hi'},{name:'DepDateIn',type:'date',dateFormat:'ymd'},{name:'DepTimeIn',type:'date',dateFormat:'hi'},{name:'ArrDateIn',type:'date',dateFormat:'ymd'},{name:'ArrTimeIn',type:'date',dateFormat:'hi'},{name:'DateIn',type:'date',convert:function(v,r){if(typeof r.DepDateIn!=='undefined'&&r.DepDateIn.length>0){return Date.parseDate(r.DepDateIn,'ymd');} else if(typeof r.ArrDateIn!=='undefined'&&r.ArrDateIn.length>0){return Date.parseDate(r.ArrDateIn,'ymd');}}},{name:'DateOut',type:'date',convert:function(v,r){if(typeof r.DepDateOut!=='undefined'&&r.DepDateOut.length>0){return Date.parseDate(r.DepDateOut,'ymd');} else if(typeof r.ArrDateOut!=='undefined'&&r.ArrDateOut.length>0){return Date.parseDate(r.ArrDateOut,'ymd');}}}];var price=[{name:'ADTPrice',type:'float'},{name:'CHDPrice',type:'float'},{name:'Price',type:'float',convert:this.getItemPrice},{name:'FinalPrice',type:'float',defaultValue:'0'}];var loc=[{name:'DepPointOutFullIATA'},{name:'DepPointOutFull'},{name:'DepPointOut'},{name:'ArrPointOutFullIATA'},{name:'ArrPointOutFull'},{name:'ArrPointOut'},{name:'DepPointInFullIATA'},{name:'DepPointInFull'},{name:'DepPointIn'},{name:'ArrPointInFullIATA'},{name:'ArrPointInFull'},{name:'ArrPointIn'}];var deflt=[{name:'TravelCode'},{name:'Operator'},{name:'OperatorFull'},{name:'RecType'},{name:'Nights',type:'int',convert:function(v,r){if(typeof r.Nights!=='undefined'&&r.Nights.length>0){return r.Nights;} else{var from=Date.parseDate(r.DepDateOut,'ymd');var to=Date.parseDate(r.ArrDateIn,'ymd');if(typeof from!=='undefined'&&typeof to!=='undefined'){return(to-from)/MSECS_IN_DAY;}} return 0;}},{name:'Currency'},{name:'ScanDate',type:'date',dateFormat:'ymd'},{name:'CarScanDate',mapping:'ScanDate',type:'date',dateFormat:'y/m/d'},{name:'ScanTime',type:'date',dateFormat:'Hi'},{name:'showIcons',type:'boolean',convert:this.getShowIcons},{name:'Booking',defaultValue:'Ready to Book',convert:this.allowBooking},{name:'Errata',defaultValue:'No information',convert:this.appendErrata},{name:'DisplayPrice',defaultValue:'true'},{name:'DiscountID',defaultValue:'true'}];switch(type){case'flight':return deflt.concat(loc,price,time,{name:'FlightNumIn'},{name:'FlightNumOut'},{name:"LegDetails",defaultValue:[],convert:this.expandLegDetails});case'holiday':return deflt.concat(loc,price,time,{name:'TravelCode'},{name:'HolidayCode'},{name:'HotelName'},{name:'ResortName'},{name:'BoardBasisFull'},{name:'Rating',type:'int'});case'accommodation':return deflt.concat(loc,price,time,{name:'TravelCode'},{name:'HolidayCode'},{name:'HotelName'},{name:'BoardBasisFull'},{name:'Rating',type:'int'},{name:'RoomsCount'},{name:'ResortName'},{name:'ArrDateOut',type:'date',dateFormat:'ymd'},{name:'DepDateIn',type:'date',dateFormat:'ymd'},{name:'ArrDateIn',type:'date',dateFormat:'ymd'},{name:"RoomDetails",defaultValue:[],convert:this.expand});case'transfer':return deflt.concat(loc,price,time,{name:'ProductType'},{name:'ProductDescription'},{name:'TransferMinutes',type:'int'},{name:'ProductImagePath'},{name:'MaxPax'});case'carhire':return deflt.concat(loc,price,time,{name:'ProductType'},{name:'LrgLuggage'},{name:'SmlLuggage'},{name:'ProductImagePath'},{name:'ProductDescription'},{name:'MaxPax'},{name:'AccrissClass'},{name:'Model'},{name:'CurrencyCode'},{name:'Doors'},{name:'Aircon',defaultValue:'',convert:this.expandBooleanToEnglish},{name:'Auto',defaultValue:'',convert:this.expandBooleanToEnglish});case'basket':case'landing':return deflt.concat(loc,price,time,{name:'TravelCode'},{name:'HolidayCode'},{name:'HotelName'},{name:'ResortName'},{name:'BoardBasisFull'},{name:'FlightNumIn'},{name:'FlightNumOut'},{name:'Rating',type:'int'},{name:"RoomDetails",defaultValue:[],convert:this.expand},{name:"Costs",defaultValue:[],convert:this.expand},{name:'ProductType'},{name:'LrgLuggage'},{name:'SmlLuggage'},{name:'ProductImagePath'},{name:'TransferMinutes',type:'int'},{name:'ProductDescription'},{name:'MaxPax'},{name:'BookingRef'},{name:'Model'},{name:'Doors'},{name:'Type'},{name:'AccrissClass'},{name:'Aircon',defaultValue:'',convert:this.expandBooleanToEnglish},{name:'Auto',defaultValue:'',convert:this.expandBooleanToEnglish},{name:"LegDetails",defaultValue:[],convert:this.expandLegDetails});}},getShowIcons:function(v,record){if(record.Icons.indexOf("N")===-1){return true;}else{return false;}},allowBooking:function(v,r){if(r.Booking&&r.Booking!==''){return r.Booking;}else{if(r.Icons.indexOf("s")===-1){return'Cannot Book';}else{return'Ready to Book';}}},appendErrata:function(v,r){var errata='';if(Ext.isArray(r.Costs)){var i=0,l=r.Costs.length,f;while(i=1){ccs=parseFloat(o.CSTTotal.replace('%',''));}else{total=total+parseFloat(o.CSTTotal);}});var MerchantFee=parseInt(total*ccs,10);var newTotal=parseInt(total*100+MerchantFee,10)/100;return newTotal.toFixed(2);} else if(typeof r.EstPrice!=='undefined'&&r.EstPrice){if(r.EstPrice>0){return parseFloat(r.EstPrice);}else{var params=Ext.decode(SessionDataProvider.getParams());var Adults=params.Adults||0;var Children=params.Children||0;return parseFloat((r.ADTPrice*Adults)+(r.CHDPrice*Children));}} else if(typeof r.ReturnPrice!=='undefined'&&r.ReturnPrice){return parseFloat(r.ReturnPrice);} else if(typeof r.SinglePrice!=='undefined'&&r.SinglePrice){return parseFloat(r.SinglePrice);} else{return 0;}},expandBooleanToEnglish:function(v,r){if(typeof v=='undefined'||!v){return'No';} else{return'Yes';}},expandLegDetails:function(v,r){var legs=[];if(Ext.isArray(v)){var i=0,l=v.length,f;while(i

    ','
    ','

    No results found...

    ','

    Sorry, no results have been found.

    ','

    Please try amending your search options or calling us on the phone number ','provided on this website, as often there can be availability from some ','operators that will not show in searches, especially with last minute deals.

    ','

    Return to the search form.

    ','
    '].join('');},getLoadingHTML:function(){return['
    ','

    Searching...

    ','','
    '].join('');},getCallWorker:function(cfg){var worker=new CallWorker(cfg);return worker;},getPollWorker:function(cfg){cfg.delay=3000;cfg.repeat=10;var worker=new SerialPollWorker(cfg);return worker;},externalFormValsFormatter:function(formVals,searchType){if(searchType==='flight'){var nights=formVals.nights.split(',');return{Adults:formVals.pax,Children:formVals.childs,Infants:formVals.infants,FlightType:'R',dateFlexible:'',startDate:Date.parseDate(formVals.date_month+formVals.date_day,"ymd").format('d/m/y'),NightsMin:nights[0],NightsMax:nights[1],Within:formVals.within||0,startPoint:formVals.from_1,endPoint:formVals.country_1,gateway:'',seatClass:'',type:''};}},getSearchParamsFormatter:function(){return function(ro,searchType){var theRequestType;switch(searchType){case'flight':theRequestType='CFM';break;case'accommodation':theRequestType='CAO';break;case'holiday':theRequestType='CHO';break;case'transfer':theRequestType='CTX';break;case'carhire':theRequestType='CCH';break;} var def={"Format":"request","RequestType":theRequestType,"Adults":ro.Adults,"Children":ro.Children,"Infants":ro.Infants,"Dep1":"","Dep2":"","Dep3":"","Dest":"","dests":[],"SABSResortCode":"","DepDateOut":"","NightsMin":"","NightsMax":"","Rating":"","Operator1":"","Operator2":"","Operator3":"","Operator4":"","SrchType":"C","FlightType":"","ArrTimeOut":"","DepTimeIn":"","DepDateIn":"","Within":"","tourops":[],"Number":"","MaxPrice":"","MinPrice":"","ArrDateIn":"","FlightNumOut":"","ArrPointIn":"","TravelCode":"","DiscountID":"","DepTimeOut":"","ArrTimeIn":"","DiscountGRP":"","DiscountCHD":"","DiscountBKG":"","DiscountRule":"","FlightNumIn":"","DiscountADT":"","FlightTime":"","deps":[],"TouropIns":"N","RecType":"JNY","MaxRecs":300,"InsCompany":"TBA","StartRec":0,"RecAge":0};if(typeof ro.endDate!=='undefined'){ro.endDate=ro.endDate.split('http://sabsweb.co.uk/').reverse().join('');} if(typeof ro.startDate!=='undefined'){ro.startDate=ro.startDate.split('http://sabsweb.co.uk/').reverse().join('');} var nights;if(typeof ro.endDate!=='undefined'&&typeof ro.startDate!=='undefined') {var startDate=Date.parseDate(ro.startDate,'ymd');var endDate;if(Date.parseDate(ro.endDate,'ymd')){endDate=Date.parseDate(ro.endDate,'ymd');}else{endDate=Date.parseDate(ro.endDate,'d/m/y');} nights=startDate.getElapsed(endDate)/MSECS_IN_DAY;nights=parseInt(Math.round(nights),10);} if(typeof ro.startTime!=='undefined'){ro.startTime=ro.startTime.split(':').join('');} if(typeof ro.endTime!=='undefined'){ro.endTime=ro.endTime.split(':').join('');} switch(searchType){case'accommodation':var data=Ext.apply(def,SABSFactory.getMultipleRoomDetails(ro));return Ext.apply(data,{Dest:ro.gateway?ro.gateway:ro.resortcode,SABSResortCode:ro.resortcode,Rating:"",DepDateOut:ro.startDate,NightsMin:nights,NightsMax:nights,BoardBasis:ro.BoardBasis});case'transfer':var returnorsingle=ro.returnorsingle||'';return Ext.apply(def,{Dep1:ro.startPoint,Dest:ro.gateway?ro.gateway:ro.resortcode,SABSResortCode:ro.resortcode,NewResortCode:ro.resortcode,DepDateOut:ro.startDate,DepDateIn:returnorsingle==='on'?ro.endDate:'',ArrTimeOut:ro.startTime,DepTimeIn:ro.endTime,NightsMin:'',NightsMax:'',FlightType:returnorsingle==='on'?"R":"O"});case'carhire':return Ext.apply(def,{Dest:ro.gateway,SABSResortCode:ro.resortcode,DepDateOut:ro.startDate,ArrTimeOut:ro.startTime,DepTimeOut:ro.startTime,DepDateIn:ro.endDate,DepTimeIn:ro.endTime,ArrTimeIn:ro.endTime,NightsMin:nights,NightsMax:nights,Nights:nights});case'holiday':return Ext.apply(def,{Dep1:ro.startPoint,Dest:ro.type==='G'?'*'+ro.endPoint:ro.endPoint,DepDateOut:ro.startDate,NightsMin:nights,NightsMax:nights,Within:ro.datesFlexible?'3':'',BoardBasis:ro.BoardBasis,Rating:ro.Rating});case'flight':return Ext.apply(def,{Rating:ro.seatClass,FlightType:ro.FlightType,DirectFlights:ro.DirectFlights?'Y':'N',Dep1:ro.startPoint,Dest:ro.type==='G'?'*'+ro.endPoint:ro.endPoint,DepDateOut:ro.startDate,NightsMin:ro.NightsMin||nights,NightsMax:ro.NightsMax||nights,Within:ro.datesFlexible?'3':''});}};},getMultipleRoomDetails:function(ro){var rooms=0;var totalAdults=0;var totalChildren=0;var roomOcc=[];while(ro.room_occupancy.length){var adults=parseInt(ro.room_occupancy.shift(),10)||0;var children=parseInt(ro.room_occupancy.shift(),10)||0;totalAdults+=adults;totalChildren+=children;roomOcc.push({Adults:adults,Children:children,Infants:0});} return{RoomOcc:roomOcc,Adults:totalAdults,Children:totalChildren,Infants:0};},getContactDetailsFormatter:function(){var formatPhoneForStoring=function(phone){phone=phone.replace(/\s+/g,'');phone=phone.replace(/\+/g,'0');var pa=[];var numstart=phone.length-12;pa[2]=String(phone.substring(numstart));var acodestart=(numstart-3)||0;pa[1]=String(phone.substring(acodestart,numstart-1));pa[0]=String(phone.substring(0,acodestart-1));return pa;};return function(data){var json=[];if(data.Title&&data.Forename&&data.Surname){json.push({RecType:'NME',Title:data.Title,Forename:data.Forename,Surname:data.Surname,PersonAgeType:'A'});} if(data.Address){json.push({RecType:'ADR',AddrType:'Addr1',House:data.House,Address:data.Address.replace(/(\r\n)|\r|\n/g,"|"),County:data.County,PostCode:data.PostCode});} if(data.Email){json.push({RecType:'ADR',AddrType:'Email',Address:data.Email});} if(data.Phone){var phone=formatPhoneForStoring(data.Phone);json.push({RecType:'PHN',PhoneType:'H',CountryCode:phone[0],AreaCode:phone[1],'Number':phone[2],Extension:''});} if(data.Mobile){var mobile=formatPhoneForStoring(data.Mobile);json.push({RecType:'PHN',PhoneType:'M',CountryCode:mobile[0],AreaCode:mobile[1],'Number':mobile[2],Extension:''});} if(data.ContactTime){json.push({RecType:'NTE',Title:'ContactTime',Content:data.ContactTime});} if(data.Comments){json.push({RecType:'NTE',Title:'Comments',Content:data.Comments.replace(/(\r\n)|\r|\n/g,"|")});} return json;};},getPageAction:function(cfg){SABSFactory.IsFromOld=cfg.consumer==='old'?true:false;if(cfg.stage=='externalform'){return function(){Ext.Ajax.request({url:'/cgi-bin/SAPS/getSession.pl',success:function(){var sessid=SessionDataProvider.getSession();if(!SessionDataProvider.hasCookie('booking')){SessionDataProvider.createCookie('booking',sessid+'-book');} if(!SessionDataProvider.hasCookie('basket')){SessionDataProvider.createCookie('basket',sessid+'-bask');} SessionDataProvider.createCookie('search_saps',sessid);var formVals=SABSFactory.externalFormValsFormatter(cfg.params,cfg.type);var ro=SABSFactory.getSearchParamsFormatter()(formVals,cfg.type);SessionDataProvider.getSession(function(session){SABSFactory.getCallWorker({session:session,SABSConfig:SABS.Config,searchType:cfg.type,url:'/cgi-bin/SAPS/JSONCall.pl',searchParams:ro,listeners:{'start':function(){},'complete':function(){SessionDataProvider.storeSearchObject(ro,function(){location.href=cfg.next;});},'error':function(worker,type,msg){Ext.Msg.alert('Error',type+':
    '+msg);}}}).start();});},scope:this});};}else if(cfg.stage=='form'){return function(){Ext.Ajax.request({url:'/cgi-bin/SAPS/getSession.pl',success:function(){var sessid=SessionDataProvider.getSession();if(!SessionDataProvider.hasCookie('booking')){SessionDataProvider.createCookie('booking',sessid+'-book');} if(!SessionDataProvider.hasCookie('basket')){SessionDataProvider.createCookie('basket',sessid+'-bask');} var ct=Ext.get(cfg.renderTo);var f=SABSFactory.getForm(cfg.type,ct.getWidth(true));f.render(ct);SABSFactory.chromeCalendarBugFix('single');f.buttons[1].on('click',function(btn){var f=btn.ownerCt.getForm();if(f.isValid()){var sessid=SessionDataProvider.getSession();SessionDataProvider.createCookie('search_saps',sessid);var formVals=f.getValues();var ro=SABSFactory.getSearchParamsFormatter()(formVals,cfg.type);SessionDataProvider.getSession(function(session){SABSFactory.getCallWorker({session:session,SABSConfig:SABS.Config,searchType:cfg.type,url:'/cgi-bin/SAPS/JSONCall.pl',searchParams:ro,listeners:{'start':function(){ct.mask("Searching...");},'complete':function(){SessionDataProvider.storeSearchObject(ro,function(){location.href=cfg.next;});},'error':function(worker,type,msg){ct.unmask();Ext.Msg.alert('Error',type+':
    '+msg);}}}).start();});}});},scope:this});};}else if(cfg.stage=='results'){return function(){if(SessionDataProvider.hasSession()){var sessid=SessionDataProvider.getSession();if(SessionDataProvider.hasCookie('booking')){SessionDataProvider.retrieveBookingBasketContents(function(response){var r=Ext.decode(response.responseText);var recsToRemove=[];Ext.each(r,function(o){if(o.RecType==='NTE'&&o.Title==='BookingStage'||o.RecType==='NTE'&&o.Title==='BookingStatus'||o.RecType==='NTE'&&o.Title==='BookingComplete'){recsToRemove.push(o);}});if(recsToRemove.length>0){SessionDataProvider.deleteFromBookingBasket(recsToRemove,function(){});}});} var ct=Ext.get(cfg.renderTo);var p=SABSFactory.getPanel(cfg.type);p.on('click',function(dv,ix,node,e){e.stopEvent();var s=p.getStore().getAt(ix);if(e.target.id==='basket'){if(!SessionDataProvider.hasCookie('basket')){SessionDataProvider.createCookie('basket',sessid+'-bask');} if(s){s=s.json;try{var content=Ext.get('content_container');if(content){content.mask('Adding to Basket...');content.unmask.defer(2000,content);} SessionDataProvider.addToBasket([s],function(){SABSFactory.UpdateBasketSummary();});}catch(er){Ext.Msg.alert('Error',er);}}}else if(e.target.id==='book'){if(!SessionDataProvider.hasCookie('booking')){SessionDataProvider.createCookie('booking',sessid+'-book');} if(s){s=s.json;try{var content=Ext.get('content_container');if(content){content.mask('Starting Booking Process...');content.unmask.defer(2000,content);} SessionDataProvider.addToBookingBasket([s],function(){});SessionDataProvider.retrieveBookingBasketContents(function(response){var r=Ext.decode(response.responseText);var recsToRemove=[];Ext.each(r,function(o){if(o.RecType!='SYS'&&o.RecType!='NTE'){recsToRemove.push(o);}});SessionDataProvider.deleteFromBookingBasket(recsToRemove,function(){SessionDataProvider.addToBookingBasket([s],function(){document.location=SABSFactory.IsFromOld?'/cgi-bin/newconsumerswitch.pl?consumer=new_booking&run=search_form':'/index.php?search_stage=booking';});});});}catch(er){Ext.Msg.alert('Error',er);}}}else if(e.target.id==='brochure'){var s=p.getStore().getAt(ix);if(s){BrochureWindow.showBrochure(s.json);}}});SABSFactory.getPollWorker({offset:0,delay:2000,url:'/cgi-bin/SAPS/JsponPollwk.pl',session:SessionDataProvider.getCookie('search_saps'),searchType:cfg.type,SABSConfig:SABS.Config,searchDate:SessionDataProvider.getDate(),listeners:{'start':function(){ct.dom.innerHTML=SABSFactory.getLoadingHTML();},'results':function(worker,type,results){var st=p.getStore();var filtered=SABSFactory.filterUnknownRecords(results);if(p.name&&p.name==='carhire'||p.name==='transfer'){var params=Ext.decode(SessionDataProvider.getCookie('mySAPSPARAMS'));Ext.each(filtered,function(o){o.DepDateOut=params.DepDateOut;o.DepDateIn=params.DepDateIn;});} if(results.length>0){st.loadData({results:filtered},true);st.load({params:{start:0,limit:5}});st.sort('Price','ASC');} if(st.totalLength>0&&p.hidden){ct.dom.innerHTML="";p.show();p.render(ct);}},'complete':function(){var st=p.getStore();if(st.totalLength===0){ct.dom.innerHTML=SABSFactory.getNoResultsHTML();} else if(p.hidden){ct.dom.innerHTML="";p.show();p.render(ct);}},'error':function(worker,type,msg){ct.dom.innerHTML=SABSFactory.getNoResultsHTML(type);}}}).start();}else{Ext.Msg.alert('Error','no session!');}};}else if(cfg.stage=='landing'){return function(){if(SessionDataProvider.hasSession()){var sessid=SessionDataProvider.getSession();var ct=Ext.get(cfg.renderTo);var p=SABSFactory.getPanel('landing');p.render(ct);try{SessionDataProvider.retrieveBasketContents(function(response){var r=Ext.decode(response.responseText);var recs=SABSFactory.filterUnknownRecords(r);p.getStore().loadData({results:recs});var nmes=[];var phns=[];var adrs=[];var ntes=[];Ext.each(r,function(o){if(o.RecType=='NME'){nmes.push(o);}else if(o.RecType=='PHN'){phns.push(o);}else if(o.RecType=='ADR'){adrs.push(o);}else if(o.RecType=='NTE'&&(o.Title=='ContactTime'||o.Title=='Comments')){ntes.push(o);}});var lead=nmes[0];var cdetailsStr="
      ";cdetailsStr+="
    • Name: "+lead.Title+" "+lead.Forename+" "+lead.Surname+"
    • ";lead=adrs[0];if(lead){cdetailsStr+="
    • Address: "+lead.Address+" "+lead.County+" "+lead.PostCode+"
    • ";} lead=phns[0];if(lead){cdetailsStr+="
    • Telephone:"+lead.Number+"
    • ";} lead=phns[1];if(lead){cdetailsStr+="
    • Mobile:"+lead.Number+"
    • ";} lead=adrs[1];if(lead){cdetailsStr+="
    • Email: "+lead.Address+"
    • ";} lead=ntes[1];if(lead){cdetailsStr+="
    • Comments: "+lead.Content+"
    • ";} p.setContactDetails(cdetailsStr);p.setEnquiryReference(sessid);ct.unmask();SessionDataProvider.clearSession();});ct.mask("Loading basket contents...");}catch(e){Ext.Msg.alert('Error',e);}}else{SessionDataProvider.getSession();}};}else if(cfg.stage=='basket'){return function(){if(SessionDataProvider.hasSession()){var ct=Ext.get(cfg.renderTo);var p=SABSFactory.getPanel('basket');p.render(ct);p.on('click',function(dv,ix,node,e){e.stopEvent();if(e.target.id==='basket'){var store=p.getStore();var s=store.getAt(ix);if(s){var sjson=s.json;try{SessionDataProvider.deleteFromBasket([sjson],function(){store.remove(s);SABSFactory.UpdateBasketSummary();});}catch(er){Ext.Msg.alert('Error',er);}}} else if(e.target.id==='brochure'){var s=p.getStore().getAt(ix);if(s){BrochureWindow.showBrochure(s.json);}}});try{SessionDataProvider.retrieveBasketContents(function(response){var r=Ext.decode(response.responseText);var recs=SABSFactory.filterUnknownRecords(r);var params=Ext.decode(SessionDataProvider.getCookie('mySAPSPARAMS'));Ext.each(recs,function(o){if(o.RecType==='TRS'){o.DepDateOut=params.DepDateOut;o.DepDateIn=params.DepDateIn;}});p.getStore().loadData({results:recs});ct.unmask();});ct.mask("Loading basket contents...");}catch(e){Ext.Msg.alert('Error',e);} p.buttons[0].on('click',function(){location.href=cfg.next;});}else{SessionDataProvider.getSession();}};}else if(cfg.stage=='booking'){return function(){if(SessionDataProvider.hasSession()){var ct=Ext.get(cfg.renderTo);var p=SABSFactory.getPanel('basket','booking');p.on('render',function(passed){var tbar=passed.getTopToolbar();var bookBtn=p.buttons[0];bookBtn.toggleHandler=function(btn,pressed){if(typeof bookingMgr!='undefined'){bookingMgr.stop();bookingMgr.purgeListeners();bookingMgr=undefined;} if(pressed){SABSFactory.doBooking(p);}};});p.render(ct);p.on('click',function(dv,ix,node,e){e.stopEvent();if(e.target.id==='basket'){var store=p.getStore();var s=store.getAt(ix);if(s){var sjson=s.json;try{SessionDataProvider.deleteFromBasket([sjson],function(){store.remove(s);SABSFactory.UpdateBasketSummary();});}catch(er){Ext.Msg.alert('Error',er);}}}else if(e.target.id==='book-item-action'){if(typeof bookingMgr!='undefined'){var store=p.getStore();var s=store.getAt(ix);var bm=bookingMgr.getBookingProcessByRecord(s);SABSFactory.storeContactDetails(bm);s.set("Booking","Awating Payment Confirmation");this.fireEvent('checkpayment',s.id);SABSFactory.buildSecpayForm(bm,s);}else{var bookBtn=p.buttons[0];bookBtn.setText(bookBtn.toggledText);SABSFactory.doBooking(p);}}else if(e.target.id==='book-item-action2'){var store=p.getStore();var s=store.getAt(ix);var bm=bookingMgr.getBookingProcessByRecord(s);if(typeof bookingMgr!='undefined'){SABSFactory.buildSecpayForm(bm,s);}else{var bookBtn=p.buttons[0];bookBtn.setText(bookBtn.toggledText);SABSFactory.doBooking(p);}}else if(e.target.id==='brochure'){var s=p.getStore().getAt(ix);if(s){BrochureWindow.showBrochure(s.json);}}});try{var div=Ext.get('basket-summary');div.style='display:hidden;';SessionDataProvider.retrieveBookingBasketContents(function(response){var r=Ext.decode(response.responseText);var recs=SABSFactory.filterUnknownRecords(r);if(recs[0].RecType==='TRS'){var params=Ext.decode(SessionDataProvider.getCookie('mySAPSPARAMS'));recs[0].DepDateOut=params.DepDateOut;recs[0].DepDateIn=params.DepDateIn;} if(typeof recs[0].Costs!='undefined'){delete recs[0].Costs;} if(typeof recs[0].Errata!='undefined'){delete recs[0].Errata;} p.getStore().loadData({results:[recs[0]]});ct.unmask();if(Ext.isIE&&!Ext.isIE8){p.buttons[0].focus();p.buttons[0].toggle(true);p.buttons[0].toggle(false);}});ct.mask("Loading basket contents...");}catch(e){Ext.Msg.alert('Error',e);}}else{SessionDataProvider.getSession();}};} else if(cfg.stage=='contact'){return function(){if(SessionDataProvider.hasSession()){var ct=Ext.get(cfg.renderTo);var f=SABSFactory.getForm('contact');f.render(ct);f.buttons[0].on('click',function(btn){var f=btn.ownerCt.getForm();if(f.isValid()){var data=SABSFactory.getContactDetailsFormatter()(f.getValues());if(data.length){try{ct.mask("Storing contact details...");SessionDataProvider.retrieveBasketContents(function(response){var r=Ext.decode(response.responseText);var recs=SABSFactory.filterUnknownRecords(r);SessionDataProvider.addToBasket(data,function(){SessionDataProvider.sendConfirmationEmails(function(){ct.unmask();SessionDataProvider.retrieveBasketContents(function(response){var r=Ext.decode(response.responseText);});location.href=cfg.next;});});});}catch(e){Ext.Msg.alert('Error',e);}}}});}else{Ext.Msg.alert('Error','no session!');}};}},UpdateBasketSummary:function(){SABSFactory.setBasketText();SABSFactory.retrieveBasketSummary();},setBasketText:function(summary){var div=Ext.get('basket-summary');if(!div){return;} if(div.dom.style.display!='block'){div.dom.style.display='block';} if(summary){var html;if(summary.items===0){html='Enquiry basket is empty';}else{var link=SABSFactory.IsFromOld?'newconsumerswitch.pl?consumer=new_basket&run=search_form&type=':'/?search_stage=basket';html=String.format('{1} item{2} in enquiry basket: {3}',link,summary.items,summary.items==1?'':'s',(summary.currency=='mixed'?'mixed currencies':SABS.Money(summary.price,summary.currency)));} div.dom.innerHTML=html;} else{div.dom.innerHTML='Loading basket...';}},retrieveBasketSummary:function(){if(!SessionDataProvider.hasSession()){SABSFactory.setBasketText({items:0,price:0,currency:'GBP'});} try{SessionDataProvider.retrieveBasketContents(function(response){var r=Ext.decode(response.responseText);var types=['HOL','JNY','FLT','ACC','TRS'];var items=0,price=0;var basketCurrency='GBP';var lastCurrency;Ext.each(r,function(o){if(types.indexOf(o.RecType)>=0){o=SABSFactory.prepareData(o);items++;price+=SABSFactory.getItemPrice(undefined,o);if(!lastCurrency){lastCurrency=o.Currency;basketCurrency=o.Currency;} else{if(lastCurrency!=o.Currency){basketCurrency='mixed';}}}});SABSFactory.setBasketText({items:items,price:price,currency:basketCurrency});});}catch(er){SABSFactory.setBasketText({items:0,price:0,currency:'GBP'});}},filterUnknownRecords:function(records){var filteredRecords=[];var types=['HOL','JNY','FLT','ACC','TRS'];Ext.each(records,function(o){if(types.indexOf(o.RecType)>=0){filteredRecords.push(o);}});Ext.each(records,function(o){if(o.RecType==='NTE'&&o.Title==='BookingStage'){var content=Ext.decode(o.Content);if(content.JSON){filteredRecords[content.Item]=content.JSON;}}});Ext.each(records,function(o){if(o.RecType==='NTE'&&o.Title==='BookingComplete'){if(o.Content==='Success'){filteredRecords[0].Booking='already_booked';filteredRecords[0].DisplayPrice='false';var button=Ext.get('basket-book-btn');button.setVisible(false);} else if(o.Content==='Failed'){filteredRecords[0].Booking='already_booked_failed';var button=Ext.get('basket-book-btn');button.setVisible(false);}}});return filteredRecords;},doBooking:function(pl){var p=pl;var bs=p.getStore();if(bs.getCount()>0){var recs=bs.getRange()[0];var recsToBook=[];Ext.each(recs,function(o){if(o.json.Icons.indexOf("s")>=0){o.json.SearchParams=Ext.decode(SessionDataProvider.getParams());if(o.data.RecType=='JNY'){o.Type='flight';o.data.Type='flight';}else if(o.data.RecType=='FLT'){o.Type='sflight';o.data.Type='sflight';}else if(o.data.RecType=='HOL'){o.Type='holiday';o.data.Type='holiday';}else if(o.data.RecType=='TRS'){if(o.data.ProductType.indexOf("Shuttle")>=0||o.data.ProductType.indexOf("Transfer")>=0||o.data.ProductType.indexOf("Taxi")>=0){o.Type='transfer';o.data.Type='transfer';}else{o.Type='carhire';o.data.Type='carhire';}}else{o.Type='hotel';o.data.Type='hotel';o.roomType='ROM';o.json.Rooms='';} recsToBook.push(o);}});_initMessageBus=function(){messageBus=new Ext.util.Observable();messageBus.addEvents('bookingcomplete');messageBus.on({'alternatives':function(bm,bskpanel,type,alts,recId){AltWindow.showInfo(bm,type,alts,recId);var rec=bm.store.getById(recId);rec.set("Booking","alternatives");},'bookingcomplete':function(bm,bskpanel){}});};_initMessageBus();bookingMgr=new ConsumerBookingManager({store:bs,records:recsToBook,listeners:{'alternatives':function(bm,type,alts,recId){messageBus.fireEvent('alternatives',bm,p,type,alts,recId);},'complete':function(bm){messageBus.fireEvent('bookingcomplete',bm,p);}}});p.on('bookpressed',bookingMgr.doBookingStageForRecId,bookingMgr);p.on('checkpayment',bookingMgr.checkPayment,bookingMgr);bookingMgr.start();}},buildSecpayForm:function(bm,s){var merchantDetails=SessionDataProvider.getCosts()||{};var merchant_id=merchantDetails.keys['payment.merchantid'];var merchant_name=merchantDetails.keys['payment.method'];var ProductToAPIType={carhire:'BC',taxi:'BT',hotel:'BA',train:'BR',flight:'BF',sflight:'BS',holiday:'BH',transfer:'BT'};var cfg={amount:SABSFactory.getItemPrice(undefined,bm.json),currency:s.data.Currency||'GBP',trans_id:ProductToAPIType[bm.type]+'-'+SessionDataProvider.getCookie('booking')+'--'+SessionDataProvider.getSession(),email:bm.json.Addresses[1].Address,phone:bm.json.Phones[0]['Number'],address:bm.json.Addresses[0].Address,postcode:bm.json.Addresses[0].PostCode,time:bm.lastResponse[0].DateStored};if(window.location.toString().indexOf("index")>=0){cfg.callback=window.location.toString().split('/index')[0]+'/cgi-bin/SAPS/checkBookingPayment.pl';}else{cfg.callback=window.location.toString().split('http://sabsweb.co.uk/?search_stage')[0]+'/cgi-bin/SAPS/checkBookingPayment.pl';} cfg.digest=this.getDigest(cfg)||'';if(merchant_name==='paypal'||cfg.digest.length===32){if(merchant_id){cfg.merchant=merchant_id;} if(bm.json.Passengers[0].Title&&bm.json.Passengers[0].Forename&&bm.json.Passengers[0].Surname){cfg.firstname=bm.json.Passengers[0].Forename;cfg.surname=bm.json.Passengers[0].Surname;cfg.name=bm.json.Passengers[0].Title+' '+bm.json.Passengers[0].Forename+' '+bm.json.Passengers[0].Surname;} var url;if(merchant_name==='realex'){url=['https://epage.payandshop.com/epage.cgi?','MERCHANT_ID='+cfg.merchant,'&ORDER_ID='+cfg.trans_id,'&AMOUNT='+parseInt(Math.round(cfg.amount*100),10),'&ACCOUNT=','&CURRENCY='+cfg.currency,'&TIMESTAMP='+cfg.time,'&MD5HASH='+cfg.digest,'&AUTO_SETTLE_FLAG=1'].join('');PaymentWindow.showInfo(url,300,460);}else if(merchant_name==='paypal'){cfg.holidayTitle=bm.type+' '+bm.json.DepPointOutFull+' '+bm.json.ArrPointOutFull||'';url=['https://www.paypal.com/cgi-bin/webscr?','cmd=_cart','&upload=1','&business='+cfg.merchant,'&item_name_1='+cfg.holidayTitle,'&invoice='+cfg.trans_id,'&amount_1='+cfg.amount,'¤cy_code='+cfg.currency,'&shipping_1=0','&first_name='+cfg.firstname,'&last_name='+cfg.surname,'&email='+cfg.email].join('');var mywindow=window.open(url,"paypal","menubar=1,resizable=1,width=900,height=900,scrollbars=1");}else{var options=['dups=true,','mail_merchants=support@redskyittravel.com:bookings@ramesystravel.co.uk,','mail_attach_customer=false,','mail_attach_merchant=false,','mail_message=Thank you for booking with us
      ','IMPORTANT Your payment to Micros Travel has now been debited from your credit card. ','However your booking is not confirmed until you have received a further email giving the operators booking reference number.
      ','If this has not arrived within 24 hours please contact Micros Travel at support@redskyittravel.com or phone 0161 941 1307.,','idiompotent=true'].join('');url=['https://www.secpay.com/java-bin/ValCard?','merchant='+cfg.merchant,'&trans_id='+cfg.trans_id,'&callback='+cfg.callback,'&amount='+cfg.amount,'&digest='+cfg.digest,'¤cy'+cfg.currency,'&customer='+cfg.name,'&ship_name='+cfg.name,'&ship_email='+cfg.email,'&ship_addr_1='+cfg.address,'&ship_post_code='+cfg.postcode,'&ship_tel='+cfg.phone,'&order=','&branding=When+you+press+the+Authorise+button+your+booking+will+be+made.+This+may+take+a+few+moments%2C+so+please+don%27t+press+Stop+or+close+your+browser+before+you+see+the+booking+confirmation+page','&options='+options].join('');var mywindow=window.open(url,"secpay","menubar=1,resizable=1,width=900,height=900,scrollbars=1");}}else{s.set("Booking","error-digest");var button=Ext.get('basket-book-btn');button.setVisible(false);}},storeContactDetails:function(bm){var recs=[];if(bm.json.Passengers[0].Forename&&bm.json.Passengers[0].Surname){recs.push({RecType:'NME',Title:bm.json.Passengers[0].Title,Forename:bm.json.Passengers[0].Forename,Surname:bm.json.Passengers[0].Surname,PersonAgeType:'A'});} if(bm.json.Addresses[0].Address&&bm.json.Addresses[0].PostCode){recs.push({RecType:'ADR',AddrType:'Addr1',House:'',Address:bm.json.Addresses[0].Address,County:'',PostCode:bm.json.Addresses[0].PostCode});} if(bm.json.Addresses[1].Address){recs.push({RecType:'ADR',AddrType:'Email',Address:bm.json.Addresses[1].Address});} if(bm.json.Phones[0]['Number']){recs.push({RecType:'PHN',PhoneType:'H',CountryCode:'',AreaCode:'','Number':bm.json.Phones[0]['Number'],Extension:''});} SessionDataProvider.addToBookingBasket(recs,function(){},'CON');},getDigest:function(cfg){var id;Ext.Ajax.request({url:'/cgi-bin/SAPS/getMagic.pl',disableCaching:false,method:'GET',params:{trans_id:cfg.trans_id,amount:cfg.amount||''},async:false,success:function(response,opts){var obj;try{obj=Ext.decode(response.responseText);} catch(e){options.fail.call(options.scope,'Unable to decode the server response from '+ ProfileAccess.PROFILE_ACCESS_URL+'. The json error is: '+e.message);return;} id=obj.digest;return;}});return id;}};;BrochureWindow=function(){var cfg={id:"x-brochure-window",title:'Brochure',closable:true,plain:false,shadow:false,width:750,height:500,autoScroll:true,bodyStyle:{'padding':'15px','background-color':'#fff'},resizable:true,buttons:[{text:'Close',handler:function(b){b.ownerCt.close();}}]};BrochureWindow.superclass.constructor.call(this,cfg);};Ext.extend(BrochureWindow,Ext.Window,{fetchBrochure:function(record){this.body.update('Please wait, loading brochure details...');var json=Ext.util.JSON.encode({RecType:'ACC',Operator:record.Operator,HolidayCode:record.HolidayCode,DepDateOut:record.DepDateOut,ResortName:record.ResortName,HotelName:record.HotelName,BrochureCode:record.BrochureCode});var connObj=Ext.Ajax;this.broConn=connObj.request({url:BROCHURE_REQUEST_URL,params:{json:json},timeout:10000,success:this.receivedData,failure:this.showError,scope:this});},receivedData:function(response,params){var responseObj=Ext.util.JSON.decode(response.responseText);if(this.findErrors(responseObj)){this.showNoBrochure();} else{var brochureData=this.parseBrochure(responseObj);brochureData=this.calculateImageSizes(brochureData);if(brochureData.descriptions.length>0||brochureData.images.length>0) {this.body.update(this.getTemplate().apply(brochureData));} else{this.showNoBrochure();}}},showNoBrochure:function(){this.body.update('

      Sorry, no brochure information is available.

      ');},findErrors:function(responseObj){var l=responseObj.length;if(typeof l==='undefined'||l===0){return true;} for(i=0;imaxImageWidth){imageWidth=maxImageWidth;} if(imageWidth','

      ','','{ResortName} - ','','{HotelName}','

      ','

      ','','','
      ','
      ','

      ','','
      ','{Title}
      {Text}','
      ','
      ','').compile();}});BrochureWindow.instance=null;BrochureWindow.showBrochure=function(record){var instance;if(BrochureWindow.instance){BrochureWindow.instance.close();BrochureWindow.instance=null;} instance=BrochureWindow.instance=new BrochureWindow();instance.render(document.body);instance.fetchBrochure(record);instance.show();};;PaymentWindow=function(url,height,width){var yourl=url var iframe=new Ext.ux.ManagedIframePanel({iconCls:'icon-tab-external',closable:true,fitToParent:true,height:650,defaultSrc:yourl});var cfg={id:"x-brochure-window",title:'Payment',closable:true,closeAction:'hide',plain:false,shadow:false,width:width||750,height:height||700,autoScroll:true,bodyStyle:{},resizable:true,items:[iframe],buttons:[{text:'Close',style:{'padding-top':'15px'},handler:function(b){b.ownerCt.hide();var content=Ext.get('content_container');content.unmask.defer(2000,content);}}]};PaymentWindow.superclass.constructor.call(this,cfg);};Ext.extend(PaymentWindow,Ext.Window,{});PaymentWindow.instance=null;PaymentWindow.showInfo=function(url){if(PaymentWindow.instance){PaymentWindow.instance.show();}else{instance=PaymentWindow.instance=new PaymentWindow(url);instance.render(document.body);instance.show();}};