var menu_prefix="menu_";
var submenu_tr_prefix="submenu_";
var open_tr_arr=new Array();

function show_logo(){
	var logo=document.getElementById("logo_bottom");
	var header=document.getElementById("header");
	
	var header_obj=getElementPosition("header");
	//надо посчитать ширину
	
	logo.style.left=(header_obj.left+40)+"px";
	logo.style.top=(header_obj.top+header_obj.height)+"px";
	logo.style.visibility="visible";
}

function get_menu_id(menu_name){
	return menu_name.toString().substr(menu_prefix.length);
}

function change_vision(ref_obj){
	//var id_num=ref_obj.id.toString().substr(menu_prefix.length);
	var tr_obj=document.getElementById(submenu_tr_prefix+get_menu_id(ref_obj.id));//document.getElementById(submenu_tr_prefix+id_num);
	
	if(tr_obj==null) return 0;
	
	//сворачиваем все открытые пункты
	for(var i=0; i<open_tr_arr.length; i++){
		if(open_tr_arr[i]==tr_obj.id) continue;
		var cur_tr=document.getElementById(open_tr_arr[i]);
		cur_tr.style.display="none";
	}
	open_tr_arr=new Array();
	
	if(tr_obj.style.display=="none"){
		tr_obj.style.display="block";
		open_tr_arr[open_tr_arr.length]=tr_obj.id;
	}else{
		tr_obj.style.display="none";
	}
}

function lighted_menu(ref_obj, flag){
	if(flag){
		ref_obj.style.textDecoration="underline";
		ref_obj.style.color="#f5350a";
	}else{
		ref_obj.style.textDecoration="none";
		ref_obj.style.color="#d22c06";
	}
}

function send_search_request(){
	var search_val=document.getElementById("searchField").value;
	if(search_val.length<1 ? true : search_val==_SEARCH_STRING){
		return 0;
	}
	
	var form_obj=document.getElementById("search_form");
	if(form_obj==null) form_obj=document.getElementById("search_form_is");
	form_obj.submit();
}

var ADDING_SMALL_WIN_WIDTH=50;//на сколько маленькое окно шире размера картинки
var ADDING_SMALL_WIN_HEIGHT=260;//на сколько маленькое окно выше размера картинки
var ADDING_SMALL_WIN_WIDTH_DEFAULT=622;
var ADDING_SMALL_WIN_HEIGHT_DEFAULT=300;//на сколько маленькое окно выше размера картинки
var VOTE_REF_PHP="vote.php";

var CAN_FLASH=detectFlash();

function check_login_form(form_obj){
	var arrError=new Array();
	if(document.getElementById("member_login").value.length<1) arrError[arrError.length]="Вы не заполнили поле 'Логин'!";
	if(document.getElementById("member_password").value.length<1) arrError[arrError.length]="Вы не заполнили поле 'Пароль'!";
	
	if(arrError.length>0) alert(arrError.join("\n"));
	else form_obj.submit();
}

function check_subscribe_form(form_obj){
	var arrError=new Array();
	var mail_val=document.getElementById("email").value;
	
	if(mail_val.length<1) arrError[arrError.length]="Вы не ввели свой e-mail!";
	else if(!mail_val.is_email()) arrError[arrError.length]="Вы ввели некорректный e-mail!";
	
	if(arrError.length>0) alert(arrError.join("\n"));
	else form_obj.submit();
}

function check_nosubscribe_form(form_obj, new_ref_str){
	var mail_val=document.getElementById("email").value;
	if(!mail_val.is_email()) alert("Вы ввели некорректный e-mail!");
	else{
		form_obj.action=new_ref_str;
		form_obj.submit();
	}
}

function check_remember_form(form_obj){
	var arrError=new Array();
	if(document.getElementById("member_login").value.length<1) arrError[arrError.length]="Вы не заполнили поле 'Логин'!";
	if(document.getElementById("member_email").value.length<1) arrError[arrError.length]="Вы не заполнили поле 'E-mail'!";
	else if(!document.getElementById("member_email").value.is_email())  arrError[arrError.length]="Некорректные данные в поле 'E-mail'!";
	
	if(arrError.length>0) alert(arrError.join("\n"));
	else form_obj.submit();
}

