function wOpen(wpage,wname,w,h,t,l){// открывает новое окно; wpage - страница, wname - имя окна; w - ширина окна, h - высота окна
  if (!t) t=200;
  if (!l) l=550;
  if (!w) w=400;
  if (!h) h=100;
  window.open(wpage,wname,"height=" + h + ",width=" + w + ",top=" + t + ",left=" + l + ",toolbar=0,location=0,status=0,menubar=0,scrollbars=1,resizable=1");
  void(0);
}

function showElement(id){
	var div = document.getElementById(id);
	if(div.style.display=='none'){
        div.style.display='';
		SetCookie (id, "display");
    }else{
        div.style.display='none';
		DeleteCookie (id);
    }
}

function showBlock(id, s){
	var div = document.getElementById(id);
	if(s){
        div.style.display='';
		SetCookie (id, "display");
    }else{
        div.style.display='none';
		DeleteCookie (id);
    }
}

function check(f){ 
	if (f.tagName=='FORM'){ 
		var elms = f.elements;
	}else{ 
		var elms = f.form.elements;
	}
	if (document.getElementById('err')){
		var e = document.getElementById('err');
	}
	if (elms){
		var pv = false;
		for (var i=0; i<elms.length; i++){ 
			if (elms[i].disabled!=true) {
				switch (elms[i].id) {
					case "notNullFloat":
						var v = elms[i].value.replace(/^\-/,"").replace(/[\.\,]/,"").replace(/\d+/,"");
						if (elms[i].value==''){
							var mes='Необходимо заполнить!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else if (v){
							var mes='Допустим ввод только чисел!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else{
							elms[i].style.borderColor='';
						}
						break;
					case "notNullNumber":
						v = elms[i].value.replace(/^\-/,"").replace(/\d+/,"");
						if (elms[i].value==''){
							var mes='Необходимо заполнить!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else if (v){
							var mes='Допустим ввод только чисел!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else{
							elms[i].style.borderColor='';
						}
						break;
					case "notNullUnsignNumber":
						v = elms[i].value.replace(/\d+/,"");
						if (elms[i].value==''){
							var mes='Необходимо заполнить!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else if (v){
							var mes='Допустим ввод только положительных целых чисел!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else{
							elms[i].style.borderColor='';
						}
						break;
					case "notNull":
						if (elms[i].value.replace(/\s+/,"")==''){
							var mes='Необходимо заполнить!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else{
							elms[i].style.borderColor='';
						}
						break;
					case "notNull6Symbol":
						v = elms[i].value.length;
						if (elms[i].value.replace(/\s+/,"")==''){
							var mes='Необходимо заполнить!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else if (v < 6){
							var mes='Введите не менее 6 симоволов!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else{
							elms[i].style.borderColor='';
						}
						break;
					case "notNull4Symbol":
						v = elms[i].value.length;
						if (elms[i].value.replace(/\s+/,"")==''){
							var mes='Необходимо заполнить!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else if (v < 4){
							var mes='Введите не менее 4 симоволов!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else{
							elms[i].style.borderColor='';
						}
						break;
					case "notNullEmail":
						v = elms[i].value.indexOf("@",1);
						if (elms[i].value.replace(/\s+/,"")==''){
							var mes='Необходимо заполнить!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else if (v == -1){
							var mes='Введен не корректный E-mail!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else{
							elms[i].style.borderColor='';
						}
						break;
				}
				var t = elms[i].type;
				var pf = elms[i].name.substr(0,4);
				if (t == 'password' && pf == 'pass'){
					if (pv){ 
						if (pv != elms[i].value){
							var mes='Пароль и подтверждение не одинаковы!';
							elms[i].style.borderColor='#ff0000';
							var b = true;
						}else{
							elms[i].style.borderColor='';
							pv = '';
						}
					}else{
						pv = elms[i].value;
					} 
				}
				var v = elms[i].name;
				if (v == 'siteUser'){
					Req('_checknick.php?nick='+elms[i].value,'checkNickResult');
					if (document.getElementById('checkNickResult').innerHTML.indexOf("err",1) != -1){
						var mes='Имя|Ник уже занят!';
						elms[i].style.borderColor='#ff0000';
						var b = true;
					}else{
						elms[i].style.borderColor='';						
					}
				}
			}
		}
	}
	if (b){
		if (e){
			e.innerHTML=mes;
		}else{
			alert(mes);
		}
		return false;
	}else{
		if (e){
			e.innerHTML='';
		}
		return true;
	}
}

function addnewHandler(e){ 
	var f = e.form;
	var n = e.name + '_new';
	//alert(f1[s]);
	//var n = f[n].name;
	if (e.value=='new'){
		f[n].disabled = false;
	}else{
		f[n].disabled = true;
	}
}

function showSubMenu(section){
	var div = document.getElementById(section);
	//var img = document.getElementById("img_"+section);
	var a = document.getElementById("a_"+section);
    if(div.style.display=='none'){
        div.style.display='';
        //img.src='/img/down.gif';
		a.innerHTML='-';
		SetCookie (section, "display");
    }else{
        div.style.display='none';
        //img.src='/img/right.gif';
		a.innerHTML='+';
		DeleteCookie (section);
    }
}

