Revision: 1199
Author:
emili...@gmail.com
Date: Wed May 13 20:11:46 2015 UTC
Log: [No log message]
https://code.google.com/p/vosao/source/detail?r=1199
Modified:
/trunk/web/src/main/webapp/cms/main.min.js
=======================================
--- /trunk/web/src/main/webapp/cms/main.min.js Wed Nov 12 20:08:30 2014 UTC
+++ /trunk/web/src/main/webapp/cms/main.min.js Wed May 13 20:11:46 2015 UTC
@@ -8,4 +8,4 @@
*
http://www.opensource.org/licenses/mit-license.php
*
http://www.gnu.org/licenses/gpl.html
*/
-function toJSON(a){function e(){var a;while(c)a=c[b].prev,delete
c[b],c=a}function h(a,i,j){var k=[],l,m,n,o,p;if(a===null||
a===undefined)return"null";if(typeof a=="string")return
escapeJSONString(a);if(typeof a=="number")return a.toString();if(typeof
a=="boolean")return
a.toString();if(a[b]){l=[j],n=i;while(n)m&&m.unshift(n[b].ref),n===a&&(o=n,m=[o[b].ref]),l.unshift(n[b].ref),n=n[b].parent;if(o){if(JSONRpcClient.fixupCircRefs)return
l.shift(),m.shift(),d.push([l,m]),f;throw e(),new Error("circular reference
detected!")}if(JSONRpcClient.fixupDuplicates){m=[a[b].ref],n=a[b].parent;while(n)m.unshift(n[b].ref),n=n[b].parent;return
l.shift(),m.shift(),d.push([l,m]),f}}else
a[b]={parent:i,prev:c,ref:j},c=a;if(a.constructor===Date)return
a.javaClass?'{javaClass: "'+a.javaClass+'",
time: '+a.valueOf()+"}":'{javaClass: "java.util.Date",
time: '+a.valueOf()+"}";if(a.constructor===Array){for(p=0;p<a.length;p++)g=h(a[p],a,p),k.push(g===f?null:g);return"["+k.join(", ")+"]"}for(var
q in a)q!==b&&(a[q]===null||a[q]===undefined?k.push('"'+q+'": null'):typeof
a[q]!="function"&&(g=h(a[q],a,q),g!==f&&k.push(escapeJSONString(q)+": "+g)));return"{"+k.join(", ")+"}"}var
b="$_$jabsorbed$813492",c,d=[],f={},g;return
g=h(a,null,"root"),e(),d.length?{json:g,fixups:d}:{json:g}}function
JSONRpcClient(){var a=0,b,c,d,e,f,g=typeof
arguments[0],h=!0;g==="function"?(this.readyCB=arguments[0],a++):arguments[0]&&g==="object"&&arguments[0].length&&(this._addMethods(arguments[0]),a++,h=!1),this.serverURL=arguments[a],this.user=arguments[a+1],this.pass=arguments[a+2],this.objectID=0,h&&(this._addMethods(["system.listMethods"]),b=JSONRpcClient._makeRequest(this,"system.listMethods",[]),this.readyCB&&(e=this,b.cb=function(a,b){b|
|
e._addMethods(a),e.readyCB(a,b)}),this.readyCB?(JSONRpcClient.async_requests.push(b),JSONRpcClient.kick_async()):(d=JSONRpcClient._sendRequest(this,b),this._addMethods(d)))}function
JSONRPCCallableProxy(){this.objectID=arguments[0],this.javaClass=arguments[1],this.JSONRPCType="CallableReference"}(function(a){a.extend(a.fn,{swapClass:function(a,b){var
c=this.filter("."+a);return
this.filter("."+b).removeClass(b).addClass(a),c.removeClass(a).addClass(b),this},replaceClass:function(a,b){return
this.filter("."+a).removeClass(a).addClass(b).end()},hoverClass:function(b){return
b=b|
|"hover",this.hover(function(){a(this).addClass(b)},function(){a(this).removeClass(b)})},heightToggle:function(a,b){a?this.animate({height:"toggle"},a,b):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"](),b&&b.apply(this,arguments)})},heightHide:function(a,b){a?this.animate({height:"hide"},a,b):(this.hide(),b&&this.each(b))},prepareBranches:function(a){return
a.prerendered||
(this.filter(":last-child:not(ul)").addClass(b.last),this.filter((a.collapsed?"":"."+b.closed)+":not(."+b.open+")").find(">ul").hide()),this.filter(":has(>ul)")},applyClasses:function(c,d){this.filter(":has(>ul):not(:has(>a))").find(">span").unbind("click.treeview").bind("click.treeview",function(b){this==b.target&&d.apply(a(this).next())}).add(a("a",this)).hoverClass();if(!c.prerendered){this.filter(":has(>ul:hidden)").addClass(b.expandable).replaceClass(b.last,b.lastExpandable),this.not(":has(>ul:hidden)").addClass(b.collapsable).replaceClass(b.last,b.lastCollapsable);var
e=this.find("div."+b.hitarea);e.length||(e=this.prepend('<div
class="'+b.hitarea+'"/>').find("div."+b.hitarea)),e.removeClass().addClass(b.hitarea).each(function(){var
b="";a.each(a(this).parent().attr("class").split(" "),function(){b+=this+"-hitarea "}),a(this).addClass(b)})}this.find("div."+b.hitarea).click(d)},treeview:function(c){function
e(c,d){function e(d){return function(){return
f.apply(a("div."+b.hitarea,c).filter(function(){return
d?a(this).parent("."+d).length:!0})),!1}}a("a:eq(0)",d).click(e(b.collapsable)),a("a:eq(1)",d).click(e(b.expandable)),a("a:eq(2)",d).click(e())}function
f(){a(this).parent().find(">.hitarea").swapClass(b.collapsableHitarea,b.expandableHitarea).swapClass(b.lastCollapsableHitarea,b.lastExpandableHitarea).end().swapClass(b.collapsable,b.expandable).swapClass(b.lastCollapsable,b.lastExpandable).find(">ul").heightToggle(c.animated,c.toggle),c.unique&&a(this).parent().siblings().find(">.hitarea").replaceClass(b.collapsableHitarea,b.expandableHitarea).replaceClass(b.lastCollapsableHitarea,b.lastExpandableHitarea).end().replaceClass(b.collapsable,b.expandable).replaceClass(b.lastCollapsable,b.lastExpandable).find(">ul").heightHide(c.animated,c.toggle)}function
g(){function b(a){return a?1:0}var
d=[];i.each(function(b,c){d[b]=a(c).is(":has(>ul:visible)")?1:0}),a.cookie(c.cookieId,d.join(""),c.cookieOptions)}function
h(){var b=a.cookie(c.cookieId);if(b){var
d=b.split("");i.each(function(b,c){a(c).find(">ul")[parseInt(d[b])?"show":"hide"]()})}}c=a.extend({cookieId:"treeview"},c);if(c.toggle){var
d=c.toggle;c.toggle=function(){return
d.apply(a(this).parent()[0],arguments)}}this.data("toggler",f),this.addClass("treeview");var
i=this.find("li").prepareBranches(c);switch(c.persist){case"cookie":var
j=c.toggle;c.toggle=function(){g(),j&&j.apply(this,arguments)},h();break;case"location":var
k=this.find("a").filter(function(){return
this.href.toLowerCase()==location.href.toLowerCase()});if(k.length){var
l=k.addClass("selected").parents("ul,
li").add(k.next()).show();c.prerendered&&l.filter("li").swapClass(b.collapsable,b.expandable).swapClass(b.lastCollapsable,b.lastExpandable).find(">.hitarea").swapClass(b.collapsableHitarea,b.expandableHitarea).swapClass(b.lastCollapsableHitarea,b.lastExpandableHitarea)}}return
i.applyClasses(c,f),c.control&&(e(this,c.control),a(c.control).show()),this}}),a.treeview={};var
b=a.treeview.classes={open:"open",closed:"closed",expandable:"expandable",expandableHitarea:"expandable-hitarea",lastExpandableHitarea:"lastExpandable-hitarea",collapsable:"collapsable",collapsableHitarea:"collapsable-hitarea",lastCollapsableHitarea:"lastCollapsable-hitarea",lastCollapsable:"lastCollapsable",lastExpandable:"lastExpandable",last:"last",hitarea:"hitarea"}})(jQuery),define("jquery.treeview",function(){}),function(a){function
b(){if(!a.fn.ajaxSubmit.debug)return;var
b="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(b):window.opera&&window.opera.postError&&window.opera.postError(b)}a.fn.ajaxSubmit=function(c){function
w(b){var d=new FormData;for(var
e=0;e<b.length;e++){if(b[e].type=="file")continue;d.append(b[e].name,b[e].value)}g.find("input:file:enabled").each(function(){var
b=a(this).attr("name"),c=this.files;if(b)for(var
e=0;e<c.length;e++)d.append(b,c[e])});if(c.extraData)for(var f in
c.extraData)d.append(f,c.extraData[f]);c.data=null;var
h=a.extend(!0,{},a.ajaxSettings,c,{contentType:!1,processData:!1,cache:!1,type:"POST"});h.data=null;var
i=h.beforeSend;h.beforeSend=function(a,b){b.data=d,a.upload&&(a.upload.onprogress=function(a){b.progress(a.position,a.total)}),i&&i.call(b,a,c)},a.ajax(h)}function
x(e){function w(a){var
b=a.contentWindow?a.contentWindow.document:a.contentDocument?a.contentDocument:a.document;return
b}function z(){function h(){try{var a=w(n).readyState;b("state
= "+a),a.toLowerCase()=="uninitialized"&&setTimeout(h,50)}catch(c){b("Server
abort: ",c," (",
c.name,")"),E(v),s&&clearTimeout(s),s=undefined}}var
c=g.attr("target"),e=g.attr("action");f.setAttribute("target",l),d||
f.setAttribute("method","POST"),e!=j.url&&f.setAttribute("action",j.url),!j.skipEncodingOverride&&(!d|
|
/post/i.test(d))&&g.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),j.timeout&&(s=setTimeout(function(){r=!0,E(u)},j.timeout));var
i=[];try{if(j.extraData)for(var k in j.extraData)i.push(a('<input
type="hidden"
name="'+k+'">').attr("value",j.extraData[k]).appendTo(f)[0]);j.iframeTarget|
|
(m.appendTo("body"),n.attachEvent?n.attachEvent("onload",E):n.addEventListener("load",E,!1)),setTimeout(h,15),f.submit()}finally{f.setAttribute("action",e),c?f.setAttribute("target",c):g.removeAttr("target"),a(i).remove()}}function
E(c){if(o.aborted||D)return;try{B=w(n)}catch(d){b("cannot access response
document: ",d),c=v}if(c===u&&o){o.abort("timeout");return}if(c==v&&o){o.abort("server
abort");return}if(!B||
B.location.href==j.iframeSrc)if(!r)return;n.detachEvent?n.detachEvent("onload",E):n.removeEventListener("load",E,!1);var
e="success",f;try{if(r)throw"timeout";var g=j.dataType=="xml"||
B.XMLDocument||
a.isXMLDoc(B);b("isXml="+g);if(!g&&window.opera&&(B.body==null||
B.body.innerHTML=="")&&--C){b("requeing onLoad callback, DOM not
available"),setTimeout(E,250);return}var
h=B.body?B.body:B.documentElement;o.responseText=h?h.innerHTML:null,o.responseXML=B.XMLDocument?B.XMLDocument:B,g&&(j.dataType="xml"),o.getResponseHeader=function(a){var
b={"content-type":j.dataType};return
b[a]},h&&(o.status=Number(h.getAttribute("status"))||
o.status,o.statusText=h.getAttribute("statusText")||o.statusText);var
i=(j.dataType||"").toLowerCase(),l=/(json|script|text)/.test(i);if(l||
j.textarea){var
p=B.getElementsByTagName("textarea")[0];if(p)o.responseText=p.value,o.status=Number(p.getAttribute("status"))|
|o.status,o.statusText=p.getAttribute("statusText")||o.statusText;else
if(l){var
q=B.getElementsByTagName("pre")[0],t=B.getElementsByTagName("body")[0];q?o.responseText=q.textContent?q.textContent:q.innerText:t&&(o.responseText=t.textContent?t.textContent:t.innerText)}}else
i=="xml"&&!o.responseXML&&o.responseText!=null&&(o.responseXML=F(o.responseText));try{A=H(o,i,j)}catch(c){e="parsererror",o.error=f=c|
|e}}catch(c){b("error caught: ",c),e="error",o.error=f=c||
e}o.aborted&&(b("upload
aborted"),e=null),o.status&&(e=o.status>=200&&o.status<300||
o.status===304?"success":"error"),e==="success"?(j.success&&j.success.call(j.context,A,"success",o),k&&a.event.trigger("ajaxSuccess",[o,j])):e&&(f==undefined&&(f=o.statusText),j.error&&j.error.call(j.context,o,e,f),k&&a.event.trigger("ajaxError",[o,j,f])),k&&a.event.trigger("ajaxComplete",[o,j]),k&&!--a.active&&a.event.trigger("ajaxStop"),j.complete&&j.complete.call(j.context,o,e),D=!0,j.timeout&&clearTimeout(s),setTimeout(function(){j.iframeTarget|
|m.remove(),o.responseXML=null},100)}var
f=g[0],h,i,j,k,l,m,n,o,p,q,r,s,t=!!a.fn.prop;if(e)if(t)for(i=0;i<e.length;i++)h=a(f[e[i].name]),h.prop("disabled",!1);else
for(i=0;i<e.length;i++)h=a(f[e[i].name]),h.removeAttr("disabled");if(a(":input[name=submit],:input[id=submit]",f).length){alert('Error:
Form elements must not have name or id
of "submit".');return}j=a.extend(!0,{},a.ajaxSettings,c),j.context=j.context|
|j,l="jqFormIO"+(new
Date).getTime(),j.iframeTarget?(m=a(j.iframeTarget),q=m.attr("name"),q==null?m.attr("name",l):l=q):(m=a('<iframe
name="'+l+'" src="'+j.iframeSrc+'"
/>'),m.css({position:"absolute",top:"-1000px",left:"-1000px"})),n=m[0],o={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(c){var
d=c==="timeout"?"timeout":"aborted";b("aborting
upload... "+d),this.aborted=1,m.attr("src",j.iframeSrc),o.error=d,j.error&&j.error.call(j.context,o,d,c),k&&a.event.trigger("ajaxError",[o,j,d]),j.complete&&j.complete.call(j.context,o,d)}},k=j.global,k&&!(a.active++)&&a.event.trigger("ajaxStart"),k&&a.event.trigger("ajaxSend",[o,j]);if(j.beforeSend&&j.beforeSend.call(j.context,o,j)===!1){j.global&&a.active--;return}if(o.aborted)return;p=f.clk,p&&(q=
p.name,q&&!p.disabled&&(j.extraData=j.extraData|
|
{},j.extraData[q]=p.value,p.type=="image"&&(j.extraData[q+".x"]=f.clk_x,j.extraData[q+".y"]=f.clk_y)));var
u=1,v=2,x=a("meta[name=csrf-token]").attr("content"),y=a("meta[name=csrf-param]").attr("content");y&&x&&(j.extraData=j.extraData|
|{},j.extraData[y]=x),j.forceSync?z():setTimeout(z,10);var
A,B,C=50,D,F=a.parseXML||function(a,b){return window.ActiveXObject?(b=new
ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)):b=(new
DOMParser).parseFromString(a,"text/xml"),b&&b.documentElement&&b.documentElement.nodeName!="parsererror"?b:null},G=a.parseJSON|
|function(a){return window.eval("("+a+")")},H=function(b,c,d){var
e=b.getResponseHeader("content-type")||"",f=c==="xml"|
|!c&&e.indexOf("xml")>=0,g=f?b.responseXML:b.responseText;return
f&&g.documentElement.nodeName==="parsererror"&&a.error&&a.error("parsererror"),d&&d.dataFilter&&(g=d.dataFilter(g,c)),typeof
g=="string"&&(c==="json"||!c&&e.indexOf("json")>=0?g=G(g):(c==="script"|
|!c&&e.indexOf("javascript")>=0)&&a.globalEval(g)),g}}if(!this.length)return
b("ajaxSubmit: skipping submit process - no element selected"),this;var
d,e,f,g=this;typeof
c=="function"&&(c={success:c}),d=this.attr("method"),e=this.attr("action"),f=typeof
e=="string"?a.trim(e):"",f=f||window.location.href|
|"",f&&(f=(f.match(/^([^#]+)/)||
[])[1]),c=a.extend(!0,{url:f,success:a.ajaxSettings.success,type:d|
|"GET",iframeSrc:/^https/i.test(window.location.href|
|"")?"javascript:false":"about:blank"},c);var
h={};this.trigger("form-pre-serialize",[this,c,h]);if(h.veto)return
b("ajaxSubmit: submit vetoed via form-pre-serialize
trigger"),this;if(c.beforeSerialize&&c.beforeSerialize(this,c)===!1)return
b("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var
i=c.traditional;i===undefined&&(i=a.ajaxSettings.traditional);var
j,k,l,m=this.formToArray(c.semantic);c.data&&(c.extraData=c.data,j=a.param(c.data,i));if(c.beforeSubmit&&c.beforeSubmit(m,this,c)===!1)return
b("ajaxSubmit: submit aborted via beforeSubmit
callback"),this;this.trigger("form-submit-validate",[m,this,c,h]);if(h.veto)return
b("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var
n=a.param(m,i);j&&(n=n?n+"&"+j:j),c.type.toUpperCase()=="GET"?(c.url+=(c.url.indexOf("?")<0?"?":"&")+n,c.data=null):c.data=n;var
o=[];c.resetForm&&o.push(function(){g.resetForm()}),c.clearForm&&o.push(function(){g.clearForm(c.includeHidden)});if(!c.dataType&&c.target){var
p=c.success||function(){};o.push(function(b){var
d=c.replaceTarget?"replaceWith":"html";a(c.target)[d](b).each(p,arguments)})}else
c.success&&o.push(c.success);c.success=function(a,b,d){var e=c.context||
c;for(var f=0,h=o.length;f<h;f++)o[f].apply(e,[a,b,d||g,g])};var
q=a("input:file:enabled[value]",this),r=q.length>0,s="multipart/form-data",t=g.attr("enctype")==s|
|
g.attr("encoding")==s,u=!!(r&&q.get(0).files&&window.FormData);b("fileAPI :"+u);var
v=(r||t)&&!u;return c.iframe!==!1&&(c.iframe||
v)?c.closeKeepAlive?a.get(c.closeKeepAlive,function(){x(m)}):x(m):(r||
t)&&u?(c.progress=c.progress||
a.noop,w(m)):a.ajax(c),this.trigger("form-submit-notify",[this,c]),this},a.fn.ajaxForm=function(c){if(this.length===0){var
d={s:this.selector,c:this.context};return!a.isReady&&d.s?(b("DOM not ready,
queuing
ajaxForm"),a(function(){a(d.s,d.c).ajaxForm(c)}),this):(b("terminating;
zero elements found by selector"+(a.isReady?"":" (DOM not
ready)")),this)}return
this.ajaxFormUnbind().bind("submit.form-plugin",function(b){b.isDefaultPrevented()|
|
(b.preventDefault(),a(this).ajaxSubmit(c))}).bind("click.form-plugin",function(b){var
c=b.target,d=a(c);if(!
d.is(":submit,input:image")){var
e=d.closest(":submit");if(e.length==0)return;c=e[0]}var
f=this;f.clk=c;if(c.type=="image")if(b.offsetX!=undefined)f.clk_x=b.offsetX,f.clk_y=b.offsetY;else
if(typeof a.fn.offset=="function"){var
g=d.offset();f.clk_x=b.pageX-g.left,f.clk_y=b.pageY-g.top}else
f.clk_x=b.pageX-c.offsetLeft,f.clk_y=b.pageY-c.offsetTop;setTimeout(function(){f.clk=f.clk_x=f.clk_y=null},100)})},a.fn.ajaxFormUnbind=function(){return
this.unbind("submit.form-plugin
click.form-plugin")},a.fn.formToArray=function(b){var
c=[];if(this.length===0)return c;var
d=this[0],e=b?d.getElementsByTagName("*"):d.elements;if(!e)return c;var
f,g,h,i,j,k,l;for(f=0,k=e.length;f<k;f++){j=e[f],h=
j.name;if(!h)continue;if(b&&d.clk&&j.type=="image"){!j.disabled&&d.clk==j&&(c.push({name:h,value:a(j).val(),type:j.type}),c.push({name:h+".x",value:d.clk_x},{name:h+".y",value:d.clk_y}));continue}i=a.fieldValue(j,!0);if(i&&i.constructor==Array)for(g=0,l=i.length;g<l;g++)c.push({name:h,value:i[g]});else
i!==null&&typeof
i!="undefined"&&c.push({name:h,value:i,type:j.type})}if(!b&&d.clk){var
m=a(d.clk),n=m[0];h=
n.name,h&&!n.disabled&&n.type=="image"&&(c.push({name:h,value:m.val()}),c.push({name:h+".x",value:d.clk_x},{name:h+".y",value:d.clk_y}))}return
c},a.fn.formSerialize=function(b){return
a.param(this.formToArray(b))},a.fn.fieldSerialize=function(b){var
c=[];return this.each(function(){var d=
this.name;if(!d)return;var
e=a.fieldValue(this,b);if(e&&e.constructor==Array)for(var
f=0,g=e.length;f<g;f++)c.push({name:d,value:e[f]});else e!==null&&typeof
e!="undefined"&&c.push({name:
this.name,value:e})}),a.param(c)},a.fn.fieldValue=function(b){for(var
c=[],d=0,e=this.length;d<e;d++){var
f=this[d],g=a.fieldValue(f,b);if(g===null||typeof g=="undefined"||
g.constructor==Array&&!g.length)continue;g.constructor==Array?a.merge(c,g):c.push(g)}return
c},a.fieldValue=function(b,c){var
d=
b.name,e=b.type,f=b.tagName.toLowerCase();c===undefined&&(c=!0);if(c&&(!d|
|b.disabled||e=="reset"||e=="button"||(e=="checkbox"||
e=="radio")&&!b.checked||(e=="submit"||e=="image")&&b.form&&b.form.clk!=b||
f=="select"&&b.selectedIndex==-1))return null;if(f=="select"){var
g=b.selectedIndex;if(g<0)return null;var
h=[],i=b.options,j=e=="select-one",k=j?g+1:i.length;for(var
l=j?g:0;l<k;l++){var m=i[l];if(m.selected){var n=m.value;n||
(n=m.attributes&&m.attributes.value&&!m.attributes.value.specified?m.text:m.value);if(j)return
n;h.push(n)}}return h}return a(b).val()},a.fn.clearForm=function(b){return
this.each(function(){a("input,select,textarea",this).clearFields(b)})},a.fn.clearFields=a.fn.clearInputs=function(a){var
b=/^(?:color|date|datetime|email|month|number|password|range|search|tel|
text|time|url|week)$/i;return this.each(function(){var
c=this.type,d=this.tagName.toLowerCase();b.test(c)||d=="textarea"||
a&&/hidden/.test(c)?this.value="":c=="checkbox"||
c=="radio"?this.checked=!1:d=="select"&&(this.selectedIndex=-1)})},a.fn.resetForm=function(){return
this.each(function(){(typeof this.reset=="function"||typeof
this.reset=="object"&&!this.reset.nodeType)&&this.reset()})},a.fn.enable=function(a){return
a===undefined&&(a=!0),this.each(function(){this.disabled=!a})},a.fn.selected=function(b){return
b===undefined&&(b=!0),this.each(function(){var c=this.type;if(c=="checkbox"|
|c=="radio")this.checked=b;else
if(this.tagName.toLowerCase()=="option"){var
d=a(this).parent("select");b&&d[0]&&d[0].type=="select-one"&&d.find("option").selected(!1),this.selected=b}})},a.fn.ajaxSubmit.debug=!1}(jQuery),define("jquery.form",function(){}),define("view/page/context",[],function(){return{pageRequest:null,page:null,pages:{},pageId:"",pageParentUrl:"",editMode:!0,currentLanguage:"",isDefault:!1,loadData:function(){alert("Load
data was not
initialized!")}}}),define("view/page/version",["view/page/context"],function(a){function
c(){$("#addVersionLink").click(g),$("#versionCancelButton").click(i),$("#versionForm").submit(function(){return
h(),!1})}function
d(){Vosao.jsonrpc.pageService.getPageRequest(function(b){a.pageRequest=b,
a.page=
a.pageRequest.page,e()},a.pageId,a.pageParentUrl)}function
e(){var
c=a.pageRequest.versions;b=[],a.pages={},$.each(c.list,function(c,d){a.pages[String(d.version)]=d,b.push(String(d.version))}),b.sort();var
d="";$.each(b,function(c,e){var
f=a.pages[e];d+="<div>",a.pageId!=
f.id?d+='<a class="select button
ui-state-default ui-corner-all"
title="'+f.versionTitle+'"
data-version="'+e+'">Version '+e+"</a>":d+='<a class="select button
ui-state-default ui-state-active ui-corner-all"
title="'+f.versionTitle+'" data-version="'+e+'" ><span
class="ui-icon ui-icon-triangle-1-e"></span>
Version '+e+"</a>",b.length>1&&(d+='<img class="delete button"
src="/static/images/delete-16.png"
data-version="'+e+'"/></div>')}),$("#versions .vertical-buttons-panel").html(d),$("#versions
a.select").click(function(){j($(this).attr("data-version"))}),$("#versions
img.delete").click(function(){f($(this).attr("data-version"))})}function
f(c){if(confirm(messages("are_you_sure"))){var
e=a.pages[c];Vosao.jsonrpc.pageService.deletePageVersion(function(e){if(c==String(a.page.version))if(b.length==1)location.href="#pages";else{var
f=b[0];b.indexOf(c)==0?f=b[1]:f=b[b.indexOf(c)-1],a.pageId=a.pages[f].id,a.loadData()}else
d()},
e.id)}}function
g(){$("#version-dialog").dialog("open"),$("#version-title").val("")}function
h(){Vosao.jsonrpc.pageService.addVersion(function(b){b.result=="success"?(a.pageId=b.message,a.loadData(),Vosao.info(messages("page.version_success_add"))):Vosao.showServiceMessages(b),$("#version-dialog").dialog("close")},a.page.friendlyURL,$("#version-title").val())}function
i(){$("#version-dialog").dialog("close")}function j(b){var
c=a.pages[b];a.pageId=
c.id,a.loadData()}function
k(){$("#pageState").html(a.page.stateString=="EDIT"?messages("edit"):messages("approved")),$("#pageCreateDate").html(a.page.createDateTimeString),$("#pageModDate").html(a.page.modDateTimeString),$("#pageCreateUser").html(a.page.createUserEmail),$("#pageModUser").html(a.page.modUserEmail)}var
b=[];return{initVersionDialog:c,loadVersions:e,showAuditInfo:k}}),define("view/page/breadcrumbs",["view/page/context"],function(a){function
b(){var b=a.pageParentUrl;b=a.pageRequest.page.friendlyURL;var
d="",e=b.substr(1).split("/");if(e.length>0){var
f="";$.each(e,function(b,c){f+="/"+c,e.length-1==b&&a.editMode?d+=" "+e[e.length-1]:d+='
<a data-url="'+f+'">'+c+"</a> /"})}$("#crumbs").html(d),$("#crumbs
a").click(function(){var
a=$(this).attr("data-url");a&&c(a)}),$("#rootPage").click(function(){c("/")})}function
c(a){Vosao.jsonrpc.pageService.getPageByUrl(function(a){location.href="#page/content/"+
a.id},a)}return{breadcrumbsShow:b}}),function(){var
a=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],b=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,c=/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im,d=typeof
location!="undefined"&&location.href,e=d&&location.protocol&&location.protocol.replace(/\:/,""),f=d&&location.hostname,g=d&&(location.port|
|void 0),h=[];define("text",[],function(){var l,m,s;return typeof
window!="undefined"&&window.navigator&&window.document?m=function(a,b){var
c=l.createXhr();c.open("GET",a,!0),c.onreadystatechange=function(){c.readyState===4&&b(c.responseText)},c.send(null)}:typeof
process!="undefined"&&process.versions&&process.versions.node?(s=require.nodeRequire("fs"),m=function(a,b){b(s.readFileSync(a,"utf8"))}):typeof
Packages!="undefined"&&(m=function(a,b){var c=new
java.io.File(a),d=java.lang.System.getProperty("line.separator"),c=new
java.io.BufferedReader(new java.io.InputStreamReader(new
java.io.FileInputStream(c),"utf-8")),e,f,g="";try{e=new
java.lang.StringBuffer,(f=c.readLine())&&f.length()&&f.charAt(0)===65279&&(f=f.substring(1));for(e.append(f);(f=c.readLine())!==null;)e.append(d),e.append(f);g=String(e.toString())}finally{c.close()}b(g)}),l={version:"1.0.0",strip:function(a){if(a){var
a=a.replace(b,""),d=a.match(c);d&&(a=d[1])}else a="";return
a},jsEscape:function(a){return
a.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r")},createXhr:function(){var
b,c,d;if(typeof XMLHttpRequest!="undefined")return new
XMLHttpRequest;for(c=0;c<3;c++){d=a[c];try{b=new
ActiveXObject(d)}catch(e){}if(b){a=[d];break}}if(!b)throw
Error("createXhr(): XMLHttpRequest not available");return
b},get:m,parseName:function(a){var
b=!1,c=a.indexOf("."),d=a.substring(0,c),a=a.substring(c+1,a.length),c=a.indexOf("!");return
c!==-1&&(b=a.substring(c+1,a.length),b=b==="strip",a=a.substring(0,c)),{moduleName:d,ext:a,strip:b}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(a,b,c,d){var
e=l.xdRegExp.exec(a),f;return
e?(a=e[2],e=e[3],e=e.split(":"),f=e[1],e=e[0],(!a||a===b)&&(!e||
e===c)&&(!f&&!e||
f===d)):!0},finishLoad:function(a,b,c,d,e){c=b?l.strip(c):c,e.isBuild&&e.inlineText&&(h[a]=c),d(c)},load:function(a,b,c,h){var
j=l.parseName(a),k=j.moduleName+"."+j.ext,m=b.toUrl(k),n=h&&h.text&&h.text.useXhr|
|l.useXhr;!d||
n(m,e,f,g)?l.get(m,function(b){l.finishLoad(a,j.strip,b,c,h)}):b([k],function(a){l.finishLoad(j.moduleName+"."+j.ext,j.strip,a,c,h)})},write:function(a,b,c){if(b
in h){var d=l.jsEscape(h[b]);c.asModule(a+"!"+b,"define(function () {
return '"+d+"';});\n")}},writeFile:function(a,b,c,d,e){var
b=l.parseName(b),f=b.moduleName+"."+b.ext,g=c.toUrl(b.moduleName+"."+b.ext)+".js";l.load(f,c,function(){var
b=function(a){return d(g,a)};b.asModule=function(a,b){return
d.asModule(a,g,b)},l.write(a,f,b,e)},e)}}})}(),define("text!template/topbar.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2011
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="leftmenu">\n <a
href="#index">Vosao CMS <%= Vosao.fullVersion %></a> \n <a
href="#pages"><%= messages("content") %></a>\n<% if (Vosao.app.user.admin)
{ %>\n <a href="#templates"> <%= messages("templates") %></a>\n<%
} %> \n <a href="#folders"><%= messages("resources") %></a>\n<%
if (Vosao.app.user.admin) { %>\n <a href="#config"><%=
messages("configuration") %></a>\n <a href="#plugins"><%=
messages("plugins") %></a>\n<% } %> \n</div>\n<div
id="rightmenu">\n <%= Vosao.app.user.email %> \n | <a
href="#profile"><%= messages("profile") %></a> \n | <a
href="#logout"><%= messages("logout") %></a>\n | <%= locale %>\n | <a
href="
http://code.google.com/p/vosao/issues/list">\n <%=
messages("support") %>\n </a> \n</div>\n<span
class="clear"> </span>\n'}),define("text!template/locale.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2011
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<a id="languageSelect"><%=
messages("language") %></a>\n<div id="languageDiv">\n <a
onclick="Vosao.changeLanguageCall(\'en\')">English</a>\n <a
onclick="Vosao.changeLanguageCall(\'de\')">Deutsch</a>\n <a
onclick="Vosao.changeLanguageCall(\'es\')">Español</a>\n <a
onclick="Vosao.changeLanguageCall(\'sv\')">Swedish</a>\n <a
onclick="Vosao.changeLanguageCall(\'ru\')">Русский</a>\n <a
onclick="Vosao.changeLanguageCall(\'cs\')">Česky</a>\n <a
onclick="Vosao.changeLanguageCall(\'tr\')">Türkçe</a>\n <a
onclick="Vosao.changeLanguageCall(\'pt_BR\')">Brazilian Portuguese</a>\n
<a onclick="Vosao.changeLanguageCall(\'ja\')">日本語</a>\n <a
onclick="Vosao.changeLanguageCall(\'zh_TW\')">中文(繁體)</a>\n <a
onclick="Vosao.changeLanguageCall(\'zh_CN\')">中文(简体
)</a>\n</div>'}),define("text!template/login.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="memo">\r\n <img
src="/static/images/login-logo.jpg" />\r\n <p><%=
messages(\'login.sign_in\') %></p>\r\n <p><%=
messages("login.visit") %></p>\r\n <p><%=
messages("login.bug") %></p>\r\n <p><%=
messages("login.forum") %></p>\r\n</div>\r\n\r\n<div
id="login-form">\r\n<form id="login">\r\n\r\n<h4><%=
messages("login.sign") %></h4>\r\n<h3><%=
messages("login.sign_account") %></h3>\r\n\r\n<div class="form-row">\r\n
<label><%= messages("email") %></label>\r\n <input type="text"
id="loginEmail" value=""/>\r\n</div>\r\n<div class="form-row">\r\n
<label><%= messages("password") %></label>\r\n <input type="password"
id="loginPassword" value=""/>\r\n</div>\r\n<div id="login-messages">
</div>\r\n<div class="buttons-dlg">\r\n <input type="submit" value="<%=
messages("login") %>" />\r\n <br/>\r\n <br/>\r\n <a
id="forgot"><%= messages("forgot_password") %></a>\r\n</div>
\r\n\r\n</form>\r\n</div>\r\n\r\n<div class="clear"> </div>\r\n\r\n<div
class="version">\r\n <span>Vosao CMS <%= messages("version")%> <%=
Vosao.fullVersion %></span>\r\n</div>\r\n\r\n\r\n<div class="messages">
</div>\r\n\r\n<div id="forgot-dialog" style="display:none" title="<%=
messages("forgot_password") %>">\r\n <form id="forgotForm">\r\n <p
style="margin-bottom: 20px;"><%=
messages("login.forgot_dialog") %></p>\r\n <div
class="form-row">\r\n <label style="width: 80px;"><%=
messages("email") %></label>\r\n <input type="text" id="email"
/>\r\n </div>\r\n <div class="buttons-dlg">\r\n <input
type="submit" value="OK" />\r\n <input id="forgotCancelButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form>\r\n</div>\r\n\r\n'}),define("text!template/login-topbar.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2011
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="rightmenu" style="margin-right:
30px">\n <%= locale %>\n</div>\n<span
class="clear"> </span>\n'}),define("view/LoginView",["text!template/login.html","text!template/locale.html","text!template/login-topbar.html"],function(a,b,c){function
d(a){a.preventDefault();var b=$("#email").val();return
b?($("#loading").show(),Vosao.jsonrpc.loginFrontService.forgotPassword(function(b){$("#loading").hide(),b.result=="success"?Vosao.info(messages("login.password_letter_success")):Vosao.error(a.message),$("#forgot-dialog").dialog("close")},b.toLowerCase()),!1):(Vosao.error(messages("email_is_empty")),!1)}return
Backbone.View.extend({el:$("#content"),events:{"click
#forgot":"forgot_click","submit
form#login":"login_submit"},css:"/static/css/login.css",forgot_click:function(){this.$("#email").val(""),$("#forgot-dialog").dialog("open")},login_submit:function(a){a.preventDefault();if(Vosao.app.loggedIn)return
Vosao.app.trigger("login"),!1;var
b=this.$("#loginEmail").val(),c=this.$("#loginPassword").val();return
b==""?Vosao.errorMessage("#login-messages",messages("email_is_empty")):Vosao.jsonrpc.loginFrontService.login(function(a,b){if(Vosao.serviceFailed(b))return!1;a.result=="success"?(Vosao.infoMessage("#login-messages",messages("success_logging_in")),Vosao.app.loggedIn=!0,Vosao.app.trigger("login")):Vosao.errorMessage("#login-messages",a.message)},b,c),!1},render:function(){Vosao.addCSSFile(this.css),this.el.html($.jqote(a,{messages:messages})),$("#forgot-dialog").dialog({width:400,autoOpen:!1}),$("#forgotForm").submit(d),$("#forgotCancelButton").click(function(){$("#forgot-dialog").dialog("close")});var
e=_.template(b,{messages:messages});return
$("#topbar").html(_.template(c,{messages:messages,locale:e})),$("#languageSelect").click(function(){$("#languageDiv").show(),setTimeout(function(){$("#languageDiv").hide()},5e3)}),this},remove:function(){$("#forgot-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)}})}),define("text!template/pages.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs" class="ui-tabs ui-widget
ui-widget-content ui-corner-all">\r\n <ul class="ui-tabs-nav
ui-helper-reset ui-helper-clearfix ui-widget-header
ui-corner-all">\r\n <li class="ui-corner-top ui-tabs-selected
ui-state-active">\r\n <a href="#tab-1"><%=
messages("pages") %></a>\r\n </li>\r\n <li id="structuresTab"
class="ui-corner-top ui-state-default">\r\n <a
href="#structures"><%= messages("structures") %></a>\r\n
</li>\r\n </ul>\r\n <div id="tab-1" class="ui-tabs-panel
ui-widget-content ui-corner-bottom">\r\n <!-- div
class="outline-link">\r\n <a href="outline.vm">Outline
editor</a>\r\n </div-->\r\n <div
id="pageSearch"></div>\r\n <div style="float:left">\r\n
<div id="showTitleDiv">\r\n <a id="showTitle"><%=
messages(\'show_names\') %></a>\r\n <a id="invertOrder"><%=
messages(\'invert_order\') %></a>\r\n </div>\r\n <ul
id="pages-tree"><img src="/static/images/ajax-loader.gif"
/></ul>\r\n </div>\r\n <div style="clear:both"></div>
\r\n </div>\r\n</div>\r\n\r\n<div id="page-dialog" style="display:none"
title="<%= messages("pages.new_page") %>">\r\n <form id="pageForm">\r\n
<div class="form-row">\r\n <label><%=
messages("pages.page_title") %></label>\r\n <input
id="title"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("pages.page_url") %></label>\r\n <span
id="parentURL"></span> <input id="url"/>\r\n </div>\r\n <div
id="pageMessages"></div>\r\n <div class="buttons-dlg">\r\n <input
id="saveDlgButton" type="submit" value="<%= messages("save") %>"
/>\r\n <input id="cancelDlgButton" type="button" value="<%=
messages("cancel") %>" />\r\n </div>\r\n </form>
\r\n</div>\r\n\r\n'}),define("text!template/index.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2011
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="main-panel">\n <div>\n <img
src="/static/images/pages.png" />\n <a href="#pages">\n
<%= messages("index.content_pages") %>\n </a>\n <p><%=
messages("index.content_pages.description") %></p>\n </div>\n<% if
(user.admin) { %>\n <div>\n <img
src="/static/images/templates.png" />\n <a
href="#templates">\n <%=
messages("index.design_templates") %>\n </a>\n <p><%=
messages("index.design_templates.description") %></p>\n </div>\n<%
} %> \n <div>\n <img src="/static/images/folders.png"
/>\n <a href="#folders">\n <%=
messages("index.file_resources_storage") %>\n </a>\n <p><%=
messages("index.file_resources_storage.description") %></p>\n </div>\n<%
if (user.admin) { %>\n <div>\n <img
src="/static/images/config.png" />\n <a href="#config">\n
<%= messages("index.site_configuration") %>\n </a>\n <p><%=
messages("index.site_configuration.description") %></p>\n </div>\n
<div>\n <img src="/static/images/plugins.png" />\n <a
href="#plugins"><%= messages("index.plugins") %></a>\n <p><%=
messages("index.plugins.description") %></p>\n </div>\n<% } %>
\n</div>\n'}),define("view/IndexView",["text!template/index.html"],function(a){return
console.log("Loading
IndexView.js"),Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{user:Vosao.app.user,messages:messages}))},remove:function(){this.el.html("")}})}),define("text!template/structures.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2011
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="tabs" class="ui-tabs ui-widget
ui-widget-content ui-corner-all">\n <ul class="ui-tabs-nav
ui-helper-reset ui-helper-clearfix ui-widget-header
ui-corner-all">\n <li class="ui-corner-top
ui-state-default">\n <a href="#pages"><%=
messages("pages") %></a>\n </li>\n <li class="ui-corner-top
ui-tabs-selected ui-state-active">\n <a href="#structures"><%=
messages("structures") %></a>\n </li>\n </ul>\n <div
class="ui-tabs-panel ui-widget-content ui-corner-bottom">\n <div
id="structures"><img src="/static/images/ajax-loader.gif" /></div>\n
<div class="buttons">\n <input id="addButton" type="button"
value="<%= messages("add") %>"/>\n <input id="deleteButton"
type="button" value="<%= messages("delete") %>"/>\n </div> \n
</div>\n</div>\n'}),define("view/StructuresView",["text!template/structures.html"],function(a){function
b(){Vosao.jsonrpc.structureService.select(function(a){var b='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th></tr>";$.each(a.list,function(a,c){b+='<tr><td><input
type="checkbox" value="'+
c.id+'" /></td><td><a
href="#structure/'+
c.id+'">'+c.title+"</a></td></tr>"}),$("#structures").html(b+"</table>"),$("#structures
tr:even").addClass("even")})}function
c(){location.href="#structure"}function d(){var a=new Array;$("#structures
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.structureService.remove(function(a){Vosao.showServiceMessages(a),b()},Vosao.javaList(a))}return
console.log("Loading
StructuresView.js"),Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{messages:messages})),b(),$("#addButton").click(c),$("#deleteButton").click(d)},remove:function(){this.el.html("")}})}),define("text!template/structure.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2010
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="tabs">\n\n<ul>\n <li><a
href="#tab-1"><%= messages("structure") %></a></li>\n <li><a
href="#tab-2"><%= messages("structure.as_xml") %></a></li>\n <li><a
href="#tab-3"><%=
messages("structure.templates") %></a></li>\n</ul>\n\n<div id="tab-1">\n
<div class="form-row">\n <label><%=
messages("title") %></label>\n <input id="title" type="text" />\n
</div>\n <div class="form-row">\n <label><%=
messages("fields") %></label>\n <div id="fields"></div> \n
</div>\n <div class="form-row" style="margin-top: 20px;">\n
<span><%= messages("structure.field_title") %></span>\n <input
id="fieldTitle" type="text" /> \n <span><%=
messages("structure.tag_name") %></span> \n <input
id="fieldName" type="text" /> \n <select id="fieldType">
\n <option value="TEXT"><%=
messages("text") %></option>\n <option value="TEXTAREA"><%=
messages("text_area") %></option>\n <option value="RESOURCE"><%=
messages("resource_link") %></option>\n <option value="DATE"><%=
messages("date") %></option>\n </select>\n <a id="addField">
<%= messages("add_field") %></a>\n </div>\n <div
class="buttons">\n <input id="saveContinueButton" type="button"
value="<%= messages("save_continue")%>" />\n <input id="saveButton"
type="button" value="<%= messages("save")%>" />\n <input
id="cancelButton" type="button" value="<%= messages("cancel")%>" />\n
</div>\n</div>\n\n<div id="tab-2">\n <div class="form-row">\n
<input id="autosave" type="checkbox" /><label for="autosave"><%=
messages("autosave")%></label>\n </div>\n <div
class="form-row">\n <textarea id="xmlContent" rows="20"
cols="80"></textarea>\n </div>\n <div class="buttons">\n
<input id="saveContinueXMLButton" type="button" \n value="<%=
messages("save_continue")%>" />\n <input id="saveXMLButton"
type="button" value="<%= messages("save")%>" />\n <input
id="cancelXMLButton" type="button" value="<%= messages("cancel")%>" />\n
</div>\n</div>\n\n<div id="tab-3">\n <div id="templates"><img
src="/static/images/ajax-loader.gif" /></div>\n <div
class="buttons">\n <input id="addTemplateButton" type="button"
value="<%= messages("add")%>"/>\n <input id="deleteTemplateButton"
type="button" value="<%= messages("delete")%>"/>\n
</div></div>\n</div>\n'}),define("text!template/structureTemplate.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2010
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="tabs">\n\n<ul>\n <li><a
href="#tab-1"><%=
messages("structureTemplate.title") %></a></li>\n</ul>\n\n<div
id="tab-1">\n <div class="form-row">\n <label><%=
messages("title") %></label>\n <input id="title" type="text" />\n
</div>\n <div class="form-row">\n <label><%=
messages("name") %></label>\n <input id="name" type="text" />\n
</div>\n <div class="form-row">\n <label><%=
messages("structureTemplate.content") %></label>\n <input
id="autosave" type="checkbox" /> <label for="autosave"><%=
messages("autosave") %></label>\n </div> \n <div
class="form-row">\n <textarea id="vcontent" rows="20"
cols="80"></textarea>\n </div>\n <div class="form-row">\n
<label><%= messages("structureTemplate.head_content") %></label>\n
</div> \n <div class="form-row">\n <textarea id="headContent"
rows="8" cols="80"></textarea>\n </div>\n <div
class="buttons">\n <input id="saveContinueButton" type="button"
value="<%= messages("save_continue") %>" />\n <input id="saveButton"
type="button" value="<%= messages("save") %>" />\n <input
id="cancelButton" type="button" value="<%= messages("cancel") %>" />\n
</div>\n</div>\n\n</div>\n'}),define("text!template/templates.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2010
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="tabs">\n\n<ul>\n <li><a
href="#tab-1"><%= messages("templates") %></a></li>\n</ul>\n\n<div
id="tab-1">\n <div id="templates"><img
src="/static/images/ajax-loader.gif" /></div>\n <div
class="buttons">\n <input id="addButton" type="button" value="<%=
messages("add")%>" />\n <input id="deleteButton" type="button"
value="<%= messages("delete")%>" />\n <input id="exportButton"
type="button" value="<%= messages("export")%>" />\n <input
id="importButton" type="button" value="<%= messages("import")%>" />\n
</div>\n</div>\n\n</div>\n\n<div id="import-dialog" title="<%=
messages("templates.import_themes")%>" style="display:none">\n<form
id="upload" action="/cms/upload" method="post"
enctype="multipart/form-data">\n <%= messages("file_upload")%>:\n
<input type="hidden" name="fileType" value="import" />\n <input
type="file" name="uploadFile" />\n <div class="buttons-dlg">\n
<input type="submit" value="<%= messages("send")%>" />\n <input
id="importCancelButton" type="button" value="<%= messages("cancel")%>"
/>\n </div> \n</form>\n</div>\n\n<div id="afterUpload-dialog"
style="display:none" title="<%= messages("status_window")%>">\n <p
class="message"></p>\n <div class="buttons-dlg">\n <input
id="okButton" type="button" value="OK" />\n </div>\n</div>\n\n<div
id="export-dialog" style="display:none" title="<%=
messages("export_window")%>">\n <form id="exportForm">\n <p><%=
messages("templates.export_info")%></p>\n <div id="exportInfo"
class="form-row"></div> \n <div id="timer"
class="form-row"></div>\n <div class="buttons-dlg">\n <input
id="exportCancelButton" type="button" value="<%= messages("cancel")%>"
/>\n </div>\n </form>\n</div>\n\n<div id="structures-dialog"
style="display:none" title="<%= messages("export_structures")%>">\n <form
id="structuresForm">\n <p><%=
messages("templates.structures_info")%></p>\n <div
id="structures"></div> \n <div class="buttons-dlg">\n <input
type="submit" value="<%= messages("export")%>" />\n <input
id="structuresCancelButton" type="button" value="<%= messages("cancel")%>"
/>\n </div>\n
</form>\n</div>\n'}),define("view/TemplatesView",["text!template/templates.html","jquery.form"],function(a){function
f(){k(),l()}function g(a){var
b=a.split("::"),c=b[1],d=b[2];c=="success"?d=messages("templates.success_import"):d=messages("error")+". "+d,$("#import-dialog").dialog("close"),$("#afterUpload-dialog .message").text(d),$("#afterUpload-dialog").dialog("open")}function
h(){$("#import-dialog").dialog("open")}function
i(){$("#import-dialog").dialog("close")}function
j(){$("#afterUpload-dialog").dialog("close"),f()}function
k(){Vosao.jsonrpc.templateService.getTemplates(function(a){var b='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th></tr>";$.each(a.list,function(a,c){b+='<tr><td><input
type="checkbox" value="'+
c.id+'" /></td><td><a
href="#template/'+
c.id+'">'+c.title+"</a></td></tr>"}),$("#templates").html(b+"</table>"),$("#templates
tr:even").addClass("even")})}function
l(){Vosao.jsonrpc.structureService.select(function(a){var b='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th></tr>";$.each(a.list,function(a,c){b+='<tr><td><input
type="checkbox" value="'+
c.id+'"
/></td><td>'+c.title+"</td></tr>"}),$("#structures").html(b+"</table>"),$("#structures
tr:even").addClass("even")})}function
m(){location.href="#template"}function n(){var a=new Array;$("#templates
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.templateService.deleteTemplates(function(a){Vosao.showServiceMessages(a),k()},Vosao.javaList(a))}function
o(){$("#structures
input:checked").each(function(){this.checked=!1}),$("#structures-dialog").dialog("open")}function
p(){$("#structures-dialog").dialog("close"),d=0,r();var
a=[],f=[];$("#templates
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}$("#structures
input:checked").each(function(){f.push(this.value)}),$("#export-dialog").dialog("open"),Vosao.jsonrpc.configService.startExportThemeTask(function(a){a.result=="success"?($("#templates
input:checked").each(function(){this.checked=!1}),e=a.message,Vosao.infoMessage("#exportInfo",messages("creating_export_file")),b=setInterval(q,1e4),c=setInterval(r,1e3)):Vosao.showServiceMessages(a)},Vosao.javaList(a),Vosao.javaList(f))}function
q(){Vosao.jsonrpc.configService.isExportTaskFinished(function(a){a&&(clearInterval(b),clearInterval(c),$("#export-dialog").dialog("close"),$("#exportDialogButton").attr("disabled",!1),location.href="/file/tmp/"+e)},"theme")}function
r(){$("#timer").html(d++ +" "+messages("sec")+".")}function
s(){$("#export-dialog").dialog("close"),clearInterval(b),clearInterval(c)}console.log("Loading
TemplatesView.js");var b=null,c=null,d=0,e=null;return
Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{messages:messages})),$("#import-dialog").dialog({width:400,autoOpen:!1}),$("#export-dialog").dialog({width:400,autoOpen:!1}),$("#structures-dialog").dialog({width:400,autoOpen:!1}),$("#afterUpload-dialog").dialog({autoOpen:!1}),$("#upload").ajaxForm(g),f(),$("#tabs").tabs(),$("#addButton").click(m),$("#deleteButton").click(n),$("#exportButton").click(o),$("#exportCancelButton").click(s),$("#importButton").click(h),$("#importCancelButton").click(i),$("#okButton").click(j),$("#structuresForm").submit(function(){return
p(),!1}),$("#structuresCancelButton").click(function(){$("#structures-dialog").dialog("close")})},remove:function(){$("#import-dialog,
#export-dialog, #structures-dialog,
#afterUpload-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/template.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2011
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="tabs" class="ui-tabs ui-widget
ui-widget-content ui-corner-all">\n\n<ul class="ui-tabs-nav ui-helper-reset
ui-helper-clearfix ui-widget-header ui-corner-all">\n <li
class="ui-corner-top ui-state-active">\n <a href="#"><%=
messages("template") %></a>\n </li>\n <li class="ui-corner-top
ui-state-default">\n <a id="resources" href="#"><%=
messages("resources") %></a>\n </li>\n</ul>\n\n<div id="tab-1"
class="ui-tabs-panel ui-widget-content ui-corner-bottom">\n<form
id="templateForm">\n <div class="form-row">\n <label><%=
messages("title") %></label>\n <input id="title" type="text" />\n
</div>\n <div class="form-row">\n <label><%=
messages("url_name") %></label>\n <input id="url" type="text"
/>\n </div>\n <div class="form-row">\n <input id="autosave"
type="checkbox" /> <label for="autosave"><%=
messages("autosave") %></label>\n </div>\n <div
class="form-row">\n <textarea id="tcontent" rows="20"
cols="80"></textarea>\n </div>\n <div class="buttons">\n
<input id="saveContinueButton" type="button" value="<%=
messages("save_continue") %>" />\n <input id="saveButton"
type="submit" value="<%= messages("save") %>" />\n <input
id="cancelButton" type="button" value="<%= messages("cancel") %>" />\n
</div>\n</form>\n</div>\n\n</div>\n\n'}),define("text!template/page/page.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="versions" class="ui-tabs
ui-widget ui-corner-all ui-widget-content">\r\n <div
class="vertical-buttons-panel"> </div> \r\n <a id="addVersionLink"
class="button ui-state-default ui-corner-all" \r\n
href="#">\r\n <span class="ui-icon ui-icon-plus"></span> <%=
messages("add_version") %>\r\n </a>\r\n <div
id="auditData">\r\n <div><%= messages("page.state") %>: <span
id="pageState"> </span></div>\r\n <div><%=
messages("page.user_created") %>: <span id="pageCreateUser">
</span></div>\r\n <div><%= messages("creation_date") %>: <span
id="pageCreateDate"> </span></div>\r\n <div><%=
messages("page.user_modified") %>: <span id="pageModUser">
</span></div>\r\n <div><%= messages("modify_date") %>: <span
id="pageModDate"> </span></div>\r\n </div>\r\n</div>\r\n\r\n<div
id="breadcrumbs">\r\n <span class="button ui-state-default
ui-corner-all" style="padding:4px 10px;">\r\n <a href="#pages"><%=
messages("content") %>:</a> \r\n <a id="rootPage">/</a> \r\n
<span id="crumbs"></span>\r\n </span>\r\n</div>\r\n\r\n<div id="tabs"
class="ui-tabs ui-widget ui-widget-content ui-corner-all"\r\n
style="margin-top: 14px;">\r\n\r\n<ul class="ui-tabs-nav ui-helper-reset
ui-helper-clearfix ui-widget-header ui-corner-all">\r\n <li
class="pageTab ui-corner-top ui-state-default">\r\n <a
href="#page/<%= id %>"><%= messages("page") %></a>\r\n </li>\r\n <li
class="contentTab ui-corner-top ui-state-default">\r\n <a
href="#page/content/<%= id %>"><%= messages("content") %></a>\r\n
</li>\r\n <li class="childrenTab ui-corner-top
ui-state-default">\r\n <a href="#page/children/<%= id %>"><%=
messages("page.children_pages") %></a>\r\n </li>\r\n <li
class="commentsTab ui-corner-top ui-state-default">\r\n <a
href="#page/comments/<%= id %>"><%= messages("comments") %></a>\r\n
</li>\r\n <li class="securityTab ui-corner-top
ui-state-default">\r\n <a href="#page/security/<%= id %>"><%=
messages("security") %></a>\r\n </li>\r\n <li class="securityTab
ui-corner-top ui-state-default">\r\n <a href="#page/resources/<%=
id %>"><%= messages("resources") %></a>\r\n </li>\r\n <li
class="securityTab ui-corner-top ui-state-default">\r\n <a
href="#page/attributes/<%= id %>"><%= messages("attributes") %></a>\r\n
</li>\r\n</ul>\r\n\r\n<div id="tab-1" class="contentTab ui-tabs-panel
ui-widget-content ui-corner-bottom">\r\n</div>\r\n\r\n<div
id="version-dialog" style="display:none" title="<%=
messages("page.version_title") %>">\r\n <form id="versionForm">\r\n
<div class="form-row">\r\n <label><%=
messages("page.version_title") %></label>\r\n <input
id="version-title" type="text" /> \r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="versionSaveButton" type="submit"
\r\n value="<%= messages("add") %>" />\r\n <input
id="versionCancelButton" type="button" \r\n value="<%=
messages("cancel") %>" />\r\n </div>\r\n
</form>\r\n</div>\r\n'}),define("text!template/page/content.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2010
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<form id="pageForm">\n\n<div
style="padding-right:10px">\n <div style="float:right">\n <input
id="autosave" type="checkbox" /> <label for="autosave"><%=
messages("autosave") %></label>\n </div>\n <div id="friendlyUrlDiv"
class="form-row">\n <label><%=
messages("page.friendly_url") %></label>\n <span
id="parentFriendlyUrl"></span>\n <input id="friendlyUrl" type="text"
/>\n <span id="friendlyUrlSpan"></span>\n </div>\n <div
class="form-row">\n <label><%=
messages("page.select_language") %>:</label> \n <select
id="language"></select>\n </div>\n <div class="form-row"
style="margin-top:10px;">\n <label><%=
messages("title") %></label>\n <input id="titleLocal" type="text"
class="form-title" size="40" />\n </div>\n <div class="form-row"
id="editorButtons">\n <a id="ckedit"></a>\n </div>\n <div
id="page-content"></div>\n</div>\n<div class="buttons">\n <div
id="approveOnContentSaveDiv" class="checkboxes">\n <input
id="approveOnContentSave" type="checkbox" />\n <label
for="approveOnContentSave"><%=
messages("page.approve_save") %></label>\n </div> \n <input
id="saveContinueContentButton" type="button" \n value="<%=
messages("save_continue") %>" />\n <input id="saveContentButton"
type="submit" \n value="<%= messages("save") %>" />\n <input
id="contentPreviewButton" type="button" \n value="<%=
messages("preview") %>" />\n <input id="approveButton" type="button"
\n value="<%= messages("approve") %>" />\n <input
id="restoreButton" type="button" \n value="<%=
messages("restore") %>" />\n <input id="resetCacheButton" type="button"
\n value="<%= messages("page.reset_cache") %>" />\n <input
id="contentCancelButton" type="button" \n value="<%=
messages("cancel") %>" />\n</div> \n\n</form>\n\n<div
id="restore-dialog" style="display:none" title="<%=
messages("page.restore_content") %>">\n <form id="restoreForm">\n <div
class="form-row">\n <input name="page" type="radio" value="home"
checked="checked"/> \n <%= messages("home_page") %> <br/>
\n <input name="page" type="radio" value="login" /> \n
<%= messages("login_page") %> <br/> \n <input name="page"
type="radio" value="search" /> \n <%=
messages("search_page") %> \n </div>\n <div
class="buttons-dlg">\n <input id="restoreSaveButton" type="submit"
value="OK" />\n <input id="restoreCancelButton" type="button"
value="<%= messages("cancel") %>" />\n </div>\n </form>\n</div>\n\n<div
id="file-upload" title="<%= messages("folder.upload_file") %>"
style="display:none">\n <form id="upload" action="/cms/upload"
method="post" enctype="multipart/form-data">\n <%=
messages("file_upload") %>:\n <input type="hidden" name="fileType"
value="resource" />\n <input type="hidden" name="folderId"
/>\n <input type="file" name="uploadFile" multiple="true"
/>\n <div class="buttons-dlg">\n <input type="submit"
value="<%= messages("send") %>" />\n <input
id="fileUploadCancelButton" type="button" \n value="<%=
messages("cancel") %>" />\n </div>\n
</form>\n</div>\n\n'}),define("text!template/page/index.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<form id="pageForm">\r\n\r\n<div
id="titleDiv" class="form-row">\r\n <label><%=
messages("title") %></label>\r\n <input id="title" type="text"
class="form-title" size="40" />\r\n</div>\r\n<div class="form-row">\r\n
<label><%= messages("page.friendly_url") %></label>\r\n <span
id="parentFriendlyUrl"></span>\r\n <input id="friendlyUrl" type="text"
/>\r\n <span id="friendlyUrlSpan"></span>\r\n</div>\r\n<div
class="form-row">\r\n <label><%= messages("restful") %></label>\r\n
<input id="restful" type="checkbox" />\r\n</div>\r\n<div
class="form-row">\r\n <label><%= messages("template") %></label>\r\n
<select id="templates"></select>\r\n</div>\r\n<div class="form-row">\r\n
<label><%= messages("page.publication_date") %></label>\r\n <input
id="publishDate" type="text" class="datepicker" size="9"/>\r\n <input
id="publishTime" type="text" size="5"/>\r\n -\r\n <input
id="endPublishDate" type="text" class="datepicker" size="9"/>\r\n <input
id="endPublishTime" type="text" size="5"/>\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("enable_comments") %></label>\r\n <input id="commentsEnabled"
type="checkbox" />\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("page.include_search") %></label>\r\n <input id="searchable"
type="checkbox" />\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("page.velocity_processing") %></label>\r\n <input
id="velocityProcessing" type="checkbox" />\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("page.wiki_processing") %></label>\r\n <input
id="wikiProcessing" type="checkbox" />\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("config.enable_ckeditor") %></label>\r\n <input
id="enableCkeditor" type="checkbox" />\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("page.skip_postprocessing") %></label>\r\n <input
id="skipPostProcessing" type="checkbox" />\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("page.cache_enabled") %></label>\r\n <input id="cached"
type="checkbox" />\r\n</div>\r\n<div id="dependenciesDiv"
class="form-row">\r\n <label><%=
messages("cache_dependencies") %></label>\r\n <input id="dependencies"
type="text" class="form-title" size="60" />\r\n</div>\r\n\r\n<div
class="form-row">\r\n <label><%= messages("page.type") %></label>\r\n
<select id="pageType">\r\n <option value="SIMPLE"><%=
messages("simple") %></option>\r\n <option value="STRUCTURED"><%=
messages("structured") %></option>\r\n </select>\r\n</div>\r\n\r\n<div
id="structuredControls">\r\n<div class="form-row">\r\n <label><%=
messages("structure") %></label>\r\n <select
id="structure"></select>\r\n</div>\r\n<div class="form-row">\r\n
<label><%= messages("page.structure_template") %></label>\r\n <select
id="structureTemplate"></select>\r\n</div>\r\n</div>\r\n\r\n<div
id="tagsDiv" class="form-row">\r\n <label><%=
messages("tags") %></label>\r\n <a id="addTag" href="#"><%=
messages("add_tag") %></a>\r\n <span
id="tags"></span>\r\n</div>\r\n\r\n<div class="form-row">\r\n <a
id="metadata" href="#"><%=
messages("page.metadata") %></a>\r\n</div>\r\n<div id="meta"
style="display:none">\r\n<div class="form-row">\r\n <label><%=
messages("page.meta_keywords") %></label>\r\n <textarea id="keywords"
rows="5" cols="80"></textarea>\r\n</div>\r\n<div class="form-row">\r\n
<label><%= messages("page.meta_description") %></label>\r\n <textarea
id="description" rows="5" cols="80"></textarea>\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("page.head_content") %></label>\r\n <textarea id="headHtml"
rows="5" cols="80"></textarea>\r\n</div>\r\n<div class="form-row">\r\n
<label><%= messages("content_type") %></label>\r\n <input
id="contentType" type="text" class="form-title"
/>\r\n</div>\r\n</div>\r\n\r\n<div class="buttons">\r\n <div
id="approveOnPageSaveDiv" class="checkboxes">\r\n <input
id="approveOnPageSave" type="checkbox"> \r\n <label
for="approveOnPageSave"><%= messages("page.approve_save") %></label>\r\n
</div> \r\n <input id="pageSaveButton" type="submit" \r\n
value="<%= messages("save") %>" />\r\n <input id="pagePreview"
type="button" \r\n value="<%= messages("preview") %>" />\r\n
<input id="pageCancelButton" type="button" \r\n value="<%=
messages("cancel") %>" />\r\n</div> \r\n\r\n</form>\r\n\r\n<div
id="tag-dialog" style="display:none" title="<%=
messages("select_tag") %>">\r\n <ul
id="tagTree"></ul>\r\n</div>\r\n\r\n\r\n'}),define("view/page/IndexView",["text!template/page/index.html","view/page/context","view/page/version","view/page/breadcrumbs","jquery.treeview"],function(a,b,c,d){function
f(){b.loadData=g,b.editMode=b.pageId!="",$("#tag-dialog").dialog({width:400,autoOpen:!1}),$(".datepicker").datepicker({dateFormat:"dd.mm.yy"}),Vosao.initJSONRpc(g),$("a.button").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}),c.initVersionDialog(),$("#title").change(p),$("#pageType").change(q),$("#structure").change(w),$("#pageForm").submit(function(){return
o(),!1}),$("#pagePreview").click(r),$("#pageCancelButton").click(s),$("#approveButton").click(t),$("ul.ui-tabs-nav
li:nth-child(1)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default"),$("#metadata").click(function(){$("#meta").toggle()}),$("#addTag").click(z),$("#cached").click(function(){$("#dependenciesDiv").toggle()})}function
g(){console.log("IndexView.js - into
loadData()"),Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,k(),v(),j(),d.breadcrumbsShow()},b.pageId,b.pageParentUrl)}function
h(){
b.page!=null&&b.page.friendlyURL.endsWith("/_default")&&(b.isDefault=!0,$(".securityTab, .commentsTab, .childrenTab,
#approveOnPageSaveDiv, #pagePreview, #versions,
#tagsDiv").hide(),$("#title, #friendlyUrl").attr("disabled",!0))}function
i(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,b.editMode=b.pageId!=null,j()},b.pageId,b.pageParentUrl)}function
j(){console.log("IndexView.js - into
loadPage()"),b.editMode?(b.pageId=String(
b.page.id),b.pageParentUrl=b.page.parentUrl,c.loadVersions(),y(),E()):b.pages[1]=
b.page,l(),u()}function
k(){console.log("IndexView.js - into loadTemplates()");var
a=b.pageRequest.templates,c="";$.each(a.list,function(a,b){c+='<option
value="'+
b.id+'">'+b.title+"</option>"}),$("#templates").html(c),
b.page.id!=null?$("#templates").val(b.page.template):$("#templates").val($.cookie("page_template"))}function
l(){var
a=b.pageParentUrl=="/"?"":"/";$("#title").val(b.page.title),$("#titleDiv").hide(),b.page.parentUrl==""|
|
b.page.parentUrl==null?($("#friendlyUrl").hide(),$("#friendlyUrl").val(""),$("#parentFriendlyUrl").html("/")):($("#friendlyUrl").show(),$("#friendlyUrl").val(b.page.pageFriendlyURL),$("#parentFriendlyUrl").html(b.page.parentFriendlyURL+a)),b.pageRequest.children.list.length>0&&($("#parentFriendlyUrl").hide(),$("#friendlyUrl").hide(),$("#friendlyUrlSpan").html(b.page.friendlyURL)),$("#pageType").val(b.page.pageTypeString),$("#publishDate").val(b.page.publishDateString),$("#publishTime").val(b.page.publishTimeString),$("#endPublishDate").val(b.page.endPublishDateString),$("#endPublishTime").val(b.page.endPublishTimeString),$("#commentsEnabled").each(function(){this.checked=b.page.commentsEnabled}),$("#searchable").each(function(){this.checked=b.page.searchable}),$("#velocityProcessing").each(function(){this.checked=b.page.velocityProcessing}),$("#wikiProcessing").each(function(){this.checked=b.page.wikiProcessing}),$("#enableCkeditor").each(function(){this.checked=b.page.enableCkeditor}),$("#skipPostProcessing").each(function(){this.checked=b.page.skipPostProcessing}),$("#cached").each(function(){this.checked=b.page.cached}),$("#restful").each(function(){this.checked=b.page.restful}),$("#templates").val(b.page.template),$("#pageState").html(b.page.stateString=="EDIT"?messages("edit"):messages("approved")),$("#pageCreateDate").html(b.page.createDateTimeString),$("#pageModDate").html(b.page.modDateTimeString),$("#pageCreateUser").html(b.page.createUserEmail),$("#pageModUser").html(b.page.modUserEmail),$("#keywords").val(b.page.keywords),$("#description").val(b.page.description),$("#headHtml").val(b.page.headHtml),$("#dependencies").val(b.pageRequest.dependencies),$("#contentType").val(b.page.contentType),b.page.cached?$("#dependenciesDiv").show():$("#dependenciesDiv").hide(),
b.page.id!=null?($(".contentTab").show(),$(".childrenTab").show(),$(".commentsTab").show(),$(".securityTab").show(),$("#pagePreview").show(),$("#versions").show(),$("#tagsDiv").show()):($(".contentTab").hide(),$(".childrenTab").hide(),$(".commentsTab").hide(),$(".securityTab").hide(),$("#pagePreview").hide(),$("#versions").hide(),$("#tagsDiv").hide()),h(),q()}function
m(){return
Vosao.strip($("#publishDate").val())+" "+Vosao.strip($("#publishTime").val())+":00"}function
n(){return
$("#endPublishDate").val()?Vosao.strip($("#endPublishDate").val())+" "+Vosao.strip($("#endPublishTime").val())+":00":""}function
o(){var
a=Vosao.javaMap({id:b.pageId,titles:x(),friendlyUrl:$("#parentFriendlyUrl").text()+$("#friendlyUrl").val(),publishDate:m(),endPublishDate:n(),commentsEnabled:String($("#commentsEnabled:checked").size()>0),searchable:String($("#searchable:checked").size()>0),velocityProcessing:String($("#velocityProcessing:checked").size()>0),wikiProcessing:String($("#wikiProcessing:checked").size()>0),enableCkeditor:String($("#enableCkeditor:checked").size()>0),skipPostProcessing:String($("#skipPostProcessing:checked").size()>0),cached:String($("#cached:checked").size()>0),restful:String($("#restful:checked").size()>0),template:$("#templates
option:selected").val(),approve:String($("#approveOnPageSave:checked,
#approveOnContentSave:checked").size()>0),pageType:$("#pageType").val(),structureId:$("#structure").val(),structureTemplateId:$("#structureTemplate").val(),keywords:$("#keywords").val(),description:$("#description").val(),dependencies:$("#dependencies").val(),contentType:$("#contentType").val(),headHtml:$("#headHtml").val()});$.cookie("page_template",a.map.template,{path:"/",expires:10}),Vosao.jsonrpc.pageService.savePage(function(a){a.result=="success"?(b.editMode&&(location.href="#pages"),b.pageId=a.message,Vosao.info(messages("page.success_save")),location.href="#page/content/"+b.pageId):Vosao.showServiceMessages(a)},a)}function
p(){if(b.editMode)return;var
a=$("#friendlyUrl").val(),c=$("#title").val();a==""&&$("#friendlyUrl").val(Vosao.urlFromTitle(c))}function
q(){$("#pageType").val()=="SIMPLE"&&$("#structuredControls").hide(),$("#pageType").val()=="STRUCTURED"&&($("#structuredControls").show(),
b.page!=null&&$("#structure").val(b.page.structureId),w())}function
r(){var
a=b.page.friendlyURL+"?language="+b.currentLanguage+"&version="+b.page.version;window.open(a,"preview")}function
s(){location.href="#pages"}function
t(){Vosao.jsonrpc.pageService.approve(function(a){Vosao.showServiceMessages(a),i()},b.pageId)}function
u(){var
a=b.pageRequest.pagePermission;a.publishGranted?($("#approveButton").show(),$("#approveOnPageSaveDiv").show()):($("#approveButton").hide(),$("#approveOnPageSaveDiv").hide()),a.changeGranted?$("#pageSaveButton").show():$("#pageSaveButton").hide(),a.admin&&b.editMode?$(".securityTab").show():$(".securityTab").hide(),h()}function
v(){console.log("IndexView.js - into loadStructures()");var
a="";$.each(b.pageRequest.structures.list,function(b,c){var
d=b==0?'selected="selected"':"";a+="<option "+d+'
value="'+
c.id+'">'+c.title+"</option>"}),$("#structure").html(a)}function
w(){var
a=$("#structure").val(),c="";Vosao.jsonrpc.structureTemplateService.selectByStructure(function(a){var
c="";$.each(a.list,function(a,b){var
d=a==0?'selected="selected"':"";c+="<option "+d+'
value="'+
b.id+'">'+b.title+"</option>"}),$("#structureTemplate").html(c),
b.page!=null&&$("#structureTemplate").val(b.page.structureTemplateId)},a)}function
x(){if(!b.editMode)return'{en:"'+$("#title").val()+'"}'}function
y(){console.log("IndexView.js - into loadLanguages()");var
a=b.pageRequest.languages;languages={};var
c="";$.each(a.list,function(a,b){languages[b.code]=b}),console.log("loadLanguages :
positionning
ctx.currentLanguage..."),b.currentLanguage=b.pageRequest.config.defaultLanguage,console.log("loadLanguages :
ctx.currentLanguage = "+b.currentLanguage)}function
z(){Vosao.jsonrpc.tagService.getTree(function(a){$("#tagTree").html(A(a.list)),$("#tagTree
li > a").click(function(){var
a=$(this).attr("data-id");a&&C(a)}),$("#tagTree").treeview({animated:"fast",collapsed:!0,unique:!0,persist:"cookie",cookieId:"tagTree"}),$("#tag-dialog").dialog("open")})}function
A(a){var b="";return $.each(a,function(a,c){b+=B(c)}),b}function B(a){var
b='<li><a data-id="'+
a.entity.id+'">'+
a.entity.name+"</a>";return
a.children.list.length>0&&(b+="<ul>",$.each(a.children.list,function(a,c){b+=B(c)}),b+="</ul>"),b+"</li>"}function
C(a){Vosao.jsonrpc.tagService.addTag(function(a){Vosao.showServiceMessages(a),$("#tag-dialog").dialog("close"),D()},b.page.friendlyURL,a)}function
D(){Vosao.jsonrpc.pageService.getPageTags(function(a){b.pageRequest.tags=a,E()},b.page.friendlyURL)}function
E(){var a="";$.each(b.pageRequest.tags.list,function(b,c){a+='<span
class="tag">'+
c.name+' <a data-id="'+
c.id+'"><img
src="/static/images/02_x.png"/></a></span>'}),$("#tags").html(a),$("#tags .tag
> a").click(function(){var a=$(this).attr("data-id");a&&F(a)})}function
F(a){Vosao.jsonrpc.tagService.removeTag(function(a){Vosao.showServiceMessages(a),D()},b.page.friendlyURL,a)}console.log("Loading
IndexView.js");var e=null;return
Backbone.View.extend({css:"/static/css/jquery.treeview.css",el:$("#tab-1"),tmpl:_.template(a),render:function(){Vosao.addCSSFile(this.css),this.el=$("#tab-1"),this.el.html(this.tmpl({messages:messages})),f()},remove:function(){$("#tag-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)}})}),define("text!template/page/children.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="children"> </div>\r\n<div
class="buttons">\r\n <input id="addChildButton" type="button" value="<%=
messages("add_child_page") %>" />\r\n <input id="deleteChildButton"
type="button" value="<%= messages("delete_pages") %>" />\r\n <input
id="defaultSettingsButton" type="button" value="<%=
messages("default_settings") %>" />\r\n</div> \r\n\r\n<div
id="page-dialog" style="display:none" title="<%=
messages("pages.new_page") %>">\r\n <form id="pageForm">\r\n <div
class="form-row">\r\n <label><%=
messages("pages.page_title") %></label>\r\n <input
id="title"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("pages.page_url") %></label>\r\n <span
id="parentURL"></span> <input id="url"/>\r\n </div>\r\n <div
id="pageMessages"></div>\r\n <div class="buttons-dlg">\r\n <input
id="saveDlgButton" type="submit" value="<%= messages("save") %>"
/>\r\n <input id="cancelDlgButton" type="button" value="<%=
messages("cancel") %>" />\r\n </div>\r\n </form>
\r\n</div>\r\n'}),define("view/page/ChildrenView",["text!template/page/children.html","view/page/context","view/page/version","view/page/breadcrumbs"],function(a,b,c,d){function
g(){b.loadData=h,$("#page-dialog").dialog({width:400,autoOpen:!1}),Vosao.initJSONRpc(h),$("a.button").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}),c.initVersionDialog(),$("#addChildButton").click(m),$("#deleteChildButton").click(n),$("#defaultSettingsButton").click(s),$("ul.ui-tabs-nav
li:nth-child(3)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default"),$("#cancelDlgButton").click(t),$("#pageForm").submit(function(){return
w(),!1}),$("#title").change(u)}function
h(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,j(),d.breadcrumbsShow()},b.pageId,b.pageParentUrl)}function
i(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,b.editMode=b.pageId!=null,j()},b.pageId,b.pageParentUrl)}function
j(){b.editMode?(pageId=String(
b.page.id),pageParentUrl=b.page.parentUrl,l(),c.loadVersions(),c.showAuditInfo()):pages[1]=
b.page,o()}function
k(){Vosao.jsonrpc.pageService.getChildren(function(a){b.pageRequest.children=a,l()},b.page.friendlyURL)}function
l(){f=b.pageRequest.children.list;var a='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th><th>"+messages("page.friendly_url")+"</th><th></th></tr>";$.each(f,function(b,c){a+='<tr><td><input
type="checkbox" value="'+
c.id+'"/></td><td><a
href="#page/content/'+
c.id+'">'+c.title+"</a></td><td>"+c.friendlyURL+'</td>\t\t\t<td><a
class="pageup" data-n="'+b+'"><img
src="/static/images/02_up.png"/></a>\t <a class="pagedown"
data-n="'+b+'"><img src="/static/images/02_down.png"/></a>\t
</td></tr>'}),$("#children").html(a+"</table>"),$("#children
tr:even").addClass("even"),$("a.pageup").click(function(){p(Number($(this).attr("data-n")))}),$("a.pagedown").click(function(){q(Number($(this).attr("data-n")))})}function
m(){$("#ui-dialog-title-page-dialog").text(messages("pages.new_page")),e=b.page.friendlyURL=="/"?"":b.page.friendlyURL,$("#page-dialog").dialog("open"),$("#parentURL").html(e+"/"),$("#title").val(""),$("#url").val(""),$("#title").focus()}function
n(){var a=[];$("#children
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.pageService.deletePages(function(a){Vosao.showServiceMessages(a),k()},Vosao.javaList(a))}function
o(){var
a=b.pageRequest.pagePermission;a.changeGranted?($("#addChildButton").show(),$("#deleteChildButton").show()):($("#addChildButton").hide(),$("#deleteChildButton").hide()),a.admin&&b.editMode?$(".securityTab").show():$(".securityTab").hide()}function
p(a){a-1>=0&&(Vosao.jsonrpc.pageService.moveUp(function(a){},f[a].id),f[a].sortIndex--,f[a-1].sortIndex++,r(a,a-1),k())}function
q(a){a+1<f.length&&(Vosao.jsonrpc.pageService.moveDown(function(a){},f[a].id),f[a+1].sortIndex--,f[a].sortIndex++,r(a,a+1),k())}function
r(a,b){var c=f[b];f[b]=f[a],f[a]=c}function
s(){Vosao.jsonrpc.pageService.getPageDefaultSettings(function(a){location.href="#page/"+
a.id},b.page.friendlyURL)}function
t(){$("#page-dialog").dialog("close")}function u(){var
a=$("#url").val(),b=$("#title").val();a==""&&$("#url").val(Vosao.urlFromTitle(b))}function
v(a){if(a.title=="")return
messages("title_is_empty");if(a.title.indexOf(",")!=-1)return
messages("pages.coma_not_allowed");if(a.url=="")return
messages("pages.url_is_empty");if(a.url.indexOf("/")!=-1)return
messages("pages.slash_not_allowed")}function w(){var
a={id:"",title:$("#title").val(),url:$("#url").val(),friendlyUrl:e+"/"+$("#url").val()},b=v(a);b?x(b):Vosao.jsonrpc.pageService.savePage(function(a){a.result=="success"?(Vosao.info(messages("pages.success_created")),$("#page-dialog").dialog("close"),location.href="#page/content/"+a.message):x(a.message)},Vosao.javaMap(a))}function
x(a){Vosao.errorMessage("#pageMessages",a)}console.log("Loading
ChildrenView.js");var e=null,f=null;return
Backbone.View.extend({css:"/static/css/children.css",el:$("#tab-1"),tmpl:_.template(a),render:function(){Vosao.addCSSFile(this.css),this.el=$("#tab-1"),this.el.html(this.tmpl({messages:messages})),g()},remove:function(){$("#page-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)}})}),define("text!template/page/comments.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="comments"> </div>\r\n<div
class="buttons">\r\n <input id="enableCommentsButton" type="button"
\r\n value="<%= messages("enable_comments") %>" />\r\n <input
id="disableCommentsButton" type="button" \r\n value="<%=
messages("disable_comments") %>" />\r\n <input id="deleteCommentsButton"
type="button" \r\n value="<%= messages("delete_comments") %>"
/>\r\n</div>
\r\n'}),define("view/page/CommentsView",["text!template/page/comments.html","view/page/context","view/page/version","view/page/breadcrumbs"],function(a,b,c,d){function
e(){b.loadData=f,b.editMode=b.pageId!="",Vosao.initJSONRpc(f),$("a.button").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}),c.initVersionDialog(),$("#enableCommentsButton").click(j),$("#disableCommentsButton").click(k),$("#deleteCommentsButton").click(l),$("ul.ui-tabs-nav
li:nth-child(4)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
f(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,h(),d.breadcrumbsShow()},b.pageId,b.pageParentUrl)}function
g(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,b.editMode=b.pageId!=null,h()},b.pageId,b.pageParentUrl)}function
h(){b.editMode?(b.pageId=String(
b.page.id),b.pageParentUrl=b.page.parentUrl,c.loadVersions(),i(),c.showAuditInfo()):b.pages[1]=
b.page,m()}function
i(){var a=b.pageRequest.comments,c='<table
class="form-table"><tr><th></th><th>'+messages("state")+"</th><th>"+messages("name")+"</th><th>"+messages("content")+"</th></tr>";$.each(a.list,function(a,b){var
d=b.disabled?messages("disabled"):messages("enabled");c+='<tr><td><input
type="checkbox"
value="'+
b.id+'"/></td><td>'+d+"</a></td><td>"+
b.name+"</td><td>"+b.content+"</td></tr>"}),$("#comments").html(c+"</table>"),$("#comments
tr:even").addClass("even")}function j(){var a=[];$("#comments
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}Vosao.jsonrpc.commentService.enableComments(function(a){Vosao.showServiceMessages(a),f()},Vosao.javaList(a))}function
k(){var a=[];$("#comments
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}Vosao.jsonrpc.commentService.disableComments(function(a){Vosao.showServiceMessages(a),f()},Vosao.javaList(a))}function
l(){var a=[];$("#comments
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.commentService.deleteComments(function(a){Vosao.showServiceMessages(a),f()},Vosao.javaList(a))}function
m(){var
a=b.pageRequest.pagePermission;a.changeGranted?($("#enableCommentsButton").show(),$("#disableCommentsButton").show(),$("#deleteCommentsButton").show()):($("#enableCommentsButton").hide(),$("#disableCommentsButton").hide(),$("#deleteCommentsButton").hide()),a.admin&&b.editMode?$(".securityTab").show():$(".securityTab").hide()}return
console.log("Loading
CommentsView.js"),Backbone.View.extend({el:$("#tab-1"),tmpl:_.template(a),render:function(){this.el=$("#tab-1"),this.el.html(this.tmpl({messages:messages})),e()},remove:function(){this.el.html("")}})}),define("text!template/page/security.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n \r\n<div id="permissions"> </div>\r\n<div
class="buttons">\r\n <input id="addPermissionButton" type="button"
\r\n value="<%= messages("add_permission") %>" />\r\n <input
id="deletePermissionButton" type="button" \r\n value="<%=
messages("delete_permission") %>" />\r\n</div> \r\n\r\n<div
id="permission-dialog" style="display:none" title="<%=
messages("permission_details") %>">\r\n <form id="permissionForm">\r\n
<div class="form-row">\r\n <label><%=
messages("group") %></label>\r\n <select
id="groupSelect"></select>\r\n <span id="groupName"></span>
\r\n </div>\r\n <div id="permissionList" class="form-row">\r\n
<fieldset>\r\n <legend><%=
messages("permission") %></legend>\r\n <input type="radio"
name="permission" value="DENIED"/> <%= messages("denied") %> <br
/>\r\n <input type="radio" name="permission" value="READ" /> <%=
messages("read") %> <br />\r\n <input type="radio"
name="permission" value="WRITE" /> <%= messages("read_write") %> <br
/>\r\n <input type="radio" name="permission" value="PUBLISH" />
<%= messages("read_write_publish") %> <br />\r\n <input
type="radio" name="permission" value="ADMIN" /> <%=
messages("read_write_publish_grant") %> <br />\r\n
</fieldset> \r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("page.all_languages") %></label>\r\n <input
id="allLanguages" type="checkbox" checked="checked" />\r\n </div>
\r\n <div id ="permLanguages" class="form-row" style="display:none">
</div>\r\n <div class="buttons-dlg">\r\n <input
id="permissionSaveButton" type="submit" \r\n value="<%=
messages("save") %>" />\r\n <input id="permissionCancelButton"
type="button" \r\n value="<%= messages("cancel") %>" />\r\n
</div>\r\n
</form>\r\n</div>\r\n\r\n'}),define("view/page/SecurityView",["text!template/page/security.html","view/page/context","view/page/version","view/page/breadcrumbs"],function(a,b,c,d){function
i(){b.loadData=j,b.editMode=b.pageId!="",Vosao.initJSONRpc(j),$("a.button").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}),c.initVersionDialog(),$("#permission-dialog").dialog({width:400,autoOpen:!1}),$("#addPermissionButton").click(v),$("#deletePermissionButton").click(w),$("#permissionForm").submit(function(){return
u(),!1}),$("#permissionCancelButton").click(x),$("#allLanguages").change(y),$("ul.ui-tabs-nav
li:nth-child(5)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
j(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,m(),l(),d.breadcrumbsShow()},b.pageId,b.pageParentUrl)}function
k(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,b.editMode=b.pageId!=null,l()},b.pageId,b.pageParentUrl)}function
l(){b.editMode?(b.pageId=String(
b.page.id),b.pageParentUrl=b.page.parentUrl,c.loadVersions(),p(),q()):b.pages[1]=
b.page,z()}function
m(){var a=b.pageRequest.languages;h={};var
c="";$.each(a.list,function(a,b){h[b.code]=b}),r()}function
n(a){if(a=="DENIED")return messages("denied");if(a=="READ")return
messages("read");if(a=="WRITE")return
messages("read_write");if(a=="PUBLISH")return
messages("read_write_publish");if(a=="ADMIN")return
messages("read_write_publish_grant")}function
o(){Vosao.jsonrpc.contentPermissionService.selectByUrl(function(a){b.pageRequest.permissions=a,p()},b.page.friendlyURL)}function
p(){var a=b.pageRequest.permissions;f=Vosao.idMap(a.list);var c='<table
class="form-table"><tr><th></th><th>'+messages("group")+"</th><th>"+messages("permission")+"</th><th>"+messages("languages")+"</th></tr>";$.each(f,function(a,b){var
d="",e=
b.group.name;b.inherited||(d='<input type="checkbox"
value="'+
b.id+'">',e='<a data-id="'+
b.id+'"> '+
b.group.name+"</a>");var
f=b.allLanguages?messages("page.all_languages"):b.languages;c+="<tr><td>"+d+"</td><td>"+e+"</td><td>"+n(b.permission)+"</td><td>"+f+"</td></tr>"}),$("#permissions").html(c+"</table>"),$("#permissions
tr:even").addClass("even"),$("#permissions a").click(function(){var
a=$(this).attr("data-id");a&&s(a)})}function q(){var
a=b.pageRequest.groups;g=Vosao.idMap(a.list);var
c="";$.each(g,function(a,b){c+='<option
value="'+
b.id+'">'+
b.name+"</option>"}),$("#groupSelect").html(c)}function
r(){var
a="<fieldset><legend>"+messages("languages")+"</legend>";$.each(h,function(b,c){a+='<input
type="checkbox" value="'+c.code+'" /> '+c.title+"<br
/>"}),$("#permLanguages").html(a+"</fieldset>")}function
s(a){e=f[a],t(),$("#permission-dialog").dialog("open")}function
t(){$("#permission-dialog
input[type=radio]").removeAttr("checked"),$("#allLanguages").attr("checked","checked"),$("#permLanguages").hide();if(e==null)$("#permission-dialog
input[value=READ]").attr("checked","checked"),$("#groupSelect").show(),$("#groupName").hide();else{$("#permissionList
input[value="+e.permission+"]").attr("checked","checked"),$("#groupSelect").hide(),$("#groupName").show(),$("#groupName").text(
e.group.name);if(!e.allLanguages){$("#allLanguages").removeAttr("checked"),$("#permLanguages").show();var
a=e.languages.split(",");$("#permLanguages
input").removeAttr("checked"),$.each(a,function(a,b){$("#permLanguages
input[value="+b+"]").attr("checked","checked")})}}}function u(){var
a="";$("#permLanguages
input:checked").each(function(){a+=(a==""?"":",")+this.value});var
c={url:b.page.friendlyURL,groupId:e==null?$("#groupSelect").val():String(
e.group.id),permission:$("#permissionList
input:checked")[0].value,languages:$("#allLanguages")[0].checked?"":a};Vosao.jsonrpc.contentPermissionService.save(function(a){Vosao.showServiceMessages(a),$("#permission-dialog").dialog("close"),a.result=="success"&&o()},Vosao.javaMap(c))}function
v(){e=null,t(),$("#permission-dialog").dialog("open")}function w(){var
a=[];$("#permissions
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.contentPermissionService.remove(function(a){Vosao.showServiceMessages(a),o()},Vosao.javaList(a))}function
x(){$("#permission-dialog").dialog("close")}function
y(){this.checked?$("#permLanguages").hide():$("#permLanguages").show()}function
z(){var
a=b.pageRequest.pagePermission;a.admin&&b.editMode?$(".securityTab").show():$(".securityTab").hide()}console.log("Loading
SecurityView.js");var e=null,f=null,g=null,h={};return
Backbone.View.extend({el:$("#tab-1"),tmpl:_.template(a),render:function(){this.el=$("#tab-1"),this.el.html(this.tmpl({messages:messages})),i()},remove:function(){$("#permission-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/page/attributes.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="attributes"> </div>\r\n<div
class="buttons">\r\n <input id="addButton" type="button" \r\n
value="<%= messages("add_attribute") %>" />\r\n <input id="deleteButton"
type="button" \r\n value="<%= messages("delete_attribute") %>"
/>\r\n</div> \r\n\r\n<div id="attribute-dialog" style="display:none"
title="<%= messages("attribute") %>">\r\n <form id="attributeForm">\r\n
<div class="form-row">\r\n <label><%=
messages("name") %></label>\r\n <input id="name"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("title") %></label>\r\n <input id="title"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("default_value") %></label>\r\n <input
id="defaultValue" type="text"/>\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("inherited") %></label>\r\n <input type="checkbox"
id="inherited" />\r\n </div>\r\n <div class="buttons-dlg">\r\n
<input id="saveButton" type="submit" value="<%= messages("save") %>"
/>\r\n <input id="cancelButton" type="button" value="<%=
messages("cancel") %>" />\r\n </div>\r\n </form>\r\n</div>\r\n\r\n<div
id="attrValue-dialog" style="display:none" title="<%=
messages("attribute") %>">\r\n <form id="attrValueForm">\r\n <div
class="form-row">\r\n <label><%=
messages("name") %></label>\r\n <span id="attrName" />\r\n
</div>\r\n <div class="form-row">\r\n <label><%=
messages("language") %></label>\r\n <select id="language"/>\r\n
</div>\r\n <div class="form-row">\r\n <label><%=
messages("value") %></label>\r\n <input id="value"
type="text"/>\r\n </div>\r\n <div id="applyChildren"
class="form-row">\r\n <label><%=
messages("page.apply_children") %></label>\r\n <input
type="checkbox" id="attrInherited" />\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="saveValueButton" type="submit"
value="<%= messages("save") %>" />\r\n <input id="cancelValueButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form>\r\n</div>'}),define("view/page/AttributesView",["text!template/page/attributes.html","view/page/context","view/page/version","view/page/breadcrumbs"],function(attributesHtml,ctx,version,breadcrumbs){function
postRender(){ctx.loadData=loadData,ctx.editMode=ctx.pageId!="",$("#attribute-dialog").dialog({width:430,autoOpen:!1}),$("#attrValue-dialog").dialog({width:430,autoOpen:!1}),Vosao.initJSONRpc(loadData),$("a.button").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}),version.initVersionDialog(),$("#addButton").click(onAdd),$("#cancelButton").click(function(){$("#attribute-dialog").dialog("close")}),$("#cancelValueButton").click(function(){$("#attrValue-dialog").dialog("close")}),$("#attributeForm").submit(function(){return
onSave(),!1}),$("#attrValueForm").submit(function(){return
onSaveValue(),!1}),$("#deleteButton").click(onDelete),$("#language").change(onLanguageChange),$("ul.ui-tabs-nav
li:nth-child(7)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
loadData(){Vosao.jsonrpc.pageService.getPageRequest(function(a){ctx.pageRequest=a,
ctx.page=
ctx.pageRequest.page,loadPage(),breadcrumbs.breadcrumbsShow()},ctx.pageId,ctx.pageParentUrl)}function
callLoadPage(){Vosao.jsonrpc.pageService.getPageRequest(function(a){ctx.pageRequest=a,
ctx.page=
ctx.pageRequest.page,ctx.editMode=ctx.pageId!=null,loadPage()},ctx.pageId,ctx.pageParentUrl)}function
loadPage(){ctx.editMode?(ctx.pageId=String(
ctx.page.id),ctx.pageParentUrl=ctx.page.parentUrl,version.loadVersions(),loadLanguages(),version.showAuditInfo(),attrValues=ctx.page.attributes?eval("("+ctx.page.attributes+")"):{},loadAttributes()):ctx.pages[1]=
ctx.page,loadPagePermission()}function
loadLanguages(){var a=ctx.pageRequest.languages;languages={};var
b="";$.each(a.list,function(a,c){languages[c.code]=c,b+='<option
value="'+c.code+'" '+">"+c.title+"</option>"}),$("#language").html(b),$("#language").val(Vosao.ENGLISH_CODE)}function
loadPagePermission(){var
a=ctx.pageRequest.pagePermission;a.changeGranted?($("#enableCommentsButton").show(),$("#disableCommentsButton").show(),$("#deleteCommentsButton").show()):($("#enableCommentsButton").hide(),$("#disableCommentsButton").hide(),$("#deleteCommentsButton").hide()),a.admin&&ctx.editMode?$(".securityTab").show():$(".securityTab").hide()}function
loadAttributes(){Vosao.jsonrpc.pageAttributeService.getByPage(function(a){attributes=a.list,showAttributes()},ctx.page.friendlyURL)}function
showAttributes(){var a='<table
class="form-table"><tr><th></th><th>'+messages("name")+"</th><th>"+messages("value")+"</th><th>"+messages("inherited")+"</th></tr>";$.each(attributes,function(b,c){attributesMap[
c.name]=c;var
d=c.inherited?messages("inherited"):"";a+='<tr><td><input type="checkbox"
value="'+
c.id+'"/></td><td><a
data-name="'+
c.name+'">'+
c.name+"</a></td><td>"+getAttributeValue(
c.name,Vosao.ENGLISH_CODE)+"</td><td>"+d+"</td></tr>"}),$("#attributes").html(a+"</table>"),$("#attributes
tr:even").addClass("even"),$("#attributes a").click(function(){var
a=$(this).attr("data-name");a&&onEditValue(a)})}function
onAdd(){$("#name").val(""),$("#title").val(""),$("#defaultValue").val(""),$("#inherited").each(function(){this.checked=!1}),$("#attribute-dialog").dialog("open")}function
onDelete(){var a=[];$("#attributes
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.pageAttributeService.remove(function(a){Vosao.showServiceMessages(a),loadData()},Vosao.javaList(a),
ctx.page.id)}function
onSave(){var
a={id:attrDef==null?"":String(attrDef.id),url:ctx.page.friendlyURL,name:$("#name").val(),title:$("#title").val(),inherited:String($("#inherited:checked").size()>0),defaultValue:$("#defaultValue").val()};Vosao.jsonrpc.pageAttributeService.save(function(b){b.result=="success"?(Vosao.info(messages("page.success_save")),$("#attribute-dialog").dialog("close"),loadData(),a.inherited=$("#inherited:checked").size()>0,attributesMap[
a.name]=a,a.inherited&&a.defaultValue?loadData():onEditValue(
a.name)):Vosao.showServiceMessages(b)},Vosao.javaMap(a))}function
getAttributeValue(a,b){return
attrValues[a]&&attrValues[a][b]?attrValues[a][b]:""}function
onEditValue(a){$("#attrValue-dialog").dialog("open"),$("#attrName").html(a),$("#attrInherited").each(function(){this.checked=!1}),attributesMap[a].inherited?$("#applyChildren").show():$("#applyChildren").hide();var
b=getAttributeValue(a,$("#language").val());!b&&attributesMap[a].defaultValue&&confirm(messages("page.use_default_value"))&&(b=attributesMap[a].defaultValue),$("#value").val(b),$("#language").val(Vosao.ENGLISH_CODE)}function
checkPageAttrValue(a,b){attrValues[a]==undefined&&(attrValues[a]={}),attrValues[a][b]==undefined&&(attrValues[a][b]="")}function
setPageAttrValue(a,b,c){checkPageAttrValue(a,b),attrValues[a][b]=c}function
getPageAttrValue(a,b){return
checkPageAttrValue(a,b),attrValues[a][b]}function onLanguageChange(){var
a=$("#attrName").text(),b=$("#language").val(),c=getPageAttrValue(a,b);!c&&attributesMap[a].defaultValue&&confirm(messages("page.use_default_value"))&&(c=attributesMap[a].defaultValue),$("#value").val(c)}function
onSaveValue(){var
a=$("#attrName").text(),b=$("#language").val(),c=$("#value").val();setPageAttrValue(a,b,c),Vosao.jsonrpc.pageService.saveAttribute(function(a){a.result=="success"?($("#attrValue-dialog").dialog("close"),Vosao.info(messages("success")),loadData()):Vosao.showServiceMessages(a)},
ctx.page.id,a,c,b,$("#attrInherited:checked").size()>0)}console.log("Loading
AttributesView.js");var
attrDef=null,attributes=null,attributesMap={},attrValues={},languages=null;return
Backbone.View.extend({el:$("#tab-1"),tmpl:_.template(attributesHtml),render:function(){this.el=$("#tab-1"),this.el.html(this.tmpl({messages:messages})),postRender()},remove:function(){$("#attribute-dialog,
#attrValue-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/profile.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n\r\n
<ul>\r\n <li><a href="#tab-1"><%=
messages("profile.title") %></a></li>\r\n </ul>\r\n <div
id="tab-1">\r\n\r\n <div class="form-row">\r\n <label><%=
messages("profile.username") %></label>\r\n <input id="name"
type="text" />\r\n </div>\r\n\r\n <div
class="form-row">\r\n <label><%=
messages("profile.user_email") %></label>\r\n <input id="email"
type="text" disabled="disabled"/>\r\n </div>\r\n\r\n <div
class="form-row">\r\n <label><%=
messages("password") %></label>\r\n <input id="password1"
type="password" />\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("profile.retype_password") %></label>\r\n <input
id="password2" type="password" />\r\n </div>\r\n\r\n <div
class="form-row">\r\n <label><%=
messages("profile.timezone") %></label>\r\n <select
id="timezone"></select>\r\n </div>\r\n\r\n <div
class="buttons">\r\n <input id="saveButton" type="button"
value="<%= messages("save") %>" />\r\n </div>\r\n\r\n
</div>\r\n\r\n</div>\r\n\r\n'}),define("view/ProfileView",["text!template/profile.html"],function(a){function
d(){$("#tabs").tabs(),Vosao.initJSONRpc(e),$("#saveButton").click(h)}function
e(){Vosao.jsonrpc.userService.getTimezones(function(a){c=a.list,i(),f()})}function
f(){Vosao.jsonrpc.userService.getLoggedIn(function(a){b=a,$("#name").val(
b.name),$("#email").val(b.email),$("#password1").val(""),$("#password2").val(""),$("#timezone").val(b.timezone)})}function
g(){var a=$("#password1").val(),b=$("#password2").val();return a||
b?a==b?!0:!1:!0}function h(){var
a="";if(g())a=$("#password1").val();else{Vosao.error(messages("profile.password_dont_match"));return}var
c={id:String(
b.id),name:$("#name").val(),timezone:$("#timezone").val(),password:a};Vosao.jsonrpc.userService.save(function(a){Vosao.showServiceMessages(a)},Vosao.javaMap(c))}function
i(){var a="";$.each(c,function(b,c){a+='<option
value="'+c+'">'+c+"</option>"}),$("#timezone").html(a)}console.log("Loading
ProfileView.js");var b=null,c=null;return
Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{messages:messages})),d()},remove:function(){this.el.html("")}})}),define("text!template/plugins/index.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="main-panel">\r\n
<div>\r\n <img src="/static/images/config.png" />\r\n <a
href="#plugins/config"><%= messages("plugins.config") %></a>\r\n
<p><%= messages("plugins.config_info") %></p>\r\n </div>\r\n
<div>\r\n <img src="/static/images/form.png" />\r\n <a
href="#plugins/forms"><%= messages("forms") %></a>\r\n <p><%=
messages("plugins.forms_info") %></p>\r\n </div>\r\n <div>\r\n
<img src="/static/images/seo_urls.png" />\r\n <a
href="#plugins/seo-urls"><%= messages("plugins.seo_urls") %></a>\r\n
<p><%= messages("plugins.seo_urls_info") %></p>\r\n
</div>\r\n</div>\r\n\r\n'}),define("view/plugins/PluginsView",["text!template/plugins/index.html"],function(a){return
console.log("Loading
PluginsView.js"),Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{messages:messages}))},remove:function(){this.el.html("")}})}),define("text!template/plugins/plugin.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n<ul>\r\n <li><a
id="plugin-title" href="#tab-1"><%=
messages("plugin") %></a></li>\r\n</ul>\r\n\r\n<div id="tab-1">\r\n <div
id="properties"></div>\r\n <div class="buttons">\r\n <input
id="saveButton" type="button" value="<%= messages("save") %>" />\r\n
<input id="cancelButton" type="button" value="<%= messages("cancel") %>"
/>\r\n
</div>\r\n</div>\r\n\r\n</div>\r\n\r\n'}),define("view/plugins/PluginView",["text!template/plugins/plugin.html"],function(a){function
d(){$("#tabs").tabs(),Vosao.initJSONRpc(e),$("#cancelButton").click(h),$("#saveButton").click(m)}function
e(){f(),g()}function
f(){Vosao.jsonrpc.pluginService.getById(function(a){b=a,$("#plugin-title").text(
b.name+" "+messages("plugin.config")),j()},pluginId)}function
g(){Vosao.jsonrpc.pluginService.getProperties(function(a){c=a.list,j()},pluginId)}function
h(){location.href="#plugins"}function i(a){return a==null?"":a}function
j(){if(b==null||c==null)return;var a="",d=k();$.each(c,function(b,c){var
e=i(d[c.name.toLowerCase()]?d[c.name.toLowerCase()]:c.defaultValue),f=Vosao.message(c.title);if(c.type=="String"|
|c.type=="Integer")a+='<div class="form-row"><label>'+f+"</label>"+'<input
id="property-'+
c.name+'"
value="'+Vosao.escapeHtml(e)+'"/></div>';c.type=="Date"&&(a+='<div
class="form-row"><label>'+f+"</label>"+'<input
id="property-'+
c.name+'"/></div>'),c.type=="Boolean"&&(a+='<div
class="form-row"><label>'+f+"</label>"+'<input type="checkbox"
id="property-'+
c.name+'"/></div>'),c.type=="Text"&&(a+='<div
class="form-row"><label>'+f+"</label>"+'<textarea id="property-'+
c.name+'"
cols="80"
rows="25">'+e+"</textarea></div>")}),$("#properties").html(a),$.each(c,function(a,b){var
c="#property-"+
b.name,e=d[b.name.toLowerCase()]?d[b.name.toLowerCase()]:"";b.type=="Date"&&(e&&$(c).val(e),$(c).datepicker({dateFormat:"dd.mm.yy"}));if(b.type=="Boolean"){var
f=e=="true";$(c).each(function(){this.checked=f})}})}function k(){var
a={};if(b.configData!=""){var
c=$.xmlDOM(b.configData,function(a){Vosao.error(messages("plugin.parsing_error")+" "+a)});$(c).find("plugin-config").children().each(function(){a[this.tagName.toLowerCase()]=$(this).text()})}return
a}function l(a){$.each(c,function(b,c){var
d=a[
c.name];if(c.type=="Integer"&&parseInt(d)==NaN)return
messages("plugin.integer_expected")+" "+
c.name})}function m(){var
a={},b="<plugin-config>\n";$.each(c,function(c,d){var
e="#property-"+
d.name;if(d.type=="String"||d.type=="Integer"||
d.type=="Date"||
d.type=="Text")a[
d.name]=$(e).val(),b+="<"+
d.name+">"+Vosao.escapeHtml(a[
d.name])+"</"+
d.name+">\n";d.type=="Boolean"&&(a[
d.name]=String($(e+":checked").size()>0),b+="<"+
d.name+">"+a[
d.name]+"</"+
d.name+">\n")}),b+="</plugin-config>\n";var
d=l(a);d?Vosao.error(d):Vosao.jsonrpc.pluginService.savePluginConfig(function(a){Vosao.showServiceMessages(a)},Number(pluginId),b)}console.log("Loading
PluginView.js");var b=null,c=null;return
Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{messages:messages})),d()},remove:function(){this.el.html("")},setPluginId:function(a){pluginId=a}})}),define("text!template/plugins/config.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n<ul>\r\n <li><a
href="#tab-1"><%= messages("plugins") %></a></li>\r\n</ul>\r\n\r\n<div
id="tab-1">\r\n <div id="plugins"></div>\r\n <div
class="buttons">\r\n <input id="installButton" type="button"
value="<%= messages("install_update") %>" />\r\n
</div>\r\n</div>\r\n\r\n</div>\r\n\r\n<div id="import-dialog" title="<%=
messages("install") %>" style="display:none">\r\n<form id="upload"
action="/cms/upload" method="post" enctype="multipart/form-data">\r\n
<%= messages("file_upload") %>:\r\n <input type="hidden" name="fileType"
value="plugin" />\r\n <input type="file" name="uploadFile" />\r\n
<div class="buttons-dlg">\r\n <input type="submit" value="<%=
messages("send") %>" />\r\n <input id="importCancelButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>
\r\n</form>\r\n</div>\r\n\r\n<div id="afterUpload-dialog"
style="display:none" title="<%= messages("status_window") %>">\r\n <p
class="message"></p>\r\n <div class="buttons-dlg">\r\n <input
id="okButton" type="button" value="OK" />\r\n
</div>\r\n</div>\r\n\r\n'}),define("view/plugins/ConfigView",["text!template/plugins/config.html","jquery.form"],function(a){function
c(){$("#tabs").tabs(),$("#import-dialog").dialog({width:400,autoOpen:!1}),$("#afterUpload-dialog").dialog({autoOpen:!1}),Vosao.initJSONRpc(d),$("#upload").ajaxForm(i),$("#installButton").click(g),$("#importCancelButton").click(h),$("#okButton").click(j)}function
d(){e()}function
e(){Vosao.jsonrpc.pluginService.select(function(a){b=a.list,f()})}function
f(){var a='<table class="form-table"><th>'+messages("title")+"</th>\t
<th>"+messages("name")+"</th><th>"+messages("version")+"</th><th>"+messages("description")+"</th><th>"+messages("website")+"</th><th>"+messages("state")+"</th><th></th></tr>";$.each(b,function(b,c){var
d="#plugin/"+
c.id;c.configURL&&(d="/file/plugins/"+
c.name+"/"+c.configURL);var
e=c.disabled?messages("disabled"):messages("enabled"),f=c.disabled?Vosao.message(c.title):'<a
href="'+d+'">'+Vosao.message(c.title)+"</a>";a+="<tr><td>"+f+"</td>"+"<td>"+
c.name+"</td>"+"<td>"+c.version+"</td>"+"<td>"+Vosao.message(c.description)+"</td>"+"<td>"+c.website+"</td>"+"<td>"+e+"</td>"+'<td><a
title="Uninstall" class="removeLink" data-index="'+b+'">'+'<img
src="/static/images/02_x.png"/></a></td></tr>'}),$("#plugins").html(a+"</table>"),$("#plugins
tr:even").addClass("even"),$("#plugins .removeLink").click(function(){k(Number($(this).attr("data-index")))})}function
g(){$("#import-dialog").dialog("open")}function
h(){$("#import-dialog").dialog("close")}function i(a){var
b=a.split("::"),c=b[1],d=b[2];c=="success"?d=messages("plugins.success_install"):d=messages("error")+". "+d,$("#import-dialog").dialog("close"),$("#afterUpload-dialog .message").text(d),$("#afterUpload-dialog").dialog("open")}function
j(){$("#afterUpload-dialog").dialog("close"),location.reload()}function
k(a){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.pluginService.remove(function(c){Vosao.showServiceMessages(c),c.result=="success"&&(b.splice(a,1),f())},b[a].id)}console.log("Loading
ConfigView.js");var b="";return
Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{messages:messages})),c()},remove:function(){$("#import-dialog,
#afterUpload-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/plugins/forms.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n<ul>\r\n <li><a
href="#tab-1"><%= messages("forms") %></a></li>\r\n <li><a
href="#tab-2"><%= messages("config") %></a></li>\r\n</ul>\r\n\r\n<div
id="tab-1">\r\n <div id="forms"> </div>\r\n <div
class="buttons">\r\n <input id="addButton" type="button" value="<%=
messages("add") %>" />\r\n <input id="deleteButton" type="button"
value="<%= messages("delete") %>" />\r\n </div>\r\n</div>\r\n\r\n<div
id="tab-2">\r\n\r\n<div class="form-row">\r\n <label><%=
messages("forms.form_template") %></label>\r\n <div>\r\n <a
id="restoreFormTemplateLink" ><%= messages("restore_default") %></a>\r\n
</div>\r\n <div>\r\n <textarea id="formTemplate" rows="20"
cols="80"></textarea>\r\n </div>\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("forms.letter_template") %></label>\r\n <div>\r\n <a
id="restoreFormLetterLink" ><%= messages("restore_default") %></a>\r\n
</div>\r\n <div>\r\n <textarea id="letterTemplate" rows="20"
cols="80"></textarea>\r\n </div>\r\n</div>\r\n<div
class="buttons">\r\n <input id="saveButton" type="button" value="<%=
messages("save") %>"
/>\r\n</div>\r\n</div>\r\n\r\n</div>\r\n\r\n'}),define("text!template/plugins/form.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n<ul>\r\n <li><a
href="#tab-1"><%= messages("form") %></a></li>\r\n <li
class="fieldsTab"><a href="#tab-2"><%=
messages("fields") %></a></li>\r\n <li class="dataTab"><a
href="#tab-3"><%= messages("saved_data") %></a></li>\r\n</ul>\r\n\r\n<div
id="tab-1">\r\n<form id="form">\r\n<div class="form-row">\r\n <label><%=
messages("title") %></label>\r\n <input id="title" type="text"
/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("form.unique_name") %></label>\r\n <input id="name" type="text"
/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("form.email") %></label>\r\n <input id="email" type="text"
/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("letter_subject") %></label>\r\n <input id="letterSubject"
type="text" />\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("form.send_title") %></label>\r\n <input id="sendButtonTitle"
type="text"/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("form.reset_title") %></label>\r\n <input id="resetButtonTitle"
type="text"/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("form.show_reset") %></label>\r\n <input id="showResetButton"
type="checkbox"/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("enable_captcha") %></label>\r\n <input id="enableCaptcha"
type="checkbox"/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("enable_save") %></label>\r\n <input id="enableSave"
type="checkbox"/>\r\n</div>\r\n\r\n<div class="buttons">\r\n <input
id="saveButton" type="submit" value="<%= messages("save") %>" />\r\n
<input id="cancelButton" type="button" value="<%= messages("cancel") %>"
/>\r\n</div>\r\n</form>\r\n</div>\r\n\r\n<div id="tab-2"
class="fieldsTab">\r\n <div id="fieldsTable"> </div>\r\n <div
class="buttons">\r\n <input id="addFieldButton" type="button"
value="<%= messages("add_field") %>" />\r\n <input
id="deleteFieldButton" type="button" value="<%=
messages("delete_fields") %>" />\r\n </div> \r\n</div>\r\n\r\n<div
id="tab-3" class="dataTab">\r\n <div id="dataTable"></div>\r\n <div
class="buttons">\r\n <input id="deleteDataButton" type="button"
value="<%= messages("delete") %>" />\r\n </div>
\r\n</div>\r\n\r\n</div>\r\n\r\n<div id="field-dialog" style="display:none"
title="<%= messages("form.field_details") %>">\r\n<form
id="fieldForm">\r\n <div id="field-messages" class="messages">
</div>\r\n <div class="form-row">\r\n <label><%=
messages("title") %></label>\r\n <input type="text"
name="field.title" />\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("form.unique_name") %></label>\r\n <input type="text"
name="
field.name" />\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("form.field_type") %></label>\r\n <select
id="fieldType" name="field.fieldType">\r\n <option
value="TEXT">Text</option>\r\n <option
value="CHECKBOX">Checkbox</option>\r\n <option
value="RADIO">Radiobox</option>\r\n <option
value="PASSWORD">Password</option>\r\n <option
value="LISTBOX">Listbox</option>\r\n <option value="FILE">File
upload</option>\r\n </select>\r\n </div>\r\n <div
class="form-row" id="field-width">\r\n <label><%=
messages("form.width_chars") %></label>\r\n <input type="text"
name="field.width" />\r\n </div>\r\n <div class="form-row"
id="field-height">\r\n <label><%=
messages("form.height_chars") %></label>\r\n <input type="text"
name="field.height" />\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("mandatory") %></label>\r\n <input type="checkbox"
name="field.mandatory" />\r\n </div>\r\n <div class="form-row"
id="field-values">\r\n <label><%=
messages("values") %></label>\r\n <textarea
name="field.values"></textarea>\r\n </div>\r\n <div class="form-row"
id="field-defaultValue">\r\n <label><%=
messages("default_value") %></label>\r\n <input type="text"
name="field.defaultValue"/>\r\n </div>\r\n <div id="regexDiv">\r\n
<div class="form-row" id="field-defaultValue">\r\n <label><%=
messages("form.regex_code") %></label>\r\n <input type="text"
name="field.regex"/>\r\n </div>\r\n <div class="form-row"
id="field-defaultValue">\r\n <label><%=
messages("form.regex_message") %></label>\r\n <select
id="language"></select> \r\n <input type="text"
name="field.regexMessage"/>\r\n </div>\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="saveAndAddButton" type="submit"
value="<%= messages("save_add") %>" />\r\n <input
id="fieldSaveButton" type="button" value="<%= messages("save") %>"
/>\r\n <input id="fieldCancelButton" type="button" value="<%=
messages("cancel") %>" />\r\n </div>\r\n</form>\r\n</div>\r\n\r\n<div
id="formData-dialog" style="display:none" title="<%=
messages("form.form_data") %>">\r\n<form id="formDataForm">\r\n <div
id="formData"></div>\r\n <div class="buttons-dlg">\r\n <input
id="formDataSendButton" type="button" value="<%= messages("send") %>"
/>\r\n <input id="formDataCancelButton" type="button" value="<%=
messages("cancel") %>" />\r\n
</div>\r\n</form>\r\n</div>\r\n'}),define("view/plugins/FormView",["text!template/plugins/form.html"],function(a){function
l(){e=b!="",$("#tabs").tabs(),$("#field-dialog").dialog({width:500,autoOpen:!1}),$("#formData-dialog").dialog({width:500,autoOpen:!1}),Vosao.initJSONRpc(m),$("#title").change(J),$("#language").change(Q),$('input[name="field.regexMessage"]').change(P),$("#form").submit(function(){return
H(),!1}),$("#cancelButton").click(I),$("#addFieldButton").click(r),$("#deleteFieldButton").click(E),$("#fieldType").change(u),$("#fieldForm").submit(function(){return
F(),!1}),$("#fieldSaveButton").click(function(){t(!0)}),$("#fieldCancelButton").click(s),$('input[name="field.title"]').change(K),$("#deleteDataButton").click(V),$("#formDataCancelButton").click(function(){$("#formData-dialog").dialog("close")}),$("#formDataSendButton").click(X)}function
m(){G(),o(),n()}function
n(){Vosao.jsonrpc.languageService.select(function(a){var
b="";$.each(a.list,function(a,c){d[c.code]=c,b+='<option
value="'+c.code+'">'+c.title+"</option>"}),$("#language").html(b)})}function
o(){if(b=="")return;Vosao.jsonrpc.fieldService.getByForm(function(a,b){g=a.list,p()},b)}function
p(){var a='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th><th>"+messages("name")+"</th><th>"+messages("type")+"</th><th></th></tr>";$.each(g,function(b,c){a+='<tr>\t\t\t\t<td><input
type="checkbox" name="item'+b+'" value="'+
c.id+'"/></td>\t\t\t\t<td><a
class="fieldEdit"
data-id="'+
c.id+'">'+c.title+"</a></td>\t\t\t\t<td>"+
c.name+"</td>\t\t\t\t<td>"+q(c.fieldType)+'</td>\t\t\t\t<td><a
class="fieldUp" data-index="'+b+'"><img
src="/static/images/02_up.png"/></a>\t\t\t\t <a class="fieldDown"
data-index="'+b+'"><img
src="/static/images/02_down.png"/></a>\t\t\t\t</td>\t\t\t\t</tr>'}),$("#fieldsTable").html(a+"</table>"),$("#fieldsTable
tr:even").addClass("even"),$("#fieldsTable .fieldEdit").click(function(){D($(this).attr("data-id"))}),$("#fieldsTable .fieldUp").click(function(){L($(this).attr("data-index"))}),$("#fieldsTable .fieldDown").click(function(){M($(this).attr("data-index"))})}function
q(a){return
a=="TEXT"?"Text":a=="CHECKBOX"?"Checkbox":a=="RADIO"?"Radiobox":a=="PASSWORD"?"Password":a=="LISTBOX"?"Listbox":a=="FILE"?"File
upload":"undefined"}function
r(){f=null,w(),$("#field-dialog").dialog("open")}function
s(){$("#field-dialog").dialog("close")}function t(a){var
b=x(),c=y(b);c.length==0?Vosao.jsonrpc.fieldService.updateField(function(b,c){b.result=="success"?(a&&$("#field-dialog").dialog("close"),o()):A(b.messages.list)},b):A(c)}function
u(){v()}function v(){var
a=$('select[name="field.fieldType"]').val();a=="TEXT"&&($("#field-values").hide(),$("#field-height").show(),$("#field-width").show(),$("#field-defaultValue").show(),$("#regexDiv").show()),a=="LISTBOX"&&($("#field-values").show(),$("#field-height").hide(),$("#field-width").hide(),$("#field-defaultValue").hide(),$("#regexDiv").hide()),a=="CHECKBOX"&&($("#field-values").show(),$("#field-height").hide(),$("#field-width").hide(),$("#field-defaultValue").hide(),$("#regexDiv").hide()),a=="RADIO"&&($("#field-values").show(),$("#field-height").hide(),$("#field-width").hide(),$("#field-defaultValue").hide(),$("#regexDiv").hide()),a=="PASSWORD"&&($("#field-values").hide(),$("#field-height").hide(),$("#field-width").show(),$("#field-defaultValue").hide(),$("#regexDiv").hide()),a=="FILE"&&($("#field-values").hide(),$("#field-height").hide(),$("#field-width").hide(),$("#field-defaultValue").hide(),$("#regexDiv").hide())}function
w(){f==null?(i={},$('input[name="
field.name"]').val(""),$('input[name="field.title"]').val(""),$('select[name="field.fieldType"]').val("TEXT"),$('textarea[name="field.values"]').val(""),$('input[name="field.defaultValue"]').val(""),$('input[name="field.height"]').val("1"),$('input[name="field.width"]').val("20"),$('input[name="field.mandatory"]')[0].checked=!1,$('input[name="field.regex"]').val(""),$('input[name="field.regexMessage"]').val("")):($('input[name="
field.name"]').val(
f.name),$('input[name="field.title"]').val(f.title),$('select[name="field.fieldType"]').val(f.fieldType),$('textarea[name="field.values"]').val(f.values),$('input[name="field.defaultValue"]').val(f.defaultValue),$('input[name="field.height"]').val(f.height),$('input[name="field.width"]').val(f.width),$('input[name="field.mandatory"]')[0].checked=f.optional,$('input[name="field.regex"]').val(f.regex),$('input[name="field.regexMessage"]').val(O())),v(),C()}function
x(){var a=f!=null?f.index:g==null?0:g.length;return
Vosao.javaMap({id:f!=null?String(
f.id):null,formId:b,name:$('input[name="
field.name"]').val(),title:$('input[name="field.title"]').val(),fieldType:$('select[name="field.fieldType"]').val(),values:$('textarea[name="field.values"]').val(),defaultValue:$('input[name="field.defaultValue"]').val(),height:$('input[name="field.height"]').val(),width:$('input[name="field.width"]').val(),index:String(a),regex:$('input[name="field.regex"]').val(),regexMessage:R(),mandatory:String($('input[name="field.mandatory"]:checked').size()>0)})}function
y(a){var b=new
Array;
a.map.name==""&&b.push(messages("name_is_empty")),a.map.title==""&&b.push(messages("title_is_empty"));var
c=Number(a.map.height);a.map.fieldType=="TEXT"&&c<=0&&b.push(messages("form.height_zero_error"));var
d=Number(a.map.width);return
a.map.fieldType=="TEXT"&&d<=0&&b.push(messages("form.width_zero_error")),b}function
z(a){Vosao.infoMessage("#field-messages",a)}function
A(a){Vosao.errorMessages("#field-messages",a)}function
B(a){Vosao.errorMessage("#field-messages",a)}function
C(){$("#field-messages").html("")}function
D(a){C(),Vosao.jsonrpc.fieldService.getById(function(a){f=a,S(),w(),$("#field-dialog").dialog("open")},a)}function
E(){var a=new
Array;$("input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.fieldService.remove(function(b){b.result=="success"?(Vosao.info(a.length+" "+messages("form.success_field_delete")+"."),o()):Vosao.showServiceMessages(b)},Vosao.javaList(a))}function
F(){t(!1),r()}function
G(){Vosao.jsonrpc.formService.getForm(function(a){c=a,T(),a!=null?($("#title").val(a.title),$("#name").val(
a.name),$("#email").val(a.email),$("#letterSubject").val(a.letterSubject),$("#sendButtonTitle").val(a.sendButtonTitle),$("#resetButtonTitle").val(a.resetButtonTitle),$("#showResetButton").each(function(){this.checked=a.showResetButton}),$("#enableCaptcha").each(function(){this.checked=a.enableCaptcha}),$("#enableSave").each(function(){this.checked=a.enableSave}),$(".fieldsTab").show()):($("#title").val(""),$("#name").val(""),$("#email").val(""),$("#letterSubject").val(""),$("#sendButtonTitle").val(""),$("#resetButtonTitle").val(""),$("#showResetButton").each(function(){this.checked=!1}),$("#enableCaptcha").each(function(){this.checked=!1}),$("#enableSave").each(function(){this.checked=!1}),$(".fieldsTab").hide())},b)}function
H(){var
a=Vosao.javaMap({id:b,title:$("#title").val(),name:$("#name").val(),email:$("#email").val(),letterSubject:$("#letterSubject").val(),sendButtonTitle:$("#sendButtonTitle").val(),resetButtonTitle:$("#resetButtonTitle").val(),showResetButton:String($("#showResetButton:checked").size()>0),enableCaptcha:String($("#enableCaptcha:checked").size()>0),enableSave:String($("#enableSave:checked").size()>0)});Vosao.jsonrpc.formService.saveForm(function(a){a.result=="success"?e?location.href="#plugins/forms":(b=a.message,e=!0,m(),Vosao.info(messages("form.success_create"))):Vosao.showServiceMessages(a)},a)}function
I(){location.href="#plugins/forms"}function J(){if(e)return;var
a=$("#name").val(),b=$("#title").val();a==""&&$("#name").val(Vosao.urlFromTitle(b))}function
K(){if(f!=null)return;var
a=$('input[name="
field.name"]').val(),b=$('input[name="field.title"]').val();a==""&&$('input[name="
field.name"]').val(Vosao.urlFromTitle(b))}function
L(a){a-1>=0&&(Vosao.jsonrpc.fieldService.moveUp(function(a){},b,g[a].id),g[a].index--,g[a-1].index++,N(a,a-1),p())}function
M(a){a+1<g.length&&(Vosao.jsonrpc.fieldService.moveDown(function(a){},b,g[a].id),g[a+1].index--,g[a].index++,N(a,a+1),p())}function
N(a,b){var c=g[b];g[b]=g[a],g[a]=c}function O(){return
i[$("#language").val()]?i[$("#language").val()]:""}function
P(){i[$("#language").val()]=$('input[name="field.regexMessage"]').val()}function
Q(){$('input[name="field.regexMessage"]').val(i[$("#language").val()])}function
R(){var a="",b=0;return
$.each(i,function(c,d){a+=(b++==0?"":"::")+c+d}),a}function
S(){f.regexMessage?$.each(f.regexMessage.split("::"),function(a,b){var
c=b.substr(0,2),d=b.substr(2);i[c]=d}):i={}}function
T(){c==null?(j=[],U()):Vosao.jsonrpc.formService.getFormData(function(a){j=a.list,U()},
c.id)}function
U(){var a='<table
class="form-table"><tr><th></th><th>'+messages("ip_address")+"</th><th>"+messages("date")+"</th></tr>";$.each(j,function(b,c){a+='<tr><td><input
type="checkbox" name="item'+b+'"
value="'+
c.id+'"/></td><td>'+c.ipAddress+"</td>"+'<td><a class="showForm"
data-index="'+b+'">'+(new
Date(c.modDate.time)).toLocaleString()+"</a></td></tr>"}),$("#dataTable").html(a+"</table>"),$("#dataTable
tr:even").addClass("even"),$("#dataTable
a.showForm").click(function(){W($(this).attr("data-index"))})}function
V(){var a=new Array;$("#dataTable
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.formService.removeData(function(b){b.result=="success"?(Vosao.info(a.length+" "+messages("form.success_records_delete")+"."),m()):Vosao.showServiceMessages(b)},Vosao.javaList(a))}function
W(a){k=a;var b=j[a],c='<table
class="form-table"><tr><th>'+messages("name")+"</th><th>"+messages("value")+"</th></tr>";$.each(b.values.map,function(a,b){var
d=b;if(d.indexOf("/file/form")==0){var e=d.split("/"),f=e[e.length-1];d='<a
href="'+d+'">'+f+"</a>"}c+="<tr><td>"+a+"</td><td>"+d+"</td></tr>"}),$("#formData").html(c+"</table>"),$("#formData
tr:even").addClass("even"),$("#formData-dialog").dialog("open")}function
X(){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.formService.sendFormLetter(function(a){Vosao.showServiceMessages(a)},j[k].id)}console.log("Loading
FormView.js");var
b="",c=null,d={},e=b!="",f=null,g=null,h=null,i={},j=null,k=0;return
Backbone.View.extend({css:"/static/css/form.css",el:$("#content"),tmpl:_.template(a),render:function(){Vosao.addCSSFile(this.css),this.el.html(this.tmpl({messages:messages})),l()},remove:function(){$("#field-dialog,
#formData-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)},setId:function(a){b=a}})}),define("text!template/plugins/seo-urls.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n<ul>\r\n <li><a
href="#tab-1"><%=
messages("plugins.seo_urls") %></a></li>\r\n</ul>\r\n\r\n<div
id="tab-1">\r\n\r\n<div id="urls"><img src="/static/images/ajax-loader.gif"
/></div>\r\n\r\n<div class="buttons">\r\n <input id="addButton"
type="button" value="<%= messages("add") %>" />\r\n <input
id="removeButton" type="button" value="<%= messages("remove") %>"
/>\r\n</div>\r\n\r\n<div id="url-dialog" style="display:none" title="<%=
messages("seo_urls.details") %>">\r\n <form id="seoForm">\r\n <div
id="url-messages" class="messages"> </div>\r\n <div
class="form-row">\r\n <label><%=
messages("seo_urls.from_link") %></label>\r\n <input id="fromLink"
type="text" />\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("seo_urls.to_link") %></label>\r\n <input
id="toLink" type="text" />\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="saveAndAddButton" type="button"
value="<%= messages("save_add") %>" />\r\n <input id="saveDlgButton"
type="submit" value="<%= messages("save") %>" />\r\n <input
id="cancelDlgButton" type="button" value="<%= messages("cancel") %>"
/>\r\n </div>\r\n
</form>\r\n</div>\r\n\r\n</div>\r\n\r\n</div>\r\n'}),define("view/plugins/SeoUrlsView",["text!template/plugins/seo-urls.html"],function(a){function
c(){$("#url-dialog").dialog({width:500,autoOpen:!1}),Vosao.initJSONRpc(d),$("#tabs").tabs(),$("#addButton").click(f),$("#removeButton").click(h),$("#saveAndAddButton").click(i),$("#seoForm").submit(function(){return
k(!0),!1}),$("#cancelDlgButton").click(l)}function
d(){Vosao.jsonrpc.seoUrlService.select(function(a){var b='<table
class="form-table"><tr><th></th><th>'+messages("from")+"</th><th>"+messages("to")+"</th></tr>";$.each(a.list,function(a,c){b+='<tr><td><input
type="checkbox" value="'+
c.id+'"/></td><td><a
data-id="'+
c.id+'">'+c.fromLink+"</a></td><td>"+c.toLink+"</td></tr>"}),$("#urls").html(b+"</table>"),$("#urls
tr:even").addClass("even"),$("#urls
a").click(function(){e($(this).attr("data-id"))})})}function
e(a){m(),Vosao.jsonrpc.seoUrlService.getById(function(a){b=a,g(),$("#url-dialog").dialog("open")},a)}function
f(){b=null,g(),$("#url-dialog").dialog("open")}function
g(){m(),b==null?($("#fromLink").val(""),$("#toLink").val("")):($("#fromLink").val(b.fromLink),$("#toLink").val(b.toLink))}function
h(){var a=new Array;$("#urls
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.seoUrlService.remove(function(a){Vosao.showServiceMessages(a),d()},Vosao.javaList(a))}function
i(){k(!1,!0)}function j(a){var b=new Array;return
a.fromLink==""&&b.push(messages("seo_urls.from_link_empty")),a.toLink==""&&b.push(messages("seo_urls.to_link_empty")),b}function
k(a,c){var
e={id:b!=null?String(
b.id):"",fromLink:$("#fromLink").val(),toLink:$("#toLink").val()},g=j(e);g.length==0?Vosao.jsonrpc.seoUrlService.save(function(b){b.result=="success"?(a&&$("#url-dialog").dialog("close"),d(),c&&f()):n(b.messages.list)},Vosao.javaMap(e)):n(g)}function
l(){$("#url-dialog").dialog("close")}function
m(){$("#url-messages").html("")}function
n(a){Vosao.errorMessages("#url-messages",a)}console.log("Loading
SeoUrlsView.js");var b=null;return
Backbone.View.extend({css:"/static/css/form.css",el:$("#content"),render:function(){Vosao.addCSSFile(this.css),this.el.html(_.template(a,{messages:messages})),c()},remove:function(){$("#url-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)}})}),define("text!template/config/config.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs" class="ui-tabs ui-widget
ui-widget-content ui-corner-all">\r\n\r\n<ul class="ui-tabs-nav
ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">\r\n
<li class="ui-corner-top ui-state-default">\r\n <a
href="#config"><%= messages("config.title") %></a>\r\n </li>\r\n <li
class="ui-corner-top ui-state-default">\r\n <a
href="#config/comments"><%= messages("comments") %></a>\r\n </li>\r\n
<li class="ui-corner-top ui-state-default">\r\n <a
href="#config/languages"><%= messages("languages") %></a>\r\n
</li>\r\n <li class="ui-corner-top ui-state-default">\r\n <a
href="#config/messages"><%= messages("message_bundle") %></a>\r\n
</li>\r\n <li class="ui-corner-top ui-state-default">\r\n <a
href="#config/users"><%= messages("users") %></a>\r\n </li>\r\n <li
class="ui-corner-top ui-state-default">\r\n <a
href="#config/groups"><%= messages("groups") %></a>\r\n </li>\r\n <li
class="ui-corner-top ui-state-default">\r\n <a
href="#config/tags"><%= messages("tags") %></a>\r\n </li>\r\n <li
class="ui-corner-top ui-state-default">\r\n <a
href="#config/attributes"><%= messages("attributes") %></a>\r\n
</li>\r\n</ul>\r\n\r\n<div id="tab-1" class="ui-tabs-panel
ui-widget-content ui-corner-bottom"></div>\r\n\r\n</div>\r\n\r\n<div
id="import-dialog" title="<%= messages("config.import_site") %>"
style="display:none">\r\n<form id="upload" action="/cms/upload"
method="post" enctype="multipart/form-data">\r\n <%=
messages("file_upload") %>:\r\n <input type="hidden" name="fileType"
value="import" />\r\n <input type="file" name="uploadFile" />\r\n
<div class="buttons-dlg">\r\n <input type="submit" value="<%=
messages("send") %>" />\r\n <input id="importCancelButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>
\r\n</form>\r\n</div>\r\n\r\n<div id="afterUpload-dialog"
style="display:none" title="<%= messages("status_window") %>">\r\n <form
id="okForm">\r\n <p class="message"></p>\r\n <div
class="buttons-dlg">\r\n <input id="okButton" type="submit"
value="OK" />\r\n </div>\r\n </form>\r\n</div>\r\n\r\n<div
id="export-dialog" style="display:none" title="<%=
messages("export_window") %>">\r\n <form id="exportForm">\r\n <div
class="form-row">\r\n <input type="radio" name="exportType" value="full"
/>\r\n <%= messages("config.full_export") %> <br/>\r\n <input
type="radio" name="exportType" value="site" checked="checked"/>\r\n
<%= messages("config.export_site") %> <br/>\r\n <input type="radio"
name="exportType" value="resources"/>\r\n <%=
messages("resources") %> <br/>\r\n </div>\r\n <div id="exportInfo"
class="form-row"></div> \r\n <div id="timer"
class="form-row"></div>\r\n <div class="buttons-dlg">\r\n <input
id="exportDialogButton" type="submit" value="<%= messages("export") %>"
/>\r\n <input id="exportCancelButton" type="button" value="<%=
messages("cancel") %>" />\r\n </div>\r\n </form>\r\n</div>\r\n\r\n<div
id="stat-dialog" style="display:none" title="<%=
messages("stat") %>">\r\n <div class="form-row">\r\n \t<label><%=
messages("pages") %>:</label>\r\n \t<span id="statPages"></span>\r\n
</div>\r\n <div class="form-row">\r\n \t<label><%=
messages("stat.page_permissions") %>:</label>\r\n \t<span
id="statPagePermissions"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%=
messages("structures") %>:</label>\r\n \t<span
id="statStructures"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%=
messages("stat.structure_templates") %>:</label>\r\n \t<span
id="statStructureTemplates"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%=
messages("templates") %>:</label>\r\n \t<span
id="statTemplates"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%=
messages("folders") %>:</label>\r\n \t<span
id="statFolders"></span>\r\n </div>\r\n <div class="form-row">\r\n
\t<label><%= messages("stat.folder_permissions") %>:</label>\r\n \t<span
id="statFolderPermissions"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%= messages("files") %>:</label>\r\n
\t<span id="statFiles"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%=
messages("languages") %>:</label>\r\n \t<span
id="statLanguages"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%=
messages("messages") %>:</label>\r\n \t<span
id="statMessages"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%= messages("users") %>:</label>\r\n
\t<span id="statUsers"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%= messages("groups") %>:</label>\r\n
\t<span id="statGroups"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%= messages("tags") %>:</label>\r\n
\t<span id="statTags"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><b><%=
messages("stat.total") %>:</b></label>\r\n \t<span id="statTotal"
style="font-weight:bold;"></span>\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="statOKButton" type="button"
value="OK" />\r\n
</div>\r\n</div>\r\n'}),define("text!template/config/index.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n <form id="configForm">\r\n <div
class="form-row">\r\n <label><%=
messages("config.db_version") %></label>\r\n <span id="version"
/>\r\n </div>\r\n <div class="form-row">\r\n <label>Google
Analytics ID</label>\r\n <input id="googleAnalyticsId" type="text"
/>\r\n </div>\r\n <div class="form-row">\r\n <label><%=
messages("config.site_owner_email") %></label>\r\n <input
id="siteEmail" type="text" />\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("site_domain") %></label>\r\n <input id="siteDomain"
type="text" />\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("config.enable_recaptcha") %></label>\r\n <input
id="enableRecaptcha" type="checkbox" />\r\n </div>\r\n <div
id="recaptcha">\r\n <div class="form-row">\r\n <label><%=
messages("config.recaptcha_public_key") %></label>\r\n <input
id="recaptchaPublicKey" type="text" size="40"/>\r\n
</div>\r\n <div class="form-row">\r\n <label><%=
messages("config.recaptcha_private_key") %></label>\r\n <input
id="recaptchaPrivateKey" type="text" size="40"/>\r\n </div>\r\n
</div>\r\n <div class="form-row">\r\n <label><%=
messages("config.edit_extension") %></label>\r\n <input id="editExt"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("config.login_url") %></label>\r\n <input
id="siteUserLoginUrl" type="text"/>\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("config.404_url") %></label>\r\n <input id="site404Url"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("config.enable_ckeditor") %></label>\r\n <input
id="enableCkeditor" type="checkbox" />\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("profile.timezone") %></label>\r\n <select
id="timezone"></select>\r\n </div> \r\n <div
class="form-row">\r\n <label><%=
messages("page.select_language") %>:</label> \r\n <select
id="language"></select>\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("config.enable_picasa") %></label>\r\n <input
id="enablePicasa" type="checkbox" />\r\n </div>\r\n <div
id="picasa">\r\n <div class="form-row">\r\n <label>Picasa
<%= messages("user_email") %></label>\r\n <input id="picasaUser"
type="text" />\r\n </div>\r\n <div
class="form-row">\r\n <label>Picasa <%=
messages("password") %></label>\r\n <input id="picasaPassword"
type="password" />\r\n </div>\r\n </div>\r\n <div
class="buttons">\r\n <input id="saveButton" type="submit" value="<%=
messages("save") %>" />\r\n <input id="exportButton" type="button"
value="<%= messages("export") %>" />\r\n <input id="importButton"
type="button" value="<%= messages("import") %>" />\r\n <input
id="reindexButton" type="button" value="<%=
messages("config.create_search_index") %>" />\r\n <input
id="resetButton" type="button" value="<%= messages("reset") %>"
/>\r\n <input id="loadDefaultSiteButton" type="button" value="<%=
messages("config.load_default_site") %>" />\r\n <input
id="cacheResetButton" type="button" value="<%=
messages("config.cache_reset") %>" />\r\n <input id="statButton"
type="button" value="<%= messages("stat") %>" />\r\n </div>\r\n
</form>\r\n'}),define("view/config/IndexView",["text!template/config/index.html"],function(a){function
j(){$("#upload").ajaxForm(r),Vosao.initJSONRpc(k),$("#enableRecaptcha").click(p),$("#configForm").submit(function(){return
x(),!1}),$("#exportButton").click(y),$("#importButton").click(s),$("#importCancelButton").click(t),$("#resetButton").click(D),$("#cacheResetButton").click(F),$("#reindexButton").click(E),$("#loadDefaultSiteButton").click(G),$("#okForm").submit(function(){return
u(),!1}),$("#exportForm").submit(function(){return
A(),!1}),$("#exportCancelButton").click(z),$("ul.ui-tabs-nav
li:nth-child(1)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default"),$("#enablePicasa").click(q),$("#statButton").click(H),$("#statOKButton").click(I)}function
k(){v(),l(),m()}function
l(){Vosao.jsonrpc.userService.getTimezones(function(a){h=a.list,n()})}function
m(){Vosao.jsonrpc.languageService.select(function(a){i=a.list,o()})}function
n(){var a="";$.each(h,function(b,c){a+='<option
value="'+c+'">'+c+"</option>"}),$("#timezone").html(a),$("#timezone").val(b.defaultTimezone)}function
o(){var a="";$.each(i,function(b,c){a+='<option
value="'+c.code+'" '+">"+c.title+"</option>"}),$("#language").html(a),$("#language").val(b.defaultLanguage)}function
p(){var
a=$("#enableRecaptcha:checked").size()>0;a?$("#recaptcha").show():$("#recaptcha").hide()}function
q(){var
a=$("#enablePicasa:checked").size()>0;a?$("#picasa").show():$("#picasa").hide()}function
r(a){var
b=a.split("::"),c=b[1],d=b[2];c=="success"?d=messages("config.saved_for_import"):d=messages("error")+". "+d,$("#import-dialog").dialog("close"),$("#afterUpload-dialog .message").text(d),$("#afterUpload-dialog").dialog("open")}function
s(){$("#import-dialog").dialog("open")}function
t(){$("#import-dialog").dialog("close")}function
u(){$("#afterUpload-dialog").dialog("close"),k()}function
v(){Vosao.jsonrpc.configService.getConfig(function(a){b=a,w()})}function
w(){$("#version").html(b.version),$("#googleAnalyticsId").val(b.googleAnalyticsId),$("#siteEmail").val(b.siteEmail),$("#siteDomain").val(b.siteDomain),$("#enableRecaptcha").each(function(){this.checked=b.enableRecaptcha}),$("#recaptchaPublicKey").val(b.recaptchaPublicKey),$("#recaptchaPrivateKey").val(b.recaptchaPrivateKey),p(),$("#editExt").val(b.editExt),$("#siteUserLoginUrl").val(b.siteUserLoginUrl),$("#site404Url").val(b.site404Url),$("#enablePicasa").each(function(){this.checked=b.enablePicasa}),$("#enableCkeditor").each(function(){this.checked=b.enableCkeditor}),$("#picasaUser").val(b.picasaUser),$("#picasaPassword").val(b.picasaPassword),q()}function
x(){var
a=Vosao.javaMap({googleAnalyticsId:$("#googleAnalyticsId").val(),siteEmail:$("#siteEmail").val(),siteDomain:$("#siteDomain").val(),enableRecaptcha:String($("#enableRecaptcha:checked").size()>0),recaptchaPublicKey:$("#recaptchaPublicKey").val(),recaptchaPrivateKey:$("#recaptchaPrivateKey").val(),enablePicasa:String($("#enablePicasa:checked").size()>0),enableCkeditor:String($("#enableCkeditor:checked").size()>0),picasaUser:$("#picasaUser").val(),picasaPassword:$("#picasaPassword").val(),editExt:$("#editExt").val(),defaultTimezone:$("#timezone").val(),defaultLanguage:$("#language").val(),siteUserLoginUrl:$("#siteUserLoginUrl").val(),site404Url:$("#site404Url").val()});Vosao.jsonrpc.configService.saveConfig(function(a){Vosao.showServiceMessages(a)},a)}function
y(){$("#export-dialog").dialog("open")}function
z(){$("#export-dialog").dialog("close"),clearInterval(c),clearInterval(d)}function
A(){$("#exportDialogButton").attr("disabled",!0),e=0,C(),g=$("input[name=exportType]:checked").val(),Vosao.jsonrpc.configService.startExportTask(function(a){a.result=="success"?(f=a.message,Vosao.infoMessage("#exportInfo",messages("creating_export_file")),c=setInterval(B,1e4),d=setInterval(C,1e3)):Vosao.showServiceMessages(a)},g)}function
B(){Vosao.jsonrpc.configService.isExportTaskFinished(function(a){a&&(clearInterval(c),clearInterval(d),$("#export-dialog").dialog("close"),$("#exportDialogButton").attr("disabled",!1),location.href="/file/tmp/"+f)},g)}function
C(){$("#timer").html(e++ +" sec.")}function
D(){confirm(messages("config.reset_warning1"))&&confirm(messages("config.reset_warning2"))&&Vosao.jsonrpc.configService.reset(function(a){Vosao.showServiceMessages(a),a.result=="success"&&(location.href="/")})}function
E(){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.configService.reindex(function(a){Vosao.showServiceMessages(a)})}function
F(){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.configService.cacheReset(function(a){Vosao.showServiceMessages(a)})}function
G(){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.configService.loadDefaultSite(function(a){Vosao.showServiceMessages(a)})}function
H(){Vosao.jsonrpc.configService.getSiteStat(function(a){$("#statPages").text(a.pages),$("#statPagePermissions").text(a.pagePermissions),$("#statStructures").text(a.structures),$("#statStructureTemplates").text(a.structureTemplates),$("#statTemplates").text(a.templates),$("#statFolders").text(a.folders),$("#statFolderPermissions").text(a.folderPermissions),$("#statFiles").text(a.files),$("#statLanguages").text(a.languages),$("#statMessages").text(a.messages),$("#statUsers").text(a.users),$("#statGroups").text(a.groups),$("#statTags").text(a.tags),$("#statTotal").text(a.total),$("#stat-dialog").dialog("open")})}function
I(){$("#stat-dialog").dialog("close")}console.log("Loading
IndexView.js");var
b="",c=null,d=null,e=0,f=null,g=null,h=null,i=null;return
Backbone.View.extend({el:$("#tab-1"),render:function(){this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),j()},remove:function(){$("#import-dialog,
#afterUpload-dialog, #export-dialog,
#stat-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/config/comments.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n <form id="commentsForm">\r\n <div
class="form-row">\r\n <label><%=
messages("config.comments_email") %></label>\r\n <input
id="commentsEmail" type="text"/>\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("config.comments_template") %></label>\r\n <textarea
id="commentsTemplate" cols="80" rows="20"></textarea>\r\n </div>\r\n
<div class="buttons">\r\n <input id="commentsSaveButton"
type="submit" value="<%= messages("save") %>" />\r\n <input
id="restoreButton" type="button" value="<%= messages("restore_default") %>"
/>\r\n </div>\r\n
</form>\r\n'}),define("text!template/config/languages.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="languages"> </div>\r\n<div
class="buttons">\r\n <input id="addLanguageButton" type="button"
value="<%= messages("add") %>" />\r\n <input id="removeLanguageButton"
type="button" value="<%= messages("remove") %>" />\r\n</div>\r\n\r\n<div
id="language-dialog" style="display:none" title="<%=
messages("config.site_language") %>">\r\n <form id="languageForm">\r\n
<div class="messages"> </div>\r\n <div id="languageSelection"
style="padding-bottom: 10px;">\r\n <input id="selectFromListRadio"
type="radio" name="select" \r\n checked="checked" /> <%=
messages("select_from_list") %>\r\n <input id="notInListRadio"
type="radio" name="select" />\r\n <%=
messages("config.not_in_list") %> \r\n </div> \r\n <div
id="listed-language">\r\n <select
id="selectLanguage"></select>\r\n </div>\r\n <div
id="not-listed-language" style="display:none">\r\n <div
class="form-row">\r\n <label><%= messages("language") %> <a
href="
http://ftp.ics.uci.edu/pub/ietf/http/related/iso639.txt">iso639</a> 2
letter code</label>\r\n <input id="languageCode"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("title") %></label>\r\n <input
id="languageTitle" type="text"/>\r\n </div>\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="languageSaveButton"
type="submit" value="<%= messages("save") %>" />\r\n <input
id="languageCancelButton" type="button" value="<%= messages("cancel") %>"
/>\r\n </div>\r\n </form>
\r\n</div>\r\n\r\n'}),define("view/config/LanguagesView",["text!template/config/languages.html"],function(a){function
d(){$("#language-dialog").dialog({width:400,autoOpen:!1}),Vosao.initJSONRpc(e),q(),$("#selectFromListRadio").click(function(){r(!0)}),$("#notInListRadio").click(function(){r(!1)}),$("#languageForm").submit(function(){return
l(),!1}),$("#selectLanguage").change(s),$("#languageCancelButton").click(m),$("#addLanguageButton").click(f),$("#removeLanguageButton").click(g),$("ul.ui-tabs-nav
li:nth-child(3)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
e(){n()}function
f(){b=null,$("#language-dialog").dialog("open"),$("#languageSelection").show(),$("#listed-language").show(),$("#not-listed-language").hide(),$("#language-dialog .messages").html("")}function
g(){var a=[];$("#languages
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.languageService.remove(function(a){Vosao.info(a.message),n()},Vosao.javaList(a))}function
h(a){Vosao.infoMessage("#language-dialog .messages",a)}function
i(a){Vosao.errorMessage("#language-dialog .messages",a)}function
j(a){Vosao.errorMessages("#language-dialog .messages",a)}function k(a){var
b=[];return
a.code==""&&b.push(messages("config.code_is_empty")),a.title==""&&b.push(messages("title_is_empty")),b}function
l(){var
a={id:b!=null?String(
b.id):"",code:$("#languageCode").val(),title:$("#languageTitle").val()},c=k(a);c.length==0?Vosao.jsonrpc.languageService.save(function(a){a.result=="success"?($("#language-dialog").dialog("close"),n()):j(a.messages.list)},Vosao.javaMap(a)):j(c)}function
m(){$("#language-dialog").dialog("close")}function
n(){Vosao.jsonrpc.languageService.select(function(a){c=a.list;var b='<table
class="form-table"><tr><th></th><th>'+messages("code")+"</th><th>"+messages("title")+"</th></tr>";$.each(a.list,function(a,c){b+='<tr><td><input
type="checkbox"
value="'+
c.id+'"/></td><td>'+c.code+'</td><td>\t <a
data-id="'+
c.id+'">'+c.title+"</a></td></tr>"}),$("#languages").html(b+"</table>"),$("#languages
tr:even").addClass("even"),$("#languages a").click(function(){var
a=$(this).attr("data-id");a&&o(a)})})}function
o(a){Vosao.jsonrpc.languageService.getById(function(a){b=a,$("#languageCode").val(a.code),$("#languageTitle").val(a.title),$("#language-dialog").dialog("open"),$("#languageSelection").hide(),$("#listed-language").hide(),$("#not-listed-language").show(),$("#language-dialog .messages").html("")},a)}function
q(){var a="";for(var b in p)a+='<option
value="'+b+'">'+p[b]+"</option>\n";$("#selectLanguage").html(a),$("#selectLanguage").val("ru"),s()}function
r(a){a?($("#listed-language").show(),$("#not-listed-language").hide()):($("#listed-language").hide(),$("#not-listed-language").show())}function
s(){var
a=$("#selectLanguage").val();$("#languageCode").val(a),$("#languageTitle").val(p[a])}console.log("Loading
LanguagesView.js");var
b=null,c=null,p={aa:"Afar",ab:"Abkhazian",af:"Afrikaans",am:"Amharic",ar:"Arabic",as:"Assamese",ay:"Aymara",az:"Azerbaijani",ba:"Bashkir",be:"Byelorussian",bg:"Bulgarian",bh:"Bihari",bi:"Bislama",bn:"Bengali;
Bangla",bo:"Tibetan",br:"Breton",bs:"Bosnian",ca:"Catalan",co:"Corsican",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",dz:"Bhutani",el:"Greek",en:"English",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fj:"Fiji",fo:"Faroese",fr:"French",fy:"Frisian",ga:"Irish",gd:"Scots
Gaelic",gl:"Galician",gn:"Guarani",gu:"Gujarati",ha:"Hausa",he:"Hebrew
(formerly
iw)",hi:"Hindi",hr:"Croatian",hu:"Hungarian",hy:"Armenian",ia:"Interlingua",id:"Indonesian
(formerly
in)",ie:"Interlingue",ik:"Inupiak",is:"Icelandic",it:"Italian",iu:"Inuktitut",ja:"Japanese",jw:"Javanese",ka:"Georgian",kk:"Kazakh",kl:"Greenlandic",km:"Cambodian",kn:"Kannada",ko:"Korean",ks:"Kashmiri",ku:"Kurdish",ky:"Kirghiz",la:"Latin",ln:"Lingala",lo:"Laothian",lt:"Lithuanian",lv:"Latvian,
Lettish",mg:"Malagasy",mi:"Maori",mk:"Macedonian",ml:"Malayalam",mn:"Mongolian",mo:"Moldavian",mr:"Marathi",ms:"Malay",mt:"Maltese",my:"Burmese",na:"Nauru",ne:"Nepali",nl:"Dutch",no:"Norwegian",oc:"Occitan",om:"(Afan)
Oromo",or:"Oriya",pa:"Punjabi",pl:"Polish",ps:"Pashto,
Pushto",pt:"Portuguese",qu:"Quechua",rm:"Rhaeto-Romance",rn:"Kirundi",ro:"Romanian",ru:"Russian",rw:"Kinyarwanda",sa:"Sanskrit",sd:"Sindhi",sg:"Sangho",sh:"Serbo-Croatian",si:"Sinhalese",sk:"Slovak",sl:"Slovenian",sm:"Samoan",sn:"Shona",so:"Somali",sq:"Albanian",sr:"Serbian",ss:"Siswati",st:"Sesotho",su:"Sundanese",sv:"Swedish",sw:"Swahili",ta:"Tamil",te:"Telugu",tg:"Tajik",th:"Thai",ti:"Tigrinya",tk:"Turkmen",tl:"Tagalog",tn:"Setswana",to:"Tonga",tr:"Turkish",ts:"Tsonga",tt:"Tatar",tw:"Twi",ug:"Uighur",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",vi:"Vietnamese",vo:"Volapuk",wo:"Wolof",xh:"Xhosa",yi:"Yiddish
(formerly ji)",yo:"Yoruba",za:"Zhuang","zh-CN":"Simplified
Chinese","zh-TW":"Traditional Chinese",zu:"Zulu"};return
Backbone.View.extend({el:$("#tab-1"),render:function(){this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),d()},remove:function(){$("#language-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/config/messages.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="messageBundle"> </div>\r\n<div
class="buttons">\r\n <input id="addMessageButton" type="button"
value="<%= messages("add") %>" />\r\n <input id="removeMessageButton"
type="button" value="<%= messages("remove") %>" />\r\n</div>\r\n\r\n<div
id="message-dialog" style="display:none" title="<%=
messages("config.localized_message") %>">\r\n <form
id="messageForm">\r\n <div class="messages"> </div>\r\n <div
class="form-row">\r\n <label><%=
messages("config.message_code") %></label>\r\n <input
id="messageCode" type="text"/>\r\n </div>\r\n <div
id="messagesInput"> </div>\r\n <div class="buttons-dlg">\r\n
<input id="saveMessageDlgButton" type="submit" value="<%=
messages("save") %>" />\r\n <input id="cancelMessageDlgButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form>\r\n</div>\r\n\r\n'}),define("view/config/MessagesView",["text!template/config/messages.html"],function(a){function
c(){$("#message-dialog").dialog({width:400,autoOpen:!1}),Vosao.initJSONRpc(d),$("#addMessageButton").click(f),$("#removeMessageButton").click(g),$("#messageForm").submit(function(){return
j(),!1}),$("#cancelMessageDlgButton").click(k),$("ul.ui-tabs-nav
li:nth-child(4)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
d(){e()}function
e(){Vosao.jsonrpc.languageService.select(function(a){b=a.list,h()})}function
f(){n();var a="";$.each(b,function(b,c){a+='<div
class="form-row"><label>'+c.title+'</label><input type="text"
id="message_'+c.code+'"
/></div>'}),$("#messageCode").val(""),$("#messagesInput").html(a),$("#message-dialog").dialog("open")}function
g(){var a=[];$("#messageBundle
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.messageService.remove(function(a){Vosao.info(a.message),h()},Vosao.javaList(a))}function
h(){Vosao.jsonrpc.messageService.select(function(a){var c='<table
class="form-table"><tr><th></th><th>'+messages("code")+"</th>";$.each(b,function(a,b){c+="<th>"+b.title+"</th>"}),c+="</tr>",$.each(a.list,function(a,d){c+='<tr><td><input
type="checkbox" value="'+d.code+'"/></td>\t <td><a
data-code="'+d.code+'">'+d.code+"</a></td>",$.each(b,function(a,b){c+="<td>"+d.values.map[b.code]+"</td>"}),c+="</tr>"}),$("#messageBundle").html(c+"</table>"),$("#messageBundle
tr:even").addClass("even"),$("#messageBundle td a").click(function(){var
a=$(this).attr("data-code");a&&i(a)})})}function
i(a){Vosao.jsonrpc.messageService.selectByCode(function(b){f(),$("#messageCode").val(a),$.each(b.list,function(a,b){$("#message_"+b.languageCode).val(b.value)})},a)}function
j(){var
a={code:$("#messageCode").val()};$.each(b,function(b,c){a[c.code]=$("#message_"+c.code).val()}),Vosao.jsonrpc.messageService.save(function(a){a.result=="success"?(h(),$("#message-dialog").dialog("close")):m(a.messages.list)},Vosao.javaMap(a))}function
k(){$("#message-dialog").dialog("close")}function
l(a){Vosao.errorMessage("#message-dialog .messages",a)}function
m(a){Vosao.errorMessages("#message-dialog .messages",a)}function
n(){$("#message-dialog .messages").html()}console.log("Loading
MessagesView.js");var b=null;return
Backbone.View.extend({el:$("#tab-1"),render:function(){this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),c()},remove:function(){$("#message-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/config/users.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="users"> </div>\r\n<div
class="buttons">\r\n <input id="addUserButton" type="button" value="<%=
messages("add") %>" />\r\n <input id="removeUserButton" type="button"
value="<%= messages("remove") %>" />\r\n</div>\r\n\r\n<div id="user-dialog"
style="display:none" title="<%= messages("config.user_details") %>">\r\n
<form id="userForm">\r\n <div class="messages"> </div>\r\n <div
class="form-row">\r\n <label><%=
messages("user_name") %></label>\r\n <input id="userName"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("user_email") %></label>\r\n <input
id="userEmail" type="text"/>\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("user_role") %></label>\r\n <select
id="userRole">\r\n <option value="SITE_USER"
selected="selected"><%= messages("site_user") %></option>\r\n
<option value="USER"><%= messages("user") %></option>\r\n
<option value="ADMIN"><%= messages("administrator") %></option>\r\n
</select>\r\n </div>\r\n <div class="form-row">\r\n <label><%=
messages("password") %></label>\r\n <input id="userPassword1"
type="password"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("retype_password") %></label>\r\n <input
id="userPassword2" type="password"/>\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("profile.timezone") %></label>\r\n <select
id="timezone"></select>\r\n </div> \r\n <div
class="buttons-dlg">\r\n <input id="userSaveDlgButton" type="submit"
value="<%= messages("save") %>" />\r\n <input
id="userDisableDlgButton" type="button" value="<%= messages("disable") %>"
/>\r\n <input id="userCancelDlgButton" type="button" value="<%=
messages("cancel") %>" />\r\n </div>\r\n </form>
\r\n</div>\r\n\r\n'}),define("view/config/UsersView",["text!template/config/users.html"],function(a){function
d(){$("#user-dialog").dialog({width:500,autoOpen:!1}),Vosao.initJSONRpc(e),$("#addUserButton").click(f),$("#removeUserButton").click(g),$("#userForm").submit(function(){return
m(),!1}),$("#userCancelDlgButton").click(n),$("#userDisableDlgButton").click(q),$("ul.ui-tabs-nav
li:nth-child(5)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
e(){Vosao.jsonrpc.userService.getTimezones(function(a){timezones=a.list,r(),h()})}function
f(){b=null,k(),$("#user-dialog").dialog("open")}function g(){var
a=[];$("#users
input:checked").each(function(){a.push(String(this.value))});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.userService.remove(function(a){Vosao.info(a.message),h()},Vosao.javaList(a))}function
h(){Vosao.jsonrpc.userService.select(function(a){var b='<table
class="form-table"><tr><th></th><th>'+messages("name")+"</th><th>"+messages("email")+"</th><th>"+messages("role")+"</th><th>"+messages("access")+"</th></tr>";$.each(a.list,function(a,c){var
d=c.disabled?messages("disabled"):messages("enabled");b+='<tr><td><input
type="checkbox"
value="'+
c.id+'"/></td><td>'+
c.name+'</td><td>\t <a
data-id="'+
c.id+'">'+c.email+"</a></td><td>"+i(c.role)+"</td>"+"<td>"+d+"</td></tr>"}),$("#users").html(b+"</table>"),$("#users
tr:even").addClass("even"),$("#users a").click(function(){var
a=$(this).attr("data-id");a&&j(a)})})}function i(a){if(a=="ADMIN")return
messages("administrator");if(a=="USER")return
messages("user");if(a=="SITE_USER")return messages("site_user")}function
j(a){Vosao.jsonrpc.userService.getById(function(a){b=a,k(),$("#user-dialog").dialog("open")},a)}function
k(){b==null?($("#userName").val(""),$("#userEmail").val(""),$("#userEmail").removeAttr("disabled"),$("#userRole").val(""),$("#userDisableDlgButton").hide()):($("#userName").val(
b.name),$("#userEmail").val(b.email),$("#userEmail").attr("disabled",!0),$("#userRole").val(b.roleString),$("#timezone").val(b.timezone),$("#userDisableDlgButton").val(b.disabled?messages("enable"):messages("disable")).show()),$("#userPassword1").val(""),$("#userPassword2").val(""),$("#user-dialog .messages").html("")}function
l(a){var b=[];return
a.email==""&&b.push(messages("email_is_empty")),a.password1!=a.password2&&b.push(messages("config.passwords_dont_match")),b}function
m(){var
a={id:b!=null?String(
b.id):"",name:$("#userName").val(),email:$("#userEmail").val(),role:$("#userRole").val(),timezone:$("#timezone").val(),password:$("#userPassword1").val(),password1:$("#userPassword1").val(),password2:$("#userPassword2").val()},c=l(a);c.length==0?Vosao.jsonrpc.userService.save(function(a){a.result=="success"?($("#user-dialog").dialog("close"),Vosao.info(a.message),h()):p(a.messages.list)},Vosao.javaMap(a)):p(c)}function
n(){$("#user-dialog").dialog("close")}function
o(a){Vosao.errorMessage("#user-dialog .messages",a)}function
p(a){Vosao.errorMessages("#user-dialog .messages",a)}function
q(){Vosao.jsonrpc.userService.disable(function(a){$("#user-dialog").dialog("close"),Vosao.showServiceMessages(a),h()},
b.id,!b.disabled)}function
r(){var a="";$.each(timezones,function(b,c){a+='<option
value="'+c+'">'+c+"</option>"}),$("#timezone").html(a)}console.log("Loading
UsersView.js");var b=null,c=null;return
Backbone.View.extend({el:$("#tab-1"),render:function(){this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),d()},remove:function(){$("#user-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/config/groups.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="groups"> </div>\r\n<div
class="buttons">\r\n <input id="addGroupButton" type="button" value="<%=
messages("add") %>" />\r\n <input id="removeGroupButton" type="button"
value="<%= messages("remove") %>" />\r\n</div>\r\n\r\n<div
id="group-dialog" style="display:none" title="<%=
messages("config.group_details") %>">\r\n <form id="groupForm">\r\n
<div class="messages"> </div>\r\n <div class="form-row">\r\n
<label><%= messages("config.group_name") %></label>\r\n <input
id="groupName" type="text"/>\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="groupSaveDlgButton"
type="submit" value="<%= messages("save") %>" />\r\n <input
id="groupCancelDlgButton" type="button" value="<%= messages("cancel") %>"
/>\r\n </div>\r\n </form> \r\n</div>\r\n\r\n<div
id="user-group-dialog" style="display:none" title="<%=
messages("config.group_users") %>">\r\n <form id="userGroupForm">\r\n
<div id="groupUsers"> </div>\r\n <div class="buttons-dlg">\r\n
<input id="userGroupSaveDlgButton" type="submit" value="<%=
messages("save") %>" />\r\n <input id="userGroupCancelDlgButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form>
\r\n</div>\r\n\r\n'}),define("view/config/GroupsView",["text!template/config/groups.html"],function(a){function
e(){$("#group-dialog").dialog({width:460,autoOpen:!1}),$("#user-group-dialog").dialog({width:300,autoOpen:!1}),Vosao.initJSONRpc(f),$("#addGroupButton").click(h),$("#removeGroupButton").click(i),$("#groupForm").submit(function(){return
m(),!1}),$("#groupCancelDlgButton").click(n),$("#userGroupForm").submit(function(){return
s(),!1}),$("#userGroupCancelDlgButton").click(r),$("ul.ui-tabs-nav
li:nth-child(6)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
f(){g()}function
g(){Vosao.jsonrpc.groupService.select(function(a){c=Vosao.idMap(a.list);var
b='<table
class="form-table"><tr><th></th><th>'+messages("name")+"</th><th>"+messages("users")+"</th></tr>";$.each(a.list,function(a,c){if(
c.name=="guests")return;var
d=messages("add_users");c.users.list.length>0&&(d="",$.each(c.users.list,function(a,b){d+=(a==0?"":", ")+
b.name}));var
e='<a class="groupEdit" data-id="'+
c.id+'">'+
c.name+"</a>",f='<a
class="userGroupEdit" data-id="'+
c.id+'">'+d+"</a>";b+='<tr><td><input
type="checkbox"
value="'+
c.id+'"/></td><td>'+e+"</td><td>"+f+"</td></tr>"}),$("#groups").html(b+"</table>"),$("#groups
tr:even").addClass("even"),$("#groups .groupEdit").click(function(){j($(this).attr("data-id"))}),$("#groups .userGroupEdit").click(function(){q($(this).attr("data-id"))})})}function
h(){b=null,k(),$("#group-dialog").dialog("open")}function i(){var
a=[];$("#groups
input:checked").each(function(){a.push(String(this.value))});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.groupService.remove(function(a){Vosao.info(a.message),g()},Vosao.javaList(a))}function
j(a){Vosao.jsonrpc.groupService.getById(function(a){b=a,k(),$("#group-dialog").dialog("open")},a)}function
k(){b==null?$("#groupName").val(""):$("#groupName").val(
b.name),$("#group-dialog .messages").html("")}function
l(a){var b=[];return
a.name==""&&b.push(messages("name_is_empty")),b}function m(){var
a={id:b!=null?String(
b.id):"",name:$("#groupName").val()},c=l(a);c.length==0?Vosao.jsonrpc.groupService.save(function(a){a.result=="success"?($("#group-dialog").dialog("close"),Vosao.info(a.message),g()):p(a.messages.list)},Vosao.javaMap(a)):p(c)}function
n(){$("#group-dialog").dialog("close")}function
o(a){Vosao.errorMessage("#group-dialog .messages",a)}function
p(a){Vosao.errorMessages("#group-dialog .messages",a)}function
q(a){b=c[a],Vosao.jsonrpc.userService.select(function(a){d=Vosao.idMap(a.list);var
c=Vosao.idMap(b.users.list),e="";$.each(d,function(a,b){var
d="";c[
b.id]!=undefined&&(d='checked = "checked"'),e+='<div
class="form-row"><input type="checkbox" '+d+'
value="'+
b.id+'"> '+
b.name+"</div>"}),$("#groupUsers").html(e),$("#user-group-dialog").dialog("open")})}function
r(){$("#user-group-dialog").dialog("close")}function s(){var
a=[];$("#user-group-dialog
input:checked").each(function(){a.push(this.value)}),Vosao.jsonrpc.groupService.setGroupUsers(function(a){Vosao.showServiceMessages(a),$("#user-group-dialog").dialog("close"),g()},
b.id,Vosao.javaList(a))}console.log("Loading
GroupsView.js");var b=null,c=null,d=null;return
Backbone.View.extend({el:$("#tab-1"),render:function(){this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),e()},remove:function(){$("#group-dialog").dialog("destroy").remove(),$("#user-group-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/config/tags.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n\r\n<ul id="tags"></ul>\r\n<div
class="buttons">\r\n <input id="addButton" type="button" value="<%=
messages("add") %>" />\r\n</div>\r\n\r\n<div id="tag-dialog"
style="display:none" title="<%= messages("config.tag_details") %>">\r\n
<form id="tagForm">\r\n <div class="messages"> </div>\r\n <div
class="form-row">\r\n <label><%=
messages("title") %></label>\r\n <input id="title"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("config.tag_name") %></label>\r\n <input
id="tagName" type="text"/>\r\n </div>\r\n <div
id="pages"></div>\r\n <div class="buttons-dlg">\r\n <input
id="tagSaveDlgButton" type="submit" value="<%= messages("save") %>"
/>\r\n <input id="tagDeleteDlgButton" type="button" value="<%=
messages("delete") %>" />\r\n <input id="tagCancelDlgButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form>
\r\n</div>\r\n'}),define("view/config/TagsView",["text!template/config/tags.html","jquery.treeview"],function(a){function
f(){$("#tag-dialog").dialog({width:460,autoOpen:!1}),Vosao.initJSONRpc(g),$("#addButton").click(function(){h("")}),$("#tagForm").submit(function(){return
q(),!1}),$("#tagCancelDlgButton").click(r),$("#tagDeleteDlgButton").click(u),$("ul.ui-tabs-nav
li:nth-child(7)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default"),$("#title").change(w)}function
g(){i()}function
h(a){c=a,b=null,m(),$("#tag-dialog").dialog("open")}function
i(){Vosao.jsonrpc.tagService.getTree(function(a){$("#tags").html(j(a.list)),$("#tags .tagEdit").click(function(){l($(this).attr("data-id"))}),$("#tags .addTag").click(function(){h($(this).attr("data-id"))}),$("#tags").treeview({animated:"fast",collapsed:!0,unique:!0,persist:"cookie",cookieId:"tagTree"})})}function
j(a){var b="";return $.each(a,function(a,c){b+=k(c)}),b}function k(a){var
b='<li><a class="tagEdit" data-id="'+
a.entity.id+'">'+
a.entity.name+'</a>
<a class="addTag" title="'+messages("add_child")+'"
data-id="'+
a.entity.id+'">+</a>';return
a.children.list.length>0&&(b+="<ul>",$.each(a.children.list,function(a,c){b+=k(c)}),b+="</ul>"),b+"</li>"}function
l(a){Vosao.jsonrpc.tagService.getById(function(a){b=a,c=b.parent,m(),$("#tag-dialog").dialog("open")},a)}function
m(){b==null?($("#tagName").val(""),$("#title").val(""),$("#pages").html("")):($("#tagName").val(
b.name),$("#title").val(b.title),n()),$("#tag-dialog .messages").html("")}function
n(){Vosao.jsonrpc.tagService.getPages(function(a){e=a.list,o()},
b.id)}function
o(){$("#pages").html("");if(e.length>0){var
a="";$.each(e,function(b,c){a+='<span class="tag">'+c.title+' <a
data-id="'+b+'"><img src="/static/images/02_x.png"
/></a></span>'}),$("#pages").html(a),$("#pages
a").click(function(){v($(this).attr("data-id"))})}}function p(a){var
b=[];return
a.name==""&&b.push(messages("config.tag_is_empty")),b}function
q(){var
a={id:b!=null?String(
b.id):"",parent:c==null?"":String(c),name:$("#tagName").val(),title:$("#title").val()},d=p(a);d.length==0?Vosao.jsonrpc.tagService.save(function(a){a.result=="success"?($("#tag-dialog").dialog("close"),Vosao.info(a.message),i()):s(a.message)},Vosao.javaMap(a)):t(d)}function
r(){$("#tag-dialog").dialog("close")}function
s(a){Vosao.errorMessage("#tag-dialog .messages",a)}function
t(a){Vosao.errorMessages("#tag-dialog .messages",a)}function
u(){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.tagService.remove(function(a){Vosao.showServiceMessages(a),$("#tag-dialog").dialog("close"),i()},
b.id)}function
v(a){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.tagService.removeTag(function(b){Vosao.showServiceMessages(b),e.splice(a,1),o()},e[a].friendlyURL,
b.id)}function
w(){if(b!=null)return;var
a=$("#tagName").val(),c=$("#title").val();a==""&&$("#tagName").val(Vosao.urlFromTitle(c))}console.log("Loading
TagsView.js");var b=null,c=null,d=null,e=null;return
Backbone.View.extend({css:"/static/css/jquery.treeview.css",el:$("#tab-1"),render:function(){Vosao.addCSSFile(this.css),this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),f()},remove:function(){$("#tag-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)}})}),define("text!template/config/attributes.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="attributes"></div>\r\n
\r\n<div class="buttons">\r\n <input id="addButton" type="button"
value="<%= messages("add") %>" />\r\n <input id="removeButton"
type="button" value="<%= messages("remove") %>" />\r\n</div>\r\n \r\n<div
id="attribute-dialog" style="display:none" title="<%=
messages(\'attribute\') %>">\r\n <form id="attributeForm">\r\n <div
class="form-row">\r\n <label><%=
messages("name") %></label>\r\n <input id="name"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("value") %></label>\r\n <input id="value"
type="text" size="40"/>\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="saveButton" type="submit"
value="<%= messages("save") %>" />\r\n <input id="cancelButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form>\r\n</div>'}),define("view/config/AttributesView",["text!template/config/attributes.html"],function(a){function
c(){$("ul.ui-tabs-nav
li:nth-child(8)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default"),$("#attribute-dialog").dialog({width:400,autoOpen:!1}),Vosao.initJSONRpc(d),$("#addButton").click(g),$("#cancelButton").click(function(){$("#attribute-dialog").dialog("close")}),$("#attributeForm").submit(function(){return
i(),!1}),$("#removeButton").click(j)}function d(){e()}function
e(){Vosao.jsonrpc.configService.getConfig(function(a){b=a,f()})}function
f(){var a='<table
class="form-table"><tr><th></th><th>'+messages("name")+"</th><th>"+messages("value")+"</th></tr>";$.each(b.attributes.map,function(b,c){a+='<tr><td><input
type="checkbox" value="'+b+'"/></td>'+'<td><a
data-name="'+b+'">'+b+"</a></td>"+"<td>"+c+"</td></tr>"}),$("#attributes").html(a+"</table>"),$("#attributes
tr:even").addClass("even"),$("#attributes
a").click(function(){h($(this).attr("data-name"))})}function
g(){$("#attribute-dialog").dialog("open"),$("#name").val(""),$("#value").val("")}function
h(a){$("#attribute-dialog").dialog("open"),$("#name").val(a),$("#value").val(b.attributes.map[a])}function
i(){var
a=$("#name").val(),b=$("#value").val();Vosao.jsonrpc.configService.saveAttribute(function(a){Vosao.showServiceMessages(a),$("#attribute-dialog").dialog("close"),d()},a,b)}function
j(){var a=[];$("#attributes
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.configService.removeAttributes(function(a){Vosao.info(a.message),d()},Vosao.javaList(a))}console.log("Loading
AttributesView.js");var b="";return
Backbone.View.extend({el:$("#tab-1"),render:function(){this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),c()},remove:function(){$("#attribute-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/folders.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n\r\n<ul>\r\n
<li><a href="#tab-1"><%= messages("folders") %></a></li>\r\n <li><a
href="#tab-2">Picasa</a></li>\r\n</ul>\r\n\r\n<div id="tab-1">\r\n <p
id="folder-location"></p>\r\n <ul id="folders-tree"><img
src="/static/images/ajax-loader.gif" /></ul>\r\n</div>\r\n\r\n<div
id="tab-2">\r\n <div id="albums"><img
src="/static/images/ajax-loader.gif" /></div>\r\n <div
class="clear">\r\n <a id="createAlbumLink"><%=
messages("folders.create_album") %></a>\r\n </div> \r\n <div
id="albumDetails">\r\n <hr class="clear picasa-hr" />\r\n <p
class="album-name">\r\n Album : <span
id="album-location"></span>\r\n <a id="deleteAlbumLink"><%=
messages("folders.delete_album") %></a>\r\n </p>\r\n <div
id="photos"></div>\r\n <div class="clear">\r\n <a
id="uploadPhotoLink"><%= messages("folders.upload_image") %></a>\r\n
</div>\r\n </div> \r\n <div
class="clear"></div>\r\n</div>\r\n\r\n</div>\r\n\r\n<div id="album-dialog"
style="display:none" title="<%= messages("folders.new_album") %>">\r\n
<form id="albumForm">\r\n <div class="form-row">\r\n <label><%=
messages("folders.album_title") %></label>\r\n <input
id="title"/>\r\n </div>\r\n <div id="albumMessages"></div>\r\n
<div class="buttons-dlg">\r\n <input type="submit" value="<%=
messages("save") %>" />\r\n <input id="cancelAlbumButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form> \r\n</div>\r\n\r\n<div id="upload-dialog" style="display:none"
title="<%= messages("folders.upload_image") %>">\r\n <form id="upload"
action="/cms/upload" method="post" enctype="multipart/form-data">\r\n
<input type="hidden" name="fileType" value="picasa" />\r\n <input
type="hidden" name="albumId" />\r\n <input type="file" name="uploadFile"
/>\r\n <div class="buttons-dlg">\r\n <input type="submit"
value="<%= messages("upload") %>" />\r\n <input
id="uploadCancelButton" type="button" value="<%= messages("cancel") %>"
/>\r\n </div> \r\n
</form>\r\n</div>\r\n\r\n'}),define("view/FoldersView",["text!template/folders.html","jquery.form","jquery.treeview"],function(a){function
b(){Vosao.initJSONRpc(c),$("#tabs").tabs(),$.cookie("folderReturnPath",null,{path:"/",expires:10})}function
c(){Vosao.jsonrpc.folderService.getTree(function(a){$("#folders-tree").html(d(a)),$("#folders-tree").treeview({animated:"fast",collapsed:!0,unique:!0,persist:"cookie",cookieId:"folderTree"})})}function
d(a){var b='<li><a href="#folder/'+
a.entity.id+'">'+a.entity.title+'</a> <a
title="'+messages("add_child")+'"
href="#addFolder/'+
a.entity.id+'">+</a>';return
a.children.list.length>0&&(b+="<ul>",$.each(a.children.list,function(a,c){b+=d(c)}),b+="</ul>"),b+"</li>"}function
i(){$("#album-dialog").dialog({width:400,autoOpen:!1}),$("#upload-dialog").dialog({width:400,autoOpen:!1}),$("#upload").ajaxForm(v),Vosao.initJSONRpc(j),$("#createAlbumLink").click(q),$("#deleteAlbumLink").click(s),$("#uploadPhotoLink").click(u),$("#albumForm").submit(function(){return
r(),!1}),$("#cancelAlbumButton").click(function(){$("#album-dialog").dialog("close")}),$("#uploadAlbumButton").click(function(){$("#upload-dialog").dialog("close")}),$("#uploadCancelButton").click(function(){$("#upload-dialog").dialog("close")})}function
j(){Vosao.jsonrpc.configService.getConfig(function(a){e=a,e.enablePicasa?k():($("#albums").html(messages("folders.picasa_not_enabled")),$("#createAlbumLink").hide())})}function
k(){Vosao.jsonrpc.picasaService.selectAlbums(function(a){f=a.list,l()})}function
l(){var a="";$.each(f,function(b,c){var
d="";$.each(c.categories.list,function(a,b){d+=b+" "}),a+='<a class="album"
data-i="'+b+'">'+'<img src="/static/images/Photos.png"
/><p>'+c.title+" "+d+"</p></a>"}),$("#albums").html(a),$("#albums
a.album").click(function(){m($(this).attr("data-i"))})}function
m(a){h=f[a],n()}function
n(){$("#album-location").text(h.title),Vosao.jsonrpc.picasaService.selectPhotos(function(a){g=a.list,o()},
h.id)}function
o(){$("#albumDetails").show();var a="";$.each(g,function(b,c){var
d="";$.each(c.categories.list,function(a,b){d+=b+" "}),a+='<div
class="photo"><img class="remove" src="/static/images/02_x.png"
data-i="'+b+'" />'+'<a data-i="'+b+'"><img src="'+c.thumbnailURL+'"
/>'+"<p>"+c.title+"<br/>"+d+"</p></a></div>"}),$("#photos").html(a),$("#photos
img.remove").click(function(){t($(this).attr("data-i"))}),$("#photos
a").click(function(){p($(this).attr("data-i"))})}function
p(a){window.open(g[a].URL,"preview")}function
q(){$("#album-dialog").dialog("open")}function r(){var
a=$("#title").val();if(!a){Vosao.errorMessage("#albumMessages",messages("title_is_empty"));return}Vosao.jsonrpc.picasaService.addAlbum(function(a){a.result=="success"?($("#album-dialog").dialog("close"),k()):Vosao.errorMessage("#albumMessages",a.message)},a)}function
s(){confirm(messages("folders.you_delete_album")+" "+h.title+". "+messages("are_you_sure"))&&Vosao.jsonrpc.picasaService.removeAlbum(function(a){a.result=="success"&&(k(),$("#albumDetails").hide()),Vosao.showServiceMessages(a)},
h.id)}function
t(a){photo=g[a],confirm(messages("folders.you_delete_photo")+" "+photo.title+". "+messages("are_you_sure"))&&Vosao.jsonrpc.picasaService.removePhoto(function(a){a.result=="success"&&n(),Vosao.showServiceMessages(a)},
h.id,
photo.id)}function
u(){$("#upload-dialog
input[name=albumId]").val(
h.id),$("#upload-dialog").dialog("open")}function
v(a){var
b=a.split("::"),c=b[1],d=b[2];c=="success"?(Vosao.info("Success."),setTimeout(n,3e3)):(d=messages("error")+". "+d,Vosao.error(d)),$("#upload-dialog").dialog("close")}console.log("Loading
FoldersView.js");var e=null,f=null,g=null,h=null;return
Backbone.View.extend({css:["/static/css/jquery.treeview.css","/static/css/picasa.css"],el:$("#content"),tmpl:_.template(a),render:function(){Vosao.addCSSFiles(this.css),this.el.html(this.tmpl({messages:messages})),b(),i()},remove:function(){$("#album-dialog").dialog("destroy").remove(),$("#upload-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFiles(this.css)}})}),define("text!template/folder.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="breadcrumbs">\r\n <span
class="button ui-state-default ui-corner-all" style="padding:4px
10px;">\r\n <a href="#folders"><%= messages("resources") %>:</a>
/\r\n <span id="crumbs"></span>\r\n </span>\r\n</div>\r\n\r\n<div
id="tabs" style="top:14px;">\r\n<ul>\r\n <li><a href="#tab-1"><%=
messages("folder") %></a></li>\r\n <li class="filesTab"><a
href="#tab-2"><%= messages("files") %></a></li>\r\n <li
class="childrenTab"><a href="#tab-3"><%=
messages("subfolders") %></a></li>\r\n <li class="securityTab"><a
href="#tab-4"><%= messages("security") %></a></li>\r\n</ul>\r\n\r\n<div
id="tab-1">\r\n<form id="folderForm">\r\n<div class="form-row">\r\n
<label><%= messages("title") %></label>\r\n <input id="title"
type="text" class="form-title" />\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("folder.name_for_url") %></label>\r\n <input id="name"
type="text" class="form-url"/>\r\n</div>\r\n<div class="buttons">\r\n
<input id="saveButton" type="submit" value="<%= messages("save") %>"
/>\r\n <input id="cancelButton" type="button" value="<%=
messages("cancel") %>" />\r\n <input id="exportButton" type="button"
value="<%= messages("export") %>" />\r\n</div>
\r\n</form>\r\n</div>\r\n\r\n<div id="tab-2" class="filesTab">\r\n <div
id="filesTable"> </div>\r\n <div class="buttons">\r\n <input
id="createFileButton" type="button" \r\n value="<%=
messages("create_file") %>" />\r\n <input id="uploadButton"
type="button" \r\n value="<%= messages("upload_file") %>"
/>\r\n <input id="deleteFilesButton" type="button" \r\n
value="<%= messages("delete_files") %>" />\r\n <input
id="fileCancelButton" type="button" \r\n value="<%=
messages("cancel") %>" />\r\n </div>\r\n</div>\r\n\r\n<div id="tab-3"
class="childrenTab">\r\n <div id="children"> </div>\r\n <div
class="buttons">\r\n <input id="addChildButton" type="button"
\r\n value="<%= messages("folder.add_child_folder") %>"
/>\r\n <input id="deleteFoldersButton" type="button" \r\n
value="<%= messages("folder.delete_folders") %>" />\r\n <input
id="folderCancelButton" type="button" \r\n value="<%=
messages("cancel") %>" />\r\n </div> \r\n</div>\r\n\r\n<div
id="tab-4" class="securityTab">\r\n <div id="permissions"> </div>\r\n
<div class="buttons">\r\n <input id="addPermissionButton"
type="button" \r\n value="<%= messages("add_permission") %>"
/>\r\n <input id="deletePermissionButton" type="button"
\r\n value="<%= messages("delete_permission") %>" />\r\n
</div> \r\n</div>\r\n\r\n</div>\r\n\r\n<div id="file-upload" title="<%=
messages("folder.upload_file") %>" style="display:none">\r\n\t<form
id="upload" action="/cms/upload" method="post"
enctype="multipart/form-data">\r\n \t<%=
messages("file_upload") %>:\r\n \t<input type="hidden" name="fileType"
value="resource" />\r\n \t<input type="hidden" name="folderId" />\r\n
\t<input type="file" name="uploadFile" multiple="true" />\r\n\t <div
class="buttons-dlg">\r\n \t <input type="submit" value="<%=
messages("send") %>" />\r\n \t<input id="fileUploadCancelButton"
type="button" \r\n \tvalue="<%= messages("cancel") %>" />\r\n
\t</div>\r\n\t</form>\r\n</div>\r\n\r\n<div id="permission-dialog"
style="display:none" title="<%=
messages("permission_details") %>">\r\n<form id="permissionForm">\r\n
<div class="form-row">\r\n <label><%=
messages("group") %></label>\r\n <select
id="groupSelect"></select>\r\n <span id="groupName"></span>
\r\n </div>\r\n <div id="permissionList" class="form-row">\r\n
<fieldset>\r\n <legend><%=
messages("permission") %></legend>\r\n <input type="radio"
name="permission" value="DENIED"/> <%= messages("denied") %> <br
/>\r\n <input type="radio" name="permission" value="READ" /> <%=
messages("read") %> <br />\r\n <input type="radio"
name="permission" value="WRITE" /> <%= messages("read_write") %> <br
/>\r\n </fieldset> \r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="permissionSaveButton"
type="submit" value="<%= messages("save") %>" />\r\n <input
id="permissionCancelButton" type="button" value="<%= messages("cancel") %>"
/>\r\n </div>\r\n</form>\r\n</div>\r\n\r\n<div id="export-dialog"
style="display:none" title="<%= messages("folder.export_window") %>">\r\n
<form id="exportForm">\r\n <p><%=
messages("folder.export_window_info") %></p>\r\n <div id="exportInfo"
class="form-row"></div> \r\n <div id="timer"
class="form-row"></div>\r\n <div class="buttons-dlg">\r\n <input
id="exportCancelButton" type="button" value="<%= messages("cancel") %>"
/>\r\n </div>\r\n
</form>\r\n</div>\r\n\r\n'}),define("view/FolderView",["text!template/folder.html","jquery.form"],function(a){function
m(){$("#export-dialog").dialog({width:400,autoOpen:!1}),$("#file-upload").dialog({width:400,autoOpen:!1}),$("#permission-dialog").dialog({width:400,autoOpen:!1}),f=b!="";var
a=$("#tabs").tabs();Vosao.selectTabFromQueryParam(a),$("#upload").ajaxForm(s),Vosao.initJSONRpc(n),$("#title").change(y),$("#folderForm").submit(function(){return
B(),!1}),$("#cancelButton").click(C),$("#exportButton").click(D),$("#exportCancelButton").click(U),$("#createFileButton").click(x),$("#uploadButton").click(q),$("#deleteFilesButton").click(w),$("#fileCancelButton").click(C),$("#addChildButton").click(G),$("#deleteFoldersButton").click(I),$("#folderCancelButton").click(C),$("#fileUploadCancelButton").click(r),$("#addPermissionButton").click(Q),$("#deletePermissionButton").click(R),$("#permissionForm").submit(function(){return
P(),!1}),$("#permissionCancelButton").click(S),$("#file-upload
input[name=folderId]").val(b)}function
n(){Vosao.jsonrpc.folderService.getFolderRequest(function(a){g=a,o(),M(),V(),f?(K(g.permissions),A(),u(),$(".filesTab").show(),$(".childrenTab").show(),e.root?($("#saveButton").attr("disabled","disabled"),$("#title").attr("disabled","disabled"),$("#name").attr("disabled","disabled")):($("#saveButton").removeAttr("disabled"),$("#title").removeAttr("disabled"),$("#name").removeAttr("disabled"))):($(".filesTab").hide(),$(".childrenTab").hide())},b,c)}function
o(){e=g.folder,f&&(c=String(e.parent)),p(),T()}function
p(){f?($("#title").val(e.title),$("#name").val(
e.name)):($("#title").val(""),$("#name").val(""))}function
q(){$("#file-upload").dialog("open")}function
r(){$("#file-upload").dialog("close")}function s(a){var
b=a.split("::"),c=b[1],d=b[2];c=="success"?(Vosao.info(messages("folder.file_success_upload")),t()):Vosao.error(messages("folder.error_during_upload")+" "+d),$("#file-upload").dialog("close")}function
t(){Vosao.jsonrpc.fileService.getByFolder(function(a){g.files=a,u()},b)}function
u(){d=g.files;var a='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th><th>"+messages("filename")+"</th><th>"+messages("mimetype")+"</th><th>"+messages("size")+"</th></tr>";$.each(d.list,function(b,c){a+='<tr>\t<td><input
type="checkbox" name="item'+b+'" value="'+
c.id+'"/></td>\t<td><a
href="#file/'+
c.id+'">'+c.title+"</a></td>\t<td>"+c.filename+"</td>\t<td>"+c.mimeType+"</td>\t<td>"+c.size+" "+messages("bytes")+"</td></tr>"}),a+="</table>",$("#filesTable").html(a),$("#filesTable
tr:even").addClass("even")}function v(){var a=[];return $("#filesTable
input[@type=checkbox]:checked").each(function(){a.push(this.value)}),a}function
w(){var
a=Vosao.javaList(v());if(a.list.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.fileService.deleteFiles(function(a){a.result=="success"?(t(),Vosao.info(messages("folder.files_success_delete"))):Vosao.error(messages("folder.error_deleting_files")+" "+a.messsage)},a)}function
x(){location.href="#addFile/"+b}function y(){if(f)return;var
a=$("#name").val(),b=$("#title").val();a==""&&$("#name").val(Vosao.urlFromTitle(b))}function
z(){Vosao.jsonrpc.folderService.getByParent(function(a){g.children=a,A()},b)}function
A(){if(!f)return;var a='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th><th>"+messages("name")+"</th></tr>";$.each(g.children.list,function(b,c){a+='<tr><td><input
type="checkbox" value="'+
c.id+'"/></td><td><a
href="#folder/'+
c.id+'">'+c.title+"</td><td>"+
c.name+"</td></tr>"}),$("#children").html(a+"</table>"),$("#children
tr:even").addClass("even")}function B(){var
a=Vosao.javaMap({id:b,parent:c,name:$("#name").val(),title:$("#title").val()});Vosao.jsonrpc.folderService.saveFolder(function(a){a.result=="success"?(Vosao.info(messages("folder.success_save")),b==""&&(b=a.message,f=!0,$('#file-upload
input[name="folderId"]').val(b),n())):Vosao.showServiceMessages(a)},a)}function
C(){$.cookie("folderReturnPath")?location.href=$.cookie("folderReturnPath"):location.href="#folders"}function
D(){k=0,F(),$("#export-dialog").dialog("open"),Vosao.jsonrpc.configService.startExportFolderTask(function(a){a.result=="success"?(l=a.message,Vosao.infoMessage("#exportInfo",messages("creating_export_file")),i=setInterval(E,1e4),j=setInterval(F,1e3)):Vosao.showServiceMessages(a)},
e.id)}function
E(){Vosao.jsonrpc.configService.isExportTaskFinished(function(a){a&&(clearInterval(i),clearInterval(j),$("#export-dialog").dialog("close"),$("#exportDialogButton").attr("disabled",!1),location.href="/file/tmp/"+l)},"folder")}function
F(){$("#timer").html(k++ +" "+messages("sec")+".")}function
G(){location.href="#addFolder/"+b}function H(){var a=[];return $("#children
input[@type=checkbox]:checked").each(function(){a.push(this.value)}),a}function
I(){var
a=Vosao.javaList(H());if(a.list.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.folderService.deleteFolder(function(a){a.result=="success"?(z(),Vosao.info(messages("folder.success_delete"))):Vosao.error(messages("folder.error_deleting")+" "+a.messsage)},a)}function
J(a){if(a=="DENIED")return messages("denied");if(a=="READ")return
messages("read");if(a=="WRITE")return
messages("read_write");if(a=="ADMIN")return
messages("read_write_grant")}function K(a){h=Vosao.idMap(a.list);var
b='<table
class="form-table"><tr><th></th><th>'+messages("group")+"</th><th>"+messages("permission")+"</th></tr>";$.each(h,function(a,c){var
d="",e=
c.group.name;c.inherited||(d='<input type="checkbox"
value="'+
c.id+'">',e='<a
data-id="'+
c.id+'"> '+
c.group.name+"</a>"),b+="<tr><td>"+d+"</td><td>"+e+"</td><td>"+J(c.permission)+"</td></tr>"}),$("#permissions").html(b+"</table>"),$("#permissions
tr:even").addClass("even"),$("#permissions
a").click(function(){N($(this).attr("data-id"))})}function
L(){Vosao.jsonrpc.folderPermissionService.selectByFolder(function(a){K(a)},b)}function
M(){var a=g.groups;groups=Vosao.idMap(a.list);var
b="";$.each(groups,function(a,c){b+='<option
value="'+
c.id+'">'+
c.name+"</option>"}),$("#groupSelect").html(b)}function
N(a){permission=h[a],O(),$("#permission-dialog").dialog("open")}function
O(){$("#permission-dialog
input[type=radio]").removeAttr("checked"),permission==null?($("#permission-dialog
input[value=READ]").attr("checked","checked"),$("#groupSelect").show(),$("#groupName").hide()):($("#permissionList
input[value="+permission.permission+"]").attr("checked","checked"),$("#groupSelect").hide(),$("#groupName").show(),$("#groupName").text(
permission.group.name))}function
P(){var
a={folderId:b,groupId:permission==null?$("#groupSelect").val():String(
permission.group.id),permission:$("#permissionList
input:checked")[0].value};Vosao.jsonrpc.folderPermissionService.save(function(a){Vosao.showServiceMessages(a),$("#permission-dialog").dialog("close"),a.result=="success"&&L()},Vosao.javaMap(a))}function
Q(){permission=null,O(),$("#permission-dialog").dialog("open")}function
R(){var a=[];$("#permissions
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.folderPermissionService.remove(function(a){Vosao.showServiceMessages(a),L()},Vosao.javaList(a))}function
S(){$("#permission-dialog").dialog("close")}function T(){var
a=g.folderPermission;a.changeGranted?($("#saveButton").show(),$("#createFileButton").show(),$("#uploadButton").show(),$("#deleteFilesButton").show(),$("#addChildButton").show(),$("#deleteFoldersButton").show()):($("#saveButton").hide(),$("#createFileButton").hide(),$("#uploadButton").hide(),$("#deleteFilesButton").hide(),$("#addChildButton").hide(),$("#deleteFoldersButton").hide()),a.admin&&f?$(".securityTab").show():$(".securityTab").hide()}function
U(){$("#export-dialog").dialog("close"),clearInterval(i),clearInterval(j)}function
V(){var a="",b=g.parent;$.each(g.ancestors.list,function(b,c){var
d=
c.name=="/"?"file":
c.name;a+='<a href="#folder/'+
c.id+'">'+d+"</a>
/ "}),f?a+=" "+(
e.name=="/"?"file":
e.name):a+='<a
href="#folder/'+
b.id+'">'+
b.name+"</a>",$("#crumbs").html(a)}console.log("Loading
FolderView.js");var
b=null,c=null,d="",e=null,f=b!="",g=null,h=null,i=null,j=null,k=0,l=null;return
Backbone.View.extend({el:$("#content"),tmpl:_.template(a),render:function(){this.el.html(this.tmpl({messages:messages})),m()},remove:function(){$("#export-dialog").dialog("destroy").remove(),$("#file-upload").dialog("destroy").remove(),$("#permission-dialog").dialog("destroy").remove(),this.el.html("")},setFolderId:function(a){b=a},setFolderParentId:function(a){c=a}})}),define("text!template/file.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n<ul>\r\n <li><a
href="#tab-1"><%= messages("file") %></a></li>\r\n <li
class="contentTab"><a href="#tab-2"><%=
messages("content") %></a></li>\r\n</ul>\r\n\r\n<div id="tab-1">\r\n<form
id="fileForm">\r\n\r\n<div style="float:left">\r\n <div
class="form-row">\r\n <label><%= messages("title") %></label>\r\n
<input id="title" type="text" />\r\n </div>\r\n <div
class="form-row">\r\n <label><%= messages("name") %></label>\r\n
<input id="name" type="text" />\r\n </div>\r\n \r\n<div
id="fileEditDiv">\r\n <div class="form-row">\r\n <label><%=
messages("content_type") %></label>\r\n <span id="mimeType"> </span>\r\n
</div>\r\n <div class="form-row">\r\n <label><%=
messages("size") %></label>\r\n <span id="size"> </span>\r\n </div>\r\n
<div class="form-row">\r\n <label><%=
messages("external_link") %></label>\r\n <span id="fileLink">
</span>\r\n </div>\r\n <div class="form-row">\r\n <label>
</label>\r\n <span id="download"> </span>\r\n </div>\r\n </div>\r\n
\r\n <div class="buttons">\r\n <input id="saveButton" type="submit"
value="<%= messages("save") %>" />\r\n <input id="cancelButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
\r\n</div>\r\n\r\n<div id="imageContent" style="float:left;margin-left:
20px;"> </div>\r\n<div style="clear:both">
</div>\r\n\r\n</form>\r\n</div>\r\n\r\n<div id="tab-2"
class="contentTab">\r\n <form id="contentForm">\r\n <div
class="form-row">\r\n <span id="filename"></span>\r\n
</div>\r\n <div>\r\n <input id="autosave" type="checkbox"
/>\r\n <label for="autosave"><%=
messages("autosave") %></label>\r\n </div>\r\n <div
class="form-row">\r\n <textarea id="fileContent" rows="20"
cols="80"></textarea>\r\n </div>\r\n <div class="buttons">\r\n
<input id="saveContentButton" type="submit" value="<%=
messages("save_continue") %>" />\r\n <input id="contentCancelButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div> \r\n
</form>\r\n</div>\r\n\r\n</div>\r\n\r\n'}),jQuery.cookie=function(a,b,c){if(typeof
b=="undefined"){var i=null;if(document.cookie&&document.cookie!=""){var
j=document.cookie.split(";");for(var k=0;k<j.length;k++){var
l=jQuery.trim(j[k]);if(l.substring(0,a.length+1)==a+"="){i=decodeURIComponent(l.substring(a.length+1));break}}}return
i}c=c||{},b===null&&(b="",c.expires=-1);var d="";if(c.expires&&(typeof
c.expires=="number"||c.expires.toUTCString)){var e;typeof
c.expires=="number"?(e=new
Date,e.setTime(e.getTime()+c.expires*24*60*60*1e3)):e=c.expires,d=";
expires="+e.toUTCString()}var f=c.path?"; path="+c.path:"",g=c.domain?";
domain="+c.domain:"",h=c.secure?";
secure":"";document.cookie=[a,"=",encodeURIComponent(b),d,f,g,h].join("")},define("jquery.cookie",function(){}),function(a){window.DOMParser==undefined&&window.ActiveXObject&&(DOMParser=function(){},DOMParser.prototype.parseFromString=function(a){var
b=new ActiveXObject("Microsoft.XMLDOM");return
b.async="false",b.loadXML(a),b}),a.xmlDOM=function(b,c){try{var d=(new
DOMParser).parseFromString(b,"text/xml");if(!a.isXMLDoc(d))throw"Unable to
parse XML";var
e=a("parsererror",d);if(e.length==1)throw"Error: "+a(d).text()}catch(f){var
g=
f.name==undefined?f:
f.name+": "+f.message;return
a.isFunction(c)?c(g):a(document).trigger("xmlParseError",[g]),a([])}return
a(d)}}(jQuery),define("jquery.xmldom",function(){}),function(a){function
m(b,c){throw a.extend(b,c),b}function n(a){var c=[];if(l.call(a)!==f)return
b;for(var d=0,e=a.length;d<e;d++)c[d]=a[d].jqote_id;return
c.length?c.sort().join(".").replace(/(\b\d+\b)\.(?:\1(\.|
$))+/g,"$1$2"):b}function o(c,d){var e,g=[],d=d||
j,i=l.call(c);if(i===h)return
c.jqote_id?[c]:b;if(i!==f)return[a.jqotec(c,d)];if(i===f)for(var
k=0,m=c.length;k<m;k++)return g.length?g:b}var
b=!1,c="UndefinedTemplateError",d="TemplateCompilationError",e="TemplateExecutionError",f="[object
Array]",g="[object String]",h="[object
Function]",i=1,j="%",k=/^[^<]*(<[\w\W]+>)[^>]*$/,l=Object.prototype.toString;a.fn.extend({jqote:function(b,c){var
b=l.call(b)===f?b:[b],d="";return this.each(function(e){var
f=a.jqotec(this,c);for(var
g=0;g<b.length;g++)d+=f.call(b[g],e,g,b,f)}),d}}),a.each({app:"append",pre:"prepend",sub:"html"},function(b,c){a.fn["jqote"+b]=function(d,e,f){var
g,h,i=a.jqote(d,e,f),j=k.test(i)?a:function(b){return
a(document.createTextNode(b))};return!(g=n(o(d)))||(h=new RegExp("(^|
\\.)"+g.split(".").join("\\.(.*)?")+"(\\.|$)")),this.each(function(){var
d=j(i);a(this)[c](d),(d[0].nodeType===3?a(this):d).trigger("jqote."+b,[d,h])})}}),a.extend({jqote:function(a,d,e){var
g="",e=e||j,h=o(a);h===b&&m(new Error("Empty or undefined template passed
to $.jqote"),{type:c}),d=l.call(d)!==f?[d]:d;for(var
i=0,k=h.length;i<k;i++)for(var
n=0;n<d.length;n++)g+=h[i].call(d[n],i,n,d,h[i]);return
g},jqotec:function(b,f){var h,n,o,f=f||
j,p=l.call(b);if(p===g&&k.test(b)){n=o=b;if(h=a.jqotecache[b])return
h}else{n=p===g||b.nodeType?a(b):b instanceof jQuery?b:null,(!n[0]|
|!(o=n[0].innerHTML)&&!(o=n.text()))&&m(new Error("Empty or undefined
template passed to
$.jqotec"),{type:c});if(h=a.jqotecache[a.data(n[0],"jqote_id")])return
h}var s="",t,u=o.replace(/\s*<!\[CDATA\[\s*|\s*\]\]>\s*|
[\r\n\t]/g,"").split("<"+f).join(f+"> ").split(f+">");for(var
v=0,w=u.length;v<w;v++)s+=u[v].charAt(0)!==" "?"out+='"+u[v].replace(/(\\|
["'])/g,"\\$1")+"'":u[v].charAt(1)==="="?";out+=("+u[v].substr(2)+");":u[v].charAt(1)==="!"?";out+=$.jqotenc(("+u[v].substr(2)+"));":";"+u[v].substr(1);s="try{"+('var
out="";'+s+";return out;").split("out+='';").join("").split('var
out="";out+=').join("var
out=")+'}catch(e){e.type="'+e+'";e.args=arguments;e.template=arguments.callee.toString();throw
e;}';try{var x=new Function("i, j, data,
fn",s)}catch(n){m(n,{type:d})}return t=n instanceof
jQuery?a.data(n[0],"jqote_id",i):n,a.jqotecache[t]=(x.jqote_id=i++,x)},jqotefn:function(c){var
d=l.call(c),e=d===g&&k.test(c)?c:a.data(a(c)[0],"jqote_id");return
a.jqotecache[e]||
b},jqotetag:function(a){l.call(a)===g&&(j=a)},jqotenc:function(a){return
a.toString().replace(/&(?!\w+;)/g,"&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")},jqotecache:{}}),a.event.special.jqote={add:function(a){var
b,c=a.handler,d=a.data?l.call(a.data)!==f?[a.data]:a.data:[];a.namespace||
(a.namespace="app.pre.sub");if(!d.length|
|!(b=n(o(d))))return;a.handler=function(a,d,e){return!e||
e.test(b)?c.apply(this,[a,d]):null}}}}(jQuery),define("jquery.jquote2",function(){}),function(){function
a(a){var b=a.currentTarget||a.srcElement,c;if(a.type==="load"||
f.test(b.readyState)){a=b.getAttribute("data-requiremodule"),h[a]=!0;for(a=0;c=g[a];a++)if(h[
c.name])c.req([
c.name],c.onLoad);else
break;a>0&&g.splice(0,a),setTimeout(function(){b.parentNode.removeChild(b)},15)}}function
b(a){var
b,c;a.setAttribute("data-orderloaded","loaded");for(a=0;c=j[a];a++)if((b=i[c])&&b.getAttribute("data-orderloaded")==="loaded")delete
i[c],require.addScriptToDom(b);else break;a>0&&j.splice(0,a)}var c=typeof
document!="undefined"&&typeof
window!="undefined"&&document.createElement("script"),d=c&&(c.async||
window.opera&&Object.prototype.toString.call(window.opera)==="[object
Opera]"||"MozAppearance"in
document.documentElement.style),e=c&&c.readyState==="uninitialized",f=/^(complete|
loaded)$/,g=[],h={},i={},j=[],c=null;define("order",{version:"1.0.0",load:function(c,f,h,l){var
p=f.nameToUrl(c,null);require.s.skipAsync[p]=!0,d||
l.isBuild?f([c],h):e?(l=require.s.contexts._,!l.urlFetched[p]&&!l.loaded[c]&&(l.urlFetched[p]=!0,require.resourcesReady(!1),l.scriptCount+=1,p=require.attach(p,l,c,null,null,b),i[c]=p,j.push(c)),f([c],h)):f.specified(c)?f([c],h):(g.push({name:c,req:f,onLoad:h}),require.attach(p,null,c,a,"script/cache"))}})}();var
escapeJSONString=function(){var
a=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,b={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return
function(c){return a.lastIndex=0,a.test(c)?'"'+c.replace(a,function(a){var
c=b[a];return typeof
c=="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+c+'"'}}();JSONRpcClient.prototype.createCallableProxy=function(a,b){var
c,d,e,f,g;c=new JSONRPCCallableProxy(a,b);for(f in
JSONRpcClient.knownClasses[b])c[f]=JSONRpcClient.bind(JSONRpcClient.knownClasses[b][f],c);return
c},JSONRpcClient.knownClasses={},JSONRpcClient.Exception=function(a){var
b;for(var c in
a)a.hasOwnProperty(c)&&(this[c]=a[c]);this.trace&&(b=this.trace.match(/^([^:]*)/),b&&(
this.name=b[0])),
this.name|
|
(
this.name="JSONRpcClientException")},JSONRpcClient.Exception.CODE_REMOTE_EXCEPTION=490,JSONRpcClient.Exception.CODE_ERR_CLIENT=550,JSONRpcClient.Exception.CODE_ERR_PARSE=590,JSONRpcClient.Exception.CODE_ERR_NOMETHOD=591,JSONRpcClient.Exception.CODE_ERR_UNMARSHALL=592,JSONRpcClient.Exception.CODE_ERR_MARSHALL=593,JSONRpcClient.Exception.prototype=new
Error,JSONRpcClient.Exception.prototype.toString=function(a,b){var
c="";return
this.name&&(c+=
this.name),this.message&&(c+=": "+this.message),c.length==0&&(c="no
exception information
given"),c},JSONRpcClient.default_ex_handler=function(a){var b,c="";for(b in
a)c+=b+"\t"+a[b]+"\n";alert(c)},JSONRpcClient.toplevel_ex_handler=JSONRpcClient.default_ex_handler,JSONRpcClient.profile_async=!1,JSONRpcClient.max_req_active=1,JSONRpcClient.requestId=1,JSONRpcClient.fixupCircRefs=!0,JSONRpcClient.fixupDuplicates=!0,JSONRpcClient.transformDates=!1,JSONRpcClient.transformDateWithoutHint=!1,JSONRpcClient.javaDateClasses={"java.util.Date":!0,"java.sql.Date":!0,"java.sql.Time":!0,"java.sql.Timestamp":!0},JSONRpcClient.bind=function(a,b){return
function(){return
a.apply(b,arguments)}},JSONRpcClient._createMethod=function(a,b){var
c=function(){var c=[],d;for(var
e=0;e<arguments.length;e++)c.push(arguments[e]);typeof
c[0]=="function"&&(d=c.shift());var
f=JSONRpcClient._makeRequest(this,b,c,this.objectID,d);return
d?(JSONRpcClient.async_requests.push(f),JSONRpcClient.kick_async(),f.requestId):JSONRpcClient._sendRequest(a,f)};return
c},JSONRpcClient.prototype.createObject=function(){var
a=[],b=null,c,d,e;for(var
f=0;f<arguments.length;f++)a.push(arguments[f]);return typeof
a[0]=="function"&&(b=a.shift()),c=a[0]+".$constructor",d=a[1],e=JSONRpcClient._makeRequest(this,c,d,0,b),b===null?JSONRpcClient._sendRequest(this,e):(JSONRpcClient.async_requests.push(e),JSONRpcClient.kick_async(),e.requestId)},JSONRpcClient.CALLABLE_REFERENCE_METHOD_PREFIX=".ref",JSONRpcClient.prototype._addMethods=function(a,b){var
c,d,e,f,g,h=[],i,j,k,l;for(var
m=0;m<a.length;m++){d=this,e=a[m].split("."),k=a[m].indexOf("["),l=a[m].indexOf("]");if(a[m].substring(0,JSONRpcClient.CALLABLE_REFERENCE_METHOD_PREFIX.length)==JSONRpcClient.CALLABLE_REFERENCE_METHOD_PREFIX&&k!=-1&&l!=-1&&k<l)i=a[m].substring(k+1,l);else
for(f=0;f<e.length-1;f++)c=e[f],d[c]?d=d[c]:(d[c]={},d=d[c]);c=e[e.length-1],i?(g=JSONRpcClient._createMethod(this,c),JSONRpcClient.knownClasses[i]|
|
(JSONRpcClient.knownClasses[i]={}),JSONRpcClient.knownClasses[i][c]=g):(g=JSONRpcClient._createMethod(this,a[m]),!d[c]&&!b&&(d[c]=JSONRpcClient.bind(g,this)),h.push(g)),i=null}return
h},JSONRpcClient._getCharsetFromHeaders=function(a){var
b,c,d;try{b=a.getResponseHeader("Content-type"),c=b.split(/\s*;\s*/);for(d=0;d<c.length;d++)if(c[d].substring(0,8)=="charset=")return
c[d].substring(8,c[d].length)}catch(e){}return"UTF-8"},JSONRpcClient.async_requests=[],JSONRpcClient.async_inflight={},JSONRpcClient.async_responses=[],JSONRpcClient.async_timeout=null,JSONRpcClient.num_req_active=0,JSONRpcClient._async_handler=function(){var
a,b;JSONRpcClient.async_timeout=null;while(JSONRpcClient.async_responses.length>0){a=JSONRpcClient.async_responses.shift();if(a.canceled)continue;a.profile&&(a.profile.dispatch=new
Date);try{a.cb(a.result,a.ex,a.profile)}catch(c){JSONRpcClient.toplevel_ex_handler(c)}}while(JSONRpcClient.async_requests.length>0&&JSONRpcClient.num_req_active<JSONRpcClient.max_req_active){b=JSONRpcClient.async_requests.shift();if(b.canceled)continue;JSONRpcClient._sendRequest(b.client,b)}},JSONRpcClient.kick_async=function(){JSONRpcClient.async_timeout|
|
(JSONRpcClient.async_timeout=setTimeout(JSONRpcClient._async_handler,0))},JSONRpcClient.cancelRequest=function(a){if(JSONRpcClient.async_inflight[a])return
JSONRpcClient.async_inflight[a].canceled=!0,!0;var b;for(b in
JSONRpcClient.async_requests)if(JSONRpcClient.async_requests[b].requestId==a)return
JSONRpcClient.async_requests[b].canceled=!0,!0;for(b in
JSONRpcClient.async_responses)if(JSONRpcClient.async_responses[b].requestId==a)return
JSONRpcClient.async_responses[b].canceled=!0,!0;return!1},JSONRpcClient._makeRequest=function(a,b,c,d,e){var
f={};f.client=a,f.requestId=JSONRpcClient.requestId++;var
g="{id:"+f.requestId+",method:";d&&d>0?g+='".obj['+d+"]."+b+'"':g+='"'+b+'"',e&&(f.cb=e),JSONRpcClient.profile_async&&(f.profile={submit:new
Date});var h=toJSON(c);return
g+=",params:"+h.json,h.fixups&&(g+=",fixups:"+toJSON(h.fixups).json),f.data=g+"}",f},JSONRpcClient._sendRequest=function(a,b){var
c;b.profile&&(b.profile.start=new
Date),c=JSONRpcClient.poolGetHTTPRequest(),JSONRpcClient.num_req_active++,c.open("POST",a.serverURL,!!b.cb,a.user,a.pass);try{c.setRequestHeader("Content-type","text/plain")}catch(d){}b.cb?c.onreadystatechange=function(){var
d;if(c.readyState==4){c.onreadystatechange=function(){},d={cb:b.cb,result:null,ex:null},b.profile?(d.profile=b.profile,d.profile.end=new
Date):d.profile=!1;try{d.result=a._handleResponse(c)}catch(e){d.ex=e}JSONRpcClient.async_inflight[b.requestId].canceled|
|JSONRpcClient.async_responses.push(d),delete
JSONRpcClient.async_inflight[b.requestId],JSONRpcClient.kick_async()}}:c.onreadystatechange=function(){},JSONRpcClient.async_inflight[b.requestId]=b;try{c.send(b.data)}catch(d){throw
JSONRpcClient.poolReturnHTTPRequest(c),JSONRpcClient.num_req_active--,new
JSONRpcClient.Exception({code:JSONRpcClient.Exception.CODE_ERR_CLIENT,message:"Connection
failed"})}return b.cb?null:(delete
JSONRpcClient.async_inflight[b.requestId],a._handleResponse(c))},JSONRpcClient.prototype._handleResponse=function(a){this.charset|
|(this.charset=JSONRpcClient._getCharsetFromHeaders(a));var
b,c,d;try{b=a.status,c=a.statusText,d=a.responseText}catch(e){throw
JSONRpcClient.poolReturnHTTPRequest(a),JSONRpcClient.num_req_active--,JSONRpcClient.kick_async(),new
JSONRpcClient.Exception({code:JSONRpcClient.Exception.CODE_ERR_CLIENT,message:"Connection
failed"})}JSONRpcClient.poolReturnHTTPRequest(a),JSONRpcClient.num_req_active--;if(b!=200)throw
new JSONRpcClient.Exception({code:b,message:c});return
this.unmarshallResponse(d)},JSONRpcClient.prototype.unmarshallResponse=function(data){function
applyFixups(a,b){function c(a,b){for(var
c=0,d=b.length;c<d;c++)a=a[b[c]];return a}function d(a,b,c){var
d=b.length-1;for(var e=0;e<d;e++)a=a[b[e]];a[b[d]]=c}for(var
e=0,f=b.length;e<f;e++)d(a,b[e][0],c(a,b[e][1]))}function
transformDate(a){function b(a,b){var c,d=0;if(a.hasOwnProperty(b)){for(c in
a)if(a.hasOwnProperty(c)){d++;if(d>1)return}return!0}}var c,d;if(a&&typeof
a=="object"){if(a.javaClass&&JSONRpcClient.javaDateClasses[a.javaClass])return
d=new
Date(a.time),a.javaClass!=="java.util.Date"&&(d.javaClass=a.javaClass),d;if(JSONRpcClient.transformDateWithoutHint&&b(a,"time"))return
new Date(a.time);for(c in
a)a.hasOwnProperty(c)&&(a[c]=transformDate(a[c]));return a}return a}var
obj;try{eval("obj = "+data)}catch(e){throw new
JSONRpcClient.Exception({code:550,message:"error parsing
result"})}if(obj.error)throw new JSONRpcClient.Exception(obj.error);var
r=obj.result,i,tmp;if(r){if(r.objectID&&r.JSONRPCType=="CallableReference")return
this.createCallableProxy(r.objectID,r.javaClass);r=JSONRpcClient.extractCallableReferences(this,JSONRpcClient.transformDates?transformDate(r):r),obj.fixups&&applyFixups(r,obj.fixups)}return
r},JSONRpcClient.extractCallableReferences=function(a,b){var c,d,e;for(c in
b)typeof
b[c]=="object"&&(d=JSONRpcClient.makeCallableReference(a,b[c]),d?b[c]=d:(d=JSONRpcClient.extractCallableReferences(a,b[c]),b[c]=d)),typeof
c=="object"&&(d=JSONRpcClient.makeCallableReference(a,c),d?(e=b[c],delete
b[c],b[d]=e):(d=JSONRpcClient.extractCallableReferences(a,c),e=b[c],delete
b[c],b[d]=e));return
b},JSONRpcClient.makeCallableReference=function(a,b){return
b&&b.objectID&&b.javaClass&&b.JSONRPCType=="CallableReference"?a.createCallableProxy(b.objectID,b.javaClass):null},JSONRpcClient.http_spare=[],JSONRpcClient.http_max_spare=8,JSONRpcClient.poolGetHTTPRequest=function(){var
a=JSONRpcClient.http_spare.pop();return
a?a:JSONRpcClient.getHTTPRequest()},JSONRpcClient.poolReturnHTTPRequest=function(a){JSONRpcClient.http_spare.length<JSONRpcClient.http_max_spare?JSONRpcClient.http_spare.push(a):delete
a},JSONRpcClient.msxmlNames=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","Microsoft.XMLHTTP"],JSONRpcClient.getHTTPRequest=function(){try{return
JSONRpcClient.httpObjectName="XMLHttpRequest",new
XMLHttpRequest}catch(a){}for(var
b=0;b<JSONRpcClient.msxmlNames.length;b++)try{return
JSONRpcClient.httpObjectName=JSONRpcClient.msxmlNames[b],new
ActiveXObject(JSONRpcClient.msxmlNames[b])}catch(a){}throw
JSONRpcClient.httpObjectName=null,new
JSONRpcClient.Exception({code:0,message:"Can't create XMLHttpRequest
object"})},define("jsonrpc",function(){});var
Vosao={};Vosao.javaList=function(a){return{javaClass:"java.util.ArrayList",list:a}},Vosao.javaMap=function(a){return{javaClass:"java.util.HashMap",map:a}},Vosao.accents={"ÀÁÂÃÄÅ":"A","Æ":"AE","Ç":"C","ÈÉÊË":"E","ÌÍÎÏ":"I","Ð":"Th","Ñ":"N","ÒÓÔÕÖØ":"O","ÙÚÛÜ":"U","Ý":"Y","Þ":"Th","ß":"ss","àáâãäå":"a","æ":"ae","ç":"c","èéêë":"e","ìíîï":"i","ð":"o","ñ":"n","òóôõöø":"o","ùúûü":"u","ýÿ":"y","þ":"th"},Vosao.replaceAccents=function(a){return
$.each(Vosao.accents,function(b,c){for(var
d=0;d<b.length;d++)a=a.replace(b.charAt(d),c)}),a.toLowerCase()},Vosao.urlFromTitle=function(a){return
Vosao.replaceAccents(a.toLowerCase()).replace(/\W/g,"-")},Vosao.nameFromTitle=function(a){return
a.toLowerCase().replace(/\W/g,"_")},Vosao.isImage=function(a){var
b=Vosao.getFileExt(a);return b.toLowerCase().match(/gif|jpg|jpeg|png|
ico/)!=null},Vosao.getFileExt=function(a){return
a.substring(a.lastIndexOf(".")+1,a.length)},Vosao.getFileName=function(a){var
b=a.lastIndexOf("\\");return
b==-1&&(b=a.lastIndexOf("/")),b==-1?a:a.substring(b+1,a.length)},Vosao.formatDate=function(a){return
$.datepicker.formatDate("dd.mm.yy",a)},Vosao.formatTime=function(a){return
$.datepicker.formatDate("HH:MM",a)},Vosao.identifier_regex=/^[a-zA-Z_][a-zA-Z0-9_]*$/,Vosao.isValidIdentifier=function(a){return
Vosao.identifier_regex.test(a)},Vosao.strip=function(a){var
b=0;while(b<a.length&&a[b]==" ")b++;var
c=a.substring(b);b=c.length-1;while(b>=0&&c[b]==" ")b--;return
c.slice(0,b+1)},Vosao.getQueryParam=function(a){var
b=window.location.search.match(new RegExp("(\\?|
&)"+a+"(\\[\\])?=([^&]*)"));return
Vosao.escapeHtml(b?b[3]:"")},Vosao.selectTabFromQueryParam=function(a){Vosao.getQueryParam("tab")&&a.tabs("select",Number(Vosao.getQueryParam("tab")))},Vosao.escapeHtml=function(a){return
a.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,""").replace(/`/g,"‘").replace(/'/g,"’")},Vosao.unescapeHtml=function(a){return
a.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/‘/g,"`").replace(/’/g,"'")},Vosao.generateGUID=function(){function
a(){return((1+Math.random())*65536|0).toString(16).substring(1)}return
a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},Vosao.jsonrpc="",Vosao.jsonrpcListeners=[],Vosao.jsonrpcSystemListeners=[],Vosao.jsonrpcInitialized=!1,Vosao.jsonrpcInitError=null,Vosao.createJSONRpc=function(){Vosao.jsonrpc=new
JSONRpcClient(function(a,b){if(b)Vosao.jsonrpcInitError="Error during
JSON-RPC
initialization "+b+" "+b.message;else{while(Vosao.jsonrpcSystemListeners.length>0){var
c=Vosao.jsonrpcSystemListeners.pop();c()}while(Vosao.jsonrpcListeners.length>0){var
c=Vosao.jsonrpcListeners.pop();c()}}Vosao.jsonrpcInitialized=!0},"/json-rpc/")},Vosao.createJSONRpc(),Vosao.initJSONRpc=function(a){if(a==undefined)return;Vosao.jsonrpcInitialized?a():Vosao.jsonrpcListeners.push(a)},Vosao.initJSONRpcSystem=function(a){if(a==undefined)return;Vosao.jsonrpcInitialized?a():Vosao.jsonrpcSystemListeners.push(a)},Vosao.serviceFailed=function(a){return
a!=null?(alert("JSON-RPC service
fail "+a+" "+a.message),!0):!1},Vosao.changeLanguage=function(a){var
b=location.href.replace("#",""),c=b.indexOf("language="),d=location.search.indexOf("?")==-1?"?":"&";if(c>0){var
e=b.substr(c+1),f=e.indexOf("&");b=b.substr(0,c)+"language="+a,f>0&&(b+=e.substr(f+1)),b.indexOf("&")<0&&(d="")}else
b=b+d+"language="+a;location.href=b},String.prototype.trim=function(){return
this.replace(/^\s+|\s+$/g,"")},String.prototype.ltrim=function(){return
this.replace(/^\s+/,"")},String.prototype.rtrim=function(){return
this.replace(/\s+$/,"")},String.prototype.startsWith=function(a){return
this.match("^"+a)==a},String.prototype.endsWith=function(a){return
this.match(a+"$")==a},define("vosao",function(){}),Vosao==undefined&&alert(messages("vosao.namespace_error")),Vosao.AUTOSAVE_TIMEOUT=60,Vosao.ENGLISH_CODE="en",Vosao.info=function(a){Vosao.infoMessage("#wrapper .messages",a),$("#wrapper .messages").fadeIn(),setTimeout(function(){$("#wrapper .messages").fadeOut()},5e3)},Vosao.error=function(a){Vosao.errorMessage("#wrapper .messages",a),$("#wrapper .messages").fadeIn(),setTimeout(function(){$("#wrapper .messages").fadeOut()},3e4)},Vosao.infoMessage=function(a,b){$(a).html('<div
class="ui-widget">\t\t<div class="ui-state-highlight ui-corner-all"
style="padding: 0.5em 0.7em;margin: 4px;"><p>\t\t<span class="ui-icon
ui-icon-info" style="float:left;margin-right:0.3em"
/>\t\t<strong>'+messages("vosao.hey")+"</strong> "+b+"</p></div></div>")},Vosao.errorMessage=function(a,b){$(a).html('<div
class="ui-widget">\t\t<div class="ui-state-error ui-corner-all"
style="padding: 0.5em 0.7em;margin: 4px;"><p>\t\t<span class="ui-icon
ui-icon-alert" style="float:left;margin-right:0.3em"
/>\t\t<strong>'+messages("alert")+"!</strong> "+b+"</p></div></div>")},Vosao.errorMessages=function(a,b){var
c="";$.each(b,function(a,b){c+=(a==0?"":"<br
/>")+b}),Vosao.errorMessage(a,c)},Vosao.showServiceMessages=function(a){a.result=="success"?(Vosao.info(a.message),a.messages.list.length>0&&$.each(a.messages.list,function(a,b){Vosao.info(b)})):(Vosao.error(a.message),a.messages.list.length>0&&$.each(a.messages.list,function(a,b){Vosao.error(b)}))},Vosao.idMap=function(a){var
b={};return
$.each(a,function(a,c){b[
c.id]=c}),b},Vosao.message=function(a){return
a.charAt(0)=="$"?messages(a.substr(1)):a},Vosao.addCSSFile=function(a){$("head").append('<link
rel="stylesheet" href="'+a+'" type="text/css"
/>')},Vosao.addCSSFiles=function(a){$.each(a,function(a,b){$("head").append('<link
rel="stylesheet" href="'+b+'" type="text/css"
/>')})},Vosao.removeCSSFile=function(a){$('head
link[href="'+a+'"]').remove()},Vosao.removeCSSFiles=function(a){$.each(a,function(a,b){$('head
link[href="'+b+'"]').remove()})},Vosao.clientId=Vosao.generateGUID(),Vosao.channel=null,Vosao.socket=null,Vosao.initChannel=function(a,b,c,d){Vosao.jsonrpc.channelApiFrontService.createToken(function(e){Vosao.channel=new
goog.appengine.Channel(e),socket=Vosao.channel.open(),socket.onopen=a,socket.onmessage=b,socket.onerror=c,socket.onclose=d,Vosao.socket=socket},Vosao.clientId)},Vosao.sendChannelCommand=function(a,b){var
c="&clientId="+Vosao.clientId;$.each(b,function(a,b){c+="&"+a+"="+b});var
d=new
XMLHttpRequest;d.open("POST","/_ah/channelCommand?cmd="+a+c,!0),d.send()},Vosao.changeLanguageCall=function(a){Vosao.jsonrpc.loginFrontService.setLanguage(function(a){location.reload()},a)},define("cms",function(){}),Vosao==undefined&&alert(messages("vosao.namespace_error")),Vosao.backServiceFailed=function(a){return
a!=null?(Vosao.error(messages("vosao.cant_connect")+" "+a+" "+a.message+" "+a.code+" "+a.msg),!0):!1},Vosao.serviceHandler=function(a){return
function(){var
b=arguments[0],c=arguments;c[0]=function(a,c){$("#loading").hide();if(Vosao.backServiceFailed(c))return;b(a)},$("#loading").show(),a.apply(null,c)}},Vosao.setupJSONRpcHooks=function(){for(var
a in
Vosao.jsonrpc)if(a.indexOf("Service")!=-1&&a.indexOf("FrontService")==-1)for(var
b in Vosao.jsonrpc[a])if(typeof Vosao.jsonrpc[a][b]=="function"){var
c=Vosao.jsonrpc[a][b];Vosao.jsonrpc[a][b]=Vosao.serviceHandler(c)}},Vosao.initBackServices=function(){Vosao.setupJSONRpcHooks()},define("back-services",function(){}),Vosao.PageSearchComponent=function(div){function
onSearch(){$(div+" #pageSearchResult").html(""),$(div+"
#progress").html('<img src="/static/images/ajax-loader.gif" />');var
a={};a.query=$(div+" input[name=query]").val(),a.published=$(div+"
#publishedSearch:checked").size()>0,a.unpublished=$(div+"
#unpublishedSearch:checked").size()>0,a.fromDate=$(div+"
input[name=from]").val(),a.toDate=$(div+"
input[name=to]").val(),Vosao.sendChannelCommand("pageSearch",a)}function
onEnhancedSearch(){$(div+" #enhancedDiv").slideToggle();var
a=messages("enhanced");$(div+"
#enhancedSearch").text()==messages("enhanced")&&(a=messages("simple")),$(div+"
#enhancedSearch").text(a)}function onChannelOpened(){$(div+"
#search").toggle()}function onChannelMessage(message){var
m=eval(message.data);if(m.end){$(div+" #progress").html("");return}var
h='<div><a
href="/cms/page/content.vm?id='+
m.id+'">'+m.title+"</a> "+messages("version")+": "+m.version+"<br>"+m.content;$(div+"
#pageSearchResult").append(h)}function
onChannelError(a){Vosao.error(a.code+" "+a.description)}function
onChannelClose(){}var h=messages("pages.search_pages")+' : <input
name="query" type="text" /> '+'<input id="search" type="button"
value="'+messages("search")+'"/> '+'<input id="clear" type="button"
value="'+messages("clear")+'"/> '+'<span id="progress"></span> '+'<a
id="enhancedSearch" href="#">'+messages("enhanced")+"</a>"+'<div
id="enhancedDiv">'+' <div class="form-row">'+' <input id="publishedSearch"
type="checkbox" checked="checked"/>'+' <label
for="publishedSearch">'+messages("published")+"</label>"+' <input
id="unpublishedSearch" type="checkbox" checked="checked" />'+' <label
for="unpublishedSearch">'+messages("unpublished")+"</label><br/>"+"
</div>"+' <div class="form-row">'+messages("change_date")+' <input
class="datepicker" type="input" name="from" size="10"/> '+messages("to")+'
<input class="datepicker" type="input" name="to" size="10"/>'+"
</div>"+"</div>"+'<div id="pageSearchResult"></div>';return
$(div).html(h),$(".datepicker").datepicker({dateFormat:"dd.mm.yy"}),$(div+"
#search").click(onSearch),$(div+" #clear").click(function(){$(div+"
#pageSearchResult").html(""),$(div+" input[name=query]").val("")}),$(div+"
#enhancedSearch").click(onEnhancedSearch),$(div+"
#search").hide(),Vosao.initChannel(onChannelOpened,onChannelMessage,onChannelError,onChannelClose),$(div+"
input[name=query]").keypress(function(a){var
b=a.keyCode?a.keyCode:a.which;if(b==13||
b==10)onSearch(),a.preventDefault()}),this},define("view/pages/PageSearchComponent",function(){}),define("view/PagesView",["text!template/pages.html","jquery.treeview","order!view/pages/PageSearchComponent"],function(a){function
h(){j(),l(),g=Vosao.PageSearchComponent("#pageSearch")}function i(){return
d&&d.friendlyURL=="/"}function
j(){Vosao.jsonrpc.pageService.getTree(function(a){c=a,f&&t(a),$("#pages-tree").html(k(a)),$("#pages-tree").treeview({animated:"fast",collapsed:!0,unique:!0,persist:"cookie",cookieId:"pageTree"}),$(".content-link").each(function(){$(this).mouseover(function(a){$(".page_edit").hide(),$(a.target).siblings(".page_edit").show()})}),$("#pages-tree
li").each(function(){$(this).hover(function(a){$(".page_edit").hide(),$("> .page_edit",a.target).show()},function(a){})})})}function
k(a){var
b=encodeURIComponent(a.entity.friendlyURL),c=e?a.entity.title:a.entity.pageFriendlyURL;c|
|(c="/");var
d=a.entity.hasPublishedVersion?"published":"unpublished",f=messages(d),g='
<img src="/static/images/'+d+'.png" title="'+f+'" width="16px"
/>';a.entity.hasPublishedVersion||(g=' <a
onclick="Vosao.app.pagesView.onPagePublish('+
a.entity.id+')">'+'<img
src="/static/images/'+d+'.png" title="'+f+'" width="16px" /></a>');var
h="<li> "+g+' <a href="#page/content/'+
a.entity.id+'"
title="'+messages("page.edit_content")+'"
class="content-link">'+c+"</a> "+'<span class="page_edit"
style="display:none">'+'<a title="'+messages("add_child")+'"
onclick="Vosao.app.pagesView.onPageAdd(\''+a.entity.friendlyURL+'\')"><img
src="/static/images/add.png"/></a> '+'<a title="'+messages("remove")+'"
onclick="Vosao.app.pagesView.onPageRemove(\''+a.entity.friendlyURL+"')\">"+'<img
src="/static/images/02_x.png" /></a> '+'<a href="#page/'+
a.entity.id+'"
title="'+messages("page.edit_properties")+'">'+'<img
src="/static/images/pencil.png" /></a> '+'<a
onclick="Vosao.app.pagesView.onChangeTitle('+
a.entity.id+')"
title="'+messages("page.edit_url_title")+'">'+'<img
src="/static/images/globe.png" /></a>'+"</span>";return
a.children.list.length>0&&(h+="<ul>",$.each(a.children.list,function(a,b){h+=k(b)}),h+="</ul>"),h+"</li>"}function
l(){Vosao.app.user.admin||$("#structuresTab").hide()}function
m(a){if(a.title=="")return
messages("title_is_empty");if(a.title.indexOf(",")!=-1)return
messages("pages.coma_not_allowed");if(a.url==""&&(!d||
d.friendlyURL!="/"))return
messages("pages.url_is_empty");if(a.url.indexOf("/")!=-1)return
messages("pages.slash_not_allowed")}function n(){var
a={id:d==null?"":String(
d.id),title:$("#title").val(),url:$("#url").val(),friendlyUrl:i()?"/":b+"/"+$("#url").val()},c=m(a);c?o(c):Vosao.jsonrpc.pageService.savePage(function(a){a.result=="success"?(Vosao.info(messages("pages.success_created")),$("#page-dialog").dialog("close"),h()):o(a.message)},Vosao.javaMap(a))}function
o(a){Vosao.errorMessage("#pageMessages",a)}function p(a){return
q(c,a)}function q(a,b){if(
a.entity.id==b)return a;var c=null;return
a.children.list.length>0&&$.each(a.children.list,function(a,d){var
e=q(d,b);e!=null&&(c=e)}),c}function r(){e?$("#showTitle").html('<a
href="#"
onclick="Vosao.app.pagesView.onShowTitle(false)">'+messages("show_names")+"</a>"):$("#showTitle").html('<a
href="#"
onclick="Vosao.app.pagesView.onShowTitle(true)">'+messages("show_titles")+"</a>")}function
s(){f?$("#invertOrder").html('<a href="#"
onclick="Vosao.app.pagesView.onInvertOrder(false)">'+messages("restore_order")+"</a>"):$("#invertOrder").html('<a
href="#"
onclick="Vosao.app.pagesView.onInvertOrder(true)">'+messages("invert_order")+"</a>")}function
t(a){a.children.list.reverse(),a.hasChildren&&$.each(a.children.list,function(a,b){t(b)})}var
b=null,c=null,d=null,e=$.cookie("pages.showTitle")!="names",f=$.cookie("pages.invertOrder")=="true",g=null;return
Backbone.View.extend({css:["/static/css/jquery.treeview.css","/static/css/pages.css"],el:$("#content"),events:{},initialize:function(){},render:function(){Vosao.addCSSFiles(this.css),this.el.html(_.template(a,{messages:messages})),$("#page-dialog").dialog({width:400,autoOpen:!1}),Vosao.initJSONRpc(h),$("#cancelDlgButton").click(function(){$("#page-dialog").dialog("close")}),$("#pageForm").submit(function(){return
n(),!1}),$("#title").change(this.onTitleChange),r(),s()},remove:function(){$("#page-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFiles(this.css)},onPageRemove:function(a){if(a=="/")return;confirm(messages("are_you_sure"))&&Vosao.jsonrpc.pageService.remove(function(a){Vosao.showServiceMessages(a),h()},a)},onPageAdd:function(a){$("#ui-dialog-title-page-dialog").text(messages("pages.new_page")),b=a=="/"?"":a,$("#page-dialog").dialog("open"),$("#parentURL").html(b+"/"),$("#title").val(""),$("#url").val(""),$("#url").removeAttr("disabled"),$("#title").focus(),d=null},onTitleChange:function(){var
a=$("#url").val(),b=$("#title").val();a==""&&!i()&&$("#url").val(Vosao.urlFromTitle(b))},onInvertOrder:function(a){f=a,s(),f?$.cookie("pages.invertOrder","true",{path:"/",expires:10}):$.cookie("pages.invertOrder","false",{path:"/",expires:10}),h()},onPagePublish:function(a){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.pageService.approve(function(a){Vosao.showServiceMessages(a),h()},a)},onShowTitle:function(a){e=a,r(),e?$.cookie("pages.showTitle","titles",{path:"/",expires:10}):$.cookie("pages.showTitle","names",{path:"/",expires:10}),h()},onChangeTitle:function(a){var
c=p(a);d=c.entity,$("#ui-dialog-title-page-dialog").text(messages("pages.change_page")),b=d.parentUrl=="/"?"":d.parentUrl,$("#page-dialog").dialog("open"),$("#parentURL").html(b+"/"),$("#title").val(d.title),$("#url").val(d.pageFriendlyURL),$("#url").attr("disabled",i()),$("#title").focus()}})});var
CodeMirror=function(){function a(c,d){function bN(a){return
a>=0&&a<bm.size}function bP(a){return t(bm,a)}function bQ(a,b){bB=!0;var
c=b-a.height;for(var d=a;d;d=d.parent)d.height+=c}function bR(a){var
b={line:0,ch:0};cc(b,{line:bm.size-1,ch:bP(bm.size-1).text.length},Y(a),b,b),bv=!0}function
bS(a){var b=[];return
bm.iter(0,bm.size,function(a){b.push(a.text)}),b.join("\n")}function
bT(a){function j(a){var b=dw(a,!0);if(b&&!Q(b,g)){bo||
ca(),g=b,cD(d,b),bv=!1;var c=cw();if(b.line>=
c.to||
b.line<c.from)h=setTimeout(dJ(function(){j(a)}),150)}}cC(a.shiftKey);for(var
c=D(a);c!=B;c=c.parentNode)if(c.parentNode==_&&c!=ba)return;for(var
c=D(a);c!=B;c=c.parentNode)if(c.parentNode==bc)return
e.onGutterClick&&e.onGutterClick(bO,W(bc.childNodes,c)+bE,a),A(a);var
d=dw(a);switch(E(a)){case 3:I&&!b&&dx(a);return;case
2:d&&cG(d.line,
d.ch,!0);return}if(!d){D(a)==N&&A(a);return}bo||ca();var
f=+(new Date);if(bs&&bs.time>f-400&&Q(bs.pos,d))return
A(a),setTimeout(cs,20),cP(d.line);if(br&&br.time>f-400&&Q(br.pos,d))return
bs={time:f,pos:d},A(a),cO(d);br={time:f,pos:d};var
g=d,h;if(H&&!Q(bp.from,
bp.to)&&!R(d,bp.from)&&!R(
bp.to,d)){K&&(bd.draggable=!0);var
i=F(y,"mouseup",dJ(function(b){K&&(bd.draggable=!1),bt=!1,i(),Math.abs(a.clientX-b.clientX)+Math.abs(a.clientY-b.clientY)<10&&(A(b),cG(d.line,
d.ch,!0),cs())}),!0);bt=!0;return}A(a),cG(d.line,
d.ch,!0);var
k=F(y,"mousemove",dJ(function(a){clearTimeout(h),A(a),j(a)}),!0),i=F(y,"mouseup",dJ(function(a){clearTimeout(h);var
b=dw(a);b&&cD(d,b),A(a),cs(),bv=!0,k(),i()}),!0)}function bU(a){for(var
b=D(a);b!=B;b=b.parentNode)if(b.parentNode==bc)return A(a);var
c=dw(a);if(!c)return;bs={time:+(new Date),pos:c},A(a),cO(c)}function
bV(a){a.preventDefault();var b=dw(a,!0),c=a.dataTransfer.files;if(!b||
e.readOnly)return;if(c&&c.length&&window.FileReader&&window.File){function
d(a,c){var d=new
FileReader;d.onload=function(){g[c]=d.result,++h==f&&(b=cI(b),dJ(function(){var
a=ch(g.join(""),b,b);cD(b,a)})())},d.readAsText(a)}var
f=c.length,g=Array(f),h=0;for(var i=0;i<f;++i)d(c[i],i)}else try{var
g=a.dataTransfer.getData("Text");if(g){var
j=ch(g,b,b),k=bp.from,l=
bp.to;cD(b,j),bt&&ch("",k,l),cs()}}catch(a){}}function
bW(a){var
b=cl();U(b),a.dataTransfer.setDragImage(T,0,0),a.dataTransfer.setData("Text",b)}function
bX(a){var b=$[a.keyCode],c=h[e.keyMap].auto,d,f;if(b==null||
a.altGraphKey)return
c&&(e.keyMap=c),null;a.altKey&&(b="Alt-"+b),a.ctrlKey&&(b="Ctrl-"+b),a.metaKey&&(b="Cmd-"+b),a.shiftKey&&(d=i("Shift-"+b,e.extraKeys,e.keyMap))?f=!0:d=i(b,e.extraKeys,e.keyMap),typeof
d=="string"&&(g.propertyIsEnumerable(d)?d=g[d]:d=null),c&&(d|
|!j(a))&&(e.keyMap=c);if(!d)return!1;if(f){var k=bq;bq=null,d(bO),bq=k}else
d(bO);return A(a),!0}function bZ(a){bo||ca();var
c=a.keyCode;J&&c==27&&(a.returnValue=!1),cC(c==16||
a.shiftKey);if(e.onKeyEvent&&e.onKeyEvent(bO,z(a)))return;var
d=bX(a);window.opera&&(bY=d?a.keyCode:null,!d&&(b?a.metaKey:a.ctrlKey)&&a.keyCode==88&&ci(""))}function
b$(a){if(window.opera&&a.keyCode==bY){bY=null,A(a);return}if(e.onKeyEvent&&e.onKeyEvent(bO,z(a)))return;if(window.opera&&!a.which&&bX(a))return;if(e.electricChars&&bl.electricChars){var
b=String.fromCharCode(a.charCode==null?a.keyCode:a.charCode);bl.electricChars.indexOf(b)>-1&&setTimeout(dJ(function(){cR(bp.to.line,"smart")}),75)}co()}function
b_(a){if(e.onKeyEvent&&e.onKeyEvent(bO,z(a)))return;a.keyCode==16&&(bq=null)}function
ca(){if(e.readOnly)return;bo||
(e.onFocus&&e.onFocus(bO),bo=!0,B.className.search(/\bCodeMirror-focused\b/)==-1&&(B.className+="
CodeMirror-focused"),bA||cr(!0)),cn(),dy()}function
cb(){bo&&(e.onBlur&&e.onBlur(bO),bo=!1,B.className=B.className.replace("
CodeMirror-focused","")),clearInterval(bk),setTimeout(function(){bo||
(bq=null)},150)}function cc(a,b,c,d,f){if(bL){var
g=[];bm.iter(a.line,b.line+1,function(a){g.push(a.text)}),bL.addChange(a.line,c.length,g);while(bL.done.length>e.undoDepth)bL.done.shift()}cg(a,b,c,d,f)}function
cd(a,b){var c=a.pop();if(c){var
d=[],e=c.start+c.added;bm.iter(c.start,e,function(a){d.push(a.text)}),b.push({start:c.start,added:c.old.length,old:d});var
f=cI({line:c.start+c.old.length-1,ch:V(d[d.length-1],c.old[c.old.length-1])});cg({line:c.start,ch:0},{line:e-1,ch:bP(e-1).text.length},c.old,f,f),bv=!0}}function
ce(){cd(bL.done,bL.undone)}function cf(){cd(bL.undone,bL.done)}function
cg(a,b,c,d,f){function y(a){return a>Math.min(b.line,b.line+s)?a+s:a}var
g=!1,h=bI.length;e.lineWrapping||
bm.iter(a.line,b.line,function(a){if(a.text.length==h)return
g=!0,!0});if(a.line!=b.line||c.length>1)bB=!0;var
i=b.line-a.line,j=bP(a.line),k=bP(b.line);if(
a.ch==0&&
b.ch==0&&c[c.length-1]==""){var
l=[],m=null;a.line?(m=bP(a.line-1),m.fixMarkEnds(k)):k.fixMarkStarts();for(var
n=0,o=c.length-1;n<o;++n)l.push(p.inheritMarks(c[n],m));i&&bm.remove(a.line,i,bC),l.length&&bm.insert(a.line,l)}else
if(j==k)if(c.length==1)j.replace(
a.ch,
b.ch,c[0]);else{k=j.split(
b.ch,c[c.length-1]),j.replace(
a.ch,null,c[0]),j.fixMarkEnds(k);var
l=[];for(var
n=1,o=c.length-1;n<o;++n)l.push(p.inheritMarks(c[n],j));l.push(k),bm.insert(a.line+1,l)}else
if(c.length==1)j.replace(
a.ch,null,c[0]),k.replace(null,
b.ch,""),j.append(k),bm.remove(a.line+1,i,bC);else{var
l=[];j.replace(
a.ch,null,c[0]),k.replace(null,
b.ch,c[c.length-1]),j.fixMarkEnds(k);for(var
n=1,o=c.length-1;n<o;++n)l.push(p.inheritMarks(c[n],j));i>1&&bm.remove(a.line+1,i-1,bC),bm.insert(a.line+1,l)}if(e.lineWrapping){var
q=N.clientWidth/dt()-3;bm.iter(a.line,a.line+c.length,function(a){if(a.hidden)return;var
b=Math.ceil(a.text.length/q)||1;b!=a.height&&bQ(a,b)})}else
bm.iter(a.line,n+c.length,function(a){var
b=a.text;b.length>h&&(bI=b,h=b.length,bJ=null,g=!1)}),g&&(h=0,bI="",bJ=null,bm.iter(0,bm.size,function(a){var
b=a.text;b.length>h&&(h=b.length,bI=b)}));var r=[],s=c.length-i-1;for(var
n=0,t=bn.length;n<t;++n){var
u=bn[n];u<a.line?r.push(u):u>b.line&&r.push(u+s)}var
v=a.line+Math.min(c.length,500);dD(a.line,v),r.push(v),bn=r,dF(100),bx.push({from:a.line,to:b.line+1,diff:s});var
w={from:a,to:b,text:c};if(by){for(var x=by;x.next;x=x.next);x.next=w}else
by=w;cE(d,f,y(bp.from.line),y(bp.to.line)),_.style.height=bm.height*dq()+2*du()+"px"}function
ch(a,b,c){function d(d){if(R(d,b))return d;if(!R(c,d))return e;var
f=d.line+a.length-(c.line-b.line)-1,g=
d.ch;return
d.line==c.line&&(g+=a[a.length-1].length-(c.ch-(c.line==b.line?b.ch:0))),{line:f,ch:g}}b=cI(b),c?c=cI(c):c=b,a=Y(a);var
e;return cj(a,b,c,function(a){return
e=a,{from:d(bp.from),to:d(
bp.to)}}),e}function
ci(a,b){cj(Y(a),bp.from,
bp.to,function(a){return
b=="end"?{from:a,to:a}:b=="start"?{from:bp.from,to:bp.from}:{from:bp.from,to:a}})}function
cj(a,b,c,d){var
e=a.length==1?a[0].length+b.ch:a[a.length-1].length,f=d({line:b.line+a.length-1,ch:e});cc(b,c,a,f.from,
f.to)}function
ck(a,b){var c=a.line,d=b.line;if(c==d)return
bP(c).text.slice(
a.ch,
b.ch);var e=[bP(c).text.slice(
a.ch)];return
bm.iter(c+1,d,function(a){e.push(a.text)}),e.push(bP(d).text.slice(0,
b.ch)),e.join("\n")}function
cl(){return ck(bp.from,
bp.to)}function
cn(){if(cm)return;bi.set(e.pollInterval,function(){dG(),cq(),bo&&cn(),dH()})}function
co(){function b(){dG();var
c=cq();!c&&!a?(a=!0,bi.set(60,b)):(cm=!1,cn()),dH()}var
a=!1;cm=!0,bi.set(20,b)}function cq(){if(bA||!bo||Z(M))return!1;var
a=M.value;if(a==cp)return!1;bq=null;var
b=0,c=Math.min(cp.length,a.length);while(b<c&&cp[b]==a[b])++b;return
b<cp.length?bp.from={line:bp.from.line,ch:bp.from.ch-(cp.length-b)}:bu&&Q(bp.from,
bp.to)&&(
bp.to={line:bp.to.line,ch:Math.min(bP(bp.to.line).text.length,
bp.to.ch+(a.length-b))}),ci(a.slice(b),"end"),cp=a,!0}function
cr(a){Q(bp.from,
bp.to)?a&&(cp=M.value=""):(cp="",M.value=cl(),M.select())}function
cs(){e.readOnly||M.focus()}function
ct(){if(!bf.getBoundingClientRect)return;var
a=bf.getBoundingClientRect();if(J&&a.top==a.bottom)return;var
b=window.innerHeight||
Math.max(document.body.offsetHeight,document.documentElement.offsetHeight);(a.top<0|
|a.bottom>b)&&bf.scrollIntoView()}function cu(){var
a=dj(bp.inverted?bp.from:
bp.to),b=e.lineWrapping?Math.min(a.x,bd.offsetWidth):a.x;return
cv(b,a.y,b,a.yBot)}function cv(a,b,c,d){var
f=dv(),g=du(),h=dq();b+=g,d+=g,a+=f,c+=f;var
i=N.clientHeight,j=N.scrollTop,k=!1,l=!0;b<j?(N.scrollTop=Math.max(0,b-2*h),k=!0):d>j+i&&(N.scrollTop=d+h-i,k=!0);var
m=N.clientWidth,n=N.scrollLeft,o=e.fixedGutter?bb.clientWidth:0;return
a<n+o?(a<50&&(a=0),N.scrollLeft=Math.max(0,a-10-o),k=!0):c>m+n-3&&(N.scrollLeft=c+10-m,k=!0,c>_.clientWidth&&(l=!1)),k&&e.onScroll&&e.onScroll(bO),l}function
cw(){var
a=dq(),b=N.scrollTop-du(),c=Math.max(0,Math.floor(b/a)),d=Math.ceil((b+N.clientHeight)/a);return{from:v(bm,c),to:v(bm,d)}}function
cx(a,b){if(!N.clientWidth){bE=bF=bD=0;return}var c=cw();if(a===!0||
a.length!=0||c.from<bE||
c.to>bF){var
d=Math.max(c.from-100,0),f=Math.min(bm.size,
c.to+100);bE<d&&d-bE<20&&(d=bE),bF>f&&bF-f<20&&(f=Math.min(bm.size,bF));var
g=a===!0?[]:cy([{from:bE,to:bF,domStart:0}],a),h=0;for(var
i=0;i<g.length;++i){var
j=g[i];j.from<d&&(j.domStart+=d-j.from,j.from=d),
j.to>f&&(
j.to=f),j.from<
j.to?h+=j.to-j.from:g.splice(i--,1)}if(h==f-d)return;g.sort(function(a,b){return
a.domStart-b.domStart});var
k=dq(),l=bb.style.display;bg.style.display=bb.style.display="none",cz(d,f,g),bg.style.display="";var
m=d!=bE||f!=bF||
bG!=N.clientHeight+k;m&&(bG=N.clientHeight+k),bE=d,bF=f,bD=w(bm,d),ba.style.top=bD*k+"px",_.style.height=bm.height*k+2*du()+"px";if(bg.childNodes.length!=bF-bE)throw
new Error("BAD PATCH! "+JSON.stringify(g)+" size="+(bF-bE)+"
nodes="+bg.childNodes.length);if(e.lineWrapping){bJ=N.clientWidth;var
n=bg.firstChild;bm.iter(bE,bF,function(a){if(!a.hidden){var
b=Math.round(n.offsetHeight/k)||
1;a.height!=b&&(bQ(a,b),bB=!0)}n=n.nextSibling})}else
bJ==null&&(bJ=df(bI)),bJ>N.clientWidth?(bd.style.width=bJ+"px",_.style.width="",_.style.width=N.scrollWidth+"px"):bd.style.width=_.style.width="";return
bb.style.display=l,(m||
bB)&&cA(),cB(),!b&&e.onUpdate&&e.onUpdate(bO),!0}return}function
cy(a,b){for(var c=0,d=b.length||0;c<d;++c){var e=b[c],f=[],g=e.diff||
0;for(var h=0,i=a.length;h<i;++h){var
j=a[h];
e.to<=j.from&&e.diff?f.push({from:j.from+g,to:
j.to+g,domStart:j.domStart}):
e.to>j.from&&e.from<
j.to?(e.from>j.from&&f.push({from:j.from,to:e.from,domStart:j.domStart}),
e.to<
j.to&&f.push({from:
e.to+g,to:
j.to+g,domStart:j.domStart+(e.to-j.from)})):f.push(j)}a=f}return
a}function cz(a,b,c){if(!c.length)bg.innerHTML="";else{function d(a){var
b=a.nextSibling;return a.parentNode.removeChild(a),b}var
e=0,f=bg.firstChild,g;for(var h=0;h<c.length;++h){var
i=c[h];while(i.domStart>e)f=d(f),e++;for(var
j=0,k=i.to-i.from;j<k;++j)f=f.nextSibling,e++}while(f)f=d(f)}var
l=c.shift(),f=bg.firstChild,j=a,m=bp.from.line,n=bp.to.line,o=m<a&&n>=a,p=y.createElement("div"),q;bm.iter(a,b,function(a){var
b=null,d=null;o?(b=0,n==j&&(o=!1,d=
bp.to.ch)):m==j&&(n==j?(b=
bp.from.ch,d=
bp.to.ch):(o=!0,b=
bp.from.ch)),l&&
l.to==j&&(l=c.shift()),!l|
|
l.from>j?(a.hidden?p.innerHTML="<pre></pre>":p.innerHTML=a.getHTML(b,d,!0,bK),bg.insertBefore(p.firstChild,f)):f=f.nextSibling,++j})}function
cA(){if(!e.gutter&&!e.lineNumbers)return;var
a=ba.offsetHeight,b=N.clientHeight;bb.style.height=(a-b<2?b:a)+"px";var
c=[],d=bE;bm.iter(bE,Math.max(bF,bE+1),function(a){if(a.hidden)c.push("<pre></pre>");else{var
b=a.gutterMarker,f=e.lineNumbers?d+e.firstLineNumber:null;b&&b.text?f=b.text.replace("%N%",f!=null?f:""):f==null&&(f=" "),c.push(b&&b.style?'<pre
class="'+b.style+'">':"<pre>",f);for(var
g=1;g<a.height;++g)c.push("<br/> ");c.push("</pre>")}++d}),bb.style.display="none",bc.innerHTML=c.join("");var
f=String(bm.size).length,g=bc.firstChild,h=P(g),i="";while(h.length+i.length<f)i+=" ";i&&g.insertBefore(y.createTextNode(i),g.firstChild),bb.style.display="",bd.style.marginLeft=bb.offsetWidth+"px",bB=!1}function
cB(){var
a=bp.inverted?bp.from:
bp.to,b=dq(),c=dj(a,!0),d=O(B),f=O(bg);L.style.top=c.y+f.top-d.top+"px",L.style.left=c.x+f.left-d.left+"px",Q(bp.from,
bp.to)?(bf.style.top=c.y+"px",bf.style.left=(e.lineWrapping?Math.min(c.x,bd.offsetWidth):c.x)+"px",bf.style.display=""):bf.style.display="none"}function
cC(a){a?bq=bq||(bp.inverted?bp.to:bp.from):bq=null}function cD(a,b){var
c=bq&&cI(bq);c&&(R(c,a)?a=c:R(b,c)&&(b=c)),cE(a,b),bw=!0}function
cE(a,b,c,d){cM=null,c==null&&(c=bp.from.line,d=bp.to.line);if(Q(bp.from,a)&&Q(
bp.to,b))return;if(R(b,a)){var
e=b;b=a,a=e}a.line!=c&&(a=cF(a,c,
bp.from.ch)),b.line!=d&&(b=cF(b,d,
bp.to.ch)),Q(a,b)?bp.inverted=!1:Q(a,
bp.to)?bp.inverted=!1:Q(b,bp.from)&&(bp.inverted=!0),Q(a,b)?Q(bp.from,
bp.to)|
|
bx.push({from:c,to:d+1}):Q(bp.from,
bp.to)?bx.push({from:a.line,to:b.line+1}):(Q(a,bp.from)|
|
(a.line<c?bx.push({from:a.line,to:Math.min(b.line,c)+1}):bx.push({from:c,to:Math.min(d,a.line)+1})),Q(b,
bp.to)|
|
(b.line<d?bx.push({from:Math.max(c,a.line),to:d+1}):bx.push({from:Math.max(a.line,d),to:b.line+1}))),bp.from=a,
bp.to=b,bz=!0}function
cF(a,b,c){function d(b){var d=a.line+b,e=b==1?bm.size:-1;while(d!=e){var
f=bP(d);if(!f.hidden){var g=
a.ch;if(g>c||
g>f.text.length)g=f.text.length;return{line:d,ch:g}}d+=b}}var
e=bP(a.line);return e.hidden?a.line<b?d(-1)||d(1):d(1)||d(-1):a}function
cG(a,b,c){var d=cI({line:a,ch:b||0});(c?cD:cE)(d,d)}function cH(a){return
Math.max(0,Math.min(a,bm.size-1))}function
cI(a){if(a.line<0)return{line:0,ch:0};if(a.line<bm.size){var
b=
a.ch,c=bP(a.line).text.length;return b==null||
b>c?{line:a.line,ch:c}:b<0?{line:a.line,ch:0}:a}return{line:bm.size-1,ch:bP(bm.size-1).text.length}}function
cJ(a,b){function g(){for(var b=d+a,c=a<0?-1:bm.size;b!=c;b+=a){var
e=bP(b);if(!e.hidden)return d=b,f=e,!0}}function
h(b){if(e==(a<0?0:f.text.length))if(!b&&g())e=a<0?f.text.length:0;else
return!1;else e+=a;return!0}var
c=bp.inverted?bp.from:
bp.to,d=c.line,e=
c.ch,f=bP(d);if(b=="char")h();else
if(b=="column")h(!0);else if(b=="word"){var
i=!1;for(;;){if(a<0&&!h())break;if(X(f.text.charAt(e)))i=!0;else
if(i){a<0&&(a=1,h());break}if(a>0&&!h())break}}return{line:d,ch:e}}function
cK(a,b){var c=a<0?bp.from:
bp.to;if(bq||
Q(bp.from,
bp.to))c=cJ(a,b);cG(c.line,
c.ch,!0)}function
cL(a,b){Q(bp.from,
bp.to)?a<0?ch("",cJ(a,b),
bp.to):ch("",bp.from,cJ(a,b)):ch("",bp.from,
bp.to),bw=!0}function
cN(a,b){var
c=0,d=dj(bp.inverted?bp.from:
bp.to,!0);cM!=null&&(d.x=cM),b=="page"?c=N.clientHeight:b=="line"&&(c=dq());var
e=dk(d.x,d.y+c*a+2);cG(e.line,
e.ch,!0),cM=d.x}function cO(a){var
b=bP(a.line).text,c=
a.ch,d=
a.ch;while(c>0&&X(b.charAt(c-1)))--c;while(d<b.length&&X(b.charAt(d)))++d;cD({line:a.line,ch:c},{line:a.line,ch:d})}function
cP(a){cD({line:a,ch:0},{line:a,ch:bP(a).text.length})}function
cQ(a){if(Q(bp.from,
bp.to))return cR(bp.from.line,a);var
b=bp.to.line-(
bp.to.ch?0:1);for(var
c=bp.from.line;c<=b;++c)cR(c,a)}function cR(a,b){b||
(b="add");if(b=="smart")if(!bl.indent)b="prev";else var c=dC(a);var
d=bP(a),f=d.indentation(e.tabSize),g=d.text.match(/^\s*/)[0],h;b=="prev"?a?h=bP(a-1).indentation(e.tabSize):h=0:b=="smart"?h=bl.indent(c,d.text.slice(g.length),d.text):b=="add"?h=f+e.indentUnit:b=="subtract"&&(h=f-e.indentUnit),h=Math.max(0,h);var
i=h-f;if(!i){if(bp.from.line!=a&&bp.to.line!=a)return;var j=g}else{var
j="",k=0;if(e.indentWithTabs)for(var
l=Math.floor(h/e.tabSize);l;--l)k+=e.tabSize,j+="\t";while(k<h)++k,j+=" "}ch(j,{line:a,ch:0},{line:a,ch:g.length})}function
cS(){bl=a.getMode(e,e.mode),bm.iter(0,bm.size,function(a){a.stateAfter=null}),bn=[0],dF()}function
cT(){var a=e.gutter||
e.lineNumbers;bb.style.display=a?"":"none",a?bB=!0:bg.parentNode.style.marginLeft=0}function
cU(a,b){if(e.lineWrapping){B.className+=" CodeMirror-wrap";var
c=N.clientWidth/dt()-3;bm.iter(0,bm.size,function(a){if(a.hidden)return;var
b=Math.ceil(a.text.length/c)||
1;b!=1&&bQ(a,b)}),bd.style.width=_.style.width=""}else
B.className=B.className.replace("
CodeMirror-wrap",""),bJ=null,bI="",bm.iter(0,bm.size,function(a){a.height!=1&&!a.hidden&&bQ(a,1),a.text.length>bI.length&&(bI=a.text)});bx.push({from:0,to:bm.size})}function
cV(){for(var a='<span class="cm-tab">',b=0;b<e.tabSize;++b)a+=" ";return
a+"</span>"}function cW(){bK=cV(),cx(!0)}function
cX(){N.className=N.className.replace(/\s*cm-s-\w+/g,"")+e.theme.replace(/(^|
\s)\s*/g," cm-s-")}function cY(){this.set=[]}function cZ(a,b,c){function
e(a,b,c,e){bP(a).addMark(new n(b,c,e,d.set))}a=cI(a),b=cI(b);var d=new
cY;if(a.line==b.line)e(a.line,
a.ch,
b.ch,c);else{e(a.line,
a.ch,null,c);for(var
f=a.line+1,g=b.line;f<g;++f)e(f,null,null,c);e(b.line,null,
b.ch,c)}return
bx.push({from:a.line,to:b.line+1}),d}function c$(a){a=cI(a);var b=new
o(
a.ch);return bP(a.line).addMark(b),b}function c_(a,b,c){return typeof
a=="number"&&(a=bP(cH(a))),a.gutterMarker={text:b,style:c},bB=!0,a}function
da(a){typeof a=="number"&&(a=bP(cH(a))),a.gutterMarker=null,bB=!0}function
db(a,b){var c=a,d=a;typeof a=="number"?d=bP(cH(a)):c=u(a);if(c==null)return
null;if(b(d,c))bx.push({from:c,to:c+1});else return null;return d}function
dc(a,b){return db(a,function(a){if(a.className!=b)return
a.className=b,!0})}function dd(a,b){return
db(a,function(a,c){if(a.hidden!=b)return
a.hidden=b,bQ(a,b?0:1),b&&(bp.from.line==c||
bp.to.line==c)&&cE(cF(bp.from,bp.from.line,
bp.from.ch),cF(
bp.to,bp.to.line,
bp.to.ch)),bB=!0})}function
de(a){if(typeof a=="number"){if(!bN(a))return null;var
b=a;a=bP(a);if(!a)return null}else{var b=u(a);if(b==null)return null}var
c=a.gutterMarker;return{line:b,handle:a,text:a.text,markerText:c&&c.text,markerClass:c&&c.style,lineClass:a.className}}function
df(a){return
be.innerHTML="<pre><span>x</span></pre>",be.firstChild.firstChild.firstChild.nodeValue=a,be.firstChild.firstChild.offsetWidth|
|10}function dg(a,b){function e(a){return
be.innerHTML="<pre><span>"+c.getHTML(null,null,!1,bK,a)+"</span></pre>",be.firstChild.firstChild.offsetWidth}if(b<=0)return
0;var
c=bP(a),d=c.text,f=0,g=0,h=d.length,i,j=Math.min(h,Math.ceil(b/dt()));for(;;){var
k=e(j);if(k<=b&&j<h)j=Math.min(h,Math.ceil(j*1.2));else{i=k,h=j;break}}if(b>i)return
h;j=Math.floor(h*.8),k=e(j),k<b&&(f=j,g=k);for(;;){if(h-f<=1)return
i-b>b-g?f:h;var
l=Math.ceil((f+h)/2),m=e(l);m>b?(h=l,i=m):(f=l,g=m)}}function di(a,b){var
c="";if(e.lineWrapping){var
d=a.text.indexOf(" ",b+2);c=U(a.text.slice(b+1,d<0?a.text.length:d+(J?5:0)))}be.innerHTML="<pre>"+a.getHTML(null,null,!1,bK,b)+'<span
id="CodeMirror-temp-'+dh+'">'+U(a.text.charAt(b)|
|" ")+"</span>"+c+"</pre>";var
f=document.getElementById("CodeMirror-temp-"+dh),g=f.offsetTop,h=f.offsetLeft;if(J&&b&&g==0&&h==0){var
i=document.createElement("span");i.innerHTML="x",f.parentNode.insertBefore(i,f.nextSibling),g=i.offsetTop}return{top:g,left:h}}function
dj(a,b){var c,d=dq(),f=d*(w(bm,a.line)-(b?bD:0));if(
a.ch==0)c=0;else{var
g=di(bP(a.line),
a.ch);c=g.left,e.lineWrapping&&(f+=Math.max(0,g.top))}return{x:c,y:f,yBot:f+d}}function
dk(a,b){function l(a){var b=di(h,a);if(j){var d=Math.round(b.top/c);return
Math.max(0,b.left+(d-k)*N.clientWidth)}return b.left}b<0&&(b=0);var
c=dq(),d=dt(),f=bD+Math.floor(b/c),g=v(bm,f);if(g>=bm.size)return{line:bm.size-1,ch:bP(bm.size-1).text.length};var
h=bP(g),i=h.text,j=e.lineWrapping,k=j?f-w(bm,g):0;if(a<=0&&k==0)return{line:g,ch:0};var
m=0,n=0,o=i.length,p,q=Math.min(o,Math.ceil((a+k*N.clientWidth*.9)/d));for(;;){var
r=l(q);if(r<=a&&q<o)q=Math.min(o,Math.ceil(q*1.2));else{p=r,o=q;break}}if(a>p)return{line:g,ch:o};q=Math.floor(o*.8),r=l(q),r<a&&(m=q,n=r);for(;;){if(o-m<=1)return{line:g,ch:p-a>a-n?m:o};var
s=Math.ceil((m+o)/2),t=l(s);t>a?(o=s,p=t):(m=s,n=t)}}function dl(a){var
b=dj(a,!0),c=O(bd);return{x:c.left+b.x,y:c.top+b.y,yBot:c.top+b.yBot}}function
dq(){if(dp==null){dp="<pre>";for(var
a=0;a<49;++a)dp+="x<br/>";dp+="x</pre>"}var b=bg.clientHeight;return
b==dn?dm:(dn=b,be.innerHTML=dp,dm=be.firstChild.offsetHeight/50||
1,be.innerHTML="",dm)}function dt(){return
N.clientWidth==ds?dr:(ds=N.clientWidth,dr=df("x"))}function du(){return
bd.offsetTop}function dv(){return bd.offsetLeft}function dw(a,b){var
c=O(N,!0),d,e;try{d=a.clientX,e=a.clientY}catch(a){return
null}if(!b&&(d-c.left>N.clientWidth||e-c.top>N.clientHeight))return
null;var f=O(bd,!0);return dk(d-f.left,e-f.top)}function dx(a){function
e(){var
a=Y(M.value).join("\n");a!=d&&dJ(ci)(a,"end"),L.style.position="relative",M.style.cssText=c,bA=!1,cr(!0),cn()}var
b=dw(a);if(!b||window.opera)return;(Q(bp.from,
bp.to)||R(b,bp.from)|
|!R(b,
bp.to))&&dJ(cG)(b.line,
b.ch);var
c=M.style.cssText;L.style.position="absolute",M.style.cssText="position:
fixed; width: 30px; height: 30px; top: "+(a.clientY-5)+"px;
left: "+(a.clientX-5)+"px; z-index: 1000; background:
white; "+"border-width: 0; outline: none; overflow: hidden; opacity: .05;
filter: alpha(opacity=5);",bA=!0;var
d=M.value=cl();cs(),M.select();if(I){C(a);var
f=F(window,"mouseup",function(){f(),setTimeout(e,20)},!0)}else
setTimeout(e,50)}function dy(){clearInterval(bk);var
a=!0;bf.style.visibility="",bk=setInterval(function(){bf.style.visibility=(a=!a)?"":"hidden"},650)}function
dA(a){function p(a,b,c){if(!a.text)return;var
d=a.styles,e=g?0:a.text.length-1,f;for(var
i=g?0:d.length-2,j=g?d.length:-2;i!=j;i+=2*h){var
k=d[i];if(d[i+1]!=null&&d[i+1]!=m){e+=h*k.length;continue}for(var
l=g?0:k.length-1,p=g?k.length:-1;l!=p;l+=h,e+=h)if(e>=b&&e<c&&o.test(f=k.charAt(l))){var
q=dz[f];if(q.charAt(1)==">"==g)n.push(f);else{if(n.pop()!=q.charAt(0))return{pos:e,match:!1};if(!n.length)return{pos:e,match:!0}}}}}var
b=bp.inverted?bp.from:
bp.to,c=bP(b.line),d=b.ch-1,e=d>=0&&dz[c.text.charAt(d)]|
|dz[c.text.charAt(++d)];if(!e)return;var
f=e.charAt(0),g=e.charAt(1)==">",h=g?1:-1,i=c.styles;for(var
j=d+1,k=0,l=i.length;k<l;k+=2)if((j-=i[k].length)<=0){var
m=i[k+1];break}var n=[c.text.charAt(d)],o=/[(){}[\]]/;for(var
k=b.line,l=g?Math.min(k+100,bm.size):Math.max(-1,k-100);k!=l;k+=h){var
c=bP(k),q=k==b.line,r=p(c,q&&g?d+1:0,q&&!g?d:c.text.length);if(r)break}r||
(r={pos:null,match:!1});var
m=r.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket",s=cZ({line:b.line,ch:d},{line:b.line,ch:d+1},m),t=r.pos!=null&&cZ({line:k,ch:r.pos},{line:k,ch:r.pos+1},m),u=dJ(function(){s.clear(),t&&t.clear()});a?setTimeout(u,800):bH=u}function
dB(a){var b,c;for(var d=a,f=a-40;d>f;--d){if(d==0)return 0;var
g=bP(d-1);if(g.stateAfter)return d;var
h=g.indentation(e.tabSize);if(c==null||b>h)c=d-1,b=h}return c}function
dC(a){var b=dB(a),c=b&&bP(b-1).stateAfter;return
c?c=k(bl,c):c=l(bl),bm.iter(b,a,function(a){a.highlight(bl,c,e.tabSize),a.stateAfter=k(bl,c)}),b<a&&bx.push({from:b,to:a}),a<bm.size&&!bP(a).stateAfter&&bn.push(a),c}function
dD(a,b){var
c=dC(a);bm.iter(a,b,function(a){a.highlight(bl,c,e.tabSize),a.stateAfter=k(bl,c)})}function
dE(){var a=+(new
Date)+e.workTime,b=bn.length;while(bn.length){if(!bP(bE).stateAfter)var
c=bE;else var c=bn.pop();if(c>=bm.size)continue;var
d=dB(c),f=d&&bP(d-1).stateAfter;f?f=k(bl,f):f=l(bl);var
g=0,h=bl.compareStates,i=!1,j=d,m=!1;bm.iter(j,bm.size,function(b){var
d=b.stateAfter;if(+(new Date)>a)return
bn.push(j),dF(e.workDelay),i&&bx.push({from:c,to:j+1}),m=!0;var
l=b.highlight(bl,f,e.tabSize);l&&(i=!0),b.stateAfter=k(bl,f);if(h){if(d&&h(d,f))return!0}else
if(l!==!1||!d)g=0;else if(++g>3&&(!bl.indent||
bl.indent(d,"")==bl.indent(f,"")))return!0;++j});if(m)return;i&&bx.push({from:c,to:j+1})}b&&e.onHighlightComplete&&e.onHighlightComplete(bO)}function
dF(a){if(!bn.length)return;bj.set(a,dJ(dE))}function
dG(){bv=bw=by=null,bx=[],bz=!1,bC=[]}function dH(){var
a=!1,b;bz&&(a=!cu()),bx.length?b=cx(bx,!0):(bz&&cB(),bB&&cA()),a&&cu(),bz&&(ct(),dy()),bo&&!bA&&(bv===!0|
|
bv!==!1&&bz)&&cr(bw),bz&&e.matchBrackets&&setTimeout(dJ(function(){bH&&(bH(),bH=null),Q(bp.from,
bp.to)&&dA(!1)}),20);var
c=by,d=bC;bz&&e.onCursorActivity&&e.onCursorActivity(bO),c&&e.onChange&&bO&&e.onChange(bO,c);for(var
f=0;f<d.length;++f)d[f](bO);b&&e.onUpdate&&e.onUpdate(bO)}function
dJ(a){return function(){dI++||dG();try{var
b=a.apply(this,arguments)}finally{--dI||dH()}return b}}var
e={},m=a.defaults;for(var q in
m)m.hasOwnProperty(q)&&(e[q]=(d&&d.hasOwnProperty(q)?d:m)[q]);var
y=e.document,B=y.createElement("div");B.className="CodeMirror"+(e.lineWrapping?"
CodeMirror-wrap":""),B.innerHTML='<div style="overflow: hidden; position:
relative; width: 3px; height: 0px;"><textarea style="position: absolute;
padding: 0; width: 1px;" wrap="off" autocorrect="off"
autocapitalize="off"></textarea></div><div class="CodeMirror-scroll"
tabindex="-1"><div style="position: relative"><div style="position:
relative"><div class="CodeMirror-gutter"><div
class="CodeMirror-gutter-text"></div></div><div
class="CodeMirror-lines"><div style="position: relative"><div
style="position: absolute; width: 100%; height: 0; overflow: hidden;
visibility: hidden"></div><pre
class="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div>',c.appendChild?c.appendChild(B):c(B);var
L=B.firstChild,M=L.firstChild,N=B.lastChild,_=N.firstChild,ba=_.firstChild,bb=ba.firstChild,bc=bb.firstChild,bd=bb.nextSibling.firstChild,be=bd.firstChild,bf=be.nextSibling,bg=bf.nextSibling;cX(),/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent)&&(M.style.width="0px"),K|
|
(bd.draggable=!0),e.tabindex!=null&&(M.tabIndex=e.tabindex),!e.gutter&&!e.lineNumbers&&(bb.style.display="none");try{df("x")}catch(bh){throw
bh.message.match(/runtime/i)&&(bh=new Error("A CodeMirror inside a P-style
element does not work in Internet Explorer. (innerHTML bug)")),bh}var
bi=new G,bj=new G,bk,bl,bm=new s([new r([new p("")])]),bn,bo;cS();var
bp={from:{line:0,ch:0},to:{line:0,ch:0},inverted:!1},bq,br,bs,bt,bu=!1,bv,bw,bx,by,bz,bA,bB,bC,bD=0,bE=0,bF=0,bG=0,bH,bI="",bJ,bK=cV();dJ(function(){bR(e.value|
|""),bv=!1})();var bL=new
x;F(N,"mousedown",dJ(bT)),F(N,"dblclick",dJ(bU)),F(bd,"dragstart",bW),F(bd,"selectstart",A),I|
|
F(N,"contextmenu",dx),F(N,"scroll",function(){cx([]),e.fixedGutter&&(bb.style.left=N.scrollLeft+"px"),e.onScroll&&e.onScroll(bO)}),F(window,"resize",function(){cx(!0)}),F(M,"keyup",dJ(b_)),F(M,"input",co),F(M,"keydown",dJ(bZ)),F(M,"keypress",dJ(b$)),F(M,"focus",ca),F(M,"blur",cb),F(N,"dragenter",C),F(N,"dragover",C),F(N,"drop",dJ(bV)),F(N,"paste",function(){cs(),co()}),F(M,"paste",co),F(M,"cut",dJ(function(){ci("")}));var
bM;try{bM=y.activeElement==M}catch(bh){}bM?setTimeout(ca,20):cb();var
bO=B.CodeMirror={getValue:bS,setValue:dJ(bR),getSelection:cl,replaceSelection:dJ(ci),focus:function(){cs(),ca(),co()},setOption:function(a,b){var
c=e[a];e[a]=b,a=="mode"||
a=="indentUnit"?cS():a=="readOnly"&&b?(cb(),M.blur()):a=="theme"?cX():a=="lineWrapping"&&c!=b?dJ(cU)():a=="tabSize"&&dJ(cW)(),(a=="lineNumbers"|
|a=="gutter"||a=="firstLineNumber"||
a=="theme")&&dJ(cT)()},getOption:function(a){return
e[a]},undo:dJ(ce),redo:dJ(cf),indentLine:dJ(function(a,b){bN(a)&&cR(a,b==null?"smart":b?"add":"subtract")}),indentSelection:dJ(cQ),historySize:function(){return{undo:bL.done.length,redo:bL.undone.length}},clearHistory:function(){bL=new
x},matchBrackets:dJ(function(){dA(!0)}),getTokenAt:dJ(function(a){return
a=cI(a),bP(a.line).getTokenAt(bl,dC(a.line),
a.ch)}),getStateAfter:function(a){return
a=cH(a==null?bm.size-1:a),dC(a+1)},cursorCoords:function(a){return
a==null&&(a=bp.inverted),dl(a?bp.from:
bp.to)},charCoords:function(a){return
dl(cI(a))},coordsChar:function(a){var b=O(bd);return
dk(a.x-b.left,a.y-b.top)},markText:dJ(cZ),setBookmark:c$,setMarker:dJ(c_),clearMarker:dJ(da),setLineClass:dJ(dc),hideLine:dJ(function(a){return
dd(a,!0)}),showLine:dJ(function(a){return
dd(a,!1)}),onDeleteLine:function(a,b){if(typeof
a=="number"){if(!bN(a))return null;a=bP(a)}return(a.handlers||
(a.handlers=[])).push(b),a},lineInfo:de,addWidget:function(a,b,c,d,e){a=dj(cI(a));var
f=a.yBot,g=a.x;b.style.position="absolute",_.appendChild(b);if(d=="over")f=a.y;else
if(d=="near"){var
h=Math.max(N.offsetHeight,bm.height*dq()),i=Math.max(_.clientWidth,bd.clientWidth)-dv();a.yBot+b.offsetHeight>h&&a.y>b.offsetHeight&&(f=a.y-b.offsetHeight),g+b.offsetWidth>i&&(g=i-b.offsetWidth)}b.style.top=f+du()+"px",b.style.left=b.style.right="",e=="right"?(g=_.clientWidth-b.offsetWidth,b.style.right="0px"):(e=="left"?g=0:e=="middle"&&(g=(_.clientWidth-b.offsetWidth)/2),b.style.left=g+dv()+"px"),c&&cv(g,f,g+b.offsetWidth,f+b.offsetHeight)},lineCount:function(){return
bm.size},clipPos:cI,getCursor:function(a){return
a==null&&(a=bp.inverted),S(a?bp.from:
bp.to)},somethingSelected:function(){return!Q(bp.from,
bp.to)},setCursor:dJ(function(a,b,c){b==null&&typeof
a.line=="number"?cG(a.line,
a.ch,c):cG(a,b,c)}),setSelection:dJ(function(a,b,c){(c?cD:cE)(cI(a),cI(b|
|a))}),getLine:function(a){if(bN(a))return
bP(a).text},getLineHandle:function(a){if(bN(a))return
bP(a)},setLine:dJ(function(a,b){bN(a)&&ch(b,{line:a,ch:0},{line:a,ch:bP(a).text.length})}),removeLine:dJ(function(a){bN(a)&&ch("",{line:a,ch:0},cI({line:a+1,ch:0}))}),replaceRange:dJ(ch),getRange:function(a,b){return
ck(cI(a),cI(b))},execCommand:function(a){return
g[a](bO)},moveH:dJ(cK),deleteH:dJ(cL),moveV:dJ(cN),toggleOverwrite:function(){bu=!bu},posFromIndex:function(a){var
b=0,c;return bm.iter(0,bm.size,function(d){var
e=d.text.length+1;if(e>a)return
c=a,!0;a-=e,++b}),cI({line:b,ch:c})},indexFromPos:function(a){if(a.line<0||
a.ch<0)return 0;var b=
a.ch;return
bm.iter(0,a.line,function(a){b+=a.text.length+1}),b},operation:function(a){return
dJ(a)()},refresh:function(){cx(!0)},getInputField:function(){return
M},getWrapperElement:function(){return
B},getScrollerElement:function(){return
N},getGutterElement:function(){return
bb}},bY=null,cm=!1,cp="",cM=null;cY.prototype.clear=dJ(function(){var
a=Infinity,b=-Infinity;for(var c=0,d=this.set.length;c<d;++c){var
e=this.set[c],f=e.marked;if(!f||!e.parent)continue;var
g=u(e);a=Math.min(a,g),b=Math.max(b,g);for(var
h=0;h<f.length;++h)f[h].set==this.set&&f.splice(h--,1)}a!=Infinity&&bx.push({from:a,to:b+1})}),cY.prototype.find=function(){var
a,b;for(var c=0,d=this.set.length;c<d;++c){var
e=this.set[c],f=e.marked;for(var g=0;g<f.length;++g){var
h=f[g];if(h.set==this.set)if(h.from!=null||
h.to!=null){var
i=u(e);i!=null&&(h.from!=null&&(a={line:i,ch:h.from}),
h.to!=null&&(b={line:i,ch:
h.to}))}}}return{from:a,to:b}};var
dh=Math.floor(Math.random()*16777215).toString(16),dm,dn,dp,dr,ds=0,dz={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},dI=0;for(var
dK in
f)f.propertyIsEnumerable(dK)&&!bO.propertyIsEnumerable(dK)&&(bO[dK]=f[dK]);return
bO}function i(a,b,c){function d(a,b,c){var e=b[a];if(e!=null)return
e;c==null&&(c=b.fallthrough);if(c==null)return b.catchall;if(typeof
c=="string")return d(a,h[c]);for(var
f=0,g=c.length;f<g;++f){e=d(a,h[c[f]]);if(e!=null)return e}return
null}return b?d(a,b,c):d(a,h[c])}function j(a){var b=$[a.keyCode];return
b=="Ctrl"||b=="Alt"||b=="Shift"||b=="Mod"}function k(a,b){if(b===!0)return
b;if(a.copyState)return a.copyState(b);var c={};for(var d in b){var
e=b[d];e instanceof Array&&(e=e.concat([])),c[d]=e}return c}function
l(a,b,c){return a.startState?a.startState(b,c):!0}function
m(a,b){this.pos=this.start=0,this.string=a,this.tabSize=b||8}function
n(a,b,c,d){this.from=a,
this.to=b,this.style=c,this.set=d}function
o(a){this.from=a,
this.to=a,this.line=null}function p(a,b){this.styles=b||
[a,null],this.text=a,this.height=1,this.marked=this.gutterMarker=this.className=this.handlers=null,this.stateAfter=this.parent=this.hidden=null}function
q(a,b,c,d){for(var e=0,f=0,g=0;f<b;e+=2){var
h=c[e],i=f+h.length;g==0?(i>a&&d.push(h.slice(a-f,Math.min(h.length,b-f)),c[e+1]),i>=a&&(g=1)):g==1&&(i>b?d.push(h.slice(0,b-f),c[e+1]):d.push(h,c[e+1])),f=i}}function
r(a){this.lines=a,this.parent=null;for(var
b=0,c=a.length,d=0;b<c;++b)a[b].parent=this,d+=a[b].height;this.height=d}function
s(a){this.children=a;var b=0,c=0;for(var d=0,e=a.length;d<e;++d){var
f=a[d];b+=f.chunkSize(),c+=f.height,f.parent=this}this.size=b,this.height=c,this.parent=null}function
t(a,b){while(!a.lines)for(var c=0;;++c){var
d=a.children[c],e=d.chunkSize();if(b<e){a=d;break}b-=e}return
a.lines[b]}function u(a){if(a.parent==null)return null;var
b=a.parent,c=W(b.lines,a);for(var d=b.parent;d;b=d,d=d.parent)for(var
e=0,f=d.children.length;;++e){if(d.children[e]==b)break;c+=d.children[e].chunkSize()}return
c}function v(a,b){var c=0;d:do{for(var e=0,f=a.children.length;e<f;++e){var
g=a.children[e],h=g.height;if(b<h){a=g;continue
d}b-=h,c+=g.chunkSize()}return c}while(!a.lines);for(var
e=0,f=a.lines.length;e<f;++e){var
i=a.lines[e],j=i.height;if(b<j)break;b-=j}return c+e}function w(a,b){var
c=0;d:do{for(var e=0,f=a.children.length;e<f;++e){var
g=a.children[e],h=g.chunkSize();if(b<h){a=g;continue
d}b-=h,c+=g.height}return c}while(!a.lines);for(var
e=0;e<b;++e)c+=a.lines[e].height;return c}function
x(){this.time=0,this.done=[],this.undone=[]}function y(){C(this)}function
z(a){return a.stop||(a.stop=y),a}function
A(a){a.preventDefault?a.preventDefault():a.returnValue=!1}function
B(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}function
C(a){A(a),B(a)}function D(a){return a.target||a.srcElement}function
E(a){if(a.which)return a.which;if(a.button&1)return 1;if(a.button&2)return
3;if(a.button&4)return 2}function F(a,b,c,d){if(typeof
a.addEventListener=="function"){a.addEventListener(b,c,!1);if(d)return
function(){a.removeEventListener(b,c,!1)}}else{var e=function(a){c(a||
window.event)};a.attachEvent("on"+b,e);if(d)return
function(){a.detachEvent("on"+b,e)}}}function G(){
this.id=null}function
M(a,b,c){b==null&&(b=a.search(/[^\s\u00a0]/),b==-1&&(b=a.length));for(var
d=0,e=0;d<b;++d)a.charAt(d)=="\t"?e+=c-e%c:++e;return e}function
N(a){return
a.currentStyle?a.currentStyle:window.getComputedStyle(a,null)}function
O(a,b){var c=a.ownerDocument.body,d=0,e=0,f=!1;for(var
g=a;g;g=g.offsetParent){var
h=g.offsetLeft,i=g.offsetTop;g==c?(d+=Math.abs(h),e+=Math.abs(i)):(d+=h,e+=i),b&&N(g).position=="fixed"&&(f=!0)}var
j=b&&!f?null:c;for(var
g=a.parentNode;g!=j;g=g.parentNode)g.scrollLeft!=null&&(d-=g.scrollLeft,e-=g.scrollTop);return{left:d,top:e}}function
P(a){return a.textContent||a.innerText||a.nodeValue||""}function
Q(a,b){return a.line==b.line&&
a.ch==
b.ch}function R(a,b){return
a.line<b.line||a.line==b.line&&
a.ch<
b.ch}function
S(a){return{line:a.line,ch:
a.ch}}function U(a){return
T.textContent=a,T.innerHTML}function V(a,b){if(!b)return
a?a.length:0;if(!a)return b.length;for(var
c=a.length,d=b.length;c>=0&&d>=0;--c,--d)if(a.charAt(c)!=b.charAt(d))break;return
d+1}function W(a,b){if(a.indexOf)return a.indexOf(b);for(var
c=0,d=a.length;c<d;++c)if(a[c]==b)return c;return-1}function
X(a){return/\w/.test(a)||
a.toUpperCase()!=a.toLowerCase()}a.defaults={value:"",mode:null,theme:"default",indentUnit:2,indentWithTabs:!1,tabSize:4,keyMap:"default",extraKeys:null,electricChars:!0,onKeyEvent:null,lineWrapping:!1,lineNumbers:!1,gutter:!1,fixedGutter:!1,firstLineNumber:1,readOnly:!1,onChange:null,onCursorActivity:null,onGutterClick:null,onHighlightComplete:null,onUpdate:null,onFocus:null,onBlur:null,onScroll:null,matchBrackets:!1,workTime:100,workDelay:200,pollInterval:100,undoDepth:40,tabindex:null,document:window.document};var
b=/Mac/.test(navigator.platform),c=/Win/.test(navigator.platform),d={},e={};a.defineMode=function(b,c){!a.defaults.mode&&b!="null"&&(a.defaults.mode=b),d[b]=c},a.defineMIME=function(a,b){e[a]=b},a.getMode=function(b,c){typeof
c=="string"&&e.hasOwnProperty(c)&&(c=e[c]);if(typeof c=="string")var
f=c,g={};else if(c!=null)var f=
c.name,g=c;var h=d[f];return h?h(b,g||
{}):(window.console&&console.warn("No mode "+f+" found, falling back to
plain text."),a.getMode(b,"text/plain"))},a.listModes=function(){var
a=[];for(var b in d)d.propertyIsEnumerable(b)&&a.push(b);return
a},a.listMIMEs=function(){var a=[];for(var b in
e)e.propertyIsEnumerable(b)&&a.push({mime:b,mode:e[b]});return a};var
f=a.extensions={};a.defineExtension=function(a,b){f[a]=b};var
g=a.commands={selectAll:function(a){a.setSelection({line:0,ch:0},{line:a.lineCount()-1})},killLine:function(a){var
b=a.getCursor(!0),c=a.getCursor(!1),d=!Q(b,c);!d&&a.getLine(b.line).length==
b.ch?a.replaceRange("",b,{line:b.line+1,ch:0}):a.replaceRange("",b,d?c:{line:b.line})},deleteLine:function(a){var
b=a.getCursor().line;a.replaceRange("",{line:b,ch:0},{line:b})},undo:function(a){a.undo()},redo:function(a){a.redo()},goDocStart:function(a){a.setCursor(0,0,!0)},goDocEnd:function(a){a.setSelection({line:a.lineCount()-1},null,!0)},goLineStart:function(a){a.setCursor(a.getCursor().line,0,!0)},goLineStartSmart:function(a){var
b=a.getCursor(),c=a.getLine(b.line),d=Math.max(0,c.search(/\S/));a.setCursor(b.line,
b.ch<=d&&
b.ch?0:d,!0)},goLineEnd:function(a){a.setSelection({line:a.getCursor().line},null,!0)},goLineUp:function(a){a.moveV(-1,"line")},goLineDown:function(a){a.moveV(1,"line")},goPageUp:function(a){a.moveV(-1,"page")},goPageDown:function(a){a.moveV(1,"page")},goCharLeft:function(a){a.moveH(-1,"char")},goCharRight:function(a){a.moveH(1,"char")},goColumnLeft:function(a){a.moveH(-1,"column")},goColumnRight:function(a){a.moveH(1,"column")},goWordLeft:function(a){a.moveH(-1,"word")},goWordRight:function(a){a.moveH(1,"word")},delCharLeft:function(a){a.deleteH(-1,"char")},delCharRight:function(a){a.deleteH(1,"char")},delWordLeft:function(a){a.deleteH(-1,"word")},delWordRight:function(a){a.deleteH(1,"word")},indentAuto:function(a){a.indentSelection("smart")},indentMore:function(a){a.indentSelection("add")},indentLess:function(a){a.indentSelection("subtract")},insertTab:function(a){a.replaceSelection("\t","end")},transposeChars:function(a){var
b=a.getCursor(),c=a.getLine(b.line);
b.ch>0&&
b.ch<c.length-1&&a.replaceRange(c.charAt(
b.ch)+c.charAt(b.ch-1),{line:b.line,ch:b.ch-1},{line:b.line,ch:
b.ch+1})},newlineAndIndent:function(a){a.replaceSelection("\n","end"),a.indentLine(a.getCursor().line)},toggleOverwrite:function(a){a.toggleOverwrite()}},h=a.keyMap={};h.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharRight",Backspace:"delCharLeft",Tab:"indentMore","Shift-Tab":"indentLess",Enter:"newlineAndIndent",Insert:"toggleOverwrite"},h.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Alt-Up":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Down":"goDocEnd","Ctrl-Left":"goWordLeft","Ctrl-Right":"goWordRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delWordLeft","Ctrl-Delete":"delWordRight","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll",fallthrough:"basic"},h.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goWordLeft","Alt-Right":"goWordRight","Cmd-Left":"goLineStart","Cmd-Right":"goLineEnd","Alt-Backspace":"delWordLeft","Ctrl-Alt-Backspace":"delWordRight","Alt-Delete":"delWordRight","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll",fallthrough:["basic","emacsy"]},h["default"]=b?h.macDefault:h.pcDefault,h.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageUp","Shift-Ctrl-V":"goPageDown","Ctrl-D":"delCharRight","Ctrl-H":"delCharLeft","Alt-D":"delWordRight","Alt-Backspace":"delWordLeft","Ctrl-K":"killLine","Ctrl-T":"transposeChars"},a.fromTextArea=function(b,c){function
d(){b.value=h.getValue()}c||
(c={}),c.value=b.value,!c.tabindex&&b.tabindex&&(c.tabindex=b.tabindex);if(b.form){var
e=F(b.form,"submit",d,!0);if(typeof b.form.submit=="function"){var
f=b.form.submit;function
g(){d(),b.form.submit=f,b.form.submit(),b.form.submit=g}b.form.submit=g}}b.style.display="none";var
h=a(function(a){b.parentNode.insertBefore(a,b.nextSibling)},c);return
h.save=d,h.getTextArea=function(){return
b},h.toTextArea=function(){d(),b.parentNode.removeChild(h.getWrapperElement()),b.style.display="",b.form&&(e(),typeof
b.form.submit=="function"&&(b.form.submit=f))},h},a.copyState=k,a.startState=l,m.prototype={eol:function(){return
this.pos>=this.string.length},sol:function(){return
this.pos==0},peek:function(){return
this.string.charAt(this.pos)},next:function(){if(this.pos<this.string.length)return
this.string.charAt(this.pos++)},eat:function(a){var
b=this.string.charAt(this.pos);if(typeof a=="string")var c=b==a;else var
c=b&&(a.test?a.test(b):a(b));if(c)return++this.pos,b},eatWhile:function(a){var
b=this.pos;while(this.eat(a));return this.pos>b},eatSpace:function(){var
a=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return
this.pos>a},skipToEnd:function(){this.pos=this.string.length},skipTo:function(a){var
b=this.string.indexOf(a,this.pos);if(b>-1)return
this.pos=b,!0},backUp:function(a){this.pos-=a},column:function(){return
M(this.string,this.start,this.tabSize)},indentation:function(){return
M(this.string,null,this.tabSize)},match:function(a,b,c){if(typeof
a!="string"){var e=this.string.slice(this.pos).match(a);return
e&&b!==!1&&(this.pos+=e[0].length),e}function d(a){return
c?a.toLowerCase():a}if(d(this.string).indexOf(d(a),this.pos)==this.pos)return
b!==!1&&(this.pos+=a.length),!0},current:function(){return
this.string.slice(this.start,this.pos)}},a.StringStream=m,n.prototype={attach:function(a){this.set.push(a)},detach:function(a){var
b=W(this.set,a);b>-1&&this.set.splice(b,1)},split:function(a,b){if(
this.to>a|
|
this.to==null){var c=this.from<a||
this.from==null?null:this.from-a+b,d=
this.to==null?null:this.to-a+b;return
new n(c,d,this.style,this.set)}return null},dup:function(){return new
n(null,null,this.style,this.set)},clipTo:function(a,b,c,d,e){this.from!=null&&this.from>=b&&(this.from=Math.max(d,this.from)+e),
this.to!=null&&
this.to>b&&(
this.to=d<
this.to?this.to+e:b),a&&d>this.from&&(d<
this.to|
|
this.to==null)&&(this.from=null),c&&(b<
this.to||
this.to==null)&&(b>this.from||
this.from==null)&&(
this.to=null)},isDead:function(){return
this.from!=null&&
this.to!=null&&this.from>=
this.to},sameSet:function(a){return
this.set==a.set}},o.prototype={attach:function(a){this.line=a},detach:function(a){this.line==a&&(this.line=null)},split:function(a,b){if(a<this.from)return
this.from=
this.to=this.from-a+b,this},isDead:function(){return
this.from>
this.to},clipTo:function(a,b,c,d,e){(a||b<this.from)&&(c||
d>
this.to)?(this.from=0,
this.to=-1):this.from>b&&(this.from=
this.to=Math.max(d,this.from)+e)},sameSet:function(a){return!1},find:function(){return!this.line|
|!this.line.parent?null:{line:u(this.line),ch:this.from}},clear:function(){if(this.line){var
a=W(this.line.marked,this);a!=-1&&this.line.marked.splice(a,1),this.line=null}}},p.inheritMarks=function(a,b){var
c=new p(a),d=b&&b.marked;if(d)for(var
e=0;e<d.length;++e)if(d[e].to==null&&d[e].style){var f=c.marked||
(c.marked=[]),g=d[e],h=g.dup();f.push(h),h.attach(c)}return
c},p.prototype={replace:function(a,b,c){var
d=[],e=this.marked,f=b==null?this.text.length:b;q(0,a,this.styles,d),c&&d.push(c,null),q(f,this.text.length,this.styles,d),this.styles=d,this.text=this.text.slice(0,a)+c+this.text.slice(f),this.stateAfter=null;if(e){var
g=c.length-(f-a);for(var h=0,i=e[h];h<e.length;++h)i.clipTo(a==null,a||
0,b==null,f,g),i.isDead()&&(i.detach(this),e.splice(h--,1))}},split:function(a,b){var
c=[b,null],d=this.marked;q(a,this.text.length,this.styles,c);var e=new
p(b+this.text.slice(a),c);if(d)for(var f=0;f<d.length;++f){var
g=d[f],h=g.split(a,b.length);h&&(e.marked||
(e.marked=[]),e.marked.push(h),h.attach(e))}return
e},append:function(a){var
b=this.text.length,c=a.marked,d=this.marked;this.text+=a.text,q(0,a.text.length,a.styles,this.styles);if(d)for(var
e=0;e<d.length;++e)d[e].to==null&&(d[e].to=b);if(c&&c.length){d||
(this.marked=d=[]);f:for(var e=0;e<c.length;++e){var
g=c[e];if(!g.from)for(var h=0;h<d.length;++h){var
i=d[h];if(
i.to==b&&i.sameSet(g)){
i.to=
g.to==null?null:
g.to+b,i.isDead()&&(i.detach(this),c.splice(e--,1));continue
f}}d.push(g),g.attach(this),g.from+=b,
g.to!=null&&(
g.to+=b)}}},fixMarkEnds:function(a){var
b=this.marked,c=a.marked;if(!b)return;for(var d=0;d<b.length;++d){var
e=b[d],f=
e.to==null;if(f&&c)for(var
g=0;g<c.length;++g)if(c[g].sameSet(e)){f=!1;break}f&&(
e.to=this.text.length)}},fixMarkStarts:function(){var
a=this.marked;if(!a)return;for(var
b=0;b<a.length;++b)a[b].from==null&&(a[b].from=0)},addMark:function(a){a.attach(this),this.marked==null&&(this.marked=[]),this.marked.push(a),this.marked.sort(function(a,b){return(a.from|
|0)-(b.from||0)})},highlight:function(a,b,c){var d=new
m(this.text,c),e=this.styles,f=0,g=!1,h=e[0],i;this.text==""&&a.blankLine&&a.blankLine(b);while(!d.eol()){var
j=a.token(d,b),k=this.text.slice(d.start,d.pos);d.start=d.pos,f&&e[f-1]==j?e[f-2]+=k:k&&(!g&&(e[f+1]!=j|
|
f&&e[f-2]!=i)&&(g=!0),e[f++]=k,e[f++]=j,i=h,h=e[f]);if(d.pos>5e3){e[f++]=this.text.slice(d.pos),e[f++]=null;break}}return
e.length!=f&&(e.length=f,g=!0),f&&e[f-2]!=i&&(g=!0),g||
(e.length<5&&this.text.length<10?null:!1)},getTokenAt:function(a,b,c){var
d=this.text,e=new m(d);while(e.pos<c&&!e.eol()){e.start=e.pos;var
f=a.token(e,b)}return{start:e.start,end:e.pos,string:e.current(),className:f|
|null,state:b}},indentation:function(a){return
M(this.text,null,a)},getHTML:function(a,b,c,d,e){function
h(a,b){if(!a)return;g&&J&&a.charAt(0)==" "&&(a=" "+a.slice(1)),g=!1,b?f.push('<span
class="',b,'">',U(a).replace(/\t/g,d),"</span>"):f.push(U(a).replace(/\t/g,d))}var
f=[],g=!0;c&&f.push(this.className?'<pre
class="'+this.className+'">':"<pre>");var
i=this.styles,j=this.text,k=this.marked;a==b&&(a=null);var
l=j.length;e!=null&&(l=Math.min(e,l));if(!j&&e==null)h(" ",a!=null&&b==null?"CodeMirror-selected":null);else
if(!k&&a==null)for(var m=0,n=0;n<l;m+=2){var
o=i[m],p=i[m+1],q=o.length;n+q>l&&(o=o.slice(0,l-n)),n+=q,h(o,p&&"cm-"+p)}else{var
r=0,m=0,s="",p,t=0,u=-1,v=null;function
w(){k&&(u+=1,v=u<k.length?k[u]:null)}w();while(r<l){var
x=l,y="";if(a!=null)if(a>r)x=a;else if(b==null||b>r)y="
CodeMirror-selected",b!=null&&(x=Math.min(x,b));while(v&&
v.to!=null&&
v.to<=r)w();v&&(v.from>r?x=Math.min(x,v.from):(y+=" "+v.style,
v.to!=null&&(x=Math.min(x,
v.to))));for(;;){var
z=r+s.length,A=p;y&&(A=p?p+y:y),h(z>x?s.slice(0,x-r):s,A);if(z<x)r=z,s=i[m++],p="cm-"+i[m++];else{s=s.slice(x-r),r=x;break}}}a!=null&&b==null&&h(" ","CodeMirror-selected")}return
c&&f.push("</pre>"),f.join("")},cleanUp:function(){this.parent=null;if(this.marked)for(var
a=0,b=this.marked.length;a<b;++a)this.marked[a].detach(this)}},r.prototype={chunkSize:function(){return
this.lines.length},remove:function(a,b,c){for(var d=a,e=a+b;d<e;++d){var
f=this.lines[d];this.height-=f.height,f.cleanUp();if(f.handlers)for(var
g=0;g<f.handlers.length;++g)c.push(f.handlers[g])}this.lines.splice(a,b)},collapse:function(a){a.splice.apply(a,[a.length,0].concat(this.lines))},insertHeight:function(a,b,c){this.height+=c,this.lines.splice.apply(this.lines,[a,0].concat(b));for(var
d=0,e=b.length;d<e;++d)b[d].parent=this},iterN:function(a,b,c){for(var
d=a+b;a<d;++a)if(c(this.lines[a]))return!0}},s.prototype={chunkSize:function(){return
this.size},remove:function(a,b,c){this.size-=b;for(var
d=0;d<this.children.length;++d){var
e=this.children[d],f=e.chunkSize();if(a<f){var
g=Math.min(b,f-a),h=e.height;e.remove(a,g,c),this.height-=h-e.height,f==g&&(this.children.splice(d--,1),e.parent=null);if((b-=g)==0)break;a=0}else
a-=f}if(this.size-b<25){var i=[];this.collapse(i),this.children=[new
r(i)]}},collapse:function(a){for(var
b=0,c=this.children.length;b<c;++b)this.children[b].collapse(a)},insert:function(a,b){var
c=0;for(var
d=0,e=b.length;d<e;++d)c+=b[d].height;this.insertHeight(a,b,c)},insertHeight:function(a,b,c){this.size+=b.length,this.height+=c;for(var
d=0,e=this.children.length;d<e;++d){var
f=this.children[d],g=f.chunkSize();if(a>g)a-=g;else{f.insertHeight(a,b,c);if(f.lines&&f.lines.length>50){while(f.lines.length>50){var
h=f.lines.splice(f.lines.length-25,25),i=new
r(h);f.height-=i.height,this.children.splice(d+1,0,i),i.parent=this}this.maybeSpill()}break}}},maybeSpill:function(){if(this.children.length<=10)return;var
a=this;do{var b=a.children.splice(a.children.length-5,5),c=new
s(b);if(!a.parent){var d=new
s(a.children);d.parent=a,a.children=[d,c],a=d}else{a.size-=c.size,a.height-=c.height;var
e=W(a.parent.children,a);a.parent.children.splice(e+1,0,c)}c.parent=a.parent}while(a.children.length>10);a.parent.maybeSpill()},iter:function(a,b,c){this.iterN(a,b-a,c)},iterN:function(a,b,c){for(var
d=0,e=this.children.length;d<e;++d){var
f=this.children[d],g=f.chunkSize();if(a<g){var
h=Math.min(b,g-a);if(f.iterN(a,h,c))return!0;if((b-=h)==0)break;a=0}else
a-=g}}},x.prototype={addChange:function(a,b,c){this.undone.length=0;var
d=+(new Date),e=this.done[this.done.length-1];if(d-this.time>400||!e||
e.start>a+b||
e.start+e.added<a-e.added+e.old.length)this.done.push({start:a,added:b,old:c});else{var
f=0;if(a<e.start){for(var
g=e.start-a-1;g>=0;--g)e.old.unshift(c[g]);e.added+=e.start-a,e.start=a}else
e.start<a&&(f=a-e.start,b+=f);for(var
g=e.added-f,h=c.length;g<h;++g)e.old.push(c[g]);e.added<b&&(e.added=b)}this.time=d}},a.e_stop=C,a.e_preventDefault=A,a.e_stopPropagation=B,a.connect=F,G.prototype={set:function(a,b){clearTimeout(
this.id),
this.id=setTimeout(b,a)}};var
H=function(){if(/MSIE [1-8]\b/.test(navigator.userAgent))return!1;var
a=document.createElement("div");return"draggable"in
a}(),I=/gecko\/\d{7}/i.test(navigator.userAgent),J=/MSIE
\d/.test(navigator.userAgent),K=/WebKit\//.test(navigator.userAgent),L="\n";(function(){var
a=document.createElement("textarea");a.value="foo\nbar",a.value.indexOf("\r")>-1&&(L="\r\n")})(),document.documentElement.getBoundingClientRect!=null&&(O=function(a,b){try{var
c=a.getBoundingClientRect();c={top:c.top,left:c.left}}catch(d){c={top:0,left:0}}if(!b)if(window.pageYOffset==null){var
e=document.documentElement||
document.body.parentNode;e.scrollTop==null&&(e=document.body),c.top+=e.scrollTop,c.left+=e.scrollLeft}else
c.top+=window.pageYOffset,c.left+=window.pageXOffset;return c});var
T=document.createElement("pre");U("a")=="\na"?U=function(a){return
T.textContent=a,T.innerHTML.slice(1)}:U("\t")!="\t"&&(U=function(a){return
T.innerHTML="",T.appendChild(document.createTextNode(a)),T.innerHTML}),a.htmlEscape=U;var
Y="\n\nb".split(/\n/).length!=3?function(a){var
b=0,c,d=[];while((c=a.indexOf("\n",b))>-1)d.push(a.slice(b,a.charAt(c-1)=="\r"?c-1:c)),b=c+1;return
d.push(a.slice(b)),d}:function(a){return
a.split(/\r?\n/)};a.splitLines=Y;var
Z=window.getSelection?function(a){try{return
a.selectionStart!=a.selectionEnd}catch(b){return!1}}:function(a){try{var
b=a.ownerDocument.selection.createRange()}catch(c){}return!b||
b.parentElement()!=a?!1:b.compareEndPoints("StartToEnd",b)!=0};a.defineMode("null",function(){return{token:function(a){a.skipToEnd()}}}),a.defineMIME("text/plain","null");var
$={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",91:"Mod",92:"Mod",93:"Mod",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63276:"PageUp",63277:"PageDown",63275:"End",63273:"Home",63234:"Left",63232:"Up",63235:"Right",63233:"Down",63302:"Insert",63272:"Delete"};return
a.keyNames=$,function(){for(var a=0;a<10;a++)$[a+48]=String(a);for(var
a=65;a<=90;a++)$[a]=String.fromCharCode(a);for(var
a=1;a<=12;a++)$[a+111]=$[a+63235]="F"+a}(),a}();define("cm",function(){}),CodeMirror.defineMode("css",function(a){function
d(a,b){return c=b,a}function e(a,b){var c=a.next();if(c=="@")return
a.eatWhile(/[\w\\\-]/),d("meta",a.current());if(c=="/"&&a.eat("*"))return
b.tokenize=f,f(a,b);if(c=="<"&&a.eat("!"))return
b.tokenize=g,g(a,b);if(c=="=")d(null,"compare");else return c!="~"&&c!="|"|
|!a.eat("=")?c=='"'||
c=="'"?(b.tokenize=h(c),b.tokenize(a,b)):c=="#"?(a.eatWhile(/[\w\\\-]/),d("atom","hash")):c=="!"?(a.match(/^\s*\w*/),d("keyword","important")):/\d/.test(c)?(a.eatWhile(/[\w.%]/),d("number","unit")):/[,.+>*\/]/.test(c)?d(null,"select-op"):/[;{}:\[\]]/.test(c)?d(null,c):(a.eatWhile(/[\w\\\-]/),d("variable","variable")):d(null,"compare")}function
f(a,b){var
c=!1,f;while((f=a.next())!=null){if(c&&f=="/"){b.tokenize=e;break}c=f=="*"}return
d("comment","comment")}function g(a,b){var
c=0,f;while((f=a.next())!=null)if(c<2||
f!=">")c=f=="-"?c+1:0;else{b.tokenize=e;break}return
d("comment","comment")}function h(a){return function(b,c){var
f=!1,g;while((g=b.next())!=null){if(g==a&&!f)break;f=!f&&g=="\\"}return f||
(c.tokenize=e),d("string","string")}}var
b=a.indentUnit,c;return{startState:function(a){return{tokenize:e,baseIndent:a|
|0,stack:[]}},token:function(a,b){if(a.eatSpace())return null;var
d=b.tokenize(a,b),e=b.stack[b.stack.length-1];if(c=="hash"&&e=="rule")d="atom";else
if(d=="variable")if(e=="rule")d="number";else if(!e||
e=="@media{")d="tag";return
e=="rule"&&/^[\{\};]$/.test(c)&&b.stack.pop(),c=="{"?e=="@media"?b.stack[b.stack.length-1]="@media{":b.stack.push("{"):c=="}"?b.stack.pop():c=="@media"?b.stack.push("@media"):e=="{"&&c!="comment"&&b.stack.push("rule"),d},indent:function(a,c){var
d=a.stack.length;return/^\}/.test(c)&&(d-=a.stack[a.stack.length-1]=="rule"?2:1),a.baseIndent+d*b},electricChars:"}"}}),CodeMirror.defineMIME("text/css","css"),define("cm-css",function(){}),CodeMirror.defineMode("javascript",function(a,b){function
g(a,b,c){return b.tokenize=c,c(a,b)}function h(a,b){var
c=!1,d;while((d=a.next())!=null){if(d==b&&!c)return!1;c=!c&&d=="\\"}return
c}function k(a,b,c){return i=a,j=c,b}function l(a,b){var
c=a.next();if(c=='"'||c=="'")return
g(a,b,m(c));if(/[\[\]{}\(\),;\:\.]/.test(c))return
k(c);if(c=="0"&&a.eat(/x/i))return
a.eatWhile(/[\da-f]/i),k("number","number");if(/\d/.test(c))return
a.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),k("number","number");if(c=="/")return
a.eat("*")?g(a,b,n):a.eat("/")?(a.skipToEnd(),k("comment","comment")):b.reAllowed?(h(a,"/"),a.eatWhile(/[gimy]/),k("regexp","string")):(a.eatWhile(f),k("operator",null,a.current()));if(c=="#")return
a.skipToEnd(),k("error","error");if(f.test(c))return
a.eatWhile(f),k("operator",null,a.current());a.eatWhile(/[\w\$_]/);var
d=a.current(),i=e.propertyIsEnumerable(d)&&e[d];return
i&&b.kwAllowed?k(i.type,i.style,d):k("variable","variable",d)}function
m(a){return function(b,c){return h(b,a)||
(c.tokenize=l),k("string","string")}}function n(a,b){var
c=!1,d;while(d=a.next()){if(d=="/"&&c){b.tokenize=l;break}c=d=="*"}return
k("comment","comment")}function
p(a,b,c,d,e,f){this.indented=a,this.column=b,this.type=c,this.prev=e,
this.info=f,d!=null&&(this.align=d)}function
q(a,b){for(var c=a.localVars;c;c=c.next)if(
c.name==b)return!0}function
r(a,b,c,e,f){var
g=a.cc;s.state=a,s.stream=f,s.marked=null,s.cc=g,a.lexical.hasOwnProperty("align")|
|(a.lexical.align=!0);for(;;){var
h=g.length?g.pop():d?D:C;if(h(c,e)){while(g.length&&g[g.length-1].lex)g.pop()();return
s.marked?s.marked:c=="variable"&&q(a,e)?"variable-2":b}}}function
t(){for(var a=arguments.length-1;a>=0;a--)s.cc.push(arguments[a])}function
u(){return t.apply(null,arguments),!0}function v(a){var
b=s.state;if(b.context){s.marked="def";for(var
c=b.localVars;c;c=c.next)if(
c.name==a)return;b.localVars={name:a,next:b.localVars}}}function
x(){s.state.context||
(s.state.localVars=w),s.state.context={prev:s.state.context,vars:s.state.localVars}}function
y(){s.state.localVars=s.state.context.vars,s.state.context=s.state.context.prev}function
z(a,b){var c=function(){var c=s.state;c.lexical=new
p(c.indented,s.stream.column(),a,null,c.lexical,b)};return
c.lex=!0,c}function A(){var
a=s.state;a.lexical.prev&&(a.lexical.type==")"&&(a.indented=a.lexical.indented),a.lexical=a.lexical.prev)}function
B(a){return function b(b){return
b==a?u():a==";"?t():u(arguments.callee)}}function C(a){return
a=="var"?u(z("vardef"),L,B(";"),A):a=="keyword
a"?u(z("form"),D,C,A):a=="keyword
b"?u(z("form"),C,A):a=="{"?u(z("}"),K,A):a==";"?u():a=="function"?u(R):a=="for"?u(z("form"),B("("),z(")"),N,B(")"),A,C,A):a=="variable"?u(z("stat"),G):a=="switch"?u(z("form"),D,z("}","switch"),B("{"),K,A,A):a=="case"?u(D,B(":")):a=="default"?u(B(":")):a=="catch"?u(z("form"),x,B("("),S,B(")"),C,A,y):t(z("stat"),D,B(";"),A)}function
D(a){return o.hasOwnProperty(a)?u(F):a=="function"?u(R):a=="keyword
c"?u(E):a=="("?u(z(")"),D,B(")"),A,F):a=="operator"?u(D):a=="["?u(z("]"),J(D,"]"),A,F):a=="{"?u(z("}"),J(I,"}"),A,F):u()}function
E(a){return a.match(/[;\}\)\],]/)?t():t(D)}function
F(a,b){if(a=="operator"&&/\+\+|--/.test(b))return
u(F);if(a=="operator")return u(D);if(a==";")return;if(a=="(")return
u(z(")"),J(D,")"),A,F);if(a==".")return u(H,F);if(a=="[")return
u(z("]"),D,B("]"),A,F)}function G(a){return
a==":"?u(A,C):t(F,B(";"),A)}function H(a){if(a=="variable")return
s.marked="property",u()}function
I(a){a=="variable"&&(s.marked="property");if(o.hasOwnProperty(a))return
u(B(":"),D)}function J(a,b){function c(d){return
d==","?u(a,c):d==b?u():u(B(b))}return function d(d){return
d==b?u():t(a,c)}}function K(a){return a=="}"?u():t(C,K)}function
L(a,b){return a=="variable"?(v(b),u(M)):u()}function
M(a,b){if(b=="=")return u(D,M);if(a==",")return u(L)}function N(a){return
a=="var"?u(L,P):a==";"?t(P):a=="variable"?u(O):t(P)}function O(a,b){return
b=="in"?u(D):u(F,P)}function P(a,b){return
a==";"?u(Q):b=="in"?u(D):u(D,B(";"),Q)}function Q(a){a!=")"&&u(D)}function
R(a,b){if(a=="variable")return v(b),u(R);if(a=="(")return
u(z(")"),x,J(S,")"),A,C,y)}function S(a,b){if(a=="variable")return
v(b),u()}var c=a.indentUnit,d=b.json,e=function(){function
a(a){return{type:a,style:"keyword"}}var b=a("keyword a"),c=a("keyword
b"),d=a("keyword
c"),e=a("operator"),f={type:"atom",style:"atom"};return{"if":b,"while":b,"with":b,"else":c,"do":c,"try":c,"finally":c,"return":d,"break":d,"continue":d,"new":d,"delete":d,"throw":d,"var":a("var"),"const":a("var"),let:a("var"),"function":a("function"),"catch":a("catch"),"for":a("for"),"switch":a("switch"),"case":a("case"),"default":a("default"),"in":e,"typeof":e,"instanceof":e,"true":f,"false":f,"null":f,"undefined":f,NaN:f,Infinity:f}}(),f=/[+\-*&%=<>!?|
]/,i,j,o={atom:!0,number:!0,variable:!0,string:!0,regexp:!0},s={state:null,column:null,marked:null,cc:null},w={name:"this",next:{name:"arguments"}};return
A.lex=!0,{startState:function(a){return{tokenize:l,reAllowed:!0,kwAllowed:!0,cc:[],lexical:new
p((a||
0)-c,0,"block",!1),localVars:null,context:null,indented:0}},token:function(a,b){a.sol()&&(b.lexical.hasOwnProperty("align")|
|(b.lexical.align=!1),b.indented=a.indentation());if(a.eatSpace())return
null;var c=b.tokenize(a,b);return i=="comment"?c:(b.reAllowed=i=="operator"|
|i=="keyword c"||
i.match(/^[\[{}\(,;:]$/),b.kwAllowed=i!=".",r(b,c,i,j,a))},indent:function(a,b){if(a.tokenize!=l)return
0;var d=b&&b.charAt(0),e=a.lexical,f=e.type,g=d==f;return
f=="vardef"?e.indented+4:f=="form"&&d=="{"?e.indented:f=="stat"||
f=="form"?e.indented+c:
e.info=="switch"&&!g?e.indented+(/^(?:case|
default)\b/.test(b)?c:2*c):e.align?e.column+(g?0:1):e.indented+(g?0:c)},electricChars:":{}"}}),CodeMirror.defineMIME("text/javascript","javascript"),CodeMirror.defineMIME("application/json",{name:"javascript",json:!0}),define("cm-js",function(){}),CodeMirror.defineMode("xml",function(a,b){function
h(a,b){function c(c){return b.tokenize=c,c(a,b)}var
d=a.next();if(d=="<"){if(a.eat("!"))return
a.eat("[")?a.match("CDATA[")?c(k("atom","]]>")):null:a.match("--")?c(k("comment","-->")):a.match("DOCTYPE",!0,!0)?(a.eatWhile(/[\w\._\-]/),c(l(1))):null;if(a.eat("?"))return
a.eatWhile(/[\w\._\-]/),b.tokenize=k("meta","?>"),"meta";g=a.eat("/")?"closeTag":"openTag",a.eatSpace(),f="";var
e;while(e=a.eat(/[^\s\u00a0=<>\"\'\/?]/))f+=e;return
b.tokenize=i,"tag"}return
d=="&"?(a.eatWhile(/[^;]/),a.eat(";"),"atom"):(a.eatWhile(/[^&<]/),null)}function
i(a,b){var c=a.next();return c==">"||
c=="/"&&a.eat(">")?(b.tokenize=h,g=c==">"?"endTag":"selfcloseTag","tag"):c=="="?(g="equals",null):/[\'\"]/.test(c)?(b.tokenize=j(c),b.tokenize(a,b)):(a.eatWhile(/[^\s\u00a0=<>\"\'\/?]/),"word")}function
j(a){return
function(b,c){while(!b.eol())if(b.next()==a){c.tokenize=i;break}return"string"}}function
k(a,b){return
function(c,d){while(!c.eol()){if(c.match(b)){d.tokenize=h;break}c.next()}return
a}}function l(a){return function(b,c){var
d;while((d=b.next())!=null){if(d=="<")return
c.tokenize=l(a+1),c.tokenize(b,c);if(d==">"){if(a==1){c.tokenize=h;break}return
c.tokenize=l(a-1),c.tokenize(b,c)}}return"meta"}}function o(){for(var
a=arguments.length-1;a>=0;a--)m.cc.push(arguments[a])}function p(){return
o.apply(null,arguments),!0}function q(a,b){var
c=d.doNotIndent.hasOwnProperty(a)||
m.context&&m.context.noIndent;m.context={prev:m.context,tagName:a,indent:m.indented,startOfLine:b,noIndent:c}}function
r(){m.context&&(m.context=m.context.prev)}function
s(a){if(a=="openTag")return
m.tagName=f,p(v,t(m.startOfLine));if(a=="closeTag"){var b=!1;return
m.context?b=m.context.tagName!=f:b=!0,b&&(n="error"),p(u(b))}return
p()}function t(a){return function(b){return b=="selfcloseTag"||
b=="endTag"&&d.autoSelfClosers.hasOwnProperty(m.tagName.toLowerCase())?p():b=="endTag"?(q(m.tagName,a),p()):p()}}function
u(a){return function(b){return
a&&(n="error"),b=="endTag"?(r(),p()):(n="error",p(arguments.callee))}}function
v(a){return
a=="word"?(n="attribute",p(v)):a=="equals"?p(w,v):a=="string"?(n="error",p(v)):o()}function
w(a){return
a=="word"&&d.allowUnquoted?(n="string",p()):a=="string"?p(x):o()}function
x(a){return a=="string"?p(x):o()}var
c=a.indentUnit,d=b.htmlMode?{autoSelfClosers:{br:!0,img:!0,hr:!0,link:!0,input:!0,meta:!0,col:!0,frame:!0,base:!0,area:!0},doNotIndent:{pre:!0},allowUnquoted:!0}:{autoSelfClosers:{},doNotIndent:{},allowUnquoted:!1},e=b.alignCDATA,f,g,m,n;return{startState:function(){return{tokenize:h,cc:[],indented:0,startOfLine:!0,tagName:null,context:null}},token:function(a,b){a.sol()&&(b.startOfLine=!0,b.indented=a.indentation());if(a.eatSpace())return
null;n=g=f=null;var c=b.tokenize(a,b);b.type=g;if((c||
g)&&c!="comment"){m=b;for(;;){var d=b.cc.pop()||s;if(d(g||c))break}}return
b.startOfLine=!1,n||c},indent:function(a,b,d){var
f=a.context;if(a.tokenize!=i&&a.tokenize!=h||f&&f.noIndent)return
d?d.match(/^(\s*)/)[0].length:0;if(e&&/<!\[CDATA\[/.test(b))return
0;f&&/^<\//.test(b)&&(f=f.prev);while(f&&!f.startOfLine)f=f.prev;return
f?f.indent+c:0},compareStates:function(a,b){if(a.indented!=b.indented||
a.tokenize!=b.tokenize)return!1;for(var
c=a.context,d=b.context;;c=c.prev,d=d.prev){if(!c||!d)return
c==d;if(c.tagName!=d.tagName)return!1}},electricChars:"/"}}),CodeMirror.defineMIME("application/xml","xml"),CodeMirror.defineMIME("text/html",{name:"xml",htmlMode:!0}),define("cm-xml",function(){}),CodeMirror.defineMode("htmlmixed",function(a,b){function
f(a,b){var f=c.token(a,b.htmlState);return
f=="tag"&&a.current()==">"&&b.htmlState.context&&(/^script$/i.test(b.htmlState.context.tagName)?(b.token=h,b.localState=d.startState(c.indent(b.htmlState,"")),b.mode="javascript"):/^style$/i.test(b.htmlState.context.tagName)&&(b.token=i,b.localState=e.startState(c.indent(b.htmlState,"")),b.mode="css")),f}function
g(a,b,c){var d=a.current(),e=d.search(b);return
e>-1&&a.backUp(d.length-e),c}function h(a,b){return
a.match(/^<\/\s*script\s*>/i,!1)?(b.token=f,b.curState=null,b.mode="html",f(a,b)):g(a,/<\/\s*script\s*>/,d.token(a,b.localState))}function
i(a,b){return
a.match(/^<\/\s*style\s*>/i,!1)?(b.token=f,b.localState=null,b.mode="html",f(a,b)):g(a,/<\/\s*style\s*>/,e.token(a,b.localState))}var
c=CodeMirror.getMode(a,{name:"xml",htmlMode:!0}),d=CodeMirror.getMode(a,"javascript"),e=CodeMirror.getMode(a,"css");return{startState:function(){var
a=c.startState();return{token:f,localState:null,mode:"html",htmlState:a}},copyState:function(a){if(a.localState)var
b=CodeMirror.copyState(a.token==i?e:d,a.localState);return{token:a.token,localState:b,mode:a.mode,htmlState:CodeMirror.copyState(c,a.htmlState)}},token:function(a,b){return
b.token(a,b)},indent:function(a,b){return a.token==f||
/^\s*<\//.test(b)?c.indent(a.htmlState,b):a.token==h?d.indent(a.localState,b):e.indent(a.localState,b)},compareStates:function(a,b){return
c.compareStates(a.htmlState,b.htmlState)},electricChars:"/{}:"}}),CodeMirror.defineMIME("text/html","htmlmixed"),define("cm-html",function(){}),define("view/StructureView",["text!template/structure.html","order!cm","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a){function
i(){q(),v(),F()}function j(){t(!0)}function k(){t(!1)}function
l(){b!="null"&&e==""&&(e=setInterval(n,Vosao.AUTOSAVE_TIMEOUT*1e3))}function
m(){e!=""&&(clearInterval(e),e="")}function n(){t(!0)}function o(){return
$("#autosave:checked").length>0}function p(){o()?l():m()}function
q(){d=b!="",d||
(c=null,r()),Vosao.jsonrpc.structureService.getById(function(a){c=a,r()},b)}function
r(){c!=null?($("#title").val(c.title),$("#xmlContent").val(c.content)):($("#title").val(""),$("#xmlContent").val("")),h=CodeMirror.fromTextArea(document.getElementById("xmlContent"),{lineNumbers:!0,theme:"eclipse",mode:"xml"}),h.focus(),$(h.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid silver"),h.refresh()}function
s(){location.href="#structures"}function t(a){h.save();var
c=Vosao.javaMap({id:b,title:$("#title").val(),content:$("#xmlContent").val()});Vosao.jsonrpc.structureService.save(function(c){c.result=="success"?(Vosao.info(messages("structure.success_save")),a?d|
|
(b=c.message,q(),F()):location.href="#structures"):Vosao.showServiceMessages(c)},c)}function
u(){var
a=$("#fieldName").val(),b=$("#fieldTitle").val();a==""&&$("#fieldName").val(Vosao.nameFromTitle(b))}function
v(){d&&Vosao.jsonrpc.structureService.getFields(function(a){f=a.list,x()},b)}function
w(a){return
a=="TEXT"?messages("text"):a=="TEXTAREA"?messages("text_area"):a=="RESOURCE"?messages("resource_link"):a=="DATE"?messages("date"):"Unknown"}function
x(){var a='<table
class="form-table"><tr><th>'+messages("title")+"</th><th>"+messages("structure.tag_name")+"</th><th>"+messages("type")+"</th><th></th></tr>";$.each(f,function(b,c){a+="<tr><td>"+c.title+"</td>"+"<td>"+
c.name+"</td>"+"<td>"+w(c.type)+"</td>"+'<td><a
href="#" onclick="Vosao.app.structureView.onFieldRemove('+b+')"><img
src="/static/images/02_x.png"/></a> '+'<a href="#"
onclick="Vosao.app.structureView.onFieldUp('+b+')"><img
src="/static/images/02_up.png"/></a> '+'<a href="#"
onclick="Vosao.app.structureView.onFieldDown('+b+')"><img
src="/static/images/02_down.png"/></a> '+"</td></tr>"}),$("#fields").html(a+"</table>"),$("#fields
tr:even").addClass("even")}function y(a){var b=!0;return
a.name==""?(Vosao.error(messages("structure.field_tag_name_empty")),b=!1):$(f,function(c,d){
d.name==
a.name&&(Vosao.error(messages("structure.field_exists")),b=!1)}),Vosao.isValidIdentifier(
a.name)|
|
(Vosao.error(messages("structure.field_tag_name")+" "+
a.name+" "+messages("structure.must_valid_identifier")),b=!1),a.title==""&&(Vosao.error(messages("structure.field_title_empty")),b=!1),b}function
z(){$("#fieldTitle").focus();var
a={title:Vosao.strip($("#fieldTitle").val()),name:Vosao.strip($("#fieldName").val()),type:$("#fieldType").val()};y(a)&&(f.push(a),x(),$("#fieldTitle").val("").focus(),$("#fieldName").val(""),Vosao.info(messages("structure.field_success_add")))}function
A(a,b){var c=f[a];f[a]=f[b],f[b]=c}function B(){var
a="<structure>\n";return $.each(f,function(b,c){a+=" <field>\n
<title>"+c.title+"</title>\n"+" <name>"+
c.name+"</name>\n"+"
<type>"+c.type+"</type>\n </field>\n"}),a+"</structure>"}function
C(){E(!1)}function D(){E(!0)}function E(a){h.setValue(B()),t(a)}function
F(){d&&Vosao.jsonrpc.structureTemplateService.selectByStructure(function(a){g=a.list,G()},b)}function
G(){var a='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th>"+"<th>"+messages("name")+"</th>"+"<th>"+messages("type")+"</th></tr>";$.each(g,function(b,c){a+='<tr><td><input
type="checkbox" value="'+
c.id+'"></td>'+'<td><a
href="#structureTemplate/'+
c.id+'">'+c.title+"</a></td>"+"<td>"+
c.name+"</td>"+"<td>"+H(c.typeString)+"</td></tr>"}),$("#templates").html(a+"</table>"),$("#templates
tr:even").addClass("even")}function H(a){return
a=="VELOCITY"?"Velocity":a=="XSLT"?"XSLT":"Undefined"}function
I(){location.href="#addStructureTemplate/"+b}function J(){var a=new
Array;$("#templates
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.structureTemplateService.remove(function(a){Vosao.showServiceMessages(a),F()},Vosao.javaList(a))}function
K(a,b){b.index==1?(o()&&l(),h&&(h.focus(),$(h.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid silver"),h.refresh())):m()}console.log("Loading
StructureView.js");var b="",c="",d=!1,e="",f=[],g=[],h=null;return
Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css"],el:$("#content"),render:function(){Vosao.addCSSFiles(this.css),this.el.html(_.template(a,{messages:messages})),i(),Vosao.selectTabFromQueryParam($("#tabs").tabs({show:K})),$("#autosave").change(p),$("#saveContinueXMLButton").click(j),$("#saveXMLButton").click(k),$("#cancelXMLButton").click(s),$("#saveContinueButton").click(D),$("#saveButton").click(C),$("#cancelButton").click(s),$("#addField").click(z),$("#addTemplateButton").click(I),$("#deleteTemplateButton").click(J),$("#fieldTitle").change(u)},setId:function(a){b=a,d=b!="",d|
|
(c="",f=[],g=[])},remove:function(){this.el.html(""),Vosao.removeCSSFiles(this.css)},onFieldUp:function(a){if(a==0)return;A(a,a-1),x()},onFieldDown:function(a){if(a+1<f.length)A(a,a+1),x();else
return},onFieldRemove:function(a){confirm(messages("are_you_sure"))&&(f.splice(a,1),x())}})}),define("view/StructureTemplateView",["text!template/structureTemplate.html","order!cm","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a){function
i(){if(e)return;var
a=$("#name").val(),b=$("#title").val();a==""&&$("#name").val(Vosao.urlFromTitle(b))}function
j(){t(!0)}function k(){t(!1)}function
l(){b!="null"&&f==""&&(f=setInterval(n,Vosao.AUTOSAVE_TIMEOUT*1e3))}function
m(){f!=""&&(clearInterval(f),f="")}function n(){t(!0)}function
o(){$("#autosave:checked").length>0?l():m()}function
p(){e=b!="",e?Vosao.jsonrpc.structureTemplateService.getById(function(a){d=a,e&&(c=d.structureId),q()},b):(d=null,q())}function
q(){d!=null?($("#name").val(
d.name),$("#title").val(d.title),$("#vcontent").val(d.content),$("#headContent").val(d.headContent)):($("#name").val(""),$("#title").val(""),$("#vcontent").val(""),$("#headContent").val("")),g?g.refresh():g=r("vcontent"),h?h.refresh():h=r("headContent")}function
r(a){var
b=CodeMirror.fromTextArea(document.getElementById(a),{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"});return
$(b.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid silver"),b}function s(){location.href="#structure/"+c}function
t(a){g&&g.save(),h&&h.save();var
d=Vosao.javaMap({id:b,name:Vosao.strip($("#name").val()),title:Vosao.strip($("#title").val()),type:"VELOCITY",structureId:String(c),content:$("#vcontent").val(),headContent:$("#headContent").val()});Vosao.jsonrpc.structureTemplateService.save(function(c){c.result=="success"?(Vosao.info(messages("structureTemplate.success_save")),a?e|
|
(b=c.message,p()):s()):Vosao.showServiceMessages(c)},d)}console.log("Loading
StructureTemplateView.js");var
b="",c="",d="",e=b!="",f="",g=null,h=null;return
Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css"],el:$("#content"),render:function(){Vosao.addCSSFiles(this.css),g=null,h=null,this.el.html(_.template(a,{messages:messages})),p(),$("#tabs").tabs(),$("#autosave").change(o),$("#saveContinueButton").click(j),$("#saveButton").click(k),$("#cancelButton").click(s),$("#title").change(i)},remove:function(){this.el.html(""),Vosao.removeCSSFiles(this.css)},create:function(a){b="",c=a,d="",e=b!=""},edit:function(a){b=a,c="",d="",e=b!=""}})}),define("view/TemplateView",["text!template/template.html","jquery.treeview","order!cm","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a){function
g(){n()}function h(){q(!0)}function i(){q(!1)}function
j(){b!="null"&&e==""&&(e=setInterval(l,Vosao.AUTOSAVE_TIMEOUT*1e3))}function
k(){e!=""&&(clearInterval(e),e="")}function l(){f&&f.save();var
a=$("#tcontent").val();Vosao.jsonrpc.templateService.updateContent(function(a){if(a.result=="success"){var
b=new Date;Vosao.info(a.message+" "+b)}else
Vosao.error(a.message)},b,a)}function
m(){$("#autosave:checked").length>0?j():k()}function n(){d=b!="",d||
(c=null,o()),Vosao.jsonrpc.templateService.getTemplate(function(a){c=a,o()},b)}function
o(){c!=null?($("#title").val(c.title),$("#url").val(c.url),$("#tcontent").val(c.content)):($("#title").val(""),$("#url").val(""),$("#tcontent").val("")),f=CodeMirror.fromTextArea(document.getElementById("tcontent"),{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"}),f.focus(),$(f.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid silver"),f.refresh()}function p(){location.href="#templates"}function
q(a){f&&f.save();var
c=Vosao.javaMap({id:b,title:$("#title").val(),url:$("#url").val(),content:$("#tcontent").val()});Vosao.jsonrpc.templateService.saveTemplate(function(c){c.result=="success"?(Vosao.info(messages("template.success_save")),a?d|
|
(b=c.message,n()):location.href="#templates"):Vosao.showServiceMessages(c)},c)}function
r(){$.cookie("folderReturnPath","#template/"+
c.id,{path:"/",expires:10}),Vosao.jsonrpc.folderService.createFolderByPath(function(a){location.href="#folder/"+
a.id},"/theme/"+c.url)}console.log("Loading
TemplateView.js");var b="",c="",d=b!="",e="",f=null;return
Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css","/static/css/jquery.treeview.css"],el:$("#content"),render:function(){Vosao.addCSSFiles(this.css),this.el.html(_.template(a,{messages:messages})),g(),$("#autosave").change(m),$("#saveContinueButton").click(h),$("#templateForm").submit(function(){return
i(),!1}),$("#cancelButton").click(p),$("#resources").click(r)},remove:function(){this.el.html(""),Vosao.removeCSSFiles(this.css)},create:function(){b="",c="",d=b!=""},edit:function(a){b=a,c="",d=b!=""}})}),define("view/page/ContentView",["text!template/page/content.html","view/page/context","view/page/version","view/page/breadcrumbs","jquery.form","order!cm","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a,b,c,d){function
n(){b.loadData=o,b.editMode=b.pageId!="",$("#restore-dialog").dialog({width:400,autoOpen:!1}),Vosao.initJSONRpc(o),$("a.button").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}),c.initVersionDialog(),$("#autosave").change(A),$("#language").change(D),$("#saveContinueContentButton").click(function(){t(!0,!1)}),$("#pageForm").submit(function(){return
t(!1,!1),!1}),$("#contentPreviewButton").click(B),$("#approveButton").click(F),$("#restoreButton").click(N),$("#contentCancelButton").click(C),$("ul.ui-tabs-nav
li:nth-child(2)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default"),$("#restoreForm").submit(function(){return
P(),!1}),$("#restoreCancelButton").click(O),$("#resetCacheButton").click(S),$("#file-upload").dialog({width:400,autoOpen:!1}),$("#upload").ajaxForm({beforeSubmit:X,success:W}),$("#fileUploadCancelButton").click(V)}function
o(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,m=!b.pageRequest.config.enableCkeditor|
|b.pageRequest.page.wikiProcessing||!b.page.enableCkeditor;var
c=b.pageRequest.page.wikiProcessing?' <a
href="
http://en.wikipedia.org/wiki/Help:Wiki_markup" target="blank">Wiki
syntax</a>':"";m?$("#ckedit").text(messages("page.edit_ckeditor")).click(R):$("#ckedit").text(messages("page.edit_textarea")).click(Q),$("#editorButtons").append(c),r(),q(),d.breadcrumbsShow()},b.pageId,b.pageParentUrl)}function
p(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,b.editMode=b.pageId!=null,q()},b.pageId,b.pageParentUrl)}function
q(){b.pageId=
b.page.id==null?"":String(
b.page.id),b.pageParentUrl=b.page.parentUrl,c.loadVersions(),K(),s(),G(),E()}function
r(){var a=b.pageRequest.languages;g={};var
c="";$.each(a.list,function(a,b){g[b.code]=b,c+='<option
value="'+b.code+'" '+">"+b.title+"</option>"}),$("#language").html(c)}function
s(){var a=b.pageParentUrl=="/"?"":"/";b.page.parentUrl==""||
b.page.parentUrl==null?($("#friendlyUrl").hide(),$("#friendlyUrl").val(""),$("#parentFriendlyUrl").html("/")):($("#friendlyUrl").show(),$("#friendlyUrl").val(b.page.pageFriendlyURL),$("#parentFriendlyUrl").html(b.page.parentFriendlyURL+a)),b.pageRequest.children.list.length>0&&($("#parentFriendlyUrl").hide(),$("#friendlyUrl").hide(),$("#friendlyUrlSpan").html(b.page.friendlyURL)),$("#pageState").html(b.page.stateString=="EDIT"?messages("edit"):messages("approved")),$("#pageCreateDate").html(b.page.createDateTimeString),$("#pageModDate").html(b.page.modDateTimeString),$("#pageCreateUser").html(b.page.createUserEmail),$("#pageModUser").html(b.page.modUserEmail),
b.page.id!=null?($(".pageTab").show(),$(".childrenTab").show(),$(".commentsTab").show(),$(".securityTab").show(),$("#pagePreview").show(),$("#versions").show()):($(".pageTab").hide(),$(".childrenTab").hide(),$(".commentsTab").hide(),$(".securityTab").hide(),$("#pagePreview").hide(),$("#versions").hide()),H(),T()}function
t(a,c){var
d=Vosao.javaMap({id:b.pageId,friendlyUrl:$("#parentFriendlyUrl").text()+$("#friendlyUrl").val(),titles:M(),content:x(),approve:String($("#approveOnPageSave:checked,
#approveOnContentSave:checked").size()>0),languageCode:b.currentLanguage});Vosao.jsonrpc.pageService.savePage(function(b){b.result=="success"?(Vosao.info(messages("page.success_save")),a?c|
|p():location.href="#pages"):Vosao.showServiceMessages(b)},d)}function
u(){b.editMode&&j==""&&(j=setInterval(v,Vosao.AUTOSAVE_TIMEOUT*1e3))}function
v(){t(!0,!0)}function w(){j!=""&&(clearInterval(j),j="")}function
x(){if(!b.editMode)return"";if(b.page.simple)return
m?(h.save(),$("#pcontent").val()):h.getData();if(b.page.structured){var
a='<?xml version="1.0" encoding="utf-8"?>\n<content>\n';return
$.each(b.pageRequest.structureFields.list,function(b,c){if(c.type=="TEXT"||
c.type=="DATE"||
c.type=="RESOURCE")a+="<"+
c.name+"><![CDATA["+$("#field"+
c.name).val()+"]]></"+
c.name+">\n";if(c.type=="TEXTAREA"){var
d="";m?(k[
c.name].save(),d=$("#field"+
c.name).val()):d=k[
c.name].getData(),a+="<"+
c.name+"><![CDATA["+d.replace("]]>","]]]")+"]]></"+
c.name+">\n"}}),a+"</content>"}}function
y(a){a==null&&(a=""),b.page.simple&&(m?h.setValue(a):h.setData(a));if(b.page.structured){var
c=$.xmlDOM(a,function(b){a&&Vosao.error(messages("page.parsing_error")+" "+b)});$.each(b.pageRequest.structureFields.list,function(a,b){(b.type=="TEXT"|
|b.type=="DATE"||
b.type=="RESOURCE")&&$(c).find(
b.name).each(function(){$("#field"+
b.name).val($(this).text())}),b.type=="TEXTAREA"&&$(c).find(
b.name).each(function(){m?k[
b.name].setValue($(this).text()):k[
b.name].setData($(this).text())})})}}function
z(){return e[b.currentLanguage]!=x()}function
A(){$("#autosave:checked").length>0?u():w()}function B(){var
a=b.page.friendlyURL+"?language="+b.currentLanguage+"&version="+b.page.version;window.open(a,"preview")}function
C(){location.href="#pages"}function D(){!z()||
confirm(messages("are_you_sure_changes_lost"))?(b.currentLanguage=$("#language").val(),e[b.currentLanguage]==undefined&&(e[b.currentLanguage]=""),y(e[b.currentLanguage]),$("#titleLocal").val(L())):$("#language").val(b.currentLanguage)}function
E(){if(b.pageRequest.contents!=null){var
a=b.pageRequest.contents;e={},$.each(a.list,function(a,b){e[b.languageCode]=b.content}),b.currentLanguage=b.pageRequest.config.defaultLanguage,$("#language").val(b.currentLanguage),y(e[b.currentLanguage]),$("#titleLocal").val(Vosao.unescapeHtml(L()))}else
y("")}function
F(){Vosao.jsonrpc.pageService.approve(function(a){Vosao.showServiceMessages(a),o()},b.pageId)}function
G(){var
a=b.pageRequest.pagePermission;a.publishGranted?($("#approveButton").show(),$("#approveOnPageSaveDiv").show(),$("#approveOnContentSaveDiv").show()):($("#approveButton").hide(),$("#approveOnPageSaveDiv").hide(),$("#approveOnContentSaveDiv").hide()),a.changeGranted?($("#pageSaveButton").show(),$("#saveContinueContentButton").show(),$("#saveContentButton").show()):($("#pageSaveButton").hide(),$("#saveContinueContentButton").hide(),$("#saveContentButton").hide()),a.admin&&b.editMode?$(".securityTab").show():$(".securityTab").hide(),T()}function
H(){$.each(CKEDITOR.instances,function(a,b){CKEDITOR.remove(b)}),b.page.simple&&($("#page-content").html('<textarea
id="pcontent" rows="20"
cols="80"></textarea>'),m?(h=CodeMirror.fromTextArea(document.getElementById("pcontent"),{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"}),h.focus(),$(h.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid
silver")):(h=CKEDITOR.replace("pcontent",{height:350,width:"auto",filebrowserUploadUrl:"/cms/upload",filebrowserBrowseUrl:"fileBrowser.html",toolbar:"Vosao"}),I()));if(b.page.structured){var
a="";$.each(b.pageRequest.structureFields.list,function(b,c){a+='<div><div
class="label">'+c.title+":</div>",c.type=="TEXT"&&(a+='<input
id="field'+
c.name+'" size="30"/>'),c.type=="TEXTAREA"&&(a+='<textarea
cols="80" rows="20"
id="field'+
c.name+'"></textarea>'),c.type=="DATE"&&(a+='<input
id="field'+
c.name+'" class="datepicker" size="8"
/>'),c.type=="RESOURCE"&&(a+='<input id="field'+
c.name+'" size="60"/> '+'<a
class="browse" data-name="field'+
c.name+'">'+messages("browse")+"</a>"+' <a
class="upload"
data-name="field'+
c.name+'">'+messages("upload")+"</a>"),a+="</div>"}),$("#page-content").html(a),$("#page-content .browse").click(function(){I()}),$("#page-content .upload").click(function(){U($(this).attr("data-name"))}),$("#page-content").css("float","left"),$(".datepicker").datepicker({dateFormat:"dd.mm.yy"}),k={},$.each(b.pageRequest.structureFields.list,function(a,b){if(b.type=="TEXTAREA"&&!k[
b.name])if(m){var
c=document.getElementById("field"+
b.name);k[
b.name]=CodeMirror.fromTextArea(c,{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"}),$(k[
b.name].getScrollerElement()).css("width",$("#pageForm .buttons").width()+20+"px").css("border","1px
solid silver")}else
k[
b.name]=CKEDITOR.replace("field"+
b.name,{height:150,width:"auto",filebrowserUploadUrl:"/cms/upload",filebrowserBrowseUrl:"fileBrowser.html",toolbar:"Vosao"}),I()})}}function
I(){$.cookie("fileBrowserPath","/page"+b.page.friendlyURL,{path:"/",expires:10}),window.open("fileBrowser.html?mode=page")}function
J(a){$("#"+l).val(a)}function K(){f=b.page.titles.map}function L(){return
f[b.currentLanguage]==undefined?"":f[b.currentLanguage]}function
M(){if(!b.editMode)return"{"+Vosao.ENGLISH_CODE+':"'+Vosao.escapeHtml($("#title").val())+'"}';f[b.currentLanguage]=$("#titleLocal").val();var
a="{",c=0;return $.each(f,function(b,d){var
e=c++==0?"":",";a+=e+b+':"'+Vosao.escapeHtml(d)+'"'}),a+"}"}function
N(){$("#restore-dialog").dialog("open")}function
O(){$("#restore-dialog").dialog("close")}function P(){var
a=$("input[name=page]:checked").val();Vosao.jsonrpc.pageService.restore(function(a){Vosao.showServiceMessages(a),a.result=="success"&&($("#restore-dialog").dialog("close"),o())},b.pageId,a,b.currentLanguage)}function
Q(){m=!0,$("#ckedit").text(messages("page.edit_ckeditor")).click(R),H(),y(e[b.currentLanguage])}function
R(){m=!1,$("#ckedit").text(messages("page.edit_textarea")).click(Q),H(),y(e[b.currentLanguage])}function
S(){b.editMode&&Vosao.jsonrpc.pageService.resetCache(function(a){Vosao.showServiceMessages(a)},b.page.friendlyURL)}function
T(){b.page.friendlyURL.endsWith("/_default")&&(b.isDefault=!0,$(".securityTab, .commentsTab, .childrenTab,
#approveOnContentSaveDiv, #contentPreviewButton, #versions,
#resetCacheButton, #restoreButton, #approveButton,
#friendlyUrlDiv").hide())}function U(a){l=a,$("#file-upload
input[name=folderId]").val(b.pageRequest.folderId),$("#file-upload").dialog("open")}function
V(){$("#file-upload").dialog("close")}function W(a){var
b=a.split("::"),c=b[1],d=b[2];c=="success"?Vosao.info(messages("folder.file_success_upload")):Vosao.error(messages("folder.error_during_upload")+" "+d),$("#file-upload").dialog("close")}function
X(a,c,d){var e=Vosao.getFileName($("#file-upload
input[name=uploadFile]").val()),f="/file/page"+b.page.friendlyURL+"/"+e;$("#"+l).val(f)}console.log("Loading
ContentView.js");var
e=null,f=null,g=null,h=null,i="",j="",k=null,l="",m=!1;return
Backbone.View.extend({el:$("#tab-1"),tmpl:_.template(a),render:function(){this.el=$("#tab-1"),this.el.html(this.tmpl({messages:messages})),n()},remove:function(){this.el.html(""),$("#restore-dialog,
#file-upload").dialog("destroy").remove()},setResource:function(a){J(a)}})}),define("view/page/PageRouter",["view/page/context","view/page/ContentView","view/page/IndexView","view/page/ChildrenView","view/page/CommentsView","view/page/SecurityView","view/page/AttributesView"],function(a,b,c,d,e,f,g){return
console.log("Loading
PageRouter.js"),Backbone.Router.extend({pageView:null,currentView:null,contentView:new
b,indexView:new c,childrenView:new d,commentsView:new e,securityView:new
f,attributesView:new
g,initialize:function(a){this.pageView=a.view},show:function(a){Vosao.app.currentView!=this.pageView&&Vosao.app.show(this.pageView),this.currentView&&(this.currentView.remove(),this.currentView=null),$("ul.ui-tabs-nav
li").removeClass("ui-state-active").removeClass("ui-tabs-selected").addClass("ui-state-default"),a.render(),this.currentView=a},routes:{"page/children/:id":"children","page/comments/:id":"comments","page/security/:id":"security","page/attributes/:id":"attributes","page/resources/:id":"resources"},showCmd:function(b){b=="editContent"&&this.editContent(a.pageId),b=="editPage"&&this.editPage(a.pageId)},editContent:function(b){a.pageId=b,this.show(this.contentView)},editPage:function(b){a.pageId=b,this.show(this.indexView)},children:function(b){a.pageId=b,this.show(this.childrenView)},comments:function(b){a.pageId=b,this.show(this.commentsView)},security:function(b){a.pageId=b,this.show(this.securityView)},attributes:function(b){a.pageId=b,this.show(this.attributesView)},resources:function(b){Vosao.jsonrpc.pageService.getPageRequest(function(c){a.pageRequest=c,a.pageId=b,
a.page=
a.pageRequest.page,Vosao.jsonrpc.folderService.createFolderByPath(function(b){jQuery.cookie("folderReturnPath","#page/content/"+a.pageId,{path:"/",expires:10}),location.href="#folder/"+
b.id},"/page"+a.page.friendlyURL)},b,"")}})}),define("view/page/PageView",["text!template/page/page.html","view/page/PageRouter","view/page/context"],function(a,b,c){return
console.log("Loading
PageView.js"),Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css","/static/css/page.css"],el:$("#content"),tmpl:_.template(a),viewCmd:null,router:null,initialize:function(){this.router=new
b({view:this})},render:function(){Vosao.addCSSFiles(this.css),this.el.html(this.tmpl({messages:messages,id:c.pageId})),$("#version-dialog").dialog({width:400,autoOpen:!1}),this.router.showCmd(this.viewCmd)},remove:function(){this.router.currentView&&this.router.currentView.remove(),$("#version-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFiles(this.css)},editContent:function(a){c.pageId=a,this.viewCmd="editContent"},editPage:function(a){c.pageId=a,this.viewCmd="editPage"},setResource:function(a){this.router.contentView.setResource(a)}})}),define("view/plugins/FormsView",["text!template/plugins/forms.html","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a){function
e(){$("#tabs").tabs({show:f}),Vosao.initJSONRpc(g),$("#addButton").click(i),$("#deleteButton").click(j),$("#restoreFormTemplateLink").click(m),$("#restoreFormLetterLink").click(n),$("#saveButton").click(l)}function
f(a,b){b.index==1&&(c.refresh(),d.refresh())}function g(){h(),k()}function
h(){Vosao.jsonrpc.formService.select(function(a){var b='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th><th>"+messages("name")+"</th><th>"+messages("email")+"</th></tr>";$.each(a.list,function(a,c){b+='<tr><td><input
type="checkbox" value="'+
c.id+'"/></td><td><a
href="#plugins/form/'+
c.id+'">'+c.title+"</a></td><td>"+
c.name+"</td><td>"+c.email+"</td></tr>"}),$("#forms").html(b+"</table>"),$("#forms
tr:even").addClass("even")})}function
i(){location.href="#plugins/form"}function j(){var a=[];$("#forms
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.formService.deleteForm(function(a){Vosao.showServiceMessages(a),h()},Vosao.javaList(a))}function
k(){Vosao.jsonrpc.formService.getFormConfig(function(a){b=a,$("#formTemplate").val(a.formTemplate),$("#letterTemplate").val(a.letterTemplate),c=CodeMirror.fromTextArea(document.getElementById("formTemplate"),{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"}),$(c.getScrollerElement()).css("border","1px
solid
silver"),d=CodeMirror.fromTextArea(document.getElementById("letterTemplate"),{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"}),$(d.getScrollerElement()).css("border","1px
solid silver")})}function l(){c.save(),d.save();var
a=Vosao.javaMap({formTemplate:$("#formTemplate").val(),letterTemplate:$("#letterTemplate").val()});Vosao.jsonrpc.formService.saveFormConfig(function(a){Vosao.showServiceMessages(a)},a)}function
m(){Vosao.jsonrpc.formService.restoreFormTemplate(function(a){Vosao.showServiceMessages(a),$(".CodeMirror").remove(),k()})}function
n(){Vosao.jsonrpc.formService.restoreFormLetter(function(a){Vosao.showServiceMessages(a),$(".CodeMirror").remove(),k()})}console.log("Loading
FormsView.js");var b="",c=null,d=null;return
Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css"],el:$("#content"),render:function(){Vosao.addCSSFiles(this.css),this.el.html(_.template(a,{messages:messages})),e()},remove:function(){this.el.html(""),Vosao.removeCSSFiles(this.css)}})}),define("view/config/CommentsView",["text!template/config/comments.html","order!cm","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a){function
d(){Vosao.initJSONRpc(e),$("#commentsForm").submit(function(){return
h(),!1}),$("#restoreButton").click(i),$("ul.ui-tabs-nav
li:nth-child(2)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
e(){f()}function
f(){Vosao.jsonrpc.configService.getConfig(function(a){b=a,g()})}function
g(){$("#commentsEmail").val(b.commentsEmail),$("#commentsTemplate").val(b.commentsTemplate),c=CodeMirror.fromTextArea(document.getElementById("commentsTemplate"),{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"}),c.focus(),$(c.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid silver"),c.refresh()}function h(){c.save();var
a=Vosao.javaMap({commentsEmail:$("#commentsEmail").val(),commentsTemplate:$("#commentsTemplate").val()});Vosao.jsonrpc.configService.saveConfig(function(a){Vosao.showServiceMessages(a)},a)}function
i(){Vosao.jsonrpc.configService.restoreCommentsTemplate(function(a){Vosao.showServiceMessages(a),f()})}console.log("Loading
CommentsView.js");var b="",c=null;return
Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css"],el:$("#tab-1"),render:function(){Vosao.addCSSFiles(this.css),this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),d()},remove:function(){this.el.html(""),Vosao.removeCSSFiles(this.css)}})}),define("view/config/ConfigRouter",["view/config/IndexView","view/config/CommentsView","view/config/LanguagesView","view/config/MessagesView","view/config/UsersView","view/config/GroupsView","view/config/TagsView","view/config/AttributesView"],function(a,b,c,d,e,f,g,h){return
console.log("Loading
ConfigRouter.js"),Backbone.Router.extend({configView:null,currentView:null,indexView:new
a,commentsView:new b,languagesView:new c,messagesView:new d,usersView:new
e,groupsView:new f,tagsView:new g,attributesView:new
h,initialize:function(a){this.configView=a.view},show:function(a){Vosao.app.currentView!=this.configView&&Vosao.app.show(this.configView),this.currentView&&(this.currentView.remove(),this.currentView=null),$("ul.ui-tabs-nav
li").removeClass("ui-state-active").removeClass("ui-tabs-selected").addClass("ui-state-default"),a.render(),this.currentView=a},routes:{"config/comments":"comments","config/languages":"languages","config/messages":"messages","config/users":"users","config/groups":"groups","config/tags":"tags","config/attributes":"attributes"},index:function(){this.show(this.indexView)},comments:function(){this.show(this.commentsView)},languages:function(){this.show(this.languagesView)},messages:function(){this.show(this.messagesView)},users:function(){this.show(this.usersView)},groups:function(){this.show(this.groupsView)},tags:function(){this.show(this.tagsView)},attributes:function(){this.show(this.attributesView)}})}),define("view/config/ConfigView",["text!template/config/config.html","view/config/ConfigRouter","jquery.form"],function(a,b){return
console.log("Loading
ConfigView.js"),Backbone.View.extend({css:"/static/css/config.css",el:$("#content"),tmpl:_.template(a),viewCmd:null,router:null,initialize:function(){this.router=new
b({view:this})},render:function(){Vosao.addCSSFile(this.css),this.el.html(this.tmpl({messages:messages})),$("#import-dialog").dialog({width:400,autoOpen:!1}),$("#export-dialog").dialog({width:400,autoOpen:!1}),$("#stat-dialog").dialog({width:400,autoOpen:!1}),$("#afterUpload-dialog").dialog({autoOpen:!1}),this.router.index()},remove:function(){this.router.currentView&&this.router.currentView.remove(),$("#import-dialog").dialog("destroy").remove(),$("#export-dialog").dialog("destroy").remove(),$("#stat-dialog").dialog("destroy").remove(),$("#afterUpload-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)}})}),define("view/FileView",["text!template/file.html","order!cm","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a){function
h(){e=b!="",$("#tabs").tabs({show:i}),Vosao.initJSONRpc(n),$("#fileForm").submit(function(){return
q(),!1}),$("#cancelButton").click(r),$("#autosave").change(m),$("#contentForm").submit(function(){return
l(),!1}),$("#contentCancelButton").click(r)}function
i(a,b){b.index==1?(j(),g&&(g.focus(),$(g.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid silver"),g.refresh())):k()}function
j(){b!="null"&&$("#autosave:checked").length>0&&f==""&&(f=setInterval(l,Vosao.AUTOSAVE_TIMEOUT*1e3))}function
k(){f!=""&&(clearInterval(f),f="")}function l(){g&&g.save();var
a=$("textarea").val();Vosao.jsonrpc.fileService.updateContent(function(a){if(a.result=="success"){var
b=new Date;Vosao.info(a.message+" "+b)}else
Vosao.error(a.message)},b,a)}function
m(){$("#autosave:checked").length>0?j():k()}function
n(){Vosao.jsonrpc.fileService.getFile(function(a){d=a,e&&(c=d.folderId),p()},b)}function
o(a){var
b="html";d.mimeType=="text/css"&&(b="css"),d.mimeType=="text/xml"&&(b="xml"),d.mimeType=="text/html"&&(b="htmlmixed"),d.mimeType.indexOf("javascript")!=-1&&(b="javascript"),g=CodeMirror.fromTextArea(document.getElementById("fileContent"),{lineNumbers:!0,theme:"eclipse",mode:b})}function
p(){e?($("#filename").html(
d.name),$("#title").val(d.title),$("#name").val(
d.name),$("#fileEditDiv").show(),$("#mimeType").html(d.mimeType),$("#size").html(d.size),$("#fileLink").html(d.link),$("#download").html('<a
href="'+d.link+'">'+messages("download")+"</a>"),d.textFile?($(".contentTab").show(),$("#fileContent").val(d.content),o(d.mimetype)):$(".contentTab").hide(),d.imageFile?$("#imageContent").html('<img
src="'+d.link+'"
/>'):$("#imageContent").html("")):($("#filename").html(""),$("#title").val(""),$("#name").val(""),$("#fileEditDiv").hide(),$(".contentTab").hide(),$("#imageContent").html(""))}function
q(){var
a=Vosao.javaMap({id:b,folderId:String(c),title:$("#title").val(),name:$("#name").val()});Vosao.jsonrpc.fileService.saveFile(function(a){Vosao.showServiceMessages(a),a.result=="success"&&(location.href="#file/"+a.data)},a)}function
r(){location.href="#folder/"+c}console.log("Loading FileView.js");var
b=null,c=null,d="",e=b!="",f="",g=null;return
Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css","/static/css/file.css"],el:$("#content"),tmpl:_.template(a),render:function(){Vosao.addCSSFiles(this.css),this.el.html(this.tmpl({messages:messages})),h()},remove:function(){this.el.html(""),Vosao.removeCSSFiles(this.css)},setFileId:function(a){b=a},setFolderId:function(a){c=a}})}),define("app",["view/LoginView","view/PagesView","view/IndexView","view/StructuresView","view/StructureView","view/StructureTemplateView","view/TemplatesView","view/TemplateView","view/page/PageView","view/ProfileView","view/plugins/PluginsView","view/plugins/PluginView","view/plugins/ConfigView","view/plugins/FormsView","view/plugins/FormView","view/plugins/SeoUrlsView","view/config/ConfigView","view/FoldersView","view/FolderView","view/FileView","text!template/topbar.html","text!template/locale.html"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v){return
Backbone.Router.extend({initialize:function(){this.bind("login",this.login,this),Vosao.loggedIn?this.login():this.currentView=this.loginView.render(),$("#loading").html(messages("loading")),$(".splash").hide(),$("#topbar,
#wrapper").fadeIn()},currentView:null,indexView:new c,loginView:new
a,pagesView:new b,structuresView:new d,structureView:new
e,structureTemplateView:new f,templatesView:new g,templateView:new
h,pageView:new i,profileView:new j,pluginsView:new k,pluginView:new
l,pluginsConfigView:new m,pluginsFormsView:new n,pluginsFormView:new
o,pluginsSeoUrlsView:new p,configView:new q,foldersView:new
r,folderView:new s,fileView:new
t,routes:{index:"index",pages:"pages","page/content/:id":"editContent","page/:id":"editPage",structures:"structures",structure:"addStructure","structure/:id":"editStructure","addStructureTemplate/:id":"addStructureTemplate","structureTemplate/:id":"structureTemplate",profile:"profile",logout:"logout",plugins:"plugins","plugins/config":"pluginsConfig","plugins/forms":"pluginsForms","plugins/form":"pluginsFormNew","plugins/form/:id":"pluginsFormEdit","plugins/seo-urls":"pluginsSeoUrls","plugin/:id":"plugin",templates:"templates",template:"createTemplate","template/:id":"editTemplate",config:"config",folders:"folders","folder/:id":"editFolder","addFolder/:id":"addFolder","file/:id":"editFile","addFile/:id":"addFile"},show:function(a){this.currentView&&(this.currentView.remove(),this.currentView=null),this.currentView=a,$("#content").hide(),a.render(),$("#content").fadeIn()},pages:function(){this.show(this.pagesView)},index:function(){this.show(this.indexView)},structures:function(){this.show(this.structuresView)},addStructure:function(){this.structureView.setId(""),this.show(this.structureView)},editStructure:function(a){this.structureView.setId(a),this.show(this.structureView)},addStructureTemplate:function(a){this.structureTemplateView.create(a),this.show(this.structureTemplateView)},structureTemplate:function(a){this.structureTemplateView.edit(a),this.show(this.structureTemplateView)},templates:function(){this.show(this.templatesView)},createTemplate:function(){this.templateView.create(),this.show(this.templateView)},editTemplate:function(a){this.templateView.edit(a),this.show(this.templateView)},editContent:function(a){this.pageView.editContent(a),this.show(this.pageView)},editPage:function(a){this.pageView.editPage(a),this.show(this.pageView)},profile:function(a){this.show(this.profileView)},plugins:function(){this.show(this.pluginsView)},pluginsConfig:function(){this.show(this.pluginsConfigView)},pluginsForms:function(){this.show(this.pluginsFormsView)},pluginsFormNew:function(){this.pluginsFormView.setId(""),this.show(this.pluginsFormView)},pluginsFormEdit:function(a){this.pluginsFormView.setId(a),this.show(this.pluginsFormView)},pluginsSeoUrls:function(){this.show(this.pluginsSeoUrlsView)},config:function(){this.show(this.configView)},folders:function(){this.show(this.foldersView)},editFolder:function(a){this.folderView.setFolderId(a),this.folderView.setFolderParentId(""),this.show(this.folderView)},addFolder:function(a){this.folderView.setFolderId(""),this.folderView.setFolderParentId(a),this.show(this.folderView)},editFile:function(a){this.fileView.setFileId(a),this.fileView.setFolderId(""),this.show(this.fileView)},addFile:function(a){this.fileView.setFileId(""),this.fileView.setFolderId(a),this.show(this.fileView)},logout:function(){Vosao.jsonrpc.loginFrontService.logout(function(a,b){if(Vosao.serviceFailed(b))return;a.result=="success"?location.href="/":Vosao.showServiceMessages(a)})},plugin:function(a){this.pluginView.setPluginId(a),this.show(this.pluginView)},login:function(){Vosao.jsonrpcInitialized=!1,Vosao.createJSONRpc(),Vosao.initJSONRpcSystem(Vosao.initBackServices),Vosao.initJSONRpc(function(){Vosao.jsonrpc.userService.getLoggedIn(function(a){Vosao.app.user=a;var
b=_.template(v,{messages:messages});$("#topbar").html(_.template(u,{locale:b,Vosao:Vosao,messages:messages})),$("#languageSelect").click(function(){$("#languageDiv").show(),setTimeout(function(){$("#languageDiv").hide()},5e3)}),Backbone.history.start()|
|Vosao.app.navigate("index",!0)})})}})});if($.browser.msie)throw $(".splash
h3").html("We are sorry but Internet Explorer is not
supported."),$(".splash img").attr("src","/static/images/no_ie.jpg"),new
Error("IE is not
supported.");require.config({paths:{text:"libs/text",order:"libs/order","jquery.cookie":"/static/js/jquery.cookie","jquery-ui":"/static/js/jquery-ui","jquery.xmldom":"/static/js/jquery.xmldom","jquery.form":"/static/js/jquery.form","jquery.treeview":"/static/js/jquery.treeview","jquery.jquote2":"libs/jquery.jquote2.min",jsonrpc:"/static/js/jsonrpc",vosao:"/static/js/vosao",cms:"/static/js/cms",i18n:"/i18n","back-services":"/static/js/back-services",cm:"/static/js/codemirror/codemirror","cm-css":"/static/js/codemirror/css","cm-html":"/static/js/codemirror/htmlmixed","cm-js":"/static/js/codemirror/javascript","cm-xml":"/static/js/codemirror/xml"}}),require(["app","jquery.cookie","jquery-ui","jquery.xmldom","jquery.jquote2","order!i18n","order!jsonrpc","order!vosao","order!cms","order!back-services"],function(a){Vosao.initJSONRpc(function(){Vosao.jsonrpc.loginFrontService.getSystemProperties(function(b){Vosao.version=b.map.version,Vosao.fullVersion=b.map.fullVersion,Vosao.loggedIn=b.map.loggedIn==="true",Vosao.app=new
a})})}),define("main",function(){})
+function toJSON(a){function e(){var a;while(c)a=c[b].prev,delete
c[b],c=a}function h(a,i,j){var k=[],l,m,n,o,p;if(a===null||
a===undefined)return"null";if(typeof a=="string")return
escapeJSONString(a);if(typeof a=="number")return a.toString();if(typeof
a=="boolean")return
a.toString();if(a[b]){l=[j],n=i;while(n)m&&m.unshift(n[b].ref),n===a&&(o=n,m=[o[b].ref]),l.unshift(n[b].ref),n=n[b].parent;if(o){if(JSONRpcClient.fixupCircRefs)return
l.shift(),m.shift(),d.push([l,m]),f;throw e(),new Error("circular reference
detected!")}if(JSONRpcClient.fixupDuplicates){m=[a[b].ref],n=a[b].parent;while(n)m.unshift(n[b].ref),n=n[b].parent;return
l.shift(),m.shift(),d.push([l,m]),f}}else
a[b]={parent:i,prev:c,ref:j},c=a;if(a.constructor===Date)return
a.javaClass?'{javaClass: "'+a.javaClass+'",
time: '+a.valueOf()+"}":'{javaClass: "java.util.Date",
time: '+a.valueOf()+"}";if(a.constructor===Array){for(p=0;p<a.length;p++)g=h(a[p],a,p),k.push(g===f?null:g);return"["+k.join(", ")+"]"}for(var
q in a)q!==b&&(a[q]===null||a[q]===undefined?k.push('"'+q+'": null'):typeof
a[q]!="function"&&(g=h(a[q],a,q),g!==f&&k.push(escapeJSONString(q)+": "+g)));return"{"+k.join(", ")+"}"}var
b="$_$jabsorbed$813492",c,d=[],f={},g;return
g=h(a,null,"root"),e(),d.length?{json:g,fixups:d}:{json:g}}function
JSONRpcClient(){var a=0,b,c,d,e,f,g=typeof
arguments[0],h=!0;g==="function"?(this.readyCB=arguments[0],a++):arguments[0]&&g==="object"&&arguments[0].length&&(this._addMethods(arguments[0]),a++,h=!1),this.serverURL=arguments[a],this.user=arguments[a+1],this.pass=arguments[a+2],this.objectID=0,h&&(this._addMethods(["system.listMethods"]),b=JSONRpcClient._makeRequest(this,"system.listMethods",[]),this.readyCB&&(e=this,b.cb=function(a,b){b|
|
e._addMethods(a),e.readyCB(a,b)}),this.readyCB?(JSONRpcClient.async_requests.push(b),JSONRpcClient.kick_async()):(d=JSONRpcClient._sendRequest(this,b),this._addMethods(d)))}function
JSONRPCCallableProxy(){this.objectID=arguments[0],this.javaClass=arguments[1],this.JSONRPCType="CallableReference"}(function(a){a.extend(a.fn,{swapClass:function(a,b){var
c=this.filter("."+a);return
this.filter("."+b).removeClass(b).addClass(a),c.removeClass(a).addClass(b),this},replaceClass:function(a,b){return
this.filter("."+a).removeClass(a).addClass(b).end()},hoverClass:function(b){return
b=b|
|"hover",this.hover(function(){a(this).addClass(b)},function(){a(this).removeClass(b)})},heightToggle:function(a,b){a?this.animate({height:"toggle"},a,b):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"](),b&&b.apply(this,arguments)})},heightHide:function(a,b){a?this.animate({height:"hide"},a,b):(this.hide(),b&&this.each(b))},prepareBranches:function(a){return
a.prerendered||
(this.filter(":last-child:not(ul)").addClass(b.last),this.filter((a.collapsed?"":"."+b.closed)+":not(."+b.open+")").find(">ul").hide()),this.filter(":has(>ul)")},applyClasses:function(c,d){this.filter(":has(>ul):not(:has(>a))").find(">span").unbind("click.treeview").bind("click.treeview",function(b){this==b.target&&d.apply(a(this).next())}).add(a("a",this)).hoverClass();if(!c.prerendered){this.filter(":has(>ul:hidden)").addClass(b.expandable).replaceClass(b.last,b.lastExpandable),this.not(":has(>ul:hidden)").addClass(b.collapsable).replaceClass(b.last,b.lastCollapsable);var
e=this.find("div."+b.hitarea);e.length||(e=this.prepend('<div
class="'+b.hitarea+'"/>').find("div."+b.hitarea)),e.removeClass().addClass(b.hitarea).each(function(){var
b="";a.each(a(this).parent().attr("class").split(" "),function(){b+=this+"-hitarea "}),a(this).addClass(b)})}this.find("div."+b.hitarea).click(d)},treeview:function(c){function
e(c,d){function e(d){return function(){return
f.apply(a("div."+b.hitarea,c).filter(function(){return
d?a(this).parent("."+d).length:!0})),!1}}a("a:eq(0)",d).click(e(b.collapsable)),a("a:eq(1)",d).click(e(b.expandable)),a("a:eq(2)",d).click(e())}function
f(){a(this).parent().find(">.hitarea").swapClass(b.collapsableHitarea,b.expandableHitarea).swapClass(b.lastCollapsableHitarea,b.lastExpandableHitarea).end().swapClass(b.collapsable,b.expandable).swapClass(b.lastCollapsable,b.lastExpandable).find(">ul").heightToggle(c.animated,c.toggle),c.unique&&a(this).parent().siblings().find(">.hitarea").replaceClass(b.collapsableHitarea,b.expandableHitarea).replaceClass(b.lastCollapsableHitarea,b.lastExpandableHitarea).end().replaceClass(b.collapsable,b.expandable).replaceClass(b.lastCollapsable,b.lastExpandable).find(">ul").heightHide(c.animated,c.toggle)}function
g(){function b(a){return a?1:0}var
d=[];i.each(function(b,c){d[b]=a(c).is(":has(>ul:visible)")?1:0}),a.cookie(c.cookieId,d.join(""),c.cookieOptions)}function
h(){var b=a.cookie(c.cookieId);if(b){var
d=b.split("");i.each(function(b,c){a(c).find(">ul")[parseInt(d[b])?"show":"hide"]()})}}c=a.extend({cookieId:"treeview"},c);if(c.toggle){var
d=c.toggle;c.toggle=function(){return
d.apply(a(this).parent()[0],arguments)}}this.data("toggler",f),this.addClass("treeview");var
i=this.find("li").prepareBranches(c);switch(c.persist){case"cookie":var
j=c.toggle;c.toggle=function(){g(),j&&j.apply(this,arguments)},h();break;case"location":var
k=this.find("a").filter(function(){return
this.href.toLowerCase()==location.href.toLowerCase()});if(k.length){var
l=k.addClass("selected").parents("ul,
li").add(k.next()).show();c.prerendered&&l.filter("li").swapClass(b.collapsable,b.expandable).swapClass(b.lastCollapsable,b.lastExpandable).find(">.hitarea").swapClass(b.collapsableHitarea,b.expandableHitarea).swapClass(b.lastCollapsableHitarea,b.lastExpandableHitarea)}}return
i.applyClasses(c,f),c.control&&(e(this,c.control),a(c.control).show()),this}}),a.treeview={};var
b=a.treeview.classes={open:"open",closed:"closed",expandable:"expandable",expandableHitarea:"expandable-hitarea",lastExpandableHitarea:"lastExpandable-hitarea",collapsable:"collapsable",collapsableHitarea:"collapsable-hitarea",lastCollapsableHitarea:"lastCollapsable-hitarea",lastCollapsable:"lastCollapsable",lastExpandable:"lastExpandable",last:"last",hitarea:"hitarea"}})(jQuery),define("jquery.treeview",function(){}),function(a){function
b(){if(!a.fn.ajaxSubmit.debug)return;var
b="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(b):window.opera&&window.opera.postError&&window.opera.postError(b)}a.fn.ajaxSubmit=function(c){function
w(b){var d=new FormData;for(var
e=0;e<b.length;e++){if(b[e].type=="file")continue;d.append(b[e].name,b[e].value)}g.find("input:file:enabled").each(function(){var
b=a(this).attr("name"),c=this.files;if(b)for(var
e=0;e<c.length;e++)d.append(b,c[e])});if(c.extraData)for(var f in
c.extraData)d.append(f,c.extraData[f]);c.data=null;var
h=a.extend(!0,{},a.ajaxSettings,c,{contentType:!1,processData:!1,cache:!1,type:"POST"});h.data=null;var
i=h.beforeSend;h.beforeSend=function(a,b){b.data=d,a.upload&&(a.upload.onprogress=function(a){b.progress(a.position,a.total)}),i&&i.call(b,a,c)},a.ajax(h)}function
x(e){function w(a){var
b=a.contentWindow?a.contentWindow.document:a.contentDocument?a.contentDocument:a.document;return
b}function z(){function h(){try{var a=w(n).readyState;b("state
= "+a),a.toLowerCase()=="uninitialized"&&setTimeout(h,50)}catch(c){b("Server
abort: ",c," (",
c.name,")"),E(v),s&&clearTimeout(s),s=undefined}}var
c=g.attr("target"),e=g.attr("action");f.setAttribute("target",l),d||
f.setAttribute("method","POST"),e!=j.url&&f.setAttribute("action",j.url),!j.skipEncodingOverride&&(!d|
|
/post/i.test(d))&&g.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),j.timeout&&(s=setTimeout(function(){r=!0,E(u)},j.timeout));var
i=[];try{if(j.extraData)for(var k in j.extraData)i.push(a('<input
type="hidden"
name="'+k+'">').attr("value",j.extraData[k]).appendTo(f)[0]);j.iframeTarget|
|
(m.appendTo("body"),n.attachEvent?n.attachEvent("onload",E):n.addEventListener("load",E,!1)),setTimeout(h,15),f.submit()}finally{f.setAttribute("action",e),c?f.setAttribute("target",c):g.removeAttr("target"),a(i).remove()}}function
E(c){if(o.aborted||D)return;try{B=w(n)}catch(d){b("cannot access response
document: ",d),c=v}if(c===u&&o){o.abort("timeout");return}if(c==v&&o){o.abort("server
abort");return}if(!B||
B.location.href==j.iframeSrc)if(!r)return;n.detachEvent?n.detachEvent("onload",E):n.removeEventListener("load",E,!1);var
e="success",f;try{if(r)throw"timeout";var g=j.dataType=="xml"||
B.XMLDocument||
a.isXMLDoc(B);b("isXml="+g);if(!g&&window.opera&&(B.body==null||
B.body.innerHTML=="")&&--C){b("requeing onLoad callback, DOM not
available"),setTimeout(E,250);return}var
h=B.body?B.body:B.documentElement;o.responseText=h?h.innerHTML:null,o.responseXML=B.XMLDocument?B.XMLDocument:B,g&&(j.dataType="xml"),o.getResponseHeader=function(a){var
b={"content-type":j.dataType};return
b[a]},h&&(o.status=Number(h.getAttribute("status"))||
o.status,o.statusText=h.getAttribute("statusText")||o.statusText);var
i=(j.dataType||"").toLowerCase(),l=/(json|script|text)/.test(i);if(l||
j.textarea){var
p=B.getElementsByTagName("textarea")[0];if(p)o.responseText=p.value,o.status=Number(p.getAttribute("status"))|
|o.status,o.statusText=p.getAttribute("statusText")||o.statusText;else
if(l){var
q=B.getElementsByTagName("pre")[0],t=B.getElementsByTagName("body")[0];q?o.responseText=q.textContent?q.textContent:q.innerText:t&&(o.responseText=t.textContent?t.textContent:t.innerText)}}else
i=="xml"&&!o.responseXML&&o.responseText!=null&&(o.responseXML=F(o.responseText));try{A=H(o,i,j)}catch(c){e="parsererror",o.error=f=c|
|e}}catch(c){b("error caught: ",c),e="error",o.error=f=c||
e}o.aborted&&(b("upload
aborted"),e=null),o.status&&(e=o.status>=200&&o.status<300||
o.status===304?"success":"error"),e==="success"?(j.success&&j.success.call(j.context,A,"success",o),k&&a.event.trigger("ajaxSuccess",[o,j])):e&&(f==undefined&&(f=o.statusText),j.error&&j.error.call(j.context,o,e,f),k&&a.event.trigger("ajaxError",[o,j,f])),k&&a.event.trigger("ajaxComplete",[o,j]),k&&!--a.active&&a.event.trigger("ajaxStop"),j.complete&&j.complete.call(j.context,o,e),D=!0,j.timeout&&clearTimeout(s),setTimeout(function(){j.iframeTarget|
|m.remove(),o.responseXML=null},100)}var
f=g[0],h,i,j,k,l,m,n,o,p,q,r,s,t=!!a.fn.prop;if(e)if(t)for(i=0;i<e.length;i++)h=a(f[e[i].name]),h.prop("disabled",!1);else
for(i=0;i<e.length;i++)h=a(f[e[i].name]),h.removeAttr("disabled");if(a(":input[name=submit],:input[id=submit]",f).length){alert('Error:
Form elements must not have name or id
of "submit".');return}j=a.extend(!0,{},a.ajaxSettings,c),j.context=j.context|
|j,l="jqFormIO"+(new
Date).getTime(),j.iframeTarget?(m=a(j.iframeTarget),q=m.attr("name"),q==null?m.attr("name",l):l=q):(m=a('<iframe
name="'+l+'" src="'+j.iframeSrc+'"
/>'),m.css({position:"absolute",top:"-1000px",left:"-1000px"})),n=m[0],o={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(c){var
d=c==="timeout"?"timeout":"aborted";b("aborting
upload... "+d),this.aborted=1,m.attr("src",j.iframeSrc),o.error=d,j.error&&j.error.call(j.context,o,d,c),k&&a.event.trigger("ajaxError",[o,j,d]),j.complete&&j.complete.call(j.context,o,d)}},k=j.global,k&&!(a.active++)&&a.event.trigger("ajaxStart"),k&&a.event.trigger("ajaxSend",[o,j]);if(j.beforeSend&&j.beforeSend.call(j.context,o,j)===!1){j.global&&a.active--;return}if(o.aborted)return;p=f.clk,p&&(q=
p.name,q&&!p.disabled&&(j.extraData=j.extraData|
|
{},j.extraData[q]=p.value,p.type=="image"&&(j.extraData[q+".x"]=f.clk_x,j.extraData[q+".y"]=f.clk_y)));var
u=1,v=2,x=a("meta[name=csrf-token]").attr("content"),y=a("meta[name=csrf-param]").attr("content");y&&x&&(j.extraData=j.extraData|
|{},j.extraData[y]=x),j.forceSync?z():setTimeout(z,10);var
A,B,C=50,D,F=a.parseXML||function(a,b){return window.ActiveXObject?(b=new
ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)):b=(new
DOMParser).parseFromString(a,"text/xml"),b&&b.documentElement&&b.documentElement.nodeName!="parsererror"?b:null},G=a.parseJSON|
|function(a){return window.eval("("+a+")")},H=function(b,c,d){var
e=b.getResponseHeader("content-type")||"",f=c==="xml"|
|!c&&e.indexOf("xml")>=0,g=f?b.responseXML:b.responseText;return
f&&g.documentElement.nodeName==="parsererror"&&a.error&&a.error("parsererror"),d&&d.dataFilter&&(g=d.dataFilter(g,c)),typeof
g=="string"&&(c==="json"||!c&&e.indexOf("json")>=0?g=G(g):(c==="script"|
|!c&&e.indexOf("javascript")>=0)&&a.globalEval(g)),g}}if(!this.length)return
b("ajaxSubmit: skipping submit process - no element selected"),this;var
d,e,f,g=this;typeof
c=="function"&&(c={success:c}),d=this.attr("method"),e=this.attr("action"),f=typeof
e=="string"?a.trim(e):"",f=f||window.location.href|
|"",f&&(f=(f.match(/^([^#]+)/)||
[])[1]),c=a.extend(!0,{url:f,success:a.ajaxSettings.success,type:d|
|"GET",iframeSrc:/^https/i.test(window.location.href|
|"")?"javascript:false":"about:blank"},c);var
h={};this.trigger("form-pre-serialize",[this,c,h]);if(h.veto)return
b("ajaxSubmit: submit vetoed via form-pre-serialize
trigger"),this;if(c.beforeSerialize&&c.beforeSerialize(this,c)===!1)return
b("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var
i=c.traditional;i===undefined&&(i=a.ajaxSettings.traditional);var
j,k,l,m=this.formToArray(c.semantic);c.data&&(c.extraData=c.data,j=a.param(c.data,i));if(c.beforeSubmit&&c.beforeSubmit(m,this,c)===!1)return
b("ajaxSubmit: submit aborted via beforeSubmit
callback"),this;this.trigger("form-submit-validate",[m,this,c,h]);if(h.veto)return
b("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var
n=a.param(m,i);j&&(n=n?n+"&"+j:j),c.type.toUpperCase()=="GET"?(c.url+=(c.url.indexOf("?")<0?"?":"&")+n,c.data=null):c.data=n;var
o=[];c.resetForm&&o.push(function(){g.resetForm()}),c.clearForm&&o.push(function(){g.clearForm(c.includeHidden)});if(!c.dataType&&c.target){var
p=c.success||function(){};o.push(function(b){var
d=c.replaceTarget?"replaceWith":"html";a(c.target)[d](b).each(p,arguments)})}else
c.success&&o.push(c.success);c.success=function(a,b,d){var e=c.context||
c;for(var f=0,h=o.length;f<h;f++)o[f].apply(e,[a,b,d||g,g])};var
q=a("input:file:enabled[value]",this),r=q.length>0,s="multipart/form-data",t=g.attr("enctype")==s|
|
g.attr("encoding")==s,u=!!(r&&q.get(0).files&&window.FormData);b("fileAPI :"+u);var
v=(r||t)&&!u;return c.iframe!==!1&&(c.iframe||
v)?c.closeKeepAlive?a.get(c.closeKeepAlive,function(){x(m)}):x(m):(r||
t)&&u?(c.progress=c.progress||
a.noop,w(m)):a.ajax(c),this.trigger("form-submit-notify",[this,c]),this},a.fn.ajaxForm=function(c){if(this.length===0){var
d={s:this.selector,c:this.context};return!a.isReady&&d.s?(b("DOM not ready,
queuing
ajaxForm"),a(function(){a(d.s,d.c).ajaxForm(c)}),this):(b("terminating;
zero elements found by selector"+(a.isReady?"":" (DOM not
ready)")),this)}return
this.ajaxFormUnbind().bind("submit.form-plugin",function(b){b.isDefaultPrevented()|
|
(b.preventDefault(),a(this).ajaxSubmit(c))}).bind("click.form-plugin",function(b){var
c=b.target,d=a(c);if(!
d.is(":submit,input:image")){var
e=d.closest(":submit");if(e.length==0)return;c=e[0]}var
f=this;f.clk=c;if(c.type=="image")if(b.offsetX!=undefined)f.clk_x=b.offsetX,f.clk_y=b.offsetY;else
if(typeof a.fn.offset=="function"){var
g=d.offset();f.clk_x=b.pageX-g.left,f.clk_y=b.pageY-g.top}else
f.clk_x=b.pageX-c.offsetLeft,f.clk_y=b.pageY-c.offsetTop;setTimeout(function(){f.clk=f.clk_x=f.clk_y=null},100)})},a.fn.ajaxFormUnbind=function(){return
this.unbind("submit.form-plugin
click.form-plugin")},a.fn.formToArray=function(b){var
c=[];if(this.length===0)return c;var
d=this[0],e=b?d.getElementsByTagName("*"):d.elements;if(!e)return c;var
f,g,h,i,j,k,l;for(f=0,k=e.length;f<k;f++){j=e[f],h=
j.name;if(!h)continue;if(b&&d.clk&&j.type=="image"){!j.disabled&&d.clk==j&&(c.push({name:h,value:a(j).val(),type:j.type}),c.push({name:h+".x",value:d.clk_x},{name:h+".y",value:d.clk_y}));continue}i=a.fieldValue(j,!0);if(i&&i.constructor==Array)for(g=0,l=i.length;g<l;g++)c.push({name:h,value:i[g]});else
i!==null&&typeof
i!="undefined"&&c.push({name:h,value:i,type:j.type})}if(!b&&d.clk){var
m=a(d.clk),n=m[0];h=
n.name,h&&!n.disabled&&n.type=="image"&&(c.push({name:h,value:m.val()}),c.push({name:h+".x",value:d.clk_x},{name:h+".y",value:d.clk_y}))}return
c},a.fn.formSerialize=function(b){return
a.param(this.formToArray(b))},a.fn.fieldSerialize=function(b){var
c=[];return this.each(function(){var d=
this.name;if(!d)return;var
e=a.fieldValue(this,b);if(e&&e.constructor==Array)for(var
f=0,g=e.length;f<g;f++)c.push({name:d,value:e[f]});else e!==null&&typeof
e!="undefined"&&c.push({name:
this.name,value:e})}),a.param(c)},a.fn.fieldValue=function(b){for(var
c=[],d=0,e=this.length;d<e;d++){var
f=this[d],g=a.fieldValue(f,b);if(g===null||typeof g=="undefined"||
g.constructor==Array&&!g.length)continue;g.constructor==Array?a.merge(c,g):c.push(g)}return
c},a.fieldValue=function(b,c){var
d=
b.name,e=b.type,f=b.tagName.toLowerCase();c===undefined&&(c=!0);if(c&&(!d|
|b.disabled||e=="reset"||e=="button"||(e=="checkbox"||
e=="radio")&&!b.checked||(e=="submit"||e=="image")&&b.form&&b.form.clk!=b||
f=="select"&&b.selectedIndex==-1))return null;if(f=="select"){var
g=b.selectedIndex;if(g<0)return null;var
h=[],i=b.options,j=e=="select-one",k=j?g+1:i.length;for(var
l=j?g:0;l<k;l++){var m=i[l];if(m.selected){var n=m.value;n||
(n=m.attributes&&m.attributes.value&&!m.attributes.value.specified?m.text:m.value);if(j)return
n;h.push(n)}}return h}return a(b).val()},a.fn.clearForm=function(b){return
this.each(function(){a("input,select,textarea",this).clearFields(b)})},a.fn.clearFields=a.fn.clearInputs=function(a){var
b=/^(?:color|date|datetime|email|month|number|password|range|search|tel|
text|time|url|week)$/i;return this.each(function(){var
c=this.type,d=this.tagName.toLowerCase();b.test(c)||d=="textarea"||
a&&/hidden/.test(c)?this.value="":c=="checkbox"||
c=="radio"?this.checked=!1:d=="select"&&(this.selectedIndex=-1)})},a.fn.resetForm=function(){return
this.each(function(){(typeof this.reset=="function"||typeof
this.reset=="object"&&!this.reset.nodeType)&&this.reset()})},a.fn.enable=function(a){return
a===undefined&&(a=!0),this.each(function(){this.disabled=!a})},a.fn.selected=function(b){return
b===undefined&&(b=!0),this.each(function(){var c=this.type;if(c=="checkbox"|
|c=="radio")this.checked=b;else
if(this.tagName.toLowerCase()=="option"){var
d=a(this).parent("select");b&&d[0]&&d[0].type=="select-one"&&d.find("option").selected(!1),this.selected=b}})},a.fn.ajaxSubmit.debug=!1}(jQuery),define("jquery.form",function(){}),define("view/page/context",[],function(){return{pageRequest:null,page:null,pages:{},pageId:"",pageParentUrl:"",editMode:!0,currentLanguage:"",isDefault:!1,loadData:function(){alert("Load
data was not
initialized!")}}}),define("view/page/version",["view/page/context"],function(a){function
c(){$("#addVersionLink").click(g),$("#versionCancelButton").click(i),$("#versionForm").submit(function(){return
h(),!1})}function
d(){Vosao.jsonrpc.pageService.getPageRequest(function(b){a.pageRequest=b,
a.page=
a.pageRequest.page,e()},a.pageId,a.pageParentUrl)}function
e(){var
c=a.pageRequest.versions;b=[],a.pages={},$.each(c.list,function(c,d){a.pages[String(d.version)]=d,b.push(String(d.version))}),b.sort();var
d="";$.each(b,function(c,e){var
f=a.pages[e];d+="<div>",a.pageId!=
f.id?d+='<a class="select button
ui-state-default ui-corner-all"
title="'+f.versionTitle+'"
data-version="'+e+'">Version '+e+"</a>":d+='<a class="select button
ui-state-default ui-state-active ui-corner-all"
title="'+f.versionTitle+'" data-version="'+e+'" ><span
class="ui-icon ui-icon-triangle-1-e"></span>
Version '+e+"</a>",b.length>1&&(d+='<img class="delete button"
src="/static/images/delete-16.png"
data-version="'+e+'"/></div>')}),$("#versions .vertical-buttons-panel").html(d),$("#versions
a.select").click(function(){j($(this).attr("data-version"))}),$("#versions
img.delete").click(function(){f($(this).attr("data-version"))})}function
f(c){if(confirm(messages("are_you_sure"))){var
e=a.pages[c];Vosao.jsonrpc.pageService.deletePageVersion(function(e){if(c==String(a.page.version))if(b.length==1)location.href="#pages";else{var
f=b[0];b.indexOf(c)==0?f=b[1]:f=b[b.indexOf(c)-1],a.pageId=a.pages[f].id,a.loadData()}else
d()},
e.id)}}function
g(){$("#version-dialog").dialog("open"),$("#version-title").val("")}function
h(){Vosao.jsonrpc.pageService.addVersion(function(b){b.result=="success"?(a.pageId=b.message,a.loadData(),Vosao.info(messages("page.version_success_add"))):Vosao.showServiceMessages(b),$("#version-dialog").dialog("close")},a.page.friendlyURL,$("#version-title").val())}function
i(){$("#version-dialog").dialog("close")}function j(b){var
c=a.pages[b];a.pageId=
c.id,a.loadData()}function
k(){$("#pageState").html(a.page.stateString=="EDIT"?messages("edit"):messages("approved")),$("#pageCreateDate").html(a.page.createDateTimeString),$("#pageModDate").html(a.page.modDateTimeString),$("#pageCreateUser").html(a.page.createUserEmail),$("#pageModUser").html(a.page.modUserEmail)}var
b=[];return{initVersionDialog:c,loadVersions:e,showAuditInfo:k}}),define("view/page/breadcrumbs",["view/page/context"],function(a){function
b(){var b=a.pageParentUrl;b=a.pageRequest.page.friendlyURL;var
d="",e=b.substr(1).split("/");if(e.length>0){var
f="";$.each(e,function(b,c){f+="/"+c,e.length-1==b&&a.editMode?d+=" "+e[e.length-1]:d+='
<a data-url="'+f+'">'+c+"</a> /"})}$("#crumbs").html(d),$("#crumbs
a").click(function(){var
a=$(this).attr("data-url");a&&c(a)}),$("#rootPage").click(function(){c("/")})}function
c(a){Vosao.jsonrpc.pageService.getPageByUrl(function(a){location.href="#page/content/"+
a.id},a)}return{breadcrumbsShow:b}}),function(){var
a=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],b=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,c=/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im,d=typeof
location!="undefined"&&location.href,e=d&&location.protocol&&location.protocol.replace(/\:/,""),f=d&&location.hostname,g=d&&(location.port|
|void 0),h=[];define("text",[],function(){var l,m,s;return typeof
window!="undefined"&&window.navigator&&window.document?m=function(a,b){var
c=l.createXhr();c.open("GET",a,!0),c.onreadystatechange=function(){c.readyState===4&&b(c.responseText)},c.send(null)}:typeof
process!="undefined"&&process.versions&&process.versions.node?(s=require.nodeRequire("fs"),m=function(a,b){b(s.readFileSync(a,"utf8"))}):typeof
Packages!="undefined"&&(m=function(a,b){var c=new
java.io.File(a),d=java.lang.System.getProperty("line.separator"),c=new
java.io.BufferedReader(new java.io.InputStreamReader(new
java.io.FileInputStream(c),"utf-8")),e,f,g="";try{e=new
java.lang.StringBuffer,(f=c.readLine())&&f.length()&&f.charAt(0)===65279&&(f=f.substring(1));for(e.append(f);(f=c.readLine())!==null;)e.append(d),e.append(f);g=String(e.toString())}finally{c.close()}b(g)}),l={version:"1.0.0",strip:function(a){if(a){var
a=a.replace(b,""),d=a.match(c);d&&(a=d[1])}else a="";return
a},jsEscape:function(a){return
a.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r")},createXhr:function(){var
b,c,d;if(typeof XMLHttpRequest!="undefined")return new
XMLHttpRequest;for(c=0;c<3;c++){d=a[c];try{b=new
ActiveXObject(d)}catch(e){}if(b){a=[d];break}}if(!b)throw
Error("createXhr(): XMLHttpRequest not available");return
b},get:m,parseName:function(a){var
b=!1,c=a.indexOf("."),d=a.substring(0,c),a=a.substring(c+1,a.length),c=a.indexOf("!");return
c!==-1&&(b=a.substring(c+1,a.length),b=b==="strip",a=a.substring(0,c)),{moduleName:d,ext:a,strip:b}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(a,b,c,d){var
e=l.xdRegExp.exec(a),f;return
e?(a=e[2],e=e[3],e=e.split(":"),f=e[1],e=e[0],(!a||a===b)&&(!e||
e===c)&&(!f&&!e||
f===d)):!0},finishLoad:function(a,b,c,d,e){c=b?l.strip(c):c,e.isBuild&&e.inlineText&&(h[a]=c),d(c)},load:function(a,b,c,h){var
j=l.parseName(a),k=j.moduleName+"."+j.ext,m=b.toUrl(k),n=h&&h.text&&h.text.useXhr|
|l.useXhr;!d||
n(m,e,f,g)?l.get(m,function(b){l.finishLoad(a,j.strip,b,c,h)}):b([k],function(a){l.finishLoad(j.moduleName+"."+j.ext,j.strip,a,c,h)})},write:function(a,b,c){if(b
in h){var d=l.jsEscape(h[b]);c.asModule(a+"!"+b,"define(function () {
return '"+d+"';});\n")}},writeFile:function(a,b,c,d,e){var
b=l.parseName(b),f=b.moduleName+"."+b.ext,g=c.toUrl(b.moduleName+"."+b.ext)+".js";l.load(f,c,function(){var
b=function(a){return d(g,a)};b.asModule=function(a,b){return
d.asModule(a,g,b)},l.write(a,f,b,e)},e)}}})}(),define("text!template/topbar.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2011
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="leftmenu">\n <a
href="#index">Vosao CMS <%= Vosao.fullVersion %></a> \n <a
href="#pages"><%= messages("content") %></a>\n<% if (Vosao.app.user.admin)
{ %>\n <a href="#templates"> <%= messages("templates") %></a>\n<%
} %> \n <a href="#folders"><%= messages("resources") %></a>\n<%
if (Vosao.app.user.admin) { %>\n <a href="#config"><%=
messages("configuration") %></a>\n <a href="#plugins"><%=
messages("plugins") %></a>\n<% } %> \n</div>\n<div
id="rightmenu">\n <%= Vosao.app.user.email %> \n | <a
href="#profile"><%= messages("profile") %></a> \n | <a
href="#logout"><%= messages("logout") %></a>\n | <%= locale %>\n | <a
href="
http://code.google.com/p/vosao/issues/list">\n <%=
messages("support") %>\n </a> \n</div>\n<span
class="clear"> </span>\n'}),define("text!template/locale.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2011
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<a id="languageSelect"><%=
messages("language") %></a>\n<div id="languageDiv">\n\t<a
onclick="Vosao.changeLanguageCall(\'fr_FR\')">Français</a>\n <a
onclick="Vosao.changeLanguageCall(\'en\')">English</a>\n <a
onclick="Vosao.changeLanguageCall(\'de\')">Deutsch</a>\n <a
onclick="Vosao.changeLanguageCall(\'es\')">Español</a>\n <a
onclick="Vosao.changeLanguageCall(\'sv\')">Swedish</a>\n <a
onclick="Vosao.changeLanguageCall(\'ru\')">Русский</a>\n <a
onclick="Vosao.changeLanguageCall(\'cs\')">Česky</a>\n <a
onclick="Vosao.changeLanguageCall(\'tr\')">Türkçe</a>\n <a
onclick="Vosao.changeLanguageCall(\'pt_BR\')">Brazilian Portuguese</a>\n
<a onclick="Vosao.changeLanguageCall(\'ja\')">日本語</a>\n <a
onclick="Vosao.changeLanguageCall(\'zh_TW\')">中文(繁體)</a>\n <a
onclick="Vosao.changeLanguageCall(\'zh_CN\')">中文(简体
)</a>\n</div>'}),define("text!template/login.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="memo">\r\n <img
src="/static/images/login-logo.jpg" />\r\n <p><%=
messages(\'login.sign_in\') %></p>\r\n <p><%=
messages("login.visit") %></p>\r\n <p><%=
messages("login.bug") %></p>\r\n <p><%=
messages("login.forum") %></p>\r\n</div>\r\n\r\n<div
id="login-form">\r\n<form id="login">\r\n\r\n<h4><%=
messages("login.sign") %></h4>\r\n<h3><%=
messages("login.sign_account") %></h3>\r\n\r\n<div class="form-row">\r\n
<label><%= messages("email") %></label>\r\n <input type="text"
id="loginEmail" value=""/>\r\n</div>\r\n<div class="form-row">\r\n
<label><%= messages("password") %></label>\r\n <input type="password"
id="loginPassword" value=""/>\r\n</div>\r\n<div id="login-messages">
</div>\r\n<div class="buttons-dlg">\r\n <input type="submit" value="<%=
messages("login") %>" />\r\n <br/>\r\n <br/>\r\n <a
id="forgot"><%= messages("forgot_password") %></a>\r\n</div>
\r\n\r\n</form>\r\n</div>\r\n\r\n<div class="clear"> </div>\r\n\r\n<div
class="version">\r\n <span>Vosao CMS <%= messages("version")%> <%=
Vosao.fullVersion %></span>\r\n</div>\r\n\r\n\r\n<div class="messages">
</div>\r\n\r\n<div id="forgot-dialog" style="display:none" title="<%=
messages("forgot_password") %>">\r\n <form id="forgotForm">\r\n <p
style="margin-bottom: 20px;"><%=
messages("login.forgot_dialog") %></p>\r\n <div
class="form-row">\r\n <label style="width: 80px;"><%=
messages("email") %></label>\r\n <input type="text" id="email"
/>\r\n </div>\r\n <div class="buttons-dlg">\r\n <input
type="submit" value="OK" />\r\n <input id="forgotCancelButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form>\r\n</div>\r\n\r\n'}),define("text!template/login-topbar.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2011
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="rightmenu" style="margin-right:
30px">\n <%= locale %>\n</div>\n<span
class="clear"> </span>\n'}),define("view/LoginView",["text!template/login.html","text!template/locale.html","text!template/login-topbar.html"],function(a,b,c){function
d(a){a.preventDefault();var b=$("#email").val();return
b?($("#loading").show(),Vosao.jsonrpc.loginFrontService.forgotPassword(function(b){$("#loading").hide(),b.result=="success"?Vosao.info(messages("login.password_letter_success")):Vosao.error(a.message),$("#forgot-dialog").dialog("close")},b.toLowerCase()),!1):(Vosao.error(messages("email_is_empty")),!1)}return
Backbone.View.extend({el:$("#content"),events:{"click
#forgot":"forgot_click","submit
form#login":"login_submit"},css:"/static/css/login.css",forgot_click:function(){this.$("#email").val(""),$("#forgot-dialog").dialog("open")},login_submit:function(a){a.preventDefault();if(Vosao.app.loggedIn)return
Vosao.app.trigger("login"),!1;var
b=this.$("#loginEmail").val(),c=this.$("#loginPassword").val();return
b==""?Vosao.errorMessage("#login-messages",messages("email_is_empty")):Vosao.jsonrpc.loginFrontService.login(function(a,b){if(Vosao.serviceFailed(b))return!1;a.result=="success"?(Vosao.infoMessage("#login-messages",messages("success_logging_in")),Vosao.app.loggedIn=!0,Vosao.app.trigger("login")):Vosao.errorMessage("#login-messages",a.message)},b,c),!1},render:function(){Vosao.addCSSFile(this.css),this.el.html($.jqote(a,{messages:messages})),$("#forgot-dialog").dialog({width:400,autoOpen:!1}),$("#forgotForm").submit(d),$("#forgotCancelButton").click(function(){$("#forgot-dialog").dialog("close")});var
e=_.template(b,{messages:messages});return
$("#topbar").html(_.template(c,{messages:messages,locale:e})),$("#languageSelect").click(function(){$("#languageDiv").show(),setTimeout(function(){$("#languageDiv").hide()},5e3)}),this},remove:function(){$("#forgot-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)}})}),define("text!template/pages.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs" class="ui-tabs ui-widget
ui-widget-content ui-corner-all">\r\n <ul class="ui-tabs-nav
ui-helper-reset ui-helper-clearfix ui-widget-header
ui-corner-all">\r\n <li class="ui-corner-top ui-tabs-selected
ui-state-active">\r\n <a href="#tab-1"><%=
messages("pages") %></a>\r\n </li>\r\n <li id="structuresTab"
class="ui-corner-top ui-state-default">\r\n <a
href="#structures"><%= messages("structures") %></a>\r\n
</li>\r\n </ul>\r\n <div id="tab-1" class="ui-tabs-panel
ui-widget-content ui-corner-bottom">\r\n <!-- div
class="outline-link">\r\n <a href="outline.vm">Outline
editor</a>\r\n </div-->\r\n <div
id="pageSearch"></div>\r\n <div style="float:left">\r\n
<div id="showTitleDiv">\r\n <a id="showTitle"><%=
messages(\'show_names\') %></a>\r\n <a id="invertOrder"><%=
messages(\'invert_order\') %></a>\r\n </div>\r\n <ul
id="pages-tree"><img src="/static/images/ajax-loader.gif"
/></ul>\r\n </div>\r\n <div style="clear:both"></div>
\r\n </div>\r\n</div>\r\n\r\n<div id="page-dialog" style="display:none"
title="<%= messages("pages.new_page") %>">\r\n <form id="pageForm">\r\n
<div class="form-row">\r\n <label><%=
messages("pages.page_title") %></label>\r\n <input
id="title"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("pages.page_url") %></label>\r\n <span
id="parentURL"></span> <input id="url"/>\r\n </div>\r\n <div
id="pageMessages"></div>\r\n <div class="buttons-dlg">\r\n <input
id="saveDlgButton" type="submit" value="<%= messages("save") %>"
/>\r\n <input id="cancelDlgButton" type="button" value="<%=
messages("cancel") %>" />\r\n </div>\r\n </form>
\r\n</div>\r\n\r\n'}),define("text!template/index.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2011
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="main-panel">\n <div>\n <img
src="/static/images/pages.png" />\n <a href="#pages">\n
<%= messages("index.content_pages") %>\n </a>\n <p><%=
messages("index.content_pages.description") %></p>\n </div>\n<% if
(user.admin) { %>\n <div>\n <img
src="/static/images/templates.png" />\n <a
href="#templates">\n <%=
messages("index.design_templates") %>\n </a>\n <p><%=
messages("index.design_templates.description") %></p>\n </div>\n<%
} %> \n <div>\n <img src="/static/images/folders.png"
/>\n <a href="#folders">\n <%=
messages("index.file_resources_storage") %>\n </a>\n <p><%=
messages("index.file_resources_storage.description") %></p>\n </div>\n<%
if (user.admin) { %>\n <div>\n <img
src="/static/images/config.png" />\n <a href="#config">\n
<%= messages("index.site_configuration") %>\n </a>\n <p><%=
messages("index.site_configuration.description") %></p>\n </div>\n
<div>\n <img src="/static/images/plugins.png" />\n <a
href="#plugins"><%= messages("index.plugins") %></a>\n <p><%=
messages("index.plugins.description") %></p>\n </div>\n<% } %>
\n</div>\n'}),define("view/IndexView",["text!template/index.html"],function(a){return
console.log("Loading
IndexView.js"),Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{user:Vosao.app.user,messages:messages}))},remove:function(){this.el.html("")}})}),define("text!template/structures.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2011
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="tabs" class="ui-tabs ui-widget
ui-widget-content ui-corner-all">\n <ul class="ui-tabs-nav
ui-helper-reset ui-helper-clearfix ui-widget-header
ui-corner-all">\n <li class="ui-corner-top
ui-state-default">\n <a href="#pages"><%=
messages("pages") %></a>\n </li>\n <li class="ui-corner-top
ui-tabs-selected ui-state-active">\n <a href="#structures"><%=
messages("structures") %></a>\n </li>\n </ul>\n <div
class="ui-tabs-panel ui-widget-content ui-corner-bottom">\n <div
id="structures"><img src="/static/images/ajax-loader.gif" /></div>\n
<div class="buttons">\n <input id="addButton" type="button"
value="<%= messages("add") %>"/>\n <input id="deleteButton"
type="button" value="<%= messages("delete") %>"/>\n </div> \n
</div>\n</div>\n'}),define("view/StructuresView",["text!template/structures.html"],function(a){function
b(){Vosao.jsonrpc.structureService.select(function(a){var b='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th></tr>";$.each(a.list,function(a,c){b+='<tr><td><input
type="checkbox" value="'+
c.id+'" /></td><td><a
href="#structure/'+
c.id+'">'+c.title+"</a></td></tr>"}),$("#structures").html(b+"</table>"),$("#structures
tr:even").addClass("even")})}function
c(){location.href="#structure"}function d(){var a=new Array;$("#structures
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.structureService.remove(function(a){Vosao.showServiceMessages(a),b()},Vosao.javaList(a))}return
console.log("Loading
StructuresView.js"),Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{messages:messages})),b(),$("#addButton").click(c),$("#deleteButton").click(d)},remove:function(){this.el.html("")}})}),define("text!template/structure.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2010
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="tabs">\n\n<ul>\n <li><a
href="#tab-1"><%= messages("structure") %></a></li>\n <li><a
href="#tab-2"><%= messages("structure.as_xml") %></a></li>\n <li><a
href="#tab-3"><%=
messages("structure.templates") %></a></li>\n</ul>\n\n<div id="tab-1">\n
<div class="form-row">\n <label><%=
messages("title") %></label>\n <input id="title" type="text" />\n
</div>\n <div class="form-row">\n <label><%=
messages("fields") %></label>\n <div id="fields"></div> \n
</div>\n <div class="form-row" style="margin-top: 20px;">\n
<span><%= messages("structure.field_title") %></span>\n <input
id="fieldTitle" type="text" /> \n <span><%=
messages("structure.tag_name") %></span> \n <input
id="fieldName" type="text" /> \n <select id="fieldType">
\n <option value="TEXT"><%=
messages("text") %></option>\n <option value="TEXTAREA"><%=
messages("text_area") %></option>\n <option value="RESOURCE"><%=
messages("resource_link") %></option>\n <option value="DATE"><%=
messages("date") %></option>\n </select>\n <a id="addField">
<%= messages("add_field") %></a>\n </div>\n <div
class="buttons">\n <input id="saveContinueButton" type="button"
value="<%= messages("save_continue")%>" />\n <input id="saveButton"
type="button" value="<%= messages("save")%>" />\n <input
id="cancelButton" type="button" value="<%= messages("cancel")%>" />\n
</div>\n</div>\n\n<div id="tab-2">\n <div class="form-row">\n
<input id="autosave" type="checkbox" /><label for="autosave"><%=
messages("autosave")%></label>\n </div>\n <div
class="form-row">\n <textarea id="xmlContent" rows="20"
cols="80"></textarea>\n </div>\n <div class="buttons">\n
<input id="saveContinueXMLButton" type="button" \n value="<%=
messages("save_continue")%>" />\n <input id="saveXMLButton"
type="button" value="<%= messages("save")%>" />\n <input
id="cancelXMLButton" type="button" value="<%= messages("cancel")%>" />\n
</div>\n</div>\n\n<div id="tab-3">\n <div id="templates"><img
src="/static/images/ajax-loader.gif" /></div>\n <div
class="buttons">\n <input id="addTemplateButton" type="button"
value="<%= messages("add")%>"/>\n <input id="deleteTemplateButton"
type="button" value="<%= messages("delete")%>"/>\n
</div></div>\n</div>\n'}),define("text!template/structureTemplate.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2010
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="tabs">\n\n<ul>\n <li><a
href="#tab-1"><%=
messages("structureTemplate.title") %></a></li>\n</ul>\n\n<div
id="tab-1">\n <div class="form-row">\n <label><%=
messages("title") %></label>\n <input id="title" type="text" />\n
</div>\n <div class="form-row">\n <label><%=
messages("name") %></label>\n <input id="name" type="text" />\n
</div>\n <div class="form-row">\n <label><%=
messages("structureTemplate.content") %></label>\n <input
id="autosave" type="checkbox" /> <label for="autosave"><%=
messages("autosave") %></label>\n </div> \n <div
class="form-row">\n <textarea id="vcontent" rows="20"
cols="80"></textarea>\n </div>\n <div class="form-row">\n
<label><%= messages("structureTemplate.head_content") %></label>\n
</div> \n <div class="form-row">\n <textarea id="headContent"
rows="8" cols="80"></textarea>\n </div>\n <div
class="buttons">\n <input id="saveContinueButton" type="button"
value="<%= messages("save_continue") %>" />\n <input id="saveButton"
type="button" value="<%= messages("save") %>" />\n <input
id="cancelButton" type="button" value="<%= messages("cancel") %>" />\n
</div>\n</div>\n\n</div>\n'}),define("text!template/templates.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2010
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="tabs">\n\n<ul>\n <li><a
href="#tab-1"><%= messages("templates") %></a></li>\n</ul>\n\n<div
id="tab-1">\n <div id="templates"><img
src="/static/images/ajax-loader.gif" /></div>\n <div
class="buttons">\n <input id="addButton" type="button" value="<%=
messages("add")%>" />\n <input id="deleteButton" type="button"
value="<%= messages("delete")%>" />\n <input id="exportButton"
type="button" value="<%= messages("export")%>" />\n <input
id="importButton" type="button" value="<%= messages("import")%>" />\n
</div>\n</div>\n\n</div>\n\n<div id="import-dialog" title="<%=
messages("templates.import_themes")%>" style="display:none">\n<form
id="upload" action="/cms/upload" method="post"
enctype="multipart/form-data">\n <%= messages("file_upload")%>:\n
<input type="hidden" name="fileType" value="import" />\n <input
type="file" name="uploadFile" />\n <div class="buttons-dlg">\n
<input type="submit" value="<%= messages("send")%>" />\n <input
id="importCancelButton" type="button" value="<%= messages("cancel")%>"
/>\n </div> \n</form>\n</div>\n\n<div id="afterUpload-dialog"
style="display:none" title="<%= messages("status_window")%>">\n <p
class="message"></p>\n <div class="buttons-dlg">\n <input
id="okButton" type="button" value="OK" />\n </div>\n</div>\n\n<div
id="export-dialog" style="display:none" title="<%=
messages("export_window")%>">\n <form id="exportForm">\n <p><%=
messages("templates.export_info")%></p>\n <div id="exportInfo"
class="form-row"></div> \n <div id="timer"
class="form-row"></div>\n <div class="buttons-dlg">\n <input
id="exportCancelButton" type="button" value="<%= messages("cancel")%>"
/>\n </div>\n </form>\n</div>\n\n<div id="structures-dialog"
style="display:none" title="<%= messages("export_structures")%>">\n <form
id="structuresForm">\n <p><%=
messages("templates.structures_info")%></p>\n <div
id="structures"></div> \n <div class="buttons-dlg">\n <input
type="submit" value="<%= messages("export")%>" />\n <input
id="structuresCancelButton" type="button" value="<%= messages("cancel")%>"
/>\n </div>\n
</form>\n</div>\n'}),define("view/TemplatesView",["text!template/templates.html","jquery.form"],function(a){function
f(){k(),l()}function g(a){var
b=a.split("::"),c=b[1],d=b[2];c=="success"?d=messages("templates.success_import"):d=messages("error")+". "+d,$("#import-dialog").dialog("close"),$("#afterUpload-dialog .message").text(d),$("#afterUpload-dialog").dialog("open")}function
h(){$("#import-dialog").dialog("open")}function
i(){$("#import-dialog").dialog("close")}function
j(){$("#afterUpload-dialog").dialog("close"),f()}function
k(){Vosao.jsonrpc.templateService.getTemplates(function(a){var b='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th></tr>";$.each(a.list,function(a,c){b+='<tr><td><input
type="checkbox" value="'+
c.id+'" /></td><td><a
href="#template/'+
c.id+'">'+c.title+"</a></td></tr>"}),$("#templates").html(b+"</table>"),$("#templates
tr:even").addClass("even")})}function
l(){Vosao.jsonrpc.structureService.select(function(a){var b='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th></tr>";$.each(a.list,function(a,c){b+='<tr><td><input
type="checkbox" value="'+
c.id+'"
/></td><td>'+c.title+"</td></tr>"}),$("#structures").html(b+"</table>"),$("#structures
tr:even").addClass("even")})}function
m(){location.href="#template"}function n(){var a=new Array;$("#templates
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.templateService.deleteTemplates(function(a){Vosao.showServiceMessages(a),k()},Vosao.javaList(a))}function
o(){$("#structures
input:checked").each(function(){this.checked=!1}),$("#structures-dialog").dialog("open")}function
p(){$("#structures-dialog").dialog("close"),d=0,r();var
a=[],f=[];$("#templates
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}$("#structures
input:checked").each(function(){f.push(this.value)}),$("#export-dialog").dialog("open"),Vosao.jsonrpc.configService.startExportThemeTask(function(a){a.result=="success"?($("#templates
input:checked").each(function(){this.checked=!1}),e=a.message,Vosao.infoMessage("#exportInfo",messages("creating_export_file")),b=setInterval(q,1e4),c=setInterval(r,1e3)):Vosao.showServiceMessages(a)},Vosao.javaList(a),Vosao.javaList(f))}function
q(){Vosao.jsonrpc.configService.isExportTaskFinished(function(a){a&&(clearInterval(b),clearInterval(c),$("#export-dialog").dialog("close"),$("#exportDialogButton").attr("disabled",!1),location.href="/file/tmp/"+e)},"theme")}function
r(){$("#timer").html(d++ +" "+messages("sec")+".")}function
s(){$("#export-dialog").dialog("close"),clearInterval(b),clearInterval(c)}console.log("Loading
TemplatesView.js");var b=null,c=null,d=0,e=null;return
Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{messages:messages})),$("#import-dialog").dialog({width:400,autoOpen:!1}),$("#export-dialog").dialog({width:400,autoOpen:!1}),$("#structures-dialog").dialog({width:400,autoOpen:!1}),$("#afterUpload-dialog").dialog({autoOpen:!1}),$("#upload").ajaxForm(g),f(),$("#tabs").tabs(),$("#addButton").click(m),$("#deleteButton").click(n),$("#exportButton").click(o),$("#exportCancelButton").click(s),$("#importButton").click(h),$("#importCancelButton").click(i),$("#okButton").click(j),$("#structuresForm").submit(function(){return
p(),!1}),$("#structuresCancelButton").click(function(){$("#structures-dialog").dialog("close")})},remove:function(){$("#import-dialog,
#export-dialog, #structures-dialog,
#afterUpload-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/template.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2011
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<div id="tabs" class="ui-tabs ui-widget
ui-widget-content ui-corner-all">\n\n<ul class="ui-tabs-nav ui-helper-reset
ui-helper-clearfix ui-widget-header ui-corner-all">\n <li
class="ui-corner-top ui-state-active">\n <a href="#"><%=
messages("template") %></a>\n </li>\n <li class="ui-corner-top
ui-state-default">\n <a id="resources" href="#"><%=
messages("resources") %></a>\n </li>\n</ul>\n\n<div id="tab-1"
class="ui-tabs-panel ui-widget-content ui-corner-bottom">\n<form
id="templateForm">\n <div class="form-row">\n <label><%=
messages("title") %></label>\n <input id="title" type="text" />\n
</div>\n <div class="form-row">\n <label><%=
messages("url_name") %></label>\n <input id="url" type="text"
/>\n </div>\n <div class="form-row">\n <input id="autosave"
type="checkbox" /> <label for="autosave"><%=
messages("autosave") %></label>\n </div>\n <div
class="form-row">\n <textarea id="tcontent" rows="20"
cols="80"></textarea>\n </div>\n <div class="buttons">\n
<input id="saveContinueButton" type="button" value="<%=
messages("save_continue") %>" />\n <input id="saveButton"
type="submit" value="<%= messages("save") %>" />\n <input
id="cancelButton" type="button" value="<%= messages("cancel") %>" />\n
</div>\n</form>\n</div>\n\n</div>\n\n'}),define("text!template/page/page.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="versions" class="ui-tabs
ui-widget ui-corner-all ui-widget-content">\r\n <div
class="vertical-buttons-panel"> </div> \r\n <a id="addVersionLink"
class="button ui-state-default ui-corner-all" \r\n
href="#">\r\n <span class="ui-icon ui-icon-plus"></span> <%=
messages("add_version") %>\r\n </a>\r\n <div
id="auditData">\r\n <div><%= messages("page.state") %>: <span
id="pageState"> </span></div>\r\n <div><%=
messages("page.user_created") %>: <span id="pageCreateUser">
</span></div>\r\n <div><%= messages("creation_date") %>: <span
id="pageCreateDate"> </span></div>\r\n <div><%=
messages("page.user_modified") %>: <span id="pageModUser">
</span></div>\r\n <div><%= messages("modify_date") %>: <span
id="pageModDate"> </span></div>\r\n </div>\r\n</div>\r\n\r\n<div
id="breadcrumbs">\r\n <span class="button ui-state-default
ui-corner-all" style="padding:4px 10px;">\r\n <a href="#pages"><%=
messages("content") %>:</a> \r\n <a id="rootPage">/</a> \r\n
<span id="crumbs"></span>\r\n </span>\r\n</div>\r\n\r\n<div id="tabs"
class="ui-tabs ui-widget ui-widget-content ui-corner-all"\r\n
style="margin-top: 14px;">\r\n\r\n<ul class="ui-tabs-nav ui-helper-reset
ui-helper-clearfix ui-widget-header ui-corner-all">\r\n <li
class="pageTab ui-corner-top ui-state-default">\r\n <a
href="#page/<%= id %>"><%= messages("page") %></a>\r\n </li>\r\n <li
class="contentTab ui-corner-top ui-state-default">\r\n <a
href="#page/content/<%= id %>"><%= messages("content") %></a>\r\n
</li>\r\n <li class="childrenTab ui-corner-top
ui-state-default">\r\n <a href="#page/children/<%= id %>"><%=
messages("page.children_pages") %></a>\r\n </li>\r\n <li
class="commentsTab ui-corner-top ui-state-default">\r\n <a
href="#page/comments/<%= id %>"><%= messages("comments") %></a>\r\n
</li>\r\n <li class="securityTab ui-corner-top
ui-state-default">\r\n <a href="#page/security/<%= id %>"><%=
messages("security") %></a>\r\n </li>\r\n <li class="securityTab
ui-corner-top ui-state-default">\r\n <a href="#page/resources/<%=
id %>"><%= messages("resources") %></a>\r\n </li>\r\n <li
class="securityTab ui-corner-top ui-state-default">\r\n <a
href="#page/attributes/<%= id %>"><%= messages("attributes") %></a>\r\n
</li>\r\n</ul>\r\n\r\n<div id="tab-1" class="contentTab ui-tabs-panel
ui-widget-content ui-corner-bottom">\r\n</div>\r\n\r\n<div
id="version-dialog" style="display:none" title="<%=
messages("page.version_title") %>">\r\n <form id="versionForm">\r\n
<div class="form-row">\r\n <label><%=
messages("page.version_title") %></label>\r\n <input
id="version-title" type="text" /> \r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="versionSaveButton" type="submit"
\r\n value="<%= messages("add") %>" />\r\n <input
id="versionCancelButton" type="button" \r\n value="<%=
messages("cancel") %>" />\r\n </div>\r\n
</form>\r\n</div>\r\n'}),define("text!template/page/content.html",[],function(){return'<%/*\n
Vosao CMS. Simple CMS for Google App Engine.\n \n Copyright (C) 2009-2010
Vosao development team.\n\n This library is free software; you can
redistribute it and/or\n modify it under the terms of the GNU Lesser
General Public\n License as published by the Free Software Foundation;
either\n version 2.1 of the License, or (at your option) any later
version.\n\n This library is distributed in the hope that it will be
useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser
General Public License for more details.\n\n You should have received a
copy of the GNU Lesser General Public\n License along with this library; if
not, write to the Free Software\n Foundation, Inc., 51 Franklin Street,
Fifth Floor, Boston, MA 02110-1301 USA\n\n email:
vosa...@gmail.com\n*/%>\n\n<form id="pageForm">\n\n<div
style="padding-right:10px">\n <div style="float:right">\n <input
id="autosave" type="checkbox" /> <label for="autosave"><%=
messages("autosave") %></label>\n </div>\n <div id="friendlyUrlDiv"
class="form-row">\n <label><%=
messages("page.friendly_url") %></label>\n <span
id="parentFriendlyUrl"></span>\n <input id="friendlyUrl" type="text"
/>\n <span id="friendlyUrlSpan"></span>\n </div>\n <div
class="form-row">\n <label><%=
messages("page.select_language") %>:</label> \n <select
id="language"></select>\n </div>\n <div class="form-row"
style="margin-top:10px;">\n <label><%=
messages("title") %></label>\n <input id="titleLocal" type="text"
class="form-title" size="40" />\n </div>\n <div class="form-row"
id="editorButtons">\n <a id="ckedit"></a>\n </div>\n <div
id="page-content"></div>\n</div>\n<div class="buttons">\n <div
id="approveOnContentSaveDiv" class="checkboxes">\n <input
id="approveOnContentSave" type="checkbox" />\n <label
for="approveOnContentSave"><%=
messages("page.approve_save") %></label>\n </div> \n <input
id="saveContinueContentButton" type="button" \n value="<%=
messages("save_continue") %>" />\n <input id="saveContentButton"
type="submit" \n value="<%= messages("save") %>" />\n <input
id="contentPreviewButton" type="button" \n value="<%=
messages("preview") %>" />\n <input id="approveButton" type="button"
\n value="<%= messages("approve") %>" />\n <input
id="restoreButton" type="button" \n value="<%=
messages("restore") %>" />\n <input id="resetCacheButton" type="button"
\n value="<%= messages("page.reset_cache") %>" />\n <input
id="contentCancelButton" type="button" \n value="<%=
messages("cancel") %>" />\n</div> \n\n</form>\n\n<div
id="restore-dialog" style="display:none" title="<%=
messages("page.restore_content") %>">\n <form id="restoreForm">\n <div
class="form-row">\n <input name="page" type="radio" value="home"
checked="checked"/> \n <%= messages("home_page") %> <br/>
\n <input name="page" type="radio" value="login" /> \n
<%= messages("login_page") %> <br/> \n <input name="page"
type="radio" value="search" /> \n <%=
messages("search_page") %> \n </div>\n <div
class="buttons-dlg">\n <input id="restoreSaveButton" type="submit"
value="OK" />\n <input id="restoreCancelButton" type="button"
value="<%= messages("cancel") %>" />\n </div>\n </form>\n</div>\n\n<div
id="file-upload" title="<%= messages("folder.upload_file") %>"
style="display:none">\n <form id="upload" action="/cms/upload"
method="post" enctype="multipart/form-data">\n <%=
messages("file_upload") %>:\n <input type="hidden" name="fileType"
value="resource" />\n <input type="hidden" name="folderId"
/>\n <input type="file" name="uploadFile" multiple="true"
/>\n <div class="buttons-dlg">\n <input type="submit"
value="<%= messages("send") %>" />\n <input
id="fileUploadCancelButton" type="button" \n value="<%=
messages("cancel") %>" />\n </div>\n
</form>\n</div>\n\n'}),define("text!template/page/index.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<form id="pageForm">\r\n\r\n<div
id="titleDiv" class="form-row">\r\n <label><%=
messages("title") %></label>\r\n <input id="title" type="text"
class="form-title" size="40" />\r\n</div>\r\n<div class="form-row">\r\n
<label><%= messages("page.friendly_url") %></label>\r\n <span
id="parentFriendlyUrl"></span>\r\n <input id="friendlyUrl" type="text"
/>\r\n <span id="friendlyUrlSpan"></span>\r\n</div>\r\n<div
class="form-row">\r\n <label><%= messages("restful") %></label>\r\n
<input id="restful" type="checkbox" />\r\n</div>\r\n<div
class="form-row">\r\n <label><%= messages("template") %></label>\r\n
<select id="templates"></select>\r\n</div>\r\n<div class="form-row">\r\n
<label><%= messages("page.publication_date") %></label>\r\n <input
id="publishDate" type="text" class="datepicker" size="9"/>\r\n <input
id="publishTime" type="text" size="5"/>\r\n -\r\n <input
id="endPublishDate" type="text" class="datepicker" size="9"/>\r\n <input
id="endPublishTime" type="text" size="5"/>\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("enable_comments") %></label>\r\n <input id="commentsEnabled"
type="checkbox" />\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("page.include_search") %></label>\r\n <input id="searchable"
type="checkbox" />\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("page.velocity_processing") %></label>\r\n <input
id="velocityProcessing" type="checkbox" />\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("page.wiki_processing") %></label>\r\n <input
id="wikiProcessing" type="checkbox" />\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("config.enable_ckeditor") %></label>\r\n <input
id="enableCkeditor" type="checkbox" />\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("page.skip_postprocessing") %></label>\r\n <input
id="skipPostProcessing" type="checkbox" />\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("page.cache_enabled") %></label>\r\n <input id="cached"
type="checkbox" />\r\n</div>\r\n<div id="dependenciesDiv"
class="form-row">\r\n <label><%=
messages("cache_dependencies") %></label>\r\n <input id="dependencies"
type="text" class="form-title" size="60" />\r\n</div>\r\n\r\n<div
class="form-row">\r\n <label><%= messages("page.type") %></label>\r\n
<select id="pageType">\r\n <option value="SIMPLE"><%=
messages("simple") %></option>\r\n <option value="STRUCTURED"><%=
messages("structured") %></option>\r\n </select>\r\n</div>\r\n\r\n<div
id="structuredControls">\r\n<div class="form-row">\r\n <label><%=
messages("structure") %></label>\r\n <select
id="structure"></select>\r\n</div>\r\n<div class="form-row">\r\n
<label><%= messages("page.structure_template") %></label>\r\n <select
id="structureTemplate"></select>\r\n</div>\r\n</div>\r\n\r\n<div
id="tagsDiv" class="form-row">\r\n <label><%=
messages("tags") %></label>\r\n <a id="addTag" href="#"><%=
messages("add_tag") %></a>\r\n <span
id="tags"></span>\r\n</div>\r\n\r\n<div class="form-row">\r\n <a
id="metadata" href="#"><%=
messages("page.metadata") %></a>\r\n</div>\r\n<div id="meta"
style="display:none">\r\n<div class="form-row">\r\n <label><%=
messages("page.meta_keywords") %></label>\r\n <textarea id="keywords"
rows="5" cols="80"></textarea>\r\n</div>\r\n<div class="form-row">\r\n
<label><%= messages("page.meta_description") %></label>\r\n <textarea
id="description" rows="5" cols="80"></textarea>\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("page.head_content") %></label>\r\n <textarea id="headHtml"
rows="5" cols="80"></textarea>\r\n</div>\r\n<div class="form-row">\r\n
<label><%= messages("content_type") %></label>\r\n <input
id="contentType" type="text" class="form-title"
/>\r\n</div>\r\n</div>\r\n\r\n<div class="buttons">\r\n <div
id="approveOnPageSaveDiv" class="checkboxes">\r\n <input
id="approveOnPageSave" type="checkbox"> \r\n <label
for="approveOnPageSave"><%= messages("page.approve_save") %></label>\r\n
</div> \r\n <input id="pageSaveButton" type="submit" \r\n
value="<%= messages("save") %>" />\r\n <input id="pagePreview"
type="button" \r\n value="<%= messages("preview") %>" />\r\n
<input id="pageCancelButton" type="button" \r\n value="<%=
messages("cancel") %>" />\r\n</div> \r\n\r\n</form>\r\n\r\n<div
id="tag-dialog" style="display:none" title="<%=
messages("select_tag") %>">\r\n <ul
id="tagTree"></ul>\r\n</div>\r\n\r\n\r\n'}),define("view/page/IndexView",["text!template/page/index.html","view/page/context","view/page/version","view/page/breadcrumbs","jquery.treeview"],function(a,b,c,d){function
f(){b.loadData=g,b.editMode=b.pageId!="",$("#tag-dialog").dialog({width:400,autoOpen:!1}),$(".datepicker").datepicker({dateFormat:"dd.mm.yy"}),Vosao.initJSONRpc(g),$("a.button").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}),c.initVersionDialog(),$("#title").change(p),$("#pageType").change(q),$("#structure").change(w),$("#pageForm").submit(function(){return
o(),!1}),$("#pagePreview").click(r),$("#pageCancelButton").click(s),$("#approveButton").click(t),$("ul.ui-tabs-nav
li:nth-child(1)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default"),$("#metadata").click(function(){$("#meta").toggle()}),$("#addTag").click(z),$("#cached").click(function(){$("#dependenciesDiv").toggle()})}function
g(){console.log("IndexView.js - into
loadData()"),Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,k(),v(),j(),d.breadcrumbsShow()},b.pageId,b.pageParentUrl)}function
h(){
b.page!=null&&b.page.friendlyURL.endsWith("/_default")&&(b.isDefault=!0,$(".securityTab, .commentsTab, .childrenTab,
#approveOnPageSaveDiv, #pagePreview, #versions,
#tagsDiv").hide(),$("#title, #friendlyUrl").attr("disabled",!0))}function
i(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,b.editMode=b.pageId!=null,j()},b.pageId,b.pageParentUrl)}function
j(){console.log("IndexView.js - into
loadPage()"),b.editMode?(b.pageId=String(
b.page.id),b.pageParentUrl=b.page.parentUrl,c.loadVersions(),y(),E()):b.pages[1]=
b.page,l(),u()}function
k(){console.log("IndexView.js - into loadTemplates()");var
a=b.pageRequest.templates,c="";$.each(a.list,function(a,b){c+='<option
value="'+
b.id+'">'+b.title+"</option>"}),$("#templates").html(c),
b.page.id!=null?$("#templates").val(b.page.template):$("#templates").val($.cookie("page_template"))}function
l(){var
a=b.pageParentUrl=="/"?"":"/";$("#title").val(b.page.title),$("#titleDiv").hide(),b.page.parentUrl==""|
|
b.page.parentUrl==null?($("#friendlyUrl").hide(),$("#friendlyUrl").val(""),$("#parentFriendlyUrl").html("/")):($("#friendlyUrl").show(),$("#friendlyUrl").val(b.page.pageFriendlyURL),$("#parentFriendlyUrl").html(b.page.parentFriendlyURL+a)),b.pageRequest.children.list.length>0&&($("#parentFriendlyUrl").hide(),$("#friendlyUrl").hide(),$("#friendlyUrlSpan").html(b.page.friendlyURL)),$("#pageType").val(b.page.pageTypeString),$("#publishDate").val(b.page.publishDateString),$("#publishTime").val(b.page.publishTimeString),$("#endPublishDate").val(b.page.endPublishDateString),$("#endPublishTime").val(b.page.endPublishTimeString),$("#commentsEnabled").each(function(){this.checked=b.page.commentsEnabled}),$("#searchable").each(function(){this.checked=b.page.searchable}),$("#velocityProcessing").each(function(){this.checked=b.page.velocityProcessing}),$("#wikiProcessing").each(function(){this.checked=b.page.wikiProcessing}),$("#enableCkeditor").each(function(){this.checked=b.page.enableCkeditor}),$("#skipPostProcessing").each(function(){this.checked=b.page.skipPostProcessing}),$("#cached").each(function(){this.checked=b.page.cached}),$("#restful").each(function(){this.checked=b.page.restful}),$("#templates").val(b.page.template),$("#pageState").html(b.page.stateString=="EDIT"?messages("edit"):messages("approved")),$("#pageCreateDate").html(b.page.createDateTimeString),$("#pageModDate").html(b.page.modDateTimeString),$("#pageCreateUser").html(b.page.createUserEmail),$("#pageModUser").html(b.page.modUserEmail),$("#keywords").val(b.page.keywords),$("#description").val(b.page.description),$("#headHtml").val(b.page.headHtml),$("#dependencies").val(b.pageRequest.dependencies),$("#contentType").val(b.page.contentType),b.page.cached?$("#dependenciesDiv").show():$("#dependenciesDiv").hide(),
b.page.id!=null?($(".contentTab").show(),$(".childrenTab").show(),$(".commentsTab").show(),$(".securityTab").show(),$("#pagePreview").show(),$("#versions").show(),$("#tagsDiv").show()):($(".contentTab").hide(),$(".childrenTab").hide(),$(".commentsTab").hide(),$(".securityTab").hide(),$("#pagePreview").hide(),$("#versions").hide(),$("#tagsDiv").hide()),h(),q()}function
m(){return
Vosao.strip($("#publishDate").val())+" "+Vosao.strip($("#publishTime").val())+":00"}function
n(){return
$("#endPublishDate").val()?Vosao.strip($("#endPublishDate").val())+" "+Vosao.strip($("#endPublishTime").val())+":00":""}function
o(){var
a=Vosao.javaMap({id:b.pageId,titles:x(),friendlyUrl:$("#parentFriendlyUrl").text()+$("#friendlyUrl").val(),publishDate:m(),endPublishDate:n(),commentsEnabled:String($("#commentsEnabled:checked").size()>0),searchable:String($("#searchable:checked").size()>0),velocityProcessing:String($("#velocityProcessing:checked").size()>0),wikiProcessing:String($("#wikiProcessing:checked").size()>0),enableCkeditor:String($("#enableCkeditor:checked").size()>0),skipPostProcessing:String($("#skipPostProcessing:checked").size()>0),cached:String($("#cached:checked").size()>0),restful:String($("#restful:checked").size()>0),template:$("#templates
option:selected").val(),approve:String($("#approveOnPageSave:checked,
#approveOnContentSave:checked").size()>0),pageType:$("#pageType").val(),structureId:$("#structure").val(),structureTemplateId:$("#structureTemplate").val(),keywords:$("#keywords").val(),description:$("#description").val(),dependencies:$("#dependencies").val(),contentType:$("#contentType").val(),headHtml:$("#headHtml").val()});$.cookie("page_template",a.map.template,{path:"/",expires:10}),Vosao.jsonrpc.pageService.savePage(function(a){a.result=="success"?(b.editMode&&(location.href="#pages"),b.pageId=a.message,Vosao.info(messages("page.success_save")),location.href="#page/content/"+b.pageId):Vosao.showServiceMessages(a)},a)}function
p(){if(b.editMode)return;var
a=$("#friendlyUrl").val(),c=$("#title").val();a==""&&$("#friendlyUrl").val(Vosao.urlFromTitle(c))}function
q(){$("#pageType").val()=="SIMPLE"&&$("#structuredControls").hide(),$("#pageType").val()=="STRUCTURED"&&($("#structuredControls").show(),
b.page!=null&&$("#structure").val(b.page.structureId),w())}function
r(){var
a=b.page.friendlyURL+"?language="+b.currentLanguage+"&version="+b.page.version;window.open(a,"preview")}function
s(){location.href="#pages"}function
t(){Vosao.jsonrpc.pageService.approve(function(a){Vosao.showServiceMessages(a),i()},b.pageId)}function
u(){var
a=b.pageRequest.pagePermission;a.publishGranted?($("#approveButton").show(),$("#approveOnPageSaveDiv").show()):($("#approveButton").hide(),$("#approveOnPageSaveDiv").hide()),a.changeGranted?$("#pageSaveButton").show():$("#pageSaveButton").hide(),a.admin&&b.editMode?$(".securityTab").show():$(".securityTab").hide(),h()}function
v(){console.log("IndexView.js - into loadStructures()");var
a="";$.each(b.pageRequest.structures.list,function(b,c){var
d=b==0?'selected="selected"':"";a+="<option "+d+'
value="'+
c.id+'">'+c.title+"</option>"}),$("#structure").html(a)}function
w(){var
a=$("#structure").val(),c="";Vosao.jsonrpc.structureTemplateService.selectByStructure(function(a){var
c="";$.each(a.list,function(a,b){var
d=a==0?'selected="selected"':"";c+="<option "+d+'
value="'+
b.id+'">'+b.title+"</option>"}),$("#structureTemplate").html(c),
b.page!=null&&$("#structureTemplate").val(b.page.structureTemplateId)},a)}function
x(){if(!b.editMode)return'{en:"'+$("#title").val()+'"}'}function
y(){console.log("IndexView.js - into loadLanguages()");var
a=b.pageRequest.languages;languages={};var
c="";$.each(a.list,function(a,b){languages[b.code]=b}),console.log("loadLanguages :
positionning
ctx.currentLanguage..."),b.currentLanguage=b.pageRequest.config.defaultLanguage,console.log("loadLanguages :
ctx.currentLanguage = "+b.currentLanguage)}function
z(){Vosao.jsonrpc.tagService.getTree(function(a){$("#tagTree").html(A(a.list)),$("#tagTree
li > a").click(function(){var
a=$(this).attr("data-id");a&&C(a)}),$("#tagTree").treeview({animated:"fast",collapsed:!0,unique:!0,persist:"cookie",cookieId:"tagTree"}),$("#tag-dialog").dialog("open")})}function
A(a){var b="";return $.each(a,function(a,c){b+=B(c)}),b}function B(a){var
b='<li><a data-id="'+
a.entity.id+'">'+
a.entity.name+"</a>";return
a.children.list.length>0&&(b+="<ul>",$.each(a.children.list,function(a,c){b+=B(c)}),b+="</ul>"),b+"</li>"}function
C(a){Vosao.jsonrpc.tagService.addTag(function(a){Vosao.showServiceMessages(a),$("#tag-dialog").dialog("close"),D()},b.page.friendlyURL,a)}function
D(){Vosao.jsonrpc.pageService.getPageTags(function(a){b.pageRequest.tags=a,E()},b.page.friendlyURL)}function
E(){var a="";$.each(b.pageRequest.tags.list,function(b,c){a+='<span
class="tag">'+
c.name+' <a data-id="'+
c.id+'"><img
src="/static/images/02_x.png"/></a></span>'}),$("#tags").html(a),$("#tags .tag
> a").click(function(){var a=$(this).attr("data-id");a&&F(a)})}function
F(a){Vosao.jsonrpc.tagService.removeTag(function(a){Vosao.showServiceMessages(a),D()},b.page.friendlyURL,a)}console.log("Loading
IndexView.js");var e=null;return
Backbone.View.extend({css:"/static/css/jquery.treeview.css",el:$("#tab-1"),tmpl:_.template(a),render:function(){Vosao.addCSSFile(this.css),this.el=$("#tab-1"),this.el.html(this.tmpl({messages:messages})),f()},remove:function(){$("#tag-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)}})}),define("text!template/page/children.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="children"> </div>\r\n<div
class="buttons">\r\n <input id="addChildButton" type="button" value="<%=
messages("add_child_page") %>" />\r\n <input id="deleteChildButton"
type="button" value="<%= messages("delete_pages") %>" />\r\n <input
id="defaultSettingsButton" type="button" value="<%=
messages("default_settings") %>" />\r\n</div> \r\n\r\n<div
id="page-dialog" style="display:none" title="<%=
messages("pages.new_page") %>">\r\n <form id="pageForm">\r\n <div
class="form-row">\r\n <label><%=
messages("pages.page_title") %></label>\r\n <input
id="title"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("pages.page_url") %></label>\r\n <span
id="parentURL"></span> <input id="url"/>\r\n </div>\r\n <div
id="pageMessages"></div>\r\n <div class="buttons-dlg">\r\n <input
id="saveDlgButton" type="submit" value="<%= messages("save") %>"
/>\r\n <input id="cancelDlgButton" type="button" value="<%=
messages("cancel") %>" />\r\n </div>\r\n </form>
\r\n</div>\r\n'}),define("view/page/ChildrenView",["text!template/page/children.html","view/page/context","view/page/version","view/page/breadcrumbs"],function(a,b,c,d){function
g(){b.loadData=h,$("#page-dialog").dialog({width:400,autoOpen:!1}),Vosao.initJSONRpc(h),$("a.button").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}),c.initVersionDialog(),$("#addChildButton").click(m),$("#deleteChildButton").click(n),$("#defaultSettingsButton").click(s),$("ul.ui-tabs-nav
li:nth-child(3)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default"),$("#cancelDlgButton").click(t),$("#pageForm").submit(function(){return
w(),!1}),$("#title").change(u)}function
h(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,j(),d.breadcrumbsShow()},b.pageId,b.pageParentUrl)}function
i(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,b.editMode=b.pageId!=null,j()},b.pageId,b.pageParentUrl)}function
j(){b.editMode?(pageId=String(
b.page.id),pageParentUrl=b.page.parentUrl,l(),c.loadVersions(),c.showAuditInfo()):pages[1]=
b.page,o()}function
k(){Vosao.jsonrpc.pageService.getChildren(function(a){b.pageRequest.children=a,l()},b.page.friendlyURL)}function
l(){f=b.pageRequest.children.list;var a='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th><th>"+messages("page.friendly_url")+"</th><th></th></tr>";$.each(f,function(b,c){a+='<tr><td><input
type="checkbox" value="'+
c.id+'"/></td><td><a
href="#page/content/'+
c.id+'">'+c.title+"</a></td><td>"+c.friendlyURL+'</td>\t\t\t<td><a
class="pageup" data-n="'+b+'"><img
src="/static/images/02_up.png"/></a>\t <a class="pagedown"
data-n="'+b+'"><img src="/static/images/02_down.png"/></a>\t
</td></tr>'}),$("#children").html(a+"</table>"),$("#children
tr:even").addClass("even"),$("a.pageup").click(function(){p(Number($(this).attr("data-n")))}),$("a.pagedown").click(function(){q(Number($(this).attr("data-n")))})}function
m(){$("#ui-dialog-title-page-dialog").text(messages("pages.new_page")),e=b.page.friendlyURL=="/"?"":b.page.friendlyURL,$("#page-dialog").dialog("open"),$("#parentURL").html(e+"/"),$("#title").val(""),$("#url").val(""),$("#title").focus()}function
n(){var a=[];$("#children
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.pageService.deletePages(function(a){Vosao.showServiceMessages(a),k()},Vosao.javaList(a))}function
o(){var
a=b.pageRequest.pagePermission;a.changeGranted?($("#addChildButton").show(),$("#deleteChildButton").show()):($("#addChildButton").hide(),$("#deleteChildButton").hide()),a.admin&&b.editMode?$(".securityTab").show():$(".securityTab").hide()}function
p(a){a-1>=0&&(Vosao.jsonrpc.pageService.moveUp(function(a){},f[a].id),f[a].sortIndex--,f[a-1].sortIndex++,r(a,a-1),k())}function
q(a){a+1<f.length&&(Vosao.jsonrpc.pageService.moveDown(function(a){},f[a].id),f[a+1].sortIndex--,f[a].sortIndex++,r(a,a+1),k())}function
r(a,b){var c=f[b];f[b]=f[a],f[a]=c}function
s(){Vosao.jsonrpc.pageService.getPageDefaultSettings(function(a){location.href="#page/"+
a.id},b.page.friendlyURL)}function
t(){$("#page-dialog").dialog("close")}function u(){var
a=$("#url").val(),b=$("#title").val();a==""&&$("#url").val(Vosao.urlFromTitle(b))}function
v(a){if(a.title=="")return
messages("title_is_empty");if(a.title.indexOf(",")!=-1)return
messages("pages.coma_not_allowed");if(a.url=="")return
messages("pages.url_is_empty");if(a.url.indexOf("/")!=-1)return
messages("pages.slash_not_allowed")}function w(){var
a={id:"",title:$("#title").val(),url:$("#url").val(),friendlyUrl:e+"/"+$("#url").val()},b=v(a);b?x(b):Vosao.jsonrpc.pageService.savePage(function(a){a.result=="success"?(Vosao.info(messages("pages.success_created")),$("#page-dialog").dialog("close"),location.href="#page/content/"+a.message):x(a.message)},Vosao.javaMap(a))}function
x(a){Vosao.errorMessage("#pageMessages",a)}console.log("Loading
ChildrenView.js");var e=null,f=null;return
Backbone.View.extend({css:"/static/css/children.css",el:$("#tab-1"),tmpl:_.template(a),render:function(){Vosao.addCSSFile(this.css),this.el=$("#tab-1"),this.el.html(this.tmpl({messages:messages})),g()},remove:function(){$("#page-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)}})}),define("text!template/page/comments.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="comments"> </div>\r\n<div
class="buttons">\r\n <input id="enableCommentsButton" type="button"
\r\n value="<%= messages("enable_comments") %>" />\r\n <input
id="disableCommentsButton" type="button" \r\n value="<%=
messages("disable_comments") %>" />\r\n <input id="deleteCommentsButton"
type="button" \r\n value="<%= messages("delete_comments") %>"
/>\r\n</div>
\r\n'}),define("view/page/CommentsView",["text!template/page/comments.html","view/page/context","view/page/version","view/page/breadcrumbs"],function(a,b,c,d){function
e(){b.loadData=f,b.editMode=b.pageId!="",Vosao.initJSONRpc(f),$("a.button").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}),c.initVersionDialog(),$("#enableCommentsButton").click(j),$("#disableCommentsButton").click(k),$("#deleteCommentsButton").click(l),$("ul.ui-tabs-nav
li:nth-child(4)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
f(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,h(),d.breadcrumbsShow()},b.pageId,b.pageParentUrl)}function
g(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,b.editMode=b.pageId!=null,h()},b.pageId,b.pageParentUrl)}function
h(){b.editMode?(b.pageId=String(
b.page.id),b.pageParentUrl=b.page.parentUrl,c.loadVersions(),i(),c.showAuditInfo()):b.pages[1]=
b.page,m()}function
i(){var a=b.pageRequest.comments,c='<table
class="form-table"><tr><th></th><th>'+messages("state")+"</th><th>"+messages("name")+"</th><th>"+messages("content")+"</th></tr>";$.each(a.list,function(a,b){var
d=b.disabled?messages("disabled"):messages("enabled");c+='<tr><td><input
type="checkbox"
value="'+
b.id+'"/></td><td>'+d+"</a></td><td>"+
b.name+"</td><td>"+b.content+"</td></tr>"}),$("#comments").html(c+"</table>"),$("#comments
tr:even").addClass("even")}function j(){var a=[];$("#comments
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}Vosao.jsonrpc.commentService.enableComments(function(a){Vosao.showServiceMessages(a),f()},Vosao.javaList(a))}function
k(){var a=[];$("#comments
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}Vosao.jsonrpc.commentService.disableComments(function(a){Vosao.showServiceMessages(a),f()},Vosao.javaList(a))}function
l(){var a=[];$("#comments
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.commentService.deleteComments(function(a){Vosao.showServiceMessages(a),f()},Vosao.javaList(a))}function
m(){var
a=b.pageRequest.pagePermission;a.changeGranted?($("#enableCommentsButton").show(),$("#disableCommentsButton").show(),$("#deleteCommentsButton").show()):($("#enableCommentsButton").hide(),$("#disableCommentsButton").hide(),$("#deleteCommentsButton").hide()),a.admin&&b.editMode?$(".securityTab").show():$(".securityTab").hide()}return
console.log("Loading
CommentsView.js"),Backbone.View.extend({el:$("#tab-1"),tmpl:_.template(a),render:function(){this.el=$("#tab-1"),this.el.html(this.tmpl({messages:messages})),e()},remove:function(){this.el.html("")}})}),define("text!template/page/security.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n \r\n<div id="permissions"> </div>\r\n<div
class="buttons">\r\n <input id="addPermissionButton" type="button"
\r\n value="<%= messages("add_permission") %>" />\r\n <input
id="deletePermissionButton" type="button" \r\n value="<%=
messages("delete_permission") %>" />\r\n</div> \r\n\r\n<div
id="permission-dialog" style="display:none" title="<%=
messages("permission_details") %>">\r\n <form id="permissionForm">\r\n
<div class="form-row">\r\n <label><%=
messages("group") %></label>\r\n <select
id="groupSelect"></select>\r\n <span id="groupName"></span>
\r\n </div>\r\n <div id="permissionList" class="form-row">\r\n
<fieldset>\r\n <legend><%=
messages("permission") %></legend>\r\n <input type="radio"
name="permission" value="DENIED"/> <%= messages("denied") %> <br
/>\r\n <input type="radio" name="permission" value="READ" /> <%=
messages("read") %> <br />\r\n <input type="radio"
name="permission" value="WRITE" /> <%= messages("read_write") %> <br
/>\r\n <input type="radio" name="permission" value="PUBLISH" />
<%= messages("read_write_publish") %> <br />\r\n <input
type="radio" name="permission" value="ADMIN" /> <%=
messages("read_write_publish_grant") %> <br />\r\n
</fieldset> \r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("page.all_languages") %></label>\r\n <input
id="allLanguages" type="checkbox" checked="checked" />\r\n </div>
\r\n <div id ="permLanguages" class="form-row" style="display:none">
</div>\r\n <div class="buttons-dlg">\r\n <input
id="permissionSaveButton" type="submit" \r\n value="<%=
messages("save") %>" />\r\n <input id="permissionCancelButton"
type="button" \r\n value="<%= messages("cancel") %>" />\r\n
</div>\r\n
</form>\r\n</div>\r\n\r\n'}),define("view/page/SecurityView",["text!template/page/security.html","view/page/context","view/page/version","view/page/breadcrumbs"],function(a,b,c,d){function
i(){b.loadData=j,b.editMode=b.pageId!="",Vosao.initJSONRpc(j),$("a.button").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}),c.initVersionDialog(),$("#permission-dialog").dialog({width:400,autoOpen:!1}),$("#addPermissionButton").click(v),$("#deletePermissionButton").click(w),$("#permissionForm").submit(function(){return
u(),!1}),$("#permissionCancelButton").click(x),$("#allLanguages").change(y),$("ul.ui-tabs-nav
li:nth-child(5)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
j(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,m(),l(),d.breadcrumbsShow()},b.pageId,b.pageParentUrl)}function
k(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,b.editMode=b.pageId!=null,l()},b.pageId,b.pageParentUrl)}function
l(){b.editMode?(b.pageId=String(
b.page.id),b.pageParentUrl=b.page.parentUrl,c.loadVersions(),p(),q()):b.pages[1]=
b.page,z()}function
m(){var a=b.pageRequest.languages;h={};var
c="";$.each(a.list,function(a,b){h[b.code]=b}),r()}function
n(a){if(a=="DENIED")return messages("denied");if(a=="READ")return
messages("read");if(a=="WRITE")return
messages("read_write");if(a=="PUBLISH")return
messages("read_write_publish");if(a=="ADMIN")return
messages("read_write_publish_grant")}function
o(){Vosao.jsonrpc.contentPermissionService.selectByUrl(function(a){b.pageRequest.permissions=a,p()},b.page.friendlyURL)}function
p(){var a=b.pageRequest.permissions;f=Vosao.idMap(a.list);var c='<table
class="form-table"><tr><th></th><th>'+messages("group")+"</th><th>"+messages("permission")+"</th><th>"+messages("languages")+"</th></tr>";$.each(f,function(a,b){var
d="",e=
b.group.name;b.inherited||(d='<input type="checkbox"
value="'+
b.id+'">',e='<a data-id="'+
b.id+'"> '+
b.group.name+"</a>");var
f=b.allLanguages?messages("page.all_languages"):b.languages;c+="<tr><td>"+d+"</td><td>"+e+"</td><td>"+n(b.permission)+"</td><td>"+f+"</td></tr>"}),$("#permissions").html(c+"</table>"),$("#permissions
tr:even").addClass("even"),$("#permissions a").click(function(){var
a=$(this).attr("data-id");a&&s(a)})}function q(){var
a=b.pageRequest.groups;g=Vosao.idMap(a.list);var
c="";$.each(g,function(a,b){c+='<option
value="'+
b.id+'">'+
b.name+"</option>"}),$("#groupSelect").html(c)}function
r(){var
a="<fieldset><legend>"+messages("languages")+"</legend>";$.each(h,function(b,c){a+='<input
type="checkbox" value="'+c.code+'" /> '+c.title+"<br
/>"}),$("#permLanguages").html(a+"</fieldset>")}function
s(a){e=f[a],t(),$("#permission-dialog").dialog("open")}function
t(){$("#permission-dialog
input[type=radio]").removeAttr("checked"),$("#allLanguages").attr("checked","checked"),$("#permLanguages").hide();if(e==null)$("#permission-dialog
input[value=READ]").attr("checked","checked"),$("#groupSelect").show(),$("#groupName").hide();else{$("#permissionList
input[value="+e.permission+"]").attr("checked","checked"),$("#groupSelect").hide(),$("#groupName").show(),$("#groupName").text(
e.group.name);if(!e.allLanguages){$("#allLanguages").removeAttr("checked"),$("#permLanguages").show();var
a=e.languages.split(",");$("#permLanguages
input").removeAttr("checked"),$.each(a,function(a,b){$("#permLanguages
input[value="+b+"]").attr("checked","checked")})}}}function u(){var
a="";$("#permLanguages
input:checked").each(function(){a+=(a==""?"":",")+this.value});var
c={url:b.page.friendlyURL,groupId:e==null?$("#groupSelect").val():String(
e.group.id),permission:$("#permissionList
input:checked")[0].value,languages:$("#allLanguages")[0].checked?"":a};Vosao.jsonrpc.contentPermissionService.save(function(a){Vosao.showServiceMessages(a),$("#permission-dialog").dialog("close"),a.result=="success"&&o()},Vosao.javaMap(c))}function
v(){e=null,t(),$("#permission-dialog").dialog("open")}function w(){var
a=[];$("#permissions
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.contentPermissionService.remove(function(a){Vosao.showServiceMessages(a),o()},Vosao.javaList(a))}function
x(){$("#permission-dialog").dialog("close")}function
y(){this.checked?$("#permLanguages").hide():$("#permLanguages").show()}function
z(){var
a=b.pageRequest.pagePermission;a.admin&&b.editMode?$(".securityTab").show():$(".securityTab").hide()}console.log("Loading
SecurityView.js");var e=null,f=null,g=null,h={};return
Backbone.View.extend({el:$("#tab-1"),tmpl:_.template(a),render:function(){this.el=$("#tab-1"),this.el.html(this.tmpl({messages:messages})),i()},remove:function(){$("#permission-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/page/attributes.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="attributes"> </div>\r\n<div
class="buttons">\r\n <input id="addButton" type="button" \r\n
value="<%= messages("add_attribute") %>" />\r\n <input id="deleteButton"
type="button" \r\n value="<%= messages("delete_attribute") %>"
/>\r\n</div> \r\n\r\n<div id="attribute-dialog" style="display:none"
title="<%= messages("attribute") %>">\r\n <form id="attributeForm">\r\n
<div class="form-row">\r\n <label><%=
messages("name") %></label>\r\n <input id="name"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("title") %></label>\r\n <input id="title"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("default_value") %></label>\r\n <input
id="defaultValue" type="text"/>\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("inherited") %></label>\r\n <input type="checkbox"
id="inherited" />\r\n </div>\r\n <div class="buttons-dlg">\r\n
<input id="saveButton" type="submit" value="<%= messages("save") %>"
/>\r\n <input id="cancelButton" type="button" value="<%=
messages("cancel") %>" />\r\n </div>\r\n </form>\r\n</div>\r\n\r\n<div
id="attrValue-dialog" style="display:none" title="<%=
messages("attribute") %>">\r\n <form id="attrValueForm">\r\n <div
class="form-row">\r\n <label><%=
messages("name") %></label>\r\n <span id="attrName" />\r\n
</div>\r\n <div class="form-row">\r\n <label><%=
messages("language") %></label>\r\n <select id="language"/>\r\n
</div>\r\n <div class="form-row">\r\n <label><%=
messages("value") %></label>\r\n <input id="value"
type="text"/>\r\n </div>\r\n <div id="applyChildren"
class="form-row">\r\n <label><%=
messages("page.apply_children") %></label>\r\n <input
type="checkbox" id="attrInherited" />\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="saveValueButton" type="submit"
value="<%= messages("save") %>" />\r\n <input id="cancelValueButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form>\r\n</div>'}),define("view/page/AttributesView",["text!template/page/attributes.html","view/page/context","view/page/version","view/page/breadcrumbs"],function(attributesHtml,ctx,version,breadcrumbs){function
postRender(){ctx.loadData=loadData,ctx.editMode=ctx.pageId!="",$("#attribute-dialog").dialog({width:430,autoOpen:!1}),$("#attrValue-dialog").dialog({width:430,autoOpen:!1}),Vosao.initJSONRpc(loadData),$("a.button").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}),version.initVersionDialog(),$("#addButton").click(onAdd),$("#cancelButton").click(function(){$("#attribute-dialog").dialog("close")}),$("#cancelValueButton").click(function(){$("#attrValue-dialog").dialog("close")}),$("#attributeForm").submit(function(){return
onSave(),!1}),$("#attrValueForm").submit(function(){return
onSaveValue(),!1}),$("#deleteButton").click(onDelete),$("#language").change(onLanguageChange),$("ul.ui-tabs-nav
li:nth-child(7)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
loadData(){Vosao.jsonrpc.pageService.getPageRequest(function(a){ctx.pageRequest=a,
ctx.page=
ctx.pageRequest.page,loadPage(),breadcrumbs.breadcrumbsShow()},ctx.pageId,ctx.pageParentUrl)}function
callLoadPage(){Vosao.jsonrpc.pageService.getPageRequest(function(a){ctx.pageRequest=a,
ctx.page=
ctx.pageRequest.page,ctx.editMode=ctx.pageId!=null,loadPage()},ctx.pageId,ctx.pageParentUrl)}function
loadPage(){ctx.editMode?(ctx.pageId=String(
ctx.page.id),ctx.pageParentUrl=ctx.page.parentUrl,version.loadVersions(),loadLanguages(),version.showAuditInfo(),attrValues=ctx.page.attributes?eval("("+ctx.page.attributes+")"):{},loadAttributes()):ctx.pages[1]=
ctx.page,loadPagePermission()}function
loadLanguages(){var a=ctx.pageRequest.languages;languages={};var
b="";$.each(a.list,function(a,c){languages[c.code]=c,b+='<option
value="'+c.code+'" '+">"+c.title+"</option>"}),$("#language").html(b),$("#language").val(Vosao.ENGLISH_CODE)}function
loadPagePermission(){var
a=ctx.pageRequest.pagePermission;a.changeGranted?($("#enableCommentsButton").show(),$("#disableCommentsButton").show(),$("#deleteCommentsButton").show()):($("#enableCommentsButton").hide(),$("#disableCommentsButton").hide(),$("#deleteCommentsButton").hide()),a.admin&&ctx.editMode?$(".securityTab").show():$(".securityTab").hide()}function
loadAttributes(){Vosao.jsonrpc.pageAttributeService.getByPage(function(a){attributes=a.list,showAttributes()},ctx.page.friendlyURL)}function
showAttributes(){var a='<table
class="form-table"><tr><th></th><th>'+messages("name")+"</th><th>"+messages("value")+"</th><th>"+messages("inherited")+"</th></tr>";$.each(attributes,function(b,c){attributesMap[
c.name]=c;var
d=c.inherited?messages("inherited"):"";a+='<tr><td><input type="checkbox"
value="'+
c.id+'"/></td><td><a
data-name="'+
c.name+'">'+
c.name+"</a></td><td>"+getAttributeValue(
c.name,Vosao.ENGLISH_CODE)+"</td><td>"+d+"</td></tr>"}),$("#attributes").html(a+"</table>"),$("#attributes
tr:even").addClass("even"),$("#attributes a").click(function(){var
a=$(this).attr("data-name");a&&onEditValue(a)})}function
onAdd(){$("#name").val(""),$("#title").val(""),$("#defaultValue").val(""),$("#inherited").each(function(){this.checked=!1}),$("#attribute-dialog").dialog("open")}function
onDelete(){var a=[];$("#attributes
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.pageAttributeService.remove(function(a){Vosao.showServiceMessages(a),loadData()},Vosao.javaList(a),
ctx.page.id)}function
onSave(){var
a={id:attrDef==null?"":String(attrDef.id),url:ctx.page.friendlyURL,name:$("#name").val(),title:$("#title").val(),inherited:String($("#inherited:checked").size()>0),defaultValue:$("#defaultValue").val()};Vosao.jsonrpc.pageAttributeService.save(function(b){b.result=="success"?(Vosao.info(messages("page.success_save")),$("#attribute-dialog").dialog("close"),loadData(),a.inherited=$("#inherited:checked").size()>0,attributesMap[
a.name]=a,a.inherited&&a.defaultValue?loadData():onEditValue(
a.name)):Vosao.showServiceMessages(b)},Vosao.javaMap(a))}function
getAttributeValue(a,b){return
attrValues[a]&&attrValues[a][b]?attrValues[a][b]:""}function
onEditValue(a){$("#attrValue-dialog").dialog("open"),$("#attrName").html(a),$("#attrInherited").each(function(){this.checked=!1}),attributesMap[a].inherited?$("#applyChildren").show():$("#applyChildren").hide();var
b=getAttributeValue(a,$("#language").val());!b&&attributesMap[a].defaultValue&&confirm(messages("page.use_default_value"))&&(b=attributesMap[a].defaultValue),$("#value").val(b),$("#language").val(Vosao.ENGLISH_CODE)}function
checkPageAttrValue(a,b){attrValues[a]==undefined&&(attrValues[a]={}),attrValues[a][b]==undefined&&(attrValues[a][b]="")}function
setPageAttrValue(a,b,c){checkPageAttrValue(a,b),attrValues[a][b]=c}function
getPageAttrValue(a,b){return
checkPageAttrValue(a,b),attrValues[a][b]}function onLanguageChange(){var
a=$("#attrName").text(),b=$("#language").val(),c=getPageAttrValue(a,b);!c&&attributesMap[a].defaultValue&&confirm(messages("page.use_default_value"))&&(c=attributesMap[a].defaultValue),$("#value").val(c)}function
onSaveValue(){var
a=$("#attrName").text(),b=$("#language").val(),c=$("#value").val();setPageAttrValue(a,b,c),Vosao.jsonrpc.pageService.saveAttribute(function(a){a.result=="success"?($("#attrValue-dialog").dialog("close"),Vosao.info(messages("success")),loadData()):Vosao.showServiceMessages(a)},
ctx.page.id,a,c,b,$("#attrInherited:checked").size()>0)}console.log("Loading
AttributesView.js");var
attrDef=null,attributes=null,attributesMap={},attrValues={},languages=null;return
Backbone.View.extend({el:$("#tab-1"),tmpl:_.template(attributesHtml),render:function(){this.el=$("#tab-1"),this.el.html(this.tmpl({messages:messages})),postRender()},remove:function(){$("#attribute-dialog,
#attrValue-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/profile.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n\r\n
<ul>\r\n <li><a href="#tab-1"><%=
messages("profile.title") %></a></li>\r\n </ul>\r\n <div
id="tab-1">\r\n\r\n <div class="form-row">\r\n <label><%=
messages("profile.username") %></label>\r\n <input id="name"
type="text" />\r\n </div>\r\n\r\n <div
class="form-row">\r\n <label><%=
messages("profile.user_email") %></label>\r\n <input id="email"
type="text" disabled="disabled"/>\r\n </div>\r\n\r\n <div
class="form-row">\r\n <label><%=
messages("password") %></label>\r\n <input id="password1"
type="password" />\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("profile.retype_password") %></label>\r\n <input
id="password2" type="password" />\r\n </div>\r\n\r\n <div
class="form-row">\r\n <label><%=
messages("profile.timezone") %></label>\r\n <select
id="timezone"></select>\r\n </div>\r\n\r\n <div
class="buttons">\r\n <input id="saveButton" type="button"
value="<%= messages("save") %>" />\r\n </div>\r\n\r\n
</div>\r\n\r\n</div>\r\n\r\n'}),define("view/ProfileView",["text!template/profile.html"],function(a){function
d(){$("#tabs").tabs(),Vosao.initJSONRpc(e),$("#saveButton").click(h)}function
e(){Vosao.jsonrpc.userService.getTimezones(function(a){c=a.list,i(),f()})}function
f(){Vosao.jsonrpc.userService.getLoggedIn(function(a){b=a,$("#name").val(
b.name),$("#email").val(b.email),$("#password1").val(""),$("#password2").val(""),$("#timezone").val(b.timezone)})}function
g(){var a=$("#password1").val(),b=$("#password2").val();return a||
b?a==b?!0:!1:!0}function h(){var
a="";if(g())a=$("#password1").val();else{Vosao.error(messages("profile.password_dont_match"));return}var
c={id:String(
b.id),name:$("#name").val(),timezone:$("#timezone").val(),password:a};Vosao.jsonrpc.userService.save(function(a){Vosao.showServiceMessages(a)},Vosao.javaMap(c))}function
i(){var a="";$.each(c,function(b,c){a+='<option
value="'+c+'">'+c+"</option>"}),$("#timezone").html(a)}console.log("Loading
ProfileView.js");var b=null,c=null;return
Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{messages:messages})),d()},remove:function(){this.el.html("")}})}),define("text!template/plugins/index.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="main-panel">\r\n
<div>\r\n <img src="/static/images/config.png" />\r\n <a
href="#plugins/config"><%= messages("plugins.config") %></a>\r\n
<p><%= messages("plugins.config_info") %></p>\r\n </div>\r\n
<div>\r\n <img src="/static/images/form.png" />\r\n <a
href="#plugins/forms"><%= messages("forms") %></a>\r\n <p><%=
messages("plugins.forms_info") %></p>\r\n </div>\r\n <div>\r\n
<img src="/static/images/seo_urls.png" />\r\n <a
href="#plugins/seo-urls"><%= messages("plugins.seo_urls") %></a>\r\n
<p><%= messages("plugins.seo_urls_info") %></p>\r\n
</div>\r\n</div>\r\n\r\n'}),define("view/plugins/PluginsView",["text!template/plugins/index.html"],function(a){return
console.log("Loading
PluginsView.js"),Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{messages:messages}))},remove:function(){this.el.html("")}})}),define("text!template/plugins/plugin.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n<ul>\r\n <li><a
id="plugin-title" href="#tab-1"><%=
messages("plugin") %></a></li>\r\n</ul>\r\n\r\n<div id="tab-1">\r\n <div
id="properties"></div>\r\n <div class="buttons">\r\n <input
id="saveButton" type="button" value="<%= messages("save") %>" />\r\n
<input id="cancelButton" type="button" value="<%= messages("cancel") %>"
/>\r\n
</div>\r\n</div>\r\n\r\n</div>\r\n\r\n'}),define("view/plugins/PluginView",["text!template/plugins/plugin.html"],function(a){function
d(){$("#tabs").tabs(),Vosao.initJSONRpc(e),$("#cancelButton").click(h),$("#saveButton").click(m)}function
e(){f(),g()}function
f(){Vosao.jsonrpc.pluginService.getById(function(a){b=a,$("#plugin-title").text(
b.name+" "+messages("plugin.config")),j()},pluginId)}function
g(){Vosao.jsonrpc.pluginService.getProperties(function(a){c=a.list,j()},pluginId)}function
h(){location.href="#plugins"}function i(a){return a==null?"":a}function
j(){if(b==null||c==null)return;var a="",d=k();$.each(c,function(b,c){var
e=i(d[c.name.toLowerCase()]?d[c.name.toLowerCase()]:c.defaultValue),f=Vosao.message(c.title);if(c.type=="String"|
|c.type=="Integer")a+='<div class="form-row"><label>'+f+"</label>"+'<input
id="property-'+
c.name+'"
value="'+Vosao.escapeHtml(e)+'"/></div>';c.type=="Date"&&(a+='<div
class="form-row"><label>'+f+"</label>"+'<input
id="property-'+
c.name+'"/></div>'),c.type=="Boolean"&&(a+='<div
class="form-row"><label>'+f+"</label>"+'<input type="checkbox"
id="property-'+
c.name+'"/></div>'),c.type=="Text"&&(a+='<div
class="form-row"><label>'+f+"</label>"+'<textarea id="property-'+
c.name+'"
cols="80"
rows="25">'+e+"</textarea></div>")}),$("#properties").html(a),$.each(c,function(a,b){var
c="#property-"+
b.name,e=d[b.name.toLowerCase()]?d[b.name.toLowerCase()]:"";b.type=="Date"&&(e&&$(c).val(e),$(c).datepicker({dateFormat:"dd.mm.yy"}));if(b.type=="Boolean"){var
f=e=="true";$(c).each(function(){this.checked=f})}})}function k(){var
a={};if(b.configData!=""){var
c=$.xmlDOM(b.configData,function(a){Vosao.error(messages("plugin.parsing_error")+" "+a)});$(c).find("plugin-config").children().each(function(){a[this.tagName.toLowerCase()]=$(this).text()})}return
a}function l(a){$.each(c,function(b,c){var
d=a[
c.name];if(c.type=="Integer"&&parseInt(d)==NaN)return
messages("plugin.integer_expected")+" "+
c.name})}function m(){var
a={},b="<plugin-config>\n";$.each(c,function(c,d){var
e="#property-"+
d.name;if(d.type=="String"||d.type=="Integer"||
d.type=="Date"||
d.type=="Text")a[
d.name]=$(e).val(),b+="<"+
d.name+">"+Vosao.escapeHtml(a[
d.name])+"</"+
d.name+">\n";d.type=="Boolean"&&(a[
d.name]=String($(e+":checked").size()>0),b+="<"+
d.name+">"+a[
d.name]+"</"+
d.name+">\n")}),b+="</plugin-config>\n";var
d=l(a);d?Vosao.error(d):Vosao.jsonrpc.pluginService.savePluginConfig(function(a){Vosao.showServiceMessages(a)},Number(pluginId),b)}console.log("Loading
PluginView.js");var b=null,c=null;return
Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{messages:messages})),d()},remove:function(){this.el.html("")},setPluginId:function(a){pluginId=a}})}),define("text!template/plugins/config.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n<ul>\r\n <li><a
href="#tab-1"><%= messages("plugins") %></a></li>\r\n</ul>\r\n\r\n<div
id="tab-1">\r\n <div id="plugins"></div>\r\n <div
class="buttons">\r\n <input id="installButton" type="button"
value="<%= messages("install_update") %>" />\r\n
</div>\r\n</div>\r\n\r\n</div>\r\n\r\n<div id="import-dialog" title="<%=
messages("install") %>" style="display:none">\r\n<form id="upload"
action="/cms/upload" method="post" enctype="multipart/form-data">\r\n
<%= messages("file_upload") %>:\r\n <input type="hidden" name="fileType"
value="plugin" />\r\n <input type="file" name="uploadFile" />\r\n
<div class="buttons-dlg">\r\n <input type="submit" value="<%=
messages("send") %>" />\r\n <input id="importCancelButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>
\r\n</form>\r\n</div>\r\n\r\n<div id="afterUpload-dialog"
style="display:none" title="<%= messages("status_window") %>">\r\n <p
class="message"></p>\r\n <div class="buttons-dlg">\r\n <input
id="okButton" type="button" value="OK" />\r\n
</div>\r\n</div>\r\n\r\n'}),define("view/plugins/ConfigView",["text!template/plugins/config.html","jquery.form"],function(a){function
c(){$("#tabs").tabs(),$("#import-dialog").dialog({width:400,autoOpen:!1}),$("#afterUpload-dialog").dialog({autoOpen:!1}),Vosao.initJSONRpc(d),$("#upload").ajaxForm(i),$("#installButton").click(g),$("#importCancelButton").click(h),$("#okButton").click(j)}function
d(){e()}function
e(){Vosao.jsonrpc.pluginService.select(function(a){b=a.list,f()})}function
f(){var a='<table class="form-table"><th>'+messages("title")+"</th>\t
<th>"+messages("name")+"</th><th>"+messages("version")+"</th><th>"+messages("description")+"</th><th>"+messages("website")+"</th><th>"+messages("state")+"</th><th></th></tr>";$.each(b,function(b,c){var
d="#plugin/"+
c.id;c.configURL&&(d="/file/plugins/"+
c.name+"/"+c.configURL);var
e=c.disabled?messages("disabled"):messages("enabled"),f=c.disabled?Vosao.message(c.title):'<a
href="'+d+'">'+Vosao.message(c.title)+"</a>";a+="<tr><td>"+f+"</td>"+"<td>"+
c.name+"</td>"+"<td>"+c.version+"</td>"+"<td>"+Vosao.message(c.description)+"</td>"+"<td>"+c.website+"</td>"+"<td>"+e+"</td>"+'<td><a
title="Uninstall" class="removeLink" data-index="'+b+'">'+'<img
src="/static/images/02_x.png"/></a></td></tr>'}),$("#plugins").html(a+"</table>"),$("#plugins
tr:even").addClass("even"),$("#plugins .removeLink").click(function(){k(Number($(this).attr("data-index")))})}function
g(){$("#import-dialog").dialog("open")}function
h(){$("#import-dialog").dialog("close")}function i(a){var
b=a.split("::"),c=b[1],d=b[2];c=="success"?d=messages("plugins.success_install"):d=messages("error")+". "+d,$("#import-dialog").dialog("close"),$("#afterUpload-dialog .message").text(d),$("#afterUpload-dialog").dialog("open")}function
j(){$("#afterUpload-dialog").dialog("close"),location.reload()}function
k(a){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.pluginService.remove(function(c){Vosao.showServiceMessages(c),c.result=="success"&&(b.splice(a,1),f())},b[a].id)}console.log("Loading
ConfigView.js");var b="";return
Backbone.View.extend({el:$("#content"),render:function(){this.el.html(_.template(a,{messages:messages})),c()},remove:function(){$("#import-dialog,
#afterUpload-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/plugins/forms.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n<ul>\r\n <li><a
href="#tab-1"><%= messages("forms") %></a></li>\r\n <li><a
href="#tab-2"><%= messages("config") %></a></li>\r\n</ul>\r\n\r\n<div
id="tab-1">\r\n <div id="forms"> </div>\r\n <div
class="buttons">\r\n <input id="addButton" type="button" value="<%=
messages("add") %>" />\r\n <input id="deleteButton" type="button"
value="<%= messages("delete") %>" />\r\n </div>\r\n</div>\r\n\r\n<div
id="tab-2">\r\n\r\n<div class="form-row">\r\n <label><%=
messages("forms.form_template") %></label>\r\n <div>\r\n <a
id="restoreFormTemplateLink" ><%= messages("restore_default") %></a>\r\n
</div>\r\n <div>\r\n <textarea id="formTemplate" rows="20"
cols="80"></textarea>\r\n </div>\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("forms.letter_template") %></label>\r\n <div>\r\n <a
id="restoreFormLetterLink" ><%= messages("restore_default") %></a>\r\n
</div>\r\n <div>\r\n <textarea id="letterTemplate" rows="20"
cols="80"></textarea>\r\n </div>\r\n</div>\r\n<div
class="buttons">\r\n <input id="saveButton" type="button" value="<%=
messages("save") %>"
/>\r\n</div>\r\n</div>\r\n\r\n</div>\r\n\r\n'}),define("text!template/plugins/form.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n<ul>\r\n <li><a
href="#tab-1"><%= messages("form") %></a></li>\r\n <li
class="fieldsTab"><a href="#tab-2"><%=
messages("fields") %></a></li>\r\n <li class="dataTab"><a
href="#tab-3"><%= messages("saved_data") %></a></li>\r\n</ul>\r\n\r\n<div
id="tab-1">\r\n<form id="form">\r\n<div class="form-row">\r\n <label><%=
messages("title") %></label>\r\n <input id="title" type="text"
/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("form.unique_name") %></label>\r\n <input id="name" type="text"
/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("form.email") %></label>\r\n <input id="email" type="text"
/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("letter_subject") %></label>\r\n <input id="letterSubject"
type="text" />\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("form.send_title") %></label>\r\n <input id="sendButtonTitle"
type="text"/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("form.reset_title") %></label>\r\n <input id="resetButtonTitle"
type="text"/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("form.show_reset") %></label>\r\n <input id="showResetButton"
type="checkbox"/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("enable_captcha") %></label>\r\n <input id="enableCaptcha"
type="checkbox"/>\r\n</div>\r\n<div class="form-row">\r\n <label><%=
messages("enable_save") %></label>\r\n <input id="enableSave"
type="checkbox"/>\r\n</div>\r\n\r\n<div class="buttons">\r\n <input
id="saveButton" type="submit" value="<%= messages("save") %>" />\r\n
<input id="cancelButton" type="button" value="<%= messages("cancel") %>"
/>\r\n</div>\r\n</form>\r\n</div>\r\n\r\n<div id="tab-2"
class="fieldsTab">\r\n <div id="fieldsTable"> </div>\r\n <div
class="buttons">\r\n <input id="addFieldButton" type="button"
value="<%= messages("add_field") %>" />\r\n <input
id="deleteFieldButton" type="button" value="<%=
messages("delete_fields") %>" />\r\n </div> \r\n</div>\r\n\r\n<div
id="tab-3" class="dataTab">\r\n <div id="dataTable"></div>\r\n <div
class="buttons">\r\n <input id="deleteDataButton" type="button"
value="<%= messages("delete") %>" />\r\n </div>
\r\n</div>\r\n\r\n</div>\r\n\r\n<div id="field-dialog" style="display:none"
title="<%= messages("form.field_details") %>">\r\n<form
id="fieldForm">\r\n <div id="field-messages" class="messages">
</div>\r\n <div class="form-row">\r\n <label><%=
messages("title") %></label>\r\n <input type="text"
name="field.title" />\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("form.unique_name") %></label>\r\n <input type="text"
name="
field.name" />\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("form.field_type") %></label>\r\n <select
id="fieldType" name="field.fieldType">\r\n <option
value="TEXT">Text</option>\r\n <option
value="CHECKBOX">Checkbox</option>\r\n <option
value="RADIO">Radiobox</option>\r\n <option
value="PASSWORD">Password</option>\r\n <option
value="LISTBOX">Listbox</option>\r\n <option value="FILE">File
upload</option>\r\n </select>\r\n </div>\r\n <div
class="form-row" id="field-width">\r\n <label><%=
messages("form.width_chars") %></label>\r\n <input type="text"
name="field.width" />\r\n </div>\r\n <div class="form-row"
id="field-height">\r\n <label><%=
messages("form.height_chars") %></label>\r\n <input type="text"
name="field.height" />\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("mandatory") %></label>\r\n <input type="checkbox"
name="field.mandatory" />\r\n </div>\r\n <div class="form-row"
id="field-values">\r\n <label><%=
messages("values") %></label>\r\n <textarea
name="field.values"></textarea>\r\n </div>\r\n <div class="form-row"
id="field-defaultValue">\r\n <label><%=
messages("default_value") %></label>\r\n <input type="text"
name="field.defaultValue"/>\r\n </div>\r\n <div id="regexDiv">\r\n
<div class="form-row" id="field-defaultValue">\r\n <label><%=
messages("form.regex_code") %></label>\r\n <input type="text"
name="field.regex"/>\r\n </div>\r\n <div class="form-row"
id="field-defaultValue">\r\n <label><%=
messages("form.regex_message") %></label>\r\n <select
id="language"></select> \r\n <input type="text"
name="field.regexMessage"/>\r\n </div>\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="saveAndAddButton" type="submit"
value="<%= messages("save_add") %>" />\r\n <input
id="fieldSaveButton" type="button" value="<%= messages("save") %>"
/>\r\n <input id="fieldCancelButton" type="button" value="<%=
messages("cancel") %>" />\r\n </div>\r\n</form>\r\n</div>\r\n\r\n<div
id="formData-dialog" style="display:none" title="<%=
messages("form.form_data") %>">\r\n<form id="formDataForm">\r\n <div
id="formData"></div>\r\n <div class="buttons-dlg">\r\n <input
id="formDataSendButton" type="button" value="<%= messages("send") %>"
/>\r\n <input id="formDataCancelButton" type="button" value="<%=
messages("cancel") %>" />\r\n
</div>\r\n</form>\r\n</div>\r\n'}),define("view/plugins/FormView",["text!template/plugins/form.html"],function(a){function
l(){e=b!="",$("#tabs").tabs(),$("#field-dialog").dialog({width:500,autoOpen:!1}),$("#formData-dialog").dialog({width:500,autoOpen:!1}),Vosao.initJSONRpc(m),$("#title").change(J),$("#language").change(Q),$('input[name="field.regexMessage"]').change(P),$("#form").submit(function(){return
H(),!1}),$("#cancelButton").click(I),$("#addFieldButton").click(r),$("#deleteFieldButton").click(E),$("#fieldType").change(u),$("#fieldForm").submit(function(){return
F(),!1}),$("#fieldSaveButton").click(function(){t(!0)}),$("#fieldCancelButton").click(s),$('input[name="field.title"]').change(K),$("#deleteDataButton").click(V),$("#formDataCancelButton").click(function(){$("#formData-dialog").dialog("close")}),$("#formDataSendButton").click(X)}function
m(){G(),o(),n()}function
n(){Vosao.jsonrpc.languageService.select(function(a){var
b="";$.each(a.list,function(a,c){d[c.code]=c,b+='<option
value="'+c.code+'">'+c.title+"</option>"}),$("#language").html(b)})}function
o(){if(b=="")return;Vosao.jsonrpc.fieldService.getByForm(function(a,b){g=a.list,p()},b)}function
p(){var a='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th><th>"+messages("name")+"</th><th>"+messages("type")+"</th><th></th></tr>";$.each(g,function(b,c){a+='<tr>\t\t\t\t<td><input
type="checkbox" name="item'+b+'" value="'+
c.id+'"/></td>\t\t\t\t<td><a
class="fieldEdit"
data-id="'+
c.id+'">'+c.title+"</a></td>\t\t\t\t<td>"+
c.name+"</td>\t\t\t\t<td>"+q(c.fieldType)+'</td>\t\t\t\t<td><a
class="fieldUp" data-index="'+b+'"><img
src="/static/images/02_up.png"/></a>\t\t\t\t <a class="fieldDown"
data-index="'+b+'"><img
src="/static/images/02_down.png"/></a>\t\t\t\t</td>\t\t\t\t</tr>'}),$("#fieldsTable").html(a+"</table>"),$("#fieldsTable
tr:even").addClass("even"),$("#fieldsTable .fieldEdit").click(function(){D($(this).attr("data-id"))}),$("#fieldsTable .fieldUp").click(function(){L($(this).attr("data-index"))}),$("#fieldsTable .fieldDown").click(function(){M($(this).attr("data-index"))})}function
q(a){return
a=="TEXT"?"Text":a=="CHECKBOX"?"Checkbox":a=="RADIO"?"Radiobox":a=="PASSWORD"?"Password":a=="LISTBOX"?"Listbox":a=="FILE"?"File
upload":"undefined"}function
r(){f=null,w(),$("#field-dialog").dialog("open")}function
s(){$("#field-dialog").dialog("close")}function t(a){var
b=x(),c=y(b);c.length==0?Vosao.jsonrpc.fieldService.updateField(function(b,c){b.result=="success"?(a&&$("#field-dialog").dialog("close"),o()):A(b.messages.list)},b):A(c)}function
u(){v()}function v(){var
a=$('select[name="field.fieldType"]').val();a=="TEXT"&&($("#field-values").hide(),$("#field-height").show(),$("#field-width").show(),$("#field-defaultValue").show(),$("#regexDiv").show()),a=="LISTBOX"&&($("#field-values").show(),$("#field-height").hide(),$("#field-width").hide(),$("#field-defaultValue").hide(),$("#regexDiv").hide()),a=="CHECKBOX"&&($("#field-values").show(),$("#field-height").hide(),$("#field-width").hide(),$("#field-defaultValue").hide(),$("#regexDiv").hide()),a=="RADIO"&&($("#field-values").show(),$("#field-height").hide(),$("#field-width").hide(),$("#field-defaultValue").hide(),$("#regexDiv").hide()),a=="PASSWORD"&&($("#field-values").hide(),$("#field-height").hide(),$("#field-width").show(),$("#field-defaultValue").hide(),$("#regexDiv").hide()),a=="FILE"&&($("#field-values").hide(),$("#field-height").hide(),$("#field-width").hide(),$("#field-defaultValue").hide(),$("#regexDiv").hide())}function
w(){f==null?(i={},$('input[name="
field.name"]').val(""),$('input[name="field.title"]').val(""),$('select[name="field.fieldType"]').val("TEXT"),$('textarea[name="field.values"]').val(""),$('input[name="field.defaultValue"]').val(""),$('input[name="field.height"]').val("1"),$('input[name="field.width"]').val("20"),$('input[name="field.mandatory"]')[0].checked=!1,$('input[name="field.regex"]').val(""),$('input[name="field.regexMessage"]').val("")):($('input[name="
field.name"]').val(
f.name),$('input[name="field.title"]').val(f.title),$('select[name="field.fieldType"]').val(f.fieldType),$('textarea[name="field.values"]').val(f.values),$('input[name="field.defaultValue"]').val(f.defaultValue),$('input[name="field.height"]').val(f.height),$('input[name="field.width"]').val(f.width),$('input[name="field.mandatory"]')[0].checked=f.optional,$('input[name="field.regex"]').val(f.regex),$('input[name="field.regexMessage"]').val(O())),v(),C()}function
x(){var a=f!=null?f.index:g==null?0:g.length;return
Vosao.javaMap({id:f!=null?String(
f.id):null,formId:b,name:$('input[name="
field.name"]').val(),title:$('input[name="field.title"]').val(),fieldType:$('select[name="field.fieldType"]').val(),values:$('textarea[name="field.values"]').val(),defaultValue:$('input[name="field.defaultValue"]').val(),height:$('input[name="field.height"]').val(),width:$('input[name="field.width"]').val(),index:String(a),regex:$('input[name="field.regex"]').val(),regexMessage:R(),mandatory:String($('input[name="field.mandatory"]:checked').size()>0)})}function
y(a){var b=new
Array;
a.map.name==""&&b.push(messages("name_is_empty")),a.map.title==""&&b.push(messages("title_is_empty"));var
c=Number(a.map.height);a.map.fieldType=="TEXT"&&c<=0&&b.push(messages("form.height_zero_error"));var
d=Number(a.map.width);return
a.map.fieldType=="TEXT"&&d<=0&&b.push(messages("form.width_zero_error")),b}function
z(a){Vosao.infoMessage("#field-messages",a)}function
A(a){Vosao.errorMessages("#field-messages",a)}function
B(a){Vosao.errorMessage("#field-messages",a)}function
C(){$("#field-messages").html("")}function
D(a){C(),Vosao.jsonrpc.fieldService.getById(function(a){f=a,S(),w(),$("#field-dialog").dialog("open")},a)}function
E(){var a=new
Array;$("input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.fieldService.remove(function(b){b.result=="success"?(Vosao.info(a.length+" "+messages("form.success_field_delete")+"."),o()):Vosao.showServiceMessages(b)},Vosao.javaList(a))}function
F(){t(!1),r()}function
G(){Vosao.jsonrpc.formService.getForm(function(a){c=a,T(),a!=null?($("#title").val(a.title),$("#name").val(
a.name),$("#email").val(a.email),$("#letterSubject").val(a.letterSubject),$("#sendButtonTitle").val(a.sendButtonTitle),$("#resetButtonTitle").val(a.resetButtonTitle),$("#showResetButton").each(function(){this.checked=a.showResetButton}),$("#enableCaptcha").each(function(){this.checked=a.enableCaptcha}),$("#enableSave").each(function(){this.checked=a.enableSave}),$(".fieldsTab").show()):($("#title").val(""),$("#name").val(""),$("#email").val(""),$("#letterSubject").val(""),$("#sendButtonTitle").val(""),$("#resetButtonTitle").val(""),$("#showResetButton").each(function(){this.checked=!1}),$("#enableCaptcha").each(function(){this.checked=!1}),$("#enableSave").each(function(){this.checked=!1}),$(".fieldsTab").hide())},b)}function
H(){var
a=Vosao.javaMap({id:b,title:$("#title").val(),name:$("#name").val(),email:$("#email").val(),letterSubject:$("#letterSubject").val(),sendButtonTitle:$("#sendButtonTitle").val(),resetButtonTitle:$("#resetButtonTitle").val(),showResetButton:String($("#showResetButton:checked").size()>0),enableCaptcha:String($("#enableCaptcha:checked").size()>0),enableSave:String($("#enableSave:checked").size()>0)});Vosao.jsonrpc.formService.saveForm(function(a){a.result=="success"?e?location.href="#plugins/forms":(b=a.message,e=!0,m(),Vosao.info(messages("form.success_create"))):Vosao.showServiceMessages(a)},a)}function
I(){location.href="#plugins/forms"}function J(){if(e)return;var
a=$("#name").val(),b=$("#title").val();a==""&&$("#name").val(Vosao.urlFromTitle(b))}function
K(){if(f!=null)return;var
a=$('input[name="
field.name"]').val(),b=$('input[name="field.title"]').val();a==""&&$('input[name="
field.name"]').val(Vosao.urlFromTitle(b))}function
L(a){a-1>=0&&(Vosao.jsonrpc.fieldService.moveUp(function(a){},b,g[a].id),g[a].index--,g[a-1].index++,N(a,a-1),p())}function
M(a){a+1<g.length&&(Vosao.jsonrpc.fieldService.moveDown(function(a){},b,g[a].id),g[a+1].index--,g[a].index++,N(a,a+1),p())}function
N(a,b){var c=g[b];g[b]=g[a],g[a]=c}function O(){return
i[$("#language").val()]?i[$("#language").val()]:""}function
P(){i[$("#language").val()]=$('input[name="field.regexMessage"]').val()}function
Q(){$('input[name="field.regexMessage"]').val(i[$("#language").val()])}function
R(){var a="",b=0;return
$.each(i,function(c,d){a+=(b++==0?"":"::")+c+d}),a}function
S(){f.regexMessage?$.each(f.regexMessage.split("::"),function(a,b){var
c=b.substr(0,2),d=b.substr(2);i[c]=d}):i={}}function
T(){c==null?(j=[],U()):Vosao.jsonrpc.formService.getFormData(function(a){j=a.list,U()},
c.id)}function
U(){var a='<table
class="form-table"><tr><th></th><th>'+messages("ip_address")+"</th><th>"+messages("date")+"</th></tr>";$.each(j,function(b,c){a+='<tr><td><input
type="checkbox" name="item'+b+'"
value="'+
c.id+'"/></td><td>'+c.ipAddress+"</td>"+'<td><a class="showForm"
data-index="'+b+'">'+(new
Date(c.modDate.time)).toLocaleString()+"</a></td></tr>"}),$("#dataTable").html(a+"</table>"),$("#dataTable
tr:even").addClass("even"),$("#dataTable
a.showForm").click(function(){W($(this).attr("data-index"))})}function
V(){var a=new Array;$("#dataTable
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.formService.removeData(function(b){b.result=="success"?(Vosao.info(a.length+" "+messages("form.success_records_delete")+"."),m()):Vosao.showServiceMessages(b)},Vosao.javaList(a))}function
W(a){k=a;var b=j[a],c='<table
class="form-table"><tr><th>'+messages("name")+"</th><th>"+messages("value")+"</th></tr>";$.each(b.values.map,function(a,b){var
d=b;if(d.indexOf("/file/form")==0){var e=d.split("/"),f=e[e.length-1];d='<a
href="'+d+'">'+f+"</a>"}c+="<tr><td>"+a+"</td><td>"+d+"</td></tr>"}),$("#formData").html(c+"</table>"),$("#formData
tr:even").addClass("even"),$("#formData-dialog").dialog("open")}function
X(){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.formService.sendFormLetter(function(a){Vosao.showServiceMessages(a)},j[k].id)}console.log("Loading
FormView.js");var
b="",c=null,d={},e=b!="",f=null,g=null,h=null,i={},j=null,k=0;return
Backbone.View.extend({css:"/static/css/form.css",el:$("#content"),tmpl:_.template(a),render:function(){Vosao.addCSSFile(this.css),this.el.html(this.tmpl({messages:messages})),l()},remove:function(){$("#field-dialog,
#formData-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)},setId:function(a){b=a}})}),define("text!template/plugins/seo-urls.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n<ul>\r\n <li><a
href="#tab-1"><%=
messages("plugins.seo_urls") %></a></li>\r\n</ul>\r\n\r\n<div
id="tab-1">\r\n\r\n<div id="urls"><img src="/static/images/ajax-loader.gif"
/></div>\r\n\r\n<div class="buttons">\r\n <input id="addButton"
type="button" value="<%= messages("add") %>" />\r\n <input
id="removeButton" type="button" value="<%= messages("remove") %>"
/>\r\n</div>\r\n\r\n<div id="url-dialog" style="display:none" title="<%=
messages("seo_urls.details") %>">\r\n <form id="seoForm">\r\n <div
id="url-messages" class="messages"> </div>\r\n <div
class="form-row">\r\n <label><%=
messages("seo_urls.from_link") %></label>\r\n <input id="fromLink"
type="text" />\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("seo_urls.to_link") %></label>\r\n <input
id="toLink" type="text" />\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="saveAndAddButton" type="button"
value="<%= messages("save_add") %>" />\r\n <input id="saveDlgButton"
type="submit" value="<%= messages("save") %>" />\r\n <input
id="cancelDlgButton" type="button" value="<%= messages("cancel") %>"
/>\r\n </div>\r\n
</form>\r\n</div>\r\n\r\n</div>\r\n\r\n</div>\r\n'}),define("view/plugins/SeoUrlsView",["text!template/plugins/seo-urls.html"],function(a){function
c(){$("#url-dialog").dialog({width:500,autoOpen:!1}),Vosao.initJSONRpc(d),$("#tabs").tabs(),$("#addButton").click(f),$("#removeButton").click(h),$("#saveAndAddButton").click(i),$("#seoForm").submit(function(){return
k(!0),!1}),$("#cancelDlgButton").click(l)}function
d(){Vosao.jsonrpc.seoUrlService.select(function(a){var b='<table
class="form-table"><tr><th></th><th>'+messages("from")+"</th><th>"+messages("to")+"</th></tr>";$.each(a.list,function(a,c){b+='<tr><td><input
type="checkbox" value="'+
c.id+'"/></td><td><a
data-id="'+
c.id+'">'+c.fromLink+"</a></td><td>"+c.toLink+"</td></tr>"}),$("#urls").html(b+"</table>"),$("#urls
tr:even").addClass("even"),$("#urls
a").click(function(){e($(this).attr("data-id"))})})}function
e(a){m(),Vosao.jsonrpc.seoUrlService.getById(function(a){b=a,g(),$("#url-dialog").dialog("open")},a)}function
f(){b=null,g(),$("#url-dialog").dialog("open")}function
g(){m(),b==null?($("#fromLink").val(""),$("#toLink").val("")):($("#fromLink").val(b.fromLink),$("#toLink").val(b.toLink))}function
h(){var a=new Array;$("#urls
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.seoUrlService.remove(function(a){Vosao.showServiceMessages(a),d()},Vosao.javaList(a))}function
i(){k(!1,!0)}function j(a){var b=new Array;return
a.fromLink==""&&b.push(messages("seo_urls.from_link_empty")),a.toLink==""&&b.push(messages("seo_urls.to_link_empty")),b}function
k(a,c){var
e={id:b!=null?String(
b.id):"",fromLink:$("#fromLink").val(),toLink:$("#toLink").val()},g=j(e);g.length==0?Vosao.jsonrpc.seoUrlService.save(function(b){b.result=="success"?(a&&$("#url-dialog").dialog("close"),d(),c&&f()):n(b.messages.list)},Vosao.javaMap(e)):n(g)}function
l(){$("#url-dialog").dialog("close")}function
m(){$("#url-messages").html("")}function
n(a){Vosao.errorMessages("#url-messages",a)}console.log("Loading
SeoUrlsView.js");var b=null;return
Backbone.View.extend({css:"/static/css/form.css",el:$("#content"),render:function(){Vosao.addCSSFile(this.css),this.el.html(_.template(a,{messages:messages})),c()},remove:function(){$("#url-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)}})}),define("text!template/config/config.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs" class="ui-tabs ui-widget
ui-widget-content ui-corner-all">\r\n\r\n<ul class="ui-tabs-nav
ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">\r\n
<li class="ui-corner-top ui-state-default">\r\n <a
href="#config"><%= messages("config.title") %></a>\r\n </li>\r\n <li
class="ui-corner-top ui-state-default">\r\n <a
href="#config/comments"><%= messages("comments") %></a>\r\n </li>\r\n
<li class="ui-corner-top ui-state-default">\r\n <a
href="#config/languages"><%= messages("languages") %></a>\r\n
</li>\r\n <li class="ui-corner-top ui-state-default">\r\n <a
href="#config/messages"><%= messages("message_bundle") %></a>\r\n
</li>\r\n <li class="ui-corner-top ui-state-default">\r\n <a
href="#config/users"><%= messages("users") %></a>\r\n </li>\r\n <li
class="ui-corner-top ui-state-default">\r\n <a
href="#config/groups"><%= messages("groups") %></a>\r\n </li>\r\n <li
class="ui-corner-top ui-state-default">\r\n <a
href="#config/tags"><%= messages("tags") %></a>\r\n </li>\r\n <li
class="ui-corner-top ui-state-default">\r\n <a
href="#config/attributes"><%= messages("attributes") %></a>\r\n
</li>\r\n</ul>\r\n\r\n<div id="tab-1" class="ui-tabs-panel
ui-widget-content ui-corner-bottom"></div>\r\n\r\n</div>\r\n\r\n<div
id="import-dialog" title="<%= messages("config.import_site") %>"
style="display:none">\r\n<form id="upload" action="/cms/upload"
method="post" enctype="multipart/form-data">\r\n <%=
messages("file_upload") %>:\r\n <input type="hidden" name="fileType"
value="import" />\r\n <input type="file" name="uploadFile" />\r\n
<div class="buttons-dlg">\r\n <input type="submit" value="<%=
messages("send") %>" />\r\n <input id="importCancelButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>
\r\n</form>\r\n</div>\r\n\r\n<div id="afterUpload-dialog"
style="display:none" title="<%= messages("status_window") %>">\r\n <form
id="okForm">\r\n <p class="message"></p>\r\n <div
class="buttons-dlg">\r\n <input id="okButton" type="submit"
value="OK" />\r\n </div>\r\n </form>\r\n</div>\r\n\r\n<div
id="export-dialog" style="display:none" title="<%=
messages("export_window") %>">\r\n <form id="exportForm">\r\n <div
class="form-row">\r\n <input type="radio" name="exportType" value="full"
/>\r\n <%= messages("config.full_export") %> <br/>\r\n <input
type="radio" name="exportType" value="site" checked="checked"/>\r\n
<%= messages("config.export_site") %> <br/>\r\n <input type="radio"
name="exportType" value="resources"/>\r\n <%=
messages("resources") %> <br/>\r\n </div>\r\n <div id="exportInfo"
class="form-row"></div> \r\n <div id="timer"
class="form-row"></div>\r\n <div class="buttons-dlg">\r\n <input
id="exportDialogButton" type="submit" value="<%= messages("export") %>"
/>\r\n <input id="exportCancelButton" type="button" value="<%=
messages("cancel") %>" />\r\n </div>\r\n </form>\r\n</div>\r\n\r\n<div
id="stat-dialog" style="display:none" title="<%=
messages("stat") %>">\r\n <div class="form-row">\r\n \t<label><%=
messages("pages") %>:</label>\r\n \t<span id="statPages"></span>\r\n
</div>\r\n <div class="form-row">\r\n \t<label><%=
messages("stat.page_permissions") %>:</label>\r\n \t<span
id="statPagePermissions"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%=
messages("structures") %>:</label>\r\n \t<span
id="statStructures"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%=
messages("stat.structure_templates") %>:</label>\r\n \t<span
id="statStructureTemplates"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%=
messages("templates") %>:</label>\r\n \t<span
id="statTemplates"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%=
messages("folders") %>:</label>\r\n \t<span
id="statFolders"></span>\r\n </div>\r\n <div class="form-row">\r\n
\t<label><%= messages("stat.folder_permissions") %>:</label>\r\n \t<span
id="statFolderPermissions"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%= messages("files") %>:</label>\r\n
\t<span id="statFiles"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%=
messages("languages") %>:</label>\r\n \t<span
id="statLanguages"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%=
messages("messages") %>:</label>\r\n \t<span
id="statMessages"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%= messages("users") %>:</label>\r\n
\t<span id="statUsers"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%= messages("groups") %>:</label>\r\n
\t<span id="statGroups"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><%= messages("tags") %>:</label>\r\n
\t<span id="statTags"></span>\r\n </div>\r\n <div
class="form-row">\r\n \t<label><b><%=
messages("stat.total") %>:</b></label>\r\n \t<span id="statTotal"
style="font-weight:bold;"></span>\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="statOKButton" type="button"
value="OK" />\r\n
</div>\r\n</div>\r\n'}),define("text!template/config/index.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n <form id="configForm">\r\n <div
class="form-row">\r\n <label><%=
messages("config.db_version") %></label>\r\n <span id="version"
/>\r\n </div>\r\n <div class="form-row">\r\n <label>Google
Analytics ID</label>\r\n <input id="googleAnalyticsId" type="text"
/>\r\n </div>\r\n <div class="form-row">\r\n <label><%=
messages("config.site_owner_email") %></label>\r\n <input
id="siteEmail" type="text" />\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("site_domain") %></label>\r\n <input id="siteDomain"
type="text" />\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("config.enable_recaptcha") %></label>\r\n <input
id="enableRecaptcha" type="checkbox" />\r\n </div>\r\n <div
id="recaptcha">\r\n <div class="form-row">\r\n <label><%=
messages("config.recaptcha_public_key") %></label>\r\n <input
id="recaptchaPublicKey" type="text" size="40"/>\r\n
</div>\r\n <div class="form-row">\r\n <label><%=
messages("config.recaptcha_private_key") %></label>\r\n <input
id="recaptchaPrivateKey" type="text" size="40"/>\r\n </div>\r\n
</div>\r\n <div class="form-row">\r\n <label><%=
messages("config.edit_extension") %></label>\r\n <input id="editExt"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("config.login_url") %></label>\r\n <input
id="siteUserLoginUrl" type="text"/>\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("config.404_url") %></label>\r\n <input id="site404Url"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("config.enable_ckeditor") %></label>\r\n <input
id="enableCkeditor" type="checkbox" />\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("profile.timezone") %></label>\r\n <select
id="timezone"></select>\r\n </div> \r\n <div
class="form-row">\r\n <label><%=
messages("page.select_language") %>:</label> \r\n <select
id="language"></select>\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("config.enable_picasa") %></label>\r\n <input
id="enablePicasa" type="checkbox" />\r\n </div>\r\n <div
id="picasa">\r\n <div class="form-row">\r\n <label>Picasa
<%= messages("user_email") %></label>\r\n <input id="picasaUser"
type="text" />\r\n </div>\r\n <div
class="form-row">\r\n <label>Picasa <%=
messages("password") %></label>\r\n <input id="picasaPassword"
type="password" />\r\n </div>\r\n </div>\r\n <div
class="buttons">\r\n <input id="saveButton" type="submit" value="<%=
messages("save") %>" />\r\n <input id="exportButton" type="button"
value="<%= messages("export") %>" />\r\n <input id="importButton"
type="button" value="<%= messages("import") %>" />\r\n <input
id="reindexButton" type="button" value="<%=
messages("config.create_search_index") %>" />\r\n <input
id="resetButton" type="button" value="<%= messages("reset") %>"
/>\r\n <input id="loadDefaultSiteButton" type="button" value="<%=
messages("config.load_default_site") %>" />\r\n <input
id="cacheResetButton" type="button" value="<%=
messages("config.cache_reset") %>" />\r\n <input id="statButton"
type="button" value="<%= messages("stat") %>" />\r\n </div>\r\n
</form>\r\n'}),define("view/config/IndexView",["text!template/config/index.html"],function(a){function
j(){$("#upload").ajaxForm(r),Vosao.initJSONRpc(k),$("#enableRecaptcha").click(p),$("#configForm").submit(function(){return
x(),!1}),$("#exportButton").click(y),$("#importButton").click(s),$("#importCancelButton").click(t),$("#resetButton").click(D),$("#cacheResetButton").click(F),$("#reindexButton").click(E),$("#loadDefaultSiteButton").click(G),$("#okForm").submit(function(){return
u(),!1}),$("#exportForm").submit(function(){return
A(),!1}),$("#exportCancelButton").click(z),$("ul.ui-tabs-nav
li:nth-child(1)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default"),$("#enablePicasa").click(q),$("#statButton").click(H),$("#statOKButton").click(I)}function
k(){v(),l(),m()}function
l(){Vosao.jsonrpc.userService.getTimezones(function(a){h=a.list,n()})}function
m(){Vosao.jsonrpc.languageService.select(function(a){i=a.list,o()})}function
n(){var a="";$.each(h,function(b,c){a+='<option
value="'+c+'">'+c+"</option>"}),$("#timezone").html(a),$("#timezone").val(b.defaultTimezone)}function
o(){var a="";$.each(i,function(b,c){a+='<option
value="'+c.code+'" '+">"+c.title+"</option>"}),$("#language").html(a),$("#language").val(b.defaultLanguage)}function
p(){var
a=$("#enableRecaptcha:checked").size()>0;a?$("#recaptcha").show():$("#recaptcha").hide()}function
q(){var
a=$("#enablePicasa:checked").size()>0;a?$("#picasa").show():$("#picasa").hide()}function
r(a){var
b=a.split("::"),c=b[1],d=b[2];c=="success"?d=messages("config.saved_for_import"):d=messages("error")+". "+d,$("#import-dialog").dialog("close"),$("#afterUpload-dialog .message").text(d),$("#afterUpload-dialog").dialog("open")}function
s(){$("#import-dialog").dialog("open")}function
t(){$("#import-dialog").dialog("close")}function
u(){$("#afterUpload-dialog").dialog("close"),k()}function
v(){Vosao.jsonrpc.configService.getConfig(function(a){b=a,w()})}function
w(){$("#version").html(b.version),$("#googleAnalyticsId").val(b.googleAnalyticsId),$("#siteEmail").val(b.siteEmail),$("#siteDomain").val(b.siteDomain),$("#enableRecaptcha").each(function(){this.checked=b.enableRecaptcha}),$("#recaptchaPublicKey").val(b.recaptchaPublicKey),$("#recaptchaPrivateKey").val(b.recaptchaPrivateKey),p(),$("#editExt").val(b.editExt),$("#siteUserLoginUrl").val(b.siteUserLoginUrl),$("#site404Url").val(b.site404Url),$("#enablePicasa").each(function(){this.checked=b.enablePicasa}),$("#enableCkeditor").each(function(){this.checked=b.enableCkeditor}),$("#picasaUser").val(b.picasaUser),$("#picasaPassword").val(b.picasaPassword),q()}function
x(){var
a=Vosao.javaMap({googleAnalyticsId:$("#googleAnalyticsId").val(),siteEmail:$("#siteEmail").val(),siteDomain:$("#siteDomain").val(),enableRecaptcha:String($("#enableRecaptcha:checked").size()>0),recaptchaPublicKey:$("#recaptchaPublicKey").val(),recaptchaPrivateKey:$("#recaptchaPrivateKey").val(),enablePicasa:String($("#enablePicasa:checked").size()>0),enableCkeditor:String($("#enableCkeditor:checked").size()>0),picasaUser:$("#picasaUser").val(),picasaPassword:$("#picasaPassword").val(),editExt:$("#editExt").val(),defaultTimezone:$("#timezone").val(),defaultLanguage:$("#language").val(),siteUserLoginUrl:$("#siteUserLoginUrl").val(),site404Url:$("#site404Url").val()});Vosao.jsonrpc.configService.saveConfig(function(a){Vosao.showServiceMessages(a)},a)}function
y(){$("#export-dialog").dialog("open")}function
z(){$("#export-dialog").dialog("close"),clearInterval(c),clearInterval(d)}function
A(){$("#exportDialogButton").attr("disabled",!0),e=0,C(),g=$("input[name=exportType]:checked").val(),Vosao.jsonrpc.configService.startExportTask(function(a){a.result=="success"?(f=a.message,Vosao.infoMessage("#exportInfo",messages("creating_export_file")),c=setInterval(B,1e4),d=setInterval(C,1e3)):Vosao.showServiceMessages(a)},g)}function
B(){Vosao.jsonrpc.configService.isExportTaskFinished(function(a){a&&(clearInterval(c),clearInterval(d),$("#export-dialog").dialog("close"),$("#exportDialogButton").attr("disabled",!1),location.href="/file/tmp/"+f)},g)}function
C(){$("#timer").html(e++ +" sec.")}function
D(){confirm(messages("config.reset_warning1"))&&confirm(messages("config.reset_warning2"))&&Vosao.jsonrpc.configService.reset(function(a){Vosao.showServiceMessages(a),a.result=="success"&&(location.href="/")})}function
E(){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.configService.reindex(function(a){Vosao.showServiceMessages(a)})}function
F(){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.configService.cacheReset(function(a){Vosao.showServiceMessages(a)})}function
G(){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.configService.loadDefaultSite(function(a){Vosao.showServiceMessages(a)})}function
H(){Vosao.jsonrpc.configService.getSiteStat(function(a){$("#statPages").text(a.pages),$("#statPagePermissions").text(a.pagePermissions),$("#statStructures").text(a.structures),$("#statStructureTemplates").text(a.structureTemplates),$("#statTemplates").text(a.templates),$("#statFolders").text(a.folders),$("#statFolderPermissions").text(a.folderPermissions),$("#statFiles").text(a.files),$("#statLanguages").text(a.languages),$("#statMessages").text(a.messages),$("#statUsers").text(a.users),$("#statGroups").text(a.groups),$("#statTags").text(a.tags),$("#statTotal").text(a.total),$("#stat-dialog").dialog("open")})}function
I(){$("#stat-dialog").dialog("close")}console.log("Loading
IndexView.js");var
b="",c=null,d=null,e=0,f=null,g=null,h=null,i=null;return
Backbone.View.extend({el:$("#tab-1"),render:function(){this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),j()},remove:function(){$("#import-dialog,
#afterUpload-dialog, #export-dialog,
#stat-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/config/comments.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n <form id="commentsForm">\r\n <div
class="form-row">\r\n <label><%=
messages("config.comments_email") %></label>\r\n <input
id="commentsEmail" type="text"/>\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("config.comments_template") %></label>\r\n <textarea
id="commentsTemplate" cols="80" rows="20"></textarea>\r\n </div>\r\n
<div class="buttons">\r\n <input id="commentsSaveButton"
type="submit" value="<%= messages("save") %>" />\r\n <input
id="restoreButton" type="button" value="<%= messages("restore_default") %>"
/>\r\n </div>\r\n
</form>\r\n'}),define("text!template/config/languages.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="languages"> </div>\r\n<div
class="buttons">\r\n <input id="addLanguageButton" type="button"
value="<%= messages("add") %>" />\r\n <input id="removeLanguageButton"
type="button" value="<%= messages("remove") %>" />\r\n</div>\r\n\r\n<div
id="language-dialog" style="display:none" title="<%=
messages("config.site_language") %>">\r\n <form id="languageForm">\r\n
<div class="messages"> </div>\r\n <div id="languageSelection"
style="padding-bottom: 10px;">\r\n <input id="selectFromListRadio"
type="radio" name="select" \r\n checked="checked" /> <%=
messages("select_from_list") %>\r\n <input id="notInListRadio"
type="radio" name="select" />\r\n <%=
messages("config.not_in_list") %> \r\n </div> \r\n <div
id="listed-language">\r\n <select
id="selectLanguage"></select>\r\n </div>\r\n <div
id="not-listed-language" style="display:none">\r\n <div
class="form-row">\r\n <label><%= messages("language") %> <a
href="
http://ftp.ics.uci.edu/pub/ietf/http/related/iso639.txt">iso639</a> 2
letter code</label>\r\n <input id="languageCode"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("title") %></label>\r\n <input
id="languageTitle" type="text"/>\r\n </div>\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="languageSaveButton"
type="submit" value="<%= messages("save") %>" />\r\n <input
id="languageCancelButton" type="button" value="<%= messages("cancel") %>"
/>\r\n </div>\r\n </form>
\r\n</div>\r\n\r\n'}),define("view/config/LanguagesView",["text!template/config/languages.html"],function(a){function
d(){$("#language-dialog").dialog({width:400,autoOpen:!1}),Vosao.initJSONRpc(e),q(),$("#selectFromListRadio").click(function(){r(!0)}),$("#notInListRadio").click(function(){r(!1)}),$("#languageForm").submit(function(){return
l(),!1}),$("#selectLanguage").change(s),$("#languageCancelButton").click(m),$("#addLanguageButton").click(f),$("#removeLanguageButton").click(g),$("ul.ui-tabs-nav
li:nth-child(3)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
e(){n()}function
f(){b=null,$("#language-dialog").dialog("open"),$("#languageSelection").show(),$("#listed-language").show(),$("#not-listed-language").hide(),$("#language-dialog .messages").html("")}function
g(){var a=[];$("#languages
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.languageService.remove(function(a){Vosao.info(a.message),n()},Vosao.javaList(a))}function
h(a){Vosao.infoMessage("#language-dialog .messages",a)}function
i(a){Vosao.errorMessage("#language-dialog .messages",a)}function
j(a){Vosao.errorMessages("#language-dialog .messages",a)}function k(a){var
b=[];return
a.code==""&&b.push(messages("config.code_is_empty")),a.title==""&&b.push(messages("title_is_empty")),b}function
l(){var
a={id:b!=null?String(
b.id):"",code:$("#languageCode").val(),title:$("#languageTitle").val()},c=k(a);c.length==0?Vosao.jsonrpc.languageService.save(function(a){a.result=="success"?($("#language-dialog").dialog("close"),n()):j(a.messages.list)},Vosao.javaMap(a)):j(c)}function
m(){$("#language-dialog").dialog("close")}function
n(){Vosao.jsonrpc.languageService.select(function(a){c=a.list;var b='<table
class="form-table"><tr><th></th><th>'+messages("code")+"</th><th>"+messages("title")+"</th></tr>";$.each(a.list,function(a,c){b+='<tr><td><input
type="checkbox"
value="'+
c.id+'"/></td><td>'+c.code+'</td><td>\t <a
data-id="'+
c.id+'">'+c.title+"</a></td></tr>"}),$("#languages").html(b+"</table>"),$("#languages
tr:even").addClass("even"),$("#languages a").click(function(){var
a=$(this).attr("data-id");a&&o(a)})})}function
o(a){Vosao.jsonrpc.languageService.getById(function(a){b=a,$("#languageCode").val(a.code),$("#languageTitle").val(a.title),$("#language-dialog").dialog("open"),$("#languageSelection").hide(),$("#listed-language").hide(),$("#not-listed-language").show(),$("#language-dialog .messages").html("")},a)}function
q(){var a="";for(var b in p)a+='<option
value="'+b+'">'+p[b]+"</option>\n";$("#selectLanguage").html(a),$("#selectLanguage").val("ru"),s()}function
r(a){a?($("#listed-language").show(),$("#not-listed-language").hide()):($("#listed-language").hide(),$("#not-listed-language").show())}function
s(){var
a=$("#selectLanguage").val();$("#languageCode").val(a),$("#languageTitle").val(p[a])}console.log("Loading
LanguagesView.js");var
b=null,c=null,p={aa:"Afar",ab:"Abkhazian",af:"Afrikaans",am:"Amharic",ar:"Arabic",as:"Assamese",ay:"Aymara",az:"Azerbaijani",ba:"Bashkir",be:"Byelorussian",bg:"Bulgarian",bh:"Bihari",bi:"Bislama",bn:"Bengali;
Bangla",bo:"Tibetan",br:"Breton",bs:"Bosnian",ca:"Catalan",co:"Corsican",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",dz:"Bhutani",el:"Greek",en:"English",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fj:"Fiji",fo:"Faroese",fr:"French",fy:"Frisian",ga:"Irish",gd:"Scots
Gaelic",gl:"Galician",gn:"Guarani",gu:"Gujarati",ha:"Hausa",he:"Hebrew
(formerly
iw)",hi:"Hindi",hr:"Croatian",hu:"Hungarian",hy:"Armenian",ia:"Interlingua",id:"Indonesian
(formerly
in)",ie:"Interlingue",ik:"Inupiak",is:"Icelandic",it:"Italian",iu:"Inuktitut",ja:"Japanese",jw:"Javanese",ka:"Georgian",kk:"Kazakh",kl:"Greenlandic",km:"Cambodian",kn:"Kannada",ko:"Korean",ks:"Kashmiri",ku:"Kurdish",ky:"Kirghiz",la:"Latin",ln:"Lingala",lo:"Laothian",lt:"Lithuanian",lv:"Latvian,
Lettish",mg:"Malagasy",mi:"Maori",mk:"Macedonian",ml:"Malayalam",mn:"Mongolian",mo:"Moldavian",mr:"Marathi",ms:"Malay",mt:"Maltese",my:"Burmese",na:"Nauru",ne:"Nepali",nl:"Dutch",no:"Norwegian",oc:"Occitan",om:"(Afan)
Oromo",or:"Oriya",pa:"Punjabi",pl:"Polish",ps:"Pashto,
Pushto",pt:"Portuguese",qu:"Quechua",rm:"Rhaeto-Romance",rn:"Kirundi",ro:"Romanian",ru:"Russian",rw:"Kinyarwanda",sa:"Sanskrit",sd:"Sindhi",sg:"Sangho",sh:"Serbo-Croatian",si:"Sinhalese",sk:"Slovak",sl:"Slovenian",sm:"Samoan",sn:"Shona",so:"Somali",sq:"Albanian",sr:"Serbian",ss:"Siswati",st:"Sesotho",su:"Sundanese",sv:"Swedish",sw:"Swahili",ta:"Tamil",te:"Telugu",tg:"Tajik",th:"Thai",ti:"Tigrinya",tk:"Turkmen",tl:"Tagalog",tn:"Setswana",to:"Tonga",tr:"Turkish",ts:"Tsonga",tt:"Tatar",tw:"Twi",ug:"Uighur",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",vi:"Vietnamese",vo:"Volapuk",wo:"Wolof",xh:"Xhosa",yi:"Yiddish
(formerly ji)",yo:"Yoruba",za:"Zhuang","zh-CN":"Simplified
Chinese","zh-TW":"Traditional Chinese",zu:"Zulu"};return
Backbone.View.extend({el:$("#tab-1"),render:function(){this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),d()},remove:function(){$("#language-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/config/messages.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="messageBundle"> </div>\r\n<div
class="buttons">\r\n <input id="addMessageButton" type="button"
value="<%= messages("add") %>" />\r\n <input id="removeMessageButton"
type="button" value="<%= messages("remove") %>" />\r\n</div>\r\n\r\n<div
id="message-dialog" style="display:none" title="<%=
messages("config.localized_message") %>">\r\n <form
id="messageForm">\r\n <div class="messages"> </div>\r\n <div
class="form-row">\r\n <label><%=
messages("config.message_code") %></label>\r\n <input
id="messageCode" type="text"/>\r\n </div>\r\n <div
id="messagesInput"> </div>\r\n <div class="buttons-dlg">\r\n
<input id="saveMessageDlgButton" type="submit" value="<%=
messages("save") %>" />\r\n <input id="cancelMessageDlgButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form>\r\n</div>\r\n\r\n'}),define("view/config/MessagesView",["text!template/config/messages.html"],function(a){function
c(){$("#message-dialog").dialog({width:400,autoOpen:!1}),Vosao.initJSONRpc(d),$("#addMessageButton").click(f),$("#removeMessageButton").click(g),$("#messageForm").submit(function(){return
j(),!1}),$("#cancelMessageDlgButton").click(k),$("ul.ui-tabs-nav
li:nth-child(4)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
d(){e()}function
e(){Vosao.jsonrpc.languageService.select(function(a){b=a.list,h()})}function
f(){n();var a="";$.each(b,function(b,c){a+='<div
class="form-row"><label>'+c.title+'</label><input type="text"
id="message_'+c.code+'"
/></div>'}),$("#messageCode").val(""),$("#messagesInput").html(a),$("#message-dialog").dialog("open")}function
g(){var a=[];$("#messageBundle
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.messageService.remove(function(a){Vosao.info(a.message),h()},Vosao.javaList(a))}function
h(){Vosao.jsonrpc.messageService.select(function(a){var c='<table
class="form-table"><tr><th></th><th>'+messages("code")+"</th>";$.each(b,function(a,b){c+="<th>"+b.title+"</th>"}),c+="</tr>",$.each(a.list,function(a,d){c+='<tr><td><input
type="checkbox" value="'+d.code+'"/></td>\t <td><a
data-code="'+d.code+'">'+d.code+"</a></td>",$.each(b,function(a,b){c+="<td>"+d.values.map[b.code]+"</td>"}),c+="</tr>"}),$("#messageBundle").html(c+"</table>"),$("#messageBundle
tr:even").addClass("even"),$("#messageBundle td a").click(function(){var
a=$(this).attr("data-code");a&&i(a)})})}function
i(a){Vosao.jsonrpc.messageService.selectByCode(function(b){f(),$("#messageCode").val(a),$.each(b.list,function(a,b){$("#message_"+b.languageCode).val(b.value)})},a)}function
j(){var
a={code:$("#messageCode").val()};$.each(b,function(b,c){a[c.code]=$("#message_"+c.code).val()}),Vosao.jsonrpc.messageService.save(function(a){a.result=="success"?(h(),$("#message-dialog").dialog("close")):m(a.messages.list)},Vosao.javaMap(a))}function
k(){$("#message-dialog").dialog("close")}function
l(a){Vosao.errorMessage("#message-dialog .messages",a)}function
m(a){Vosao.errorMessages("#message-dialog .messages",a)}function
n(){$("#message-dialog .messages").html()}console.log("Loading
MessagesView.js");var b=null;return
Backbone.View.extend({el:$("#tab-1"),render:function(){this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),c()},remove:function(){$("#message-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/config/users.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2010 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="users"> </div>\r\n<div
class="buttons">\r\n <input id="addUserButton" type="button" value="<%=
messages("add") %>" />\r\n <input id="removeUserButton" type="button"
value="<%= messages("remove") %>" />\r\n</div>\r\n\r\n<div id="user-dialog"
style="display:none" title="<%= messages("config.user_details") %>">\r\n
<form id="userForm">\r\n <div class="messages"> </div>\r\n <div
class="form-row">\r\n <label><%=
messages("user_name") %></label>\r\n <input id="userName"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("user_email") %></label>\r\n <input
id="userEmail" type="text"/>\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("user_role") %></label>\r\n <select
id="userRole">\r\n <option value="SITE_USER"
selected="selected"><%= messages("site_user") %></option>\r\n
<option value="USER"><%= messages("user") %></option>\r\n
<option value="ADMIN"><%= messages("administrator") %></option>\r\n
</select>\r\n </div>\r\n <div class="form-row">\r\n <label><%=
messages("password") %></label>\r\n <input id="userPassword1"
type="password"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("retype_password") %></label>\r\n <input
id="userPassword2" type="password"/>\r\n </div>\r\n <div
class="form-row">\r\n <label><%=
messages("profile.timezone") %></label>\r\n <select
id="timezone"></select>\r\n </div> \r\n <div
class="buttons-dlg">\r\n <input id="userSaveDlgButton" type="submit"
value="<%= messages("save") %>" />\r\n <input
id="userDisableDlgButton" type="button" value="<%= messages("disable") %>"
/>\r\n <input id="userCancelDlgButton" type="button" value="<%=
messages("cancel") %>" />\r\n </div>\r\n </form>
\r\n</div>\r\n\r\n'}),define("view/config/UsersView",["text!template/config/users.html"],function(a){function
d(){$("#user-dialog").dialog({width:500,autoOpen:!1}),Vosao.initJSONRpc(e),$("#addUserButton").click(f),$("#removeUserButton").click(g),$("#userForm").submit(function(){return
m(),!1}),$("#userCancelDlgButton").click(n),$("#userDisableDlgButton").click(q),$("ul.ui-tabs-nav
li:nth-child(5)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
e(){Vosao.jsonrpc.userService.getTimezones(function(a){timezones=a.list,r(),h()})}function
f(){b=null,k(),$("#user-dialog").dialog("open")}function g(){var
a=[];$("#users
input:checked").each(function(){a.push(String(this.value))});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.userService.remove(function(a){Vosao.info(a.message),h()},Vosao.javaList(a))}function
h(){Vosao.jsonrpc.userService.select(function(a){var b='<table
class="form-table"><tr><th></th><th>'+messages("name")+"</th><th>"+messages("email")+"</th><th>"+messages("role")+"</th><th>"+messages("access")+"</th></tr>";$.each(a.list,function(a,c){var
d=c.disabled?messages("disabled"):messages("enabled");b+='<tr><td><input
type="checkbox"
value="'+
c.id+'"/></td><td>'+
c.name+'</td><td>\t <a
data-id="'+
c.id+'">'+c.email+"</a></td><td>"+i(c.role)+"</td>"+"<td>"+d+"</td></tr>"}),$("#users").html(b+"</table>"),$("#users
tr:even").addClass("even"),$("#users a").click(function(){var
a=$(this).attr("data-id");a&&j(a)})})}function i(a){if(a=="ADMIN")return
messages("administrator");if(a=="USER")return
messages("user");if(a=="SITE_USER")return messages("site_user")}function
j(a){Vosao.jsonrpc.userService.getById(function(a){b=a,k(),$("#user-dialog").dialog("open")},a)}function
k(){b==null?($("#userName").val(""),$("#userEmail").val(""),$("#userEmail").removeAttr("disabled"),$("#userRole").val(""),$("#userDisableDlgButton").hide()):($("#userName").val(
b.name),$("#userEmail").val(b.email),$("#userEmail").attr("disabled",!0),$("#userRole").val(b.roleString),$("#timezone").val(b.timezone),$("#userDisableDlgButton").val(b.disabled?messages("enable"):messages("disable")).show()),$("#userPassword1").val(""),$("#userPassword2").val(""),$("#user-dialog .messages").html("")}function
l(a){var b=[];return
a.email==""&&b.push(messages("email_is_empty")),a.password1!=a.password2&&b.push(messages("config.passwords_dont_match")),b}function
m(){var
a={id:b!=null?String(
b.id):"",name:$("#userName").val(),email:$("#userEmail").val(),role:$("#userRole").val(),timezone:$("#timezone").val(),password:$("#userPassword1").val(),password1:$("#userPassword1").val(),password2:$("#userPassword2").val()},c=l(a);c.length==0?Vosao.jsonrpc.userService.save(function(a){a.result=="success"?($("#user-dialog").dialog("close"),Vosao.info(a.message),h()):p(a.messages.list)},Vosao.javaMap(a)):p(c)}function
n(){$("#user-dialog").dialog("close")}function
o(a){Vosao.errorMessage("#user-dialog .messages",a)}function
p(a){Vosao.errorMessages("#user-dialog .messages",a)}function
q(){Vosao.jsonrpc.userService.disable(function(a){$("#user-dialog").dialog("close"),Vosao.showServiceMessages(a),h()},
b.id,!b.disabled)}function
r(){var a="";$.each(timezones,function(b,c){a+='<option
value="'+c+'">'+c+"</option>"}),$("#timezone").html(a)}console.log("Loading
UsersView.js");var b=null,c=null;return
Backbone.View.extend({el:$("#tab-1"),render:function(){this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),d()},remove:function(){$("#user-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/config/groups.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="groups"> </div>\r\n<div
class="buttons">\r\n <input id="addGroupButton" type="button" value="<%=
messages("add") %>" />\r\n <input id="removeGroupButton" type="button"
value="<%= messages("remove") %>" />\r\n</div>\r\n\r\n<div
id="group-dialog" style="display:none" title="<%=
messages("config.group_details") %>">\r\n <form id="groupForm">\r\n
<div class="messages"> </div>\r\n <div class="form-row">\r\n
<label><%= messages("config.group_name") %></label>\r\n <input
id="groupName" type="text"/>\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="groupSaveDlgButton"
type="submit" value="<%= messages("save") %>" />\r\n <input
id="groupCancelDlgButton" type="button" value="<%= messages("cancel") %>"
/>\r\n </div>\r\n </form> \r\n</div>\r\n\r\n<div
id="user-group-dialog" style="display:none" title="<%=
messages("config.group_users") %>">\r\n <form id="userGroupForm">\r\n
<div id="groupUsers"> </div>\r\n <div class="buttons-dlg">\r\n
<input id="userGroupSaveDlgButton" type="submit" value="<%=
messages("save") %>" />\r\n <input id="userGroupCancelDlgButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form>
\r\n</div>\r\n\r\n'}),define("view/config/GroupsView",["text!template/config/groups.html"],function(a){function
e(){$("#group-dialog").dialog({width:460,autoOpen:!1}),$("#user-group-dialog").dialog({width:300,autoOpen:!1}),Vosao.initJSONRpc(f),$("#addGroupButton").click(h),$("#removeGroupButton").click(i),$("#groupForm").submit(function(){return
m(),!1}),$("#groupCancelDlgButton").click(n),$("#userGroupForm").submit(function(){return
s(),!1}),$("#userGroupCancelDlgButton").click(r),$("ul.ui-tabs-nav
li:nth-child(6)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
f(){g()}function
g(){Vosao.jsonrpc.groupService.select(function(a){c=Vosao.idMap(a.list);var
b='<table
class="form-table"><tr><th></th><th>'+messages("name")+"</th><th>"+messages("users")+"</th></tr>";$.each(a.list,function(a,c){if(
c.name=="guests")return;var
d=messages("add_users");c.users.list.length>0&&(d="",$.each(c.users.list,function(a,b){d+=(a==0?"":", ")+
b.name}));var
e='<a class="groupEdit" data-id="'+
c.id+'">'+
c.name+"</a>",f='<a
class="userGroupEdit" data-id="'+
c.id+'">'+d+"</a>";b+='<tr><td><input
type="checkbox"
value="'+
c.id+'"/></td><td>'+e+"</td><td>"+f+"</td></tr>"}),$("#groups").html(b+"</table>"),$("#groups
tr:even").addClass("even"),$("#groups .groupEdit").click(function(){j($(this).attr("data-id"))}),$("#groups .userGroupEdit").click(function(){q($(this).attr("data-id"))})})}function
h(){b=null,k(),$("#group-dialog").dialog("open")}function i(){var
a=[];$("#groups
input:checked").each(function(){a.push(String(this.value))});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.groupService.remove(function(a){Vosao.info(a.message),g()},Vosao.javaList(a))}function
j(a){Vosao.jsonrpc.groupService.getById(function(a){b=a,k(),$("#group-dialog").dialog("open")},a)}function
k(){b==null?$("#groupName").val(""):$("#groupName").val(
b.name),$("#group-dialog .messages").html("")}function
l(a){var b=[];return
a.name==""&&b.push(messages("name_is_empty")),b}function m(){var
a={id:b!=null?String(
b.id):"",name:$("#groupName").val()},c=l(a);c.length==0?Vosao.jsonrpc.groupService.save(function(a){a.result=="success"?($("#group-dialog").dialog("close"),Vosao.info(a.message),g()):p(a.messages.list)},Vosao.javaMap(a)):p(c)}function
n(){$("#group-dialog").dialog("close")}function
o(a){Vosao.errorMessage("#group-dialog .messages",a)}function
p(a){Vosao.errorMessages("#group-dialog .messages",a)}function
q(a){b=c[a],Vosao.jsonrpc.userService.select(function(a){d=Vosao.idMap(a.list);var
c=Vosao.idMap(b.users.list),e="";$.each(d,function(a,b){var
d="";c[
b.id]!=undefined&&(d='checked = "checked"'),e+='<div
class="form-row"><input type="checkbox" '+d+'
value="'+
b.id+'"> '+
b.name+"</div>"}),$("#groupUsers").html(e),$("#user-group-dialog").dialog("open")})}function
r(){$("#user-group-dialog").dialog("close")}function s(){var
a=[];$("#user-group-dialog
input:checked").each(function(){a.push(this.value)}),Vosao.jsonrpc.groupService.setGroupUsers(function(a){Vosao.showServiceMessages(a),$("#user-group-dialog").dialog("close"),g()},
b.id,Vosao.javaList(a))}console.log("Loading
GroupsView.js");var b=null,c=null,d=null;return
Backbone.View.extend({el:$("#tab-1"),render:function(){this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),e()},remove:function(){$("#group-dialog").dialog("destroy").remove(),$("#user-group-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/config/tags.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n\r\n<ul id="tags"></ul>\r\n<div
class="buttons">\r\n <input id="addButton" type="button" value="<%=
messages("add") %>" />\r\n</div>\r\n\r\n<div id="tag-dialog"
style="display:none" title="<%= messages("config.tag_details") %>">\r\n
<form id="tagForm">\r\n <div class="messages"> </div>\r\n <div
class="form-row">\r\n <label><%=
messages("title") %></label>\r\n <input id="title"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("config.tag_name") %></label>\r\n <input
id="tagName" type="text"/>\r\n </div>\r\n <div
id="pages"></div>\r\n <div class="buttons-dlg">\r\n <input
id="tagSaveDlgButton" type="submit" value="<%= messages("save") %>"
/>\r\n <input id="tagDeleteDlgButton" type="button" value="<%=
messages("delete") %>" />\r\n <input id="tagCancelDlgButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form>
\r\n</div>\r\n'}),define("view/config/TagsView",["text!template/config/tags.html","jquery.treeview"],function(a){function
f(){$("#tag-dialog").dialog({width:460,autoOpen:!1}),Vosao.initJSONRpc(g),$("#addButton").click(function(){h("")}),$("#tagForm").submit(function(){return
q(),!1}),$("#tagCancelDlgButton").click(r),$("#tagDeleteDlgButton").click(u),$("ul.ui-tabs-nav
li:nth-child(7)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default"),$("#title").change(w)}function
g(){i()}function
h(a){c=a,b=null,m(),$("#tag-dialog").dialog("open")}function
i(){Vosao.jsonrpc.tagService.getTree(function(a){$("#tags").html(j(a.list)),$("#tags .tagEdit").click(function(){l($(this).attr("data-id"))}),$("#tags .addTag").click(function(){h($(this).attr("data-id"))}),$("#tags").treeview({animated:"fast",collapsed:!0,unique:!0,persist:"cookie",cookieId:"tagTree"})})}function
j(a){var b="";return $.each(a,function(a,c){b+=k(c)}),b}function k(a){var
b='<li><a class="tagEdit" data-id="'+
a.entity.id+'">'+
a.entity.name+'</a>
<a class="addTag" title="'+messages("add_child")+'"
data-id="'+
a.entity.id+'">+</a>';return
a.children.list.length>0&&(b+="<ul>",$.each(a.children.list,function(a,c){b+=k(c)}),b+="</ul>"),b+"</li>"}function
l(a){Vosao.jsonrpc.tagService.getById(function(a){b=a,c=b.parent,m(),$("#tag-dialog").dialog("open")},a)}function
m(){b==null?($("#tagName").val(""),$("#title").val(""),$("#pages").html("")):($("#tagName").val(
b.name),$("#title").val(b.title),n()),$("#tag-dialog .messages").html("")}function
n(){Vosao.jsonrpc.tagService.getPages(function(a){e=a.list,o()},
b.id)}function
o(){$("#pages").html("");if(e.length>0){var
a="";$.each(e,function(b,c){a+='<span class="tag">'+c.title+' <a
data-id="'+b+'"><img src="/static/images/02_x.png"
/></a></span>'}),$("#pages").html(a),$("#pages
a").click(function(){v($(this).attr("data-id"))})}}function p(a){var
b=[];return
a.name==""&&b.push(messages("config.tag_is_empty")),b}function
q(){var
a={id:b!=null?String(
b.id):"",parent:c==null?"":String(c),name:$("#tagName").val(),title:$("#title").val()},d=p(a);d.length==0?Vosao.jsonrpc.tagService.save(function(a){a.result=="success"?($("#tag-dialog").dialog("close"),Vosao.info(a.message),i()):s(a.message)},Vosao.javaMap(a)):t(d)}function
r(){$("#tag-dialog").dialog("close")}function
s(a){Vosao.errorMessage("#tag-dialog .messages",a)}function
t(a){Vosao.errorMessages("#tag-dialog .messages",a)}function
u(){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.tagService.remove(function(a){Vosao.showServiceMessages(a),$("#tag-dialog").dialog("close"),i()},
b.id)}function
v(a){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.tagService.removeTag(function(b){Vosao.showServiceMessages(b),e.splice(a,1),o()},e[a].friendlyURL,
b.id)}function
w(){if(b!=null)return;var
a=$("#tagName").val(),c=$("#title").val();a==""&&$("#tagName").val(Vosao.urlFromTitle(c))}console.log("Loading
TagsView.js");var b=null,c=null,d=null,e=null;return
Backbone.View.extend({css:"/static/css/jquery.treeview.css",el:$("#tab-1"),render:function(){Vosao.addCSSFile(this.css),this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),f()},remove:function(){$("#tag-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)}})}),define("text!template/config/attributes.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="attributes"></div>\r\n
\r\n<div class="buttons">\r\n <input id="addButton" type="button"
value="<%= messages("add") %>" />\r\n <input id="removeButton"
type="button" value="<%= messages("remove") %>" />\r\n</div>\r\n \r\n<div
id="attribute-dialog" style="display:none" title="<%=
messages(\'attribute\') %>">\r\n <form id="attributeForm">\r\n <div
class="form-row">\r\n <label><%=
messages("name") %></label>\r\n <input id="name"
type="text"/>\r\n </div>\r\n <div class="form-row">\r\n
<label><%= messages("value") %></label>\r\n <input id="value"
type="text" size="40"/>\r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="saveButton" type="submit"
value="<%= messages("save") %>" />\r\n <input id="cancelButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form>\r\n</div>'}),define("view/config/AttributesView",["text!template/config/attributes.html"],function(a){function
c(){$("ul.ui-tabs-nav
li:nth-child(8)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default"),$("#attribute-dialog").dialog({width:400,autoOpen:!1}),Vosao.initJSONRpc(d),$("#addButton").click(g),$("#cancelButton").click(function(){$("#attribute-dialog").dialog("close")}),$("#attributeForm").submit(function(){return
i(),!1}),$("#removeButton").click(j)}function d(){e()}function
e(){Vosao.jsonrpc.configService.getConfig(function(a){b=a,f()})}function
f(){var a='<table
class="form-table"><tr><th></th><th>'+messages("name")+"</th><th>"+messages("value")+"</th></tr>";$.each(b.attributes.map,function(b,c){a+='<tr><td><input
type="checkbox" value="'+b+'"/></td>'+'<td><a
data-name="'+b+'">'+b+"</a></td>"+"<td>"+c+"</td></tr>"}),$("#attributes").html(a+"</table>"),$("#attributes
tr:even").addClass("even"),$("#attributes
a").click(function(){h($(this).attr("data-name"))})}function
g(){$("#attribute-dialog").dialog("open"),$("#name").val(""),$("#value").val("")}function
h(a){$("#attribute-dialog").dialog("open"),$("#name").val(a),$("#value").val(b.attributes.map[a])}function
i(){var
a=$("#name").val(),b=$("#value").val();Vosao.jsonrpc.configService.saveAttribute(function(a){Vosao.showServiceMessages(a),$("#attribute-dialog").dialog("close"),d()},a,b)}function
j(){var a=[];$("#attributes
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.configService.removeAttributes(function(a){Vosao.info(a.message),d()},Vosao.javaList(a))}console.log("Loading
AttributesView.js");var b="";return
Backbone.View.extend({el:$("#tab-1"),render:function(){this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),c()},remove:function(){$("#attribute-dialog").dialog("destroy").remove(),this.el.html("")}})}),define("text!template/folders.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n\r\n<ul>\r\n
<li><a href="#tab-1"><%= messages("folders") %></a></li>\r\n <li><a
href="#tab-2">Picasa</a></li>\r\n</ul>\r\n\r\n<div id="tab-1">\r\n <p
id="folder-location"></p>\r\n <ul id="folders-tree"><img
src="/static/images/ajax-loader.gif" /></ul>\r\n</div>\r\n\r\n<div
id="tab-2">\r\n <div id="albums"><img
src="/static/images/ajax-loader.gif" /></div>\r\n <div
class="clear">\r\n <a id="createAlbumLink"><%=
messages("folders.create_album") %></a>\r\n </div> \r\n <div
id="albumDetails">\r\n <hr class="clear picasa-hr" />\r\n <p
class="album-name">\r\n Album : <span
id="album-location"></span>\r\n <a id="deleteAlbumLink"><%=
messages("folders.delete_album") %></a>\r\n </p>\r\n <div
id="photos"></div>\r\n <div class="clear">\r\n <a
id="uploadPhotoLink"><%= messages("folders.upload_image") %></a>\r\n
</div>\r\n </div> \r\n <div
class="clear"></div>\r\n</div>\r\n\r\n</div>\r\n\r\n<div id="album-dialog"
style="display:none" title="<%= messages("folders.new_album") %>">\r\n
<form id="albumForm">\r\n <div class="form-row">\r\n <label><%=
messages("folders.album_title") %></label>\r\n <input
id="title"/>\r\n </div>\r\n <div id="albumMessages"></div>\r\n
<div class="buttons-dlg">\r\n <input type="submit" value="<%=
messages("save") %>" />\r\n <input id="cancelAlbumButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
</form> \r\n</div>\r\n\r\n<div id="upload-dialog" style="display:none"
title="<%= messages("folders.upload_image") %>">\r\n <form id="upload"
action="/cms/upload" method="post" enctype="multipart/form-data">\r\n
<input type="hidden" name="fileType" value="picasa" />\r\n <input
type="hidden" name="albumId" />\r\n <input type="file" name="uploadFile"
/>\r\n <div class="buttons-dlg">\r\n <input type="submit"
value="<%= messages("upload") %>" />\r\n <input
id="uploadCancelButton" type="button" value="<%= messages("cancel") %>"
/>\r\n </div> \r\n
</form>\r\n</div>\r\n\r\n'}),define("view/FoldersView",["text!template/folders.html","jquery.form","jquery.treeview"],function(a){function
b(){Vosao.initJSONRpc(c),$("#tabs").tabs(),$.cookie("folderReturnPath",null,{path:"/",expires:10})}function
c(){Vosao.jsonrpc.folderService.getTree(function(a){$("#folders-tree").html(d(a)),$("#folders-tree").treeview({animated:"fast",collapsed:!0,unique:!0,persist:"cookie",cookieId:"folderTree"})})}function
d(a){var b='<li><a href="#folder/'+
a.entity.id+'">'+a.entity.title+'</a> <a
title="'+messages("add_child")+'"
href="#addFolder/'+
a.entity.id+'">+</a>';return
a.children.list.length>0&&(b+="<ul>",$.each(a.children.list,function(a,c){b+=d(c)}),b+="</ul>"),b+"</li>"}function
i(){$("#album-dialog").dialog({width:400,autoOpen:!1}),$("#upload-dialog").dialog({width:400,autoOpen:!1}),$("#upload").ajaxForm(v),Vosao.initJSONRpc(j),$("#createAlbumLink").click(q),$("#deleteAlbumLink").click(s),$("#uploadPhotoLink").click(u),$("#albumForm").submit(function(){return
r(),!1}),$("#cancelAlbumButton").click(function(){$("#album-dialog").dialog("close")}),$("#uploadAlbumButton").click(function(){$("#upload-dialog").dialog("close")}),$("#uploadCancelButton").click(function(){$("#upload-dialog").dialog("close")})}function
j(){Vosao.jsonrpc.configService.getConfig(function(a){e=a,e.enablePicasa?k():($("#albums").html(messages("folders.picasa_not_enabled")),$("#createAlbumLink").hide())})}function
k(){Vosao.jsonrpc.picasaService.selectAlbums(function(a){f=a.list,l()})}function
l(){var a="";$.each(f,function(b,c){var
d="";$.each(c.categories.list,function(a,b){d+=b+" "}),a+='<a class="album"
data-i="'+b+'">'+'<img src="/static/images/Photos.png"
/><p>'+c.title+" "+d+"</p></a>"}),$("#albums").html(a),$("#albums
a.album").click(function(){m($(this).attr("data-i"))})}function
m(a){h=f[a],n()}function
n(){$("#album-location").text(h.title),Vosao.jsonrpc.picasaService.selectPhotos(function(a){g=a.list,o()},
h.id)}function
o(){$("#albumDetails").show();var a="";$.each(g,function(b,c){var
d="";$.each(c.categories.list,function(a,b){d+=b+" "}),a+='<div
class="photo"><img class="remove" src="/static/images/02_x.png"
data-i="'+b+'" />'+'<a data-i="'+b+'"><img src="'+c.thumbnailURL+'"
/>'+"<p>"+c.title+"<br/>"+d+"</p></a></div>"}),$("#photos").html(a),$("#photos
img.remove").click(function(){t($(this).attr("data-i"))}),$("#photos
a").click(function(){p($(this).attr("data-i"))})}function
p(a){window.open(g[a].URL,"preview")}function
q(){$("#album-dialog").dialog("open")}function r(){var
a=$("#title").val();if(!a){Vosao.errorMessage("#albumMessages",messages("title_is_empty"));return}Vosao.jsonrpc.picasaService.addAlbum(function(a){a.result=="success"?($("#album-dialog").dialog("close"),k()):Vosao.errorMessage("#albumMessages",a.message)},a)}function
s(){confirm(messages("folders.you_delete_album")+" "+h.title+". "+messages("are_you_sure"))&&Vosao.jsonrpc.picasaService.removeAlbum(function(a){a.result=="success"&&(k(),$("#albumDetails").hide()),Vosao.showServiceMessages(a)},
h.id)}function
t(a){photo=g[a],confirm(messages("folders.you_delete_photo")+" "+photo.title+". "+messages("are_you_sure"))&&Vosao.jsonrpc.picasaService.removePhoto(function(a){a.result=="success"&&n(),Vosao.showServiceMessages(a)},
h.id,
photo.id)}function
u(){$("#upload-dialog
input[name=albumId]").val(
h.id),$("#upload-dialog").dialog("open")}function
v(a){var
b=a.split("::"),c=b[1],d=b[2];c=="success"?(Vosao.info("Success."),setTimeout(n,3e3)):(d=messages("error")+". "+d,Vosao.error(d)),$("#upload-dialog").dialog("close")}console.log("Loading
FoldersView.js");var e=null,f=null,g=null,h=null;return
Backbone.View.extend({css:["/static/css/jquery.treeview.css","/static/css/picasa.css"],el:$("#content"),tmpl:_.template(a),render:function(){Vosao.addCSSFiles(this.css),this.el.html(this.tmpl({messages:messages})),b(),i()},remove:function(){$("#album-dialog").dialog("destroy").remove(),$("#upload-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFiles(this.css)}})}),define("text!template/folder.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="breadcrumbs">\r\n <span
class="button ui-state-default ui-corner-all" style="padding:4px
10px;">\r\n <a href="#folders"><%= messages("resources") %>:</a>
/\r\n <span id="crumbs"></span>\r\n </span>\r\n</div>\r\n\r\n<div
id="tabs" style="top:14px;">\r\n<ul>\r\n <li><a href="#tab-1"><%=
messages("folder") %></a></li>\r\n <li class="filesTab"><a
href="#tab-2"><%= messages("files") %></a></li>\r\n <li
class="childrenTab"><a href="#tab-3"><%=
messages("subfolders") %></a></li>\r\n <li class="securityTab"><a
href="#tab-4"><%= messages("security") %></a></li>\r\n</ul>\r\n\r\n<div
id="tab-1">\r\n<form id="folderForm">\r\n<div class="form-row">\r\n
<label><%= messages("title") %></label>\r\n <input id="title"
type="text" class="form-title" />\r\n</div>\r\n<div
class="form-row">\r\n <label><%=
messages("folder.name_for_url") %></label>\r\n <input id="name"
type="text" class="form-url"/>\r\n</div>\r\n<div class="buttons">\r\n
<input id="saveButton" type="submit" value="<%= messages("save") %>"
/>\r\n <input id="cancelButton" type="button" value="<%=
messages("cancel") %>" />\r\n <input id="exportButton" type="button"
value="<%= messages("export") %>" />\r\n</div>
\r\n</form>\r\n</div>\r\n\r\n<div id="tab-2" class="filesTab">\r\n <div
id="filesTable"> </div>\r\n <div class="buttons">\r\n <input
id="createFileButton" type="button" \r\n value="<%=
messages("create_file") %>" />\r\n <input id="uploadButton"
type="button" \r\n value="<%= messages("upload_file") %>"
/>\r\n <input id="deleteFilesButton" type="button" \r\n
value="<%= messages("delete_files") %>" />\r\n <input
id="fileCancelButton" type="button" \r\n value="<%=
messages("cancel") %>" />\r\n </div>\r\n</div>\r\n\r\n<div id="tab-3"
class="childrenTab">\r\n <div id="children"> </div>\r\n <div
class="buttons">\r\n <input id="addChildButton" type="button"
\r\n value="<%= messages("folder.add_child_folder") %>"
/>\r\n <input id="deleteFoldersButton" type="button" \r\n
value="<%= messages("folder.delete_folders") %>" />\r\n <input
id="folderCancelButton" type="button" \r\n value="<%=
messages("cancel") %>" />\r\n </div> \r\n</div>\r\n\r\n<div
id="tab-4" class="securityTab">\r\n <div id="permissions"> </div>\r\n
<div class="buttons">\r\n <input id="addPermissionButton"
type="button" \r\n value="<%= messages("add_permission") %>"
/>\r\n <input id="deletePermissionButton" type="button"
\r\n value="<%= messages("delete_permission") %>" />\r\n
</div> \r\n</div>\r\n\r\n</div>\r\n\r\n<div id="file-upload" title="<%=
messages("folder.upload_file") %>" style="display:none">\r\n\t<form
id="upload" action="/cms/upload" method="post"
enctype="multipart/form-data">\r\n \t<%=
messages("file_upload") %>:\r\n \t<input type="hidden" name="fileType"
value="resource" />\r\n \t<input type="hidden" name="folderId" />\r\n
\t<input type="file" name="uploadFile" multiple="true" />\r\n\t <div
class="buttons-dlg">\r\n \t <input type="submit" value="<%=
messages("send") %>" />\r\n \t<input id="fileUploadCancelButton"
type="button" \r\n \tvalue="<%= messages("cancel") %>" />\r\n
\t</div>\r\n\t</form>\r\n</div>\r\n\r\n<div id="permission-dialog"
style="display:none" title="<%=
messages("permission_details") %>">\r\n<form id="permissionForm">\r\n
<div class="form-row">\r\n <label><%=
messages("group") %></label>\r\n <select
id="groupSelect"></select>\r\n <span id="groupName"></span>
\r\n </div>\r\n <div id="permissionList" class="form-row">\r\n
<fieldset>\r\n <legend><%=
messages("permission") %></legend>\r\n <input type="radio"
name="permission" value="DENIED"/> <%= messages("denied") %> <br
/>\r\n <input type="radio" name="permission" value="READ" /> <%=
messages("read") %> <br />\r\n <input type="radio"
name="permission" value="WRITE" /> <%= messages("read_write") %> <br
/>\r\n </fieldset> \r\n </div>\r\n <div
class="buttons-dlg">\r\n <input id="permissionSaveButton"
type="submit" value="<%= messages("save") %>" />\r\n <input
id="permissionCancelButton" type="button" value="<%= messages("cancel") %>"
/>\r\n </div>\r\n</form>\r\n</div>\r\n\r\n<div id="export-dialog"
style="display:none" title="<%= messages("folder.export_window") %>">\r\n
<form id="exportForm">\r\n <p><%=
messages("folder.export_window_info") %></p>\r\n <div id="exportInfo"
class="form-row"></div> \r\n <div id="timer"
class="form-row"></div>\r\n <div class="buttons-dlg">\r\n <input
id="exportCancelButton" type="button" value="<%= messages("cancel") %>"
/>\r\n </div>\r\n
</form>\r\n</div>\r\n\r\n'}),define("view/FolderView",["text!template/folder.html","jquery.form"],function(a){function
m(){$("#export-dialog").dialog({width:400,autoOpen:!1}),$("#file-upload").dialog({width:400,autoOpen:!1}),$("#permission-dialog").dialog({width:400,autoOpen:!1}),f=b!="";var
a=$("#tabs").tabs();Vosao.selectTabFromQueryParam(a),$("#upload").ajaxForm(s),Vosao.initJSONRpc(n),$("#title").change(y),$("#folderForm").submit(function(){return
B(),!1}),$("#cancelButton").click(C),$("#exportButton").click(D),$("#exportCancelButton").click(U),$("#createFileButton").click(x),$("#uploadButton").click(q),$("#deleteFilesButton").click(w),$("#fileCancelButton").click(C),$("#addChildButton").click(G),$("#deleteFoldersButton").click(I),$("#folderCancelButton").click(C),$("#fileUploadCancelButton").click(r),$("#addPermissionButton").click(Q),$("#deletePermissionButton").click(R),$("#permissionForm").submit(function(){return
P(),!1}),$("#permissionCancelButton").click(S),$("#file-upload
input[name=folderId]").val(b)}function
n(){Vosao.jsonrpc.folderService.getFolderRequest(function(a){g=a,o(),M(),V(),f?(K(g.permissions),A(),u(),$(".filesTab").show(),$(".childrenTab").show(),e.root?($("#saveButton").attr("disabled","disabled"),$("#title").attr("disabled","disabled"),$("#name").attr("disabled","disabled")):($("#saveButton").removeAttr("disabled"),$("#title").removeAttr("disabled"),$("#name").removeAttr("disabled"))):($(".filesTab").hide(),$(".childrenTab").hide())},b,c)}function
o(){e=g.folder,f&&(c=String(e.parent)),p(),T()}function
p(){f?($("#title").val(e.title),$("#name").val(
e.name)):($("#title").val(""),$("#name").val(""))}function
q(){$("#file-upload").dialog("open")}function
r(){$("#file-upload").dialog("close")}function s(a){var
b=a.split("::"),c=b[1],d=b[2];c=="success"?(Vosao.info(messages("folder.file_success_upload")),t()):Vosao.error(messages("folder.error_during_upload")+" "+d),$("#file-upload").dialog("close")}function
t(){Vosao.jsonrpc.fileService.getByFolder(function(a){g.files=a,u()},b)}function
u(){d=g.files;var a='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th><th>"+messages("filename")+"</th><th>"+messages("mimetype")+"</th><th>"+messages("size")+"</th></tr>";$.each(d.list,function(b,c){a+='<tr>\t<td><input
type="checkbox" name="item'+b+'" value="'+
c.id+'"/></td>\t<td><a
href="#file/'+
c.id+'">'+c.title+"</a></td>\t<td>"+c.filename+"</td>\t<td>"+c.mimeType+"</td>\t<td>"+c.size+" "+messages("bytes")+"</td></tr>"}),a+="</table>",$("#filesTable").html(a),$("#filesTable
tr:even").addClass("even")}function v(){var a=[];return $("#filesTable
input[@type=checkbox]:checked").each(function(){a.push(this.value)}),a}function
w(){var
a=Vosao.javaList(v());if(a.list.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.fileService.deleteFiles(function(a){a.result=="success"?(t(),Vosao.info(messages("folder.files_success_delete"))):Vosao.error(messages("folder.error_deleting_files")+" "+a.messsage)},a)}function
x(){location.href="#addFile/"+b}function y(){if(f)return;var
a=$("#name").val(),b=$("#title").val();a==""&&$("#name").val(Vosao.urlFromTitle(b))}function
z(){Vosao.jsonrpc.folderService.getByParent(function(a){g.children=a,A()},b)}function
A(){if(!f)return;var a='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th><th>"+messages("name")+"</th></tr>";$.each(g.children.list,function(b,c){a+='<tr><td><input
type="checkbox" value="'+
c.id+'"/></td><td><a
href="#folder/'+
c.id+'">'+c.title+"</td><td>"+
c.name+"</td></tr>"}),$("#children").html(a+"</table>"),$("#children
tr:even").addClass("even")}function B(){var
a=Vosao.javaMap({id:b,parent:c,name:$("#name").val(),title:$("#title").val()});Vosao.jsonrpc.folderService.saveFolder(function(a){a.result=="success"?(Vosao.info(messages("folder.success_save")),b==""&&(b=a.message,f=!0,$('#file-upload
input[name="folderId"]').val(b),n())):Vosao.showServiceMessages(a)},a)}function
C(){$.cookie("folderReturnPath")?location.href=$.cookie("folderReturnPath"):location.href="#folders"}function
D(){k=0,F(),$("#export-dialog").dialog("open"),Vosao.jsonrpc.configService.startExportFolderTask(function(a){a.result=="success"?(l=a.message,Vosao.infoMessage("#exportInfo",messages("creating_export_file")),i=setInterval(E,1e4),j=setInterval(F,1e3)):Vosao.showServiceMessages(a)},
e.id)}function
E(){Vosao.jsonrpc.configService.isExportTaskFinished(function(a){a&&(clearInterval(i),clearInterval(j),$("#export-dialog").dialog("close"),$("#exportDialogButton").attr("disabled",!1),location.href="/file/tmp/"+l)},"folder")}function
F(){$("#timer").html(k++ +" "+messages("sec")+".")}function
G(){location.href="#addFolder/"+b}function H(){var a=[];return $("#children
input[@type=checkbox]:checked").each(function(){a.push(this.value)}),a}function
I(){var
a=Vosao.javaList(H());if(a.list.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.folderService.deleteFolder(function(a){a.result=="success"?(z(),Vosao.info(messages("folder.success_delete"))):Vosao.error(messages("folder.error_deleting")+" "+a.messsage)},a)}function
J(a){if(a=="DENIED")return messages("denied");if(a=="READ")return
messages("read");if(a=="WRITE")return
messages("read_write");if(a=="ADMIN")return
messages("read_write_grant")}function K(a){h=Vosao.idMap(a.list);var
b='<table
class="form-table"><tr><th></th><th>'+messages("group")+"</th><th>"+messages("permission")+"</th></tr>";$.each(h,function(a,c){var
d="",e=
c.group.name;c.inherited||(d='<input type="checkbox"
value="'+
c.id+'">',e='<a
data-id="'+
c.id+'"> '+
c.group.name+"</a>"),b+="<tr><td>"+d+"</td><td>"+e+"</td><td>"+J(c.permission)+"</td></tr>"}),$("#permissions").html(b+"</table>"),$("#permissions
tr:even").addClass("even"),$("#permissions
a").click(function(){N($(this).attr("data-id"))})}function
L(){Vosao.jsonrpc.folderPermissionService.selectByFolder(function(a){K(a)},b)}function
M(){var a=g.groups;groups=Vosao.idMap(a.list);var
b="";$.each(groups,function(a,c){b+='<option
value="'+
c.id+'">'+
c.name+"</option>"}),$("#groupSelect").html(b)}function
N(a){permission=h[a],O(),$("#permission-dialog").dialog("open")}function
O(){$("#permission-dialog
input[type=radio]").removeAttr("checked"),permission==null?($("#permission-dialog
input[value=READ]").attr("checked","checked"),$("#groupSelect").show(),$("#groupName").hide()):($("#permissionList
input[value="+permission.permission+"]").attr("checked","checked"),$("#groupSelect").hide(),$("#groupName").show(),$("#groupName").text(
permission.group.name))}function
P(){var
a={folderId:b,groupId:permission==null?$("#groupSelect").val():String(
permission.group.id),permission:$("#permissionList
input:checked")[0].value};Vosao.jsonrpc.folderPermissionService.save(function(a){Vosao.showServiceMessages(a),$("#permission-dialog").dialog("close"),a.result=="success"&&L()},Vosao.javaMap(a))}function
Q(){permission=null,O(),$("#permission-dialog").dialog("open")}function
R(){var a=[];$("#permissions
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.folderPermissionService.remove(function(a){Vosao.showServiceMessages(a),L()},Vosao.javaList(a))}function
S(){$("#permission-dialog").dialog("close")}function T(){var
a=g.folderPermission;a.changeGranted?($("#saveButton").show(),$("#createFileButton").show(),$("#uploadButton").show(),$("#deleteFilesButton").show(),$("#addChildButton").show(),$("#deleteFoldersButton").show()):($("#saveButton").hide(),$("#createFileButton").hide(),$("#uploadButton").hide(),$("#deleteFilesButton").hide(),$("#addChildButton").hide(),$("#deleteFoldersButton").hide()),a.admin&&f?$(".securityTab").show():$(".securityTab").hide()}function
U(){$("#export-dialog").dialog("close"),clearInterval(i),clearInterval(j)}function
V(){var a="",b=g.parent;$.each(g.ancestors.list,function(b,c){var
d=
c.name=="/"?"file":
c.name;a+='<a href="#folder/'+
c.id+'">'+d+"</a>
/ "}),f?a+=" "+(
e.name=="/"?"file":
e.name):a+='<a
href="#folder/'+
b.id+'">'+
b.name+"</a>",$("#crumbs").html(a)}console.log("Loading
FolderView.js");var
b=null,c=null,d="",e=null,f=b!="",g=null,h=null,i=null,j=null,k=0,l=null;return
Backbone.View.extend({el:$("#content"),tmpl:_.template(a),render:function(){this.el.html(this.tmpl({messages:messages})),m()},remove:function(){$("#export-dialog").dialog("destroy").remove(),$("#file-upload").dialog("destroy").remove(),$("#permission-dialog").dialog("destroy").remove(),this.el.html("")},setFolderId:function(a){b=a},setFolderParentId:function(a){c=a}})}),define("text!template/file.html",[],function(){return'<%/*\r\n
Vosao CMS. Simple CMS for Google App Engine.\r\n \r\n Copyright (C)
2009-2011 Vosao development team.\r\n\r\n This library is free software;
you can redistribute it and/or\r\n modify it under the terms of the GNU
Lesser General Public\r\n License as published by the Free Software
Foundation; either\r\n version 2.1 of the License, or (at your option) any
later version.\r\n\r\n This library is distributed in the hope that it will
be useful,\r\n but WITHOUT ANY WARRANTY; without even the implied warranty
of\r\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU\r\n Lesser General Public License for more details.\r\n\r\n You should
have received a copy of the GNU Lesser General Public\r\n License along
with this library; if not, write to the Free Software\r\n Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA\r\n\r\n email:
vosa...@gmail.com\r\n*/%>\r\n\r\n<div id="tabs">\r\n<ul>\r\n <li><a
href="#tab-1"><%= messages("file") %></a></li>\r\n <li
class="contentTab"><a href="#tab-2"><%=
messages("content") %></a></li>\r\n</ul>\r\n\r\n<div id="tab-1">\r\n<form
id="fileForm">\r\n\r\n<div style="float:left">\r\n <div
class="form-row">\r\n <label><%= messages("title") %></label>\r\n
<input id="title" type="text" />\r\n </div>\r\n <div
class="form-row">\r\n <label><%= messages("name") %></label>\r\n
<input id="name" type="text" />\r\n </div>\r\n \r\n<div
id="fileEditDiv">\r\n <div class="form-row">\r\n <label><%=
messages("content_type") %></label>\r\n <span id="mimeType"> </span>\r\n
</div>\r\n <div class="form-row">\r\n <label><%=
messages("size") %></label>\r\n <span id="size"> </span>\r\n </div>\r\n
<div class="form-row">\r\n <label><%=
messages("external_link") %></label>\r\n <span id="fileLink">
</span>\r\n </div>\r\n <div class="form-row">\r\n <label>
</label>\r\n <span id="download"> </span>\r\n </div>\r\n </div>\r\n
\r\n <div class="buttons">\r\n <input id="saveButton" type="submit"
value="<%= messages("save") %>" />\r\n <input id="cancelButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div>\r\n
\r\n</div>\r\n\r\n<div id="imageContent" style="float:left;margin-left:
20px;"> </div>\r\n<div style="clear:both">
</div>\r\n\r\n</form>\r\n</div>\r\n\r\n<div id="tab-2"
class="contentTab">\r\n <form id="contentForm">\r\n <div
class="form-row">\r\n <span id="filename"></span>\r\n
</div>\r\n <div>\r\n <input id="autosave" type="checkbox"
/>\r\n <label for="autosave"><%=
messages("autosave") %></label>\r\n </div>\r\n <div
class="form-row">\r\n <textarea id="fileContent" rows="20"
cols="80"></textarea>\r\n </div>\r\n <div class="buttons">\r\n
<input id="saveContentButton" type="submit" value="<%=
messages("save_continue") %>" />\r\n <input id="contentCancelButton"
type="button" value="<%= messages("cancel") %>" />\r\n </div> \r\n
</form>\r\n</div>\r\n\r\n</div>\r\n\r\n'}),jQuery.cookie=function(a,b,c){if(typeof
b=="undefined"){var i=null;if(document.cookie&&document.cookie!=""){var
j=document.cookie.split(";");for(var k=0;k<j.length;k++){var
l=jQuery.trim(j[k]);if(l.substring(0,a.length+1)==a+"="){i=decodeURIComponent(l.substring(a.length+1));break}}}return
i}c=c||{},b===null&&(b="",c.expires=-1);var d="";if(c.expires&&(typeof
c.expires=="number"||c.expires.toUTCString)){var e;typeof
c.expires=="number"?(e=new
Date,e.setTime(e.getTime()+c.expires*24*60*60*1e3)):e=c.expires,d=";
expires="+e.toUTCString()}var f=c.path?"; path="+c.path:"",g=c.domain?";
domain="+c.domain:"",h=c.secure?";
secure":"";document.cookie=[a,"=",encodeURIComponent(b),d,f,g,h].join("")},define("jquery.cookie",function(){}),function(a){window.DOMParser==undefined&&window.ActiveXObject&&(DOMParser=function(){},DOMParser.prototype.parseFromString=function(a){var
b=new ActiveXObject("Microsoft.XMLDOM");return
b.async="false",b.loadXML(a),b}),a.xmlDOM=function(b,c){try{var d=(new
DOMParser).parseFromString(b,"text/xml");if(!a.isXMLDoc(d))throw"Unable to
parse XML";var
e=a("parsererror",d);if(e.length==1)throw"Error: "+a(d).text()}catch(f){var
g=
f.name==undefined?f:
f.name+": "+f.message;return
a.isFunction(c)?c(g):a(document).trigger("xmlParseError",[g]),a([])}return
a(d)}}(jQuery),define("jquery.xmldom",function(){}),function(a){function
m(b,c){throw a.extend(b,c),b}function n(a){var c=[];if(l.call(a)!==f)return
b;for(var d=0,e=a.length;d<e;d++)c[d]=a[d].jqote_id;return
c.length?c.sort().join(".").replace(/(\b\d+\b)\.(?:\1(\.|
$))+/g,"$1$2"):b}function o(c,d){var e,g=[],d=d||
j,i=l.call(c);if(i===h)return
c.jqote_id?[c]:b;if(i!==f)return[a.jqotec(c,d)];if(i===f)for(var
k=0,m=c.length;k<m;k++)return g.length?g:b}var
b=!1,c="UndefinedTemplateError",d="TemplateCompilationError",e="TemplateExecutionError",f="[object
Array]",g="[object String]",h="[object
Function]",i=1,j="%",k=/^[^<]*(<[\w\W]+>)[^>]*$/,l=Object.prototype.toString;a.fn.extend({jqote:function(b,c){var
b=l.call(b)===f?b:[b],d="";return this.each(function(e){var
f=a.jqotec(this,c);for(var
g=0;g<b.length;g++)d+=f.call(b[g],e,g,b,f)}),d}}),a.each({app:"append",pre:"prepend",sub:"html"},function(b,c){a.fn["jqote"+b]=function(d,e,f){var
g,h,i=a.jqote(d,e,f),j=k.test(i)?a:function(b){return
a(document.createTextNode(b))};return!(g=n(o(d)))||(h=new RegExp("(^|
\\.)"+g.split(".").join("\\.(.*)?")+"(\\.|$)")),this.each(function(){var
d=j(i);a(this)[c](d),(d[0].nodeType===3?a(this):d).trigger("jqote."+b,[d,h])})}}),a.extend({jqote:function(a,d,e){var
g="",e=e||j,h=o(a);h===b&&m(new Error("Empty or undefined template passed
to $.jqote"),{type:c}),d=l.call(d)!==f?[d]:d;for(var
i=0,k=h.length;i<k;i++)for(var
n=0;n<d.length;n++)g+=h[i].call(d[n],i,n,d,h[i]);return
g},jqotec:function(b,f){var h,n,o,f=f||
j,p=l.call(b);if(p===g&&k.test(b)){n=o=b;if(h=a.jqotecache[b])return
h}else{n=p===g||b.nodeType?a(b):b instanceof jQuery?b:null,(!n[0]|
|!(o=n[0].innerHTML)&&!(o=n.text()))&&m(new Error("Empty or undefined
template passed to
$.jqotec"),{type:c});if(h=a.jqotecache[a.data(n[0],"jqote_id")])return
h}var s="",t,u=o.replace(/\s*<!\[CDATA\[\s*|\s*\]\]>\s*|
[\r\n\t]/g,"").split("<"+f).join(f+"> ").split(f+">");for(var
v=0,w=u.length;v<w;v++)s+=u[v].charAt(0)!==" "?"out+='"+u[v].replace(/(\\|
["'])/g,"\\$1")+"'":u[v].charAt(1)==="="?";out+=("+u[v].substr(2)+");":u[v].charAt(1)==="!"?";out+=$.jqotenc(("+u[v].substr(2)+"));":";"+u[v].substr(1);s="try{"+('var
out="";'+s+";return out;").split("out+='';").join("").split('var
out="";out+=').join("var
out=")+'}catch(e){e.type="'+e+'";e.args=arguments;e.template=arguments.callee.toString();throw
e;}';try{var x=new Function("i, j, data,
fn",s)}catch(n){m(n,{type:d})}return t=n instanceof
jQuery?a.data(n[0],"jqote_id",i):n,a.jqotecache[t]=(x.jqote_id=i++,x)},jqotefn:function(c){var
d=l.call(c),e=d===g&&k.test(c)?c:a.data(a(c)[0],"jqote_id");return
a.jqotecache[e]||
b},jqotetag:function(a){l.call(a)===g&&(j=a)},jqotenc:function(a){return
a.toString().replace(/&(?!\w+;)/g,"&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")},jqotecache:{}}),a.event.special.jqote={add:function(a){var
b,c=a.handler,d=a.data?l.call(a.data)!==f?[a.data]:a.data:[];a.namespace||
(a.namespace="app.pre.sub");if(!d.length|
|!(b=n(o(d))))return;a.handler=function(a,d,e){return!e||
e.test(b)?c.apply(this,[a,d]):null}}}}(jQuery),define("jquery.jquote2",function(){}),function(){function
a(a){var b=a.currentTarget||a.srcElement,c;if(a.type==="load"||
f.test(b.readyState)){a=b.getAttribute("data-requiremodule"),h[a]=!0;for(a=0;c=g[a];a++)if(h[
c.name])c.req([
c.name],c.onLoad);else
break;a>0&&g.splice(0,a),setTimeout(function(){b.parentNode.removeChild(b)},15)}}function
b(a){var
b,c;a.setAttribute("data-orderloaded","loaded");for(a=0;c=j[a];a++)if((b=i[c])&&b.getAttribute("data-orderloaded")==="loaded")delete
i[c],require.addScriptToDom(b);else break;a>0&&j.splice(0,a)}var c=typeof
document!="undefined"&&typeof
window!="undefined"&&document.createElement("script"),d=c&&(c.async||
window.opera&&Object.prototype.toString.call(window.opera)==="[object
Opera]"||"MozAppearance"in
document.documentElement.style),e=c&&c.readyState==="uninitialized",f=/^(complete|
loaded)$/,g=[],h={},i={},j=[],c=null;define("order",{version:"1.0.0",load:function(c,f,h,l){var
p=f.nameToUrl(c,null);require.s.skipAsync[p]=!0,d||
l.isBuild?f([c],h):e?(l=require.s.contexts._,!l.urlFetched[p]&&!l.loaded[c]&&(l.urlFetched[p]=!0,require.resourcesReady(!1),l.scriptCount+=1,p=require.attach(p,l,c,null,null,b),i[c]=p,j.push(c)),f([c],h)):f.specified(c)?f([c],h):(g.push({name:c,req:f,onLoad:h}),require.attach(p,null,c,a,"script/cache"))}})}();var
escapeJSONString=function(){var
a=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,b={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};return
function(c){return a.lastIndex=0,a.test(c)?'"'+c.replace(a,function(a){var
c=b[a];return typeof
c=="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+c+'"'}}();JSONRpcClient.prototype.createCallableProxy=function(a,b){var
c,d,e,f,g;c=new JSONRPCCallableProxy(a,b);for(f in
JSONRpcClient.knownClasses[b])c[f]=JSONRpcClient.bind(JSONRpcClient.knownClasses[b][f],c);return
c},JSONRpcClient.knownClasses={},JSONRpcClient.Exception=function(a){var
b;for(var c in
a)a.hasOwnProperty(c)&&(this[c]=a[c]);this.trace&&(b=this.trace.match(/^([^:]*)/),b&&(
this.name=b[0])),
this.name|
|
(
this.name="JSONRpcClientException")},JSONRpcClient.Exception.CODE_REMOTE_EXCEPTION=490,JSONRpcClient.Exception.CODE_ERR_CLIENT=550,JSONRpcClient.Exception.CODE_ERR_PARSE=590,JSONRpcClient.Exception.CODE_ERR_NOMETHOD=591,JSONRpcClient.Exception.CODE_ERR_UNMARSHALL=592,JSONRpcClient.Exception.CODE_ERR_MARSHALL=593,JSONRpcClient.Exception.prototype=new
Error,JSONRpcClient.Exception.prototype.toString=function(a,b){var
c="";return
this.name&&(c+=
this.name),this.message&&(c+=": "+this.message),c.length==0&&(c="no
exception information
given"),c},JSONRpcClient.default_ex_handler=function(a){var b,c="";for(b in
a)c+=b+"\t"+a[b]+"\n";alert(c)},JSONRpcClient.toplevel_ex_handler=JSONRpcClient.default_ex_handler,JSONRpcClient.profile_async=!1,JSONRpcClient.max_req_active=1,JSONRpcClient.requestId=1,JSONRpcClient.fixupCircRefs=!0,JSONRpcClient.fixupDuplicates=!0,JSONRpcClient.transformDates=!1,JSONRpcClient.transformDateWithoutHint=!1,JSONRpcClient.javaDateClasses={"java.util.Date":!0,"java.sql.Date":!0,"java.sql.Time":!0,"java.sql.Timestamp":!0},JSONRpcClient.bind=function(a,b){return
function(){return
a.apply(b,arguments)}},JSONRpcClient._createMethod=function(a,b){var
c=function(){var c=[],d;for(var
e=0;e<arguments.length;e++)c.push(arguments[e]);typeof
c[0]=="function"&&(d=c.shift());var
f=JSONRpcClient._makeRequest(this,b,c,this.objectID,d);return
d?(JSONRpcClient.async_requests.push(f),JSONRpcClient.kick_async(),f.requestId):JSONRpcClient._sendRequest(a,f)};return
c},JSONRpcClient.prototype.createObject=function(){var
a=[],b=null,c,d,e;for(var
f=0;f<arguments.length;f++)a.push(arguments[f]);return typeof
a[0]=="function"&&(b=a.shift()),c=a[0]+".$constructor",d=a[1],e=JSONRpcClient._makeRequest(this,c,d,0,b),b===null?JSONRpcClient._sendRequest(this,e):(JSONRpcClient.async_requests.push(e),JSONRpcClient.kick_async(),e.requestId)},JSONRpcClient.CALLABLE_REFERENCE_METHOD_PREFIX=".ref",JSONRpcClient.prototype._addMethods=function(a,b){var
c,d,e,f,g,h=[],i,j,k,l;for(var
m=0;m<a.length;m++){d=this,e=a[m].split("."),k=a[m].indexOf("["),l=a[m].indexOf("]");if(a[m].substring(0,JSONRpcClient.CALLABLE_REFERENCE_METHOD_PREFIX.length)==JSONRpcClient.CALLABLE_REFERENCE_METHOD_PREFIX&&k!=-1&&l!=-1&&k<l)i=a[m].substring(k+1,l);else
for(f=0;f<e.length-1;f++)c=e[f],d[c]?d=d[c]:(d[c]={},d=d[c]);c=e[e.length-1],i?(g=JSONRpcClient._createMethod(this,c),JSONRpcClient.knownClasses[i]|
|
(JSONRpcClient.knownClasses[i]={}),JSONRpcClient.knownClasses[i][c]=g):(g=JSONRpcClient._createMethod(this,a[m]),!d[c]&&!b&&(d[c]=JSONRpcClient.bind(g,this)),h.push(g)),i=null}return
h},JSONRpcClient._getCharsetFromHeaders=function(a){var
b,c,d;try{b=a.getResponseHeader("Content-type"),c=b.split(/\s*;\s*/);for(d=0;d<c.length;d++)if(c[d].substring(0,8)=="charset=")return
c[d].substring(8,c[d].length)}catch(e){}return"UTF-8"},JSONRpcClient.async_requests=[],JSONRpcClient.async_inflight={},JSONRpcClient.async_responses=[],JSONRpcClient.async_timeout=null,JSONRpcClient.num_req_active=0,JSONRpcClient._async_handler=function(){var
a,b;JSONRpcClient.async_timeout=null;while(JSONRpcClient.async_responses.length>0){a=JSONRpcClient.async_responses.shift();if(a.canceled)continue;a.profile&&(a.profile.dispatch=new
Date);try{a.cb(a.result,a.ex,a.profile)}catch(c){JSONRpcClient.toplevel_ex_handler(c)}}while(JSONRpcClient.async_requests.length>0&&JSONRpcClient.num_req_active<JSONRpcClient.max_req_active){b=JSONRpcClient.async_requests.shift();if(b.canceled)continue;JSONRpcClient._sendRequest(b.client,b)}},JSONRpcClient.kick_async=function(){JSONRpcClient.async_timeout|
|
(JSONRpcClient.async_timeout=setTimeout(JSONRpcClient._async_handler,0))},JSONRpcClient.cancelRequest=function(a){if(JSONRpcClient.async_inflight[a])return
JSONRpcClient.async_inflight[a].canceled=!0,!0;var b;for(b in
JSONRpcClient.async_requests)if(JSONRpcClient.async_requests[b].requestId==a)return
JSONRpcClient.async_requests[b].canceled=!0,!0;for(b in
JSONRpcClient.async_responses)if(JSONRpcClient.async_responses[b].requestId==a)return
JSONRpcClient.async_responses[b].canceled=!0,!0;return!1},JSONRpcClient._makeRequest=function(a,b,c,d,e){var
f={};f.client=a,f.requestId=JSONRpcClient.requestId++;var
g="{id:"+f.requestId+",method:";d&&d>0?g+='".obj['+d+"]."+b+'"':g+='"'+b+'"',e&&(f.cb=e),JSONRpcClient.profile_async&&(f.profile={submit:new
Date});var h=toJSON(c);return
g+=",params:"+h.json,h.fixups&&(g+=",fixups:"+toJSON(h.fixups).json),f.data=g+"}",f},JSONRpcClient._sendRequest=function(a,b){var
c;b.profile&&(b.profile.start=new
Date),c=JSONRpcClient.poolGetHTTPRequest(),JSONRpcClient.num_req_active++,c.open("POST",a.serverURL,!!b.cb,a.user,a.pass);try{c.setRequestHeader("Content-type","text/plain")}catch(d){}b.cb?c.onreadystatechange=function(){var
d;if(c.readyState==4){c.onreadystatechange=function(){},d={cb:b.cb,result:null,ex:null},b.profile?(d.profile=b.profile,d.profile.end=new
Date):d.profile=!1;try{d.result=a._handleResponse(c)}catch(e){d.ex=e}JSONRpcClient.async_inflight[b.requestId].canceled|
|JSONRpcClient.async_responses.push(d),delete
JSONRpcClient.async_inflight[b.requestId],JSONRpcClient.kick_async()}}:c.onreadystatechange=function(){},JSONRpcClient.async_inflight[b.requestId]=b;try{c.send(b.data)}catch(d){throw
JSONRpcClient.poolReturnHTTPRequest(c),JSONRpcClient.num_req_active--,new
JSONRpcClient.Exception({code:JSONRpcClient.Exception.CODE_ERR_CLIENT,message:"Connection
failed"})}return b.cb?null:(delete
JSONRpcClient.async_inflight[b.requestId],a._handleResponse(c))},JSONRpcClient.prototype._handleResponse=function(a){this.charset|
|(this.charset=JSONRpcClient._getCharsetFromHeaders(a));var
b,c,d;try{b=a.status,c=a.statusText,d=a.responseText}catch(e){throw
JSONRpcClient.poolReturnHTTPRequest(a),JSONRpcClient.num_req_active--,JSONRpcClient.kick_async(),new
JSONRpcClient.Exception({code:JSONRpcClient.Exception.CODE_ERR_CLIENT,message:"Connection
failed"})}JSONRpcClient.poolReturnHTTPRequest(a),JSONRpcClient.num_req_active--;if(b!=200)throw
new JSONRpcClient.Exception({code:b,message:c});return
this.unmarshallResponse(d)},JSONRpcClient.prototype.unmarshallResponse=function(data){function
applyFixups(a,b){function c(a,b){for(var
c=0,d=b.length;c<d;c++)a=a[b[c]];return a}function d(a,b,c){var
d=b.length-1;for(var e=0;e<d;e++)a=a[b[e]];a[b[d]]=c}for(var
e=0,f=b.length;e<f;e++)d(a,b[e][0],c(a,b[e][1]))}function
transformDate(a){function b(a,b){var c,d=0;if(a.hasOwnProperty(b)){for(c in
a)if(a.hasOwnProperty(c)){d++;if(d>1)return}return!0}}var c,d;if(a&&typeof
a=="object"){if(a.javaClass&&JSONRpcClient.javaDateClasses[a.javaClass])return
d=new
Date(a.time),a.javaClass!=="java.util.Date"&&(d.javaClass=a.javaClass),d;if(JSONRpcClient.transformDateWithoutHint&&b(a,"time"))return
new Date(a.time);for(c in
a)a.hasOwnProperty(c)&&(a[c]=transformDate(a[c]));return a}return a}var
obj;try{eval("obj = "+data)}catch(e){throw new
JSONRpcClient.Exception({code:550,message:"error parsing
result"})}if(obj.error)throw new JSONRpcClient.Exception(obj.error);var
r=obj.result,i,tmp;if(r){if(r.objectID&&r.JSONRPCType=="CallableReference")return
this.createCallableProxy(r.objectID,r.javaClass);r=JSONRpcClient.extractCallableReferences(this,JSONRpcClient.transformDates?transformDate(r):r),obj.fixups&&applyFixups(r,obj.fixups)}return
r},JSONRpcClient.extractCallableReferences=function(a,b){var c,d,e;for(c in
b)typeof
b[c]=="object"&&(d=JSONRpcClient.makeCallableReference(a,b[c]),d?b[c]=d:(d=JSONRpcClient.extractCallableReferences(a,b[c]),b[c]=d)),typeof
c=="object"&&(d=JSONRpcClient.makeCallableReference(a,c),d?(e=b[c],delete
b[c],b[d]=e):(d=JSONRpcClient.extractCallableReferences(a,c),e=b[c],delete
b[c],b[d]=e));return
b},JSONRpcClient.makeCallableReference=function(a,b){return
b&&b.objectID&&b.javaClass&&b.JSONRPCType=="CallableReference"?a.createCallableProxy(b.objectID,b.javaClass):null},JSONRpcClient.http_spare=[],JSONRpcClient.http_max_spare=8,JSONRpcClient.poolGetHTTPRequest=function(){var
a=JSONRpcClient.http_spare.pop();return
a?a:JSONRpcClient.getHTTPRequest()},JSONRpcClient.poolReturnHTTPRequest=function(a){JSONRpcClient.http_spare.length<JSONRpcClient.http_max_spare?JSONRpcClient.http_spare.push(a):delete
a},JSONRpcClient.msxmlNames=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","Microsoft.XMLHTTP"],JSONRpcClient.getHTTPRequest=function(){try{return
JSONRpcClient.httpObjectName="XMLHttpRequest",new
XMLHttpRequest}catch(a){}for(var
b=0;b<JSONRpcClient.msxmlNames.length;b++)try{return
JSONRpcClient.httpObjectName=JSONRpcClient.msxmlNames[b],new
ActiveXObject(JSONRpcClient.msxmlNames[b])}catch(a){}throw
JSONRpcClient.httpObjectName=null,new
JSONRpcClient.Exception({code:0,message:"Can't create XMLHttpRequest
object"})},define("jsonrpc",function(){});var
Vosao={};Vosao.javaList=function(a){return{javaClass:"java.util.ArrayList",list:a}},Vosao.javaMap=function(a){return{javaClass:"java.util.HashMap",map:a}},Vosao.accents={"ÀÁÂÃÄÅ":"A","Æ":"AE","Ç":"C","ÈÉÊË":"E","ÌÍÎÏ":"I","Ð":"Th","Ñ":"N","ÒÓÔÕÖØ":"O","ÙÚÛÜ":"U","Ý":"Y","Þ":"Th","ß":"ss","àáâãäå":"a","æ":"ae","ç":"c","èéêë":"e","ìíîï":"i","ð":"o","ñ":"n","òóôõöø":"o","ùúûü":"u","ýÿ":"y","þ":"th"},Vosao.replaceAccents=function(a){return
$.each(Vosao.accents,function(b,c){for(var
d=0;d<b.length;d++)a=a.replace(b.charAt(d),c)}),a.toLowerCase()},Vosao.urlFromTitle=function(a){return
Vosao.replaceAccents(a.toLowerCase()).replace(/\W/g,"-")},Vosao.nameFromTitle=function(a){return
a.toLowerCase().replace(/\W/g,"_")},Vosao.isImage=function(a){var
b=Vosao.getFileExt(a);return b.toLowerCase().match(/gif|jpg|jpeg|png|
ico/)!=null},Vosao.getFileExt=function(a){return
a.substring(a.lastIndexOf(".")+1,a.length)},Vosao.getFileName=function(a){var
b=a.lastIndexOf("\\");return
b==-1&&(b=a.lastIndexOf("/")),b==-1?a:a.substring(b+1,a.length)},Vosao.formatDate=function(a){return
$.datepicker.formatDate("dd.mm.yy",a)},Vosao.formatTime=function(a){return
$.datepicker.formatDate("HH:MM",a)},Vosao.identifier_regex=/^[a-zA-Z_][a-zA-Z0-9_]*$/,Vosao.isValidIdentifier=function(a){return
Vosao.identifier_regex.test(a)},Vosao.strip=function(a){var
b=0;while(b<a.length&&a[b]==" ")b++;var
c=a.substring(b);b=c.length-1;while(b>=0&&c[b]==" ")b--;return
c.slice(0,b+1)},Vosao.getQueryParam=function(a){var
b=window.location.search.match(new RegExp("(\\?|
&)"+a+"(\\[\\])?=([^&]*)"));return
Vosao.escapeHtml(b?b[3]:"")},Vosao.selectTabFromQueryParam=function(a){Vosao.getQueryParam("tab")&&a.tabs("select",Number(Vosao.getQueryParam("tab")))},Vosao.escapeHtml=function(a){return
a.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,""").replace(/`/g,"‘").replace(/'/g,"’")},Vosao.unescapeHtml=function(a){return
a.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,'"').replace(/‘/g,"`").replace(/’/g,"'")},Vosao.generateGUID=function(){function
a(){return((1+Math.random())*65536|0).toString(16).substring(1)}return
a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()},Vosao.jsonrpc="",Vosao.jsonrpcListeners=[],Vosao.jsonrpcSystemListeners=[],Vosao.jsonrpcInitialized=!1,Vosao.jsonrpcInitError=null,Vosao.createJSONRpc=function(){Vosao.jsonrpc=new
JSONRpcClient(function(a,b){if(b)Vosao.jsonrpcInitError="Error during
JSON-RPC
initialization "+b+" "+b.message;else{while(Vosao.jsonrpcSystemListeners.length>0){var
c=Vosao.jsonrpcSystemListeners.pop();c()}while(Vosao.jsonrpcListeners.length>0){var
c=Vosao.jsonrpcListeners.pop();c()}}Vosao.jsonrpcInitialized=!0},"/json-rpc/")},Vosao.createJSONRpc(),Vosao.initJSONRpc=function(a){if(a==undefined)return;Vosao.jsonrpcInitialized?a():Vosao.jsonrpcListeners.push(a)},Vosao.initJSONRpcSystem=function(a){if(a==undefined)return;Vosao.jsonrpcInitialized?a():Vosao.jsonrpcSystemListeners.push(a)},Vosao.serviceFailed=function(a){return
a!=null?(alert("JSON-RPC service
fail "+a+" "+a.message),!0):!1},Vosao.changeLanguage=function(a){var
b=location.href.replace("#",""),c=b.indexOf("language="),d=location.search.indexOf("?")==-1?"?":"&";if(c>0){var
e=b.substr(c+1),f=e.indexOf("&");b=b.substr(0,c)+"language="+a,f>0&&(b+=e.substr(f+1)),b.indexOf("&")<0&&(d="")}else
b=b+d+"language="+a;location.href=b},String.prototype.trim=function(){return
this.replace(/^\s+|\s+$/g,"")},String.prototype.ltrim=function(){return
this.replace(/^\s+/,"")},String.prototype.rtrim=function(){return
this.replace(/\s+$/,"")},String.prototype.startsWith=function(a){return
this.match("^"+a)==a},String.prototype.endsWith=function(a){return
this.match(a+"$")==a},define("vosao",function(){}),Vosao==undefined&&alert(messages("vosao.namespace_error")),Vosao.AUTOSAVE_TIMEOUT=60,Vosao.ENGLISH_CODE="en",Vosao.info=function(a){Vosao.infoMessage("#wrapper .messages",a),$("#wrapper .messages").fadeIn(),setTimeout(function(){$("#wrapper .messages").fadeOut()},5e3)},Vosao.error=function(a){Vosao.errorMessage("#wrapper .messages",a),$("#wrapper .messages").fadeIn(),setTimeout(function(){$("#wrapper .messages").fadeOut()},3e4)},Vosao.infoMessage=function(a,b){$(a).html('<div
class="ui-widget">\t\t<div class="ui-state-highlight ui-corner-all"
style="padding: 0.5em 0.7em;margin: 4px;"><p>\t\t<span class="ui-icon
ui-icon-info" style="float:left;margin-right:0.3em"
/>\t\t<strong>'+messages("vosao.hey")+"</strong> "+b+"</p></div></div>")},Vosao.errorMessage=function(a,b){$(a).html('<div
class="ui-widget">\t\t<div class="ui-state-error ui-corner-all"
style="padding: 0.5em 0.7em;margin: 4px;"><p>\t\t<span class="ui-icon
ui-icon-alert" style="float:left;margin-right:0.3em"
/>\t\t<strong>'+messages("alert")+"!</strong> "+b+"</p></div></div>")},Vosao.errorMessages=function(a,b){var
c="";$.each(b,function(a,b){c+=(a==0?"":"<br
/>")+b}),Vosao.errorMessage(a,c)},Vosao.showServiceMessages=function(a){a.result=="success"?(Vosao.info(a.message),a.messages.list.length>0&&$.each(a.messages.list,function(a,b){Vosao.info(b)})):(Vosao.error(a.message),a.messages.list.length>0&&$.each(a.messages.list,function(a,b){Vosao.error(b)}))},Vosao.idMap=function(a){var
b={};return
$.each(a,function(a,c){b[
c.id]=c}),b},Vosao.message=function(a){return
a.charAt(0)=="$"?messages(a.substr(1)):a},Vosao.addCSSFile=function(a){$("head").append('<link
rel="stylesheet" href="'+a+'" type="text/css"
/>')},Vosao.addCSSFiles=function(a){$.each(a,function(a,b){$("head").append('<link
rel="stylesheet" href="'+b+'" type="text/css"
/>')})},Vosao.removeCSSFile=function(a){$('head
link[href="'+a+'"]').remove()},Vosao.removeCSSFiles=function(a){$.each(a,function(a,b){$('head
link[href="'+b+'"]').remove()})},Vosao.clientId=Vosao.generateGUID(),Vosao.channel=null,Vosao.socket=null,Vosao.initChannel=function(a,b,c,d){Vosao.jsonrpc.channelApiFrontService.createToken(function(e){Vosao.channel=new
goog.appengine.Channel(e),socket=Vosao.channel.open(),socket.onopen=a,socket.onmessage=b,socket.onerror=c,socket.onclose=d,Vosao.socket=socket},Vosao.clientId)},Vosao.sendChannelCommand=function(a,b){var
c="&clientId="+Vosao.clientId;$.each(b,function(a,b){c+="&"+a+"="+b});var
d=new
XMLHttpRequest;d.open("POST","/_ah/channelCommand?cmd="+a+c,!0),d.send()},Vosao.changeLanguageCall=function(a){Vosao.jsonrpc.loginFrontService.setLanguage(function(a){location.reload()},a)},define("cms",function(){}),Vosao==undefined&&alert(messages("vosao.namespace_error")),Vosao.backServiceFailed=function(a){return
a!=null?(Vosao.error(messages("vosao.cant_connect")+" "+a+" "+a.message+" "+a.code+" "+a.msg),!0):!1},Vosao.serviceHandler=function(a){return
function(){var
b=arguments[0],c=arguments;c[0]=function(a,c){$("#loading").hide();if(Vosao.backServiceFailed(c))return;b(a)},$("#loading").show(),a.apply(null,c)}},Vosao.setupJSONRpcHooks=function(){for(var
a in
Vosao.jsonrpc)if(a.indexOf("Service")!=-1&&a.indexOf("FrontService")==-1)for(var
b in Vosao.jsonrpc[a])if(typeof Vosao.jsonrpc[a][b]=="function"){var
c=Vosao.jsonrpc[a][b];Vosao.jsonrpc[a][b]=Vosao.serviceHandler(c)}},Vosao.initBackServices=function(){Vosao.setupJSONRpcHooks()},define("back-services",function(){}),Vosao.PageSearchComponent=function(div){function
onSearch(){$(div+" #pageSearchResult").html(""),$(div+"
#progress").html('<img src="/static/images/ajax-loader.gif" />');var
a={};a.query=$(div+" input[name=query]").val(),a.published=$(div+"
#publishedSearch:checked").size()>0,a.unpublished=$(div+"
#unpublishedSearch:checked").size()>0,a.fromDate=$(div+"
input[name=from]").val(),a.toDate=$(div+"
input[name=to]").val(),Vosao.sendChannelCommand("pageSearch",a)}function
onEnhancedSearch(){$(div+" #enhancedDiv").slideToggle();var
a=messages("enhanced");$(div+"
#enhancedSearch").text()==messages("enhanced")&&(a=messages("simple")),$(div+"
#enhancedSearch").text(a)}function onChannelOpened(){$(div+"
#search").toggle()}function onChannelMessage(message){var
m=eval(message.data);if(m.end){$(div+" #progress").html("");return}var
h='<div><a
href="/cms/page/content.vm?id='+
m.id+'">'+m.title+"</a> "+messages("version")+": "+m.version+"<br>"+m.content;$(div+"
#pageSearchResult").append(h)}function
onChannelError(a){Vosao.error(a.code+" "+a.description)}function
onChannelClose(){}var h=messages("pages.search_pages")+' : <input
name="query" type="text" /> '+'<input id="search" type="button"
value="'+messages("search")+'"/> '+'<input id="clear" type="button"
value="'+messages("clear")+'"/> '+'<span id="progress"></span> '+'<a
id="enhancedSearch" href="#">'+messages("enhanced")+"</a>"+'<div
id="enhancedDiv">'+' <div class="form-row">'+' <input id="publishedSearch"
type="checkbox" checked="checked"/>'+' <label
for="publishedSearch">'+messages("published")+"</label>"+' <input
id="unpublishedSearch" type="checkbox" checked="checked" />'+' <label
for="unpublishedSearch">'+messages("unpublished")+"</label><br/>"+"
</div>"+' <div class="form-row">'+messages("change_date")+' <input
class="datepicker" type="input" name="from" size="10"/> '+messages("to")+'
<input class="datepicker" type="input" name="to" size="10"/>'+"
</div>"+"</div>"+'<div id="pageSearchResult"></div>';return
$(div).html(h),$(".datepicker").datepicker({dateFormat:"dd.mm.yy"}),$(div+"
#search").click(onSearch),$(div+" #clear").click(function(){$(div+"
#pageSearchResult").html(""),$(div+" input[name=query]").val("")}),$(div+"
#enhancedSearch").click(onEnhancedSearch),$(div+"
#search").hide(),Vosao.initChannel(onChannelOpened,onChannelMessage,onChannelError,onChannelClose),$(div+"
input[name=query]").keypress(function(a){var
b=a.keyCode?a.keyCode:a.which;if(b==13||
b==10)onSearch(),a.preventDefault()}),this},define("view/pages/PageSearchComponent",function(){}),define("view/PagesView",["text!template/pages.html","jquery.treeview","order!view/pages/PageSearchComponent"],function(a){function
h(){j(),l(),g=Vosao.PageSearchComponent("#pageSearch")}function i(){return
d&&d.friendlyURL=="/"}function
j(){Vosao.jsonrpc.pageService.getTree(function(a){c=a,f&&t(a),$("#pages-tree").html(k(a)),$("#pages-tree").treeview({animated:"fast",collapsed:!0,unique:!0,persist:"cookie",cookieId:"pageTree"}),$(".content-link").each(function(){$(this).mouseover(function(a){$(".page_edit").hide(),$(a.target).siblings(".page_edit").show()})}),$("#pages-tree
li").each(function(){$(this).hover(function(a){$(".page_edit").hide(),$("> .page_edit",a.target).show()},function(a){})})})}function
k(a){var
b=encodeURIComponent(a.entity.friendlyURL),c=e?a.entity.title:a.entity.pageFriendlyURL;c|
|(c="/");var
d=a.entity.hasPublishedVersion?"published":"unpublished",f=messages(d),g='
<img src="/static/images/'+d+'.png" title="'+f+'" width="16px"
/>';a.entity.hasPublishedVersion||(g=' <a
onclick="Vosao.app.pagesView.onPagePublish('+
a.entity.id+')">'+'<img
src="/static/images/'+d+'.png" title="'+f+'" width="16px" /></a>');var
h="<li> "+g+' <a href="#page/content/'+
a.entity.id+'"
title="'+messages("page.edit_content")+'"
class="content-link">'+c+"</a> "+'<span class="page_edit"
style="display:none">'+'<a title="'+messages("add_child")+'"
onclick="Vosao.app.pagesView.onPageAdd(\''+a.entity.friendlyURL+'\')"><img
src="/static/images/add.png"/></a> '+'<a title="'+messages("remove")+'"
onclick="Vosao.app.pagesView.onPageRemove(\''+a.entity.friendlyURL+"')\">"+'<img
src="/static/images/02_x.png" /></a> '+'<a href="#page/'+
a.entity.id+'"
title="'+messages("page.edit_properties")+'">'+'<img
src="/static/images/pencil.png" /></a> '+'<a
onclick="Vosao.app.pagesView.onChangeTitle('+
a.entity.id+')"
title="'+messages("page.edit_url_title")+'">'+'<img
src="/static/images/globe.png" /></a>'+"</span>";return
a.children.list.length>0&&(h+="<ul>",$.each(a.children.list,function(a,b){h+=k(b)}),h+="</ul>"),h+"</li>"}function
l(){Vosao.app.user.admin||$("#structuresTab").hide()}function
m(a){if(a.title=="")return
messages("title_is_empty");if(a.title.indexOf(",")!=-1)return
messages("pages.coma_not_allowed");if(a.url==""&&(!d||
d.friendlyURL!="/"))return
messages("pages.url_is_empty");if(a.url.indexOf("/")!=-1)return
messages("pages.slash_not_allowed")}function n(){var
a={id:d==null?"":String(
d.id),title:$("#title").val(),url:$("#url").val(),friendlyUrl:i()?"/":b+"/"+$("#url").val()},c=m(a);c?o(c):Vosao.jsonrpc.pageService.savePage(function(a){a.result=="success"?(Vosao.info(messages("pages.success_created")),$("#page-dialog").dialog("close"),h()):o(a.message)},Vosao.javaMap(a))}function
o(a){Vosao.errorMessage("#pageMessages",a)}function p(a){return
q(c,a)}function q(a,b){if(
a.entity.id==b)return a;var c=null;return
a.children.list.length>0&&$.each(a.children.list,function(a,d){var
e=q(d,b);e!=null&&(c=e)}),c}function r(){e?$("#showTitle").html('<a
href="#"
onclick="Vosao.app.pagesView.onShowTitle(false)">'+messages("show_names")+"</a>"):$("#showTitle").html('<a
href="#"
onclick="Vosao.app.pagesView.onShowTitle(true)">'+messages("show_titles")+"</a>")}function
s(){f?$("#invertOrder").html('<a href="#"
onclick="Vosao.app.pagesView.onInvertOrder(false)">'+messages("restore_order")+"</a>"):$("#invertOrder").html('<a
href="#"
onclick="Vosao.app.pagesView.onInvertOrder(true)">'+messages("invert_order")+"</a>")}function
t(a){a.children.list.reverse(),a.hasChildren&&$.each(a.children.list,function(a,b){t(b)})}var
b=null,c=null,d=null,e=$.cookie("pages.showTitle")!="names",f=$.cookie("pages.invertOrder")=="true",g=null;return
Backbone.View.extend({css:["/static/css/jquery.treeview.css","/static/css/pages.css"],el:$("#content"),events:{},initialize:function(){},render:function(){Vosao.addCSSFiles(this.css),this.el.html(_.template(a,{messages:messages})),$("#page-dialog").dialog({width:400,autoOpen:!1}),Vosao.initJSONRpc(h),$("#cancelDlgButton").click(function(){$("#page-dialog").dialog("close")}),$("#pageForm").submit(function(){return
n(),!1}),$("#title").change(this.onTitleChange),r(),s()},remove:function(){$("#page-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFiles(this.css)},onPageRemove:function(a){if(a=="/")return;confirm(messages("are_you_sure"))&&Vosao.jsonrpc.pageService.remove(function(a){Vosao.showServiceMessages(a),h()},a)},onPageAdd:function(a){$("#ui-dialog-title-page-dialog").text(messages("pages.new_page")),b=a=="/"?"":a,$("#page-dialog").dialog("open"),$("#parentURL").html(b+"/"),$("#title").val(""),$("#url").val(""),$("#url").removeAttr("disabled"),$("#title").focus(),d=null},onTitleChange:function(){var
a=$("#url").val(),b=$("#title").val();a==""&&!i()&&$("#url").val(Vosao.urlFromTitle(b))},onInvertOrder:function(a){f=a,s(),f?$.cookie("pages.invertOrder","true",{path:"/",expires:10}):$.cookie("pages.invertOrder","false",{path:"/",expires:10}),h()},onPagePublish:function(a){confirm(messages("are_you_sure"))&&Vosao.jsonrpc.pageService.approve(function(a){Vosao.showServiceMessages(a),h()},a)},onShowTitle:function(a){e=a,r(),e?$.cookie("pages.showTitle","titles",{path:"/",expires:10}):$.cookie("pages.showTitle","names",{path:"/",expires:10}),h()},onChangeTitle:function(a){var
c=p(a);d=c.entity,$("#ui-dialog-title-page-dialog").text(messages("pages.change_page")),b=d.parentUrl=="/"?"":d.parentUrl,$("#page-dialog").dialog("open"),$("#parentURL").html(b+"/"),$("#title").val(d.title),$("#url").val(d.pageFriendlyURL),$("#url").attr("disabled",i()),$("#title").focus()}})});var
CodeMirror=function(){function a(c,d){function bN(a){return
a>=0&&a<bm.size}function bP(a){return t(bm,a)}function bQ(a,b){bB=!0;var
c=b-a.height;for(var d=a;d;d=d.parent)d.height+=c}function bR(a){var
b={line:0,ch:0};cc(b,{line:bm.size-1,ch:bP(bm.size-1).text.length},Y(a),b,b),bv=!0}function
bS(a){var b=[];return
bm.iter(0,bm.size,function(a){b.push(a.text)}),b.join("\n")}function
bT(a){function j(a){var b=dw(a,!0);if(b&&!Q(b,g)){bo||
ca(),g=b,cD(d,b),bv=!1;var c=cw();if(b.line>=
c.to||
b.line<c.from)h=setTimeout(dJ(function(){j(a)}),150)}}cC(a.shiftKey);for(var
c=D(a);c!=B;c=c.parentNode)if(c.parentNode==_&&c!=ba)return;for(var
c=D(a);c!=B;c=c.parentNode)if(c.parentNode==bc)return
e.onGutterClick&&e.onGutterClick(bO,W(bc.childNodes,c)+bE,a),A(a);var
d=dw(a);switch(E(a)){case 3:I&&!b&&dx(a);return;case
2:d&&cG(d.line,
d.ch,!0);return}if(!d){D(a)==N&&A(a);return}bo||ca();var
f=+(new Date);if(bs&&bs.time>f-400&&Q(bs.pos,d))return
A(a),setTimeout(cs,20),cP(d.line);if(br&&br.time>f-400&&Q(br.pos,d))return
bs={time:f,pos:d},A(a),cO(d);br={time:f,pos:d};var
g=d,h;if(H&&!Q(bp.from,
bp.to)&&!R(d,bp.from)&&!R(
bp.to,d)){K&&(bd.draggable=!0);var
i=F(y,"mouseup",dJ(function(b){K&&(bd.draggable=!1),bt=!1,i(),Math.abs(a.clientX-b.clientX)+Math.abs(a.clientY-b.clientY)<10&&(A(b),cG(d.line,
d.ch,!0),cs())}),!0);bt=!0;return}A(a),cG(d.line,
d.ch,!0);var
k=F(y,"mousemove",dJ(function(a){clearTimeout(h),A(a),j(a)}),!0),i=F(y,"mouseup",dJ(function(a){clearTimeout(h);var
b=dw(a);b&&cD(d,b),A(a),cs(),bv=!0,k(),i()}),!0)}function bU(a){for(var
b=D(a);b!=B;b=b.parentNode)if(b.parentNode==bc)return A(a);var
c=dw(a);if(!c)return;bs={time:+(new Date),pos:c},A(a),cO(c)}function
bV(a){a.preventDefault();var b=dw(a,!0),c=a.dataTransfer.files;if(!b||
e.readOnly)return;if(c&&c.length&&window.FileReader&&window.File){function
d(a,c){var d=new
FileReader;d.onload=function(){g[c]=d.result,++h==f&&(b=cI(b),dJ(function(){var
a=ch(g.join(""),b,b);cD(b,a)})())},d.readAsText(a)}var
f=c.length,g=Array(f),h=0;for(var i=0;i<f;++i)d(c[i],i)}else try{var
g=a.dataTransfer.getData("Text");if(g){var
j=ch(g,b,b),k=bp.from,l=
bp.to;cD(b,j),bt&&ch("",k,l),cs()}}catch(a){}}function
bW(a){var
b=cl();U(b),a.dataTransfer.setDragImage(T,0,0),a.dataTransfer.setData("Text",b)}function
bX(a){var b=$[a.keyCode],c=h[e.keyMap].auto,d,f;if(b==null||
a.altGraphKey)return
c&&(e.keyMap=c),null;a.altKey&&(b="Alt-"+b),a.ctrlKey&&(b="Ctrl-"+b),a.metaKey&&(b="Cmd-"+b),a.shiftKey&&(d=i("Shift-"+b,e.extraKeys,e.keyMap))?f=!0:d=i(b,e.extraKeys,e.keyMap),typeof
d=="string"&&(g.propertyIsEnumerable(d)?d=g[d]:d=null),c&&(d|
|!j(a))&&(e.keyMap=c);if(!d)return!1;if(f){var k=bq;bq=null,d(bO),bq=k}else
d(bO);return A(a),!0}function bZ(a){bo||ca();var
c=a.keyCode;J&&c==27&&(a.returnValue=!1),cC(c==16||
a.shiftKey);if(e.onKeyEvent&&e.onKeyEvent(bO,z(a)))return;var
d=bX(a);window.opera&&(bY=d?a.keyCode:null,!d&&(b?a.metaKey:a.ctrlKey)&&a.keyCode==88&&ci(""))}function
b$(a){if(window.opera&&a.keyCode==bY){bY=null,A(a);return}if(e.onKeyEvent&&e.onKeyEvent(bO,z(a)))return;if(window.opera&&!a.which&&bX(a))return;if(e.electricChars&&bl.electricChars){var
b=String.fromCharCode(a.charCode==null?a.keyCode:a.charCode);bl.electricChars.indexOf(b)>-1&&setTimeout(dJ(function(){cR(bp.to.line,"smart")}),75)}co()}function
b_(a){if(e.onKeyEvent&&e.onKeyEvent(bO,z(a)))return;a.keyCode==16&&(bq=null)}function
ca(){if(e.readOnly)return;bo||
(e.onFocus&&e.onFocus(bO),bo=!0,B.className.search(/\bCodeMirror-focused\b/)==-1&&(B.className+="
CodeMirror-focused"),bA||cr(!0)),cn(),dy()}function
cb(){bo&&(e.onBlur&&e.onBlur(bO),bo=!1,B.className=B.className.replace("
CodeMirror-focused","")),clearInterval(bk),setTimeout(function(){bo||
(bq=null)},150)}function cc(a,b,c,d,f){if(bL){var
g=[];bm.iter(a.line,b.line+1,function(a){g.push(a.text)}),bL.addChange(a.line,c.length,g);while(bL.done.length>e.undoDepth)bL.done.shift()}cg(a,b,c,d,f)}function
cd(a,b){var c=a.pop();if(c){var
d=[],e=c.start+c.added;bm.iter(c.start,e,function(a){d.push(a.text)}),b.push({start:c.start,added:c.old.length,old:d});var
f=cI({line:c.start+c.old.length-1,ch:V(d[d.length-1],c.old[c.old.length-1])});cg({line:c.start,ch:0},{line:e-1,ch:bP(e-1).text.length},c.old,f,f),bv=!0}}function
ce(){cd(bL.done,bL.undone)}function cf(){cd(bL.undone,bL.done)}function
cg(a,b,c,d,f){function y(a){return a>Math.min(b.line,b.line+s)?a+s:a}var
g=!1,h=bI.length;e.lineWrapping||
bm.iter(a.line,b.line,function(a){if(a.text.length==h)return
g=!0,!0});if(a.line!=b.line||c.length>1)bB=!0;var
i=b.line-a.line,j=bP(a.line),k=bP(b.line);if(
a.ch==0&&
b.ch==0&&c[c.length-1]==""){var
l=[],m=null;a.line?(m=bP(a.line-1),m.fixMarkEnds(k)):k.fixMarkStarts();for(var
n=0,o=c.length-1;n<o;++n)l.push(p.inheritMarks(c[n],m));i&&bm.remove(a.line,i,bC),l.length&&bm.insert(a.line,l)}else
if(j==k)if(c.length==1)j.replace(
a.ch,
b.ch,c[0]);else{k=j.split(
b.ch,c[c.length-1]),j.replace(
a.ch,null,c[0]),j.fixMarkEnds(k);var
l=[];for(var
n=1,o=c.length-1;n<o;++n)l.push(p.inheritMarks(c[n],j));l.push(k),bm.insert(a.line+1,l)}else
if(c.length==1)j.replace(
a.ch,null,c[0]),k.replace(null,
b.ch,""),j.append(k),bm.remove(a.line+1,i,bC);else{var
l=[];j.replace(
a.ch,null,c[0]),k.replace(null,
b.ch,c[c.length-1]),j.fixMarkEnds(k);for(var
n=1,o=c.length-1;n<o;++n)l.push(p.inheritMarks(c[n],j));i>1&&bm.remove(a.line+1,i-1,bC),bm.insert(a.line+1,l)}if(e.lineWrapping){var
q=N.clientWidth/dt()-3;bm.iter(a.line,a.line+c.length,function(a){if(a.hidden)return;var
b=Math.ceil(a.text.length/q)||1;b!=a.height&&bQ(a,b)})}else
bm.iter(a.line,n+c.length,function(a){var
b=a.text;b.length>h&&(bI=b,h=b.length,bJ=null,g=!1)}),g&&(h=0,bI="",bJ=null,bm.iter(0,bm.size,function(a){var
b=a.text;b.length>h&&(h=b.length,bI=b)}));var r=[],s=c.length-i-1;for(var
n=0,t=bn.length;n<t;++n){var
u=bn[n];u<a.line?r.push(u):u>b.line&&r.push(u+s)}var
v=a.line+Math.min(c.length,500);dD(a.line,v),r.push(v),bn=r,dF(100),bx.push({from:a.line,to:b.line+1,diff:s});var
w={from:a,to:b,text:c};if(by){for(var x=by;x.next;x=x.next);x.next=w}else
by=w;cE(d,f,y(bp.from.line),y(bp.to.line)),_.style.height=bm.height*dq()+2*du()+"px"}function
ch(a,b,c){function d(d){if(R(d,b))return d;if(!R(c,d))return e;var
f=d.line+a.length-(c.line-b.line)-1,g=
d.ch;return
d.line==c.line&&(g+=a[a.length-1].length-(c.ch-(c.line==b.line?b.ch:0))),{line:f,ch:g}}b=cI(b),c?c=cI(c):c=b,a=Y(a);var
e;return cj(a,b,c,function(a){return
e=a,{from:d(bp.from),to:d(
bp.to)}}),e}function
ci(a,b){cj(Y(a),bp.from,
bp.to,function(a){return
b=="end"?{from:a,to:a}:b=="start"?{from:bp.from,to:bp.from}:{from:bp.from,to:a}})}function
cj(a,b,c,d){var
e=a.length==1?a[0].length+b.ch:a[a.length-1].length,f=d({line:b.line+a.length-1,ch:e});cc(b,c,a,f.from,
f.to)}function
ck(a,b){var c=a.line,d=b.line;if(c==d)return
bP(c).text.slice(
a.ch,
b.ch);var e=[bP(c).text.slice(
a.ch)];return
bm.iter(c+1,d,function(a){e.push(a.text)}),e.push(bP(d).text.slice(0,
b.ch)),e.join("\n")}function
cl(){return ck(bp.from,
bp.to)}function
cn(){if(cm)return;bi.set(e.pollInterval,function(){dG(),cq(),bo&&cn(),dH()})}function
co(){function b(){dG();var
c=cq();!c&&!a?(a=!0,bi.set(60,b)):(cm=!1,cn()),dH()}var
a=!1;cm=!0,bi.set(20,b)}function cq(){if(bA||!bo||Z(M))return!1;var
a=M.value;if(a==cp)return!1;bq=null;var
b=0,c=Math.min(cp.length,a.length);while(b<c&&cp[b]==a[b])++b;return
b<cp.length?bp.from={line:bp.from.line,ch:bp.from.ch-(cp.length-b)}:bu&&Q(bp.from,
bp.to)&&(
bp.to={line:bp.to.line,ch:Math.min(bP(bp.to.line).text.length,
bp.to.ch+(a.length-b))}),ci(a.slice(b),"end"),cp=a,!0}function
cr(a){Q(bp.from,
bp.to)?a&&(cp=M.value=""):(cp="",M.value=cl(),M.select())}function
cs(){e.readOnly||M.focus()}function
ct(){if(!bf.getBoundingClientRect)return;var
a=bf.getBoundingClientRect();if(J&&a.top==a.bottom)return;var
b=window.innerHeight||
Math.max(document.body.offsetHeight,document.documentElement.offsetHeight);(a.top<0|
|a.bottom>b)&&bf.scrollIntoView()}function cu(){var
a=dj(bp.inverted?bp.from:
bp.to),b=e.lineWrapping?Math.min(a.x,bd.offsetWidth):a.x;return
cv(b,a.y,b,a.yBot)}function cv(a,b,c,d){var
f=dv(),g=du(),h=dq();b+=g,d+=g,a+=f,c+=f;var
i=N.clientHeight,j=N.scrollTop,k=!1,l=!0;b<j?(N.scrollTop=Math.max(0,b-2*h),k=!0):d>j+i&&(N.scrollTop=d+h-i,k=!0);var
m=N.clientWidth,n=N.scrollLeft,o=e.fixedGutter?bb.clientWidth:0;return
a<n+o?(a<50&&(a=0),N.scrollLeft=Math.max(0,a-10-o),k=!0):c>m+n-3&&(N.scrollLeft=c+10-m,k=!0,c>_.clientWidth&&(l=!1)),k&&e.onScroll&&e.onScroll(bO),l}function
cw(){var
a=dq(),b=N.scrollTop-du(),c=Math.max(0,Math.floor(b/a)),d=Math.ceil((b+N.clientHeight)/a);return{from:v(bm,c),to:v(bm,d)}}function
cx(a,b){if(!N.clientWidth){bE=bF=bD=0;return}var c=cw();if(a===!0||
a.length!=0||c.from<bE||
c.to>bF){var
d=Math.max(c.from-100,0),f=Math.min(bm.size,
c.to+100);bE<d&&d-bE<20&&(d=bE),bF>f&&bF-f<20&&(f=Math.min(bm.size,bF));var
g=a===!0?[]:cy([{from:bE,to:bF,domStart:0}],a),h=0;for(var
i=0;i<g.length;++i){var
j=g[i];j.from<d&&(j.domStart+=d-j.from,j.from=d),
j.to>f&&(
j.to=f),j.from<
j.to?h+=j.to-j.from:g.splice(i--,1)}if(h==f-d)return;g.sort(function(a,b){return
a.domStart-b.domStart});var
k=dq(),l=bb.style.display;bg.style.display=bb.style.display="none",cz(d,f,g),bg.style.display="";var
m=d!=bE||f!=bF||
bG!=N.clientHeight+k;m&&(bG=N.clientHeight+k),bE=d,bF=f,bD=w(bm,d),ba.style.top=bD*k+"px",_.style.height=bm.height*k+2*du()+"px";if(bg.childNodes.length!=bF-bE)throw
new Error("BAD PATCH! "+JSON.stringify(g)+" size="+(bF-bE)+"
nodes="+bg.childNodes.length);if(e.lineWrapping){bJ=N.clientWidth;var
n=bg.firstChild;bm.iter(bE,bF,function(a){if(!a.hidden){var
b=Math.round(n.offsetHeight/k)||
1;a.height!=b&&(bQ(a,b),bB=!0)}n=n.nextSibling})}else
bJ==null&&(bJ=df(bI)),bJ>N.clientWidth?(bd.style.width=bJ+"px",_.style.width="",_.style.width=N.scrollWidth+"px"):bd.style.width=_.style.width="";return
bb.style.display=l,(m||
bB)&&cA(),cB(),!b&&e.onUpdate&&e.onUpdate(bO),!0}return}function
cy(a,b){for(var c=0,d=b.length||0;c<d;++c){var e=b[c],f=[],g=e.diff||
0;for(var h=0,i=a.length;h<i;++h){var
j=a[h];
e.to<=j.from&&e.diff?f.push({from:j.from+g,to:
j.to+g,domStart:j.domStart}):
e.to>j.from&&e.from<
j.to?(e.from>j.from&&f.push({from:j.from,to:e.from,domStart:j.domStart}),
e.to<
j.to&&f.push({from:
e.to+g,to:
j.to+g,domStart:j.domStart+(e.to-j.from)})):f.push(j)}a=f}return
a}function cz(a,b,c){if(!c.length)bg.innerHTML="";else{function d(a){var
b=a.nextSibling;return a.parentNode.removeChild(a),b}var
e=0,f=bg.firstChild,g;for(var h=0;h<c.length;++h){var
i=c[h];while(i.domStart>e)f=d(f),e++;for(var
j=0,k=i.to-i.from;j<k;++j)f=f.nextSibling,e++}while(f)f=d(f)}var
l=c.shift(),f=bg.firstChild,j=a,m=bp.from.line,n=bp.to.line,o=m<a&&n>=a,p=y.createElement("div"),q;bm.iter(a,b,function(a){var
b=null,d=null;o?(b=0,n==j&&(o=!1,d=
bp.to.ch)):m==j&&(n==j?(b=
bp.from.ch,d=
bp.to.ch):(o=!0,b=
bp.from.ch)),l&&
l.to==j&&(l=c.shift()),!l|
|
l.from>j?(a.hidden?p.innerHTML="<pre></pre>":p.innerHTML=a.getHTML(b,d,!0,bK),bg.insertBefore(p.firstChild,f)):f=f.nextSibling,++j})}function
cA(){if(!e.gutter&&!e.lineNumbers)return;var
a=ba.offsetHeight,b=N.clientHeight;bb.style.height=(a-b<2?b:a)+"px";var
c=[],d=bE;bm.iter(bE,Math.max(bF,bE+1),function(a){if(a.hidden)c.push("<pre></pre>");else{var
b=a.gutterMarker,f=e.lineNumbers?d+e.firstLineNumber:null;b&&b.text?f=b.text.replace("%N%",f!=null?f:""):f==null&&(f=" "),c.push(b&&b.style?'<pre
class="'+b.style+'">':"<pre>",f);for(var
g=1;g<a.height;++g)c.push("<br/> ");c.push("</pre>")}++d}),bb.style.display="none",bc.innerHTML=c.join("");var
f=String(bm.size).length,g=bc.firstChild,h=P(g),i="";while(h.length+i.length<f)i+=" ";i&&g.insertBefore(y.createTextNode(i),g.firstChild),bb.style.display="",bd.style.marginLeft=bb.offsetWidth+"px",bB=!1}function
cB(){var
a=bp.inverted?bp.from:
bp.to,b=dq(),c=dj(a,!0),d=O(B),f=O(bg);L.style.top=c.y+f.top-d.top+"px",L.style.left=c.x+f.left-d.left+"px",Q(bp.from,
bp.to)?(bf.style.top=c.y+"px",bf.style.left=(e.lineWrapping?Math.min(c.x,bd.offsetWidth):c.x)+"px",bf.style.display=""):bf.style.display="none"}function
cC(a){a?bq=bq||(bp.inverted?bp.to:bp.from):bq=null}function cD(a,b){var
c=bq&&cI(bq);c&&(R(c,a)?a=c:R(b,c)&&(b=c)),cE(a,b),bw=!0}function
cE(a,b,c,d){cM=null,c==null&&(c=bp.from.line,d=bp.to.line);if(Q(bp.from,a)&&Q(
bp.to,b))return;if(R(b,a)){var
e=b;b=a,a=e}a.line!=c&&(a=cF(a,c,
bp.from.ch)),b.line!=d&&(b=cF(b,d,
bp.to.ch)),Q(a,b)?bp.inverted=!1:Q(a,
bp.to)?bp.inverted=!1:Q(b,bp.from)&&(bp.inverted=!0),Q(a,b)?Q(bp.from,
bp.to)|
|
bx.push({from:c,to:d+1}):Q(bp.from,
bp.to)?bx.push({from:a.line,to:b.line+1}):(Q(a,bp.from)|
|
(a.line<c?bx.push({from:a.line,to:Math.min(b.line,c)+1}):bx.push({from:c,to:Math.min(d,a.line)+1})),Q(b,
bp.to)|
|
(b.line<d?bx.push({from:Math.max(c,a.line),to:d+1}):bx.push({from:Math.max(a.line,d),to:b.line+1}))),bp.from=a,
bp.to=b,bz=!0}function
cF(a,b,c){function d(b){var d=a.line+b,e=b==1?bm.size:-1;while(d!=e){var
f=bP(d);if(!f.hidden){var g=
a.ch;if(g>c||
g>f.text.length)g=f.text.length;return{line:d,ch:g}}d+=b}}var
e=bP(a.line);return e.hidden?a.line<b?d(-1)||d(1):d(1)||d(-1):a}function
cG(a,b,c){var d=cI({line:a,ch:b||0});(c?cD:cE)(d,d)}function cH(a){return
Math.max(0,Math.min(a,bm.size-1))}function
cI(a){if(a.line<0)return{line:0,ch:0};if(a.line<bm.size){var
b=
a.ch,c=bP(a.line).text.length;return b==null||
b>c?{line:a.line,ch:c}:b<0?{line:a.line,ch:0}:a}return{line:bm.size-1,ch:bP(bm.size-1).text.length}}function
cJ(a,b){function g(){for(var b=d+a,c=a<0?-1:bm.size;b!=c;b+=a){var
e=bP(b);if(!e.hidden)return d=b,f=e,!0}}function
h(b){if(e==(a<0?0:f.text.length))if(!b&&g())e=a<0?f.text.length:0;else
return!1;else e+=a;return!0}var
c=bp.inverted?bp.from:
bp.to,d=c.line,e=
c.ch,f=bP(d);if(b=="char")h();else
if(b=="column")h(!0);else if(b=="word"){var
i=!1;for(;;){if(a<0&&!h())break;if(X(f.text.charAt(e)))i=!0;else
if(i){a<0&&(a=1,h());break}if(a>0&&!h())break}}return{line:d,ch:e}}function
cK(a,b){var c=a<0?bp.from:
bp.to;if(bq||
Q(bp.from,
bp.to))c=cJ(a,b);cG(c.line,
c.ch,!0)}function
cL(a,b){Q(bp.from,
bp.to)?a<0?ch("",cJ(a,b),
bp.to):ch("",bp.from,cJ(a,b)):ch("",bp.from,
bp.to),bw=!0}function
cN(a,b){var
c=0,d=dj(bp.inverted?bp.from:
bp.to,!0);cM!=null&&(d.x=cM),b=="page"?c=N.clientHeight:b=="line"&&(c=dq());var
e=dk(d.x,d.y+c*a+2);cG(e.line,
e.ch,!0),cM=d.x}function cO(a){var
b=bP(a.line).text,c=
a.ch,d=
a.ch;while(c>0&&X(b.charAt(c-1)))--c;while(d<b.length&&X(b.charAt(d)))++d;cD({line:a.line,ch:c},{line:a.line,ch:d})}function
cP(a){cD({line:a,ch:0},{line:a,ch:bP(a).text.length})}function
cQ(a){if(Q(bp.from,
bp.to))return cR(bp.from.line,a);var
b=bp.to.line-(
bp.to.ch?0:1);for(var
c=bp.from.line;c<=b;++c)cR(c,a)}function cR(a,b){b||
(b="add");if(b=="smart")if(!bl.indent)b="prev";else var c=dC(a);var
d=bP(a),f=d.indentation(e.tabSize),g=d.text.match(/^\s*/)[0],h;b=="prev"?a?h=bP(a-1).indentation(e.tabSize):h=0:b=="smart"?h=bl.indent(c,d.text.slice(g.length),d.text):b=="add"?h=f+e.indentUnit:b=="subtract"&&(h=f-e.indentUnit),h=Math.max(0,h);var
i=h-f;if(!i){if(bp.from.line!=a&&bp.to.line!=a)return;var j=g}else{var
j="",k=0;if(e.indentWithTabs)for(var
l=Math.floor(h/e.tabSize);l;--l)k+=e.tabSize,j+="\t";while(k<h)++k,j+=" "}ch(j,{line:a,ch:0},{line:a,ch:g.length})}function
cS(){bl=a.getMode(e,e.mode),bm.iter(0,bm.size,function(a){a.stateAfter=null}),bn=[0],dF()}function
cT(){var a=e.gutter||
e.lineNumbers;bb.style.display=a?"":"none",a?bB=!0:bg.parentNode.style.marginLeft=0}function
cU(a,b){if(e.lineWrapping){B.className+=" CodeMirror-wrap";var
c=N.clientWidth/dt()-3;bm.iter(0,bm.size,function(a){if(a.hidden)return;var
b=Math.ceil(a.text.length/c)||
1;b!=1&&bQ(a,b)}),bd.style.width=_.style.width=""}else
B.className=B.className.replace("
CodeMirror-wrap",""),bJ=null,bI="",bm.iter(0,bm.size,function(a){a.height!=1&&!a.hidden&&bQ(a,1),a.text.length>bI.length&&(bI=a.text)});bx.push({from:0,to:bm.size})}function
cV(){for(var a='<span class="cm-tab">',b=0;b<e.tabSize;++b)a+=" ";return
a+"</span>"}function cW(){bK=cV(),cx(!0)}function
cX(){N.className=N.className.replace(/\s*cm-s-\w+/g,"")+e.theme.replace(/(^|
\s)\s*/g," cm-s-")}function cY(){this.set=[]}function cZ(a,b,c){function
e(a,b,c,e){bP(a).addMark(new n(b,c,e,d.set))}a=cI(a),b=cI(b);var d=new
cY;if(a.line==b.line)e(a.line,
a.ch,
b.ch,c);else{e(a.line,
a.ch,null,c);for(var
f=a.line+1,g=b.line;f<g;++f)e(f,null,null,c);e(b.line,null,
b.ch,c)}return
bx.push({from:a.line,to:b.line+1}),d}function c$(a){a=cI(a);var b=new
o(
a.ch);return bP(a.line).addMark(b),b}function c_(a,b,c){return typeof
a=="number"&&(a=bP(cH(a))),a.gutterMarker={text:b,style:c},bB=!0,a}function
da(a){typeof a=="number"&&(a=bP(cH(a))),a.gutterMarker=null,bB=!0}function
db(a,b){var c=a,d=a;typeof a=="number"?d=bP(cH(a)):c=u(a);if(c==null)return
null;if(b(d,c))bx.push({from:c,to:c+1});else return null;return d}function
dc(a,b){return db(a,function(a){if(a.className!=b)return
a.className=b,!0})}function dd(a,b){return
db(a,function(a,c){if(a.hidden!=b)return
a.hidden=b,bQ(a,b?0:1),b&&(bp.from.line==c||
bp.to.line==c)&&cE(cF(bp.from,bp.from.line,
bp.from.ch),cF(
bp.to,bp.to.line,
bp.to.ch)),bB=!0})}function
de(a){if(typeof a=="number"){if(!bN(a))return null;var
b=a;a=bP(a);if(!a)return null}else{var b=u(a);if(b==null)return null}var
c=a.gutterMarker;return{line:b,handle:a,text:a.text,markerText:c&&c.text,markerClass:c&&c.style,lineClass:a.className}}function
df(a){return
be.innerHTML="<pre><span>x</span></pre>",be.firstChild.firstChild.firstChild.nodeValue=a,be.firstChild.firstChild.offsetWidth|
|10}function dg(a,b){function e(a){return
be.innerHTML="<pre><span>"+c.getHTML(null,null,!1,bK,a)+"</span></pre>",be.firstChild.firstChild.offsetWidth}if(b<=0)return
0;var
c=bP(a),d=c.text,f=0,g=0,h=d.length,i,j=Math.min(h,Math.ceil(b/dt()));for(;;){var
k=e(j);if(k<=b&&j<h)j=Math.min(h,Math.ceil(j*1.2));else{i=k,h=j;break}}if(b>i)return
h;j=Math.floor(h*.8),k=e(j),k<b&&(f=j,g=k);for(;;){if(h-f<=1)return
i-b>b-g?f:h;var
l=Math.ceil((f+h)/2),m=e(l);m>b?(h=l,i=m):(f=l,g=m)}}function di(a,b){var
c="";if(e.lineWrapping){var
d=a.text.indexOf(" ",b+2);c=U(a.text.slice(b+1,d<0?a.text.length:d+(J?5:0)))}be.innerHTML="<pre>"+a.getHTML(null,null,!1,bK,b)+'<span
id="CodeMirror-temp-'+dh+'">'+U(a.text.charAt(b)|
|" ")+"</span>"+c+"</pre>";var
f=document.getElementById("CodeMirror-temp-"+dh),g=f.offsetTop,h=f.offsetLeft;if(J&&b&&g==0&&h==0){var
i=document.createElement("span");i.innerHTML="x",f.parentNode.insertBefore(i,f.nextSibling),g=i.offsetTop}return{top:g,left:h}}function
dj(a,b){var c,d=dq(),f=d*(w(bm,a.line)-(b?bD:0));if(
a.ch==0)c=0;else{var
g=di(bP(a.line),
a.ch);c=g.left,e.lineWrapping&&(f+=Math.max(0,g.top))}return{x:c,y:f,yBot:f+d}}function
dk(a,b){function l(a){var b=di(h,a);if(j){var d=Math.round(b.top/c);return
Math.max(0,b.left+(d-k)*N.clientWidth)}return b.left}b<0&&(b=0);var
c=dq(),d=dt(),f=bD+Math.floor(b/c),g=v(bm,f);if(g>=bm.size)return{line:bm.size-1,ch:bP(bm.size-1).text.length};var
h=bP(g),i=h.text,j=e.lineWrapping,k=j?f-w(bm,g):0;if(a<=0&&k==0)return{line:g,ch:0};var
m=0,n=0,o=i.length,p,q=Math.min(o,Math.ceil((a+k*N.clientWidth*.9)/d));for(;;){var
r=l(q);if(r<=a&&q<o)q=Math.min(o,Math.ceil(q*1.2));else{p=r,o=q;break}}if(a>p)return{line:g,ch:o};q=Math.floor(o*.8),r=l(q),r<a&&(m=q,n=r);for(;;){if(o-m<=1)return{line:g,ch:p-a>a-n?m:o};var
s=Math.ceil((m+o)/2),t=l(s);t>a?(o=s,p=t):(m=s,n=t)}}function dl(a){var
b=dj(a,!0),c=O(bd);return{x:c.left+b.x,y:c.top+b.y,yBot:c.top+b.yBot}}function
dq(){if(dp==null){dp="<pre>";for(var
a=0;a<49;++a)dp+="x<br/>";dp+="x</pre>"}var b=bg.clientHeight;return
b==dn?dm:(dn=b,be.innerHTML=dp,dm=be.firstChild.offsetHeight/50||
1,be.innerHTML="",dm)}function dt(){return
N.clientWidth==ds?dr:(ds=N.clientWidth,dr=df("x"))}function du(){return
bd.offsetTop}function dv(){return bd.offsetLeft}function dw(a,b){var
c=O(N,!0),d,e;try{d=a.clientX,e=a.clientY}catch(a){return
null}if(!b&&(d-c.left>N.clientWidth||e-c.top>N.clientHeight))return
null;var f=O(bd,!0);return dk(d-f.left,e-f.top)}function dx(a){function
e(){var
a=Y(M.value).join("\n");a!=d&&dJ(ci)(a,"end"),L.style.position="relative",M.style.cssText=c,bA=!1,cr(!0),cn()}var
b=dw(a);if(!b||window.opera)return;(Q(bp.from,
bp.to)||R(b,bp.from)|
|!R(b,
bp.to))&&dJ(cG)(b.line,
b.ch);var
c=M.style.cssText;L.style.position="absolute",M.style.cssText="position:
fixed; width: 30px; height: 30px; top: "+(a.clientY-5)+"px;
left: "+(a.clientX-5)+"px; z-index: 1000; background:
white; "+"border-width: 0; outline: none; overflow: hidden; opacity: .05;
filter: alpha(opacity=5);",bA=!0;var
d=M.value=cl();cs(),M.select();if(I){C(a);var
f=F(window,"mouseup",function(){f(),setTimeout(e,20)},!0)}else
setTimeout(e,50)}function dy(){clearInterval(bk);var
a=!0;bf.style.visibility="",bk=setInterval(function(){bf.style.visibility=(a=!a)?"":"hidden"},650)}function
dA(a){function p(a,b,c){if(!a.text)return;var
d=a.styles,e=g?0:a.text.length-1,f;for(var
i=g?0:d.length-2,j=g?d.length:-2;i!=j;i+=2*h){var
k=d[i];if(d[i+1]!=null&&d[i+1]!=m){e+=h*k.length;continue}for(var
l=g?0:k.length-1,p=g?k.length:-1;l!=p;l+=h,e+=h)if(e>=b&&e<c&&o.test(f=k.charAt(l))){var
q=dz[f];if(q.charAt(1)==">"==g)n.push(f);else{if(n.pop()!=q.charAt(0))return{pos:e,match:!1};if(!n.length)return{pos:e,match:!0}}}}}var
b=bp.inverted?bp.from:
bp.to,c=bP(b.line),d=b.ch-1,e=d>=0&&dz[c.text.charAt(d)]|
|dz[c.text.charAt(++d)];if(!e)return;var
f=e.charAt(0),g=e.charAt(1)==">",h=g?1:-1,i=c.styles;for(var
j=d+1,k=0,l=i.length;k<l;k+=2)if((j-=i[k].length)<=0){var
m=i[k+1];break}var n=[c.text.charAt(d)],o=/[(){}[\]]/;for(var
k=b.line,l=g?Math.min(k+100,bm.size):Math.max(-1,k-100);k!=l;k+=h){var
c=bP(k),q=k==b.line,r=p(c,q&&g?d+1:0,q&&!g?d:c.text.length);if(r)break}r||
(r={pos:null,match:!1});var
m=r.match?"CodeMirror-matchingbracket":"CodeMirror-nonmatchingbracket",s=cZ({line:b.line,ch:d},{line:b.line,ch:d+1},m),t=r.pos!=null&&cZ({line:k,ch:r.pos},{line:k,ch:r.pos+1},m),u=dJ(function(){s.clear(),t&&t.clear()});a?setTimeout(u,800):bH=u}function
dB(a){var b,c;for(var d=a,f=a-40;d>f;--d){if(d==0)return 0;var
g=bP(d-1);if(g.stateAfter)return d;var
h=g.indentation(e.tabSize);if(c==null||b>h)c=d-1,b=h}return c}function
dC(a){var b=dB(a),c=b&&bP(b-1).stateAfter;return
c?c=k(bl,c):c=l(bl),bm.iter(b,a,function(a){a.highlight(bl,c,e.tabSize),a.stateAfter=k(bl,c)}),b<a&&bx.push({from:b,to:a}),a<bm.size&&!bP(a).stateAfter&&bn.push(a),c}function
dD(a,b){var
c=dC(a);bm.iter(a,b,function(a){a.highlight(bl,c,e.tabSize),a.stateAfter=k(bl,c)})}function
dE(){var a=+(new
Date)+e.workTime,b=bn.length;while(bn.length){if(!bP(bE).stateAfter)var
c=bE;else var c=bn.pop();if(c>=bm.size)continue;var
d=dB(c),f=d&&bP(d-1).stateAfter;f?f=k(bl,f):f=l(bl);var
g=0,h=bl.compareStates,i=!1,j=d,m=!1;bm.iter(j,bm.size,function(b){var
d=b.stateAfter;if(+(new Date)>a)return
bn.push(j),dF(e.workDelay),i&&bx.push({from:c,to:j+1}),m=!0;var
l=b.highlight(bl,f,e.tabSize);l&&(i=!0),b.stateAfter=k(bl,f);if(h){if(d&&h(d,f))return!0}else
if(l!==!1||!d)g=0;else if(++g>3&&(!bl.indent||
bl.indent(d,"")==bl.indent(f,"")))return!0;++j});if(m)return;i&&bx.push({from:c,to:j+1})}b&&e.onHighlightComplete&&e.onHighlightComplete(bO)}function
dF(a){if(!bn.length)return;bj.set(a,dJ(dE))}function
dG(){bv=bw=by=null,bx=[],bz=!1,bC=[]}function dH(){var
a=!1,b;bz&&(a=!cu()),bx.length?b=cx(bx,!0):(bz&&cB(),bB&&cA()),a&&cu(),bz&&(ct(),dy()),bo&&!bA&&(bv===!0|
|
bv!==!1&&bz)&&cr(bw),bz&&e.matchBrackets&&setTimeout(dJ(function(){bH&&(bH(),bH=null),Q(bp.from,
bp.to)&&dA(!1)}),20);var
c=by,d=bC;bz&&e.onCursorActivity&&e.onCursorActivity(bO),c&&e.onChange&&bO&&e.onChange(bO,c);for(var
f=0;f<d.length;++f)d[f](bO);b&&e.onUpdate&&e.onUpdate(bO)}function
dJ(a){return function(){dI++||dG();try{var
b=a.apply(this,arguments)}finally{--dI||dH()}return b}}var
e={},m=a.defaults;for(var q in
m)m.hasOwnProperty(q)&&(e[q]=(d&&d.hasOwnProperty(q)?d:m)[q]);var
y=e.document,B=y.createElement("div");B.className="CodeMirror"+(e.lineWrapping?"
CodeMirror-wrap":""),B.innerHTML='<div style="overflow: hidden; position:
relative; width: 3px; height: 0px;"><textarea style="position: absolute;
padding: 0; width: 1px;" wrap="off" autocorrect="off"
autocapitalize="off"></textarea></div><div class="CodeMirror-scroll"
tabindex="-1"><div style="position: relative"><div style="position:
relative"><div class="CodeMirror-gutter"><div
class="CodeMirror-gutter-text"></div></div><div
class="CodeMirror-lines"><div style="position: relative"><div
style="position: absolute; width: 100%; height: 0; overflow: hidden;
visibility: hidden"></div><pre
class="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div>',c.appendChild?c.appendChild(B):c(B);var
L=B.firstChild,M=L.firstChild,N=B.lastChild,_=N.firstChild,ba=_.firstChild,bb=ba.firstChild,bc=bb.firstChild,bd=bb.nextSibling.firstChild,be=bd.firstChild,bf=be.nextSibling,bg=bf.nextSibling;cX(),/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent)&&(M.style.width="0px"),K|
|
(bd.draggable=!0),e.tabindex!=null&&(M.tabIndex=e.tabindex),!e.gutter&&!e.lineNumbers&&(bb.style.display="none");try{df("x")}catch(bh){throw
bh.message.match(/runtime/i)&&(bh=new Error("A CodeMirror inside a P-style
element does not work in Internet Explorer. (innerHTML bug)")),bh}var
bi=new G,bj=new G,bk,bl,bm=new s([new r([new p("")])]),bn,bo;cS();var
bp={from:{line:0,ch:0},to:{line:0,ch:0},inverted:!1},bq,br,bs,bt,bu=!1,bv,bw,bx,by,bz,bA,bB,bC,bD=0,bE=0,bF=0,bG=0,bH,bI="",bJ,bK=cV();dJ(function(){bR(e.value|
|""),bv=!1})();var bL=new
x;F(N,"mousedown",dJ(bT)),F(N,"dblclick",dJ(bU)),F(bd,"dragstart",bW),F(bd,"selectstart",A),I|
|
F(N,"contextmenu",dx),F(N,"scroll",function(){cx([]),e.fixedGutter&&(bb.style.left=N.scrollLeft+"px"),e.onScroll&&e.onScroll(bO)}),F(window,"resize",function(){cx(!0)}),F(M,"keyup",dJ(b_)),F(M,"input",co),F(M,"keydown",dJ(bZ)),F(M,"keypress",dJ(b$)),F(M,"focus",ca),F(M,"blur",cb),F(N,"dragenter",C),F(N,"dragover",C),F(N,"drop",dJ(bV)),F(N,"paste",function(){cs(),co()}),F(M,"paste",co),F(M,"cut",dJ(function(){ci("")}));var
bM;try{bM=y.activeElement==M}catch(bh){}bM?setTimeout(ca,20):cb();var
bO=B.CodeMirror={getValue:bS,setValue:dJ(bR),getSelection:cl,replaceSelection:dJ(ci),focus:function(){cs(),ca(),co()},setOption:function(a,b){var
c=e[a];e[a]=b,a=="mode"||
a=="indentUnit"?cS():a=="readOnly"&&b?(cb(),M.blur()):a=="theme"?cX():a=="lineWrapping"&&c!=b?dJ(cU)():a=="tabSize"&&dJ(cW)(),(a=="lineNumbers"|
|a=="gutter"||a=="firstLineNumber"||
a=="theme")&&dJ(cT)()},getOption:function(a){return
e[a]},undo:dJ(ce),redo:dJ(cf),indentLine:dJ(function(a,b){bN(a)&&cR(a,b==null?"smart":b?"add":"subtract")}),indentSelection:dJ(cQ),historySize:function(){return{undo:bL.done.length,redo:bL.undone.length}},clearHistory:function(){bL=new
x},matchBrackets:dJ(function(){dA(!0)}),getTokenAt:dJ(function(a){return
a=cI(a),bP(a.line).getTokenAt(bl,dC(a.line),
a.ch)}),getStateAfter:function(a){return
a=cH(a==null?bm.size-1:a),dC(a+1)},cursorCoords:function(a){return
a==null&&(a=bp.inverted),dl(a?bp.from:
bp.to)},charCoords:function(a){return
dl(cI(a))},coordsChar:function(a){var b=O(bd);return
dk(a.x-b.left,a.y-b.top)},markText:dJ(cZ),setBookmark:c$,setMarker:dJ(c_),clearMarker:dJ(da),setLineClass:dJ(dc),hideLine:dJ(function(a){return
dd(a,!0)}),showLine:dJ(function(a){return
dd(a,!1)}),onDeleteLine:function(a,b){if(typeof
a=="number"){if(!bN(a))return null;a=bP(a)}return(a.handlers||
(a.handlers=[])).push(b),a},lineInfo:de,addWidget:function(a,b,c,d,e){a=dj(cI(a));var
f=a.yBot,g=a.x;b.style.position="absolute",_.appendChild(b);if(d=="over")f=a.y;else
if(d=="near"){var
h=Math.max(N.offsetHeight,bm.height*dq()),i=Math.max(_.clientWidth,bd.clientWidth)-dv();a.yBot+b.offsetHeight>h&&a.y>b.offsetHeight&&(f=a.y-b.offsetHeight),g+b.offsetWidth>i&&(g=i-b.offsetWidth)}b.style.top=f+du()+"px",b.style.left=b.style.right="",e=="right"?(g=_.clientWidth-b.offsetWidth,b.style.right="0px"):(e=="left"?g=0:e=="middle"&&(g=(_.clientWidth-b.offsetWidth)/2),b.style.left=g+dv()+"px"),c&&cv(g,f,g+b.offsetWidth,f+b.offsetHeight)},lineCount:function(){return
bm.size},clipPos:cI,getCursor:function(a){return
a==null&&(a=bp.inverted),S(a?bp.from:
bp.to)},somethingSelected:function(){return!Q(bp.from,
bp.to)},setCursor:dJ(function(a,b,c){b==null&&typeof
a.line=="number"?cG(a.line,
a.ch,c):cG(a,b,c)}),setSelection:dJ(function(a,b,c){(c?cD:cE)(cI(a),cI(b|
|a))}),getLine:function(a){if(bN(a))return
bP(a).text},getLineHandle:function(a){if(bN(a))return
bP(a)},setLine:dJ(function(a,b){bN(a)&&ch(b,{line:a,ch:0},{line:a,ch:bP(a).text.length})}),removeLine:dJ(function(a){bN(a)&&ch("",{line:a,ch:0},cI({line:a+1,ch:0}))}),replaceRange:dJ(ch),getRange:function(a,b){return
ck(cI(a),cI(b))},execCommand:function(a){return
g[a](bO)},moveH:dJ(cK),deleteH:dJ(cL),moveV:dJ(cN),toggleOverwrite:function(){bu=!bu},posFromIndex:function(a){var
b=0,c;return bm.iter(0,bm.size,function(d){var
e=d.text.length+1;if(e>a)return
c=a,!0;a-=e,++b}),cI({line:b,ch:c})},indexFromPos:function(a){if(a.line<0||
a.ch<0)return 0;var b=
a.ch;return
bm.iter(0,a.line,function(a){b+=a.text.length+1}),b},operation:function(a){return
dJ(a)()},refresh:function(){cx(!0)},getInputField:function(){return
M},getWrapperElement:function(){return
B},getScrollerElement:function(){return
N},getGutterElement:function(){return
bb}},bY=null,cm=!1,cp="",cM=null;cY.prototype.clear=dJ(function(){var
a=Infinity,b=-Infinity;for(var c=0,d=this.set.length;c<d;++c){var
e=this.set[c],f=e.marked;if(!f||!e.parent)continue;var
g=u(e);a=Math.min(a,g),b=Math.max(b,g);for(var
h=0;h<f.length;++h)f[h].set==this.set&&f.splice(h--,1)}a!=Infinity&&bx.push({from:a,to:b+1})}),cY.prototype.find=function(){var
a,b;for(var c=0,d=this.set.length;c<d;++c){var
e=this.set[c],f=e.marked;for(var g=0;g<f.length;++g){var
h=f[g];if(h.set==this.set)if(h.from!=null||
h.to!=null){var
i=u(e);i!=null&&(h.from!=null&&(a={line:i,ch:h.from}),
h.to!=null&&(b={line:i,ch:
h.to}))}}}return{from:a,to:b}};var
dh=Math.floor(Math.random()*16777215).toString(16),dm,dn,dp,dr,ds=0,dz={"(":")>",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},dI=0;for(var
dK in
f)f.propertyIsEnumerable(dK)&&!bO.propertyIsEnumerable(dK)&&(bO[dK]=f[dK]);return
bO}function i(a,b,c){function d(a,b,c){var e=b[a];if(e!=null)return
e;c==null&&(c=b.fallthrough);if(c==null)return b.catchall;if(typeof
c=="string")return d(a,h[c]);for(var
f=0,g=c.length;f<g;++f){e=d(a,h[c[f]]);if(e!=null)return e}return
null}return b?d(a,b,c):d(a,h[c])}function j(a){var b=$[a.keyCode];return
b=="Ctrl"||b=="Alt"||b=="Shift"||b=="Mod"}function k(a,b){if(b===!0)return
b;if(a.copyState)return a.copyState(b);var c={};for(var d in b){var
e=b[d];e instanceof Array&&(e=e.concat([])),c[d]=e}return c}function
l(a,b,c){return a.startState?a.startState(b,c):!0}function
m(a,b){this.pos=this.start=0,this.string=a,this.tabSize=b||8}function
n(a,b,c,d){this.from=a,
this.to=b,this.style=c,this.set=d}function
o(a){this.from=a,
this.to=a,this.line=null}function p(a,b){this.styles=b||
[a,null],this.text=a,this.height=1,this.marked=this.gutterMarker=this.className=this.handlers=null,this.stateAfter=this.parent=this.hidden=null}function
q(a,b,c,d){for(var e=0,f=0,g=0;f<b;e+=2){var
h=c[e],i=f+h.length;g==0?(i>a&&d.push(h.slice(a-f,Math.min(h.length,b-f)),c[e+1]),i>=a&&(g=1)):g==1&&(i>b?d.push(h.slice(0,b-f),c[e+1]):d.push(h,c[e+1])),f=i}}function
r(a){this.lines=a,this.parent=null;for(var
b=0,c=a.length,d=0;b<c;++b)a[b].parent=this,d+=a[b].height;this.height=d}function
s(a){this.children=a;var b=0,c=0;for(var d=0,e=a.length;d<e;++d){var
f=a[d];b+=f.chunkSize(),c+=f.height,f.parent=this}this.size=b,this.height=c,this.parent=null}function
t(a,b){while(!a.lines)for(var c=0;;++c){var
d=a.children[c],e=d.chunkSize();if(b<e){a=d;break}b-=e}return
a.lines[b]}function u(a){if(a.parent==null)return null;var
b=a.parent,c=W(b.lines,a);for(var d=b.parent;d;b=d,d=d.parent)for(var
e=0,f=d.children.length;;++e){if(d.children[e]==b)break;c+=d.children[e].chunkSize()}return
c}function v(a,b){var c=0;d:do{for(var e=0,f=a.children.length;e<f;++e){var
g=a.children[e],h=g.height;if(b<h){a=g;continue
d}b-=h,c+=g.chunkSize()}return c}while(!a.lines);for(var
e=0,f=a.lines.length;e<f;++e){var
i=a.lines[e],j=i.height;if(b<j)break;b-=j}return c+e}function w(a,b){var
c=0;d:do{for(var e=0,f=a.children.length;e<f;++e){var
g=a.children[e],h=g.chunkSize();if(b<h){a=g;continue
d}b-=h,c+=g.height}return c}while(!a.lines);for(var
e=0;e<b;++e)c+=a.lines[e].height;return c}function
x(){this.time=0,this.done=[],this.undone=[]}function y(){C(this)}function
z(a){return a.stop||(a.stop=y),a}function
A(a){a.preventDefault?a.preventDefault():a.returnValue=!1}function
B(a){a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}function
C(a){A(a),B(a)}function D(a){return a.target||a.srcElement}function
E(a){if(a.which)return a.which;if(a.button&1)return 1;if(a.button&2)return
3;if(a.button&4)return 2}function F(a,b,c,d){if(typeof
a.addEventListener=="function"){a.addEventListener(b,c,!1);if(d)return
function(){a.removeEventListener(b,c,!1)}}else{var e=function(a){c(a||
window.event)};a.attachEvent("on"+b,e);if(d)return
function(){a.detachEvent("on"+b,e)}}}function G(){
this.id=null}function
M(a,b,c){b==null&&(b=a.search(/[^\s\u00a0]/),b==-1&&(b=a.length));for(var
d=0,e=0;d<b;++d)a.charAt(d)=="\t"?e+=c-e%c:++e;return e}function
N(a){return
a.currentStyle?a.currentStyle:window.getComputedStyle(a,null)}function
O(a,b){var c=a.ownerDocument.body,d=0,e=0,f=!1;for(var
g=a;g;g=g.offsetParent){var
h=g.offsetLeft,i=g.offsetTop;g==c?(d+=Math.abs(h),e+=Math.abs(i)):(d+=h,e+=i),b&&N(g).position=="fixed"&&(f=!0)}var
j=b&&!f?null:c;for(var
g=a.parentNode;g!=j;g=g.parentNode)g.scrollLeft!=null&&(d-=g.scrollLeft,e-=g.scrollTop);return{left:d,top:e}}function
P(a){return a.textContent||a.innerText||a.nodeValue||""}function
Q(a,b){return a.line==b.line&&
a.ch==
b.ch}function R(a,b){return
a.line<b.line||a.line==b.line&&
a.ch<
b.ch}function
S(a){return{line:a.line,ch:
a.ch}}function U(a){return
T.textContent=a,T.innerHTML}function V(a,b){if(!b)return
a?a.length:0;if(!a)return b.length;for(var
c=a.length,d=b.length;c>=0&&d>=0;--c,--d)if(a.charAt(c)!=b.charAt(d))break;return
d+1}function W(a,b){if(a.indexOf)return a.indexOf(b);for(var
c=0,d=a.length;c<d;++c)if(a[c]==b)return c;return-1}function
X(a){return/\w/.test(a)||
a.toUpperCase()!=a.toLowerCase()}a.defaults={value:"",mode:null,theme:"default",indentUnit:2,indentWithTabs:!1,tabSize:4,keyMap:"default",extraKeys:null,electricChars:!0,onKeyEvent:null,lineWrapping:!1,lineNumbers:!1,gutter:!1,fixedGutter:!1,firstLineNumber:1,readOnly:!1,onChange:null,onCursorActivity:null,onGutterClick:null,onHighlightComplete:null,onUpdate:null,onFocus:null,onBlur:null,onScroll:null,matchBrackets:!1,workTime:100,workDelay:200,pollInterval:100,undoDepth:40,tabindex:null,document:window.document};var
b=/Mac/.test(navigator.platform),c=/Win/.test(navigator.platform),d={},e={};a.defineMode=function(b,c){!a.defaults.mode&&b!="null"&&(a.defaults.mode=b),d[b]=c},a.defineMIME=function(a,b){e[a]=b},a.getMode=function(b,c){typeof
c=="string"&&e.hasOwnProperty(c)&&(c=e[c]);if(typeof c=="string")var
f=c,g={};else if(c!=null)var f=
c.name,g=c;var h=d[f];return h?h(b,g||
{}):(window.console&&console.warn("No mode "+f+" found, falling back to
plain text."),a.getMode(b,"text/plain"))},a.listModes=function(){var
a=[];for(var b in d)d.propertyIsEnumerable(b)&&a.push(b);return
a},a.listMIMEs=function(){var a=[];for(var b in
e)e.propertyIsEnumerable(b)&&a.push({mime:b,mode:e[b]});return a};var
f=a.extensions={};a.defineExtension=function(a,b){f[a]=b};var
g=a.commands={selectAll:function(a){a.setSelection({line:0,ch:0},{line:a.lineCount()-1})},killLine:function(a){var
b=a.getCursor(!0),c=a.getCursor(!1),d=!Q(b,c);!d&&a.getLine(b.line).length==
b.ch?a.replaceRange("",b,{line:b.line+1,ch:0}):a.replaceRange("",b,d?c:{line:b.line})},deleteLine:function(a){var
b=a.getCursor().line;a.replaceRange("",{line:b,ch:0},{line:b})},undo:function(a){a.undo()},redo:function(a){a.redo()},goDocStart:function(a){a.setCursor(0,0,!0)},goDocEnd:function(a){a.setSelection({line:a.lineCount()-1},null,!0)},goLineStart:function(a){a.setCursor(a.getCursor().line,0,!0)},goLineStartSmart:function(a){var
b=a.getCursor(),c=a.getLine(b.line),d=Math.max(0,c.search(/\S/));a.setCursor(b.line,
b.ch<=d&&
b.ch?0:d,!0)},goLineEnd:function(a){a.setSelection({line:a.getCursor().line},null,!0)},goLineUp:function(a){a.moveV(-1,"line")},goLineDown:function(a){a.moveV(1,"line")},goPageUp:function(a){a.moveV(-1,"page")},goPageDown:function(a){a.moveV(1,"page")},goCharLeft:function(a){a.moveH(-1,"char")},goCharRight:function(a){a.moveH(1,"char")},goColumnLeft:function(a){a.moveH(-1,"column")},goColumnRight:function(a){a.moveH(1,"column")},goWordLeft:function(a){a.moveH(-1,"word")},goWordRight:function(a){a.moveH(1,"word")},delCharLeft:function(a){a.deleteH(-1,"char")},delCharRight:function(a){a.deleteH(1,"char")},delWordLeft:function(a){a.deleteH(-1,"word")},delWordRight:function(a){a.deleteH(1,"word")},indentAuto:function(a){a.indentSelection("smart")},indentMore:function(a){a.indentSelection("add")},indentLess:function(a){a.indentSelection("subtract")},insertTab:function(a){a.replaceSelection("\t","end")},transposeChars:function(a){var
b=a.getCursor(),c=a.getLine(b.line);
b.ch>0&&
b.ch<c.length-1&&a.replaceRange(c.charAt(
b.ch)+c.charAt(b.ch-1),{line:b.line,ch:b.ch-1},{line:b.line,ch:
b.ch+1})},newlineAndIndent:function(a){a.replaceSelection("\n","end"),a.indentLine(a.getCursor().line)},toggleOverwrite:function(a){a.toggleOverwrite()}},h=a.keyMap={};h.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharRight",Backspace:"delCharLeft",Tab:"indentMore","Shift-Tab":"indentLess",Enter:"newlineAndIndent",Insert:"toggleOverwrite"},h.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Alt-Up":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Down":"goDocEnd","Ctrl-Left":"goWordLeft","Ctrl-Right":"goWordRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delWordLeft","Ctrl-Delete":"delWordRight","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll",fallthrough:"basic"},h.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goWordLeft","Alt-Right":"goWordRight","Cmd-Left":"goLineStart","Cmd-Right":"goLineEnd","Alt-Backspace":"delWordLeft","Ctrl-Alt-Backspace":"delWordRight","Alt-Delete":"delWordRight","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll",fallthrough:["basic","emacsy"]},h["default"]=b?h.macDefault:h.pcDefault,h.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageUp","Shift-Ctrl-V":"goPageDown","Ctrl-D":"delCharRight","Ctrl-H":"delCharLeft","Alt-D":"delWordRight","Alt-Backspace":"delWordLeft","Ctrl-K":"killLine","Ctrl-T":"transposeChars"},a.fromTextArea=function(b,c){function
d(){b.value=h.getValue()}c||
(c={}),c.value=b.value,!c.tabindex&&b.tabindex&&(c.tabindex=b.tabindex);if(b.form){var
e=F(b.form,"submit",d,!0);if(typeof b.form.submit=="function"){var
f=b.form.submit;function
g(){d(),b.form.submit=f,b.form.submit(),b.form.submit=g}b.form.submit=g}}b.style.display="none";var
h=a(function(a){b.parentNode.insertBefore(a,b.nextSibling)},c);return
h.save=d,h.getTextArea=function(){return
b},h.toTextArea=function(){d(),b.parentNode.removeChild(h.getWrapperElement()),b.style.display="",b.form&&(e(),typeof
b.form.submit=="function"&&(b.form.submit=f))},h},a.copyState=k,a.startState=l,m.prototype={eol:function(){return
this.pos>=this.string.length},sol:function(){return
this.pos==0},peek:function(){return
this.string.charAt(this.pos)},next:function(){if(this.pos<this.string.length)return
this.string.charAt(this.pos++)},eat:function(a){var
b=this.string.charAt(this.pos);if(typeof a=="string")var c=b==a;else var
c=b&&(a.test?a.test(b):a(b));if(c)return++this.pos,b},eatWhile:function(a){var
b=this.pos;while(this.eat(a));return this.pos>b},eatSpace:function(){var
a=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return
this.pos>a},skipToEnd:function(){this.pos=this.string.length},skipTo:function(a){var
b=this.string.indexOf(a,this.pos);if(b>-1)return
this.pos=b,!0},backUp:function(a){this.pos-=a},column:function(){return
M(this.string,this.start,this.tabSize)},indentation:function(){return
M(this.string,null,this.tabSize)},match:function(a,b,c){if(typeof
a!="string"){var e=this.string.slice(this.pos).match(a);return
e&&b!==!1&&(this.pos+=e[0].length),e}function d(a){return
c?a.toLowerCase():a}if(d(this.string).indexOf(d(a),this.pos)==this.pos)return
b!==!1&&(this.pos+=a.length),!0},current:function(){return
this.string.slice(this.start,this.pos)}},a.StringStream=m,n.prototype={attach:function(a){this.set.push(a)},detach:function(a){var
b=W(this.set,a);b>-1&&this.set.splice(b,1)},split:function(a,b){if(
this.to>a|
|
this.to==null){var c=this.from<a||
this.from==null?null:this.from-a+b,d=
this.to==null?null:this.to-a+b;return
new n(c,d,this.style,this.set)}return null},dup:function(){return new
n(null,null,this.style,this.set)},clipTo:function(a,b,c,d,e){this.from!=null&&this.from>=b&&(this.from=Math.max(d,this.from)+e),
this.to!=null&&
this.to>b&&(
this.to=d<
this.to?this.to+e:b),a&&d>this.from&&(d<
this.to|
|
this.to==null)&&(this.from=null),c&&(b<
this.to||
this.to==null)&&(b>this.from||
this.from==null)&&(
this.to=null)},isDead:function(){return
this.from!=null&&
this.to!=null&&this.from>=
this.to},sameSet:function(a){return
this.set==a.set}},o.prototype={attach:function(a){this.line=a},detach:function(a){this.line==a&&(this.line=null)},split:function(a,b){if(a<this.from)return
this.from=
this.to=this.from-a+b,this},isDead:function(){return
this.from>
this.to},clipTo:function(a,b,c,d,e){(a||b<this.from)&&(c||
d>
this.to)?(this.from=0,
this.to=-1):this.from>b&&(this.from=
this.to=Math.max(d,this.from)+e)},sameSet:function(a){return!1},find:function(){return!this.line|
|!this.line.parent?null:{line:u(this.line),ch:this.from}},clear:function(){if(this.line){var
a=W(this.line.marked,this);a!=-1&&this.line.marked.splice(a,1),this.line=null}}},p.inheritMarks=function(a,b){var
c=new p(a),d=b&&b.marked;if(d)for(var
e=0;e<d.length;++e)if(d[e].to==null&&d[e].style){var f=c.marked||
(c.marked=[]),g=d[e],h=g.dup();f.push(h),h.attach(c)}return
c},p.prototype={replace:function(a,b,c){var
d=[],e=this.marked,f=b==null?this.text.length:b;q(0,a,this.styles,d),c&&d.push(c,null),q(f,this.text.length,this.styles,d),this.styles=d,this.text=this.text.slice(0,a)+c+this.text.slice(f),this.stateAfter=null;if(e){var
g=c.length-(f-a);for(var h=0,i=e[h];h<e.length;++h)i.clipTo(a==null,a||
0,b==null,f,g),i.isDead()&&(i.detach(this),e.splice(h--,1))}},split:function(a,b){var
c=[b,null],d=this.marked;q(a,this.text.length,this.styles,c);var e=new
p(b+this.text.slice(a),c);if(d)for(var f=0;f<d.length;++f){var
g=d[f],h=g.split(a,b.length);h&&(e.marked||
(e.marked=[]),e.marked.push(h),h.attach(e))}return
e},append:function(a){var
b=this.text.length,c=a.marked,d=this.marked;this.text+=a.text,q(0,a.text.length,a.styles,this.styles);if(d)for(var
e=0;e<d.length;++e)d[e].to==null&&(d[e].to=b);if(c&&c.length){d||
(this.marked=d=[]);f:for(var e=0;e<c.length;++e){var
g=c[e];if(!g.from)for(var h=0;h<d.length;++h){var
i=d[h];if(
i.to==b&&i.sameSet(g)){
i.to=
g.to==null?null:
g.to+b,i.isDead()&&(i.detach(this),c.splice(e--,1));continue
f}}d.push(g),g.attach(this),g.from+=b,
g.to!=null&&(
g.to+=b)}}},fixMarkEnds:function(a){var
b=this.marked,c=a.marked;if(!b)return;for(var d=0;d<b.length;++d){var
e=b[d],f=
e.to==null;if(f&&c)for(var
g=0;g<c.length;++g)if(c[g].sameSet(e)){f=!1;break}f&&(
e.to=this.text.length)}},fixMarkStarts:function(){var
a=this.marked;if(!a)return;for(var
b=0;b<a.length;++b)a[b].from==null&&(a[b].from=0)},addMark:function(a){a.attach(this),this.marked==null&&(this.marked=[]),this.marked.push(a),this.marked.sort(function(a,b){return(a.from|
|0)-(b.from||0)})},highlight:function(a,b,c){var d=new
m(this.text,c),e=this.styles,f=0,g=!1,h=e[0],i;this.text==""&&a.blankLine&&a.blankLine(b);while(!d.eol()){var
j=a.token(d,b),k=this.text.slice(d.start,d.pos);d.start=d.pos,f&&e[f-1]==j?e[f-2]+=k:k&&(!g&&(e[f+1]!=j|
|
f&&e[f-2]!=i)&&(g=!0),e[f++]=k,e[f++]=j,i=h,h=e[f]);if(d.pos>5e3){e[f++]=this.text.slice(d.pos),e[f++]=null;break}}return
e.length!=f&&(e.length=f,g=!0),f&&e[f-2]!=i&&(g=!0),g||
(e.length<5&&this.text.length<10?null:!1)},getTokenAt:function(a,b,c){var
d=this.text,e=new m(d);while(e.pos<c&&!e.eol()){e.start=e.pos;var
f=a.token(e,b)}return{start:e.start,end:e.pos,string:e.current(),className:f|
|null,state:b}},indentation:function(a){return
M(this.text,null,a)},getHTML:function(a,b,c,d,e){function
h(a,b){if(!a)return;g&&J&&a.charAt(0)==" "&&(a=" "+a.slice(1)),g=!1,b?f.push('<span
class="',b,'">',U(a).replace(/\t/g,d),"</span>"):f.push(U(a).replace(/\t/g,d))}var
f=[],g=!0;c&&f.push(this.className?'<pre
class="'+this.className+'">':"<pre>");var
i=this.styles,j=this.text,k=this.marked;a==b&&(a=null);var
l=j.length;e!=null&&(l=Math.min(e,l));if(!j&&e==null)h(" ",a!=null&&b==null?"CodeMirror-selected":null);else
if(!k&&a==null)for(var m=0,n=0;n<l;m+=2){var
o=i[m],p=i[m+1],q=o.length;n+q>l&&(o=o.slice(0,l-n)),n+=q,h(o,p&&"cm-"+p)}else{var
r=0,m=0,s="",p,t=0,u=-1,v=null;function
w(){k&&(u+=1,v=u<k.length?k[u]:null)}w();while(r<l){var
x=l,y="";if(a!=null)if(a>r)x=a;else if(b==null||b>r)y="
CodeMirror-selected",b!=null&&(x=Math.min(x,b));while(v&&
v.to!=null&&
v.to<=r)w();v&&(v.from>r?x=Math.min(x,v.from):(y+=" "+v.style,
v.to!=null&&(x=Math.min(x,
v.to))));for(;;){var
z=r+s.length,A=p;y&&(A=p?p+y:y),h(z>x?s.slice(0,x-r):s,A);if(z<x)r=z,s=i[m++],p="cm-"+i[m++];else{s=s.slice(x-r),r=x;break}}}a!=null&&b==null&&h(" ","CodeMirror-selected")}return
c&&f.push("</pre>"),f.join("")},cleanUp:function(){this.parent=null;if(this.marked)for(var
a=0,b=this.marked.length;a<b;++a)this.marked[a].detach(this)}},r.prototype={chunkSize:function(){return
this.lines.length},remove:function(a,b,c){for(var d=a,e=a+b;d<e;++d){var
f=this.lines[d];this.height-=f.height,f.cleanUp();if(f.handlers)for(var
g=0;g<f.handlers.length;++g)c.push(f.handlers[g])}this.lines.splice(a,b)},collapse:function(a){a.splice.apply(a,[a.length,0].concat(this.lines))},insertHeight:function(a,b,c){this.height+=c,this.lines.splice.apply(this.lines,[a,0].concat(b));for(var
d=0,e=b.length;d<e;++d)b[d].parent=this},iterN:function(a,b,c){for(var
d=a+b;a<d;++a)if(c(this.lines[a]))return!0}},s.prototype={chunkSize:function(){return
this.size},remove:function(a,b,c){this.size-=b;for(var
d=0;d<this.children.length;++d){var
e=this.children[d],f=e.chunkSize();if(a<f){var
g=Math.min(b,f-a),h=e.height;e.remove(a,g,c),this.height-=h-e.height,f==g&&(this.children.splice(d--,1),e.parent=null);if((b-=g)==0)break;a=0}else
a-=f}if(this.size-b<25){var i=[];this.collapse(i),this.children=[new
r(i)]}},collapse:function(a){for(var
b=0,c=this.children.length;b<c;++b)this.children[b].collapse(a)},insert:function(a,b){var
c=0;for(var
d=0,e=b.length;d<e;++d)c+=b[d].height;this.insertHeight(a,b,c)},insertHeight:function(a,b,c){this.size+=b.length,this.height+=c;for(var
d=0,e=this.children.length;d<e;++d){var
f=this.children[d],g=f.chunkSize();if(a>g)a-=g;else{f.insertHeight(a,b,c);if(f.lines&&f.lines.length>50){while(f.lines.length>50){var
h=f.lines.splice(f.lines.length-25,25),i=new
r(h);f.height-=i.height,this.children.splice(d+1,0,i),i.parent=this}this.maybeSpill()}break}}},maybeSpill:function(){if(this.children.length<=10)return;var
a=this;do{var b=a.children.splice(a.children.length-5,5),c=new
s(b);if(!a.parent){var d=new
s(a.children);d.parent=a,a.children=[d,c],a=d}else{a.size-=c.size,a.height-=c.height;var
e=W(a.parent.children,a);a.parent.children.splice(e+1,0,c)}c.parent=a.parent}while(a.children.length>10);a.parent.maybeSpill()},iter:function(a,b,c){this.iterN(a,b-a,c)},iterN:function(a,b,c){for(var
d=0,e=this.children.length;d<e;++d){var
f=this.children[d],g=f.chunkSize();if(a<g){var
h=Math.min(b,g-a);if(f.iterN(a,h,c))return!0;if((b-=h)==0)break;a=0}else
a-=g}}},x.prototype={addChange:function(a,b,c){this.undone.length=0;var
d=+(new Date),e=this.done[this.done.length-1];if(d-this.time>400||!e||
e.start>a+b||
e.start+e.added<a-e.added+e.old.length)this.done.push({start:a,added:b,old:c});else{var
f=0;if(a<e.start){for(var
g=e.start-a-1;g>=0;--g)e.old.unshift(c[g]);e.added+=e.start-a,e.start=a}else
e.start<a&&(f=a-e.start,b+=f);for(var
g=e.added-f,h=c.length;g<h;++g)e.old.push(c[g]);e.added<b&&(e.added=b)}this.time=d}},a.e_stop=C,a.e_preventDefault=A,a.e_stopPropagation=B,a.connect=F,G.prototype={set:function(a,b){clearTimeout(
this.id),
this.id=setTimeout(b,a)}};var
H=function(){if(/MSIE [1-8]\b/.test(navigator.userAgent))return!1;var
a=document.createElement("div");return"draggable"in
a}(),I=/gecko\/\d{7}/i.test(navigator.userAgent),J=/MSIE
\d/.test(navigator.userAgent),K=/WebKit\//.test(navigator.userAgent),L="\n";(function(){var
a=document.createElement("textarea");a.value="foo\nbar",a.value.indexOf("\r")>-1&&(L="\r\n")})(),document.documentElement.getBoundingClientRect!=null&&(O=function(a,b){try{var
c=a.getBoundingClientRect();c={top:c.top,left:c.left}}catch(d){c={top:0,left:0}}if(!b)if(window.pageYOffset==null){var
e=document.documentElement||
document.body.parentNode;e.scrollTop==null&&(e=document.body),c.top+=e.scrollTop,c.left+=e.scrollLeft}else
c.top+=window.pageYOffset,c.left+=window.pageXOffset;return c});var
T=document.createElement("pre");U("a")=="\na"?U=function(a){return
T.textContent=a,T.innerHTML.slice(1)}:U("\t")!="\t"&&(U=function(a){return
T.innerHTML="",T.appendChild(document.createTextNode(a)),T.innerHTML}),a.htmlEscape=U;var
Y="\n\nb".split(/\n/).length!=3?function(a){var
b=0,c,d=[];while((c=a.indexOf("\n",b))>-1)d.push(a.slice(b,a.charAt(c-1)=="\r"?c-1:c)),b=c+1;return
d.push(a.slice(b)),d}:function(a){return
a.split(/\r?\n/)};a.splitLines=Y;var
Z=window.getSelection?function(a){try{return
a.selectionStart!=a.selectionEnd}catch(b){return!1}}:function(a){try{var
b=a.ownerDocument.selection.createRange()}catch(c){}return!b||
b.parentElement()!=a?!1:b.compareEndPoints("StartToEnd",b)!=0};a.defineMode("null",function(){return{token:function(a){a.skipToEnd()}}}),a.defineMIME("text/plain","null");var
$={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",91:"Mod",92:"Mod",93:"Mod",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63276:"PageUp",63277:"PageDown",63275:"End",63273:"Home",63234:"Left",63232:"Up",63235:"Right",63233:"Down",63302:"Insert",63272:"Delete"};return
a.keyNames=$,function(){for(var a=0;a<10;a++)$[a+48]=String(a);for(var
a=65;a<=90;a++)$[a]=String.fromCharCode(a);for(var
a=1;a<=12;a++)$[a+111]=$[a+63235]="F"+a}(),a}();define("cm",function(){}),CodeMirror.defineMode("css",function(a){function
d(a,b){return c=b,a}function e(a,b){var c=a.next();if(c=="@")return
a.eatWhile(/[\w\\\-]/),d("meta",a.current());if(c=="/"&&a.eat("*"))return
b.tokenize=f,f(a,b);if(c=="<"&&a.eat("!"))return
b.tokenize=g,g(a,b);if(c=="=")d(null,"compare");else return c!="~"&&c!="|"|
|!a.eat("=")?c=='"'||
c=="'"?(b.tokenize=h(c),b.tokenize(a,b)):c=="#"?(a.eatWhile(/[\w\\\-]/),d("atom","hash")):c=="!"?(a.match(/^\s*\w*/),d("keyword","important")):/\d/.test(c)?(a.eatWhile(/[\w.%]/),d("number","unit")):/[,.+>*\/]/.test(c)?d(null,"select-op"):/[;{}:\[\]]/.test(c)?d(null,c):(a.eatWhile(/[\w\\\-]/),d("variable","variable")):d(null,"compare")}function
f(a,b){var
c=!1,f;while((f=a.next())!=null){if(c&&f=="/"){b.tokenize=e;break}c=f=="*"}return
d("comment","comment")}function g(a,b){var
c=0,f;while((f=a.next())!=null)if(c<2||
f!=">")c=f=="-"?c+1:0;else{b.tokenize=e;break}return
d("comment","comment")}function h(a){return function(b,c){var
f=!1,g;while((g=b.next())!=null){if(g==a&&!f)break;f=!f&&g=="\\"}return f||
(c.tokenize=e),d("string","string")}}var
b=a.indentUnit,c;return{startState:function(a){return{tokenize:e,baseIndent:a|
|0,stack:[]}},token:function(a,b){if(a.eatSpace())return null;var
d=b.tokenize(a,b),e=b.stack[b.stack.length-1];if(c=="hash"&&e=="rule")d="atom";else
if(d=="variable")if(e=="rule")d="number";else if(!e||
e=="@media{")d="tag";return
e=="rule"&&/^[\{\};]$/.test(c)&&b.stack.pop(),c=="{"?e=="@media"?b.stack[b.stack.length-1]="@media{":b.stack.push("{"):c=="}"?b.stack.pop():c=="@media"?b.stack.push("@media"):e=="{"&&c!="comment"&&b.stack.push("rule"),d},indent:function(a,c){var
d=a.stack.length;return/^\}/.test(c)&&(d-=a.stack[a.stack.length-1]=="rule"?2:1),a.baseIndent+d*b},electricChars:"}"}}),CodeMirror.defineMIME("text/css","css"),define("cm-css",function(){}),CodeMirror.defineMode("javascript",function(a,b){function
g(a,b,c){return b.tokenize=c,c(a,b)}function h(a,b){var
c=!1,d;while((d=a.next())!=null){if(d==b&&!c)return!1;c=!c&&d=="\\"}return
c}function k(a,b,c){return i=a,j=c,b}function l(a,b){var
c=a.next();if(c=='"'||c=="'")return
g(a,b,m(c));if(/[\[\]{}\(\),;\:\.]/.test(c))return
k(c);if(c=="0"&&a.eat(/x/i))return
a.eatWhile(/[\da-f]/i),k("number","number");if(/\d/.test(c))return
a.match(/^\d*(?:\.\d*)?(?:[eE][+\-]?\d+)?/),k("number","number");if(c=="/")return
a.eat("*")?g(a,b,n):a.eat("/")?(a.skipToEnd(),k("comment","comment")):b.reAllowed?(h(a,"/"),a.eatWhile(/[gimy]/),k("regexp","string")):(a.eatWhile(f),k("operator",null,a.current()));if(c=="#")return
a.skipToEnd(),k("error","error");if(f.test(c))return
a.eatWhile(f),k("operator",null,a.current());a.eatWhile(/[\w\$_]/);var
d=a.current(),i=e.propertyIsEnumerable(d)&&e[d];return
i&&b.kwAllowed?k(i.type,i.style,d):k("variable","variable",d)}function
m(a){return function(b,c){return h(b,a)||
(c.tokenize=l),k("string","string")}}function n(a,b){var
c=!1,d;while(d=a.next()){if(d=="/"&&c){b.tokenize=l;break}c=d=="*"}return
k("comment","comment")}function
p(a,b,c,d,e,f){this.indented=a,this.column=b,this.type=c,this.prev=e,
this.info=f,d!=null&&(this.align=d)}function
q(a,b){for(var c=a.localVars;c;c=c.next)if(
c.name==b)return!0}function
r(a,b,c,e,f){var
g=a.cc;s.state=a,s.stream=f,s.marked=null,s.cc=g,a.lexical.hasOwnProperty("align")|
|(a.lexical.align=!0);for(;;){var
h=g.length?g.pop():d?D:C;if(h(c,e)){while(g.length&&g[g.length-1].lex)g.pop()();return
s.marked?s.marked:c=="variable"&&q(a,e)?"variable-2":b}}}function
t(){for(var a=arguments.length-1;a>=0;a--)s.cc.push(arguments[a])}function
u(){return t.apply(null,arguments),!0}function v(a){var
b=s.state;if(b.context){s.marked="def";for(var
c=b.localVars;c;c=c.next)if(
c.name==a)return;b.localVars={name:a,next:b.localVars}}}function
x(){s.state.context||
(s.state.localVars=w),s.state.context={prev:s.state.context,vars:s.state.localVars}}function
y(){s.state.localVars=s.state.context.vars,s.state.context=s.state.context.prev}function
z(a,b){var c=function(){var c=s.state;c.lexical=new
p(c.indented,s.stream.column(),a,null,c.lexical,b)};return
c.lex=!0,c}function A(){var
a=s.state;a.lexical.prev&&(a.lexical.type==")"&&(a.indented=a.lexical.indented),a.lexical=a.lexical.prev)}function
B(a){return function b(b){return
b==a?u():a==";"?t():u(arguments.callee)}}function C(a){return
a=="var"?u(z("vardef"),L,B(";"),A):a=="keyword
a"?u(z("form"),D,C,A):a=="keyword
b"?u(z("form"),C,A):a=="{"?u(z("}"),K,A):a==";"?u():a=="function"?u(R):a=="for"?u(z("form"),B("("),z(")"),N,B(")"),A,C,A):a=="variable"?u(z("stat"),G):a=="switch"?u(z("form"),D,z("}","switch"),B("{"),K,A,A):a=="case"?u(D,B(":")):a=="default"?u(B(":")):a=="catch"?u(z("form"),x,B("("),S,B(")"),C,A,y):t(z("stat"),D,B(";"),A)}function
D(a){return o.hasOwnProperty(a)?u(F):a=="function"?u(R):a=="keyword
c"?u(E):a=="("?u(z(")"),D,B(")"),A,F):a=="operator"?u(D):a=="["?u(z("]"),J(D,"]"),A,F):a=="{"?u(z("}"),J(I,"}"),A,F):u()}function
E(a){return a.match(/[;\}\)\],]/)?t():t(D)}function
F(a,b){if(a=="operator"&&/\+\+|--/.test(b))return
u(F);if(a=="operator")return u(D);if(a==";")return;if(a=="(")return
u(z(")"),J(D,")"),A,F);if(a==".")return u(H,F);if(a=="[")return
u(z("]"),D,B("]"),A,F)}function G(a){return
a==":"?u(A,C):t(F,B(";"),A)}function H(a){if(a=="variable")return
s.marked="property",u()}function
I(a){a=="variable"&&(s.marked="property");if(o.hasOwnProperty(a))return
u(B(":"),D)}function J(a,b){function c(d){return
d==","?u(a,c):d==b?u():u(B(b))}return function d(d){return
d==b?u():t(a,c)}}function K(a){return a=="}"?u():t(C,K)}function
L(a,b){return a=="variable"?(v(b),u(M)):u()}function
M(a,b){if(b=="=")return u(D,M);if(a==",")return u(L)}function N(a){return
a=="var"?u(L,P):a==";"?t(P):a=="variable"?u(O):t(P)}function O(a,b){return
b=="in"?u(D):u(F,P)}function P(a,b){return
a==";"?u(Q):b=="in"?u(D):u(D,B(";"),Q)}function Q(a){a!=")"&&u(D)}function
R(a,b){if(a=="variable")return v(b),u(R);if(a=="(")return
u(z(")"),x,J(S,")"),A,C,y)}function S(a,b){if(a=="variable")return
v(b),u()}var c=a.indentUnit,d=b.json,e=function(){function
a(a){return{type:a,style:"keyword"}}var b=a("keyword a"),c=a("keyword
b"),d=a("keyword
c"),e=a("operator"),f={type:"atom",style:"atom"};return{"if":b,"while":b,"with":b,"else":c,"do":c,"try":c,"finally":c,"return":d,"break":d,"continue":d,"new":d,"delete":d,"throw":d,"var":a("var"),"const":a("var"),let:a("var"),"function":a("function"),"catch":a("catch"),"for":a("for"),"switch":a("switch"),"case":a("case"),"default":a("default"),"in":e,"typeof":e,"instanceof":e,"true":f,"false":f,"null":f,"undefined":f,NaN:f,Infinity:f}}(),f=/[+\-*&%=<>!?|
]/,i,j,o={atom:!0,number:!0,variable:!0,string:!0,regexp:!0},s={state:null,column:null,marked:null,cc:null},w={name:"this",next:{name:"arguments"}};return
A.lex=!0,{startState:function(a){return{tokenize:l,reAllowed:!0,kwAllowed:!0,cc:[],lexical:new
p((a||
0)-c,0,"block",!1),localVars:null,context:null,indented:0}},token:function(a,b){a.sol()&&(b.lexical.hasOwnProperty("align")|
|(b.lexical.align=!1),b.indented=a.indentation());if(a.eatSpace())return
null;var c=b.tokenize(a,b);return i=="comment"?c:(b.reAllowed=i=="operator"|
|i=="keyword c"||
i.match(/^[\[{}\(,;:]$/),b.kwAllowed=i!=".",r(b,c,i,j,a))},indent:function(a,b){if(a.tokenize!=l)return
0;var d=b&&b.charAt(0),e=a.lexical,f=e.type,g=d==f;return
f=="vardef"?e.indented+4:f=="form"&&d=="{"?e.indented:f=="stat"||
f=="form"?e.indented+c:
e.info=="switch"&&!g?e.indented+(/^(?:case|
default)\b/.test(b)?c:2*c):e.align?e.column+(g?0:1):e.indented+(g?0:c)},electricChars:":{}"}}),CodeMirror.defineMIME("text/javascript","javascript"),CodeMirror.defineMIME("application/json",{name:"javascript",json:!0}),define("cm-js",function(){}),CodeMirror.defineMode("xml",function(a,b){function
h(a,b){function c(c){return b.tokenize=c,c(a,b)}var
d=a.next();if(d=="<"){if(a.eat("!"))return
a.eat("[")?a.match("CDATA[")?c(k("atom","]]>")):null:a.match("--")?c(k("comment","-->")):a.match("DOCTYPE",!0,!0)?(a.eatWhile(/[\w\._\-]/),c(l(1))):null;if(a.eat("?"))return
a.eatWhile(/[\w\._\-]/),b.tokenize=k("meta","?>"),"meta";g=a.eat("/")?"closeTag":"openTag",a.eatSpace(),f="";var
e;while(e=a.eat(/[^\s\u00a0=<>\"\'\/?]/))f+=e;return
b.tokenize=i,"tag"}return
d=="&"?(a.eatWhile(/[^;]/),a.eat(";"),"atom"):(a.eatWhile(/[^&<]/),null)}function
i(a,b){var c=a.next();return c==">"||
c=="/"&&a.eat(">")?(b.tokenize=h,g=c==">"?"endTag":"selfcloseTag","tag"):c=="="?(g="equals",null):/[\'\"]/.test(c)?(b.tokenize=j(c),b.tokenize(a,b)):(a.eatWhile(/[^\s\u00a0=<>\"\'\/?]/),"word")}function
j(a){return
function(b,c){while(!b.eol())if(b.next()==a){c.tokenize=i;break}return"string"}}function
k(a,b){return
function(c,d){while(!c.eol()){if(c.match(b)){d.tokenize=h;break}c.next()}return
a}}function l(a){return function(b,c){var
d;while((d=b.next())!=null){if(d=="<")return
c.tokenize=l(a+1),c.tokenize(b,c);if(d==">"){if(a==1){c.tokenize=h;break}return
c.tokenize=l(a-1),c.tokenize(b,c)}}return"meta"}}function o(){for(var
a=arguments.length-1;a>=0;a--)m.cc.push(arguments[a])}function p(){return
o.apply(null,arguments),!0}function q(a,b){var
c=d.doNotIndent.hasOwnProperty(a)||
m.context&&m.context.noIndent;m.context={prev:m.context,tagName:a,indent:m.indented,startOfLine:b,noIndent:c}}function
r(){m.context&&(m.context=m.context.prev)}function
s(a){if(a=="openTag")return
m.tagName=f,p(v,t(m.startOfLine));if(a=="closeTag"){var b=!1;return
m.context?b=m.context.tagName!=f:b=!0,b&&(n="error"),p(u(b))}return
p()}function t(a){return function(b){return b=="selfcloseTag"||
b=="endTag"&&d.autoSelfClosers.hasOwnProperty(m.tagName.toLowerCase())?p():b=="endTag"?(q(m.tagName,a),p()):p()}}function
u(a){return function(b){return
a&&(n="error"),b=="endTag"?(r(),p()):(n="error",p(arguments.callee))}}function
v(a){return
a=="word"?(n="attribute",p(v)):a=="equals"?p(w,v):a=="string"?(n="error",p(v)):o()}function
w(a){return
a=="word"&&d.allowUnquoted?(n="string",p()):a=="string"?p(x):o()}function
x(a){return a=="string"?p(x):o()}var
c=a.indentUnit,d=b.htmlMode?{autoSelfClosers:{br:!0,img:!0,hr:!0,link:!0,input:!0,meta:!0,col:!0,frame:!0,base:!0,area:!0},doNotIndent:{pre:!0},allowUnquoted:!0}:{autoSelfClosers:{},doNotIndent:{},allowUnquoted:!1},e=b.alignCDATA,f,g,m,n;return{startState:function(){return{tokenize:h,cc:[],indented:0,startOfLine:!0,tagName:null,context:null}},token:function(a,b){a.sol()&&(b.startOfLine=!0,b.indented=a.indentation());if(a.eatSpace())return
null;n=g=f=null;var c=b.tokenize(a,b);b.type=g;if((c||
g)&&c!="comment"){m=b;for(;;){var d=b.cc.pop()||s;if(d(g||c))break}}return
b.startOfLine=!1,n||c},indent:function(a,b,d){var
f=a.context;if(a.tokenize!=i&&a.tokenize!=h||f&&f.noIndent)return
d?d.match(/^(\s*)/)[0].length:0;if(e&&/<!\[CDATA\[/.test(b))return
0;f&&/^<\//.test(b)&&(f=f.prev);while(f&&!f.startOfLine)f=f.prev;return
f?f.indent+c:0},compareStates:function(a,b){if(a.indented!=b.indented||
a.tokenize!=b.tokenize)return!1;for(var
c=a.context,d=b.context;;c=c.prev,d=d.prev){if(!c||!d)return
c==d;if(c.tagName!=d.tagName)return!1}},electricChars:"/"}}),CodeMirror.defineMIME("application/xml","xml"),CodeMirror.defineMIME("text/html",{name:"xml",htmlMode:!0}),define("cm-xml",function(){}),CodeMirror.defineMode("htmlmixed",function(a,b){function
f(a,b){var f=c.token(a,b.htmlState);return
f=="tag"&&a.current()==">"&&b.htmlState.context&&(/^script$/i.test(b.htmlState.context.tagName)?(b.token=h,b.localState=d.startState(c.indent(b.htmlState,"")),b.mode="javascript"):/^style$/i.test(b.htmlState.context.tagName)&&(b.token=i,b.localState=e.startState(c.indent(b.htmlState,"")),b.mode="css")),f}function
g(a,b,c){var d=a.current(),e=d.search(b);return
e>-1&&a.backUp(d.length-e),c}function h(a,b){return
a.match(/^<\/\s*script\s*>/i,!1)?(b.token=f,b.curState=null,b.mode="html",f(a,b)):g(a,/<\/\s*script\s*>/,d.token(a,b.localState))}function
i(a,b){return
a.match(/^<\/\s*style\s*>/i,!1)?(b.token=f,b.localState=null,b.mode="html",f(a,b)):g(a,/<\/\s*style\s*>/,e.token(a,b.localState))}var
c=CodeMirror.getMode(a,{name:"xml",htmlMode:!0}),d=CodeMirror.getMode(a,"javascript"),e=CodeMirror.getMode(a,"css");return{startState:function(){var
a=c.startState();return{token:f,localState:null,mode:"html",htmlState:a}},copyState:function(a){if(a.localState)var
b=CodeMirror.copyState(a.token==i?e:d,a.localState);return{token:a.token,localState:b,mode:a.mode,htmlState:CodeMirror.copyState(c,a.htmlState)}},token:function(a,b){return
b.token(a,b)},indent:function(a,b){return a.token==f||
/^\s*<\//.test(b)?c.indent(a.htmlState,b):a.token==h?d.indent(a.localState,b):e.indent(a.localState,b)},compareStates:function(a,b){return
c.compareStates(a.htmlState,b.htmlState)},electricChars:"/{}:"}}),CodeMirror.defineMIME("text/html","htmlmixed"),define("cm-html",function(){}),define("view/StructureView",["text!template/structure.html","order!cm","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a){function
i(){q(),v(),F()}function j(){t(!0)}function k(){t(!1)}function
l(){b!="null"&&e==""&&(e=setInterval(n,Vosao.AUTOSAVE_TIMEOUT*1e3))}function
m(){e!=""&&(clearInterval(e),e="")}function n(){t(!0)}function o(){return
$("#autosave:checked").length>0}function p(){o()?l():m()}function
q(){d=b!="",d||
(c=null,r()),Vosao.jsonrpc.structureService.getById(function(a){c=a,r()},b)}function
r(){c!=null?($("#title").val(c.title),$("#xmlContent").val(c.content)):($("#title").val(""),$("#xmlContent").val("")),h=CodeMirror.fromTextArea(document.getElementById("xmlContent"),{lineNumbers:!0,theme:"eclipse",mode:"xml"}),h.focus(),$(h.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid silver"),h.refresh()}function
s(){location.href="#structures"}function t(a){h.save();var
c=Vosao.javaMap({id:b,title:$("#title").val(),content:$("#xmlContent").val()});Vosao.jsonrpc.structureService.save(function(c){c.result=="success"?(Vosao.info(messages("structure.success_save")),a?d|
|
(b=c.message,q(),F()):location.href="#structures"):Vosao.showServiceMessages(c)},c)}function
u(){var
a=$("#fieldName").val(),b=$("#fieldTitle").val();a==""&&$("#fieldName").val(Vosao.nameFromTitle(b))}function
v(){d&&Vosao.jsonrpc.structureService.getFields(function(a){f=a.list,x()},b)}function
w(a){return
a=="TEXT"?messages("text"):a=="TEXTAREA"?messages("text_area"):a=="RESOURCE"?messages("resource_link"):a=="DATE"?messages("date"):"Unknown"}function
x(){var a='<table
class="form-table"><tr><th>'+messages("title")+"</th><th>"+messages("structure.tag_name")+"</th><th>"+messages("type")+"</th><th></th></tr>";$.each(f,function(b,c){a+="<tr><td>"+c.title+"</td>"+"<td>"+
c.name+"</td>"+"<td>"+w(c.type)+"</td>"+'<td><a
href="#" onclick="Vosao.app.structureView.onFieldRemove('+b+')"><img
src="/static/images/02_x.png"/></a> '+'<a href="#"
onclick="Vosao.app.structureView.onFieldUp('+b+')"><img
src="/static/images/02_up.png"/></a> '+'<a href="#"
onclick="Vosao.app.structureView.onFieldDown('+b+')"><img
src="/static/images/02_down.png"/></a> '+"</td></tr>"}),$("#fields").html(a+"</table>"),$("#fields
tr:even").addClass("even")}function y(a){var b=!0;return
a.name==""?(Vosao.error(messages("structure.field_tag_name_empty")),b=!1):$(f,function(c,d){
d.name==
a.name&&(Vosao.error(messages("structure.field_exists")),b=!1)}),Vosao.isValidIdentifier(
a.name)|
|
(Vosao.error(messages("structure.field_tag_name")+" "+
a.name+" "+messages("structure.must_valid_identifier")),b=!1),a.title==""&&(Vosao.error(messages("structure.field_title_empty")),b=!1),b}function
z(){$("#fieldTitle").focus();var
a={title:Vosao.strip($("#fieldTitle").val()),name:Vosao.strip($("#fieldName").val()),type:$("#fieldType").val()};y(a)&&(f.push(a),x(),$("#fieldTitle").val("").focus(),$("#fieldName").val(""),Vosao.info(messages("structure.field_success_add")))}function
A(a,b){var c=f[a];f[a]=f[b],f[b]=c}function B(){var
a="<structure>\n";return $.each(f,function(b,c){a+=" <field>\n
<title>"+c.title+"</title>\n"+" <name>"+
c.name+"</name>\n"+"
<type>"+c.type+"</type>\n </field>\n"}),a+"</structure>"}function
C(){E(!1)}function D(){E(!0)}function E(a){h.setValue(B()),t(a)}function
F(){d&&Vosao.jsonrpc.structureTemplateService.selectByStructure(function(a){g=a.list,G()},b)}function
G(){var a='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th>"+"<th>"+messages("name")+"</th>"+"<th>"+messages("type")+"</th></tr>";$.each(g,function(b,c){a+='<tr><td><input
type="checkbox" value="'+
c.id+'"></td>'+'<td><a
href="#structureTemplate/'+
c.id+'">'+c.title+"</a></td>"+"<td>"+
c.name+"</td>"+"<td>"+H(c.typeString)+"</td></tr>"}),$("#templates").html(a+"</table>"),$("#templates
tr:even").addClass("even")}function H(a){return
a=="VELOCITY"?"Velocity":a=="XSLT"?"XSLT":"Undefined"}function
I(){location.href="#addStructureTemplate/"+b}function J(){var a=new
Array;$("#templates
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.structureTemplateService.remove(function(a){Vosao.showServiceMessages(a),F()},Vosao.javaList(a))}function
K(a,b){b.index==1?(o()&&l(),h&&(h.focus(),$(h.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid silver"),h.refresh())):m()}console.log("Loading
StructureView.js");var b="",c="",d=!1,e="",f=[],g=[],h=null;return
Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css"],el:$("#content"),render:function(){Vosao.addCSSFiles(this.css),this.el.html(_.template(a,{messages:messages})),i(),Vosao.selectTabFromQueryParam($("#tabs").tabs({show:K})),$("#autosave").change(p),$("#saveContinueXMLButton").click(j),$("#saveXMLButton").click(k),$("#cancelXMLButton").click(s),$("#saveContinueButton").click(D),$("#saveButton").click(C),$("#cancelButton").click(s),$("#addField").click(z),$("#addTemplateButton").click(I),$("#deleteTemplateButton").click(J),$("#fieldTitle").change(u)},setId:function(a){b=a,d=b!="",d|
|
(c="",f=[],g=[])},remove:function(){this.el.html(""),Vosao.removeCSSFiles(this.css)},onFieldUp:function(a){if(a==0)return;A(a,a-1),x()},onFieldDown:function(a){if(a+1<f.length)A(a,a+1),x();else
return},onFieldRemove:function(a){confirm(messages("are_you_sure"))&&(f.splice(a,1),x())}})}),define("view/StructureTemplateView",["text!template/structureTemplate.html","order!cm","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a){function
i(){if(e)return;var
a=$("#name").val(),b=$("#title").val();a==""&&$("#name").val(Vosao.urlFromTitle(b))}function
j(){t(!0)}function k(){t(!1)}function
l(){b!="null"&&f==""&&(f=setInterval(n,Vosao.AUTOSAVE_TIMEOUT*1e3))}function
m(){f!=""&&(clearInterval(f),f="")}function n(){t(!0)}function
o(){$("#autosave:checked").length>0?l():m()}function
p(){e=b!="",e?Vosao.jsonrpc.structureTemplateService.getById(function(a){d=a,e&&(c=d.structureId),q()},b):(d=null,q())}function
q(){d!=null?($("#name").val(
d.name),$("#title").val(d.title),$("#vcontent").val(d.content),$("#headContent").val(d.headContent)):($("#name").val(""),$("#title").val(""),$("#vcontent").val(""),$("#headContent").val("")),g?g.refresh():g=r("vcontent"),h?h.refresh():h=r("headContent")}function
r(a){var
b=CodeMirror.fromTextArea(document.getElementById(a),{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"});return
$(b.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid silver"),b}function s(){location.href="#structure/"+c}function
t(a){g&&g.save(),h&&h.save();var
d=Vosao.javaMap({id:b,name:Vosao.strip($("#name").val()),title:Vosao.strip($("#title").val()),type:"VELOCITY",structureId:String(c),content:$("#vcontent").val(),headContent:$("#headContent").val()});Vosao.jsonrpc.structureTemplateService.save(function(c){c.result=="success"?(Vosao.info(messages("structureTemplate.success_save")),a?e|
|
(b=c.message,p()):s()):Vosao.showServiceMessages(c)},d)}console.log("Loading
StructureTemplateView.js");var
b="",c="",d="",e=b!="",f="",g=null,h=null;return
Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css"],el:$("#content"),render:function(){Vosao.addCSSFiles(this.css),g=null,h=null,this.el.html(_.template(a,{messages:messages})),p(),$("#tabs").tabs(),$("#autosave").change(o),$("#saveContinueButton").click(j),$("#saveButton").click(k),$("#cancelButton").click(s),$("#title").change(i)},remove:function(){this.el.html(""),Vosao.removeCSSFiles(this.css)},create:function(a){b="",c=a,d="",e=b!=""},edit:function(a){b=a,c="",d="",e=b!=""}})}),define("view/TemplateView",["text!template/template.html","jquery.treeview","order!cm","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a){function
g(){n()}function h(){q(!0)}function i(){q(!1)}function
j(){b!="null"&&e==""&&(e=setInterval(l,Vosao.AUTOSAVE_TIMEOUT*1e3))}function
k(){e!=""&&(clearInterval(e),e="")}function l(){f&&f.save();var
a=$("#tcontent").val();Vosao.jsonrpc.templateService.updateContent(function(a){if(a.result=="success"){var
b=new Date;Vosao.info(a.message+" "+b)}else
Vosao.error(a.message)},b,a)}function
m(){$("#autosave:checked").length>0?j():k()}function n(){d=b!="",d||
(c=null,o()),Vosao.jsonrpc.templateService.getTemplate(function(a){c=a,o()},b)}function
o(){c!=null?($("#title").val(c.title),$("#url").val(c.url),$("#tcontent").val(c.content)):($("#title").val(""),$("#url").val(""),$("#tcontent").val("")),f=CodeMirror.fromTextArea(document.getElementById("tcontent"),{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"}),f.focus(),$(f.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid silver"),f.refresh()}function p(){location.href="#templates"}function
q(a){f&&f.save();var
c=Vosao.javaMap({id:b,title:$("#title").val(),url:$("#url").val(),content:$("#tcontent").val()});Vosao.jsonrpc.templateService.saveTemplate(function(c){c.result=="success"?(Vosao.info(messages("template.success_save")),a?d|
|
(b=c.message,n()):location.href="#templates"):Vosao.showServiceMessages(c)},c)}function
r(){$.cookie("folderReturnPath","#template/"+
c.id,{path:"/",expires:10}),Vosao.jsonrpc.folderService.createFolderByPath(function(a){location.href="#folder/"+
a.id},"/theme/"+c.url)}console.log("Loading
TemplateView.js");var b="",c="",d=b!="",e="",f=null;return
Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css","/static/css/jquery.treeview.css"],el:$("#content"),render:function(){Vosao.addCSSFiles(this.css),this.el.html(_.template(a,{messages:messages})),g(),$("#autosave").change(m),$("#saveContinueButton").click(h),$("#templateForm").submit(function(){return
i(),!1}),$("#cancelButton").click(p),$("#resources").click(r)},remove:function(){this.el.html(""),Vosao.removeCSSFiles(this.css)},create:function(){b="",c="",d=b!=""},edit:function(a){b=a,c="",d=b!=""}})}),define("view/page/ContentView",["text!template/page/content.html","view/page/context","view/page/version","view/page/breadcrumbs","jquery.form","order!cm","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a,b,c,d){function
n(){b.loadData=o,b.editMode=b.pageId!="",$("#restore-dialog").dialog({width:400,autoOpen:!1}),Vosao.initJSONRpc(o),$("a.button").hover(function(){$(this).addClass("ui-state-hover")},function(){$(this).removeClass("ui-state-hover")}),c.initVersionDialog(),$("#autosave").change(A),$("#language").change(D),$("#saveContinueContentButton").click(function(){t(!0,!1)}),$("#pageForm").submit(function(){return
t(!1,!1),!1}),$("#contentPreviewButton").click(B),$("#approveButton").click(F),$("#restoreButton").click(N),$("#contentCancelButton").click(C),$("ul.ui-tabs-nav
li:nth-child(2)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default"),$("#restoreForm").submit(function(){return
P(),!1}),$("#restoreCancelButton").click(O),$("#resetCacheButton").click(S),$("#file-upload").dialog({width:400,autoOpen:!1}),$("#upload").ajaxForm({beforeSubmit:X,success:W}),$("#fileUploadCancelButton").click(V)}function
o(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,m=!b.pageRequest.config.enableCkeditor|
|b.pageRequest.page.wikiProcessing||!b.page.enableCkeditor;var
c=b.pageRequest.page.wikiProcessing?' <a
href="
http://en.wikipedia.org/wiki/Help:Wiki_markup" target="blank">Wiki
syntax</a>':"";m?$("#ckedit").text(messages("page.edit_ckeditor")).click(R):$("#ckedit").text(messages("page.edit_textarea")).click(Q),$("#editorButtons").append(c),r(),q(),d.breadcrumbsShow()},b.pageId,b.pageParentUrl)}function
p(){Vosao.jsonrpc.pageService.getPageRequest(function(a){b.pageRequest=a,
b.page=
b.pageRequest.page,b.editMode=b.pageId!=null,q()},b.pageId,b.pageParentUrl)}function
q(){b.pageId=
b.page.id==null?"":String(
b.page.id),b.pageParentUrl=b.page.parentUrl,c.loadVersions(),K(),s(),G(),E()}function
r(){var a=b.pageRequest.languages;g={};var
c="";$.each(a.list,function(a,b){g[b.code]=b,c+='<option
value="'+b.code+'" '+">"+b.title+"</option>"}),$("#language").html(c)}function
s(){var a=b.pageParentUrl=="/"?"":"/";b.page.parentUrl==""||
b.page.parentUrl==null?($("#friendlyUrl").hide(),$("#friendlyUrl").val(""),$("#parentFriendlyUrl").html("/")):($("#friendlyUrl").show(),$("#friendlyUrl").val(b.page.pageFriendlyURL),$("#parentFriendlyUrl").html(b.page.parentFriendlyURL+a)),b.pageRequest.children.list.length>0&&($("#parentFriendlyUrl").hide(),$("#friendlyUrl").hide(),$("#friendlyUrlSpan").html(b.page.friendlyURL)),$("#pageState").html(b.page.stateString=="EDIT"?messages("edit"):messages("approved")),$("#pageCreateDate").html(b.page.createDateTimeString),$("#pageModDate").html(b.page.modDateTimeString),$("#pageCreateUser").html(b.page.createUserEmail),$("#pageModUser").html(b.page.modUserEmail),
b.page.id!=null?($(".pageTab").show(),$(".childrenTab").show(),$(".commentsTab").show(),$(".securityTab").show(),$("#pagePreview").show(),$("#versions").show()):($(".pageTab").hide(),$(".childrenTab").hide(),$(".commentsTab").hide(),$(".securityTab").hide(),$("#pagePreview").hide(),$("#versions").hide()),H(),T()}function
t(a,c){var
d=Vosao.javaMap({id:b.pageId,friendlyUrl:$("#parentFriendlyUrl").text()+$("#friendlyUrl").val(),titles:M(),content:x(),approve:String($("#approveOnPageSave:checked,
#approveOnContentSave:checked").size()>0),languageCode:b.currentLanguage});Vosao.jsonrpc.pageService.savePage(function(b){b.result=="success"?(Vosao.info(messages("page.success_save")),a?c|
|p():location.href="#pages"):Vosao.showServiceMessages(b)},d)}function
u(){b.editMode&&j==""&&(j=setInterval(v,Vosao.AUTOSAVE_TIMEOUT*1e3))}function
v(){t(!0,!0)}function w(){j!=""&&(clearInterval(j),j="")}function
x(){if(!b.editMode)return"";if(b.page.simple)return
m?(h.save(),$("#pcontent").val()):h.getData();if(b.page.structured){var
a='<?xml version="1.0" encoding="utf-8"?>\n<content>\n';return
$.each(b.pageRequest.structureFields.list,function(b,c){if(c.type=="TEXT"||
c.type=="DATE"||
c.type=="RESOURCE")a+="<"+
c.name+"><![CDATA["+$("#field"+
c.name).val()+"]]></"+
c.name+">\n";if(c.type=="TEXTAREA"){var
d="";m?(k[
c.name].save(),d=$("#field"+
c.name).val()):d=k[
c.name].getData(),a+="<"+
c.name+"><![CDATA["+d.replace("]]>","]]]")+"]]></"+
c.name+">\n"}}),a+"</content>"}}function
y(a){a==null&&(a=""),b.page.simple&&(m?h.setValue(a):h.setData(a));if(b.page.structured){var
c=$.xmlDOM(a,function(b){a&&Vosao.error(messages("page.parsing_error")+" "+b)});$.each(b.pageRequest.structureFields.list,function(a,b){(b.type=="TEXT"|
|b.type=="DATE"||
b.type=="RESOURCE")&&$(c).find(
b.name).each(function(){$("#field"+
b.name).val($(this).text())}),b.type=="TEXTAREA"&&$(c).find(
b.name).each(function(){m?k[
b.name].setValue($(this).text()):k[
b.name].setData($(this).text())})})}}function
z(){return e[b.currentLanguage]!=x()}function
A(){$("#autosave:checked").length>0?u():w()}function B(){var
a=b.page.friendlyURL+"?language="+b.currentLanguage+"&version="+b.page.version;window.open(a,"preview")}function
C(){location.href="#pages"}function D(){!z()||
confirm(messages("are_you_sure_changes_lost"))?(b.currentLanguage=$("#language").val(),e[b.currentLanguage]==undefined&&(e[b.currentLanguage]=""),y(e[b.currentLanguage]),$("#titleLocal").val(L())):$("#language").val(b.currentLanguage)}function
E(){if(b.pageRequest.contents!=null){var
a=b.pageRequest.contents;e={},$.each(a.list,function(a,b){e[b.languageCode]=b.content}),b.currentLanguage=b.pageRequest.config.defaultLanguage,$("#language").val(b.currentLanguage),y(e[b.currentLanguage]),$("#titleLocal").val(Vosao.unescapeHtml(L()))}else
y("")}function
F(){Vosao.jsonrpc.pageService.approve(function(a){Vosao.showServiceMessages(a),o()},b.pageId)}function
G(){var
a=b.pageRequest.pagePermission;a.publishGranted?($("#approveButton").show(),$("#approveOnPageSaveDiv").show(),$("#approveOnContentSaveDiv").show()):($("#approveButton").hide(),$("#approveOnPageSaveDiv").hide(),$("#approveOnContentSaveDiv").hide()),a.changeGranted?($("#pageSaveButton").show(),$("#saveContinueContentButton").show(),$("#saveContentButton").show()):($("#pageSaveButton").hide(),$("#saveContinueContentButton").hide(),$("#saveContentButton").hide()),a.admin&&b.editMode?$(".securityTab").show():$(".securityTab").hide(),T()}function
H(){$.each(CKEDITOR.instances,function(a,b){CKEDITOR.remove(b)}),b.page.simple&&($("#page-content").html('<textarea
id="pcontent" rows="20"
cols="80"></textarea>'),m?(h=CodeMirror.fromTextArea(document.getElementById("pcontent"),{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"}),h.focus(),$(h.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid
silver")):(h=CKEDITOR.replace("pcontent",{height:350,width:"auto",filebrowserUploadUrl:"/cms/upload",filebrowserBrowseUrl:"fileBrowser.html",toolbar:"Vosao"}),I()));if(b.page.structured){var
a="";$.each(b.pageRequest.structureFields.list,function(b,c){a+='<div><div
class="label">'+c.title+":</div>",c.type=="TEXT"&&(a+='<input
id="field'+
c.name+'" size="80"/>'),c.type=="TEXTAREA"&&(a+='<textarea
cols="80" rows="20"
id="field'+
c.name+'"></textarea>'),c.type=="DATE"&&(a+='<input
id="field'+
c.name+'" class="datepicker" size="8"
/>'),c.type=="RESOURCE"&&(a+='<input id="field'+
c.name+'" size="80"/> '+'<a
class="browse" data-name="field'+
c.name+'">'+messages("browse")+"</a>"+' <a
class="upload"
data-name="field'+
c.name+'">'+messages("upload")+"</a>"),a+="</div>"}),$("#page-content").html(a),$("#page-content .browse").click(function(){I(),l=$(this).attr("data-name"),window.open("fileBrowser.html?mode=page")}),$("#page-content .upload").click(function(){U($(this).attr("data-name"))}),$("#page-content").css("float","left"),$(".datepicker").datepicker({dateFormat:"dd.mm.yy"}),k={},$.each(b.pageRequest.structureFields.list,function(a,b){if(b.type=="TEXTAREA"&&!k[
b.name])if(m){var
c=document.getElementById("field"+
b.name);k[
b.name]=CodeMirror.fromTextArea(c,{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"}),$(k[
b.name].getScrollerElement()).css("width",$("#pageForm .buttons").width()+20+"px").css("border","1px
solid silver")}else
k[
b.name]=CKEDITOR.replace("field"+
b.name,{height:150,width:"auto",filebrowserUploadUrl:"/cms/upload",filebrowserBrowseUrl:"fileBrowser.html",toolbar:"Vosao"}),I()})}}function
I(){$.cookie("fileBrowserPath","/page"+b.page.friendlyURL,{path:"/",expires:10})}function
J(a){$("#"+l).val(a)}function K(){f=b.page.titles.map}function L(){return
f[b.currentLanguage]==undefined?"":f[b.currentLanguage]}function
M(){if(!b.editMode)return"{"+Vosao.ENGLISH_CODE+':"'+Vosao.escapeHtml($("#title").val())+'"}';f[b.currentLanguage]=$("#titleLocal").val();var
a="{",c=0;return $.each(f,function(b,d){var
e=c++==0?"":",";a+=e+b+':"'+Vosao.escapeHtml(d)+'"'}),a+"}"}function
N(){$("#restore-dialog").dialog("open")}function
O(){$("#restore-dialog").dialog("close")}function P(){var
a=$("input[name=page]:checked").val();Vosao.jsonrpc.pageService.restore(function(a){Vosao.showServiceMessages(a),a.result=="success"&&($("#restore-dialog").dialog("close"),o())},b.pageId,a,b.currentLanguage)}function
Q(){m=!0,$("#ckedit").text(messages("page.edit_ckeditor")).click(R),H(),y(e[b.currentLanguage])}function
R(){m=!1,$("#ckedit").text(messages("page.edit_textarea")).click(Q),H(),y(e[b.currentLanguage])}function
S(){b.editMode&&Vosao.jsonrpc.pageService.resetCache(function(a){Vosao.showServiceMessages(a)},b.page.friendlyURL)}function
T(){b.page.friendlyURL.endsWith("/_default")&&(b.isDefault=!0,$(".securityTab, .commentsTab, .childrenTab,
#approveOnContentSaveDiv, #contentPreviewButton, #versions,
#resetCacheButton, #restoreButton, #approveButton,
#friendlyUrlDiv").hide())}function U(a){l=a,$("#file-upload
input[name=folderId]").val(b.pageRequest.folderId),$("#file-upload").dialog("open")}function
V(){$("#file-upload").dialog("close")}function W(a){var
b=a.split("::"),c=b[1],d=b[2];c=="success"?Vosao.info(messages("folder.file_success_upload")):Vosao.error(messages("folder.error_during_upload")+" "+d),$("#file-upload").dialog("close")}function
X(a,c,d){var e=Vosao.getFileName($("#file-upload
input[name=uploadFile]").val()),f="/file/page"+b.page.friendlyURL+"/"+e;$("#"+l).val(f)}console.log("Loading
ContentView.js");var
e=null,f=null,g=null,h=null,i="",j="",k=null,l="",m=!1;return
Backbone.View.extend({el:$("#tab-1"),tmpl:_.template(a),render:function(){this.el=$("#tab-1"),this.el.html(this.tmpl({messages:messages})),n()},remove:function(){this.el.html(""),$("#restore-dialog,
#file-upload").dialog("destroy").remove()},setResource:function(a){J(a)}})}),define("view/page/PageRouter",["view/page/context","view/page/ContentView","view/page/IndexView","view/page/ChildrenView","view/page/CommentsView","view/page/SecurityView","view/page/AttributesView"],function(a,b,c,d,e,f,g){return
console.log("Loading
PageRouter.js"),Backbone.Router.extend({pageView:null,currentView:null,contentView:new
b,indexView:new c,childrenView:new d,commentsView:new e,securityView:new
f,attributesView:new
g,initialize:function(a){this.pageView=a.view},show:function(a){Vosao.app.currentView!=this.pageView&&Vosao.app.show(this.pageView),this.currentView&&(this.currentView.remove(),this.currentView=null),$("ul.ui-tabs-nav
li").removeClass("ui-state-active").removeClass("ui-tabs-selected").addClass("ui-state-default"),a.render(),this.currentView=a},routes:{"page/children/:id":"children","page/comments/:id":"comments","page/security/:id":"security","page/attributes/:id":"attributes","page/resources/:id":"resources"},showCmd:function(b){b=="editContent"&&this.editContent(a.pageId),b=="editPage"&&this.editPage(a.pageId)},editContent:function(b){a.pageId=b,this.show(this.contentView)},editPage:function(b){a.pageId=b,this.show(this.indexView)},children:function(b){a.pageId=b,this.show(this.childrenView)},comments:function(b){a.pageId=b,this.show(this.commentsView)},security:function(b){a.pageId=b,this.show(this.securityView)},attributes:function(b){a.pageId=b,this.show(this.attributesView)},resources:function(b){Vosao.jsonrpc.pageService.getPageRequest(function(c){a.pageRequest=c,a.pageId=b,
a.page=
a.pageRequest.page,Vosao.jsonrpc.folderService.createFolderByPath(function(b){jQuery.cookie("folderReturnPath","#page/content/"+a.pageId,{path:"/",expires:10}),location.href="#folder/"+
b.id},"/page"+a.page.friendlyURL)},b,"")}})}),define("view/page/PageView",["text!template/page/page.html","view/page/PageRouter","view/page/context"],function(a,b,c){return
console.log("Loading
PageView.js"),Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css","/static/css/page.css"],el:$("#content"),tmpl:_.template(a),viewCmd:null,router:null,initialize:function(){this.router=new
b({view:this})},render:function(){Vosao.addCSSFiles(this.css),this.el.html(this.tmpl({messages:messages,id:c.pageId})),$("#version-dialog").dialog({width:400,autoOpen:!1}),this.router.showCmd(this.viewCmd)},remove:function(){this.router.currentView&&this.router.currentView.remove(),$("#version-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFiles(this.css)},editContent:function(a){c.pageId=a,this.viewCmd="editContent"},editPage:function(a){c.pageId=a,this.viewCmd="editPage"},setResource:function(a){this.router.contentView.setResource(a)}})}),define("view/plugins/FormsView",["text!template/plugins/forms.html","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a){function
e(){$("#tabs").tabs({show:f}),Vosao.initJSONRpc(g),$("#addButton").click(i),$("#deleteButton").click(j),$("#restoreFormTemplateLink").click(m),$("#restoreFormLetterLink").click(n),$("#saveButton").click(l)}function
f(a,b){b.index==1&&(c.refresh(),d.refresh())}function g(){h(),k()}function
h(){Vosao.jsonrpc.formService.select(function(a){var b='<table
class="form-table"><tr><th></th><th>'+messages("title")+"</th><th>"+messages("name")+"</th><th>"+messages("email")+"</th></tr>";$.each(a.list,function(a,c){b+='<tr><td><input
type="checkbox" value="'+
c.id+'"/></td><td><a
href="#plugins/form/'+
c.id+'">'+c.title+"</a></td><td>"+
c.name+"</td><td>"+c.email+"</td></tr>"}),$("#forms").html(b+"</table>"),$("#forms
tr:even").addClass("even")})}function
i(){location.href="#plugins/form"}function j(){var a=[];$("#forms
input:checked").each(function(){a.push(this.value)});if(a.length==0){Vosao.info(messages("nothing_selected"));return}confirm(messages("are_you_sure"))&&Vosao.jsonrpc.formService.deleteForm(function(a){Vosao.showServiceMessages(a),h()},Vosao.javaList(a))}function
k(){Vosao.jsonrpc.formService.getFormConfig(function(a){b=a,$("#formTemplate").val(a.formTemplate),$("#letterTemplate").val(a.letterTemplate),c=CodeMirror.fromTextArea(document.getElementById("formTemplate"),{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"}),$(c.getScrollerElement()).css("border","1px
solid
silver"),d=CodeMirror.fromTextArea(document.getElementById("letterTemplate"),{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"}),$(d.getScrollerElement()).css("border","1px
solid silver")})}function l(){c.save(),d.save();var
a=Vosao.javaMap({formTemplate:$("#formTemplate").val(),letterTemplate:$("#letterTemplate").val()});Vosao.jsonrpc.formService.saveFormConfig(function(a){Vosao.showServiceMessages(a)},a)}function
m(){Vosao.jsonrpc.formService.restoreFormTemplate(function(a){Vosao.showServiceMessages(a),$(".CodeMirror").remove(),k()})}function
n(){Vosao.jsonrpc.formService.restoreFormLetter(function(a){Vosao.showServiceMessages(a),$(".CodeMirror").remove(),k()})}console.log("Loading
FormsView.js");var b="",c=null,d=null;return
Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css"],el:$("#content"),render:function(){Vosao.addCSSFiles(this.css),this.el.html(_.template(a,{messages:messages})),e()},remove:function(){this.el.html(""),Vosao.removeCSSFiles(this.css)}})}),define("view/config/CommentsView",["text!template/config/comments.html","order!cm","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a){function
d(){Vosao.initJSONRpc(e),$("#commentsForm").submit(function(){return
h(),!1}),$("#restoreButton").click(i),$("ul.ui-tabs-nav
li:nth-child(2)").addClass("ui-state-active").addClass("ui-tabs-selected").removeClass("ui-state-default")}function
e(){f()}function
f(){Vosao.jsonrpc.configService.getConfig(function(a){b=a,g()})}function
g(){$("#commentsEmail").val(b.commentsEmail),$("#commentsTemplate").val(b.commentsTemplate),c=CodeMirror.fromTextArea(document.getElementById("commentsTemplate"),{lineNumbers:!0,theme:"eclipse",mode:"htmlmixed"}),c.focus(),$(c.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid silver"),c.refresh()}function h(){c.save();var
a=Vosao.javaMap({commentsEmail:$("#commentsEmail").val(),commentsTemplate:$("#commentsTemplate").val()});Vosao.jsonrpc.configService.saveConfig(function(a){Vosao.showServiceMessages(a)},a)}function
i(){Vosao.jsonrpc.configService.restoreCommentsTemplate(function(a){Vosao.showServiceMessages(a),f()})}console.log("Loading
CommentsView.js");var b="",c=null;return
Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css"],el:$("#tab-1"),render:function(){Vosao.addCSSFiles(this.css),this.el=$("#tab-1"),this.el.html(_.template(a,{messages:messages})),d()},remove:function(){this.el.html(""),Vosao.removeCSSFiles(this.css)}})}),define("view/config/ConfigRouter",["view/config/IndexView","view/config/CommentsView","view/config/LanguagesView","view/config/MessagesView","view/config/UsersView","view/config/GroupsView","view/config/TagsView","view/config/AttributesView"],function(a,b,c,d,e,f,g,h){return
console.log("Loading
ConfigRouter.js"),Backbone.Router.extend({configView:null,currentView:null,indexView:new
a,commentsView:new b,languagesView:new c,messagesView:new d,usersView:new
e,groupsView:new f,tagsView:new g,attributesView:new
h,initialize:function(a){this.configView=a.view},show:function(a){Vosao.app.currentView!=this.configView&&Vosao.app.show(this.configView),this.currentView&&(this.currentView.remove(),this.currentView=null),$("ul.ui-tabs-nav
li").removeClass("ui-state-active").removeClass("ui-tabs-selected").addClass("ui-state-default"),a.render(),this.currentView=a},routes:{"config/comments":"comments","config/languages":"languages","config/messages":"messages","config/users":"users","config/groups":"groups","config/tags":"tags","config/attributes":"attributes"},index:function(){this.show(this.indexView)},comments:function(){this.show(this.commentsView)},languages:function(){this.show(this.languagesView)},messages:function(){this.show(this.messagesView)},users:function(){this.show(this.usersView)},groups:function(){this.show(this.groupsView)},tags:function(){this.show(this.tagsView)},attributes:function(){this.show(this.attributesView)}})}),define("view/config/ConfigView",["text!template/config/config.html","view/config/ConfigRouter","jquery.form"],function(a,b){return
console.log("Loading
ConfigView.js"),Backbone.View.extend({css:"/static/css/config.css",el:$("#content"),tmpl:_.template(a),viewCmd:null,router:null,initialize:function(){this.router=new
b({view:this})},render:function(){Vosao.addCSSFile(this.css),this.el.html(this.tmpl({messages:messages})),$("#import-dialog").dialog({width:400,autoOpen:!1}),$("#export-dialog").dialog({width:400,autoOpen:!1}),$("#stat-dialog").dialog({width:400,autoOpen:!1}),$("#afterUpload-dialog").dialog({autoOpen:!1}),this.router.index()},remove:function(){this.router.currentView&&this.router.currentView.remove(),$("#import-dialog").dialog("destroy").remove(),$("#export-dialog").dialog("destroy").remove(),$("#stat-dialog").dialog("destroy").remove(),$("#afterUpload-dialog").dialog("destroy").remove(),this.el.html(""),Vosao.removeCSSFile(this.css)}})}),define("view/FileView",["text!template/file.html","order!cm","order!cm-css","order!cm-js","order!cm-xml","order!cm-html"],function(a){function
h(){e=b!="",$("#tabs").tabs({show:i}),Vosao.initJSONRpc(n),$("#fileForm").submit(function(){return
q(),!1}),$("#cancelButton").click(r),$("#autosave").change(m),$("#contentForm").submit(function(){return
l(),!1}),$("#contentCancelButton").click(r)}function
i(a,b){b.index==1?(j(),g&&(g.focus(),$(g.getScrollerElement()).css("height",.6*$(window).height()+"px").css("border","1px
solid silver"),g.refresh())):k()}function
j(){b!="null"&&$("#autosave:checked").length>0&&f==""&&(f=setInterval(l,Vosao.AUTOSAVE_TIMEOUT*1e3))}function
k(){f!=""&&(clearInterval(f),f="")}function l(){g&&g.save();var
a=$("textarea").val();Vosao.jsonrpc.fileService.updateContent(function(a){if(a.result=="success"){var
b=new Date;Vosao.info(a.message+" "+b)}else
Vosao.error(a.message)},b,a)}function
m(){$("#autosave:checked").length>0?j():k()}function
n(){Vosao.jsonrpc.fileService.getFile(function(a){d=a,e&&(c=d.folderId),p()},b)}function
o(a){var
b="html";d.mimeType=="text/css"&&(b="css"),d.mimeType=="text/xml"&&(b="xml"),d.mimeType=="text/html"&&(b="htmlmixed"),d.mimeType.indexOf("javascript")!=-1&&(b="javascript"),g=CodeMirror.fromTextArea(document.getElementById("fileContent"),{lineNumbers:!0,theme:"eclipse",mode:b})}function
p(){e?($("#filename").html(
d.name),$("#title").val(d.title),$("#name").val(
d.name),$("#fileEditDiv").show(),$("#mimeType").html(d.mimeType),$("#size").html(d.size),$("#fileLink").html(d.link),$("#download").html('<a
href="'+d.link+'">'+messages("download")+"</a>"),d.textFile?($(".contentTab").show(),$("#fileContent").val(d.content),o(d.mimetype)):$(".contentTab").hide(),d.imageFile?$("#imageContent").html('<img
src="'+d.link+'"
/>'):$("#imageContent").html("")):($("#filename").html(""),$("#title").val(""),$("#name").val(""),$("#fileEditDiv").hide(),$(".contentTab").hide(),$("#imageContent").html(""))}function
q(){var
a=Vosao.javaMap({id:b,folderId:String(c),title:$("#title").val(),name:$("#name").val()});Vosao.jsonrpc.fileService.saveFile(function(a){Vosao.showServiceMessages(a),a.result=="success"&&(location.href="#file/"+a.data)},a)}function
r(){location.href="#folder/"+c}console.log("Loading FileView.js");var
b=null,c=null,d="",e=b!="",f="",g=null;return
Backbone.View.extend({css:["/static/js/codemirror/codemirror.css","/static/js/codemirror/eclipse.css","/static/css/file.css"],el:$("#content"),tmpl:_.template(a),render:function(){Vosao.addCSSFiles(this.css),this.el.html(this.tmpl({messages:messages})),h()},remove:function(){this.el.html(""),Vosao.removeCSSFiles(this.css)},setFileId:function(a){b=a},setFolderId:function(a){c=a}})}),define("app",["view/LoginView","view/PagesView","view/IndexView","view/StructuresView","view/StructureView","view/StructureTemplateView","view/TemplatesView","view/TemplateView","view/page/PageView","view/ProfileView","view/plugins/PluginsView","view/plugins/PluginView","view/plugins/ConfigView","view/plugins/FormsView","view/plugins/FormView","view/plugins/SeoUrlsView","view/config/ConfigView","view/FoldersView","view/FolderView","view/FileView","text!template/topbar.html","text!template/locale.html"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v){return
Backbone.Router.extend({initialize:function(){this.bind("login",this.login,this),Vosao.loggedIn?this.login():this.currentView=this.loginView.render(),$("#loading").html(messages("loading")),$(".splash").hide(),$("#topbar,
#wrapper").fadeIn()},currentView:null,indexView:new c,loginView:new
a,pagesView:new b,structuresView:new d,structureView:new
e,structureTemplateView:new f,templatesView:new g,templateView:new
h,pageView:new i,profileView:new j,pluginsView:new k,pluginView:new
l,pluginsConfigView:new m,pluginsFormsView:new n,pluginsFormView:new
o,pluginsSeoUrlsView:new p,configView:new q,foldersView:new
r,folderView:new s,fileView:new
t,routes:{index:"index",pages:"pages","page/content/:id":"editContent","page/:id":"editPage",structures:"structures",structure:"addStructure","structure/:id":"editStructure","addStructureTemplate/:id":"addStructureTemplate","structureTemplate/:id":"structureTemplate",profile:"profile",logout:"logout",plugins:"plugins","plugins/config":"pluginsConfig","plugins/forms":"pluginsForms","plugins/form":"pluginsFormNew","plugins/form/:id":"pluginsFormEdit","plugins/seo-urls":"pluginsSeoUrls","plugin/:id":"plugin",templates:"templates",template:"createTemplate","template/:id":"editTemplate",config:"config",folders:"folders","folder/:id":"editFolder","addFolder/:id":"addFolder","file/:id":"editFile","addFile/:id":"addFile"},show:function(a){this.currentView&&(this.currentView.remove(),this.currentView=null),this.currentView=a,$("#content").hide(),a.render(),$("#content").fadeIn()},pages:function(){this.show(this.pagesView)},index:function(){this.show(this.indexView)},structures:function(){this.show(this.structuresView)},addStructure:function(){this.structureView.setId(""),this.show(this.structureView)},editStructure:function(a){this.structureView.setId(a),this.show(this.structureView)},addStructureTemplate:function(a){this.structureTemplateView.create(a),this.show(this.structureTemplateView)},structureTemplate:function(a){this.structureTemplateView.edit(a),this.show(this.structureTemplateView)},templates:function(){this.show(this.templatesView)},createTemplate:function(){this.templateView.create(),this.show(this.templateView)},editTemplate:function(a){this.templateView.edit(a),this.show(this.templateView)},editContent:function(a){this.pageView.editContent(a),this.show(this.pageView)},editPage:function(a){this.pageView.editPage(a),this.show(this.pageView)},profile:function(a){this.show(this.profileView)},plugins:function(){this.show(this.pluginsView)},pluginsConfig:function(){this.show(this.pluginsConfigView)},pluginsForms:function(){this.show(this.pluginsFormsView)},pluginsFormNew:function(){this.pluginsFormView.setId(""),this.show(this.pluginsFormView)},pluginsFormEdit:function(a){this.pluginsFormView.setId(a),this.show(this.pluginsFormView)},pluginsSeoUrls:function(){this.show(this.pluginsSeoUrlsView)},config:function(){this.show(this.configView)},folders:function(){this.show(this.foldersView)},editFolder:function(a){this.folderView.setFolderId(a),this.folderView.setFolderParentId(""),this.show(this.folderView)},addFolder:function(a){this.folderView.setFolderId(""),this.folderView.setFolderParentId(a),this.show(this.folderView)},editFile:function(a){this.fileView.setFileId(a),this.fileView.setFolderId(""),this.show(this.fileView)},addFile:function(a){this.fileView.setFileId(""),this.fileView.setFolderId(a),this.show(this.fileView)},logout:function(){Vosao.jsonrpc.loginFrontService.logout(function(a,b){if(Vosao.serviceFailed(b))return;a.result=="success"?location.href="/":Vosao.showServiceMessages(a)})},plugin:function(a){this.pluginView.setPluginId(a),this.show(this.pluginView)},login:function(){Vosao.jsonrpcInitialized=!1,Vosao.createJSONRpc(),Vosao.initJSONRpcSystem(Vosao.initBackServices),Vosao.initJSONRpc(function(){Vosao.jsonrpc.userService.getLoggedIn(function(a){Vosao.app.user=a;var
b=_.template(v,{messages:messages});$("#topbar").html(_.template(u,{locale:b,Vosao:Vosao,messages:messages})),$("#languageSelect").click(function(){$("#languageDiv").show(),setTimeout(function(){$("#languageDiv").hide()},5e3)}),Backbone.history.start()|
|Vosao.app.navigate("index",!0)})})}})});if($.browser.msie)throw $(".splash
h3").html("We are sorry but Internet Explorer is not
supported."),$(".splash img").attr("src","/static/images/no_ie.jpg"),new
Error("IE is not
supported.");require.config({paths:{text:"libs/text",order:"libs/order","jquery.cookie":"/static/js/jquery.cookie","jquery-ui":"/static/js/jquery-ui","jquery.xmldom":"/static/js/jquery.xmldom","jquery.form":"/static/js/jquery.form","jquery.treeview":"/static/js/jquery.treeview","jquery.jquote2":"libs/jquery.jquote2.min",jsonrpc:"/static/js/jsonrpc",vosao:"/static/js/vosao",cms:"/static/js/cms",i18n:"/i18n","back-services":"/static/js/back-services",cm:"/static/js/codemirror/codemirror","cm-css":"/static/js/codemirror/css","cm-html":"/static/js/codemirror/htmlmixed","cm-js":"/static/js/codemirror/javascript","cm-xml":"/static/js/codemirror/xml"}}),require(["app","jquery.cookie","jquery-ui","jquery.xmldom","jquery.jquote2","order!i18n","order!jsonrpc","order!vosao","order!cms","order!back-services"],function(a){Vosao.initJSONRpc(function(){Vosao.jsonrpc.loginFrontService.getSystemProperties(function(b){Vosao.version=b.map.version,Vosao.fullVersion=b.map.fullVersion,Vosao.loggedIn=b.map.loggedIn==="true",Vosao.app=new
a})})}),define("main",function(){})