//************************************************************//
//		Array functions
//************************************************************//
//возвращает true, если переданное значение есть в индексном массиве
Array.prototype.inArray = function (value) {
        var i;
        for (i=0; i < this.length; i++) {
                if (this[i] === value) {
                        return true;
                }
        }
        return false;
};

//возраващает первый индекс элемента в индексном массиве, который совпадает с переданным значением
Array.prototype.indexOfElem = function (value) {
        var i;
        for (i=0; i < this.length; i++) {
                if (this[i] == value) {
                        return i;
                }
        }
        return -1;
};

//удаляет из массива элемент с заданным индексом
Array.prototype.delElem = function (elem_index){
	var i;
	for(i=elem_index; i<(this.length-1); i++){
		this[i]=this[i+1];
	}
	//del last element
	this[this.length-1]=null;
	this.length=this.length-1;
}
//************************************************************//
//		String functions
//************************************************************//
function gen_password()
{
	if(gen_password.arguments[0]==null) pass_length=8;
	else pass_length=gen_password.arguments[0];
	
	var digit = new Array("0","1","2","3","4","5","6","7","8","9");
	var halp = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","Y","Z");
	var lalp = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","y","z");
	
	pasw="";
	
	for(var i=0; i<pass_length; i++){
		r=Math.random();
		if((r - 1.0/3.0) < 0.0){
			r = Math.floor(Math.random() * 9);
			pasw += digit[r];
		}else if ( (r - 2.0/3.0) < 0.0){
			r = Math.floor(Math.random() * 24);
			pasw += halp[r];
		}else{
			r = Math.floor(Math.random() * 24);
			pasw += lalp[r];
		}
	}
	
	return pasw;
}

//заменяет в строке символ cut_symbol на строку paste_symbol
String.prototype.symbol_replace=function(cut_symbol, paste_symbol){
	var new_str='';
	for(i=0; i<this.length; i++){
		var cur_symb=this.charAt(i);
		if(cur_symb==cut_symbol) new_str+=paste_symbol;
		else new_str+=cur_symb;
	}
	
	return new_str;
}

//заменяет в строке подстроку cut_str на строку paste_str
String.prototype.str_replace=function (cut_str, paste_str){
	var f=0;
	var ht='';
	ht = ht + this;
	f=ht.indexOf(cut_str);
	while (f!=-1){
		//цикл для вырезания всех имеющихся подстрок
		f=ht.indexOf(cut_str);
		if (f>0) ht = ht.substr(0,f) + paste_str + ht.substr(f+cut_str.length);
	}
	return ht;
}

//преобразует строку вида rgb(NN, NN, NN) в значение #MMMMMM
String.prototype.rgb_2_hex=function(){
	var strRGB="rgb(";
	if(this.substring(0, strRGB.length)==strRGB){
		var h='', x='0123456789ABCDEF';
		
		//вытаскиваем значения
		var sColor=this.substring(strRGB.length, this.length-1);
		var arrColor=sColor.split(",");
		
		for (i=0; i < arrColor.length; i++){
			n = parseInt(arrColor[i]);
			h += x.charAt(n>>4) + x.charAt(n&15);
		}
		return ("#"+h.toLowerCase()).toString();
	}
	
	return this;
}

String.prototype.trancate=function(need_length){
	if(need_length<1) need_length=15;
	
	if(this.length<=need_length) return this;
	
	return this.substring(0, need_length)+"...";
}

String.prototype.is_email=function(){
	txt=this; 
	
	if(txt.indexOf('.')==-1) return false;
	dog=txt.indexOf('@'); 
	if(dog==-1) return false;
	if((dog < 1) || (dog > txt.length - 5)) return false;
	if((txt.charAt(dog-1)=='.') || (txt.charAt(dog+1)=='.')) return false;
	return true;
}

