window._g=window._g||{}; _g.shared={}; if(window.console===undefined){window.console={log:function(a){}} }_g.shared.HTTP=new function(){var createResponse=function(){var response=new Object(); response.headers=new Object(); response.body=new Object(); return response }; var getResponseFromXhr=function(request){if(!request){return null }var response=createResponse(); response.body=request.responseText; response.headers[_g.HTTP.HEADER_STATUS]=request.status; response.responseText=request.responseText; response.status=request.status; return response }; return{EXTENSION_HTML:".html",EXTENSION_JSON:".json",EXTENSION_RES:".res",HEADER_STATUS:"Status",HEADER_MESSAGE:"Message",HEADER_LOCATION:"Location",HEADER_PATH:"Path",PARAM_NO_CACHE:"cq_ck",get:function(url,callback,scope,suppressForbiddenCheck){url=_g.HTTP.getXhrHookedURL(_g.HTTP.externalize(url,true)); if(callback!=undefined){return _g.$.ajax({type:"GET",url:url,externalize:false,encodePath:false,hook:false,complete:function(request,textStatus){var response=getResponseFromXhr(request); if(!suppressForbiddenCheck){_g.HTTP.handleForbidden(response) }callback.call(scope||this,this,textStatus=="success",response) }}) }else{try{var request=_g.$.ajax({type:"GET",url:url,async:false,externalize:false,encodePath:false,hook:false}); var response=getResponseFromXhr(request); if(!suppressForbiddenCheck){_g.HTTP.handleForbidden(response) }return response }catch(e){return null }}},post:function(url,callback,params,scope,suppressErrorMsg,suppressForbiddenCheck){url=_g.HTTP.externalize(url,true); var hook=_g.HTTP.getXhrHook(url,"POST",params); if(hook){url=hook.url; params=hook.params }if(callback!=undefined){return _g.$.ajax({type:"POST",url:url,data:params,externalize:false,encodePath:false,hook:false,complete:function(request,textStatus){var response=_g.HTTP.buildPostResponseFromHTML(request.responseText); if(!suppressForbiddenCheck){_g.HTTP.handleForbidden(request) }callback.call(scope||this,this,textStatus=="success",response) }}) }else{try{var request=_g.$.ajax({type:"POST",url:url,data:params,async:false,externalize:false,encodePath:false,hook:false}); var response=_g.HTTP.buildPostResponseFromHTML(request.responseText); if(!suppressForbiddenCheck){_g.HTTP.handleForbidden(request) }return response }catch(e){return null }}},getParameter:function(url,name){var params=_g.HTTP.getParameters(url,name); return params!=null?params[0]:null },getParameters:function(url,name){var values=[]; if(!name){return null }name=encodeURIComponent(name); if(url.indexOf("?")==-1){return null }if(url.indexOf("#")!=-1){url=url.substring(0,url.indexOf("#")) }var query=url.substring(url.indexOf("?")+1); if(query.indexOf(name)==-1){return null }var queryPts=query.split("&"); for(var i=0; i1?decodeURIComponent(paramPts[1]):"") }}return values.length>0?values:null },addParameter:function(url,name,value){if(value&&value instanceof Array){for(var i=0; iobj.length-2||index==-1){index=obj.length-2 }for(var i=0; i0)?url.replace("."+selectors.join("."),""):url; if(selectors.length>0){for(var i=0; i0){var begin=dc.indexOf(cname); if(begin!=-1){begin+=cname.length; var end=dc.indexOf(";",begin); if(end==-1){end=dc.length }return decodeURIComponent(dc.substring(begin,end)) }}return null },setCookie:function(name,value,path,days,domain,secure){if(typeof(days)!="number"){days=7 }var date; if(days>0){date=new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)) }else{date=new Date(0) }document.cookie=encodeURIComponent(name)+"="+encodeURIComponent(value)+"; "+(days!=0?"expires="+date.toGMTString()+"; ":"")+(domain?"domain="+domain+"; ":"")+(path?"path="+path:"")+(secure?"; secure":""); return value },clearCookie:function(name,path,domain,secure){_g.HTTP.setCookie(name,"null",path||"",-1,domain||"",secure||"") },getSchemeAndAuthority:Granite.HTTP.getSchemeAndAuthority,getContextPath:Granite.HTTP.getContextPath,externalize:function(url,encode){if((typeof G_IS_HOOKED!="undefined")&&G_IS_HOOKED(url)){return url }if(encode){url=_g.HTTP.encodePathOfURI(url) }url=Granite.HTTP.externalize(url); return url },internalize:Granite.HTTP.internalize,getPath:Granite.HTTP.getPath,getSuffix:function(){if(window.CQURLInfo&&CQURLInfo.suffix){return CQURLInfo.suffix }return null },getSelectors:function(url){if(!url&&window.CQURLInfo){if(CQURLInfo.selectors){return CQURLInfo.selectors }}var selectors=[]; url=url||window.location.href; url=_g.HTTP.removeParameters(url); url=_g.HTTP.removeAnchor(url); var fragment=url.substring(url.lastIndexOf("/")); if(fragment){var split=fragment.split("."); if(split.length>2){for(var i=0; i0&&i/g,">").replace(/").replace(/</g,"<").replace(/"/g,'"').replace(/&/g,"&") },ellipsis:function(value,length,word){if(value&&value.length>length){if(word){var vs=value.substr(0,length-2); var index=Math.max(vs.lastIndexOf(" "),vs.lastIndexOf("."),vs.lastIndexOf("!"),vs.lastIndexOf("?"),vs.lastIndexOf(";")); if(index==-1||index<(length-15)){return value.substr(0,length-3)+"..." }else{return vs.substr(0,index)+"..." }}else{return value.substr(0,length-3)+"..." }}return value },patchText:Granite.Util.patchText,eval:function(response){return _g.HTTP.eval(response) },getTopWindow:Granite.Util.getTopWindow,setIFrameMode:Granite.Util.setIFrameMode} }; _g.Util=_g.shared.Util; _g.shared.Sling=function(){return{SELECTOR_INFINITY:Granite.Sling.SELECTOR_INFINITY,CHARSET:Granite.Sling.CHARSET,STATUS:Granite.Sling.STATUS,STATUS_BROWSER:Granite.Sling.STATUS_BROWSER,OPERATION:Granite.Sling.OPERATION,OPERATION_DELETE:Granite.Sling.OPERATION_DELETE,OPERATION_MOVE:Granite.Sling.OPERATION_MOVE,DELETE_SUFFIX:Granite.Sling.DELETE_SUFFIX,TYPEHINT_SUFFIX:Granite.Sling.TYPEHINT_SUFFIX,COPY_SUFFIX:Granite.Sling.COPY_SUFFIX,MOVE_SUFFIX:Granite.Sling.MOVE_SUFFIX,ORDER:Granite.Sling.ORDER,REPLACE:Granite.Sling.REPLACE,DESTINATION:Granite.Sling.DESTINATION,SAVE_PARAM_PREFIX:Granite.Sling.SAVE_PARAM_PREFIX,IGNORE_PARAM:Granite.Sling.IGNORE_PARAM,REQUEST_LOGIN_PARAM:Granite.Sling.REQUEST_LOGIN_PARAM,LOGIN_URL:Granite.Sling.LOGIN_URL,LOGOUT_URL:Granite.Sling.LOGOUT_URL,processBinaryData:function(a){if(a&&a[":jcr:data"]!=undefined){var b=new Object(); b.size=a[":jcr:data"]; b.type=a["jcr:mimeType"]; b.date=a["jcr:lastModified"]; a=b }return a },getContentPath:function(c,a,b){var d=a; if(d.lastIndexOf(".")>d.lastIndexOf("/")){d=d.substr(0,d.indexOf(".",d.lastIndexOf("/"))) }if(c){if(c.indexOf("/")==0){d=c }else{if(b){while(c.indexOf("../")==0){c=c.substring(3); d=d.substring(0,d.lastIndexOf("/")) }}c=c.replace("./",""); d=d+"/"+c }}return d }} }(); _g.Sling=_g.shared.Sling; _g.shared.XSS=new function(){return{getXSSPropertyName:function(a){if(!a){return"" }if(_g.XSS.KEY_REGEXP.test(a)){return a }return a+=_g.XSS.KEY_SUFFIX },getXSSRecordPropertyValue:function(e,c,a){var d=""; if(e&&c){var b=e.get(this.getXSSPropertyName(c)); if(b){d=b }else{d=this.getXSSValue(e.get(c)) }if(a&&!isNaN(a)){d=_g.Util.ellipsis(d,a,true) }}return d },getXSSTablePropertyValue:function(d,c,a){var e=""; if(d&&c){var b=d[this.getXSSPropertyName(c)]; if(b){e=b }else{e=this.getXSSValue(d[c]) }if(a&&!isNaN(a)){e=_g.Util.ellipsis(e,a,true) }}return e },getXSSValue:function(a){if(a){return _g.Util.htmlEncode(a) }else{return"" }},updatePropertyName:function(a,b){if(!a||!b||!a[b]){return }if(a.xssProtect&&!a.xssKeepPropName){a[b]=this.getXSSPropertyName(a[b]) }},xssPropertyRenderer:function(d,b,c,a){if(a&&a.dataIndex&&c&&c.data&&c.data[this.getXSSPropertyName(a.dataIndex)]){d=c.data[this.getXSSPropertyName(a.dataIndex)]; if(a.ellipsisLimit&&!isNaN(a.ellipsisLimit)){d=_g.Util.ellipsis(d,a.ellipsisLimit,true) }return d }else{if(d){return d }else{return"" }}}} }; _g.XSS=_g.shared.XSS; _g.XSS.KEY_SUFFIX="_xss"; _g.XSS.KEY_REGEXP=new RegExp(_g.XSS.KEY_SUFFIX+"$"); _g.shared.I18n=Granite.I18n; _g.I18n=_g.shared.I18n; _g.shared.I18n.getMessage=Granite.I18n.get; _g.shared.I18n.getVarMessage=Granite.I18n.getVar; _g.shared.String=new function(){return{startsWith:function(d,b){if(d==null||b==null){return d==null&&b==null }if(b.length>d.length){return false }var a=d.toString(); var c=b.toString(); return(a.indexOf(c)==0) },endsWith:function(b,a){if(b==null||a==null){return b==null&&a==null }if(a.length>b.length){return false }b=b.toString(); a=a.toString(); return(b.lastIndexOf(a)==(b.length-a.length)) },contains:function(b,a){if(b==null||a==null){return false }b=b.toString(); a=a.toString(); return(b.indexOf(a)>=0) }} }; _g.String=_g.shared.String; _g.shared.ClientSidePersistence=function(a){var e={PERSISTENCE_NAME:_g.shared.ClientSidePersistence.decoratePersistenceName("ClientSidePersistence"),config:{},cache:null,getMode:function(){return this.config.mode },getWindow:function(){return this.config.window||_g.shared.Util.getTopWindow() },debug:function(){if(console){var f=this.getMap(); var h="[ClientSidePersistence -> mode="+this.getMode().name+", container="+(this.config.container||"")+"]\n"; var g=0; var i=new RegExp("^"+this.config.container+"/"); for(var k=0,n=Object.keys(f).sort(),l=null; k '"+m.replace(i,"")+"' = '"+decodeURIComponent(j)+"'\n" }if(!g){h+="(container is empty)" }console.log(h) }},keyName:function(f){return(this.config.container?(this.config.container+"/"):"")+f },getKeys:function(){var i=this.getMap(); var h=[]; if(i){for(var f in i){if(this.config.container){if(f.indexOf(this.config.container+"/")==0){var g=f.substring(this.config.container.length+1); h.push(g) }}else{h.push(f) }}}return h },get:function(f){var g=this.getMap()[this.keyName(f)]; return g?decodeURIComponent(g):g },set:function(g,j){g=(typeof g==="string")?g.replace(/:=/g,""):""; var i={key:g}; g=this.keyName(g); if(!g.length){return }var f=[]; var k=this.getMap(); i.action=k[g]?"update":"set"; if(j){k[g]=encodeURIComponent(j) }else{i.action="remove"; delete k[g] }for(var h in k){f.push(h+":="+k[h]) }this.cache=k; this.write(f.join("|")); _g.$.extend(i,{value:j,mode:this.getMode().name,container:this.config.container}); _g.$(_g.shared.ClientSidePersistence).trigger(_g.shared.ClientSidePersistence.EVENT_NAME,i) },getMap:function(){if(!this.cache||!this.config.useCache){var i=this.read().split("|"); var g={}; for(var f=0; f0){o=true; m=$CQ(p).attr("class").replace(/\s/g,".") }if(p.getAttribute&&p.getAttribute("name")){h(p,o,m) }for(var n=0; p.childNodes&&n