var fTimeout, lx, ly, _vs, _hs, _ss, _vmh, pvObj=null, vObj=null, phObj=null, hObj=null, _vsm, _bg, _sbg, _ido='', _nv=true, mdown, mobj=document.getElementById("mlp"), vfImg;

function pageLoad() {
	preventSelection(document);
}

function kolRec(_obj) {
	var i, kol=0, _eh;
	switch (_obj.className) {
		case "tTable": {
			for (i=0; i<_obj.childNodes.length; i++) if (_obj.childNodes[i].nodeType==1) {
				kol+=parseInt(_obj.childNodes[i].offsetHeight);
			}
			//kol=parseInt(_obj.childNodes[0].offsetHeight);
			_ss=10; break;
		}
		case "subMain": {
			for (i=0; i<_obj.childNodes.length; i++) if (_obj.childNodes[i].nodeType==1) {
				kol+=parseInt(_obj.childNodes[i].offsetHeight);
			}
			_ss=2; break;
		}
		case "subItem" : {
			for (i=0; i<_obj.childNodes.length; i++) if (_obj.childNodes[i].nodeType==1) kol++;
			_eh=parseInt(_obj.childNodes[1].offsetHeight); kol*=_eh; _ss=_eh/4; break;
		}
	}
	return kol;
}

function closeSlide() {
	var obj;
	if (_ido!='') {obj=document.getElementById(_ido); obj.style.background=_bg; obj.style.color='#24607A'; _ido='';}
}

function showSlide(ido, gt) {
	var obj;
	if (_ido!='') $('#g'+_ido).mb_closeGallery();
	closeSlide(); _nv=false;
	if (ido!='') {
		_ido=ido; obj=document.getElementById(ido);
		if (obj.parentNode.parentNode.id=='') _nv=true;	 //#0079B3 #84A9EE
		_bg=obj.style.background; obj.style.background='#0088CA'; obj.style.color='#FFF';
	}
	$('#g'+ido).mbGallery({maskBgnd:'#ccc', overlayOpacity: 0.7, startFrom: 0, skin:'black', galleryTitle: gt, onClose:function(){closeSlide();}});
//	$('#containment').slideDown('slow',function() {$(nsd).mbGallery({maskBgnd:'#ccc', overlayOpacity:.9, containment:'containment',minWidth: 100, minHeight: 100, skin:'black', exifData:false, galleryTitle: gt, onClose:function(){_nsd='';}});});
}

function showSM(_pvObj, _vObj) {
	if (_nv) {
		if (vObj) {phObj=pvObj; hObj=vObj; _hs=kolRec(hObj);}
		if (!vObj || (vObj.id!=_vObj.id)) {
			pvObj=_pvObj; vObj=_vObj;
			if (_pvObj) switch (vObj.className) {
				case "tTable"  : {pvObj.style.background='url(img/si.png) left no-repeat'; break;}
				case "subItem" : {_sbg=pvObj.style.background; pvObj.style.background='#AAA'; pvObj.style.marginLeft='6px'; break;}
			}
			_vs=1; vObj.style.height=1+'px'; vObj.style.display="block"; _vmh=kolRec(vObj);
		} else {pvObj=null; vObj=null;}
		if (fTimeout && !vObj && !hObj) clearTimeout(fTimeout); DoSize();
	}
_nv=true;
}

function DoSize() {
	if (hObj) {
		if (_hs>0) hObj.style.height=_hs+'px';
		if (_hs<=0) {
			hObj.style.display='none';
			if (phObj) switch (hObj.className) {
				case "tTable": {phObj.style.background='url(img/su.png) left no-repeat'; break;}
				case "subItem" : {phObj.style.background=_sbg; phObj.style.marginLeft='0px'; break;}
			}
			phObj=null; hObj=null;
		}
		_hs-=_ss;
	}
	if (vObj && !hObj) {vObj.style.height=_vs+'px'; _vs+=_ss;}
	if (((_vs-_ss)<=_vmh) || hObj) fTimeout=setTimeout("DoSize()", 1);
}

function openBrWindow(theURL,winName,features) { 
	if(features=='') features="copyhistory=no,width=360,height=440,directories=no,menubar=no,resizable=yes,status=no,tollbar=no,scrollbars=no";
	window.open(theURL,winName,features);
}

function calcTop(x_ele) {
	var x_ret=0; var oParent=x_ele.offsetParent;
	if (oParent==null) return 0; else x_ret=x_ele.offsetTop+calcTop(oParent);
	return x_ret;
}

function calcLeft(x_ele) {
	var x_ret=0; var oParent=x_ele.offsetParent;
	if (oParent==null) return 0; else x_ret=x_ele.offsetLeft+calcLeft(oParent);
	return x_ret;
}

function readyLoad() {
	var py, px, ppy, ppx, _upFrame=document.getElementById('upFrame'), _vImg=document.getElementById('vImg');
	ppx=(window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth))+document.body.scrollLeft;
	ppy=(window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight))+document.body.scrollTop; //-_vImg.offsetHeight-4
	//px=calcLeft(obj)+obj.offsetWidth+12; py=calcTop(vfImg);
	px=document.body.scrollLeft+(ppx-(_vImg.offsetWidth+28))/2; py=document.body.scrollTop+parseInt(ppy-document.body.scrollTop-(_vImg.offsetHeight+48))/2;
	if (py>ppy) py=(ppy>0)?ppy:py; if (px>ppx) px=(ppx>0)?ppx:px; py=((py-document.body.scrollTop)<0)?0:py; px=((px-document.body.scrollLeft)<0)?0:px;
	document.getElementById('wImg').style.width=_vImg.offsetWidth-70+'px';
	_upFrame.style.top=py+'px'; _upFrame.style.left=px+'px';
	_upFrame.style.visibility='visible';
}

