var confirmDlg;
var dnd =
	{
		widgetID : null,
		container : null,
		containerID : null,
		newWidgetID : null,
		parentID : null,
		page : null,
		server : document.location.hostname,
		servlet : 'iwmanager',
		length : null,
		json : '',
		responseObject : null,
		currentPanel : null,

		setPage : function(page)
			{
				this.page = page;
			},
		init : function()
			{
				var dt1Obj;
				var dt2Obj;
				var dt3Obj;
				var dt4Obj;
				var dt5Obj;
				var dt6Obj;
				var dt7Obj;
				var footerObj;
				var footercol1Obj;
				var footercol2Obj;
				var footercol3Obj;
				var sideContentObj;
				var banner1Obj;
				var banner2Obj;
				var banner3Obj;
				var tabObj;
				var userTabObj;
				var dtcoll = new Array();

		if (typeof (dt1) != 'undefined')
			{
				try
					{
						dt1Obj = dt1.getAllNodes();
						dtcoll.push(dt1);
					}
				catch (e)
					{
					}
			}
		else
			dt1 = new Object();
		if (typeof (dt2) != 'undefined')
			{
				try
					{
						dt2Obj = dt2.getAllNodes();
						dtcoll.push(dt2);
					}
				catch (e)
					{
					}
			}
		else
			dt2 = new Object();
		if (typeof (dt3) != 'undefined')
			{
				try
					{
						dt3Obj = dt3.getAllNodes();
						dtcoll.push(dt3);
					}
				catch (e)
					{
					}
			}
		else
			dt3 = new Object();
		if (typeof (dt4) != 'undefined')
			{
				try
					{
						dt4Obj = dt4.getAllNodes();
						dtcoll.push(dt4);
					}
				catch (e)
					{
					}
			}
		else
			dt4 = new Object();
		if (typeof (dt5) != 'undefined')
			{
				try
					{
						dt5Obj = dt5.getAllNodes();
						dtcoll.push(dt5);
					}
				catch (e)
					{
					}
			}
		else
			dt5 = new Object();
		if (typeof (dt6) != 'undefined')
			{
				try
					{
						dt6Obj = dt6.getAllNodes();
						dtcoll.push(dt6);
					}
				catch (e)
					{
					}
			}
		else
			dt6 = new Object();
		if (typeof (dt7) != 'undefined')
			{
				try
					{
						dt7Obj = dt7.getAllNodes();
						dtcoll.push(dt7);
					}
				catch (e)
					{
					}
			}
		else
			dt7 = new Object();
		
		if (typeof (footer) != 'undefined')
			{
				try
					{
						footerObj = footer.getAllNodes();
						dtcoll.push(footer);
					}
				catch (e)
					{
					}
			}
		else

			footer = new Object();	
		if (typeof (footercol1) != 'undefined')
			{
				try
					{
						footercol1Obj = footercol1.getAllNodes();
						dtcoll.push(footercol1);
					}
				catch (e)
					{
					}
			}
		else

			footercol1 = new Object();
		if (typeof (footercol2) != 'undefined')
			{
				try
					{
						footercol2Obj = footercol2.getAllNodes();
					}
				catch (e)
					{
					}
			}
		else
			footercol2 = new Object();
		if (typeof (footercol3) != 'undefined')
			{
				try
					{
						footercol3Obj = footercol3.getAllNodes();
					}
				catch (e)
					{
					}
			}
		else
			footercol3 = new Object();
		if (typeof (sideContent) != 'undefined')
			{
				try
					{
						sideContentObj = sideContent.getAllNodes();
						dtcoll.push(sideContent);
					}
				catch (e)
					{
					}
			}
		else
			sideContent = new Object();
		if (typeof (banner1) != 'undefined')
			{
				try
					{
						banner1Obj = banner1.getAllNodes();
						dtcoll.push(banner1);
					}
				catch (e)
					{
					}
			}
		else
			banner1 = new Object();
		if (typeof (banner2) != 'undefined')
			{
				try
					{
						banner2Obj = banner2.getAllNodes();
						dtcoll.push(banner2);
					}
				catch (e)
					{
					}
			}
		else
			banner2 = new Object();
		if (typeof (banner3) != 'undefined')
			{
				try
					{
						banner3Obj = banner3.getAllNodes();
						dtcoll.push(banner3);
					}
				catch (e)
					{
					}
			}
		else
			banner3 = new Object();
		if (typeof (tabsDefault) != 'undefined')
			{
				try
					{
						tabObj = tabsDefault.getAllNodes();
					}
				catch (e)
					{
					}
			}
		else
			{
				console.debug('tabsDefault:null');
				tabsDefault = new Object();
			}
		if (typeof (tabsUser) != 'undefined')
			{
				try
					{
						userTabObj = tabsUser.getAllNodes();
					}
				catch (e)
					{
					}
			}
		else
			{
				
				tabsUser = new Object();
			}

		dojo.subscribe("/dnd/drop", function(source, nodes, iscopy)
			{
				var t = dojo.dnd.manager().target;
				if (t == dt1)
					{
						node = dnd.getLastDroppedId(t, dt1Obj);
						console.debug(node);
						dnd.dropWidget(t, source, nodes, node);
						dt1Obj = dt1.getAllNodes();
					}
				if (t == dt2)
					{
						node = dnd.getLastDroppedId(t, dt2Obj);
						dnd.dropWidget(t, source, nodes, node);
						dt2Obj = dt2.getAllNodes();
					}
				if (t == dt3)
					{
						node = dnd.getLastDroppedId(t, dt3Obj);
						dnd.dropWidget(t, source, nodes, node);
						dt3Obj = dt3.getAllNodes();
					}
				if (t == dt4)
					{
						node = dnd.getLastDroppedId(t, dt4Obj);
						dnd.dropWidget(t, source, nodes, node);
						dt4Obj = dt4.getAllNodes();
					}
				if (t == dt5)
					{
						node = dnd.getLastDroppedId(t, dt5Obj);
						dnd.dropWidget(t, source, nodes, node);
						dt5Obj = dt5.getAllNodes();
					}
				if (t == dt6)
					{
						node = dnd.getLastDroppedId(t, dt6Obj);
						dnd.dropWidget(t, source, nodes, node);
						dt6Obj = dt6.getAllNodes();
					}
				if (t == dt7)
					{
						node = dnd.getLastDroppedId(t, dt7Obj);
						dnd.dropWidget(t, source, nodes, node);
						dt7Obj = dt7.getAllNodes();
					}
				if (t == footer)
					{
						node = dnd.getLastDroppedId(t, footerObj);
						dnd.dropWidget(t, source, nodes, node);
						footerObj = footer.getAllNodes();
					}		
					
				if (t == footercol1)
					{
						node = dnd.getLastDroppedId(t, footercol1Obj);
						dnd.dropWidget(t, source, nodes, node);
						footercol1Obj = footercol1.getAllNodes();
					}
				if (t == footercol2)
					{
						node = dnd.getLastDroppedId(t, footercol2Obj);
						dnd.dropWidget(t, source, nodes, node);
						footercol2Obj = footercol2.getAllNodes();
					}
				if (t == footercol3)
					{
						node = dnd.getLastDroppedId(t, footercol3Obj);
						dnd.dropWidget(t, source, nodes, node);
						footercol3Obj = footercol3.getAllNodes();
					}
				if (t == sideContent)
					{
						node = dnd.getLastDroppedId(t, sideContentObj);
						dnd.dropWidget(t, source, nodes, node);
						sideContentObj = sideContent.getAllNodes();
					}
				if (t == banner1)
					{
						node = dnd.getLastDroppedId(t, banner1Obj);
						dnd.dropWidget(t, source, nodes, node);
						banner1Obj = banner1.getAllNodes();
					}
				if (t == banner2)
					{
						node = dnd.getLastDroppedId(t, banner2Obj);
						dnd.dropWidget(t, source, nodes, node);
						banner2Obj = banner2.getAllNodes();
					}
				if (t == banner3)
					{
						node = dnd.getLastDroppedId(t, banner3Obj);
						dnd.dropWidget(t, source, nodes, node);
						banner3Obj = banner3.getAllNodes();
					}

				if (t == tabsDefault)
					{
						node = dnd.getLastDroppedId(t, tabObj);
						console.debug('tabsDefault');
						dnd.moveTabs(t, source, nodes, node);
						tabObj = tabsDefault.getAllNodes();
					}

				if (t == tabsUser)
					{
						node = dnd.getLastDroppedId(t, userTabObj);
						console.debug('tabsUser');
						dnd.moveTabs(t, source, nodes, node);
						userTabObj = tabsUser.getAllNodes();
					}
				if (t == source)
					{	
						try{
						if(menuObj!=null){
							dnd.menuManager.init(menuObj,'move');
						}
						}
						catch(e){
						
						}
						return;
					}
				else if (t.node.id == 'toolBoxSource')
					{
					}
				else
					{
						/*take care of menuMove*/
						try{
						if(menuObj!=null){
							dnd.menuManager.init(menuObj,'move');
						}
						}
						catch(e){
						
						}
						
						/*dnd.dropWidget(t, source, nodes);*/
			}
			dnd.unhighlightTargets(dtcoll);
	}	);

		dojo.subscribe("/dnd/start", function(source, nodes, iscopy)

			{
				dnd.highlightTargets(dtcoll);
				if (source.getSelectedNodes()[0].parentNode.id == 'toolBoxSource')
					{
						toolbox.minimize();
					}

			});
		dojo.subscribe("/dnd/source/over", function(source)
			{/*
				if (source != null && dojo.dnd.manager().target != null)
					{
						var targetID = dojo.dnd.manager().target.node.id;
						switch (targetID)
							{
								case 'toolBoxSource':
									// console.debug('toolBoxSource');
				break;
			case 'tabsDefault':
				// console.debug('tabsDefault');
				break;
			case 'tabsUser':
				// console.debug('tabsDefault');
				break;
			default:
				
				
				if (this.currentPanel != null)
					{
						this.currentPanel.style.minHeight = '2px';
					}
				this.currentPanel = dojo.byId(targetID);
				this.currentPanel.style.minHeight = '100px';
				
		}

}
if (source != null && source.getAllNodes().length < 1)
{

}
*/
});
		dojo.subscribe("/dnd/cancel", function()
			{
				dnd.unhighlightTargets(dtcoll);
			});
		dojo.subscribe("/dnd/drop/before", function()
			{

			});
		// catch(error){alert(error.description)}
	},
getLastDroppedId : function(t, co)
	{
		var contains = true;
		var targetNodeList = t.getAllNodes();
		var droppedId = targetNodeList[0];
		for ( var x = 0; x < targetNodeList.length; x++)
			{
				for ( var y = 0; y < co.length; y++)
					{
						if (co[y].id == targetNodeList[x].id)
							{
								contains = true;
								break;
							}
						else
							{
								contains = false;
							}
					}
				if (contains)
					{
						continue;
					}
				else
					{
						droppedId = targetNodeList[x];
						break;
					}
			}
		return droppedId;
	},
highlightTargets : function(c)
	{
	var target = null;
		// alert (c.length);
		for (x in c)
			{
			if (c[x].getAllNodes().length < 1)
				{
				target = dojo.byId(c[x].node.id);
				//alert (target.id);
				
				//target.style.border = "1px dashed #0d71a6";
				//target.style.height ="100px";
				//target.style.margin = "-2px";
				//target.style.display = 'block';
				dojo.addClass(c[x].node.id,"widgetZone");
				
				/*
				dojo.attr(c[x].node.id,{
							style:{
								height : "100px",
								border : "1px dashed #0d71a6",
								margin : "0px",
								
						},
					});
					*/
			}else{
				target = dojo.byId(c[x].node.id);
				dojo.addClass(c[x].node.id,"widgetZone");
				//alert (target.id);
					
				//target.style.border = "1px dashed #0d71a6";
				//target.style.margin = "-2px";
			};
		};
		
	},
unhighlightTargets : function(c)
	{
	var target = null;
		for (x in c)
			{
			target = dojo.byId(c[x].node.id);
				//target.style.border = "0px";
				//target.style.minheight ="1px";
				//dojo.removeClass(c[x].node.id,"widgetZone");
			};
		/*
		 * var props = { margin : { start : '0', end : '-5', unit : 'px' },
		 * borderWidth : { start : '0', end : '5', unit : 'px' } }; if
		 * (dropTarget == null) { dropTarget = dojo.dnd.manager().target; } if
		 * (dojo.dnd.manager().target != null) { dojo.style(dropTarget.node.id,
		 * "border", "0px"); } else { dojo.style(dropTarget.id, "border",
		 * "0px"); }
		 * 
		 */
	},
dropWidget : function(target, source, nodes, node)
	{
		this.widgetID = nodes[0].id.substring(3, nodes[0].id.length);
		this.containerID = target.node.id;
		this.newWidgetID = dojo.dnd.getUniqueId();
		this.reset(node, target);
	},
reset : function(node, target)
	{
		var id = node.id;
		var panelID = target.node.id;
		var parent = node.parentNode;
		this.parentID = node.id;
		this.container = target.node;
		this.containerID = this.container.id;
		var targetNodeList = target.getAllNodes();
		// get all widgets in this panel and update the sortorder
		var ids = "{";

		for ( var x = 0; x < targetNodeList.length; x++)
			{
				var widget = targetNodeList[x];
				var id = widget.lastChild.id;
				var pos = x;
				var sep = ",";
				ids += "\"" + id + "\":\"" + ((targetNodeList.length - 1) == x ? pos + "\"" : pos + "\"" + sep);
			}
		ids += "}";

		this.iWidget.panel = panelID;
		switch (node.getAttribute('action'))
			{
				case 'create':
					this.iWidget.method = 'CREATE';
					node.setAttribute('panel', panelID);
					this.iWidget.sortnumber = '' + this.getPosition();
					node.setAttribute('sortnumber', this.getPosition());
					this.iWidget.page = this.page;
					node.setAttribute('page', this.page);
					this.iWidget.id = this.widgetID;
					this.iWidget.view = 'view';
					this.iWidget.environment = Session.environment;
					node.setAttribute('action', 'move');
					this.iWidget.widget = new Array(eval("(" + ids + ")"));
					this.json = JSON.stringify(this.iWidget, this.replacer);
					toolbox.resetWidget(this.widgetID);
					this.post();
					break;
				case 'move':
					this.iWidget.method = 'UPDATE';
					this.iWidget.environment = Session.environment;
					this.iWidget.widget = new Array(eval("(" + ids + ")"));
					this.json = JSON.stringify(this.iWidget, this.replacer);
					this.moveWidget();
			}
	},
getPosition : function()
	{
		for (i = 0; i < this.container.childNodes.length; i++)
			{
				if (this.container.childNodes[i].id == this.parentID)
					{
						return i;
					}
			}
	},
showWidgetHeader : function(node, show)
	{
		var widgetNode = node.lastChild;
		var box = widgetNode.firstChild;
		var element = box.firstChild;
		var buttons = element.childNodes[1];
		if (this.isHidden(node.parentNode.id))
			{
				if (show)
					{
						if (element.className == 'moveShow')
							{
								element.className = 'move';
								//this.hideMenu(buttons);
							}
						else
							{
								element.className = 'moveShow';
								//this.showMenu(buttons);
							}
					}
				else
					{
						element.className = 'move';
						//this.hideMenu(buttons);
					}
			}
	},
isHidden : function(id)
	{
	var cs = dojo.getComputedStyle(dojo.byId(id));
	if(dojo.hasClass(id, "move")){
 		return (cs.display=='none')? true:false;
	}
	else{
		return true;
	}
	
		
	},
showHeader : function(id, show)
	{
		var element = dojo.byId(id + '-dad');
		var buttons = dojo.byId(id + '-buttons');		
		if (this.isHidden(element.id))
			{
				if (show)
					{
						if (element.className == 'moveShow')
							{
								element.className = 'move';
							}
						else
							{
								element.className = 'moveShow';
							}
					}
				else
					{
						element.className = 'move';
					}
			}
	},
showMenu : function(node)
	{
		var childNode=node.childNodes[0];
		childNode.style.visibility = 'visible';

	},
hideMenu : function(node)
	{
		var childNode=node.childNodes[0];
		childNode.style.visibility = 'hidden';

	},
getInfo : function(id)
	{
		serviceManager.getService("eventService").fireEvent(id, "onModeChanged", "{newMode:'help'}");

	},
blind : function(node)
	{
		var id = node.parentNode.id.replace(/-buttons/g, "-body");
		var body = dojo.byId(id);
		if (node.className == 'minimize')
			{
				body.className = 'box-cnt-hidden';
				node.className = 'expand';
				node.setAttribute('title', 'Expandera');

			}
		else if (node.className == 'expand')
			{
				body.className = 'box-cnt';
				node.className = 'minimize';
				node.setAttribute('title', 'Minimera widgeten');
			}
	},
editWidget : function(id)
	{
		// alert('Edit:' + node);
		serviceManager.getService("eventService").fireEvent(id, "onModeChanged", "{newMode:'edit'}");
	},
saveWidget : function(widgetID, is, fields)
	{
		this.iWidget.method = 'EDIT';
		this.iWidget.id = widgetID;
		this.iWidget.environment = Session.environment;
		// var jfield = "[{\"name\" : \"website\",\"value\" :
		// \"tommy.bst.stenberg\"},{\"name\" : \"title\",\"value\" : \"Tommy \u00E4r
		// b\u00E4st\"},{\"name\":\"description\",\"value\":\"Tommy bara testar\"}]";

		this.iWidget.fields = eval('(' + fields + ')');

		this.json = JSON.stringify(this.iWidget, this.replacer);
		dojo.xhrGet(
			{
				url : "http://" + this.server + "/servlet/" + this.servlet,
				handleAs : "text",
				timeout : 1500,
				content :
					{
						json : this.json,
						itemset : is
					},

				load : function(response, ioArgs)
					{
						// alert(response);

			},

		error : function(response, ioArgs)
			{
				alert(response + ' from error function');
				return response;
			}
			});

	},

deleteWidget : function(node)
	{
		if (confirm("Do you want to remove this widget?"))
			{
				this.iWidget.method = 'DELETE';
				this.iWidget.id = node.id;
				this.iWidget.environment = Session.environment;
				this.json = JSON.stringify(this.iWidget, this.replacer);

				dojo.xhrGet(
					{
						url : "http://" + this.server + "/servlet/" + this.servlet,
						handleAs : "text",
						timeout : 1500,
						content :
							{
								json : this.json
							},

						load : function(response, ioArgs)
							{ // (4)
							var widget = node;
							var parentWidget = widget.parentNode;
							parentWidget.removeChild(widget);
							var parentparentWidget = parentWidget.parentNode;
							parentparentWidget.removeChild(parentWidget);
							return response; // (6)

					},

				// The ERROR function will be called in an error case.
						error : function(response, ioArgs)
							{
								// console.error("HTTP status code: ",response);
						//alert(response + ' from error function');
						return response;
					}
					});
			}
		;

	},
moveWidget : function()
	{

		dojo.xhrGet(
			{
				url : "http://" + this.server + "/servlet/" + this.servlet,
				handleAs : "text",
				timeout : 1500,
				content :
					{
						json : this.json
					},

				load : function(response, ioArgs)
					{

						return response;

					},

				// The ERROR function will be called in an error case.
				error : function(response, ioArgs)
					{
						// console.error("HTTP status code: ", response);
				//alert(response + ' from error function');
				return response;
			}
			});
	},

"iWidget" :
	{
		"method" : "",
		"panel" : "",
		"page" : "",
		"sortnumber" : "",
		"id" : "",
		"view" : "",
		"environment" : ""
	},
post : function() /** used for creation of new widgets */
	{
		dojo.xhrGet(
			{
				url : "http://" + this.server + "/servlet/" + this.servlet,
				handleAs : "json",
				content :
					{
						json : this.json
					},
				handle : this.handler
			});
	},
handler : function(response, ioArgs)
	{
		var error = response instanceof Error;
		var responseText = error ? response.message : ioArgs.xhr.responseText;
		dnd.responseObject = eval("(" + responseText + ")");
		if (dnd.responseObject.id != null)

			{
				document.location.reload();
				/*
				 * var widgetContainer = dojo.byId(dnd.parentID);
				 * 
				 * var widgetWrapper = widgetContainer.lastChild;
				 * widgetWrapper.setAttribute('id', dnd.responseObject.id); var
				 * box = widgetWrapper.firstChild; var dad = box.firstChild;
				 * dad.setAttribute('id', dnd.responseObject.id + '-dad'); var
				 * dadChildren = dad.childNodes; var icon = dadChildren[0];
				 * icon.setAttribute('id', dnd.responseObject.id + '-icon'); var
				 * buttons = dadChildren[1]; buttons.setAttribute('id',
				 * dnd.responseObject.id + '-buttons'); var text =
				 * dadChildren[2]; text.setAttribute('id', dnd.responseObject.id +
				 * '-text'); var body = box.lastChild; body.setAttribute('id',
				 * dnd.responseObject.id + '-body'); var iwidget =
				 * body.firstChild; iwidget.setAttribute('id', 'iw-body-' +
				 * dnd.responseObject.id); var href = iwidget.firstChild;
				 * href.setAttribute('href', 'iwidget.xml?open&id=' +
				 * dnd.responseObject.id);
				 */
			}
	},
replacer : function(key, value)
	{
		return value;
	},
moveTabs : function(target, source, nodes, node)
	{
		var id = node.id;
		var panelID = target.node.id;
		var parent = node.parentNode;
		this.parentID = node.id;
		this.container = target.node;
		this.containerID = this.container.id;
		var targetNodeList = target.getAllNodes();
		// console.debug('moveTabs');
		// get all tabs in this panel and update the sortorder
		var ids = "{";

		for ( var x = 0; x < targetNodeList.length; x++)
			{
				var tab = targetNodeList[x];
				var id = tab.id.substring(4);
				// console.debug('moveTabs:'+id);
		var pos = x;
		var sep = ",";
		ids += "\"" + id + "\":\"" + ((targetNodeList.length - 1) == x ? pos + "\"" : pos + "\"" + sep);
	}
ids += "}";
this.iWidget.method = 'UPDATETAB';
this.iWidget.environment = Session.environment;
this.iWidget.widget = new Array(eval("(" + ids + ")"));
this.json = JSON.stringify(this.iWidget, this.replacer);
console.debug('moveTabs:' + this.json);
dojo.xhrGet(
	{
		url : "http://" + this.server + "/servlet/" + this.servlet,
		handleAs : "text",
		timeout : 1500,
		content :
			{
				json : this.json
			},

		load : function(response, ioArgs)
			{
				return response;
			},

		// The ERROR function will be called in an error case.
		error : function(response, ioArgs)
			{
				//alert(response + ' from error function');
				return response;
			}
	});
},

menuManager: {
	serverAction:'/menuManager.xsp',
	continueAction:false,
	query:'',
    menuItem: function(){
        this.unid = '', this.sortordercategory = '', this.category = '', this.sort = ''
    },
    menu: new Array(),
    init: function(menuObj,action){
    	 switch(action){
    	 case 'reorder':
    	 dnd.menuManager.reorder(menuObj); 
    	 dnd.menuManager.processMenu(action);
    	 break;
    	 case 'move':    	 
    	 switch(dojo.attr(dojo.byId('navigation'),'accept')){
    	 case 'categoryItem':    	 
    	 dnd.menuManager.moveCategories(menuObj);
    	 dnd.menuManager.processMenu('moveCategories');
    	 break;
    	 default:
    	 dnd.menuManager.move(menuObj); 
    	 dnd.menuManager.processMenu(action);
    	 }    	 
    	 break;
    	 }
          
              
    },
    reorder: function(menuObj){
        for (i = 0; i < menuObj.length; i++) {
                var menuNode=dojo.byId(menuObj[i]);
                 for (c = 0; c < menuNode.childNodes.length; c++) {
            		var child = menuNode.childNodes[c];
            		var menuItem = new dnd.menuManager.menuItem();
            		menuItem.unid = child.id;
            		menuItem.sort = '' + c;
            		menuItem.sortordercategory =menuNode.getAttribute('sortordercategory');
            		menuItem.category = menuNode.getAttribute('category');
            		dnd.menuManager.menu.push(menuItem);
        		}           
        }
    },
    move: function(menuObj){
    	 for (i = 0; i < menuObj.length; i++) {
                var menuNode=dojo.getObject(menuObj[i]);                
                 for (c = 0; c < menuNode.getAllNodes().length; c++) {
            		var child = menuNode.getAllNodes()[c];
            		var menuItem = new dnd.menuManager.menuItem();
            		menuItem.unid = child.id;
            		menuItem.sort = '' + c;
            		menuItem.sortordercategory =menuNode.node.getAttribute('sortordercategory');
            		menuItem.category = menuNode.node.getAttribute('category');
            		dnd.menuManager.menu.push(menuItem);
        		}           
        }
    },
    moveCategories:function(){
    	 dnd.menuManager.menu=new Array();
    	 dojo.query("#navigation li").forEach(function(node, index, arr){
    	 	 var menuItem = new dnd.menuManager.menuItem();
    	 	 menuItem.unid = dojo.attr(dojo.byId('navigation'),'tabID');
    	 	 menuItem.sort = '' + index;
    	 	 menuItem.sortordercategory = node.id;
    	 	 menuItem.category = node.getAttribute('category');
     		 dnd.menuManager.menu.push(menuItem);
 		 });    	   		
    },
    processMenu:function(action){
    	var json=dojo.toJson(dnd.menuManager.menu)    	
    	dnd.menuManager.query='action='+action+'&menu='+json;
    	dnd.menuManager.menu=new Array();
     	dnd.menuManager.confirmMove();      	   	
    },
    confirmMove:function(){
    dojo.require("dijit.form.Button");
    dojo.require("dijit.Dialog");
    var HTML="<button dojoType=\"dijit.form.Button\" type=\"submit\" onClick=\"dnd.menuManager.post();dijit.byId('confirmDlgID').hide();\">";
    HTML+="Yes</button>"
    HTML+="<button dojoType=\"dijit.form.Button\" type=\"button\" onClick=\"dijit.byId('confirmDlgID').hide();\">"
    HTML+="No</button>"
	
    var content=document.createElement('Div');
    if(dijit.byId('confirmDlgID')){
    
    }
    else{
    confirmDlg = new dijit.Dialog({
    	   id:"confirmDlgID",
           title: "Do you wish to uppdate the menu?",
           style: "width: 300px",
           jsId: "confirmDlgID",
           content:HTML
    });
    }        	
    confirmDlg.show();       
    },
    post:function(){
    dojo.require("dojox.widget.Toaster");    
    dnd.menuManager.continueAction=true;
    dojo.xhrPost({
			url : "http://" + dnd.server +'/'+Session.dbList.main+dnd.menuManager.serverAction,
			handleAs : "text",
			postData: dnd.menuManager.query,
			timeout : 4000,		
			load : function(response, ioArgs)
				{	
					var menutoaster=dojo.byId('menu-01');
					var myToaster = new dojox.widget.Toaster({
            		id: 'myToaster'
        			},
        			menutoaster);
        			myToaster.positionDirection = 'tl-down';        			
					myToaster.setContent(response,"error", 4000);					
        			myToaster.show();
        			switch(dojo.attr(dojo.byId('navigation'),'accept')){
    	 			case 'categoryItem': 
    	 			var location= document.location.href
    	 			var query =location.substring(location.indexOf("?") + 1, location.length)
  					var queryObject = dojo.queryToObject(query)    	 			   	 
			    	document.location=document.location.pathname+"?action="+queryObject.action+"&documentid="+queryObject.documentId;
    	 			break;
    	 			default:
    	 			document.location.reload();
    				} 					
					return response;
				},
			error : function(response, ioArgs)
			{
				console.error(response + ' from error function');
				return response;
			}
		});
    }
}
	}
