ccms.html.use();ccms.namespace('ccms.editor');ccms.namespace('ccms.editor.config');ccms.editor.queue=[];ccms.editor.createField=function(label,control){var id='';if(typeof label=='string'){if(control.getAttribute){if(!(id=control.getAttribute('id')))control.setAttribute('id',id=ccms.dom.generateId());label=ccms.html.LABEL({'for':id},label);}
else{label=ccms.html.LABEL(label);}}
return ccms.html.DIV({'class':'fm-field'},label,ccms.html.DIV({'class':'fm-options'},control));};ccms.editor.AjaxAddProperty=function(form,first_fs,property_name,property_path){var url=ccmsQSAppend(form.action,{'editor_action':'property_html','property':property_path});var fieldsets;var max=0;var button=null,last=null,label='';function init(){fieldsets=ccms.dom.getElementsByClassName('fm-property-'+property_name,'*',ccms.dom.getAncestorBy(first_fs,function(n){return n.tagName.toLowerCase()=='fieldset';})).filter(function(node){return ccms.dom.hasClass(node,'fm-multiple')&&!ccms.dom.hasClass(node,'fm-handles-multiple');});var m=fieldsets[0].className.match(/fm-maxoccurs-(\d+)/);if(m)max=intval(m[1]);else max=0;if(button==null){last=fieldsets[fieldsets.length-1];if(ccms.config.get('ccms.editor.AjaxAddProperty.style')==='compact'&&ccms.dom.hasClass(last,'fm-content-isnew')){ccms.dom.hide(last);}
var legend=fieldsets[0].getElementsByTagName('legend');if(legend.length==0)legend=fieldsets[0].getElementsByTagName('label');label=legend[0].innerHTML.replace(/^(.+?)([^a-zA-Z]+)$/,'$1');button=ccms.html.SPAN({'class':'add_property'},ccms.html.SPAN('Add '+label));ccms.dom.insertAfter(button,last);ccms.event.attach(button,'click',onAddNew);}
if(max==0||fieldsets.length<max)ccms.dom.show(button);else ccms.dom.hide(button);}
init();function onAddNew(){if(last.style.display=='none'){ccms.dom.show(last);addRemoveTool(last);}
else{ccms.dom.pushWaitingClass();ccms.async.http({'url':url,'parameters':{'i':fieldsets.length+1},'parseJSON':true,'onSuccess':onRecvNew,'onHTTPError':function(e){console.log(e);ccms.dom.popWaitingClass();}});}}
function onRecvNew(resp){var div=ccms.html.DIV({'class':'text-only'});ccms.async.processJSON(resp);div.innerHTML=ccms.dom.fixDuplicateIDs(resp.html);document.body.appendChild(div);var after=fieldsets[fieldsets.length-1];var node=ccms.dom.getElementByClassName('fm-property-'+property_name,'*',div).cloneNode(true);ccms.dom.insertAfter(node,after);ccms.widgets.runInstallers(node);addRemoveTool(node);div.parentNode.removeChild(div);init();ccms.dom.popWaitingClass();}
function addRemoveTool(node){input=ccms.html.INPUT({'type':'hidden','value':'','name':findBaseName(node)+'/__remove__'})
node.appendChild(input);var remove=ccms.html.SPAN({'class':'remove_property'},ccms.html.SPAN('Remove '+label))
node.appendChild(remove);ccms.event.attach(remove,'click',onRemove);}
function onRemove(e){var target=ccms.event.getTarget(e);var fs=ccms.dom.getAncestorByClassName(target,'fm-property-'+property_name);if(fs){var removename=findBaseName(fs)+'/__remove__';console.log(removename);var remove=ccms.dom.getElementsBy(function(node){var name;return((name=node.getAttribute('name'))&&name==removename);},'*',fs);console.log(remove[0]);if(remove.length){remove[0].value='1';ccms.dom.addClass(fs,'textonly');}}}
function findBaseName(fieldset){return ccms.dom.getElementsBy(function(node){var name;return((name=node.getAttribute('name'))&&name.match(new RegExp('^content/'+property_path+'/\\d+$')));},'*',fieldset)[0].name;}};ccms.editor.AjaxAddProperty.properties={};ccms.editor.AjaxAddProperty.install=function(root_element,data){ccms.dom.getElementsByClassName('fm-multiple','*',root_element).filter(function(node){return!ccms.dom.hasClass(node,'fm-handles-multiple');}).foreach(function(node){var form=ccms.dom.getParentByClassName(node,'form','ccmsForm');if(form&&ccms.dom.hasClass(form,'ccmsEditorAjax')){var bits=node.className.match(/fm-property-([a-z0-9_-]+)/);var p=ccms.dom.getAncestorBy(node,function(n){return n.tagName.toLowerCase()=='fieldset';});if(!p.id)p.setAttribute('id',ccms.dom.generateId());if(!node.id)node.setAttribute('id',ccms.dom.generateId());if(bits&&typeof ccms.editor.AjaxAddProperty.properties[p.id+bits[1]]=='undefined'){var property_path=bits[1];var n=p;while(n&&n!=form){var morebits=n.className.match(/fm-property-([a-z0-9_-]+)/);if(morebits){property_path=morebits[1]+'/'+property_path;}
n=n.parentNode;}
ccms.editor.AjaxAddProperty.properties[p.id+property_path]=new ccms.editor.AjaxAddProperty(form,node,bits[1],property_path);}}});};ccms.editor.ListExpander=function(root){var self=this;self.root=root;self.onRadioChange=function(e){var li=null;var target=ccms.event.getTarget(e);var tag=target.tagName.toLowerCase();var toggle=true;if(tag=='input'){li=target.parentNode.parentNode;toggle=false;}
else if(tag=='img')li=target.parentNode;if(li){var ul=li.getElementsByTagName(li.parentNode.tagName);if(ul.length){ul=ul[0];var img=li.getElementsByTagName('img')[0];if(!toggle||ul.style.display=='none'){ul.style.display='';img.setAttribute('src','/ccms/themes/base/icons/9x9/disclosure-'+'minus'+'.png');}
else{ul.style.display='none';img.setAttribute('src','/ccms/themes/base/icons/9x9/disclosure-'+'plus'+'.png');}}}}
self.addOpener=function(li,isclosed){var a=ccms.html.IMG({'class':'list-opener','width':9,'height':9});ccms.dom.setStyle(a,'padding-right','4px')
a.setAttribute('src','/ccms/themes/base/icons/9x9/disclosure-'+(isclosed?'plus':'minus')+'.png');li.insertBefore(a,li.firstChild);ccms.dom.setStyleObject(a,{cursor:'pointer'});}
self.removeOpener=function(li){var a=ccms.dom.getElementsByClassName('list-opener','img',li);if(a.length){a=a[0];ccms.event.detach(a,'click');a.parentNode.removeChild(a);}}
self.updateState=function(ul){var list,radio,a;var item=ul.firstChild;var rv=false;var i=0;while(item){if(item.nodeType==Node.ELEMENT_NODE&&item.tagName.toLowerCase()=='li'){list=item.getElementsByTagName(ul.tagName);if(list.length>0&&list[0].parentNode==item){list=list[0];if(self.updateState(list)){list.style.display='';self.addOpener(item,false);}
else{list.style.display='none';self.addOpener(item,true);}}
else{a=ccms.html.SPAN({'class':'list-opener'},' ');ccms.dom.setStyleObject(a,{'paddingLeft':'13px'});item.insertBefore(a,item.firstChild);}
if((radio=ccms.dom.getElementsByClassName('category','input',item)[0])&&radio.checked)
rv=true;}
item=item.nextSibling;}
return rv;}
self.updateState(self.root);ccms.event.attach(self.root,'click',self.onRadioChange);};ccms.editor.updateTagSelectList=function(e){var del=',';var node;node=ccms.dom.getPrevious(this,function(n){return n.tagName=='INPUT'&&n.type=='hidden'&&n.name.match(/\/tags\/delimiter$/);});if(node)del=node.value;node=ccms.dom.getPrevious(this,function(n){return n.tagName=='INPUT'&&n.type=='text'&&n.name.match(/\/tags\/tags$/);});node.value+=(node.value==""?'':del.trim()+' ')+this[this.selectedIndex].value;this.selectedIndex=0;};ccms.editor.SwapEffect=function(from,to){this.from=from;this.to=to;this.from_xy=ccms.dom.getXY(from);this.dest_xy=ccms.dom.getXY(to);this.dx=this.from_xy[0]-this.dest_xy[0];this.dy=this.from_xy[1]-this.dest_xy[1];};ccms.editor.SwapEffect.prototype.setState=function(state){var xy=[];xy[0]=this.from_xy[0]-this.dx*state;xy[1]=this.from_xy[1]-this.dy*state;ccms.dom.setXY(this.from,xy);xy[0]=this.dest_xy[0]+this.dx*state;xy[1]=this.dest_xy[1]+this.dy*state;ccms.dom.setXY(this.to,xy);};ccms.editor.Positioner=function(root_fs,items){var self=this;function updateLegend(fs,pos){var m,legend=fs.getElementsByTagName('legend')[0];if(m=legend.innerHTML.match(/^(.+)\((\d+)\)\s*$/))
legend.innerHTML=m[1]+'('+(pos+1)+')';}
function swap(apos,bpos){var a=items[apos];var b=items[bpos];if(a[1].value=='last'||b[1].value=='last')
return;a[1].value=bpos;b[1].value=apos;items[apos]=b;items[bpos]=a;updateLegend(a[0],bpos);updateLegend(b[0],apos);if(typeof Animator=='function'){(new Animator({duration:1000,transition:Animator.tx.easeIn})).addSubject(new ccms.editor.SwapEffect(a[0],b[0])).play();}
else{var axy=ccms.dom.getXY(a[0]);var bxy=ccms.dom.getXY(b[0]);ccms.dom.setXY(a[0],bxy);ccms.dom.setXY(b[0],axy);}}
function moveUp(item,e){var pos=intval(item[1].value);if(pos>0){swap(pos-1,pos);}}
function moveDown(item,e){var pos=intval(item[1].value);if(pos<items.length){swap(pos,pos+1);}}
items.foreach(function(item){if(item==items[items.length-1])return;var fs=item[0];var aup=ccms.html.SPAN({'class':'moveup'},ccms.html.SPAN('Up'));var adown=ccms.html.SPAN({'class':'movedown'},ccms.html.SPAN('Down'));fs.appendChild(ccms.html.DIV({'class':'subcontent-tools'},aup,adown));ccms.event.attach(aup,'click',moveUp.partial(item));ccms.event.attach(adown,'click',moveDown.partial(item));});};ccms.editor.Positioner.install=function(root_element){var selects=ccms.dom.getElementsByClassName('position','select',root_element);if(selects.length){var root_fieldset=ccms.dom.getParentByClassName(selects[0],'fieldset','fm-fieldset');if(root_fieldset&&(root_fieldset=ccms.dom.getParentByClassName(root_fieldset,'fieldset','fm-fieldset'))){var items=[];selects.foreach(function(select){var fs=ccms.dom.getParentByClassName(select,'fieldset','fm-fieldset');var field=ccms.dom.getParentByClassName(select,'div','fm-field');var hidden=ccms.html.INPUT({'type':'hidden','value':select.value,'name':select.name});fs.appendChild(hidden);field.parentNode.removeChild(field);items.push([fs,hidden]);});new ccms.editor.Positioner(root_fieldset,items);}}};ccms.editor.installHandlers=function(root_element,optional_data){if(typeof root_element=='undefined')
root_element=document.body;var elements;elements=ccms.dom.getElementsByClassName('tag-selector','select',root_element);if(elements.length)ccms.event.attach(elements,'change',ccms.editor.updateTagSelectList);ccms.dom.getElementsByClassName('categories','ol',root_element).foreach(function(cl){if(cl.parentNode.tagName.toLowerCase()=='div'&&!ccms.dom.hasClass(cl.parentNode.parentNode,'dtCategoryLink')){ccms.widgets.add(new ccms.editor.ListExpander(cl));ccms.dom.show(cl);}});ccms.events.subscribe('ccms.widgets.Tabs.show',ccms.editor.switchFileTab);ccms.dom.getElementsByClassName('dtUrl','input',root_element).foreach(function(textbox){var btn=ccms.html.INPUT({'class':'button gobutton','type':'button','value':'Go'});btn=ccms.dom.insertAfter(ccms.html.SPAN(' ',btn),textbox);ccms.event.attach(btn,'click',function(e){ccms.URL.open(textbox.value,true);});});};ccms.editor.switchFileTab=function(evt_name,evt_args){var id=evt_args[0];var bits;if(bits=id.match(/^(content(?:-.+)*-file-.+)-panel-(.+)$/)){var source=$(bits[1]+'-source');if(source)source.value=bits[2];else console.log("No source found?",bits,source);}};ccms.editor.checkLength=function(field,maxlimit,countId){if(field.value.length>maxlimit)
field.value=field.value.substring(0,maxlimit);else{if(countfield=document.getElementById(countId)){countfield.value=maxlimit-field.value.length;}}}
ccms.widgets.addInstaller('ccms.editor.Positioner',ccms.editor.Positioner.install);ccms.widgets.addInstaller('ccms.editor.AjaxAddProperty',ccms.editor.AjaxAddProperty.install);ccms.widgets.addInstaller('ccms.editor.installHandlers',ccms.editor.installHandlers);