function findParentMovableCategory(obj)
{
	var ob = obj;
	while(ob!=null)
	{
		if(ob.id.match('^moduleEdit.*$'))
		{
			return document.getElementById('category_id_' + ob.id.substring(10)).parentNode;
		}
		if(ob.className=='movableCategory')
		{
			break;
		}
		else if(ob.className=='movableCategory2')
		{
			var p = ob.parentNode;
			var l = null;
			for(var i=0;i<p.childNodes.length; i++)
			{
				var r = p.childNodes[i];
				if(r.className=='movableCategory')
				{
					l = r;
				}
				if(r==ob)
				{
					return l;
				}
			}
		}
		ob = ob.parentNode;
	}
	return ob;
}
function findCategoryId(obj)
{
	for(var i=0; i<obj.childNodes.length; i++)
	{
		var c = obj.childNodes[i];
		if(c.id && c.id.match('^category_id_')) return c.id.substring('category_id_'.length);
	}
	return null;
}
function getRowsOrder(table)
{
	var str = '';
	var ind = 0;
	for(var r=0; r<table.childNodes.length; r++)
	{
		if(table.childNodes[r].className=='movableCategory')
		{
			ind++;
			str += '&row' + ind + '=' + findCategoryId(table.childNodes[r]);
		}
	}
	return str;
}
function invokeAjaxPersonalizationUpdate(ajaxParams)
{
	ajaxSetContent('PersonalizationUpdateAjaxDiv', '/Personalization/Update?' + ajaxParams + '&referer=NONE', '');
}

function moveUpDown(obj, down)
{
	var user=getRealCookie('oolsub');
	if(user==null)
	{
		alert('Sign in to edit your home page');
		return;
	}
	var ajaxParams = '';
	var trDown = findParentMovableCategory(obj);
	if(trDown!=null)
	{
		var table = trDown.parentNode;
		var i = null;
		for(var a=0;a<table.childNodes.length;a++)
		{
			if(table.childNodes[a]==trDown)
			{
				i = a;
				break;
			}
		}
		var j = i-1;
		if(down)
		{
			j = i+1;
		}
		while((j>=0 && !down) || (j<table.childNodes.length && down))
		{
			if(table.childNodes[j].className=='movableCategory')
			{
				break;
			}
			if(down)
			{
				j++;
			}
			else
			{
				j--;
			}
		}
		if(j>=0 && j<table.childNodes.length)
		{
			var trUp = table.childNodes[j];
			var categoryIdUp = findCategoryId(trUp);
			if(categoryIdUp!=null)
			{
				var categoryIdDown = findCategoryId(trDown);
				if(categoryIdDown!=null)
				{
					if(categoryIdUp.match('/'))
					{
						//rightLinks(categoryIdDown, 'hide');
						//rightLinks(categoryIdUp, 'hide');
						hideModuleEdit();
						var upCat = categoryIdUp.substring(0,categoryIdUp.indexOf('/'));
						ajaxParams = 'action=changeSubategoryOrder';
						ajaxParams += '&category=' + upCat;
					}
					else
					{
						ajaxParams = 'action=changeCategoryOrder';
					}
				}
			}
			replaceChildren(table,i,j);
			var a = findMovable2(table,i);
			if(a!=null)
			{
				replaceChildren(table,a,findMovable2(table,j));
			}
			setupMoveUpDown(table);
			ajaxParams += getRowsOrder(table);
			invokeAjaxPersonalizationUpdate(ajaxParams);
		}
	}
}
function findMovable2(par, fromId)
{
	for(var i=fromId; i<par.childNodes.length; i++)
	{
		if(par.childNodes[i].className=='movableCategory2')
		{
			return i;
		}
	}
	return null;
}
function findMovable2ByObj(par, obj)
{
	var found = false;
	for(var i=0; i<par.childNodes.length; i++)
	{
		var o = par.childNodes[i];
		if(o==obj)
		{
			found = true;
		}
		else if(found && o.className=='movableCategory2')
		{
			return o;
		}
	}
	return null;
}
function replaceChildren(par, i, j)
{
	var a=i;
	var b=j
	if(i>j)
	{
		a=j;
		b=i;
	}
	var o1=par.childNodes[a];
	var o2=par.childNodes[b];
	var m1=par.childNodes[a+1];
	par.removeChild(o1);
	par.insertBefore(o1, o2);
	par.removeChild(o2);
	par.insertBefore(o2, m1);
}
function collapseShow(obj)
{
	var user=getRealCookie('oolsub');
	if(user==null)
	{
		alert('Sign in to edit your home page');
		return;
	}
	var ajaxParams = '';
	var tr = findParentMovableCategory(obj);
	if(tr!=null)
	{
		var categoryId = findCategoryId(tr);
		if(categoryId == null)
		{
			alert('Category id not found');
			return;
		}
		ajaxParams = 'action=changeCategoryState';
		ajaxParams += '&category=' + categoryId;
		var m2 = findMovable2ByObj(tr.parentNode, tr);
		for(var i=0; i<m2.childNodes.length; i++)
		{
			var content = m2.childNodes[i];
			if(content.className=='categoryContent')
			{
				if(content.style.display == 'none')
				{
					content.style.display = 'block';
					ajaxParams += '&state=ON';
				}
				else
				{
					content.style.display = 'none';
					ajaxParams += '&state=OFF';
				}
				invokeAjaxPersonalizationUpdate(ajaxParams);
				for(var a=0; a<obj.childNodes.length; a++)
				{
					var child = obj.childNodes[a];
					if(child.childNodes.length > 0)
					{
						if(child.tagName.toLowerCase()=='div')
						{
							if(child.style.display == 'none')
							{
								child.style.display = 'block';
							}
							else
							{
								child.style.display = 'none';
							}
						}
					}
				}
				break;
			}
		}
	}
	return false;
}


