//<script>

var NN = (document.layers) ? 1 : 0;
var Opera = (navigator.userAgent.indexOf('Opera') >= 0)? true : false;
var IE = (document.all && !Opera)? true : false;
var NN6= (document.getElementById && !IE && !Opera)?true:false;

var activeMenuNum = -1;
var menuDiv = null;
var menuLink = null;

var divMenuId = "__menu";

var workFrame = self;
var selfFrame = "self";

var eraseTimeout = null;
var displayTime = 500;

var absMenuLeft = 0;
var absMenuTop = 0;
var menuWidth = 98;

var offsetLeft = 10;
var offsetTop = -27;

var menuArr; // array for storing current submenu

function changeClass(menuId, ss) {
	if (IE) {
        if (document.getElementById(menuId)) {
                document.getElementById(menuId).className = ss;
        }
	}
}

function setMenuClass(obj) {
	if (IE) {
		obj.className = (workFrame.event.type == "mouseover" ? "menuSelected" : "menu");
	}
}

function displayMenu(num, linkObj) {
	if (IE) {
		changeClass('menu' + num, "breadCrumbItem2act");
//		changeImg('menuImg' + num, menuDownArrow); 
		if (activeMenuNum != num) {
			if (activeMenuNum != -1) {
				removeMenu();
			}
			activeMenuNum = num;
			menuLink = linkObj;
			generateMenu();
			hideSelects();
		}
	}
	clearEraseTimeout();
}

function setEraseTimeout() {
//	alert("setErase");
	eraseTimeout = setTimeout(selfFrame + ".removeMenu()", displayTime);
}

function clearEraseTimeout() {
//	alert(eraseTimeout);
	if (eraseTimeout) {
		clearTimeout(eraseTimeout);
	}
}

function eraseMenu() { // calls body onclick
	if (event.srcElement.id.indexOf(divMenuId) == -1) {
		removeMenu();
	}
}

function removeMenu() {
	if (IE) {
		if (menuDiv) {
			menuDiv.removeNode(true);
		}
		menuDiv = null;
		menuLink = null;
		changeClass('menu' + activeMenuNum, "breadCrumbItem2");
//		changeImg('menuImg' + activeMenuNum, menuLeftArrow); 
		
		activeMenuNum = -1;
		
		hideSelects();
	}
}

function generateMenu() { // menuLink, activeMenuNum should be set earlier
	menuArr = menuArray[activeMenuNum];
	if (!menuArr.length) {
		return;
	}
	var deltaLeft = 0;
	if (IE) {
		absMenuLeft = getAbsPos(menuLink, "Left") - deltaLeft - offsetLeft;
		absMenuTop = getAbsPos(menuLink, "Top") - offsetTop;
	}

	if (IE) {
		var _md = "<div id=" + divMenuId + " onmouseout=\""+ selfFrame +".setEraseTimeout()\" onmouseover=\""+ selfFrame +".clearEraseTimeout()\" " + 
				  "style='position: absolute; left: " + absMenuLeft + "; top:" + absMenuTop + "; height: auto; width: " + menuWidth + "; z-index: 100; border: 1 solid #4473B4;'>" +
				"<table cellspacing=1 border=0 cellpadding=2 width=120% class=>";
		var attrs = "<tr><td class=menu onmouseover=\""+ selfFrame +".setMenuClass(this)\" onmouseout=\""+ selfFrame +".setMenuClass(this)\" nowrap ";
		for (var i=0; i<menuArr.length; i++) {
			var tit = (menuArr[i][2] ? " title=\"" + menuArr[i][2] + "\" ": "");
			_md += attrs + tit +  " onclick=\""+ menuArr[i][1] + ";" + selfFrame + ".removeMenu()\" title=\"\"><img src='spacer.gif' width='9' height='1' border='0'>" + menuArr[i][0] + "</td></tr>";
		}
		_md += "</table></div>";
		
		workFrame.document.body.insertAdjacentHTML("afterBegin", _md);
		menuDiv = workFrame.document.getElementById(divMenuId);
	}
}

//////////////////////////////////////////////////////////
// returns absolute position of any DOM element. pos should be "Left" or "Right"
function getAbsPos(obj, pos) {
	var absPos=0;
	if (!obj) { return null; }
	while (obj && obj.tagName !="BODY") {
		absPos +=(pos=="Left" ? obj.offsetLeft : obj.offsetTop);
		obj=obj.offsetParent;
	}
	return absPos;
}

