
function standard_window(lnk, w, h)
{
	if (!w) w = 600;
	if (!h) h = 400;
	var l = ( screen.width - w )/2;
	var t = ( screen.height - h )/2 - 20;
	win = window.open(lnk, '', "toolbar=0,scrollbars=1,resizable=1,left="+l+",top="+t+",width="+w+",height="+h);
	return win;
}

function DbImage_setDrop(iid)
{
	var inp;
	if (inp = document.getElementById("DbImage_drop["+iid+"]"))
	{
		if (inp.value == "0")
		{
			inp.value = "1";
			var img = document.getElementById("DbImage_drop_img["+iid+"]");
			img.src = "/i/delete_1.gif";
		}
		else
		{
			inp.value = "0";
			var img = document.getElementById("DbImage_drop_img["+iid+"]");
			img.src = "/i/delete_0.gif";
		}
	}
}

function DbFile_setDrop(iid)
{
	var inp;
	if (inp = document.getElementById("DbFile_drop["+iid+"]"))
	{
		if (inp.value == "0")
		{
			inp.value = "1";
			var img = document.getElementById("DbFile_drop_img["+iid+"]");
			img.src = "/i/delete_1.gif";
		}
		else
		{
			inp.value = "0";
			var img = document.getElementById("DbFile_drop_img["+iid+"]");
			img.src = "/i/delete_0.gif";
		}
	}
}


function setCookie (cookieName, cookieValue, expires)
{

	document.cookie =

	escape(cookieName) + '=' + escape(cookieValue)

	+ (expires ? '; expires=' + expires : '')

	+ '; path=/';

}

/**
    это див с картинкой который типа попапов
*/
var overlay_container = document.getElementById('overlay_div');
function showImageHere(src, w, h)
{
	if (!overlay_container) overlay_container = document.getElementById('overlay_div');
	if (!overlay_container) return false;

	var image = document.createElement('IMG');
	image.src = src;


	var browser_w = window.innerWidth?window.innerWidth:document.body.offsetWidth;
	var browser_h = window.innerHeight?window.innerHeight:document.body.offsetHeight;



	if (w && w>browser_w)
	{
		var k = browser_w/w;
		w = w*(k);
		h = h*(k);
		image.width = w;
		image.height = h;
	}
	/**
	if (h && h>browser_h)
	{
	image.height = browser_h-50;
	h = image.height;
	w = image.width;
	}
	*/

	image.style.cursor = 'pointer';
	if (image.addEventListener)
	{
		image.addEventListener("click", hideOverlay, false);
	}
	else
	{
		image.attachEvent("onclick", hideOverlay);
	}

	// удалим чилдов если есть
	while (tmp_child = overlay_container.firstChild)
	{
		overlay_container.removeChild(tmp_child);
	}

	/*
	console.log(
	(window.pageYOffset?window.pageYOffset:document.documentElement.scrollTop)
	,browser_h
	)
	;
	*/

	overlay_container.appendChild(image);
	overlay_container.style.left = Math.ceil((browser_w/2)-(w/2))+"px";
	overlay_container.style.top = Math.ceil(((window.pageYOffset?window.pageYOffset:document.documentElement.scrollTop)+browser_h-browser_h/2)-(h/2))+"px";

	overlay_container.style.display = "block";


	return true;
}
// прячет див в который выводятся картинки и прочая доп-инфа
function hideOverlay()
{
	if (!overlay_container) overlay_container = document.getElementById('overlay_div');
	if (!overlay_container) return false;
	overlay_container.style.display = 'none';
}


/**
    аттачим опшинсы к селекту
*/
function attachOption(box, value, text, selected)
{
	var o = document.createElement("OPTION");
	o.selected = selected;
	o.value = value;
	o.appendChild(document.createTextNode(text));
	box.appendChild(o);
}