// module rollover bgcolor	
function chgBg(obj,evnt){
	if (evnt == "over"){
		obj.style.backgroundColor='#e5ecf2';
	}else{
		obj.style.backgroundColor='#f5f5f5';
	}
}

function rightLinks(obj,evnt)
{
	var ele = document.getElementById('rtlinks_' + obj);
	if (evnt == "show")
	{
		ele.style.visibility='visible';
	}
	else
	{
		ele.style.visibility='hidden';
		//hideModuleEdit();
	}
}

// show/hide module edit options div
var curModuleEdit = null;
function shModuleEdit(evt,id){
	// cancel event bubbling in IE and FF

	var e=(evt)?evt:window.event;
	if (window.event) {
		e.cancelBubble=true;
	} else {
		e.stopPropagation();
	}

	var obj=document.getElementById('moduleEdit'+id);
	var objParent = document.getElementById('rtlinks_'+id);
	if(obj.style.display=="none"){
		obj.style.display='block';
		var pos = tpFindPos(objParent);
		obj.style.left = pos[0] - 73;
		obj.style.top = pos[1] + 14;
	}else{
		obj.style.display='none';
	}
	if(curModuleEdit!=null && curModuleEdit!=obj)
	{
		 hideModuleEdit();
	}
	curModuleEdit = obj;
}

// hide moduleEdit div body.onclick
function hideModuleEdit(){
	if(curModuleEdit!=null)
	{
		curModuleEdit.style.display = 'none';
	}
}

document.body.onclick=function() {hideModuleEdit();};

// rollover background for more search options div
function chgModuleEdit(obj,evnt){
	if (evnt == "over"){
		obj.className='outSel';
	}else{
		obj.className='';
	}
}


function tpFindPos(obj)
{
	var curleft = curtop = 0;
	if (obj.offsetParent)
	{
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent)
		{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	return [curleft<0?0:curleft,curtop<0?0:curtop];
}

var moveModuleToItsId = null;
function moveModuleToIts(id)
{
	moveModuleToIts(id, null);
}
function moveModuleToIts(id, optionToReplace)
{
	moveModuleToItsId = id;
	hideModuleEdit();
	if(optionToReplace != null)
	{
		location.href='/Personalization/Update?action=addToIts&category=' + id + '&replaceNr=' + optionToReplace;
	}
	else if(itsNotDefaultModulesLength>=4)
	{
		var div = document.getElementById('MoveToItsDiv');
		if(div!=null)
		{
			var obj = document.getElementById('rtlinks_'+id);
			var pos = tpFindPos(obj);
			div.style.left = pos[0] - 400;
			div.style.top = pos[1] - 290;
			div.style.display = 'block';
		}
	}
	else
	{
		location.href='/Personalization/Update?action=addToIts&category=' + id;
	}
}
