/*
Files:
/scripts/dynamicMovingConfig.js
/libs/_js/dynamicMovingLibrary.js
/scripts/tabs.js
*/

// ---------------------------- START: /scripts/dynamicMovingConfig.js ----------------------------

var divArray, divStableArray, extraMovingFunctions;
divArray = new Array();
divStableArray = new Array();
extraMovingFunctions = new Array();
divArray[0] = 'd1';
divArray[1] = 'd2';
divArray[2] = 'd4';
divArray[3] = 'd4_2';
divArray[4] = 'd4_3';
//divArray[5] = 'd5';
//divArray[4] = 'd5';
//divArray[5] = 'd6';
divStableArray[0] = new Array('d3', 3, 'bloki');
extraMovingFunctions[0] = 'addBeforeMove()';
extraMovingFunctions[1] = 'addAfterMove()';
extraMovingFunctions[2] = 'addBeforeMove()';
extraMovingFunctions[3] = 'addAfterMove()';
extraMovingFunctions[4] = 'addBeforeMove()';
//extraMovingFunctions[5] = 'addAfterMove()';

var rememberArr, rememberPos;
rememberArr = new Array();
rememberPos = new Array();
rememberArr[0] = 'menu_r1w';
rememberPos[0] = 0;

function addBeforeMove() {
	for(i=0; i<rememberArr.length; i++) {
		tmpRemember = document.getElementById(rememberArr[i]);
		rememberPos[i] = tmpRemember.scrollTop;
	}
}

function addAfterMove() {
	for(i=0; i<rememberArr.length; i++) {
		tmpRemember = document.getElementById(rememberArr[i]);
		tmpRemember.focus();
		tmpRemember.scrollTop = rememberPos[i];
	}	
	tmp = document.getElementById('g_kontener');
	tmp.focus();
	tmpArr = document.getElementsByTagName('object');
	for(i=0; i<tmpArr.length; i++) {
		tmpArr[i].style.display="";
	}
}

// ---------------------------- END : /scripts/dynamicMovingConfig.js -----------------------------


// ---------------------------- START: /libs/_js/dynamicMovingLibrary.js ----------------------------

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;
	if(extraMovingFunctions[2].length > 0) {
		eval(extraMovingFunctions[2]);
	}
	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);	
	if(extraMovingFunctions[3].length > 0) {
		eval(extraMovingFunctions[3]);
	}	
}

function moveDown(divName) {
	var parentNode, nodesArray, prevNode, node, tmpNode, tmpArr, tmp;
	parentNode = getParentNode(divName);
	nodesArray = getNodesArray(parentNode);
	prevNode = null;
	if(extraMovingFunctions[4].length > 0) {
		eval(extraMovingFunctions[4]);
	}
	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);		
	if(extraMovingFunctions[5].length > 0) {
		eval(extraMovingFunctions[5]);
	}	
}

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')) {
		if(extraMovingFunctions[0].length > 0) {
			eval(extraMovingFunctions[0]);
		}
		cookieStr = readCookie(cookieName+'Order');
		orderArr = cookieStr.split('#');
		elCount = 0;
		for(i=0; i<orderArr.length; i++) {
			for(j=0; j<divStableArray.length; j++) {
				if(divStableArray[j][2] == cookieName) {
					if(elCount == (divStableArray[j][1]-1)) {
						tmpEl = document.getElementById(divStableArray[j][0]);
						if(tmpEl != null) {
							tmpNode.appendChild(tmpEl);
						}
					}
				}
			}
			for(j=0; j<divArray.length; j++) {
				if(orderArr[i] == divArray[j])  {
					tmpEl = document.getElementById(orderArr[i]);
					if(tmpEl != null) {
						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;
				}
			}
			for(j=0; j<divStableArray.length; j++) {
				if(divStableArray[j][2] == cookieName) {
					if(elCount == (divStableArray[j][1]-1)) {
						tmpEl = document.getElementById(divStableArray[j][0]);
						if(tmpEl != null) {
							tmpNode.appendChild(tmpEl);
						}
					}
				}
			}			
			if(nodeUsed == false) {
				tmpEl = document.getElementById(nodeID);
				tmpNode.appendChild(tmpEl);
				elCount++;
			}
		}
		mainNode = document.getElementById(cookieName);
		parentNode = mainNode.parentNode;
		parentNode.replaceChild(tmpNode, mainNode);
		if(extraMovingFunctions[1].length > 0) {
			eval(extraMovingFunctions[1]);
		}		
	}
}

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";
		}
	}
}

