var	isDOM=document.getElementById?true:false,
	isOpera=isOpera5=window.opera && isDOM
	isOpera6=isOpera && window.print,
	isOpera7=isOpera && document.readyState,
	isMSIE=isIE=document.all && document.all.item && !isOpera,
	isStrict=document.compatMode=='CSS1Compat',
	isNN=isNC=navigator.appName=="Netscape",
	isNN4=isNC4=isNN && !isDOM,
	isMozilla=isNN6=isNN && isDOM,
	
	
	pageLeft=0,
	pageTop=0;

var is_chrome = false, chrome_version = false;
if (navigator.userAgent.toLowerCase().indexOf('chrome') > -1) {
       is_chrome = true;
       chrome_version = navigator.userAgent.replace(/^.*Chrome\/([\d\.]+).*$/i, '$1')
}	
	
function getBody(w){
	if(!w) w=window
	if(isStrict){
		return w.document.documentElement
	} else{
		return w.document.body
	}
}

function getWindowWidth(w){
	if(!w) w=window
	if(isMSIE) return getBody(w).clientWidth
	if(isNN || isOpera) return w.innerWidth
}  

function getWindowHeight(w){
	if(!w) w=window
	if(isMSIE) return getBody(w).clientHeight
	if(isNN || isOpera) return w.innerHeight
}

function getDocumentWidth(w){
	if(!w) w=window
	if(isMSIE || isOpera7) return 	getBody(w).scrollWidth
	if(isNN) return w.document.width
	if(isOpera) return w.document.body.style.pixelWidth
}

function getDocumentHeight(w){
	if(!w) w=window
	if(isMSIE || isOpera7) return getBody(w).scrollHeight
	if(isNN) return w.document.height
	if(isOpera) return w.document.body.style.pixelHeight
}

function getWidth(elementObject){
  if(isMSIE || isMozilla || isOpera7) return elementObject.offsetWidth
  if(isOpera) return elementStyle(elementObject).pixelWidth
  if(isNN4) return elementObject.document.width
}

function getHeight(elementObject){
  if(isMSIE || isMozilla || isOpera7) return elementObject.offsetHeight
  if(isOpera) return elementStyle(elementObject).pixelHeight
  if(isNN4) return elementObject.document.height
}

function getBottom(elementObject){
	return getAbsoluteTop(elementObject) + getHeight(elementObject)
}

function getPageOffset(elementObject){ 
	var left=0, top=0
	do {
		left += elementObject.offsetLeft
		top += elementObject.offsetTop
	} while (
		elementObject=elementObject.offsetParent
	)
	return [left, top]
}

function getAbsoluteTop(elementObject){
	if (isMSIE || isMozilla || isOpera) return getPageOffset(elementObject)[1]-pageTop
	if (isNN4) return elementObject.pageY-pageTop
}

function getAbsoluteRight(elementObject){
	return getAbsoluteLeft(elementObject) + getWidth(elementObject);
}

function getAbsoluteLeft(elementObject){
	if (isMSIE || isMozilla || isOpera) return getPageOffset(elementObject)[0]-pageLeft
	if (isNN4) return elementObject.pageX-pageLeft
}

function setTop(elementObject, y){
	y += pageTop
	if (isOpera){
		elementStyle(elementObject).pixelTop=y
	} else if (isNN4){
		elementObject.y=y
	} else {
		elementStyle(elementObject).top=y+"px"
	}
}

function setLeft(elementObject, x){
	x += pageLeft
	if (isOpera){
		elementStyle(elementObject).pixelLeft=x
//			elementStyle(elementObject).left = x + "px"
	} else if (isNN4){
		elementObject.x = x
	} else{
		elementStyle(elementObject).left = x + "px"
	}
}

function moveObject(elementObject, x, y){
	setLeft(elementObject, x);
	setTop(elementObject, y);
}

function setBgColor(elementObject, color){
	if (isMSIE || isMozilla || isOpera7){
		elementStyle(elementObject).backgroundColor = color
	} else if (isOpera){
		elementStyle(elementObject).background = color
	} else if (isNN4){
		elementStyle(elementObject).bgColor = color
	}
}

function setVisibility(elementObject, v){
//	  elementStyle(elementObject).visibility=(v)?(isNN4?"show":"visible"):(isNN4?"hide":"hidden")
	if (v){
		if (isNN4){
			elementStyle(elementObject).visibility = "show"
		} else {
			elementStyle(elementObject).visibility = "visible"
		}
	} else {
		if (isNN4){
			elementStyle(elementObject).visibility = "hide"
		} else {
			elementStyle(elementObject).visibility = "hidden"
		}
	}
}