/**
    из XML выдерает наши HiddenStrings
*/
function getTextOnLang(branch, tag, lang)
{
	var res = "";
	var ress = branch.getElementsByTagName(tag);
	for (var iloop=0; iloop<ress.length; iloop++)
	{
		if (ress[iloop].getAttribute("lang")==lang)
		{
			res = getElementTextNS("", tag, branch, iloop);
		}
	}
	return res;
}
/**
    переключалка видимость для TR
*/
function switchTr(id, mode)
{
	var tr = document.getElementById(id);

	var current = tr.style.display;

	if (mode)
	{
	    if (mode == 'none')
	    {
	        current = 'block';
	    }
	    else
	    {
	        current = 'none';
	    }
	}

	if (current=="none")
	{
		tr.style.display = document.all?"block":"table-row";
	}
	else
	{
		tr.style.display = "none";
	}
}
/**
    переключалка видимость для всего кроме TR
*/
function switchEl(id, mode)
{
	var el = document.getElementById(id);

	if (!el) return false;

	if (mode) {
	    if (mode == 'none') {
	        el.style.display = 'none';
	    }
	    else {
	        el.style.display = 'block';
	    }
	}
	return true;
}

/**
    переключаем видимость элемента
*/
function switchDisplay(id)
{
    var o = document.getElementById(id);

    //console.log(o.style.display);

    if (!o) return false;

    if (o.style.display=="block" || !o.style.display)
    {
        o.style.display="none";
    }
    else
    {
        o.style.display="block";
    }
}

/**
    пичкаем сообщения в блок вывода ошибок
*/
function errorAlertSet(str, clear)
{
    var errBlock = document.getElementById('error_output');

    if (!errBlock) return false;

    if (clear) {
        while (tmpChd = errBlock.firstChild)
        {
            errBlock.removeChild(tmpChd);
        }
    }

    if (!str) return false;

    var ul = errBlock.firstChild;
    if (!ul || (ul && ul.tagName!='UL'))
    {
        var ul = document.createElement('UL');
        errBlock.appendChild(ul);
    }

    var li = document.createElement('LI');
    
    ul.appendChild(li);
    li.innerHTML = str;
}

/**
    скрываем либо показываем блок ошибок
*/
function errorAlert(opn)
{
    var errBlock = document.getElementById('error_output');

    if (!$(errBlock).html()) {
    	return false;
    }	
    
    errBlock.style.display = opn ? "block" : "none";
}

/**
    затягиваем сайт сеткой, и выводи в ее окошке хтмл
*/
function showTint(content_id)
{
// 	console.log(content_id)
	$('#'+content_id).jqm();
	$('#'+content_id).jqmShow();
// 	$('#'+content_id).show();
	return true;
// return true;
//     toggle_center_block(content_id, 500, 400);

//     var div = document.getElementById('tint_div');
//     var divc = document.getElementById('tint_div_content');
//     var divw = document.getElementById('tint_div_hidden_windows');


//     divc.appendChild(document.getElementById(content_id));



    var browser_h = window.innerHeight?window.innerHeight:document.body.offsetHeight;
    var scroll_h = window.pageYOffset?window.pageYOffset:document.documentElement.scrollTop;

    var div = document.getElementById('tint_div');
    var divc = document.getElementById('tint_div_content');
    var divw = document.getElementById('tint_div_hidden_windows');

    if (!div || !divw) return false;

    div.style.width = "100%";
    if (navigator.appName.indexOf("Microsoft")==0)
    {
        div.style.height = (Math.abs(scroll_h-browser_h))+scroll_h+'px';
        //divc.style.top = scroll_h+150+'px';
    }
    else
    {
        div.style.height = "100%";
        //divc.style.top = "150px";
    }

    toggle_center_block(content_id, 500, 400);

    divc.appendChild(document.getElementById(content_id));


    div.style.display = "block";
    divc.style.display = "block";
}
/**
    прячем нарисованную сетку с окошком внутри
*/
function hideTint(content_id)
{
	$('#'+content_id).jqmHide();
	return true;

    var div = document.getElementById('tint_div');
    var divc = document.getElementById('tint_div_content');
    var divw = document.getElementById('tint_div_hidden_windows');

    if (!divw) return false;

    //var content = divc.firstChild;
    if (content_id)
    {
        var obj = document.getElementById(content_id);
        divw.appendChild(obj);
        //divc.removeChild(obj);
    }


    div.style.display = "none";
    divc.style.display = "none";
    toggle_center_block(content_id, 600, 500);
}