// ---------------------------- END : /libs/_js/dynamicMovingLibrary.js -----------------------------


// ---------------------------- START: /scripts/tabs.js ----------------------------

var panelsArr, contentArr, lastShowTab;
panelsArr = new Array();
panelsArr[0] = 'c_1';
panelsArr[1] = 'c_2';
panelsArr[2] = 'c_3';
panelsArr[3] = 'c_4';
panelsArr[4] = 'c_5';
panelsArr[5] = 'c_6';
panelsArr[6] = 'c_7';
panelsArr[7] = 'c_8';
panelsArr[8] = 'c_9';
contentArr = new Array();
contentArr[0] = 'div_c_1';
contentArr[1] = 'div_c_2';
contentArr[2] = 'div_c_3';
contentArr[3] = 'div_c_4';
contentArr[4] = 'div_c_5';
contentArr[5] = 'div_c_6';
contentArr[6] = 'div_c_7';
contentArr[7] = 'div_c_8';
contentArr[8] = 'div_c_9';
lastShowTab = 2;
tabsNr = 3;

blogsArr = new Array();
blogsArr[0] = 'b_1';
blogsArr[1] = 'b_2';
blogsArr[2] = 'b_3';
blogsArr[3] = 'b_4';
blogsArr[4] = 'b_5';
blogsArr[5] = 'b_6';
blogTabHeight = 36;
blogMainName = 'menu_r1w';

function activateTabs() {
	var tmpDiv, activeTab = 0, firstTab = 0, lastTab = lastShowTab;
	for(i=0; i<panelsArr.length; i++) {
		tmpDiv = document.getElementById(panelsArr[i]);
		if(tmpDiv.className == 'zakl_c12') {
			activeTab = i;
		}
	}
	if((activeTab+lastShowTab) > (panelsArr.length-1)) {
		lastTab = panelsArr.length-1;
		firstTab = lastTab-lastShowTab;
	}
	else {
		lastTab = activeTab+lastShowTab;
		firstTab = activeTab;
	}
	for(i=0; i<panelsArr.length; i++) {
		tmpDiv = document.getElementById(panelsArr[i]);
		if((i >= firstTab) && (i <= lastTab)) {
			tmpDiv.style.display = 'block';
		}
		else {
			tmpDiv.style.display = 'none';		
		}
	}
	if(lastTab == (panelsArr.length-1)) {
		tmpDiv = document.getElementById('centraTabNext');
		tmpDiv.style.display="none";
	}
	if(firstTab == 0) {
		tmpDiv = document.getElementById('centraTabPrev');
		tmpDiv.style.display="none";	
	}
	lastShowTab = lastTab;
	
	for(i=0; i<blogsArr.length; i++) {
		tmpDiv = document.getElementById(blogsArr[i]);
		if(tmpDiv.className == 'zakl_b12') {
			activeTab = i;
		}
	}	
	tmp = document.getElementById(blogMainName);
	tmp.scrollTop = activeTab*blogTabHeight;
}

function showContent(divName) {
	var tmpDiv;
	for(i=0; i<contentArr.length; i++) {
		tmpDiv = document.getElementById(contentArr[i]);
		tmpDiv.style.display = 'none';
	}
	tmpDiv = document.getElementById(divName);
	tmpDiv.style.display = 'block';
	}

function nextPanel(lastShowTab) {
	var tmpDiv, firstTab;
	firstTab = false;
	for(i=0; i<panelsArr.length; i++) {
		tmpDiv = document.getElementById(panelsArr[i]);
		if(tmpDiv.style.display == 'block' && firstTab === false) {
			firstTab = i;
		}
		if(i == (lastShowTab+1)) {
			tmpDiv.style.display = 'block';
			lastShowTab++;
			tmpDiv = document.getElementById(panelsArr[firstTab]);
			tmpDiv.style.display = 'none';
			break;
		}
	}
	if(lastShowTab > (panelsArr.length-tabsNr+1)) {
		tmpDiv = document.getElementById('centraTabNext');
		tmpDiv.style.display="none";	
	}
	if(lastShowTab >= tabsNr) {
		tmpDiv = document.getElementById('centraTabPrev');
		tmpDiv.style.display="";	
	}
	return lastShowTab;
}