String.prototype.trim=function()
{
  return rtrim(ltrim(this));
}

function ltrim(s)
{
  return s.replace(/^\s+/, ''); 
}

function rtrim(s)
{
  return s.replace(/\s+$/, ''); 
}

String.prototype.convert_to_float=function(){
	var cur_number;
	var numberFixed=4;
	
	if(arguments.length>0) numberFixed=arguments[0];
	
	var new_str=this;
	if(new_str.indexOf(',')>-1) new_str=new_str.symbol_replace(',', '.');
	
	//если самый первый символ - точка прибавим к строке 0
	if(new_str.substring(0,1)=='.') new_str="0"+new_str;
	if(new_str.substring(new_str.length-1)=='.') new_str+="0";
	
	cur_number=new Number(new_str);
	
	//надо оставить 3 знака после запятой
	if(isNaN(cur_number)==false){
		cur_number=new Number(cur_number.toFixed(numberFixed));
	}else cur_number=0;
	
	return cur_number;
}

//************************************************************//
//		Функции для работы с окнами
//************************************************************//

//открывает попап окно по заданному URl
function open_popup(url_str, popup_name){
	var popupWin;
	
	var width_str=ADDING_SMALL_WIN_WIDTH_DEFAULT;
	var height_str=ADDING_SMALL_WIN_HEIGHT_DEFAULT;
	
	if(open_popup.arguments.length>2){
		//передали еще ширину и высоту
		if(open_popup.arguments[2]>(width_str-ADDING_SMALL_WIN_WIDTH)) width_str=open_popup.arguments[2]+ADDING_SMALL_WIN_WIDTH;
		if(open_popup.arguments[3]>(height_str-ADDING_SMALL_WIN_HEIGHT)) height_str=open_popup.arguments[3]+ADDING_SMALL_WIN_HEIGHT;
	}
	
	//not IE
	popupWin= window.open(url_str, popup_name, "width="+width_str+",height="+height_str+",top=400,left=300,scrollbars=yes,toolbar=no,location=no,directories=no,status=no,resizable=yes");
	popupWin.focus();
	
}

function close_win(){
	self.close();
}
//************************************************************//

//проверяет наличие флэша
function detectFlash(){
	//выяяняем: можем ли добавить флэш?
	var MM_contentVersion = 7;
	var MM_FlashCanPlay;
	var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
	if ( plugin ) {
		var words = navigator.plugins["Shockwave Flash"].description.split(" ");
		for (var i = 0; i < words.length; ++i){
			if (isNaN(parseInt(words[i]))) continue;
			var MM_PluginVersion = words[i]; 
		}
		MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion;
	}else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 && (navigator.appVersion.indexOf("Win") != -1)){
		try{
			MM_FlashCanPlay = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + MM_contentVersion);
		}catch(err){ MM_FlashCanPlay=false;}
	}
	
	return MM_FlashCanPlay;
}

//************************************************************//
//		Функции для работы с ckookies
//************************************************************//
function getCookieVal (offset) {
    var endstr = document.cookie.indexOf(";", offset);
    if (endstr == -1) endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
}

/*Эта функция необходима для исправления ошибок в дате на Mac 2.x
 *Вызывайте её для проверки объекта даты перед отправкой данных в функцию SetCookie
 *Эта функция должна вызываться только 1 раз для каждого полученного объекта даты
 */
function FixCookieDate(date) {
    var base = new Date(0);
    var skew = base.getTime();
    if (skew > 0) date.setTime(date.getTime() - skew);
}

/*Эта функция предназначена для возвращения значения cookie
 *name - строковой объект, содержащий имя cookie
 *returns - строковой объект, содержащий либо значение cookie, либо 0, если запись не существует
 */
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 ) + 1;
        if (i==0) break;
    }
    return "";
}