// hide selects (refactoring of hideFormItems for menu)
function hideSelects() {
	var topEl=0; var topED=0; 
	var currObj; 
	var mr = 0;
	var mb = 0;
	if (menuDiv) {
		mr = absMenuLeft + menuDiv.offsetWidth;
		mb = absMenuTop + menuDiv.offsetHeight;
	}
//	try {
		for(var i=0; i<workFrame.document.forms.length; i++) { 
			with(workFrame.document.forms[i]) {
				for(var j=0; j<length; j++) {
					if (elements[j].type.indexOf("select") != -1) {
						if (!menuDiv && elements[j].style.visibility == "hidden") {
							elements[j].style.visibility = "visible";
						} else {
							var sl = getAbsPos(elements[j], "Left");
							var st = getAbsPos(elements[j], "Top");
							var sr = sl + elements[j].offsetWidth;
							var sb = st + elements[j].offsetTop;
							if ( (sr < absMenuLeft || sb < absMenuTop || sl > mr || st > mb) ) {
								elements[j].style.visibility = "visible";
							} else {
								elements[j].style.visibility = "hidden";
							}
						}
					}
				}
			}
		}
//	} catch (ex) {
	
//	}
}

// hilite image functions
var hiliteOpac = 60;
var maxOpac = 100;
function hilite(num, opac) {
//	alert(document.getElementById("td"+num).style.filter);
	document.getElementById("td"+num).style.filter = "alpha(opacity=" + opac + ")";
}

//////////////////////////////////////////
// non menu functions

function getAbsPos(obj, pos) {
	var absPos=0;
	if (!obj) { return null; }
	while (obj && obj.tagName !="BODY") {
		absPos +=(pos=="Left" ? obj.offsetLeft : obj.offsetTop);
		obj=obj.offsetParent;
	}
	return absPos;
}

function getEvent(wndTarget) {
	if (!wndTarget) wndTarget = self;
	if (wndTarget.event) return wndTarget.event;
	var cal=getEvent, arg;
	while (cal = cal.caller) {
		if (arg = cal.arguments[0]) {
			if (arg instanceof UIEvent) {
				return arg;
			}
		}
	}
    return arg;
}

function showImage(file_id, iW, iH) {
	hideImage();
	var event = getEvent();
	var thumbImg;

    if (event.srcElement) {
        thumbImg = event.srcElement;
    } else {
        thumbImg = event.target;
    }

	var file_name = "";
	if (thumbImg.tagName == "IMG") {
		file_name = thumbImg.alt;
	}
	var iBorder = 1;
	var iHeader = 20;
	
	iW = parseInt(iW, 10);
	iH = parseInt(iH, 10);
	
	iW_ = iW + iBorder * 2;
	iH_ = iH + iBorder * 2 + iHeader;
	
//	var iTop = getAbsPos(thumbImg);
//	var iLeft = getAbsPos(thumbImg, "Left");

	with(document.body) {
		var iTop = (clientHeight - iH_)/2 + scrollTop;
		var iLeft = (clientWidth - iW_)/2 + scrollLeft;

		if (scrollHeight < iTop + iH_) {
			iTop = scrollHeight - iH_
		}
		if (iTop < 0) {
			iTop = 0;
		}

		if (scrollWidth < iLeft + iW_) {
			iLeft = scrollWidth - iW_
		}
		if (iLeft < 0) {
			iLeft = 0;
		}
	}
	
	var imgDiv = "<div id=imgDiv style=\"position: absolute; top: "+iTop+"; left: "+iLeft+"; z-index: 10; background: #4473b4\">";
	var imgContent = "<table cellpadding=1 cellspacing=0 class=bg><tr><td><table border=0 width=100% cellpadding=0 cellspacing=0>"+
					"<td align=center width=100% class=darkblue>"+ file_name +"</td>"+
					"<td style='width:16'><img src='/img/close.gif' style='cursor: pointer' width=16 height=16 border=0 onclick='hideImage()' alt='Close'></td></tr></table></td></tr>" +
					"<tr><td colspan=2><img src='/php/getfile.php?file_id="+file_id+"' onDblClick='hideImage()' width="+iW+" height="+iH+" name='popupImg'></td></tr></table>";
	imgDiv += imgContent + "</div>";
	if (IE) {
		document.body.insertAdjacentHTML("beforeEnd", imgDiv);
	} else {
		var _div = document.createElement("div");
		_div.id = "imgDiv";
		_div.style.position = "absolute";
		_div.style.top = iTop;
		_div.style.left = iLeft;
		_div.style.zIndex = 10;
		_div.style.backgroundColor = "#4473b4";
		_div.innerHTML = imgContent;
		document.body.appendChild(_div);
	}
}