function element(elementName){
	if ((elementName == "VirtLabApplet") && isNN){
		elementName += "_emb";
		return document.getElementById(elementName);
	}
	
	//MSIE4
	if(document.all) {
		return document.all[elementName];
	}
	
	//DOM1
	if(document.getElementById) {
		return document.getElementById(elementName);
	}
	
	//Netscape 4
	if(document.elements) {
		return document.elements[elementName];
	}
	
	return null
};

function elementStyle(elementObject){
	if(elementObject.style){
		return elementObject.style;
	}
	return elementObject
};
	
	
/* ========================== FOR MENU ===============START ======= */
var ns=(document.layers),
	ns6=(document.getElementById&&!document.all),
	ie=(document.all);

if (ns||ns6){
	window.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP | Event.MOUSEOVER | Event.MOUSEOUT | Event.KEYDOWN | Event.KEYPRESS | Event.KEYUP);
//	document.releaseEvents(Event.MOUSEMOVE);
}
if (ns){
	window.onmouseover = over4menu;
	window.onkeypress = keypress_;
}
if (ie||document.getElementById){
	document.onmouseover = over4menu;
	document.onkeypress = keypress_;
}

var idDivMenu = 'divMenu', currentIdSlcItem = '', oldIdSlcItem = '', oldIdSlcItem2 = '';

var test = 0;
function keypress_(e){
	if (!e){
		var e = event;
	};
	if (e.ctrlKey){
		test++;
//		element('testHTML').value = '['+test+']';
		reSizeHeightColumns();
//		setTimeout('reSizeHeightColumns()', 500);
	};
}

function over4menu(e){
	var id = '', id2 = '', strHTML = "", valueDYN_ = "";
	var ldm = 0, tdm = 0;
	if (ie && window.event.srcElement){
		if (window.event.srcElement){id = window.event.srcElement.id}
		if (window.event.srcElement.parentElement){id2 = window.event.srcElement.parentElement.id}
	}
	if (ns6){
		id = e.target.id
		id2 = e.target.parentNode.id
	}
	if (id == ""){
		id = id2
	}
	
	if ((""+id).toLowerCase() == "undefined"){
		// empty;
	} else {
		if (element(idDivMenu)){
			if (id.indexOf('command') == -1){
				cancelSlcItem(); 
				hideSubMenu();
			} else if (id.indexOf('subcommand') != -1){
				if (oldIdSlcItem2 != ''){
					setStatus_selectTMPItem2(oldIdSlcItem2, false); // отмена выделенного элемента
				}
				setStatus_selectTMPItem2(id, true); // выделение нового эл-та
				oldIdSlcItem2 = id;
			}
		}
	}
}

function autocontrol_setStatus_selectTMPItem2(id){
	if (oldIdSlcItem2 != id){
		setStatus_selectTMPItem2(oldIdSlcItem2, false); // отмена выделенного элемента
	}
	setStatus_selectTMPItem2(id, true); // выделение нового эл-та
	oldIdSlcItem2 = id;
}

function searchItem(id){
	for (var i = 0; i < itemMenu.length; i++){
		if (itemMenu[i].indexOf(id) != -1){
			return i;
		}
	}
	return -1;
}

function searchSubItem(main_id){
	for (var i = 0; i < itemMenu.length; i++){
		if (itemMenu[i].indexOf(main_id) == 0){
			return i;
		}
	}
	return -1;
}

function showMenu(idItem){
	var isMainCommand = false, isSubCommand = false,
		startPos_subItemMenu = -1;
	if (oldIdSlcItem2 != ''){
		setStatus_selectTMPItem1(oldIdSlcItem2, false); // отмена выделенного элемента
	}
	if ((idItem != '') && (oldIdSlcItem == idItem)) return false;
	if (oldIdSlcItem != '' && oldIdSlcItem != itemMenu_currentCommand){
		setStatus_selectTMPItem1(oldIdSlcItem, false); // отмена выделенного элемента
	}
	oldIdSlcItem = idItem;
//	if (itemMenu_currentCommand == idItem) return false; // если выбранный пункт - текущий
	
	isMainCommand = (idItem.indexOf('main') == 0) ? true : false;
	isSubCommand = (idItem.indexOf('sub') == 0) ? true : false;
	startPos_subItemMenu = searchSubItem(idItem+"__sub");
	setStatus_selectTMPItem1(idItem, true); // выделение нового эл-та
	if (startPos_subItemMenu == -1){// нет вложенного меню
		setVisibility(element(idDivMenu), false);
		// empty
	} else { // иначее есть вложенное меню
		buildAndShowMenu(idItem, startPos_subItemMenu);
	}
}

