
var EasySiteGUI=function(){var DropLocked=false;var IsLoaded=false;var Droppables=[];var Draggables=[];var SortableConfigs=[];var PaletteWindow;var State;var MouseDown=false;var WindowConfigs=[];var Windows=[];var Sortables=[];var StartupActions=[];var PalleteWindowOveride;var PalleteElementPrefix;var RepositionElementPrefix;function MaintainToolPalettePositionForIE(){var windowElement=document.getElementById("TemplateDesignerPalette_Window");var shadowElement=windowElement.previousSibling;var scrollTop=Math.max(document.documentElement.scrollTop,document.body.scrollTop);windowElement.style.top=scrollTop+50;shadowElement.style.top=scrollTop+50;}
function Setup(){var count;var form=document.getElementById('frmMain');State=Ext.state.Manager.setProvider(new Ext.state.CookieProvider());if(document.getElementById('TemplateDesignerPalette_Window')){form.appendChild(document.getElementById('TemplateDesignerPalette_Window'));PaletteWindow=new Ext.BasicDialog('TemplateDesignerPalette_Window',{closable:false,autoTabs:true,width:225,height:200,shadow:true,minWidth:225,minHeight:200,proxyDrag:true,x:100,y:100,tabPosition:"top",collapsible:false,monitorResize:true,constraintoviewport:false});PaletteWindow.restoreState();PaletteWindow.footer.setStyle("font-weight",'bold');PaletteWindow.footer.setHeight(25);PaletteWindow.show();var isBackEnd=window.__isEasySiteAdmin?__isEasySiteAdmin():false;var isIe7orOver=Ext.isIE7;var applyFixedStyleToToolWindow=(Ext.isIE&&!isBackEnd&&isIe7orOver)||(!Ext.isIE);if(applyFixedStyleToToolWindow){var windowElement=document.getElementById("TemplateDesignerPalette_Window");var shadowElement=windowElement.previousSibling;windowElement.style.position="fixed";shadowElement.style.position="fixed";}
else
{if(window.attachEvent){window.attachEvent("onscroll",MaintainToolPalettePositionForIE);window.attachEvent("onresize",MaintainToolPalettePositionForIE);}
else{window.addEventListener("scroll",MaintainToolPalettePositionForIE,false);window.addEventListener("resize",MaintainToolPalettePositionForIE,false);}}
var paletteTop=PaletteWindow.xy[1];var paletteHeight=PaletteWindow.size.height;var windowHeight=Ext.isIE?document.documentElement.clientHeight:window.innerHeight;if((paletteTop+paletteHeight)>windowHeight){PaletteWindow.moveTo(PaletteWindow.xy[0],100);}}
for(var count=WindowConfigs.length-1;count>=0;count--){var WindowConfig=WindowConfigs[count];el=document.getElementById(WindowConfig.el);form=document.getElementById('frmMain');form.appendChild(el);var basicDialog=new Ext.BasicDialog(el,WindowConfig.config);if(typeof(WindowConfig.tabChangeCallback)=="function"){basicDialog.getTabs().on("tabchange",WindowConfig.tabChangeCallback);}
Windows[WindowConfig.name]=basicDialog;if(PalleteWindowOveride==WindowConfig.name){PaletteWindow=Windows[WindowConfig.name];}
Windows[WindowConfig.name].restoreState();if(WindowConfig.showOnLoad){Windows[WindowConfig.name].show();}
Ext.each(WindowConfig.buttons,function(btn){var windowName=WindowConfig.name;switch(btn.button){case"cancel":Windows[WindowConfig.name].addButton(btn.text,function(e){Windows[windowName].hide();});break;default:var controlIdForPostback=WindowConfig.controlId;Windows[WindowConfig.name].addButton(btn.text,function(e){Windows[windowName].hide();__doPostBack(controlIdForPostback,btn.button);});break;}});Windows[WindowConfig.name].on('resize',function(win,width,height){Ext.get('floatingwindowW_'+win.name).dom.value=width;Ext.get('floatingwindowH_'+win.name).dom.value=height;if(win.postbackonresize){Ext.get('floatingwindowEvent_'+win.name).dom.value='Resize';__doPostBack(win.el.id,'');}});Windows[WindowConfig.name].on('hide',function(win){if(win.postbackonclose){Ext.get('floatingwindowEvent_'+win.name).dom.value='WinClose';__doPostBack(win.el.id,'');}});Windows[WindowConfig.name].body.dom.style.display='block';}
for(var count=0;count<Draggables.length;count++){var element=Draggables[count].element;var dropCallback=Draggables[count].dropCallback;var autoPostBack=Draggables[count].autoPostBack;var groups=Draggables[count].groups;MakeDraggable(element,dropCallback,autoPostBack,groups);}
for(var count=0;count<Droppables.length;count++){MakeDroppable(Droppables[count].src,Droppables[count].groups);}
for(var count=0;count<SortableConfigs.length;count++){MakeSortable(SortableConfigs[count].name,SortableConfigs[count].src);}}
function MakeDraggable(src,dropCallback,autoPostBack,customGroups){if(Ext.get(src)==null){return;}
var draggableElement=document.getElementById(src);if(draggableElement){var el=new Ext.dd.DragSource(src,{revert:false});if(customGroups!=undefined&&customGroups.length>0){el.removeFromGroup('default');Ext.each(customGroups.split(','),function(g){el.addToGroup(g);});}
el.onBeforeDrag=function(data,evt){DropLocked=false;}
el.afterDragDrop=function(trgt,evt,id){if(DropLocked)return false;DropLocked=true;var y="";for(var x in el.groups){y+=x+" : "+el.groups[x]+"\n";}
var sourceElement=document.getElementById(this.id);var targetElement=document.getElementById(trgt.id);var sourceData=sourceElement.getAttribute("data");var targetData=targetElement.getAttribute("data");if(dropCallback!=null&&typeof(dropCallback)=="function"&&window.dropCallback){dropCallback.call(this,sourceElement,targetElement,sourceData,targetData);}
DropElement(this,trgt);if(autoPostBack){__doPostBack(sourceElement.getAttribute("name"),sourceData+"|"+targetData);}}
if(PaletteWindow?true:false){var title=draggableElement.title?draggableElement.title:'';draggableElement.onmouseover=function(){if(!MouseDown){PaletteWindow.footer.dom.innerHTML='<strong style="font-weight: bold; color: #000">'+title+'</strong>';window.status=title;}}
draggableElement.onmouseout=function(){if(!MouseDown){PaletteWindow.footer.dom.innerHTML='';window.status='';}}
draggableElement.onmousedown=function(){MouseDown=true;}
draggableElement.onmouseup=function(){MouseDown=false;PaletteWindow.footer.dom.innerHTML='';window.status='';}}}}
function MakeDroppable(src,customGroups){if(Ext.get(src)!=null){var el=new Ext.dd.DropTarget(src,{});if(customGroups.length>0){el.removeFromGroup('default');Ext.each(customGroups.split(','),function(g){el.addToGroup(g);});}}}
function MakeSortable(name,src){var DragTarget;Sortables[name]={Init:function(){DragTarget=new Ext.dd.DDTarget(src);Ext.each(Ext.get(src).dom.childNodes,function(el){var Li=new Ext.dd.DDProxy(el.id,"PageOrder",{});Li.onDrag=function(e){var y=Ext.EventObject.getPageY();if(y<this.lastY){this.goingUp=true;}else if(y>this.lastY){this.goingUp=false;}
this.lastY=y;}
Li.startDrag=function(x,y){var dragEl=this.getDragEl();var clickEl=this.getEl();dragEl.innerHTML=clickEl.innerHTML;dragEl.style.backgroundColor='#fff';}
Li.onDragOver=function(e,id){var srcEl=this.getEl();var destEl=Ext.get(id).dom;if(destEl.nodeName.toLowerCase()=="li"){var dstParentEl=destEl.parentNode;if(this.goingUp){dstParentEl.insertBefore(srcEl,destEl);}else{dstParentEl.insertBefore(srcEl,destEl.nextSibling);}
Ext.dd.DragDropMgr.refreshCache({PageOrder:true})}}
Li.endDrag=function(e){var srcEl=this.getEl();}})},GetOrder:function(){var t="";Ext.each(DragTarget.getEl().childNodes,function(el){if(el.nodeName.toLowerCase()=='li'){if(t!="")
t+=",";t+=el.id;}});return t;}}
Sortables[name].Init();}
function DropElement(element,position){if(element.id.indexOf("esctl_")!=-1){var DragPos=parseInt(element.id.substr(element.id.lastIndexOf("_")+1));var DropPos=parseInt(position.id.substr(position.id.lastIndexOf("_")+1));var ElementId=element.id.substr(element.id.indexOf("_")+1,(element.id.indexOf("_",element.id.indexOf("_")+1)-1)-element.id.indexOf("_"));if(DragPos==DropPos||DropPos==(DragPos+1))return;var Move=0;if(DropPos<DragPos){Move=0-(DragPos-DropPos);}else{Move=(DropPos-1)-DragPos;}
document.getElementById('PostbackAction').value='ReorderElements';document.getElementById('PostbackData').value=ElementId+'|'+Move;__doPostBack("","");}else if(element.id.indexOf("TemplateElement_")!=-1){var DropPos=parseInt(position.id.substr(position.id.lastIndexOf("_")+1));var ElementType=element.id.substr(element.id.lastIndexOf("_")+1);document.getElementById('PostbackAction').value='InsertElement';document.getElementById('PostbackData').value=ElementType+'|'+DropPos;__doPostBack("","");}else if(element.id.indexOf(PalleteElementPrefix)!=-1||element.id.indexOf(RepositionElementPrefix)!=-1){if(element.id.indexOf(RepositionElementPrefix)!=-1){document.getElementById('PostbackAction').value='RepositionElement';}else{document.getElementById('PostbackAction').value='InsertElement';}
document.getElementById('PostbackData').value=element.id+'|'+position.id;__doPostBack("","");}}
return{SetPalleteWindow:function(palleteWindowName){PalleteWindowOveride=palleteWindowName;},SetPalleteElementPrefix:function(prefix){PalleteElementPrefix=prefix;},SetRepositionElementPrefix:function(prefix){RepositionElementPrefix=prefix;},AddDraggable:function(src,groups){this.AddDraggableAndHandlers(src,null,false,groups);},AddDraggableAndHandlers:function(src,dropCallback,autoPostBack,groups){if(IsLoaded){MakeDraggable(src,dropCallback,autoPostBack,groups);}
else{Draggables[Draggables.length]={element:src,dropCallback:dropCallback,autoPostBack:autoPostBack,groups:groups};}},AddDroppable:function(src,customGroups){if(IsLoaded){MakeDroppable(src,customGroups);}
else{Droppables[Droppables.length]={src:src,groups:customGroups};}},AddSortable:function(name,src){if(IsLoaded){MakeSortable(name,src);}else{SortableConfigs[SortableConfigs.length]={name:name,src:src};}},AddStartUpAction:function(script){StartupActions[StartupActions.length]=script;},Init:function(){window.setTimeout(function(){Ext.enableGarbageCollector=true;Ext.enableListenerCollection=true;IsLoaded=true;Setup();if(typeof(Editor)=='object'){Editor.Init();}
Ext.EventManager.on(document.forms[0],'submit',function(){SaveWindowScrollPos();});Ext.each(StartupActions,function(action){action();});},100);},AddWindow:function(name,el,config,showOnLoad,postbackOnResize,postbackOnClose,buttons,controlId,tabChangeCallback){WindowConfigs[WindowConfigs.length]={name:name,el:el,config:config,showOnLoad:showOnLoad,postbackOnResize:(postbackOnResize?postbackOnClose:false),postbackOnClose:(postbackOnClose?postbackOnClose:false),buttons:buttons,controlId:controlId,tabChangeCallback:tabChangeCallback}},GetWindow:function(name){return Windows[name];},GetSortable:function(name){return Sortables[name];}};}();addOnLoadEvent(EasySiteGUI.Init);