function _4lifeIdCheck(value)
{
    if (value.length!=7) return false;
    if (value.indexOf('5')==0 || value.indexOf('63')==0 ) return true;
    return false;
}

/**
    подсказка-попап рядом с каким-то элементом
*/
function elementHint(elem, content_id) {
	
    var div = document.getElementById('hint_div');
    var content = document.getElementById(content_id);
    
    if (!div) { 
    	return false;
    }	
	
    if (!content) { 
    	return false;
    }
  
    var pos = findPos(elem);
    
    div.style.left = (pos[0]+20)+'px';
    div.style.top = (pos[1]+10)+'px';
    div.innerHTML = content.innerHTML;
    div.style.display = "block";
}
/**
    прячем подсказку
*/
function elementHintHide(e, a) {
	var hdiv = document.getElementById('hint_div');

	if (!hdiv) return false;

	if (e && hdiv.offsetWidth && hdiv.offsetHeight) {

		//console.log(e);
		var posx = 0;
		var posy = 0;
		if (!e) var e = window.event;
		if (e.pageX || e.pageY) 	{
			posx = e.pageX;
			posy = e.pageY;
		}
		else if (e.clientX || e.clientY) 	{
			posx = e.clientX + document.body.scrollLeft
				+ document.documentElement.scrollLeft;
			posy = e.clientY + document.body.scrollTop
				+ document.documentElement.scrollTop;
		}

		//console.log(hdiv.style.left, hdiv.style.top);
		//console.log(posx, posy);
		//console.log(element);

		var x = 0; var y = 0; var rx = 0; var by = 0;
		var border = 30;
		x = parseInt(hdiv.style.left);
		y = parseInt(hdiv.style.top);
		rx = parseInt(hdiv.offsetWidth)+x;
		by = parseInt(hdiv.offsetHeight)+y;
		//console.log(x,y,rx,by, posx, posy, hdiv.offsetWidth, hdiv.offsetHeight);

		if (posx>=(x-border) && posx<=(rx+border) && posy>=(y-border) && posy<=(by+border)) {
			// мы внутри региона
			//console.log('in');
		} else {
			// надо прятаться
			//console.log('hide');
			setTimeout('elementHintHide(false, 1)', 10);
		}
	} // if
	else {
		//console.log(event);
		if (a) {
			hdiv.style.display = "none";
		}
	}
    //else {
    //    setTimeout('elementHintHide(false, false, 1)', 2000);
    //}
}

/**
    http://www.quirksmode.org
*/
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}


/**
    код нажатой кнопки
*/
function getCode(e)
{
    var code;
	if (!e) var e = window.event;
	if (e.keyCode) {
	   code = e.keyCode;
	} else if (e.which) {
	    code = e.which;
	}
    return code
}
/**
    разрешаем только латинские буквы, цифры и некоторые символы
*/
function allowLatin(e)
{
    var code = getCode(e);
    var character = String.fromCharCode(code);

	//console.log(code);

	if (code<48) {
		return true;
	}
	
	if (code>96 && code<145) {
		return true;
	}	

    return (character.match(/[a-zA-Z0-9\s,\.\-\@\_]{1}/))!=null;
}
/**
    вырезаем все что не попадает под прошлый регекс
*/
function stripNonLatin(v)
{
    return v.replace(/[^a-zA-Z0-9\s,\.\-\@]*/g, '');
}


/**
    тока цифры
*/
function allowDigits(e)
{
    var code = getCode(e);
    var character = String.fromCharCode(code);

    if (code<48) return true;

    return (character.match(/[0-9]{1}/))!=null;
}