function ShowUpFrame(_obj, _iPath, _txtHint) {
	var _vImg=document.getElementById('vImg'), _tHint=document.getElementById('tHint');
	if (_txtHint && _txtHint!='') {_tHint.innerHTML=_txtHint; _tHint.style.display='block';} else _tHint.style.display='none';
	vfImg=_obj;
	_vImg.onload=readyLoad;
	_vImg.src=_iPath;
}

function CloseUpFrame(_obj) {
	_obj.style.visibility='hidden';
	document.getElementById('vImg').src='';

}

function ShowUpFrameText(_obj, _nTxt, ww, wh) {
	var py, px, ppy, ppx, _upFrame=document.getElementById('upFrameText'), _vTxt=document.getElementById('vTxt');
	ppx=(window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth))+document.body.scrollLeft;
	ppy=(window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight))+document.body.scrollTop;
	px=document.body.scrollLeft+(ppx-(ww+28))/2; py=document.body.scrollTop+parseInt(ppy-document.body.scrollTop-(wh+48))/2;
	if (py>ppy) py=(ppy>0)?ppy:py; if (px>ppx) px=(ppx>0)?ppx:px; py=((py-document.body.scrollTop)<0)?0:py; px=((px-document.body.scrollLeft)<0)?0:px;
	_vTxt.style.width=ww; _vTxt.style.height=wh;
	document.getElementById('wTxt').style.width=ww-70+'px';
	_vTxt.innerHTML=document.getElementById(_nTxt).innerHTML;
	_upFrame.style.top=py+'px'; _upFrame.style.left=px+'px';
	_upFrame.style.visibility='visible';
}

function upFrameDrag(_obj, e) {
	var x=0, y=0, _upFrame;
	if (!e) e=window.event;
	if (e.pageX || e.pageY) {x=e.pageX; y=e.pageY;} else if (e.clientX || e.clientY) {
		x=e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
		y=e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
	}
	if (!_obj.id) _obj=e.srcElement;
	if (_obj.id=='vImg') _upFrame=document.getElementById('upFrame');
	if (_obj.id=='wTxt') _upFrame=document.getElementById('upFrameText');
	if (_upFrame && (mdown==1)) {_vs=1; _upFrame.style.left=_upFrame.offsetLeft+(x-lx); _upFrame.style.top=_upFrame.offsetTop+(y-ly);} else _vs=0;
	lx=x; ly=y;
}

function getOpacityProperty() {
	if (typeof document.body.style.opacity=='string') return 'opacity'; // CSS3 compliant (Moz 1.7+, Safari 1.2+, Opera 9)
		else if (typeof document.body.style.MozOpacity=='string') return 'MozOpacity'; // Mozilla 1.6 и младше, Firefox 0.8 
		else if (typeof document.body.style.KhtmlOpacity=='string') return 'KhtmlOpacity'; // Konqueror 3.1, Safari 1.1
		else if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5) return 'filter'; // Internet Exploder 5.5+
	return false; //нет прозрачности
}

function setElementOpacity(sElemId, nOpacity) {
	var opacityProp=getOpacityProperty(), elem=document.getElementById(sElemId);
	if (!elem || !opacityProp) return;
	if (opacityProp=="filter") { // Internet Exploder 5.5+
		nOpacity*=100;
		var oAlpha=elem.filters['DXImageTransform.Microsoft.alpha'] || elem.filters.alpha;
		if (oAlpha) oAlpha.opacity=nOpacity; else elem.style.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+nOpacity+")"; // Для того чтобы не затереть другие фильтры используем "+= (elem.style.filter+=)"
	}
	else elem.style[opacityProp]=nOpacity; // Другие браузеры
}

function preventSelection(element) {
	var preventSelection = false;
	function addHandler(element, event, handler) {
		if (element.attachEvent) element.attachEvent('on' + event, handler); else if (element.addEventListener) element.addEventListener(event, handler, false);
	}
	function removeSelection() {
		if (window.getSelection) {window.getSelection().removeAllRanges();} else if (document.selection && document.selection.clear) document.selection.clear();
	}
	function killCtrlA(event){
		var event=event || window.event;
		var sender=event.target || event.srcElement;
		if (sender.tagName.match(/INPUT|TEXTAREA/i)) return;
		var key = event.keyCode || event.which;
		if (event.ctrlKey && key == 'A'.charCodeAt(0)) { // 'A'.charCodeAt(0) можно заменить на 65
			removeSelection();
			if (event.preventDefault) event.preventDefault(); else event.returnValue=false;
		}
	}

//	addHandler(element, 'mousemove', function() {if(preventSelection) removeSelection();}); // не даем выделять текст мышкой
//	addHandler(element, 'mousedown', function(event){var event = event || window.event; var sender = event.target || event.srcElement; preventSelection = !sender.tagName.match(/INPUT|TEXTAREA/i);});
//	addHandler(element, 'mouseup', function() {if (preventSelection) removeSelection(); preventSelection = false;}); // борем dblclick
//	addHandler(element, 'keydown', killCtrlA); // борем ctrl+A
//	addHandler(element, 'keyup', killCtrlA);
}
