var divArray, divStableArray;
divArray = new Array();
divStableArray = new Array();
divArray[0] = 'akt';
divArray[1] = 'prasa';
divArray[2] = 'koment';
divArray[3] = 'salon';
divStableArray[0] = new Array('boxy3', 2);
var rememberArr, rememberPos;
rememberArr = new Array();
rememberPos = new Array();
rememberArr[0] = 'navBelka';
rememberPos[0] = 0;

function isValidDiv(divName) {
	var i, isValid;
	isValid = false;
	for(i=0; i<divArray.length; i++) {
		if(divArray[i] == divName) {
			isValid = true;
			break;
		}
	}
	return isValid;
}

function getParentNode(divName) {
	var tmp;
	tmp = document.getElementById(divName);
	return tmp.parentNode;
}

function getNodesArray(mainNode) {
	var tmpArray, tmpCount, node, nodeID;
	tmpArray = new Array();
	tmpCount = 0;
	if(mainNode.hasChildNodes()) {
		for(i=0; i<mainNode.childNodes.length; i++) {
			node = mainNode.childNodes.item(i);
			if(node.nodeName != '#text' && node.nodeName != '#comment') {
				nodeID = node.getAttribute('id');
				if(nodeID) {
					if(isValidDiv(nodeID)) {
						tmpArray[tmpCount] = node;
						tmpCount++;
					}
				}		
			}
		}
	}	
	return tmpArray;
}

function moveUp(divName) {
	var parentNode, nodesArray, prevNode, node, tmpNode, tmpRemember;
	parentNode = getParentNode(divName);
	nodesArray = getNodesArray(parentNode);
	prevNode = null;
	for(i=0; i<rememberArr.length; i++) {
		tmpRemember = document.getElementById(rememberArr[i]);
		rememberPos[i] = tmpRemember.scrollTop;
	}
	for(i=0; i<nodesArray.length; i++) {
		node = nodesArray[i];
		nodeID = node.getAttribute('id');
		if(nodeID == divName) {
			if(prevNode != null) {
				tmpNode = prevNode.cloneNode(false);
				tmpNode.nodeValue = 'tmpNode';
				parentNode.replaceChild(tmpNode, prevNode);
				parentNode.replaceChild(prevNode, node);
				parentNode.replaceChild(node, tmpNode);		
				break;						
			}
		}
		prevNode = node;
	}
	hideMoveButtons(parentNode.getAttribute('id'));		
	saveCookie(parentNode);	
	for(i=0; i<rememberArr.length; i++) {
		tmpRemember = document.getElementById(rememberArr[i]);
		tmpRemember.focus();		
		tmpRemember.scrollTop = rememberPos[i];
	}
}

function moveDown(divName) {
	var parentNode, nodesArray, prevNode, node, tmpNode, tmpArr, tmp;
	parentNode = getParentNode(divName);
	nodesArray = getNodesArray(parentNode);
	prevNode = null;
	for(i=0; i<rememberArr.length; i++) {
		tmpRemember = document.getElementById(rememberArr[i]);
		rememberPos[i] = tmpRemember.scrollTop;
	}
	for(i=0; i<nodesArray.length; i++) {
		node = nodesArray[i];
		if(prevNode != null) {
			nodeID = prevNode.getAttribute('id');
			if(nodeID == divName) {
				tmpNode = prevNode.cloneNode(false);
				tmpNode.nodeValue = 'tmpNode';
				parentNode.replaceChild(tmpNode, prevNode);
				parentNode.replaceChild(prevNode, node);
				parentNode.replaceChild(node, tmpNode);
				break;
			}
		}
		prevNode = node;
	}
	hideMoveButtons(parentNode.getAttribute('id'));	
	saveCookie(parentNode);		
	for(i=0; i<rememberArr.length; i++) {
		tmpRemember = document.getElementById(rememberArr[i]);
		tmpRemember.focus();
		tmpRemember.scrollTop = rememberPos[i];
	}	
}

function saveCookie(parentNode) {
	var cookieStr = '';
	nodesArray = getNodesArray(parentNode);
	for(i=0; i<nodesArray.length; i++) {
		nodeID = nodesArray[i].getAttribute('id');
		cookieStr += nodeID+'#';
	}
	cookieStr = cookieStr.substr(0, cookieStr.length-1);
	createCookie(parentNode.getAttribute('id')+'Order', cookieStr, 365);
}

function loadCookie(cookieName) {
	var cookieStr, tmpNode, tmpEl, mainNode, parentNode, elCount, usedEl;
	tmpNode = document.createElement('div');
	tmpNode.setAttribute('id', cookieName);
	usedEl = new Array();
	if(haveCookie(cookieName+'Order')) {
		cookieStr = readCookie(cookieName+'Order');
		orderArr = cookieStr.split('#');
		elCount = 0;
		for(i=0; i<orderArr.length; i++) {
			for(j=0; j<divStableArray.length; j++) {
				if(elCount == (divStableArray[j][1]-1)) {
					tmpEl = document.getElementById(divStableArray[j][0]);
					tmpNode.appendChild(tmpEl);
				}
			}
			for(j=0; j<divArray.length; j++) {
				if(orderArr[i] == divArray[j])  {
					tmpEl = document.getElementById(orderArr[i]);
					tmpNode.appendChild(tmpEl);				
					usedEl[elCount] = orderArr[i];
					elCount++;
				}
			}
		}
		tmpEl = document.getElementById(cookieName);
		nodesArray = getNodesArray(tmpEl);
		for(i=0; i<nodesArray.length; i++) {
			nodeID = nodesArray[i].getAttribute('id');
			nodeUsed = false;
			for(j=0; j<usedEl.length; j++) {
				if(usedEl[j] == nodeID) {
					nodeUsed = true;
					break;
				}
			}
			if(nodeUsed == false) {
				tmpEl = document.getElementById(nodeID);
				tmpNode.appendChild(tmpEl);
			}
		}
		mainNode = document.getElementById(cookieName);
		parentNode = mainNode.parentNode;
		parentNode.replaceChild(tmpNode, mainNode);
	}
}

function hideMoveButtons(parentName) {
	var mainNode;
	mainNode = document.getElementById(parentName);
	nodesArr = getNodesArray(mainNode);
	for(i=0; i<nodesArr.length; i++) {
		nodeID = nodesArr[i].getAttribute('id');
		tmpUp = document.getElementById(nodeID+'Up');
		if(i == 0) {
			tmpUp.style.display = "none";		
		}
		else {
			tmpUp.style.display = "inline";
		}
		tmpDown = document.getElementById(nodeID+'Down');
		if(i == (nodesArr.length-1)) {
			tmpDown.style.display = "none";
		}
		else {
			tmpDown.style.display = "inline";
		}
	}
}