function prevPanel(lastShowTab) {
	var tmpDiv, lastTab;
	lastTab = false;
	for(i=panelsArr.length-1; i>=0; i--) {
		tmpDiv = document.getElementById(panelsArr[i]);	
		if(tmpDiv.style.display == 'block' && lastTab === false) {
			lastTab = i;
		}
		if(lastTab !== false && tmpDiv.style.display == 'none') {
			tmpDiv.style.display = 'block';
			lastShowTab--;
			tmpDiv = document.getElementById(panelsArr[lastTab]);
			tmpDiv.style.display = 'none';
			break;
		}
	}
	if(lastShowTab < (panelsArr.length-1)) {
		tmpDiv = document.getElementById('centraTabNext');
		tmpDiv.style.display="";	
	}
	if(lastShowTab < tabsNr) {
		tmpDiv = document.getElementById('centraTabPrev');
		tmpDiv.style.display="none";	
	}	
	return lastShowTab;
}




var ourInterval;
var scrollSpeed = 50;
var scrollHeight = 5;
		
function scrollStart(direction, divID, elementID) {
	ourInterval = setInterval("scroll"+direction+"('"+divID+"')", scrollSpeed);
}

function scrollEnd(which){
	clearInterval(ourInterval);
}		

function scrollUp(which){
	document.getElementById(which).scrollTop = document.getElementById(which).scrollTop - scrollHeight;
}

function scrollDown(which){
	document.getElementById(which).scrollTop = document.getElementById(which).scrollTop + scrollHeight;
}

function updateList(elementID, action) {
	var mainNode, tmpNode, prevNode, actionDone, counter = 0, actionDone = false;
	mainNode = document.getElementById(elementID);
	if(mainNode.hasChildNodes()) {
		plusDiv = document.getElementById('symbolPlus');
		minusDiv = document.getElementById('symbolMinus');	
		for(i=0; i<mainNode.childNodes.length; i++) {
			tmpNode = mainNode.childNodes.item(i);
			if(tmpNode.nodeName != '#text' && tmpNode.nodeName != '#comment') {
				if(tmpNode.style.display == 'none') {
					if(separatorID.length > 0) {
						separatorDiv = document.getElementById(separatorID);
					}				
					if(action == '+') {
						tmpNode.style.display = 'list-item';
						actionDone = true;
						if(counter >= minElements) {		
							minusDiv.style.display = "inline";
							if(separatorID.length > 0) {
								separatorDiv.style.display = "inline";
							}
						}						
						if(counter == (maxElements-1)) {
							plusDiv.style.display = "none";
							if(separatorID.length > 0) {
								separatorDiv.style.display = "none";
							}						
						}						
					}
					if(action == '-') {
						if(counter > minElements) {
							prevNode.style.display = 'none';
						}
						if(counter == (minElements+1)) {
							minusDiv.style.display = "none";
							if(separatorID.length > 0) {
								separatorDiv.style.display = "none";
							}						
						}							
						actionDone = true;						
					}
					break;
				}
				prevNode = tmpNode;
				counter++;
			}
		}
		if(action == '+') {
			saveMultipleCookie('dynamicListsCount', elementID, counter+1);
		}
		else {
			saveMultipleCookie('dynamicListsCount', elementID, counter);
		}
		if(actionDone == false && action == '-') {
			if((counter-1) > minElements) {
				prevNode.style.display = 'none';
			}		
			plusDiv.style.display = "inline";					
			if(separatorID.length > 0) {
				separatorDiv.style.display = "inline";
			}			
		}
	}
}

function loadList(elementID) {
	var mainNode, tmpNode, counter = 0, maxVal;
	if(haveCookie('dynamicListsCount')) {
		mainNode = document.getElementById(elementID);
		maxVal = getMultipleCookieValue('dynamicListsCount', elementID);
		plusDiv = document.getElementById('symbolPlus');
		minusDiv = document.getElementById('symbolMinus');			
		if(mainNode.hasChildNodes()) {
			for(i=0; i<mainNode.childNodes.length; i++) {
				tmpNode = mainNode.childNodes.item(i);
				if(tmpNode.nodeName != '#text' && tmpNode.nodeName != '#comment') {
					if(counter < maxVal) {
						tmpNode.style.display = 'list-item';
						if(counter >= minElements) {		
							minusDiv.style.display = "inline";
							if(separatorID.length > 0) {
								separatorDiv.style.display = "inline";
							}
						}						
						if(counter == (maxElements-1)) {
							plusDiv.style.display = "none";
							if(separatorID.length > 0) {
								separatorDiv.style.display = "none";
							}						
						}							
						counter++;
					}
				}
			}
		}
	}
}

// ---------------------------- END : /scripts/tabs.js -----------------------------