function toggle_center_block(block_id, w, h) {

	f = document.getElementById(block_id);

    //console.log(block_id, f);

	if (!f) return false;

	if (f.style.display == "block") {

		f.style.display = "none";

	} // прячем блок

	else {

		// Для начала узнаем размеры видимой области страницы

		var myWidth = 0, myHeight = 0;

		if (typeof(window.innerWidth) == 'number') {

			// для всего кроме MSIE

			myWidth = window.innerWidth;

			myHeight = window.innerHeight;

		} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {

			// IE6+

			myWidth = document.documentElement.clientWidth;

			myHeight = document.documentElement.clientHeight;

		} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {

			// IE4

			myWidth = document.body.clientWidth;

			myHeight = document.body.clientHeight;

		}



		// Теперь уточняем, насколько страница прокручена вниз и вбок

		var scrOfX = 0, scrOfY = 0;

		if(typeof(window.pageYOffset) == 'number') {

			// Netscape и его родственники

			scrOfY = window.pageYOffset;

			scrOfX = window.pageXOffset;

		} else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {

			// DOM

			scrOfY = document.body.scrollTop;

			scrOfX = document.body.scrollLeft;

		} else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {

			// IE6

			scrOfY = document.documentElement.scrollTop;

			scrOfX = document.documentElement.scrollLeft;

		}



		// А теперь позиционируем наш блок

		f.style.top = String(Math.round((myHeight - h) / 2) + scrOfY) + 'px';

		f.style.left = String(Math.round((myWidth - (myWidth/2)) / 2) + scrOfX) + 'px';

		f.style.width = (myWidth/2) + ((3 + 1) * 2);
		//f.style.width = w + ((3 + 1) * 2);

		//f.style.height = h + ((3 + 1) * 2);

		f.style.display = "block";

	} // показываем блок

} // toggle_center_block

var interval_scroll = false;
var scroll_step = 20;
var scrolled = false;
var scroll_to = 0;
var scroll_from = 0;
var scroll_up = false;
var scroll_lock = false;
function scrollScreen(e, up) {
    if (scroll_lock) return false;

    scroll_up = up;

    // это прокрутка документа
    scroll_from = getYScroll();//window.pageYOffset;
    inner_h = getWindowHeight();
    // это куда надо нам попасть
    scroll_to = scroll_from + (up?-inner_h:inner_h);

    scroll_step2 = (scroll_from-scroll_to)/scroll_step;

    //console.log(scroll_step2)

    //console.log(currentScrollYPos, newScrollYPos);
    //console.log(scroll_step2);

    //window.scrollTo(0, scroll_from);
    //scroll_step = window.innerHeight/scroll_step;
    interval_scroll = setInterval('doScroll()',10);
}

function doScroll() {
    /**
        если перескачили через границу скрола
        то скидываем лок
    */
    if (
        (scroll_up && parseInt(scroll_from)<scroll_to)
         || (!scroll_up && parseInt(scroll_from)>scroll_to)
        ) {
        scroll_lock = false;
        clearInterval(interval_scroll);
        return true;
    }
    // лок на повторное нажатие кнопки
    scroll_lock = true
    //console.log(scroll_from, scroll_to);
    scroll_from -= scroll_step2;
    window.scrollTo(0, scroll_from);
}


function getYScroll() {
     if (document.body && document.body.scrollTop) return document.body.scrollTop;
     if (document.documentElement && document.documentElement.scrollTop) return document.documentElement.scrollTop;
     if (window.pageYOffset) return window.pageYOffset;
     return 0;
}

function getWindowHeight() {
    if (document.body.clientHeight) return document.body.clientHeight;
    if (window.innerHeight) return window.innerHeight;
    return 0;
}

function staticpage_openMore() {
    var alt = document.getElementById('sp_next');
    var main = document.getElementById('sp_main');

    if (alt) {
        main.style.display = "none";
        alt.style.display = "block";
    }
}

// перегонка формы в строку для request.
// покачто поддержка только select, input:text, textarea
function formToString(f) {
	var string = '';
	for (el_index in f.elements) {
		el = f.elements[el_index];
// 		console.log(el.nodeName);
		if (el) {
			// обработка инпутов теккстовых
			if (el.nodeName =='INPUT' && el.type=='text') {
				string+= '&'+el.name+'='+encodeURI(el.value);
			} // if
			if (el.nodeName=='SELECT') {
				string+= '&'+el.name+'='+encodeURI(el.options[el.selectedIndex].value);
			} // if
			if (el.nodeName=='TEXTAREA') {
				string+= '&'+el.name+'='+encodeURI(el.value);
			} // if
		} // if
	}
	string = string.substr(1);
// console.log(string);
	return string;
}