/*Эта функция предназначена для создания или обновления cookie
 *name - строковой объект, содержащий имя cookie
 *value - строковой объект, содержащий значение cookie
 *[expires] - объект Date, содержащий срок годности cookie
 *[path] - Строковой объект, указывающий путь нужной cookie-записи.
 *[domen] - Строковой объект, указывающий домен нужной cookie-записи.
 *[secure] - Булево значение, определяет необходимость безопасного соединения
 */
function SetCookie(name,value,expires,path,domain,secure) {
    document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
}
/*Эта функция для удаления cookie
 *name - строковой объект, содержащий имя cookie
 *path - Строковой объект, содержащий путь cookie-записи.
 *domen - Строковой объект, содержащий домен cookie.
 */
function DelCookie(name,path,domain) {
    if(GetCookie(name)) {
        document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

//********************************************************************
//		Функции для позиционирования
//********************************************************************
function getClientWidth()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}


function getElementPosition(elemId)
{
    var elem = document.getElementById(elemId);
	
    var w = elem.offsetWidth;
    var h = elem.offsetHeight;
	
    var l = 0;
    var t = 0;
	
    while (elem)
    {
        l += elem.offsetLeft;
        t += elem.offsetTop;
        elem = elem.offsetParent;
    }

    return {"left":l, "top":t, "width": w, "height":h};
}

function getElementPosition_in_doc(doc_obj, elemId)
{
    var elem = doc_obj.getElementById(elemId);
	
    var w = elem.offsetWidth;
    var h = elem.offsetHeight;
	
    var l = 0;
    var t = 0;
	
    while (elem)
    {
        l += elem.offsetLeft;
        t += elem.offsetTop;
        elem = elem.offsetParent;
    }

    return {"left":l, "top":t, "width": w, "height":h};
}

function getElementsByClass(doc_obj, tag_name, class_str){
	var start_arr=doc_obj.getElementsByTagName(tag_name);
	var return_arr=new Array();
	for(var i=0; i<start_arr.length; i++){
		if(start_arr[i].className==class_str){
			//добавляем id
			start_arr[i].id="visual_osnova_"+return_arr.length;
			return_arr[return_arr.length]= start_arr[i];
		}
	}
	
	return return_arr;
}

//функция вызывает окно для редактирования блоков кода
function show_php(){
	var arrTmp=this.id.split("visual_");
	var new_win=open_popup(SITE_ADD_URL+"admin/_part.php?_template_id="+this._template_id+"&_part_number="+arrTmp[1], 'Редактирование блока шаблона');
}

/*************************************************************/
//	Функции для работы со слоем Регламента
/*************************************************************/
function showShadow_div(doc_obj){
	var objShad=doc_obj.getElementById('shadowDiv');
	objShad.style.display='block';
	objShad.style.top=getBodyScrollTop();
	objShad.style.left=getBodyScrollLeft();
	
	//слой с текстом
	var objShad=doc_obj.getElementById('reglamentDiv');
	objShad.style.display='block';
	objShad.style.top=getBodyScrollTop();
	objShad.style.left=getBodyScrollLeft();
	
	//надо залочить все select
	var select_arr=doc_obj.getElementsByTagName("select");
	for(var i=0; i<select_arr.length; i++) select_arr[i].disabled=true;
	
	try{
		objShad.focus();
	}catch(err){}
}

function hideShadow_div(doc_obj){
	var objShad=doc_obj.getElementById('shadowDiv');
	objShad.style.display='none';
	
	//слой с текстом
	var objShad=doc_obj.getElementById('reglamentDiv');
	objShad.style.display='none';
	
	//надо раззалочить все select
	var select_arr=doc_obj.getElementsByTagName("select");
	for(var i=0; i<select_arr.length; i++) select_arr[i].disabled=false;
}

//Размер документа по вертикали
function getDocumentHeight()
{
	return (document.body.scrollHeight > document.body.offsetHeight)?document.body.scrollHeight:document.body.offsetHeight;
}

//Размер документа по горизонтали
function getDocumentWidth()
{
	return (document.body.scrollWidth > document.body.offsetWidth)?document.body.scrollWidth:document.body.offsetWidth;
}

function getBodyScrollTop()
{
	return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getBodyScrollLeft()
{
	return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}

function getClientCenterX()
{
	return parseInt(getClientWidth()/2)+getBodyScrollLeft();
}

function getClientCenterY()
{
	return parseInt(getClientHeight()/2)+getBodyScrollTop();
}
function getClientWidth()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}

function getClientHeight()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}

