lelObject=null;
lelDragging=false;
lelMouseDown=false;
oObject=null;
lPchild=null;
lNchild=null;
lelSX=0;
lelSY=0;
function previousModule(el)
{
	var t=el;
	for(;;)
	{
		try{
		if(t)
		{
		
		t=t.previousSibling;
		//el.innerHTML+=t.nodeName;
		if(t.nodeName!=="#text")
		{
			if(t.nodeName=='DIV')
			{
				if((t.className)&&(t.className=='module'))
				{
					return t;
				}else if(t.id=='context_browser')
				{
					return false;
				}
			}
		}
		}else{
		return false;
		}
		}catch(e){
		return false;
		}
		
	}
	return false;
}
function nextModule(el)
{
	var t=el;
	for(;;)
	{
		try{
			if(t)
			{
			
				t=t.nextSibling;
				//el.innerHTML+=t.nodeName;
				if(t.nodeName!=="#text")
				{
					if(t.nodeName=='DIV')
					{
						
						if((t.className)&&(t.className=='module'))
						{
							return t;
						}else if(!t.nextSibling)
						{
							return false;
						}
					}
				}
			}else{
				return false;
			}
		}catch(e){return false}
			
	}
	return el;
}
var xt_int=null;
function xtest(e)
{
	lelMouseDown=true;
	xt_int=setInterval(function(){do_xtest(e)},500);
}
function do_xtest(e)
{
	//alert(e.target);
	clearInterval(xt_int);
	if(lelMouseDown)
	{
	var el=e.target;
	
	lelSX=e.clientX;
	lelSY=e.clientY;
	lelObject=el;
	//alert(nextModule(el));
	/*if(el.className!=="module")
	{
		while(lelObject.className!=="module")
		{
			lelObject=lelObject.parentNode;
		}
	}else{
		lelObject=el;
	}*/
	
	if(((el.className)&&(el.className!=="module"))||(!el.className))
	{
		for(;;)
		{
			if((lelObject.className)&&(lelObject.className=='module'))
			{
				break;
			}else{
				if(lelObject.parentNode)
				{
					lelObject=lelObject.parentNode;
				}else{
					lelObject=el;
					break;
				}
			}
		}
	}
	if(lelObject==null)lelObject=e.target;
	//lelObject.style.background="#ff0000";
	//lelObject=el;
	
	//setTimeout("lelStartDragx()",1000);
	if(lelObject.getAttribute('movable'))
	{
		//alert("Attr");
		if(lelObject.getAttribute('movable')=="false")
		lelMouseDown=false;
		return false;
	}
	lelStartDragx();
	document.body.focus();
	//document.body.addEventListener('mousedown',function(){return false},true);
	//addEvent(document.body,'mousedown',function(){return false},true);
	return false;
	}
	
}
function lelMouseUp(e)
{
	if(lelMouseDown)
	{
	try{
		oObject.style.display="block";
		document.body.removeChild(lelObject);
	}catch(ex)
	{
		//alert(ex);
	}
	
	lelMouseDown=false;
	lelObject=null;
	lNchild=false;
	lPchild=false;
	oObject=null;
	//document.body.removeEventListener('mousemove',lelMoveMouse,true);
	//document.body.removeEventListener('mouseup',lelMouseUp,true);
	removeEvent(document.body,'mousemove',lelMoveMouse,true);
	removeEvent(document.body,'mouseup',lelMouseUp,true);
	document.body.focus();
	}
}
function lelStartDragx()
{
	//alert("SD");
	if(null !== lelObject)
	{
	if(lelMouseDown)
	{
		//lelObject.style.background="#00ff00";
		lPchild=previousModule(lelObject);
		lNchild=nextModule(lelObject);
		//alert(lPchild);
		var o=lelObject;
		oObject=lelObject;
		var oleft=o.offsetLeft;// + (lelSX - o.offsetLeft);
		var otop=o.offsetTop;// + (lelSY - o.offsetTop);
		lelObject=lelObject.cloneNode(true);
		//o.parentNode.removeChild(o);
		//o.style.display="none";
		
		document.body.appendChild(lelObject);
		lelObject.style.position="absolute";
		lelObject.style.zIndex=5;
		lelObject.style.opacity=".90";
		lelObject.style.width=oObject.offsetWidth -30 + "px";
		lelObject.style.left=oleft+"px";
		lelObject.style.top=otop+"px";
		try{oObject.style.display="none";}catch(ex){}
		//document.body.addEventListener('mouseup',lelMouseUp,true);
		addEvent(document.body,'mouseup',lelMouseUp,true);
		addEvent(document.body,'mousemove',lelMoveMouse,true);
		//document.body.addEventListener('mousemove',lelMoveMouse,true);
	}
	}
}
function lelMoveMouse(e)
{
	//lelObject.style.left=e.clientX - 20 + "px";
	lelObject.style.top=e.clientY  - (lelObject.offsetHeight / 2) + "px";
	//if(oObject.previousSibling)
	document.body.focus();
	//lelObject.innerHTML="ME: " + parseInt(lelObject.style.top) + " PS: " + lPchild.offsetTop + " NS: " + lNchild.offsetTop;
	if(lPchild)
	{
		if(parseInt(lelObject.style.top) < lPchild.offsetTop)
		{
			oObject.parentNode.insertBefore(oObject,lPchild);
			try{oObject.style.display="block";}catch(ex){}
			lPchild=previousModule(lPchild);
			lNchild=nextModule(oObject);
			//alert("G");
		}
	}
	if(lNchild)
	{
		if(parseInt(lelObject.style.top + (lelObject.offsetHeight / 2)) > lNchild.offsetTop)
		{
			
			//oObject.insertBefore(lelObject);
			if(nextModule(lNchild))
			{
				oObject.parentNode.insertBefore(oObject,nextModule(lNchild));
			}else{
			
				oObject.parentNode.removeChild(oObject);
				lNchild.parentNode.appendChild(oObject);
			}
			oObject.style.display="block";
			lPchild=previousModule(oObject);
			lNchild=nextModule(oObject);
			
		}
	}	
	return false;
	
}
function loadSongs(id,width,height)
{
if(!width) width=80;
if(!height) height=80;
if(!id)id='idiv';
var imgs=[{'s':[{'i':1,'a':'oasis'},{'i':2,'a':'Muse'},{'i':3,'a':'Muse'},{'i':4,'a':'Coldplay'},{'i':5,'a':'xenx'},{'i':6,'a':'erers'},{'i':7,'a':'2342'},{'i':8,'a':'xasd'},{'i':1,'a':'oasis'},{'i':2,'a':'Muse'},{'i':3,'a':'Muse'},{'i':4,'a':'Coldplay'},{'i':5,'a':'xenx'},{'i':6,'a':'erers'},{'i':7,'a':'2342'},{'i':8,'a':'xasd'}]}];
var idiv=document.getElementById(id);
//alert(idiv);
for(var i=0;i<imgs[0]['s'].length;i++)
{
	var ix=new Image();
	ix.src='/mg/nt/temp/covers/' + imgs[0]['s'][i]['i'] + '.jpg';
	/*ix.style.cssFloat="left";
	ix.style.styleFloat="left";*/
	ix.style.margin="5px";
	ix.width=width;
	ix.height=height;
	idiv.appendChild(ix);
	//setTimeout('initMods()',500);
	
}
initMods();
}
function initMods()
{
var modParent=document.getElementById('context_browser');
for(var i=0;i<modParent.childNodes.length;i++)
{
	if((modParent.childNodes[i].className)&&(modParent.childNodes[i].className=='module'))
	{
		//modParent.childNodes[i].childNodes[1].style.background="#ff8c00";
		var ob=modParent.childNodes[i];
		addEvent(modParent.childNodes[i],'mousedown',xtest,true);
		addEvent(modParent.childNodes[i],'mouseup',lelMouseUp,true);
		//modParent.childNodes[i].addEventListener('mousedown',lelMouseDown,true);
	}
}
}
var pa={
	ctab:"overview",
	ctabObj:null,
	changeTab:function(t,el)
	{
		var p=el.parentNode.parentNode;
		if(t.lastIndexOf('.')>0)
		{
			var tmp=t.split(".");
			t=tmp[0];
			var action=tmp[1];
		}
		for(var i=0;i<p.childNodes.length;i++)
		{
			try{
				if((p)&&(p.childNodes[i])&&(p.childNodes[i].childNodes[0]))
				p.childNodes[i].childNodes[0].className="";
			}catch(ex){
			}
		}
		try{
			$("#xt_" + pa.ctab).style.display="none";
		}catch(ex){
			//p.childNodes[1].style.display="none";
			//alert(p.childNodes.length);
		}
		$("#xt_" + t).style.display="block";
		if(action)$("#xt_" + t).setAttribute('XA_ACTION',action);
		
		pa.ctab=t;
		pa.ctabObj=el;
		el.className="activeTab";
		
	},
	get_page_data:function(pg)
	{
		for(var i=0;i<XA_PAGE_ARRAY.length;i++)
		{
			if(XA_PAGE_ARRAY[i].title==pg)
			{
				return XA_PAGE_ARRAY[i];
			}
		}
		return false;
	},
	show_edit:function(tabID)
	{
		var ot=pa.ctab;
		var cDesc=$("#tab_" + ot).innerHTML;
		pa.changeTab('admin',$("#xt_" + pa.ctab));
		
		if(xedit)
		{
			//xedit.set_text($("#xt_" + ot).innerHTML);
			xedit.set_text(pa.get_page_data(ot)['value']);
			try{
				$("#xa_action").value="edit";
				$("#xa_contentName").value=ot;
				//alert(ot);
				$("#f_pageDescription").value=cDesc;
				$("#f_pageTitle").value=ot;
				
				$("#xa_contentTitle").innerHTML=ot;
			}catch(ex)
			{
				alert("ERROR: " + ex);
			}
		}else{
			alert("No xedit");
		}
	},
	add_page:function(base,list)
	{
		var pName=prompt("Page Title");
		var o=list;
		var lst=list.parentNode.parentNode;
		if(pName)
		{
			var pDesc=prompt("Page Description");
			if(!pDesc)return;
			_xws.request(base + '/xadmin/newpage.php?name=' + pName + '&desc=' + pDesc,function(json)
			{
				nTab=document.createElement('li');
				nTabA=document.createElement('a');
				nTabA.innerHTML=pName;
				nTabA.href=base + '/page/'+pName+'/';
				nTabA.title=pDesc;
				nTab.appendChild(nTabA);
				lst.insertBefore(nTab,list.parentNode);
			},function(){return},function(){return});
		}
	},
	delete_content:function(base,page)
	{
		var pName=pa.ctab;
		if(pName)
		{
			if(confirm("Are you sure you want to delete " + page + "." + pName))
			{
			_xws.request(base + '/xadmin/deletecontent.php?p=' + page + '&c=' + pName,function(json)
			{
				var pageElm=$("#xt_" + pa.ctab).parentNode;
					
				var tElm=pa.ctabObj.parentNode;
				var pChild=tElm.previousSibling;
				var iter=0;
				for(;;)
				{
					if(iter==15)break;
					iter++;
					if(pChild.nodeName.toLowerCase()=='li')
					{
						//alert(pChild.childNodes[0].innerHTML);
						pa.changeTab(pChild.childNodes[0].innerHTML,tElm.childNodes[0]);
						break;
					}
				}
				
				if((pageElm)&&(tElm))
				{
					//pageElm.parentNode.removeChild(pageElm);
					tElm.parentNode.removeChild(tElm);
				}
			},function(){return},function(){return});
			}
		}
	},
					
	clearChecks:function()
	{
		var elms=document.getElementsByTagName('input');
		for(var i=0;i<elms.length;i++)
		{
			if(elms[i].type=="checkbox")
			{
				if(elms[i].checked)
				{
					elms[i].checked=false;
				}
			}
		}
	},
	initCalendar:function(p,args)
	{
		//alert(args);
		var targs=args.split(";");
		var today=new Date();
		var cal=new gwCal(today.getMonth(),today.getDate(),today.getFullYear(),p);
		for(var i=0;i<targs.length;i++)
		{
			var tx=targs[i].split(":");
			cal.set_option(tx[0],tx[1]);
		}
		cal.loadEvents();
	},
	removeSelectOptions:function(str)
	{
		var elms=document.getElementsByTagName('option');
		for(var i=0;i<elms.length;i++)
		{
			if(elms[i].value==str)
			{
				elms[i].parentNode.removeChild(elms[i]);
				return true;
			}
		}
		return false;
	},
	CA_IN_PROGRESS:false,
	addCalendar:function(elm)
	{
		//elm.value=1;
		//alert("Not Implemented");
		if(!XA_LOGGED_IN)
		{
			alert("You must be logged in to add a calendar");
			return;
		}
		if(!pa.CA_IN_PROGRESS)
		{
		//pa.CA_IN_PROGRESS=true;
		var cname=prompt("Please enter a name for this calendar");
		if(cname)
		{
			//$("#xt_import").style.display="block";
			_xws.request('/gw/cal/addCalendar.php?name=' + cname,function(js)
			{
				var id=js.ID;
				//alert("ID: " + id);
				var option=document.createElement('option');
				option.value=id;
				option.innerHTML=cname;
				if(pa.ctab!=="import")
				{
					//$("#xt_import").style.display="block";
					if($('#xt_import_calendar').childNodes.length<2)
					{
						$('#xt_import_calendar').appendChild(option.cloneNode(true));
					}else{
						$('#xt_import_calendar').insertBefore(option.cloneNode(true),$('#xt_import_calendar').childNodes[$('#xt_import_calendar').childNodes.length-1]);
					}
					//$('#xt_import_calendar').appendChild(option.cloneNode(true));
					$('#xt_import_calendar').value=id;
					//$("#xt_import").style.display="none";
				}
				if(pa.ctab!=="add")
				{
					//$("#xt_add").style.display="block";
					if($('#ev_calID').childNodes.length<2)
					{
						$('#ev_calID').appendChild(option.cloneNode(true));
					}else{
						$('#ev_calID').insertBefore(option.cloneNode(true),$('#ev_calID').childNodes[$('#ev_calID').childNodes.length-2]);
					}
					$('#ev_calID').value=id;
					//$("#xt_add").style.display="none";
				}
				if(pa.ctab!=="overview")
				{
					//$("#xt_overview").style.display="block";
					if($('#xt_set_calendar').childNodes.length < 2)
					{
						$('#xt_set_calendar').appendChild(option.cloneNode(true));
					}else{
						$('#xt_set_calendar').insertBefore(option.cloneNode(true),$('#xt_set_calendar').childNodes[$('#xt_set_calendar').childNodes.length -2]);
					}
					$('#xt_set_calendar').value=id;
					//$("#xt_overview").style.display='none';
				}
				if(elm.childNodes.length < 2)
				{
					elm.appendChild(option);
				}else{
					elm.insertBefore(option,elm.childNodes[elm.childNodes.length-2]);
				}
				elm.value=id;
				if(pa.ctab=="overview")
				{
					pa.initCalendar($('#xt_overview_cal'),'calID:' + id + ';cellwidth:5%;cellheight:120px;fontsize:14px;eventbgcolor:#6f6f6f;eventfgcolor:#fff');
				}
				pa.CA_IN_PROGRESS=false;
			},function(){ alert("Error");pa.CA_IN_PROGRESS=false; },function(){pa.CA_IN_PROGRESS=false;return});
		}
		}
		return false;
	}
}

