var isDOM=document.getElementById;
var isOpera5=window.opera;
var isOpera=(isOpera5&&isDOM);
// var isOpera=((navigator.userAgent.indexOf("Opera")!=-1)?true:false);
var isOpera6=(isOpera&&window.print);
var isOpera7=(isOpera&&document.readyState);
var isMSIE=(document.all&&document.all.item&&!isOpera); var isMSIE5=(isDOM&&isMSIE);
var isIE=((navigator.appVersion.indexOf("MSIE")!=-1)?true:false);
var isWin=(navigator.appVersion.toLowerCase().indexOf("win")!=-1)?true:false;
var isNetscape4=document.layers; var isMozilla=(isDOM&&navigator.appName=='Netscape');
var isAjax=(window.XMLHttpRequest||window.ActiveXObject);
var ajReq=new Array();

function ajLoad(url,val,id,func)
{
	var length=ajReq.length;

	if(!func)
		var func='';

	if(window.ActiveXObject)
	{
		try{ ajReq[length]=new ActiveXObject('Msxml2.XMLHTTP'); }
		catch(a)
		{
			try{ ajReq[length]=new ActiveXObject('Microsoft.XMLHTTP'); }
			catch(b){}
		}
	}

	if(!ajReq[length] && typeof XMLHttpRequest!="undefined")
	{
		ajReq[length]=new XMLHttpRequest;
		if(ajReq[length].overrideMimeType )
			ajReq[length].overrideMimeType('text/html');
	}

	if(ajReq[length])
	{
		ajReq[length].onreadystatechange=function(){ ajProcess(id,length,func) };
		ajReq[length].open('POST',url,true);
		ajReq[length].setRequestHeader('Content-type','application/x-www-form-urlencoded');
		ajReq[length].setRequestHeader('Content-length',val.length);
		if(!document.all)
			ajReq[length].setRequestHeader('Connection','close');
		ajReq[length].send(val);
		return false;
	}

	return true;
}

function ajProcess(id,length,func)
{
	var obj=document.getElementById(id);

	if(ajReq[length].readyState==4&&ajReq[length].status==200&&obj&&obj!='')
	{
		obj.innerHTML=ajReq[length].responseText;

		if(func!='')
		{
			try{ eval(func); }
			catch(e){}
		}
	}
}

function ajRequestValue(url,id,send,func)
{
	if(!func)
		var func='';

	return ajLoad(url,send,id,func);
}

function ajEncode(text)
{
	return encodeURI(text);
}

function ajCheckbox(check)
{
	if(check)
	{
		if(check.value==0) return 0;
		else return (check.checked?1:0);
	}
	return 0;
}

function utCollapse(id)
{
	obj=document.getElementById(id);

	if(obj.style.display!='none')
		obj.style.display='none';
	else
		obj.style.display='block';
}

function utBlurClass(obj,text,name)
{
	if(obj.value=='')
		obj.value=text;

	obj.className=name;
}

function utFocusClass(obj,text,name)
{
	if(obj.value==text)
		obj.value='';

	obj.className=name;
}

function utBlur(obj,text)
{
	if(obj.value=='')
		obj.value=text;
}

function utFocus(obj,text)
{
	if(obj.value==text)
		obj.value='';
}

function utBookMark(a)
{
	var url=window.document.location;
	var title=window.document.title;
	var warning='Нажмите CTRL-D, чтобы добавить страницу в закладки.';

	if(isMSIE)
	{
		if(window.external.AddFavorite(url,title)==true)
			return true;
	}
	else if(isOpera)
	{
		a.href=url;
		a.rel="sidebar";
		a.title=url+','+title;
	}
	else if(isNetscape4&&window.sidebar)
		window.sidebar.addPanel(title,url,"")
	else
		alert(warning);

	return false;
}