//изменяет размер скрытого слоя в величину страницы
function change_shadow_size(){
	var div_obj=document.getElementById('shadowDiv');
	if(div_obj==null) return 0;
	
	//меняем высоту
	div_obj.style.height=getClientHeight();
	//меняем ширину
	div_obj.style.width=getClientWidth();
	
	//меняем координаты
	div_obj.style.top=getBodyScrollTop();
	div_obj.style.left=getBodyScrollLeft();
	
	var txt_obj=document.getElementById('reglamentDiv');
	if(txt_obj==null) return 0;
	
	//меняем координаты
	var pos_obj=getElementPosition('reglamentDiv');
	txt_obj.style.top=getBodyScrollTop()+getClientHeight()/2-pos_obj.height*0.7;
	txt_obj.style.left=getBodyScrollLeft()+getClientWidth()/2-pos_obj.width/2;
	
	if(parseInt(txt_obj.style.top)<getBodyScrollTop()) txt_obj.style.top=getBodyScrollTop();
}

/*  Функции для галерей		*/
function equal_div_height(div_count){
	var max_height=0;
	//берем максимальную высоту
	for(var i=0; i<div_count; i++){
		var cur_div=document.getElementById("div_"+i);
		if(cur_div!=null){
			var cur_arr=getElementPosition("div_"+i);
			if(cur_arr.height>max_height) max_height=cur_arr.height;
		}
	}
	
	//присваиваем максимальную высоту
	for(var i=0; i<div_count; i++){
		var cur_div=document.getElementById("div_"+i);
		if(cur_div!=null){
			cur_div.style.height=max_height+"px";
		}
	}
}

//***************************************************************//
/*  				Функции для показа подменю					*/
//***************************************************************//
var hide_iterval_obj=null;//объект задержки на скрытие подменю

//mouseover на ссылке
var show_menu_func=function(e){
	if(hide_iterval_obj!=null){
		document.getElementById("submenu_div").innerHTML="";
	}
	
	var target_elem;
	target_elem=e.target!=null ? e.target : e.srcElement;
	
	if(target_elem==null) return 0;
	
	select_menu_item(target_elem, true);
	
	//берем слой
	var div_obj=document.getElementById("submenu_div");
	if(div_obj==null){
		div_obj=document.createElement("div");
		div_obj.id="submenu_div";
		document.body.appendChild(div_obj);
	}
	
	div_obj.setAttribute("ref_id", target_elem.id);
	
	//позициониурем
	var parent_prop=getElementPosition(target_elem.parentNode.getAttribute("id"));
	
	div_obj.style.top=(parent_prop.top+parent_prop.height-5)+"px";
	div_obj.style.left=parent_prop.left+"px";
	div_obj.style.display="none";
	
	div_obj.innerHTML="идёт загрузка данных...";
	
	//ЗАПРОС НА AJAX
	var paramObject=new Object();
	paramObject.menu_id=target_elem.id;
	paramObject.get_type="submenu";
	
	oServerConnect.connectToServer("get_data.php?folder=jkjk", paramObject, show_submenu_request);
}

function select_menu_item(ref_obj, blnIsSel){
	if(ref_obj==null) return 0;
	var par_node=ref_obj.parentNode;
	
	if(blnIsSel) par_node.style.backgroundColor="#484849";
	else  par_node.style.backgroundColor="transparent";
}


