var
	IE = document.all,
	timerExtra = false,
	extraIdentificator_Previous = false,
	extraArray = new Array(),
	extraArray_r = new Array();

function setExtra() {
	if (extraArray_r.length > 0) {
		for (var i = 0; i < extraArray_r.length; i++) {
			var
				tempSource = getCoordinates("menuItem_Nucleus" + extraArray_r[i]),
				tempTarget = getCoordinates("extraList" + extraArray_r[i]);
			
			getElement("menuItem_Nucleus" + extraArray_r[i]).style.width = tempSource.width + "px";
			getElement("extraList" + extraArray_r[i]).style.marginLeft = "-" + (tempTarget.width - tempSource.width - 2 + 1) + "px";
		}
	}
	getElement("rootCategories").className = "filter extraLoaded";
}

var
	timerFilter_Remove = false;

function effectExtra_removeFilter(action) {
	if (action == true) {
		getElement("rootCategories").className = "extraLoaded";
	} else {
		getElement("rootCategories").className = "filter extraLoaded";
	}
}

function effectExtra(id, action) {
	if (IE && getElement("extraList" + id)) {
		if (action == true) {
			window.clearInterval(timerFilter_Remove);
			effectExtra_removeFilter(false);
			getElement("extraList" + id).filters[0].apply();
		} else {
			getElement("extraList" + id).filters[0].play();
			window.clearInterval(timerFilter_Remove);
			timerFilter_Remove = window.setTimeout("effectExtra_removeFilter(true)", 300);
		}
	}
}

function clearExtra(skip) {
	if (getElement("rootCategories") && extraArray.length > 0) {
		for (var i = 0; i < extraArray.length; i++) {
			if (!skip || extraArray[i] != skip) {
				effectExtra(extraArray[i], true);
				getElement("menuItem_Nucleus" + extraArray[i]).className = "menuItem_Nucleus";
				effectExtra(extraArray[i], false);
			}
		}
	}
}

function extraOver(id) {
	if (extraIdentificator_Previous != id) {
		effectExtra(id, true);
		extraList_Data(false, false);
		classOver("menuItem_Nucleus" + id, 'over');
		effectExtra(id, false);
	}
	extraIdentificator_Previous = id;
	
	getElement("emptiness").className = "";
	getElement("menuItem_Nucleus" + id).style.zIndex = 3002;
}

function extraTimer_Clear() {
	window.clearInterval(timerExtra);
}

function extraOver_Previous(id) {
	timerExtra = window.setTimeout("extraOver(" + id + ")", 200);
}

function emptinessOver() {
	clearExtra();
	extraIdentificator_Previous ? getElement("menuItem_Nucleus" + extraIdentificator_Previous).style.zIndex = 2001 : "";
	getElement("emptiness").className = "none";
	extraIdentificator_Previous = false;
}

/*function emptinessOver_Previous() {
	window.setTimeout("emptinessOver()", 750);
}*/

function extraList_removeFilter(idElement) {
	getElement(idElement).className = getElement(idElement).className.replace("filterAttach", "");
}

var timer_extraList_Data;

function extraList_Data_Clear() {
	window.clearTimeout(timer_extraList_Data);
}

function extraList_Data_Previous(idElement, object) {
	timer_extraList_Data = window.setTimeout(function() {extraList_Data(idElement, object)}, 250);
}

function extraList_Data(idElement, object) {
	if (idElement === false && object === false && childrenId_Array) {
		for (var i = 0; i < childrenId_Array.length; i++) {
			object = getElement(childrenId_Array[i] + "Arrow");
			object.className = "extraList_Arrow children";
			object.setAttribute("title", "Open");
			getElement(childrenId_Array[i]).className = "extraList_Children filterAttach";
		}
	} else {
		if (getElement(idElement) && object) {
			if (object.className == "extraList_Arrow children") {
				object.className = "extraList_Arrow children open";
				object.setAttribute("title", "Close");
				getElement(idElement).className += " filterAttach";
				IE ? getElement(idElement).filters[0].apply() : "";
				getElement(idElement).className = "extraList_Children filterAttach openChildren";
				IE ? getElement(idElement).filters[0].play() : "";
				window.setTimeout(function () {extraList_removeFilter(idElement);}, 550);
			} else {
				object.className = "extraList_Arrow children";
				object.setAttribute("title", "Open");
				getElement(idElement).className += " filterAttach";
				IE ? getElement(idElement).filters[0].apply() : "";
				getElement(idElement).className = "extraList_Children filterAttach";
				IE ? getElement(idElement).filters[0].play() : "";
				window.setTimeout(function() {extraList_removeFilter(idElement);}, 550);
			}
		}
	}
}