function showImg(file_id) {
	hideImage();
	var iBorder = 1;
	var iHeader = 20;
	
	var iTop = 100 + document.body.scrollTop;
	var iLeft = getAbsPos(document.getElementById('imgScrollDiv'), "Left") + document.getElementById('imgScrollDiv').offsetWidth;

	var imgLinks = "";
	for (var i=0; i<fileIds.length; i++) {
		if (fileIds[i][0] == file_id) {
			imgLinks += "<a style='cursor: default; color: #cccccc'><b>" + (i + 1) + "</b></a>&nbsp; ";
			file_title = fileIds[i][1];
		} else {
			imgLinks += "<a style='cursor: hand; color: white' onclick=\"showImg('"+fileIds[i][0]+"')\" title=\""+fileIds[i][1]+"\"><b>"+ (i +1) +"</b></a>&nbsp; \n";
		}
	}
	var imgDiv = "<div id=imgDiv style=\"position: absolute; top: "+iTop+"; left: "+iLeft+"; z-index: 10; background: #bd000d; \">"+
			"<table cellpadding=1 cellspacing=0 bgcolor=#bd000d width=200><tr><td><table border=0 width=100% cellpadding=0 cellspacing=0>"+
			"<td align=center class=imgtext width=100% style='color: white'>"+ file_title +"</td>"+
			"<td style='width:16'><img src='../images/close.gif' style='cursor: hand' width=16 height=16 border=0 onclick='hideImage()' alt='Закрыть Картинку'></td></tr></table></td></tr>" +
			"<tr><td colspan=2><img src='getfile.php?file_id="+file_id+"' onDblClick='hideImage()' name='popupImg'></td></tr>"+
			"<tr><td colspan=2 align=center>" + imgLinks +  "</td></tr></table></div>";
	document.body.insertAdjacentHTML("beforeEnd", imgDiv);
}

function hideImage() {
	var _div = document.getElementById("imgDiv");
	if (_div) {
		if (IE) {
			_div.removeNode(true);
		} else {
			_div.parentNode.removeChild(_div);
		}
	}
/*	if (document.getElementById("hintDiv")) {
		document.getElementById("hintDiv").removeNode(true);
	}
*/
}

var hintWidth = 260;
function showHint(hint) {
	var imgDiv = document.getElementById("imgDiv");
	if (imgDiv) {
		if (!document.getElementById("hintDiv") ) {
			var hTop = imgDiv.offsetTop + 20;
			var hLeft = imgDiv.offsetLeft + imgDiv.offsetWidth - hintWidth;
			var hintDivContent = "<div id='hintDiv' style='position: absolute; top: "+hTop+"; left: "+hLeft+"; width: " + hintWidth + "; z-index:11; background: #0f3596'>"+
			"<table cellpadding=3 cellspacing=1 bgcolor=#0f3596 width="+hintWidth+"><tr><td id=hintTd class=text style='color:#0f3596'>"+
			hint + "</td></tr></table></div>";
			document.body.insertAdjacentHTML("beforeEnd", hintDivContent);
		} else {
			document.getElementById("hintTd").innerText = hint;
			document.getElementById("hintDiv").style.visibility = "visible";
		}
	}
}

function hideHint() {
	if (document.getElementById("hintDiv")) {
		document.getElementById("hintDiv").style.visibility = "hidden";
	}
}

/*******************************************************/
var imgScrollDiv;
var imgContentTable;
var mainTextTd;

var scrollInterval

var minImgHeight = 250;
var oneStep = 15;
var timeInterval = 100;

function showImageDiv() {
	if (document.getElementById('imgScrollDiv')) {
		imgScrollDiv = document.getElementById('imgScrollDiv');
		mainTextTd = document.getElementById('mainTextTd');
		imgContentTable = document.getElementById('imgContentTable');
		
		imgScrollDiv.style.height = mainTextTd.offsetHeight > minImgHeight ? mainTextTd.offsetHeight : minImgHeight;

		imgScrollDiv.style.display = "block";
		
		setTimeout("checkNeedScroll()", 500);
	}
}

function checkNeedScroll() {
	if (imgContentTable.offsetHeight <= parseInt(imgScrollDiv.style.height, 10)) {
		document.getElementById('imgOuterTable').bgColor = "white";
		document.getElementById("upImgButton").style.visibility = "hidden";
		document.getElementById("downImgButton").style.visibility = "hidden";
	} else {
		document.getElementById('imgOuterTable').bgColor = "#cccccc";
		document.getElementById("upImgButton").style.visibility = "visible";
		document.getElementById("downImgButton").style.visibility = "visible";
	}
}

function imgScroll(direct) { // direct should be +1 or -1
	var tmp = parseInt(imgContentTable.style.top, 10) + direct * oneStep;
	if (tmp > 0) {
		tmp = 0;
	} else if (tmp + imgContentTable.offsetHeight < parseInt(imgScrollDiv.style.height, 10) ) {
		tmp = parseInt(imgScrollDiv.style.height, 10) - imgContentTable.offsetHeight;
	}
	imgContentTable.style.top = tmp;
}

function clrImgScroll() {
	if (scrollInterval) {
		clearInterval(scrollInterval);
		scrollInterval = 0;
	}
}

function setImgScroll(direct) {
	clrImgScroll();
	scrollInterval = setInterval("imgScroll(" + direct + ")", timeInterval);
}