function show_submenu_request(result, errors){
	if(errors.length>0){
		alert(errors);
		return 0;
	}
	if(result["error"]!=null ? result["error"].length>0 : false) alert(result["error"]);
	else{
		var div_obj=document.getElementById("submenu_div");
		
		if(result['data'].length<1){
			hide_submenu();
			return 0;
		}
		
		div_obj.style.display="inline";
		div_obj.innerHTML=result['data'];
		
		//на все ссылки вешаем снятие события
		var ref_arr=div_obj.getElementsByTagName("a");
		
		for(var i=0; i<ref_arr.length; i++){
			try{
				ref_arr[i].addEventListener('mouseover', ref_onmouseover, false); 
			}catch(err){
				ref_arr[i].attachEvent('onmouseover', ref_onmouseover); 
			}
		}
		
		try{
			div_obj.addEventListener('mouseover', submenu_div_over, false); 
		}catch(err){
			div_obj.attachEvent('onmouseover', submenu_div_over); 
		}
		
	}
}

//обработчик onmouseover для подменю
var submenu_div_over=function(e){
	if(hide_iterval_obj!=null) clearTimeout(hide_iterval_obj);
	
	var target_elem;
	target_elem=e.target!=null ? e.target : e.srcElement;
	
	if(target_elem==null) return 0;
	
	//var ref_obj=document.getElementById(target_elem.getAttribute("ref_id"));
	//select_menu_item(ref_obj, true);
	
	try{
		target_elem.addEventListener('mouseout', hide_submenu_timeout, false); 
	}catch(err){
		target_elem.attachEvent('onmouseout', hide_submenu_timeout); 
	}
	
}

//обработчик onmouseover для ссылки
var ref_onmouseover=function(e){
	if(hide_iterval_obj!=null) clearTimeout(hide_iterval_obj);
	
	var target_elem;
	target_elem=e.target!=null ? e.target : e.srcElement;
		
	var div_obj=document.getElementById("submenu_div");
	
	try{
		div_obj.removeEventListener('mouseout', hide_submenu_timeout, false); 
	}catch(err){
		div_obj.detachEvent('onmouseout', hide_submenu_timeout);
		div_obj.onmouseout=null;
	}
};

//mouseout на ссылке
var hide_menu_func=function(e){
	var target_elem;
	target_elem=e.target!=null ? e.target : e.srcElement;
	
	if(target_elem==null) return 0;
	
	select_menu_item(target_elem, false);
	
	hide_iterval_obj=setTimeout(hide_submenu, 100);
}

var hide_submenu_timeout=function(e){
	if(hide_iterval_obj!=null) clearTimeout(hide_iterval_obj);
	hide_iterval_obj=setTimeout(hide_submenu, 100);
}

function hide_submenu(){
	if(hide_iterval_obj!=null)  clearTimeout(hide_iterval_obj);
	
	var div_obj=document.getElementById("submenu_div");
	
	if(div_obj!=null){
		/*
		if(div_obj.getAttribute("ref_id")!=null){
			var ref_obj=document.getElementById(div_obj.getAttribute("ref_id"));
			select_menu_item(ref_obj, false);
		}
		*/
		div_obj.setAttribute("ref_id", null);
		div_obj.style.display="none";
		div_obj.innerHTML="";
	}
}

//***************************************************************//
/*  				Функции для показа календаря				*/
//***************************************************************//
function show_calendar(){
	if(show_calendar.arguments.length>0) CALEND_YEAR=show_calendar.arguments[0];
	if(show_calendar.arguments.length>1) CALEND_MONTH=show_calendar.arguments[1];
	//if(show_calendar.arguments.length>2) CALEND_DAY=show_calendar.arguments[2];
	//else CALEND_DAY=0;
	
	if(CALEND_YEAR>=ARR_MAX_MIN['max_year'] && CALEND_MONTH>ARR_MAX_MIN['max_month']) return "";
	if(CALEND_YEAR<=ARR_MAX_MIN['min_year'] && CALEND_MONTH<ARR_MAX_MIN['min_month']) return "";
	
	//ЗАПРОС НА AJAX
	var paramObject=new Object();
	paramObject.year=CALEND_YEAR;
	paramObject.month=CALEND_MONTH;
	paramObject.day=CALEND_DAY;
	paramObject.get_type="calendar";
	paramObject.menu_id=CALEND_LAST_MENU_ID;
	
	paramObject.table=CALEND_TABLE;
	paramObject.date_field=CALEND_FIELD;
	paramObject.razdel_id=CALEND_RAZDEL;
	
	oServerConnect.connectToServer("get_data.php?folder=jkjk", paramObject, show_calendar_request);
}

