var dragClasses="DragDragBox";
var mouseOffset=null;
var iMouseDown=false;
var lMouseState=false;
var dragObject=null;
var switchDiv=true;
var DAndDDiv=[];
var divTarget=null;
var lastTarget=null;
var helperDiv=null;
var tempHTML=null;
var rootParent=null;
var rootSibling=null;
var boxes=new Array();
var rateStatus=new Array();
var stat=0;
var objectAjax=getXmlHttpRequestObject();
window.onerror=function(){
	return true;
};
function getXmlHttpRequestObject(){
	if (window.XMLHttpRequest){
		return new XMLHttpRequest();

	}
	else if(window.ActiveXObject){
		return new ActiveXObject("Microsoft.XMLHTTP");

	}
	else{
		alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");

	}
	return false;
};
function requestSkin(skin){
	if (objectAjax.readyState == 4 || objectAjax.readyState == 0){
		objectAjax.open("GET", skin, true);
		objectAjax.onreadystatechange = handleSkin;
		objectAjax.send(null);
		return true;

	}
	return false;
};
function handleSkin(){
	if (objectAjax.readyState == 4){
		var n =objectAjax.responseText;
		if(n==1)showAlertDiv();
		return true;

	}
	return false;
};
function alphaChange(id,opacity){
	var object=id.style;
	object.opacity=(opacity / 100);
	object.MozOpacity=(opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";

};
Number.prototype.NaN0=function(){
	return isNaN(this)?0:this;
};
function divContainer(){
	var cDrag=DAndDDiv.length;
	DAndDDiv[cDrag]=[];
	var listDrag=document.body.getElementsByTagName('div');
	var countDrag =listDrag.length;
	for(var i=0;
	i<countDrag;
	i++){
		if(listDrag[i].className.indexOf('DragContainer') > -1){
			var cObj = listDrag[i];
			DAndDDiv[cDrag].push(cObj);
			cObj.setAttribute('DropObj', cDrag);
			for(var j=0;
			j<cObj.childNodes.length;
			j++){
				if(cObj.childNodes[j].nodeName=='#text') continue;
				cObj.childNodes[j].setAttribute('DragObj', cDrag);

			}

		}

	}

};

function mouseCoords(ev){
	ev = ev || window.event;
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	return {x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,y:ev.clientY + document.body.scrollTop- document.body.clientTop}
};

function getMouseOffset(target, ev){
	ev = ev || window.event;
	var docPos= getPosition(target);
	var mousePos= mouseCoords(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};

};
function getPosition(e){
	var left=0;
	var top=0;
	while (e.offsetParent){
		left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
		top+= e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
		e= e.offsetParent;

	}
	left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
	top+= e.offsetTop+ (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
	return {x:left, y:top};
};

function mouseMove(ev){
	ev = ev || window.event;
	var iTarget= ev.target || ev.srcElement;
	if(iTarget.parentNode && iTarget.className.indexOf('thisDrag') > -1){
		target =iTarget.parentNode;
		switchDiv =true;

	}
	else {
		switchDiv =false;
		target = null;

	}
	var mousePos = mouseCoords(ev);
	if(switchDiv)var dragObj = target.getAttribute('DragObj');
	if(dragObj!=null){
		if(iMouseDown && !lMouseState){
			divTarget=target;
			rootParent=divTarget.parentNode;
			rootSibling=divTarget.nextSibling;
			mouseOffset=getMouseOffset(target,ev);
			for(var i=0;
			i<helperDiv.childNodes.length;
			i++) helperDiv.removeChild(helperDiv.childNodes[i]);
			helperDiv.appendChild(divTarget.cloneNode(true));
			helperDiv.style.display='block';
			var dragClass=dragClasses;
			if(dragClass){
				helperDiv.firstChild.className=dragClass;
				alphaChange(helperDiv.firstChild,50);

			}
			helperDiv.firstChild.removeAttribute('DragObj');
			var dragConts=DAndDDiv[dragObj];
			divTarget.setAttribute('startWidth',parseInt(divTarget.offsetWidth));
			divTarget.setAttribute('startHeight',parseInt(divTarget.offsetHeight));
			divTarget.style.display='none';
			for(var i=0;
			i<dragConts.length;
			i++){
				with(dragConts[i]){
					var pos=getPosition(dragConts[i]);
					setAttribute('startWidth',parseInt(offsetWidth));
					setAttribute('startHeight',parseInt(offsetHeight));
					setAttribute('startLeft',pos.x);
					setAttribute('startTop',pos.y);

				}
				for(var j=0;
				j<dragConts[i].childNodes.length;
				j++){
					with(dragConts[i].childNodes[j]){
						if((nodeName=='#text') || (dragConts[i].childNodes[j]==divTarget)) continue;
						var pos = getPosition(dragConts[i].childNodes[j]);
						setAttribute('startWidth',parseInt(offsetWidth));
						setAttribute('startHeight', parseInt(offsetHeight));
						setAttribute('startLeft',pos.x);
						setAttribute('startTop', pos.y);

					}

				}

			}

		}

	}
	if(divTarget){
		helperDiv.style.top= (mousePos.y - mouseOffset.y)+'px';
		helperDiv.style.left = (mousePos.x - mouseOffset.x)+'px';
		helperDiv.style.width =rootParent.offsetWidth+'px';
		var dragConts= DAndDDiv[divTarget.getAttribute('DragObj')];
		var activeCont = null;
		var xPos = mousePos.x - mouseOffset.x + (parseInt(divTarget.getAttribute('startWidth')) /2);
		var yPos = mousePos.y - mouseOffset.y + (parseInt(divTarget.getAttribute('startHeight'))/2);
		for(var i=0;
		i<dragConts.length;
		i++){
			with(dragConts[i]){
				if(((getAttribute('startLeft')) < xPos) &&((getAttribute('startTop'))< yPos) &&((Number(getAttribute('startLeft')) + Number(getAttribute('startWidth')))> xPos) &&((Number(getAttribute('startTop'))+ Number(getAttribute('startHeight'))) > yPos)){
					activeCont = dragConts[i];
					break;

				}

			}

		}
		if(activeCont){
			var beforeNode = null;
			for(var i=activeCont.childNodes.length-1;
			i>=0;
			i--){
				with(activeCont.childNodes[i]){
					if(nodeName=='#text') continue;
					if(divTarget != activeCont.childNodes[i] &&((Number(getAttribute('startLeft')) + Number(getAttribute('startWidth')))> xPos) &&((Number(getAttribute('startTop')) + Number(getAttribute('startHeight'))) > yPos)){
						beforeNode = activeCont.childNodes[i];

					}

				}

			}
			if(beforeNode){
				if(beforeNode!=divTarget.nextSibling){
					activeCont.insertBefore(divTarget, beforeNode);
					divTarget.className='DragBox2';
					if(tempHTML == null){
						tempHTML =divTarget.innerHTML;
						divTarget.innerHTML='';

					}

				}

			}
			else {
				if((divTarget.nextSibling) || (divTarget.parentNode!=activeCont)){
					activeCont.appendChild(divTarget);
					divTarget.className='DragBox2';
					if(tempHTML == null){
						tempHTML =divTarget.innerHTML;
						divTarget.innerHTML='';

					}

				}

			}
			if(divTarget.style.display!=''){
				divTarget.style.display= '';

			}

		}
		else {
			if(divTarget.style.display!='none'){
				divTarget.style.display= 'none';

			}

		}

	}
	lMouseState = iMouseDown;
	if(target != null && target.tagName){
		lastTarget= target;

	}
	else lastTarget=null;
	return false;

};
function mouseUp(ev){
	if(divTarget){
		helperDiv.style.display = 'none';
		if(divTarget.style.display == 'none'){
			if(rootSibling){
				rootParent.insertBefore(divTarget, rootSibling);

			}
			else {
				rootParent.appendChild(divTarget);

			}

		}
		divTarget.style.display ='';
		divTarget.className='DragBox';
		if(tempHTML != null)divTarget.innerHTML =tempHTML;
		tempHTML =null;
		for(i=0;
		i<divTarget.parentNode.childNodes.length;
		i++){
			if(divTarget.parentNode.childNodes[i]==divTarget)break;

		}
		boxes[boxes.length]=new Array(divTarget.parentNode.id,divTarget.id,i);
		saveSkin();

	}
	divTarget= null;
	iMouseDown = false;
	if(ev)document.body.style.overflowX='';
	else document.documentElement.style.overflowX = '';

};
function mouseDown(ev){
	iMouseDown = true;
	if(ev)document.body.style.overflowX='hidden';
	else document.documentElement.style.overflowX = 'hidden';
	if(lastTarget){
		return false;

	}

};
function saveSkin(){
	var urls ='';
	var st=0;
	var parents = DAndDDiv[0];
	for(var i=0;i<parents.length;	i++){
		var x=0;
		var sw=0;
		for(var j=0;j<parents[i].childNodes.length;j++){
			sw = 0;
			if(parents[i].childNodes[j].nodeName=='#text')continue;
			var del	=(parents[i].childNodes[j].style.display=='none')?0:1;
			var parid = parents[i].childNodes[j];
			var iconid = document.getElementById('icons'+parid.id.substring(3, parid.id.length));
			for(var ij=0;ij<iconid.childNodes.length;ij++){
				if (iconid.childNodes[ij].className.indexOf('maxIcon') > -1) sw = 1
			}//for
			urls +='&parent[]='+i+'&target[]='+parents[i].childNodes[j].id+'&weight[]='+x+'&del[]='+del+'&minimize[]='+sw;
			x++;

		}

	}
//	document.write('?req=portletsorder'+urls);
	requestSkin('?req=portletsorder'+urls);
};
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;
	i < ca.length;
	i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);

	}
	return null;

};
function SetCookie (name, value) {
	var argv = SetCookie.arguments;
	var argc = SetCookie.arguments.length;
	var expires = (argc > 2) ? argv[2] : null;
	var path = (argc > 3) ? argv[3] : null;
	var domain = (argc > 4) ? argv[4] : null;
	var secure = (argc > 5) ? argv[5] : false;
	document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain)) +((secure == true) ? "; secure" : "");

};
function setSkin() {
	var expdate = new Date ();
	expdate.setTime (expdate.getTime() + (24 * 60 * 60 * 1000 * 31));
	var st=0;
	var parents = DAndDDiv[0];
	for(var i=0;i<parents.length;i++){
		var urls ='';
		var x=0;
		for(var j=0;j<parents[i].childNodes.length;	j++){
			if(parents[i].childNodes[j].nodeName=='#text' || parents[i].childNodes[j].style.display=='none')continue;
			urls += parents[i].childNodes[j].id+'_';
			x++;
		}
		urls =urls.substring(0,(urls.length-1));
		SetCookie ('divs_'+i, urls, expdate);

	}
	SetCookie ('divs','1', expdate);
	showAlertDiv()
};
document.onmousemove = mouseMove;
document.onmousedown = mouseDown;
document.onmouseup= mouseUp;
window.onload = function(){
	helperDiv = document.createElement('DIV');
	helperDiv.style.cssText = 'position:absolute;display:none;width:auto';
	divContainer();
	document.body.appendChild(helperDiv);

};
var op=10;
var ops=0;
var setTime=Array();
function showAlertDiv(){
	var doc=document.getElementById('alertDiv');
	if(ops == 0){
		for(var i=0;
		i<setTime.length;
		i++){
			window.clearTimeout(setTime[i]);

		}

	}
	if(op<90){
		alphaChange(doc,op);
		setTime[0]=setTimeout('showAlertDiv()',1);
		op +=2;
		if(ops == 0){
			doc.style.display='block';
			ops =1;
			window.onscroll=function (){
				var doc=document.getElementById('alertDiv');
				scrollvalue = document.documentElement.scrollTop > document.body.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
				doc.style.top=scrollvalue+2+'px';

			}

		}

	}
	else setTime[1]=setTimeout('hiddAlertDiv()',2000);

};
function hiddAlertDiv(){
	var doc=document.getElementById('alertDiv');
	if(op>10){
		op -=2;
		alphaChange(doc,op);
		setTime[2]=setTimeout('hiddAlertDiv()',1);

	}
	else {
		doc.style.display='none';
		ops =0;
		window.onscroll=null;
		doc.style.top='2px'
	}

};
function portletclose(id){
	var pBox=document.getElementById(id);
	if (pBox) {
		var pDivs=pBox.getElementsByTagName('DIV');
		var count=pDivs.length;
		for(var i=0;
		i<count;
		i++){
			pDivs[i].style.display='none';

		}
		var bomb=document.createElement('IMG');
		bomb.src='images/bomb.gif';
		bomb.style.cssText='margin:10% 30%;';
		pBox.className='';
		pBox.appendChild(bomb);
		remove=pBox;
		setTime[3]=setTimeout('disNone()',1000);
	}//if
};
function portletmin(id){
	var pBox=document.getElementById(id);
	if (pBox) {
		pBox.style.overflow='hidden';
		pBox.style.height='23px';
		pBox.style.minHeight='23px';
		box.className='maxIcon';
	}//if
};
function portletmax(id){
	var pBox=document.getElementById(id);
	if (pBox) {
		pBox.style.overflow='';
		pBox.style.height='';
		pBox.style.minHeight='';
		box.className='minIcon';
	}//if
};
var remove=null;
window.document.onclick =function (ev){
	var ev =ev?ev:window.event;
	var box=ev.target?ev.target:ev.srcElement;
	if(box.className.indexOf('closeIcon') > -1){
		var pBox=box.parentNode.parentNode;
		var pDivs=pBox.getElementsByTagName('DIV');
		var count=pDivs.length;
		for(var i=0;
		i<count;
		i++){
			pDivs[i].style.display='none';

		}
		var bomb=document.createElement('IMG');
		bomb.src='images/bomb.gif';
		bomb.style.cssText='margin:10% 30%;';
		pBox.className='';
		pBox.appendChild(bomb);
		remove=pBox;
		setTime[3]=setTimeout('disNone()',1000);
	}
	else{
		if(box.className.indexOf('minIcon') > -1){
			var pBox=box.parentNode.parentNode;
			pBox.style.overflow='hidden';
			pBox.style.height='23px';
			pBox.style.minHeight='23px';
			box.className='maxIcon';
			box.title='الدازم كتنسظ';
			saveSkin();
		} else {
			if(box.className.indexOf('maxIcon') > -1){
				var pBox=box.parentNode.parentNode;
				pBox.style.overflow='';
				pBox.style.height='';
				pBox.style.minHeight='';
				box.className='minIcon';
				box.title='الدازم ن';
				saveSkin();
			} else {
				if(box.className.indexOf('helpIcon') > -1){
					document.location.href='index.php?req=portletshelp&poid='+box.dvid;
				} else {
					if(box.className.indexOf('settingsIcon') > -1){
						portletid = box.dvid;
						setheight();
					}
				}
			}
		}
	}

};
function disNone(){
	remove.style.display="none";
	saveSkin();

}