function cancelSlcItem(){
	if (oldIdSlcItem != '' && oldIdSlcItem != itemMenu_currentCommand){
		setStatus_selectTMPItem1(oldIdSlcItem, false);
	}
	oldIdSlcItem = '';
}

function parseId(details_itemMenu){
	var result;
	result = details_itemMenu.slice(pos1, details_itemMenu.indexOf("__"));
	return result;
}

function parseSubId(details_itemMenu){
	var pos1, pos2, result;
	pos1 = details_itemMenu.indexOf("__");
	pos2 = details_itemMenu.indexOf("__", pos1);
	result = details_itemMenu.slice(pos1+2, details_itemMenu.length);
	result = result.slice(0, result.indexOf("__"));
	return result;
}

function parseLink(details_itemMenu){
	var pos1, pos2, result;
	pos2 = details_itemMenu.lastIndexOf("__");
	pos1 = details_itemMenu.lastIndexOf("__", pos2-2);
	result = details_itemMenu.slice(pos1+2, pos2);
	result = result.replace("?page=subcommand_", "");
	return result;
}

function parseText(details_itemMenu){
	var pos1, result;
	pos1 = details_itemMenu.lastIndexOf("__");
	result = details_itemMenu.slice(pos1+2, details_itemMenu.length);
	return result;
}

function buildAndShowMenu(idSlcItem, startPos_subItemMenu){
	var strHTML = '', details_itemMenuTMP = "",
		subId = '', link = '', text = '';
	strHTML = '<table id="divMenucommands_DYN" class="subMenu" cellpadding="0" cellspacing="0" style="width: auto;">\n';
	strHTML += '	<colgroup>\n';
	strHTML += '		<col width="6px">\n';
	strHTML += '		<col width="200px">\n';
	strHTML += '		<col width="6px">\n';
	strHTML += '	</colgroup>\n';
	
	for (var i = startPos_subItemMenu; i < itemMenu.length; i++){
		details_itemMenuTMP = itemMenu[i];
		if (details_itemMenuTMP.indexOf(idSlcItem) != 0){ // если перебраны все пункты меню
			break;
		} else { // иначе добавляем пункт в меню
			subId = parseSubId(details_itemMenuTMP);
			link = parseLink(details_itemMenuTMP);
			text = parseText(details_itemMenuTMP);
			strHTMLplus = (link.indexOf("ttp://") > 0) ? " onClick=\"this.target='blank'\" " : "";
			
			if (i == startPos_subItemMenu){
				strHTML += '	<tr>\n';
				strHTML += '		<td id="m_'+subId+'_lt" class="lt_"></td>\n';
				strHTML += '		<td id="m_'+subId+'_t" class="t_"></td>\n';
				strHTML += '		<td id="m_'+subId+'_rt" class="rt_"></td>\n';
				strHTML += '	</tr>\n';
			}
			
			strHTML += '	<tr>\n';
//			strHTML += '		<td id="x_'+subId+'_l" class="l_" onmouseover="autocontrol_setStatus_selectTMPItem2(\''+subId+'\')"></td>\n';
			strHTML += '		<td id="x_'+subId+'_l" class="l_"></td>\n';
			strHTML += '		<td id="'+subId+'" class="item_"><b><a '+strHTMLplus+'href="'+link+'" id="'+subId+'_a">'+text+'</a></b></td>\n';
			strHTML += '		<td id="x_'+subId+'_r" class="r_"></td>\n';
			strHTML += '	</tr>\n';
		}
	}
	strHTML += '	<tr>\n';
	strHTML += '		<td id="m_'+subId+'_lb" class="lb_"></td>\n';
	strHTML += '		<td id="m_'+subId+'_b" class="b_"></td>\n';
	strHTML += '		<td id="m_'+subId+'_rb" class="rb_"></td>\n';
	strHTML += '	</tr>\n';

	strHTML += '</table>\n';

	element(idDivMenu).innerHTML = strHTML;
	moveObject(element(idDivMenu), getAbsoluteLeft(element(idSlcItem)), getBottom(element(idSlcItem))-3);
	setVisibility(element(idDivMenu), true);
	if (getWidth(element(idSlcItem)) > getWidth(element("divMenucommands_DYN"))){
		elementStyle(element("divMenucommands_DYN")).width = getWidth(element(idSlcItem))+"px";
	}
}