//----------cookie------------------------------
function getCookieVal (offset) {  
	var endstr = document.cookie.indexOf (";", offset);  
	if (endstr == -1)    
	endstr = document.cookie.length;  
	return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {  
	var arg = name + "=";  
	var alen = arg.length;  
	var clen = document.cookie.length;  
	var i = 0;  
	while (i < clen) {    
		var j = i + alen;    
		if (document.cookie.substring(i, j) == arg)      
		return getCookieVal (j);    
		i = document.cookie.indexOf(" ", i) + 1;    
		if (i == 0) break;   
	}  
	return null;
}

function SetCookie (name, value) {  
	//var dd = new Date(2015,12,31,23,59,59,0);
	//var dd = d.getTime()/1000;
	var argv = SetCookie.arguments;  
	var argc = SetCookie.arguments.length;  
	var expires = (argc > 2) ? argv[2] : null;  
	var path = (argc > 3) ? argv[3] : null;  
	var domain = (argc > 4) ? argv[4] : null;  
	var secure = (argc > 5) ? argv[5] : false;  
	document.cookie = name + "=" + escape (value) + 
	((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
	((path == null) ? "" : ("; path=" + path)) + 
	((domain == null) ? "" : ("; domain=" + domain)) + 
	((secure == true) ? "; secure" : "");
}

function DeleteCookie (name) {  
	var exp = new Date();  
	exp.setTime (exp.getTime() - 1);  
	var cval = GetCookie (name);  
	document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
//------------------------------------------------------------------------

function close_reload(){//закрывает дочернее окно, делает релоад родительского и переводит не него фокус
  window.opener.focus(); 
  window.opener.location.reload();
  window.close();
}

function closewin(){//закрывает дочернее окно и переводит фокус на родительское
  window.opener.focus(); 
  window.close();
}

function conf(txt, url){
	if (window.confirm(txt)){
		location.href=url;
	}
}

function conf_sub(e){
	var txt = e.id;
	if (window.confirm(txt)){
		return true;
	}else{
		return false;
	}
}

function form_submit(e){
	var v = e.form;
	v.submit();
}

function addIntoSelect(id, name, element, doc){
	var f = doc.getElementById(element);
	var l = f.options.length;
	var z = 0;
	for (i=(l-1);i>=0;i--){
		if (f.options[i].value == id){
			z = 1;
		}
	}
	if (z != 1){
		f.options.length = ++l;
		f.size = l;
		resizeSelect(element, doc, 9);
		for (i=(l-1);i>0;i--){
			f.options[i].value = f.options[i-1].value;
			f.options[i].text = f.options[i-1].text;
			if (f.options[i-1].selected == true){
				f.options[i].selected = true;	
			}else{
				f.options[i].selected = false;
			}
		}
		f.options[0].value = id;
		f.options[0].text = name;
	}
}

function delFromSelect(element, doc){
	var f = doc.getElementById(element);
	var l = f.options.length;
	for (i=(l-1);i>=0;i--){
		if (f.options[i].selected == true){
			f.options[i] = null;
			if (f.options.length < 1){
				f.size = 1;	
			}else{
				f.size = f.options.length;
				resizeSelect(element, doc, 9);
			}
		}
	}
}

function resizeSelect(element, doc, s){
	var f = doc.getElementById(element);
	if (f.size > s) f.size = s;
}

function selectAllInSelect(element, doc){
	var f = doc.getElementById(element);
	var l = f.options.length;
	for (i=(l-1);i>=0;i--){
		f.options[i].selected = true;
	}
}

function delay(gap) {	// gap is in millisecs
	var then, now;
	then = new Date().getTime();
	now = then;
	while ((now - then) < gap) {
		now = new Date().getTime();
	}
}

////////////////AJAX///////////////////////
function Requester() {
	var requester;
	if (window.XMLHttpRequest) {
		requester = new window.XMLHttpRequest(); 
	}else if (window.ActiveXObject) {
		requester = new ActiveXObject("Msxml2.XMLHTTP");
		if (!requester) {
			requester = new ActiveXObject("Microsoft.XMLHTTP");
			if (!requester) {
				throw "Error";
			}
        }
	}
    return requester;
}
	
var http = Requester();
var args;

function Req(url, where, func) {
	func=(func) ? func : 'null';
	if (document.getElementById('transfer_status')){
		document.getElementById('transfer_status').style.visibility = 'visible';
		//document.getElementById(where).innerHTML = '<span class="popitmenu_view">Пожалуйста подождите...</span>';
	}else{
		document.getElementById(where).style.visibility = 'visible';
		document.getElementById(where).innerHTML = '<img width="16" height="16" src="/img/ajax-loader3.gif" align="top">';
	}
    http.open('get', url);
	args = {
		param: where,
		param1: func
	};
    http.onreadystatechange = handleResponse;
    http.send(null);
}

function handleResponse() {
	//alert (args.param);
	//var e = args.param;
	if (http.readyState == 4) {
		if (http.status == 200) {
			if (args.param == 'alert'){
				alert (http.responseText);
			}else if (args.param == 'null'){
				if (http.responseText){
					alert (http.responseText);
				}
			}else{
        		document.getElementById(args.param).innerHTML = http.responseText;
				document.getElementById(args.param).style.visibility = 'visible';
				if (document.getElementById('transfer_status')){
					document.getElementById('transfer_status').style.visibility = 'hidden';
				}
			}
			if (args.param1){
				eval(args.param1);
			}
        } else {
            alert("There was a problem retrieving data:\n" + http.statusText);
        }
    }
}
////////////////AJAX///////////////////////