function invert_visibility(id){
	var obj=document.getElementById(id);
	if(obj.style.display=='none'){
		obj.style.display='block';
	}else{
		obj.style.display='none';
	}
}

function invert_title(obj, a, b){
	if(obj.innerHTML==a){
        obj.innerHTML=b;
	}else{
    	obj.innerHTML=a;
	}
}

function set_checkboxes(form, val){
	for(i=0;i<form.elements.length;i++){
		if(form.elements[i].type=='checkbox'){
            form.elements[i].checked=val;
		}
	}
}

function show(id){
	var obj=document.getElementById(id);
    obj.style.display='block';
}

function hide(id){
	var obj=document.getElementById(id);
    obj.style.display='none';
}

function show_title(e, title, obj){
	var pos=get_mouse_pos(e);
	var size=screenSize();
	div=document.getElementById('title_div');
	div.innerHTML=title;
	if(pos['x']>size['w']-270 && pos['x']>235){		div.style.left=pos['x']+document.body.scrollLeft-235;	}else{		div.style.left=pos['x']+document.body.scrollLeft+15;	}

	div.style.top=pos['y']+15;
	div.style.display='block';
	obj.onmouseout=function(){
		div.style.display='none';
	}
}


function screenSize() {
      var w, h;
      w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
      h = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
      return {w:w, h:h};
}

function get_mouse_pos(e) {
	var x = 0, y = 0;
	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;
	}
	return {"x":x, "y":y};
}


var reg;
var reqTimeout;
var regtarget;

function processReqChange() {
    if (req.readyState == 4) {
    	clearTimeout(reqTimeout);
        if (req.status == 200) {
            regtarget.innerHTML = req.responseText;
        }else{
        	alert('Не удалось подключиться к серверу!');
        }
    }else{    	reqTimeout = setTimeout("processReqChange();", 10);    }
}

function loadXMLDoc(url, target_id, method, params) {
	regtarget=document.getElementById(target_id);
	if(window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
    if (req){
    	if(method=='post'){
	        req.open("POST", url, false);
			req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			req.setRequestHeader("Content-length", params.length);
			req.setRequestHeader("Connection", "close");
	        req.send(params);
    	}else{
	        req.open("GET", url, false);
	        req.send(null);
    	}
        reqTimeout = setTimeout("processReqChange();", 10);
    }
}

function sendAJAXForm(form, target_id){
	params='';
	for(i=0;i<form.elements.length;i++){
		params+=form.elements[i].name+'='+escape(form.elements[i].value)+'&';
	}
	loadXMLDoc(form.action, target_id, 'post', params);
}

var trans = [];
for (var i = 0x410; i <= 0x44F; i++){
	trans[i] = i - 0x350;
}
trans[0x401] = 0xA8;
trans[0x451] = 0xB8;

var escapeOrig = window.escape;

window.escape = function(str){
	var ret = [];
	for (var i = 0; i < str.length; i++){
		var n = str.charCodeAt(i);
		if (typeof trans[n] != 'undefined'){
			n = trans[n];
		}
      	if (n <= 0xFF){
      		ret.push(n);
      	}
  	}
  	return escapeOrig(String.fromCharCode.apply(null, ret));
}

function strpos( haystack, needle){
    var i = (haystack+'').indexOf( needle );
    return i===-1 ? false : i;
}

function number_format( number, decimals, dec_point, thousands_sep ) {
    var i, j, kw, kd, km;
    if( isNaN(decimals = Math.abs(decimals)) ){
        decimals = 2;
    }
    if( dec_point == undefined ){
        dec_point = ",";
    }
    if( thousands_sep == undefined ){
        thousands_sep = ".";
    }
    i = parseInt(number = (+number || 0).toFixed(decimals)) + "";
    if( (j = i.length) > 3 ){
        j = j % 3;
    } else{
        j = 0;
    }
    km = (j ? i.substr(0, j) + thousands_sep : "");
    kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep);
    kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : "");
    return km + kw + kd;
}


