
if(ScriptRegister==null)var ScriptRegister=[];ScriptRegister.YUIObjectWrappers=true;var ProgressIndicator=null;var DialogBox=null;YUIWrapper={};YUIWrapper.BuildGlobalObjects=function(){ProgressIndicator=new YAHOO.widget.Panel("wait",{width:"240px",fixedcenter:true,close:false,draggable:false,zindex:4,modal:true,visible:false});ProgressIndicator.setHeader("Loading, please wait...");ProgressIndicator.setBody('<img src="look/CrusherNetAdmin/AdminBar/images/rel_interstitial_loading.gif" />');ProgressIndicator.render(document.body);DialogBox=new YAHOO.widget.SimpleDialog("dialogbox",{width:"300px",fixedcenter:true,visible:false,draggable:false,close:true,text:"Do you want to continue?",icon:YAHOO.widget.SimpleDialog.ICON_HELP,constraintoviewport:true,buttons:[{text:"Yes",handler:function(){},isDefault:true},{text:"No",handler:function(){}}]});DialogBox.setHeader("Alert");DialogBox.render("CrusherAdmin");}
YUIWrapper.CrusherTreeView=function(appObj,containerElementId,dataSourceURL,config){this.appObj=appObj;this.dataSourceURL=dataSourceURL;if(!config){config={};}
if(!config.nodeActionHandlers)config.nodeActionHandlers=null;if(!config.contextMenuItems)config.contextMenuItems=null;if(!config.ddConfig)config.ddConfig=null;if(!config.renderDynamic)config.renderDynamic=null;if(!config.afterLoadCallback)config.afterLoadCallback=null;this.nodeActionHandlers=config.nodeActionHandlers;this.contextMenuItems=config.contextMenuItems;this.ddConfig=config.ddConfig;this.renderDynamic=config.renderDynamic;this.afterLoadCallback=config.afterLoadCallback;this.oTextNodeMap={};this.activeNode=null;this.isFirstLoad=true;this.nodes=[];this.indexArray=[];this.contextMenus=[];var outerContainer=YAHOO.util.Dom.get(containerElementId);this.uniqueElId=containerElementId+'_TreeView';var treeViewContainer=YAHOO.util.Dom.get(this.uniqueElId);if(!treeViewContainer)treeViewContainer=Crusher.Dom.createElement('div',outerContainer,[['id',this.uniqueElId]]);var tvObj=this;var DnDManager=null;this.render=function(){var callback={success:function(oResponse){if(oResponse.responseText!=""){var oResults=eval("("+oResponse.responseText+")");if((oResults)&&(oResults.length)){if(YAHOO.lang.isArray(oResults)){tvObj.buildTree(oResults);}}}
ProgressIndicator.hide();},failure:function(oResponse){ProgressIndicator.hide();},timeout:30000};ProgressIndicator.show();YAHOO.util.Connect.asyncRequest('GET',this.dataSourceURL,callback);}
this.getTree=function(){return this.tree;}
this.buildTree=function(data){this.tree=new YAHOO.widget.TreeView(this.uniqueElId);if(this.renderDynamic){this.tree.setDynamicLoad(function(node,fnLoadComplete){if(tvObj.renderDynamic&&tvObj.isFirstLoad){tvObj.loadNodeData(node,fnLoadComplete,function(tree){if(tvObj.afterLoadCallback){tvObj.afterLoadCallback(tree);}
tvObj.isFirstLoad=false;});}else{tvObj.loadNodeData(node,fnLoadComplete);}},0);}
var root=this.tree.getRoot();this.addNodesToTree(root,data);this.addNodeMouseHandlers();this.tree.subscribe("expandComplete",function(node){});if(this.nodeActionHandlers&&this.nodeActionHandlers.expand){this.tree.subscribe("expand",function(node){tvObj.nodeActionHandlers.expand(node);});}
if(this.nodeActionHandlers&&this.nodeActionHandlers.collapse){this.tree.subscribe("collapse",function(node){tvObj.nodeActionHandlers.collapse(node);});}
if(this.nodeActionHandlers&&this.nodeActionHandlers.labelClick){this.tree.subscribe("labelClick",function(node){tvObj.nodeActionHandlers.labelClick(node);appObj.treeView.resetHighlightedNode();tvObj.activeNode=node;});}
this.tree.draw();this.addContextMenus();root.children[0].expand();if(!tvObj.renderDynamic&&tvObj.afterLoadCallback){tvObj.afterLoadCallback(this.tree);tvObj.isFirstLoad=false;}}
this.loadNodeData=function(node,fnLoadComplete,afterLoadCallback){if(node.depth>=1){var callback={success:function(oResponse){if(oResponse.responseText!=""){var oResults=eval("("+oResponse.responseText+")");tvObj.addNodesToTree(node,oResults,node.data.level)
tvObj.tree.getRoot().refresh();tvObj.addContextMenus();tvObj.addNodeMouseHandlers();fnLoadComplete();if(afterLoadCallback)afterLoadCallback(node.tree);}else{alertError('Failed to load tree data. Please refresh the page.');}},failure:function(oResponse){},argument:{},timeout:30000};var url=tvObj.dataSourceURL;url+='&subaction=loadnextlevel';url+='&id='+node.data.id;url+='&siteId='+node.data.siteId;url+='&syncsites='+(node.data.syncsites?"1":"0");YAHOO.util.Connect.asyncRequest("GET",url,callback);}else{fnLoadComplete();if(afterLoadCallback)afterLoadCallback(node.tree);}}
var activeMoBox=null;this.addNodesToTree=function(parentNode,nodes,level){if(!parentNode&&!nodes)return;if(level==null||level==undefined)level=0;else level++;for(var i=0,j=nodes.length;i<j;i++){var obj={label:nodes[i].name,id:nodes[i].id,siteId:nodes[i].siteId,linkingId:nodes[i].linkingId,tablename:nodes[i].tablename,order:i,link:'',locked:(nodes[i].locked==1),showmenu:(nodes[i].showmenu==1),syncsites:(nodes[i].syncsites==1)};if(nodes[i].link){obj.link=nodes[i].link;}
var tempNode=new YAHOO.widget.TextNode(obj,parentNode,false);tempNode.renderHidden=true;if(this.ddConfig.enabled){DnDManager.addListener(this.ddConfig.type,tempNode.getElId(),this);}
this.oTextNodeMap[tempNode.labelElId]=tempNode;if(!this.nodes[level]){this.nodes[level]=[];this.nodes[level][0]=tempNode.getElId();}else{var cIndex=this.nodes[level].length;this.nodes[level][cIndex]=tempNode.getElId();}
this.addNodesToTree(tempNode,nodes[i].subnodes,level);this.indexArray[this.indexArray.length]=tempNode.index;}}
this.highlightNode=function(node){if(this.activeNode){this.resetHighlightedNode();}
node.highlight(true);this.activeNode=node;}
this.resetHighlightedNode=function(){if(this.activeNode){this.activeNode.unhighlight(true);}}
this.nodePositionChanged=function(node){var nOrder=0;var _child=node.parent.children;if(_child&&_child.length>0){for(var i=0;i<_child.length;i++){node.parent.children[i].data.order=i;if(_child[i]==node){nOrder=i;}}}
if(this.appObj['TreeDragNDrop_NODERELEASED']){this.appObj['TreeDragNDrop_NODERELEASED'](node,node.parent,nOrder);}}
this.addNodeMouseHandlers=function(){var tree=this.tree;var treeObj=this;for(var i=0;i<this.indexArray.length;i++){YAHOO.util.Event.addListener('ygtvlabelel'+this.indexArray[i],'mouseover',function(e){var target=YAHOO.util.Event.getTarget(e);var node=tree.getNodeByElement(target);var siteParent=node.getAncestor(1);if(node.depth>0&&!node.data.locked){if(target.id!='ygtvlabelel'+node.index){target=document.getElementById('ygtvlabelel'+node.index);}
var rect=target.getBoundingClientRect();var pos={};pos.x=YAHOO.util.Dom.getX(target)+target.scrollWidth-4;pos.y=YAHOO.util.Dom.getY(target);var moBox=document.getElementById('mo-box-'+node.getElId());if(moBox){moBox.style.display='block';moBox.style.left=pos.x+"px";moBox.style.top=pos.y+"px";}else{moBox=Crusher.Dom.createElement('div',target.parentNode,[['id','mo-box-'+node.getElId()],['class','yui-node-mobox'],['style','left:'+pos.x+'px;top:'+pos.y+'px;border: 1px solid transparent;']]);YAHOO.util.Event.addListener(moBox,'mouseover',function(e){moBox.style.display='block';});YAHOO.util.Event.addListener(moBox,'mouseout',function(e){moBox.style.display='none';});YAHOO.util.Event.addListener(moBox,'click',function(e){YAHOO.util.Event.stopEvent(e);});function upButtonClick(e){var childs=node.parent.children;var nParent=node.parent;var prevNode=null;for(var x=0;x<childs.length;x++){if(childs[x]==node){if(prevNode){tree.popNode(node);node.insertBefore(prevNode);treeObj.nodePositionChanged(node);}
else{var nodePP=node.parent.parent;if(nodePP){var ppChilds=nodePP.children;var ppPrevNode=null;for(var y=0;y<ppChilds.length;y++){if(ppChilds[y]==node.parent){if(ppPrevNode){tree.popNode(node);node.appendTo(ppPrevNode);treeObj.nodePositionChanged(node);ppPrevNode.expand();}
y=ppChilds.length+1;}
ppPrevNode=ppChilds[y];}}}
x=childs.length+1;}
prevNode=childs[x];}
tree.getRoot().refresh();treeObj.addNodeMouseHandlers();treeObj.addContextMenus();}
function downButtonClick(e){var childs=node.parent.children;var nextNode=null;for(var x=childs.length-1;x>-1;x--){if(childs[x]==node){if(nextNode){tree.popNode(node);node.insertAfter(nextNode);treeObj.nodePositionChanged(node);}
else{var nodePP=node.parent.parent;if(nodePP){var ppChilds=nodePP.children;var ppNextNode=null;for(var y=ppChilds.length-1;y>-1;y--){if(ppChilds[y]==node.parent){if(ppNextNode){tree.popNode(node);if(ppNextNode.children.length>0){node.insertBefore(ppNextNode.children[0]);}else{node.appendTo(ppNextNode);}
treeObj.nodePositionChanged(node);ppNextNode.expand();}
y=0;}
ppNextNode=ppChilds[y];}}}
x=0;}
nextNode=childs[x];}
tree.getRoot().refresh();treeObj.addNodeMouseHandlers();treeObj.addContextMenus();}
function leftButtonClick(e){if(node.parent){var nParent=node.parent;tree.popNode(node);node.insertAfter(nParent);treeObj.nodePositionChanged(node);tree.getRoot().refresh();treeObj.addNodeMouseHandlers();treeObj.addContextMenus();}}
function rightButtonClick(e){var childs=node.parent.children;var nParent=node.parent;var prevNode=null;function shiftNode(nNode,nPrevNode){tree.popNode(nNode);nNode.appendTo(nPrevNode);treeObj.nodePositionChanged(nNode);nPrevNode.parent.refresh();}
for(var x=0;x<childs.length;x++){if(childs[x]==node){if(prevNode){if(prevNode.isDynamic()&&!prevNode.dynamicLoadComplete){var onExpand=function(eNode,obj){tree.unsubscribe('expandComplete',onExpand);var oPrevNode=tree.getNodeByIndex(obj.prevNodeIndex);shiftNode(node,oPrevNode);tree.getRoot().refresh();treeObj.addNodeMouseHandlers();treeObj.addContextMenus();}
tree.subscribe('expandComplete',onExpand,{prevNodeIndex:prevNode.index});prevNode.expand();}else{shiftNode(node,prevNode);}}
x=childs.length+1;}
prevNode=childs[x];}
tree.getRoot().refresh();treeObj.addNodeMouseHandlers();treeObj.addContextMenus();}
var upBtn=Crusher.Dom.createElement('div',moBox,[['class','btn up-btn'],['title','Shift in up']]);YAHOO.util.Event.addListener(upBtn,'click',upButtonClick);YAHOO.util.Event.addListener(upBtn,'mouseover',function(e){YAHOO.util.Dom.addClass(upBtn,'Hover');});YAHOO.util.Event.addListener(upBtn,'mouseout',function(e){YAHOO.util.Dom.removeClass(upBtn,'Hover');});var dwnBtn=Crusher.Dom.createElement('div',moBox,[['class','btn dwn-btn'],['title','Shift up down']]);YAHOO.util.Event.addListener(dwnBtn,'click',downButtonClick);YAHOO.util.Event.addListener(dwnBtn,'mouseover',function(e){YAHOO.util.Dom.addClass(dwnBtn,'Hover');});YAHOO.util.Event.addListener(dwnBtn,'mouseout',function(e){YAHOO.util.Dom.removeClass(dwnBtn,'Hover');});if(treeObj.ddConfig.type!="samelevelonly"){if(!(siteParent.data.syncsites&&node.depth==3)){var leftBtn=Crusher.Dom.createElement('div',moBox,[['class','btn left-btn'],['title','Shift out one level']]);YAHOO.util.Event.addListener(leftBtn,'click',leftButtonClick);YAHOO.util.Event.addListener(leftBtn,'mouseover',function(e){YAHOO.util.Dom.addClass(leftBtn,'Hover');});YAHOO.util.Event.addListener(leftBtn,'mouseout',function(e){YAHOO.util.Dom.removeClass(leftBtn,'Hover');});}
var rightBtn=Crusher.Dom.createElement('div',moBox,[['class','btn right-btn'],['title','Shift in one level']]);YAHOO.util.Event.addListener(rightBtn,'click',rightButtonClick);YAHOO.util.Event.addListener(rightBtn,'mouseover',function(e){YAHOO.util.Dom.addClass(rightBtn,'Hover');});YAHOO.util.Event.addListener(rightBtn,'mouseout',function(e){YAHOO.util.Dom.removeClass(rightBtn,'Hover');});}}}});YAHOO.util.Event.addListener('ygtvlabelel'+this.indexArray[i],'mouseout',function(e){var target=YAHOO.util.Event.getTarget(e);var node=tree.getNodeByElement(target);var el=document.getElementById('mo-box-'+node.getElId());if(el){el.style.display='none';}});}}
this.addContextMenus=function(){for(var i=0;i<this.contextMenus.length;i++){if(this.contextMenus[i])this.contextMenus[i].destroy();delete this.contextMenus[i];}
function onTriggerContextMenu(p_oEvent){var oTarget=this.contextEventTarget;var Dom=YAHOO.util.Dom;var oTextNode=Dom.hasClass(oTarget,"ygtvlabel")?oTarget:Dom.getAncestorByClassName(oTarget,"ygtvlabel");if(oTextNode){tvObj.currentNode=tvObj.oTextNodeMap[oTarget.id];}else{this.cancel();}}
var lastMenuIndex=0;var tmpMenus=[];for(var i=0;i<this.indexArray.length;i++){var index=this.indexArray[i];var node=this.tree.getNodeByIndex(index);var menuItemsToUse=this.contextMenuItems[node.depth];if(menuItemsToUse){tmpMenus[node.depth]=menuItemsToUse;}else{for(var x=node.depth-1;x>=0;x--){if(tmpMenus[x]){menuItemsToUse=tmpMenus[x];x=-1;}}}
if(!node.data.showmenu){menuItemsToUse=[];}
var oContextMenu=new YAHOO.widget.ContextMenu("tree-context-menu-"+this.uniqueId+"-"+index,{trigger:'ygtv'+index,lazyload:true,itemdata:menuItemsToUse});oContextMenu.subscribe("triggerContextMenu",onTriggerContextMenu);this.contextMenus[this.contextMenus.length]=oContextMenu;}}
this.addNode=function(parentNode,sLabel,sId,sSiteId,sTablename,link,locked,showmenu,syncsites,linkingId,dontRefreshMenusAndHandlers){if(parentNode&&sLabel&&sLabel.length>0){var order=0;var c=parentNode.children;if(c&&c.length>0){order=c[c.length-1].data.order+1;}
var obj={label:sLabel,id:sId,siteId:sSiteId,tablename:sTablename,order:order,link:link,linkingId:linkingId,locked:(locked==1),showmenu:(showmenu==1),syncsites:(syncsites==1)};oChildNode=new YAHOO.widget.TextNode(obj,parentNode,false);oChildNode.renderHidden=true;if(this.ddConfig.enabled){DnDManager.addListener(this.ddConfig.type,oChildNode.getElId(),this);}
var level=parentNode.depth+1;if(!this.nodes[level]){this.nodes[level]=[];this.nodes[level][0]=oChildNode.getElId();}else{var cIndex=this.nodes[level].length;this.nodes[level][cIndex]=oChildNode.getElId();}
parentNode.refresh();parentNode.expand();this.oTextNodeMap[oChildNode.labelElId]=oChildNode;this.indexArray[this.indexArray.length]=oChildNode.index;if(!dontRefreshMenusAndHandlers){this.addContextMenus();this.addNodeMouseHandlers();}
return oChildNode;}}
this.updateNodeLabel=function(node,newLabel){if(newLabel&&newLabel.length>0){node.data.label=newLabel;node.label=newLabel;node.getLabelEl().innerHTML=newLabel;}}
this.deleteNode=function(node,dontRefresh){delete this.oTextNodeMap[node.getElId()];var parentNode=node.getAncestor(node.depth-1);var level=node.depth;var cIndex=0;if(this.nodes[level]){for(var i=0;i<this.nodes[level].length;i++){if(this.nodes[level][i]==node.getElId()){this.nodes[level][i]="";this.nodes[level].splice(i,1);}}}
for(var i=0;i<this.indexArray.length;i++){if(this.indexArray[i]==node.index){this.indexArray[i]="";this.indexArray.splice(i,1);}}
this.tree.removeNode(node,false);if(!dontRefresh){parentNode.refresh();this.tree.getRoot().refresh();this.addContextMenus();}}
this.getCurrentNode=function(){return this.currentNode;}
this.setCurrentNode=function(node){this.currentNode=node;this.activeNode=node;}
this.destroy=function(){for(var i=0;i<this.contextMenus.length;i++){if(this.contextMenus[i])this.contextMenus[i].destroy();delete this.contextMenus[i];}
this.tree.destroy();}
this.addDDLinks=function(nodes){for(var i=0;i<nodes.length;i++){DnDManager.addListener(this.ddConfig.type,nodes[i].getElId(),appObj);this.addDDLinks(nodes[i].children);}}}
YUIWrapper.DragNDropManager=function(treeViewObj){this.treeViewObj=treeViewObj;var mngrObj=this;var listeners=[];var activeNode=null;var activeNodeId=0;var dropToNode=null;var activeListener=null;var dragEl=null;var direction=0;var lastPos=0;YAHOO.util.Event.addListener(treeViewObj.getTree().getEl(),'mousemove',function(e){var posx=0;var posy=0;if(!e)var e=window.event;if(e.pageX||e.pageY){posx=e.pageX;posy=e.pageY;}
else if(e.clientX||e.clientY){posx=e.clientX+document.body.scrollLeft
+document.documentElement.scrollLeft;posy=e.clientY+document.body.scrollTop
+document.documentElement.scrollTop;}
if(posy<lastPos)direction=1;else if(posy>lastPos)direction=2;else direction=0;lastPos=posy;});this.addListener=function(type,id,sGroup,config){var listener=new this.DragNDropSend(type,id,sGroup,config);}
this.clearListeners=function(){listeners=[];}
this.DragNDropSend=function(type,id,sGroup,config){if(!id)return;this.treeView=mngrObj.treeViewObj;this.tree=mngrObj.treeViewObj.tree;this.type=type;this.init(id,sGroup,config);this.initFrame();var s=this.getDragEl().style;s.borderColor="#CCC";s.backgroundColor="#f6f5e5";s.opacity=0.50;s.filter="alpha(opacity=50)";var dndObj=this;this.onDragDrop=function(e,id){if(!mngrObj.dropToNode)return;var src=this.tree.getNodeByElement(document.getElementById(this.getEl().id));var dest=mngrObj.dropToNode;if(id!=mngrObj.dropToNode.getElId())return;this.onDragOut(e,id);var validDD=false;var order=0;var dropNodeEl=mngrObj.activeListener.getEl();var dTopY=dropNodeEl.getClientRects()[0].top;var sTopY=mngrObj.dragEl.getClientRects()[0].top;var delta=dTopY-sTopY;var dist=Math.abs(dTopY-sTopY);var obj={label:src.data.label,id:src.data.id,tablename:src.data.tablename,order:src.data.order,link:src.data.link};if(this.type.toString()=="samelevelonly"){if(dest.depth==src.depth-1){if(mngrObj.activeListener.depth==src.depth){if(delta>0){this.tree.popNode(src);src.insertBefore(mngrObj.activeListener);}else{this.tree.popNode(src);src.insertAfter(mngrObj.activeListener);}
validDD=true;}
else if(mngrObj.activeListener.depth==src.depth-1){this.tree.popNode(src);src.appendTo(dest);validDD=true;}
dest.expand();}}
else if(this.type.toString()=="anylevel"){if(dist>=5){if(direction==1){this.tree.popNode(src);src.insertBefore(mngrObj.activeListener);}else{this.tree.popNode(src);src.insertAfter(mngrObj.activeListener);}
dest=mngrObj.activeListener.parent;validDD=true;}else{this.tree.popNode(src);nSrcNode.appendTo(dest);validDD=true;}
dest.expand();}
function onNodeRefresh(node){checkandfixDNDEl(node.getElId());for(var i=0;i<node.children.length;i++){onNodeRefresh(node.children[i]);}}
function checkandfixDNDEl(elid){var DDM=YAHOO.util.DragDropMgr;var ddi=DDM.getDDById(elid);if(ddi===null){return;}
if(!DDM.verifyEl(ddi._domRef)){ddi._domRef=0;if(ddi.hasEvent("mouseDownEvent")){YAHOO.util.Event.on(elid,"mousedown",ddi.handleMouseDown,ddi,true);}}}
if(validDD){src.refresh();this.tree.getRoot().refresh();onNodeRefresh(this.tree.getRoot());mngrObj.treeViewObj.addContextMenus();mngrObj.treeViewObj.addNodeMouseHandlers();var _child=dest.children;var _child=dest.children;if(_child&&_child.length>0){for(var i=0;i<_child.length;i++){dest.children[i].data.order=i;if(_child[i]==src){order=i;}}}
if(this.treeView.appObj['TreeDragNDrop_NODERELEASED']){this.treeView.appObj['TreeDragNDrop_NODERELEASED'](src,dest,order);}}
mngrObj.dropToNode=null;mngrObj.activeListener=null;}
this.startDrag=function(x,y){var dragEl=this.getDragEl();var clickEl=this.getEl();dragEl.innerHTML=clickEl.innerHTML;dragEl.className=clickEl.className;dragEl.style.color=clickEl.style.color;dragEl.style.border="1px dashed #DDD";dragEl.style.fontSize="80%";mngrObj.dragEl=dragEl;mngrObj.activeNodeId=clickEl.id;}
this.onDragEnter=function(e,id){}
this.onDragOver=function(e,id){var src=this.getEl();var el;if("string"==typeof id){el=YAHOO.util.DDM.getElement(id);}else{el=YAHOO.util.DDM.getBestMatch(id).getEl();}
var node=this.tree.getNodeByElement(el);var srcnode=this.tree.getNodeByElement(src);if(node==mngrObj.treeViewObj.tree.getRoot().children[0])return;if(this.type.toString()=="samelevelonly"){if(node.depth==srcnode.depth-1){mngrObj.dropToNode=node;}}else if(this.type.toString()=="anylevel"){mngrObj.dropToNode=node;}
if(id!=mngrObj.activeNodeId){if(mngrObj.activeListener)mngrObj.activeListener.getEl().style.border="0px";mngrObj.activeListener=node;}
var dropNodeEl=mngrObj.activeListener.getEl();var dTopY=dropNodeEl.getClientRects()[0].top;var sTopY=mngrObj.dragEl.getClientRects()[0].top;var delta=dTopY-sTopY;var dist=Math.abs(dTopY-sTopY);if(dist<5){el.style.border="2px dashed #0026FF";}else{if(delta>0){el.style.borderTop="2px dashed #0026FF";}else{el.style.borderBottom="2px dashed #0026FF";}}}
this.onDragOut=function(e,id){var el;if("string"==typeof id){el=YAHOO.util.DDM.getElement(id);}else{el=YAHOO.util.DDM.getBestMatch(id).getEl();}
el.style.border="";}
this.endDrag=function(e){var dragEl=this.getDragEl();var clickEl=this.getEl();dragEl.innerHTML="";}}
this.DragNDropSend.prototype=new YAHOO.util.DDProxy();}
YUIWrapper.CrusherDataTable=function(containerElement,dataSource,appObj,configObj){if(!dataSource)return;this.dataSource=dataSource;this.appObj=appObj;this.configObj=configObj;if(!ProgressIndicator){YUIWrapper.BuildGlobalObjects();}
var outerContainer=null;if(typeof(containerElement)=='string'){outerContainer=YAHOO.util.Dom.get(containerElement);}else{outerContainer=containerElement;}
this.uniqueNo=Math.floor(Math.random()*1000);this.uniqueElId="datatable-"+this.uniqueNo;var searchContainer=Crusher.Dom.createElement('div',outerContainer,[['id','searchbox-'+this.uniqueNo]]);this.searchContainer=searchContainer;var dtContainer=Crusher.Dom.createElement('div',outerContainer,[['id',this.uniqueElId]]);this.dtContainer=dtContainer;var dtObj=this;this.render=function(){var callback={success:function(oResponse){if(oResponse.responseText!=""){var columndefs=[];var schema=[];var data={};eval(oResponse.responseText);dtObj.columndefs=columndefs;dtObj.schema=schema;dtObj.data=data;dtObj.buildSearchArea();dtObj.buildDataTable();}
ProgressIndicator.hide();},failure:function(oResponse){ProgressIndicator.hide();},timeout:30000};if(typeof(dataSource)=='object'){dtObj.columndefs=dataSource.columndefs;dtObj.schema=dataSource.schema;dtObj.data=dataSource.data;dtObj.buildSearchArea();dtObj.buildDataTable();}else{ProgressIndicator.show();YAHOO.util.Connect.asyncRequest('GET',this.dataSource,callback);}}
this.buildDataTable=function(data){var tableData=this.data;if(data){tableData=data;}
var dataSource=new YAHOO.util.DataSource(tableData);dataSource.responseType=YAHOO.util.DataSource.TYPE_JSARRAY;dataSource.responseSchema={fields:this.schema};var rowsPerPage=15;if(this.configObj&&this.configObj.rowsPerPage)rowsPerPage=this.configObj.rowsPerPage;var oConfigs={paginator:new YAHOO.widget.Paginator({rowsPerPage:rowsPerPage})};if(this.dataTable)
this.dataTable.destroy();this.dataTable=new YAHOO.widget.DataTable(this.dtContainer,this.columndefs,dataSource,oConfigs);this.dataTable.subscribe("cellMouseoverEvent",function(oArgs){var target=oArgs.target;var column=dtObj.dataTable.getColumn(target);if(dtObj.isButton(column.key)){if(YAHOO.util.Dom.hasClass(target,'Hover')){YAHOO.util.Dom.removeClass(target,'Hover');}else{YAHOO.util.Dom.addClass(target,'Hover');}}});this.dataTable.subscribe("cellMouseoutEvent",function(oArgs){var target=oArgs.target;var column=dtObj.dataTable.getColumn(target);if(dtObj.isButton(column.key)){if(YAHOO.util.Dom.hasClass(target,'Hover')){YAHOO.util.Dom.removeClass(target,'Hover');}else{YAHOO.util.Dom.addClass(target,'Hover');}}});this.dataTable.subscribe("cellClickEvent",function(oArgs){var target=oArgs.target;var column=dtObj.dataTable.getColumn(target);var clickHandled=false;if(dtObj.isButton(column.key)){var action="DataTableRow_"+dtObj.getButtonAction(column.key).toUpperCase();if(action&&dtObj.appObj[action]){clickHandled=dtObj.appObj[action](dtObj.dataTable,oArgs);}}
if(!clickHandled){dtObj.dataTable.onEventShowCellEditor(oArgs);}});this.dataTable.render();}
this.buildSearchArea=function(){var searchContainer=Crusher.Dom.createElement('div',this.searchContainer,[['class','dt-search-box']]);var label=Crusher.Dom.createElement('label',searchContainer,[['for','searchbox']]);var textBox=Crusher.Dom.createElement('input',searchContainer,[['type','text'],['name','searchbox']]);Crusher.Dom.createElement('div',searchContainer,[['class','ClearFloats']]);this.textBox=textBox;label.innerHTML='Filter results';YAHOO.util.Event.addListener(textBox,'keypress',this.searchBoxKeyPress.bind(this));}
this.searchBoxKeyPress=function(e){if(this.searchTimer)clearTimeout(this.searchTimer);this.searchTimer=setTimeout(this.searchDataTable.bind(this),500);}
this.searchDataTable=function(){var searchText=this.textBox.value;var dataShortList=[];if(searchText!=""){var fullDisplayData=this.data;searchText=searchText.toLowerCase();var searchCols=['seriesid','name'];for(var i=0,ci=fullDisplayData.length;i<ci;i++){var dataset=fullDisplayData[i];for(var j=0;j<searchCols.length;j++){var val=searchCols[j].toString();var dataValue=dataset[val].toString().toLowerCase();if(dataValue.indexOf(searchText)>-1){dataShortList.push(dataset);}}}}else{dataShortList=this.data;}
this.buildDataTable(dataShortList);}
this.isButton=function(key){var isButton=false;if(typeof(key)=="string"&&key.length>4){isButton=(key.substr(0,4)=="btn-");}
return isButton;}
this.getButtonAction=function(key){var action="";if(typeof(key)=="string"){action=key.replace(/btn-/,"");}
return action;}
this.getDataTable=function(){return this.dataTable;}}
YUIWrapper.CrusherPopup=function(containerId,title,config){var ppObj=this;if(containerId==null||containerId==undefined||containerId=="")
containerId="resize-container-"+Math.floor(Math.random()*1000);var resizePanel=Crusher.Dom.createElement('div',document.body,[['id',containerId],['class','resizePanel']]);this.headerBar=Crusher.Dom.createElement('div',resizePanel,[['class','hd']]);this.contentArea=Crusher.Dom.createElement('div',resizePanel,[['class','bd']]);this.footerBar=Crusher.Dom.createElement('div',resizePanel,[['class','ft']]);this.closeButton=Crusher.Dom.createElement('div',resizePanel,[['class','hd-close-btn']]);this.width=100;if(config.width&&config.width>100)this.width=config.width;this.height=100;if(config.height&&config.height>100)this.height=config.height;if(title){this.headerBar.innerHTML=title;}
ppObj.panel=new YAHOO.widget.Panel(containerId,{draggable:true,width:ppObj.width+"px",height:ppObj.height+"px",autofillheight:"body",constraintoviewport:true,context:["showbtn","tl","bl"],visible:false,modal:true,close:false});ppObj.panel.render();ppObj.panel.subscribe('beforeShow',function(e){if(ppObj.contentArea&&ppObj.contentArea.firstChild){ppObj.contentArea.firstChild.style.display="block";ppObj.contentArea.firstChild.style.visibility="visible";}});ppObj.resize=new YAHOO.util.Resize(containerId,{handles:["br"],autoRatio:false,minWidth:ppObj.width,minHeight:ppObj.height,status:false});ppObj.resize.on("startResize",function(args){if(this.cfg.getProperty("constraintoviewport")){var D=YAHOO.util.Dom;var clientRegion=D.getClientRegion();var elRegion=D.getRegion(this.element);ppObj.resize.set("maxWidth",clientRegion.right-elRegion.left-YAHOO.widget.Overlay.VIEWPORT_OFFSET);ppObj.resize.set("maxHeight",clientRegion.bottom-elRegion.top-YAHOO.widget.Overlay.VIEWPORT_OFFSET);}else{ppObj.resize.set("maxWidth",null);ppObj.resize.set("maxHeight",null);}},ppObj.panel,true);ppObj.resize.on("resize",function(args){var panelHeight=args.height;this.cfg.setProperty("height",panelHeight+"px");},ppObj.panel,true);this.close=function(){if(config.callback){config.callback();}
ppObj.panel.hide();ppObj.panel.destroy();}
YAHOO.util.Event.addListener(this.closeButton,'click',function(e){ppObj.close();});this.show=function(){ppObj.panel.show();}
this.hide=function(){ppObj.panel.hide();}
this.setTitle=function(title){this.headerBar.innerHTML=title;}
this.setContent=function(content){if(typeof(content)!='string'){this.contentArea.appendChild(content);}else{this.contentArea.innerHTML=content;}}
this.setWidth=function(width){this.panel.cfg.setProperty("width",width+"px");}
this.setHeight=function(height){this.panel.cfg.setProperty("height",height+"px");}}