function hideSubMenu(){
	setVisibility(element(idDivMenu), false);
}

function setStatus_selectTMPItem1(idItem, newActiveStatus){
	if (newActiveStatus){
		if (itemMenu_currentCommand != idItem){
			if (element(idItem)){
//document.getElementById('testHTML').value += "11\n";
				setBgColor(element(idItem), '#358CC3');
				elementStyle(element(idItem)).color = '#FFFFFF';
			}
			if (element(idItem+'_a')){
//document.getElementById('testHTML').value += "12\n";
				setBgColor(element(idItem+'_a'), '#358CC3');
				elementStyle(element(idItem+'_a')).color = '#FFFFFF';
			}
		}
	} else {
		if (element(idItem)){
//document.getElementById('testHTML').value += "21\n";
			setBgColor(element(idItem), '#E3ECF8');
			elementStyle(element(idItem)).color = '#365F95';
		}
		if (element(idItem+'_a')){
//document.getElementById('testHTML').value += "22\n";
			setBgColor(element(idItem+'_a'), '#E3ECF8');
			elementStyle(element(idItem+'_a')).color = '#365F95';
		}
	}
	if (element(idItem) && element(idItem+'_a')){
		if (elementStyle(element(idItem)).backgroundColor != elementStyle(element(idItem+'_a')).backgroundColor){
			setBgColor(element(idItem+'_a'), elementStyle(element(idItem)).backgroundColor);
		}
//document.getElementById('testHTML').value = "["+elementStyle(element(idItem+'_a')).backgroundColor+"]["+(elementStyle(element(idItem+'_a')).backgroundColor == '')+"]\n";
		if (elementStyle(element(idItem+'_a')).backgroundColor == ''){
			elementStyle(element(idItem+'_a')).color = '#FFFFFF';
		}
	}
//document.getElementById('testHTML').value += "["+elementStyle(element(idItem)).backgroundColor+"]\n";
}

function setStatus_selectTMPItem2(idItem, newActiveStatus){
	if (idItem.indexOf("x_subcommand") == 0){
		idItem = idItem.slice(2, idItem.length);
		idItem = idItem.slice(0, idItem.lastIndexOf("_"));
	}
	if (newActiveStatus){
		if (element(idItem))
			elementStyle(element(idItem)).color = '#358CC3';
		if (element(idItem+'_a')){
			elementStyle(element(idItem+'_a')).color = '#358CC3';
		}
	} else {
		if (element(idItem))
			elementStyle(element(idItem)).color = '#365F95';
		if (element(idItem+'_a')){
			elementStyle(element(idItem+'_a')).color = '#365F95';
		}
	}
}
/* ========================== FOR MENU ================ END ======== */
/* ========================== FOR ONLOAD ЗAGE ======= START ======= */
var h1, h2, h3, h4, h5, fullH, hDYNold, iterationCheck = 0, oldWHeight = 0;
function setDefaultHeights(){
//	elementStyle(element("col2_table_content1")).height = "30px";

	if (element("img_logoHead")){	h1 = 100; elementStyle(element("img_logoHead")).height = h1+"px";}
	if (element("td_mainMenu")){	h2 = 25; elementStyle(element("td_mainMenu")).height = h2+"px";}
	if (element("td_position")){	h3 = 30; elementStyle(element("td_position")).height = h3+"px";}
//	if (element("td_Content")){		elementStyle(element("td_Content")).height = "10px";}
	if (element("td_copy")){		h4 = 33; elementStyle(element("td_copy")).height = h4+"px";}
//	if (element("td_copy2")){		elementStyle(element("td_copy")).height = h4+"px";}
}

function getHeights(){
/*	h1 = (element("img_logoHead")) ? getHeight(element("img_logoHead"))-50 : 0;
	h2 = (element("td_mainMenu")) ? getHeight(element("td_mainMenu")) : 0;
	h3 = (element("td_position")) ? getHeight(element("td_position")) : 0;
	h4 = (element("td_copy")) ? getHeight(element("td_copy")) : 0;*/
	fullH = getDocumentHeight();
	oldWHeight = getWindowHeight();
}