function utGetStyle(oElm,strCssRule)
{
	var strValue="";

	if(document.defaultView&&document.defaultView.getComputedStyle)
	{
		var css=document.defaultView.getComputedStyle(oElm, null);
		strValue=css?css.getPropertyValue(strCssRule):null;
	}
	else if(oElm.currentStyle)
	{
		strCssRule=strCssRule.replace(/\-(\w)/g,function(strMatch, p1){ return p1.toUpperCase(); });
		strValue=oElm.currentStyle[strCssRule];
	}

	return strValue;
}

var utDragzone=true;

function utDraggable(el,class1,class2)
{
	var xDelta=0,yDelta=0;
	var xStart=0,yStart=0;

	function enddrag()
	{
		el.className=class2;
		document.onmouseup=null;
		document.onmousemove=null;
	}

	function drag(e)
	{
		e=e || window.event;
		xDelta=xStart-parseInt(e.clientX);
		yDelta=yStart-parseInt(e.clientY);
		xStart=parseInt(e.clientX);
		yStart=parseInt(e.clientY);
		el.style.top=(parseInt(el.style.top)-yDelta)+'px';
		el.style.left=(parseInt(el.style.left)-xDelta)+'px';
	}

	function md(e)
	{
		if(!utDragzone)
			return false;

		el.className=class1;
		e=e||window.event;
		xStart=parseInt(e.clientX);
		yStart=parseInt(e.clientY);
		el.style.top=parseInt(utGetStyle(el,'top'))+'px';
		el.style.left=parseInt(utGetStyle(el,'left'))+'px';
		document.onmouseup=enddrag;
		document.onmousemove=drag;
		return false;
	}

	el.onmousedown=md;
}

var utTooltip=function(){
	var id = 'tt';
	var top = 0;
	var left = 10;
	var maxw = 300;
	var speed = 10;
	var timer = 10;
	var endalpha = 95;
	var alpha = 0;
	var tt,t,c,b,h;
	var ie = document.all ? true : false;
	return{
		show:function(v,w){
			if(tt == null){
				tt = document.createElement('div');
				tt.setAttribute('id',id);
				t = document.createElement('div');
				t.setAttribute('id',id + 'top');
				c = document.createElement('div');
				c.setAttribute('id',id + 'cont');
				b = document.createElement('div');
				b.setAttribute('id',id + 'bot');
				tt.appendChild(t);
				tt.appendChild(c);
				tt.appendChild(b);
				document.body.appendChild(tt);
				tt.style.opacity = 0;
				tt.style.filter = 'alpha(opacity=0)';
				document.onmousemove = this.pos;
			}
			tt.style.display = 'block';
			c.innerHTML = v;
			tt.style.width = w ? w + 'px' : 'auto';
			if(!w && ie){
				t.style.display = 'none';
				b.style.display = 'none';
				tt.style.width = tt.offsetWidth;
				t.style.display = 'block';
				b.style.display = 'block';
			}
			if(tt.offsetWidth > maxw){tt.style.width = maxw + 'px'}
			h = parseInt(tt.offsetHeight) + top;
			clearInterval(tt.timer);
			tt.timer = setInterval(function(){utTooltip.fade(1)},timer);
		},
		pos:function(e){
			var u = ie ? event.clientY + document.documentElement.scrollTop : e.pageY;
			var l = ie ? event.clientX + document.documentElement.scrollLeft : e.pageX;
			tt.style.top = (u - h) + 'px';
			tt.style.left = (l + left) + 'px';
		},
		fade:function(d){
			var a = alpha;
			var forie = false;
			if((a != endalpha && d == 1) || (a != 0 && d == -1)){
				var i = speed;
				if(endalpha - a < speed && d == 1){
					i = endalpha - a;
					forie = true;
				}else if(alpha < speed && d == -1){
					i = a;
				}
				alpha = a + (i * d);
				tt.style.opacity = alpha * .01;

				if(forie)
					tt.style.filter = 'alpha(opacity=' + alpha + ')';
			}else{
				clearInterval(tt.timer);
				if(d == -1){tt.style.display = 'none'}
			}
		},
		hide:function(){
			clearInterval(tt.timer);
			tt.timer = setInterval(function(){utTooltip.fade(-1)},timer);
		}
	};
}();