function show_calendar_request(result, errors){
	if(errors.length>0){
		alert(errors);
		return 0;
	}
	if(result["error"]!=null ? result["error"].length>0 : false) alert(result["error"]);
	
	document.getElementById("for_"+CALEND_ID).innerHTML="<table id="+CALEND_ID+" class=calendar cellSpacing=1>"+result['data']+"</table>";
	
	set_selected_cmb_value(CALEND_ID+"_month", CALEND_MONTH);
	set_selected_cmb_value(CALEND_ID+"_year", CALEND_YEAR);
	
	CALEND_DAY=0;
	
	//проверяем ссылки
	if(CALEND_MONTH==ARR_MAX_MIN['min_month'] && CALEND_YEAR==ARR_MAX_MIN['min_year']){
		document.getElementById("start_ref").removeAttribute("href");
		document.getElementById("previous_ref").removeAttribute("href");
	}else{
		document.getElementById("start_ref").href="javascript: show_calendar(ARR_MAX_MIN['min_year'], ARR_MAX_MIN['min_month'], 1);";
		document.getElementById("previous_ref").setAttribute("href", "javascript: show_calendar(CALEND_MONTH>1 ? CALEND_YEAR : (CALEND_YEAR-1), (CALEND_MONTH>1 ? (CALEND_MONTH-1) : 12), 1);");
	}
	
	if(CALEND_MONTH==ARR_MAX_MIN['max_month'] && CALEND_YEAR==ARR_MAX_MIN['max_year']){
		document.getElementById("end_ref").removeAttribute("href");
		document.getElementById("next_ref").removeAttribute("href");
	}else{
		document.getElementById("end_ref").href="javascript: show_calendar(ARR_MAX_MIN['max_year'], ARR_MAX_MIN['max_month'], 1);";
		document.getElementById("next_ref").setAttribute("href", "javascript: show_calendar(CALEND_MONTH<12 ? CALEND_YEAR : (CALEND_YEAR+1), CALEND_MONTH<12 ? (CALEND_MONTH+1) : 1, 1);");
	}
}

function set_selected_cmb_value(cmb_id, sel_value){
	var month_obj=document.getElementById(cmb_id);
	
	if(month_obj.options[month_obj.selectedIndex]!=sel_value){
		for(var i=0; i<month_obj.options.length; i++) month_obj.options[i].selected=false;
				
		for(var i=0; i<month_obj.options.length; i++){
			if(month_obj.options[i].value==sel_value){
				month_obj.options[i].selected=true;
				break;
			}
		}
	}
}

function month_is_change(){
	var obj=document.getElementById(CALEND_ID+"_month");
	var new_val=obj.options[obj.selectedIndex].value;
	
	if((CALEND_YEAR>=ARR_MAX_MIN['max_year'] && new_val>ARR_MAX_MIN['max_month']) || (CALEND_YEAR<=ARR_MAX_MIN['min_year'] && new_val<ARR_MAX_MIN['min_month'])){
		set_selected_cmb_value(CALEND_ID+"_month", CALEND_MONTH);
		return "";
	}
	
	show_calendar(CALEND_YEAR, obj.options[obj.selectedIndex].value);
}

function year_is_change(){
	var obj=document.getElementById(CALEND_ID+"_year");
	
	show_calendar(obj.options[obj.selectedIndex].value);
}