function reSizeHeightColumns(){
	var cnt_dubtale = 16;
	var hleft_, hright_,
		hleft_2, hright_2, dh_2;
	var haveColumns = false;

	for (var i = 0; i < cnt_dubtale; i++){
		if (
			element("table_news"+(i+1)+"__") && 
			element("table_news"+(i+2)+"__") &&
			element("hd_news"+(i+1)) &&
			element("hd_news"+(i+2))
		){
			haveColumns = true;
			break;
		}
	}
	if (!haveColumns) return false;

	for (var i = 0; i < cnt_dubtale; i++){
		if (element('table_news'+(i+1)+'__'))
			elementStyle(element('table_news'+(i+1)+'__')).height = "auto";
		eval('var h'+(i+1)+'_tmp = 10;');
		eval('var h'+(i+1)+'_tmp2 = 1;');
	}
	for (var i = 0; i < cnt_dubtale; i++){
		if (element('table_news'+(i+1)+'__')){
			elementStyle(element('table_news'+(i+1)+'__')).height = "auto";
			eval('h'+(i+1)+'_tmp = getHeight(element("table_news'+(i+1)+'__"));');
			eval('h'+(i+1)+'_tmp2 = getHeight(element("hd_news'+(i+1)+'"));');
		} else {
			eval('h'+(i+1)+'_tmp = 10;');
			eval('h'+(i+1)+'_tmp2 = 1;');
		}
	}
	for (var i = 0; i < cnt_dubtale; i++){
		hleft_ = eval('h'+(i+1)+'_tmp');
		hright_ = eval('h'+(i+2)+'_tmp');

		if (element('table_news'+(i+1)+'__')){
			if (hleft_ < hright_){
				elementStyle(element("table_news"+(i+1)+"__")).height = (isMSIE) ? hright_ : hright_+"px";
				hleft_ = hright_;
			} else {
				elementStyle(element("table_news"+(i+2)+"__")).height = (isMSIE) ? hleft_ : hleft_+"px";
				hright_ = hleft_;
			}
		}
		
		
		hleft_2 = eval('h'+(i+1)+'_tmp2');
		hright_2 = eval('h'+(i+2)+'_tmp2');
		dh_2 = hright_2-hleft_2;
		
		if (hleft_2 < hright_2){
			elementStyle(element("table_news"+(i+1)+"__")).height = (isMSIE) ? hright_+dh_2 : (hright_+dh_2)+"px";
		} else if (hleft_2 > hright_2) {
			elementStyle(element("table_news"+(i+2)+"__")).height = (isMSIE) ? hright_+dh_2 : (hright_+dh_2)+"px";
		}
		
		i++;
	}
}

function reSize_tdContent(){
	var hDYN, dimense_Wheight = 0, newWHeight;
//	elementStyle(element("col2_table_content1")).height = "30px";

	reSizeHeightColumns();

	if (isMSIE){
		elementStyle(element("td_Content")).height = "10px";
		elementStyle(element("table_content1")).height = "10px";
	}
	
	if (isOpera){
		elementStyle(element("table_content1")).height = "100%";
	}
	
	newWHeight = getWindowHeight();
	if (iterationCheck == 0){
		hDYN = (isMSIE || isOpera) ? (fullH-h1-h2-h3-h4) : "100%";
	} else {
		dimense_Wheight = newWHeight - oldWHeight;
		hDYN = (isMSIE || isOpera) ? (hDYNold+dimense_Wheight) : "100%";
	}

	if (isOpera && element("td_position")){
		hDYN = "100%";
	}

	elementStyle(element("td_Content")).height = (isOpera) ? hDYN-23 : ((isMSIE) ? hDYN-25 : hDYN);
	elementStyle(element("table_content1")).height = getHeight(element("td_Content"));
	
//	elementStyle(element("headPage_")).height = "10px";
	
//	elementStyle(element("col3_table_content1")).height = fullH-getHeight(element("col1_table_content1"))-getHeight(element("col2_table_content1"));
	
//	elementStyle(element("col3_table_content1")).height = getHeight(element("td_Content"))-getHeight(element("col1_table_content1"))-getHeight(element("col2_table_content1"));
	iterationCheck++;
	hDYNold = hDYN;
	oldWHeight = newWHeight;
}
/* ========================== FOR ONLOAD ЗAGE ======== END ======== */