/*---------------------------------------------------Ajax request---------------------------------------------------*/
var in_request     = 0;
function Request(Type, Method, Id_form, Id_recepient, Id_loading, LoadingHTML, Module, Action, Params, FuncCallBack) {
	if(Id_recepient.length > 0 || Id_loading.length > 0) {
		if(LoadingHTML.length==0) LoadingHTML = '<div style="color:#555555;font-size: 11px; text-align:center; position: relative; padding: 60px 0px;"><b>Загрузка...</b><br><br><img src="/images/loading1.gif"/></div>';
		$(Id_loading.length > 0 ? Id_loading : Id_recepient).innerHTML = LoadingHTML;
	}
	var Url = '/' + Module + '/' + Action + '/';
	var Parameters = "";
	
	if (Id_form.length > 0) Parameters += $(Id_form).serialize();
	if (Params.length > 0) {
		if(Parameters.length > 0) Params = "&" + Params;
		Parameters += Params;
	}

	in_request = 1;	
	if(Type=='Updater') new Ajax.Updater(Id_recepient,Url,{method: Method.toLowerCase(), parameters: Parameters, evalScripts: true, onComplete: function(OR){in_request = 0; FuncCallBack(OR);}, onFailure: requestError});
	else new Ajax.Request(Url,{method: Method.toLowerCase(), parameters: Parameters, evalScripts: true, onComplete: function(OR){in_request = 0; FuncCallBack(OR);}, onFailure: requestError});
	
	return true;
}
function requestError() {
	showMessage("Во время подключения к серверу произошла ошибка.<br />Перезагрузите страницу и попробуйте ещё раз.","fatal","Ошибка");
	return false;
}
function clearResponseText(text) {
 	text = text.replace(/^\s*/, '');
	text = text.replace(/\s*$/, '');
	text = text.replace(/[\n\r]/, '');
	return text;
}
/*-------------------------------------------------------------------------------------------------------------------*/

/*---------------------------------------------------LAYERS----------------------------------------------------------*/
//Requirements: prototype 1.6.0, scriptaculous, brains, hands
var MessageLayer = {
	// settings of messages
	msg_id: 		'message-layer', // id of the message layer
	msg_width: 		450, // width of message layer (px)
	msg_height: 		150, // height of message layer (px)
	msg_min_width:		150, // min width of message layer (px)
	msg_min_height:		100, // min height of message layer (px)
	msg_default_hide_tm: 	10000, // default hide message timeout (ms)
	msg_titles:		new Array('warning', 'Предупреждение', 
					  'fatal', 'Ошибка', 
					  'notice', 'Выполнено', 
					  'none', 'Подтверждение'), // default message titles
	busy_layer_id: 		'busy-layer', // id of busy layer
	busy_layer_opacity: 	0.8, // opacity of bysy layer
	busy_layer_bgcolor: 	'#000', // background color of busy layer
	// don't edit these vars
	dWidth: 		0,
	dHeight: 		0,
	dScroll: 		new Array(0,0),
	layersToMove: 		new Array(),
	show_hide_timer:	0,
	busy_show_timer:	0,

	init: function() {
		if(!$(MessageLayer.msg_id)) document.write('<div id="' + MessageLayer.msg_id + '" style="display: none;"><div id="' + MessageLayer.msg_id + '-title" style="cursor: move;"><div id="' + MessageLayer.msg_id + '-title-text">Сообщение</div><div id="' +MessageLayer.msg_id + '-title-close"><img src="/images/windows/dialog_close.gif"></div></div><div class="' + MessageLayer.msg_id + '-corner"><table align="center" width="100%"><tr><td id="' + MessageLayer.msg_id + '-text"></td></tr><tr><td><input type="button" id="' + MessageLayer.msg_id + '-button" value="Ok" ></td></tr></table></div></div>');
		if(!$(MessageLayer.busy_layer_id)) document.write('<div id="' + MessageLayer.busy_layer_id + '" style="display: none;"></div>');
		
		if(MessageLayer.show_hide_timer) clearTimeout(MessageLayer.show_hide_timer);
		
		new Draggable(MessageLayer.msg_id, { handle: MessageLayer.msg_id + "-title", scroll: window, starteffect: null, endeffect: null, snap: false});
		
		Event.observe($(MessageLayer.msg_id + "-button"),'click',MessageLayer.hideMessage);
		Event.observe($(MessageLayer.msg_id + '-title-close').select('img')[0],'click',MessageLayer.hideMessage);
		Event.observe(window, 'resize', function() {
			MessageLayer.DefineResolution();
			if(Prototype.Browser.IE) {
				if(MessageLayer.layersToMove.length > 0) MessageLayer.MoveLayers();
				if($(MessageLayer.busy_layer_id).getStyle('display')!='none') {
					$(MessageLayer.busy_layer_id).style.height = document.body.clientHeight || document.documentElement.clientHeight + "px";
				}
			}
		});
		MessageLayer.DefineResolution();
	},
	DefineResolution: function () {
		MessageLayer.dWidth = document.viewport.getWidth();
		MessageLayer.dHeight = document.viewport.getHeight();
		return [ MessageLayer.dWidth, MessageLayer.dHeight ];
	},
	showMessage: function ( message, type, title, updating, hide_tm, width, height ) {
		if(MessageLayer.show_hide_timer) clearTimeout(MessageLayer.show_hide_timer);
	
		var message_layer = $(MessageLayer.msg_id);
		var message_layer_style = message_layer.style;
		
		if(width) {
			if(typeof(width)=='string' && width.indexOf('%') > -1) width = MessageLayer.dWidth * parseFloat(width.replace('%','')) / 100;
			else if (width <= 1 && width >0) width = MessageLayer.dWidth * width;
			else width = parseInt(width);
			MessageLayer.msg_width = width;
		}
		if(height) {
			if(typeof(height)=='string' && height.indexOf('%') > -1) height = MessageLayer.dHeight * parseFloat(height.replace('%','')) / 100;
			else if (height <= 1 && height > 0) height = MessageLayer.dHeight * height;
			else height = parseInt(height);
			MessageLayer.msg_height = height;
		}
		
		if(MessageLayer.msg_width < MessageLayer.msg_min_width) MessageLayer.msg_width = MessageLayer.msg_min_width;
		if(MessageLayer.msg_height < MessageLayer.msg_min_height) MessageLayer.msg_height = MessageLayer.msg_min_height;
		
		MessageLayer.AddLayerToMove(MessageLayer.msg_id, MessageLayer.msg_width, MessageLayer.msg_height);
		MessageLayer.MoveLayers();
		message_layer_style.width = MessageLayer.msg_width + "px";
		message_layer_style.height = MessageLayer.msg_height + "px";
		message_layer.select('TABLE')[0].style.height = MessageLayer.msg_height - 27 + "px";
		$$('.' + MessageLayer.msg_id + '-corner')[0].style.height = MessageLayer.msg_height - 27 + "px";
		$(MessageLayer.msg_id + '-title-close').style.marginRight = (Prototype.Browser.IE ? '8' : '15') + "px";
		
		if(!type) type = "none";
		message_layer_style.backgroundImage='url(/images/windows/' + type + '-img.gif)';
		$(MessageLayer.msg_id + '-title').style.backgroundImage='url(/images/windows/' + type + '-head.gif)';
		
		if(updating) {
			$(MessageLayer.msg_id + '-text').update('<img src="/images/indicator.gif"/>' + (message ? '<br>' + message : '') );
			$(MessageLayer.msg_id + '-button').style.display = 'none';
			$(MessageLayer.msg_id + '-title-close').style.display = 'none';
		}
		else {
			$(MessageLayer.msg_id + '-text').update(message);
			$(MessageLayer.msg_id + '-button').style.display = '';
			$(MessageLayer.msg_id + '-title-close').style.display = '';
		}
		$(MessageLayer.msg_id + '-title-text').update(title ? title : MessageLayer.msg_titles[MessageLayer.msg_titles.indexOf(type) + 1]);
		
		if(Prototype.Browser.IE) MessageLayer.coverSelectsWithIframes(MessageLayer.msg_id);

		MessageLayer.showBusyLayer();
		new Effect.Appear(message_layer, {duration: 0.7, afterFinish: function() {if ( !updating ) $(MessageLayer.msg_id + '-button').focus();}});

		if ( !updating ) {
			if ( typeof(hide_tm)!='number' ) hide_tm = MessageLayer.msg_default_hide_tm;
			if ( hide_tm > 0 ) MessageLayer.show_hide_timer = setTimeout('MessageLayer.hideMessage();',hide_tm);
			Event.observe($(MessageLayer.busy_layer_id), "click", MessageLayer.hideMessage);
		}
	},
	coverSelectsWithIframes: function (obj_id) {
		MessageLayer.removeIframesCoversForSelects(obj_id);
		var selects = $$("SELECT");
		if(selects && selects.length > 0) {
			for (var s = 0; s < selects.length; s++) {
				Element.extend(selects[s]);
				if(!selects[s].visible()) continue;
				
				var select_dimensions = selects[s].getDimensions();
				var select_offsets = Position.cumulativeOffset(selects[s]);
				var cover_iframe = new Element('iframe', {'class': 'iframe-cover-for-select-' + obj_id, 'id': 'iframe-cover-for-select-' + obj_id + '-' + s});
				
				var zIndex = 0;
				if(!Element.Methods.getStyle(selects[s], 'z-index')) {
					obj = selects[s].parentNode;
					while (true) {
						if(Element.Methods.getStyle(obj, 'z-index') && parseInt(Element.Methods.getStyle(obj, 'z-index')) > 0) {
							zIndex = parseInt(Element.Methods.getStyle(obj, 'z-index'));
							break;
						}
						else if(obj.parentNode) {
							obj = obj.parentNode;
						}
						else {
							break;
						}
						
						if(obj.tagName.toUpperCase() == 'BODY') break;
					}
				}
				else {
					zIndex = parseInt(Element.Methods.getStyle(selects[s], 'z-index'));
				}

				cover_iframe.setStyle({
					zIndex: zIndex + 1,
					position: 'absolute',
					backgroundColor: 'transparent',
					border: '0 none',
					overflow: 'hidden',
					width: select_dimensions['width'] + 'px',
					height: select_dimensions['height'] + 'px',
					left: select_offsets[0] + 'px',
					top: select_offsets[1] + 'px'
				});
				document.body.appendChild(cover_iframe);
			}
		}
	},
	removeIframesCoversForSelects: function (obj_id) {
		var iframes = $$("iframe.iframe-cover-for-select-" + obj_id);
		if(iframes && iframes.length > 0) {
			for (var i = 0; i < iframes.length; i++) {
				$(iframes[i]).parentNode.removeChild($(iframes[i]));
			}
		}
	},
	showBusyLayer: function () {
		if(MessageLayer.busy_show_timer) clearTimeout(MessageLayer.busy_show_timer);
		if(Prototype.Browser.IE) MessageLayer.busy_show_timer = setTimeout("MessageLayer.showBusyLayer1();", 10);
		else MessageLayer.showBusyLayer1();
	},
	showBusyLayer1: function () {
		var busy_layer = $(MessageLayer.busy_layer_id);
		var busy_layer_style = busy_layer.style;
		if(busy_layer_style.position=="" || busy_layer_style.height=="") {
			if(Prototype.Browser.IE) {
				busy_layer_style.position = "absolute";
				busy_layer_style.height = document.body.clientHeight || document.documentElement.clientHeight + "px";
			}
			else {
				busy_layer_style.position = "fixed";
				busy_layer_style.height = "100%";
			}
		}
		busy_layer.setOpacity(MessageLayer.busy_layer_opacity);
		busy_layer_style.backgroundColor = MessageLayer.busy_layer_bgcolor;
		busy_layer_style.display = "block";
		
		if(MessageLayer.busy_show_timer) clearTimeout(MessageLayer.busy_show_timer);
	},
	hideBusyLayer: function () {
		if( ($('registration-layer') && !$('registration-layer').visible()) || !$('registration-layer'))
			$(MessageLayer.busy_layer_id).style.display = "none";
	},
	hideMessage: function (instantly) {
		var fading = (typeof(instantly) == "boolean" && instantly === true ||
			      typeof(instantly) == "number" && instantly > 0 ||
			      typeof(instantly) == "string" && instantly.length > 0 ? true : false);
		
		if(!fading) {
			new Effect.Fade(MessageLayer.msg_id, {duration: 0.7, afterFinish: function() {
				$(MessageLayer.msg_id).setStyle({left: 0,top: 0});
				
				if(Prototype.Browser.IE) {
					MessageLayer.removeIframesCoversForSelects(MessageLayer.msg_id);
					MessageLayer.RemoveLayerFromMove(MessageLayer.msg_id);
					window.onscroll_obj_id = "";
				}
				MessageLayer.hideBusyLayer();
				Event.stopObserving($(MessageLayer.busy_layer_id), "click", MessageLayer.hideMessage);
			}});
		}
		else {
			$(MessageLayer.msg_id).setStyle({left: 0,top: 0,display:'none'});
			if(Prototype.Browser.IE) {
				MessageLayer.removeIframesCoversForSelects(MessageLayer.msg_id);
				MessageLayer.RemoveLayerFromMove(MessageLayer.msg_id);
				window.onscroll_obj_id = "";
			}
			MessageLayer.hideBusyLayer();
			Event.stopObserving($(MessageLayer.busy_layer_id), "click", MessageLayer.hideMessage);
		}
	},
	MoveLayers: function () {
		if(MessageLayer.layersToMove.length > 0) {
			for(obj_id in MessageLayer.layersToMove) {
				if(typeof(MessageLayer.layersToMove[obj_id])!="object") continue;
				var obj = $( obj_id );
				if(!obj) continue;
				var obj_style = obj.style;
				var w = MessageLayer.layersToMove[obj_id][0];
				var h = MessageLayer.layersToMove[obj_id][1];
				var setX = 0;
				var setY = 0;

				if(Prototype.Browser.IE) {
					obj_style.position = "absolute";
					var layer_offsetLeft = parseFloat(obj.style.left || 0) - MessageLayer.dScroll[0];
					var layer_offsetTop = parseFloat(obj.style.top || 0) - MessageLayer.dScroll[1];
					var my_scroll_new = document.viewport.getScrollOffsets();
					if(window.onscroll_obj_id != obj_id) {
						window.onscroll_obj_id = obj_id;
						Event.observe(window, 'scroll', MessageLayer.MoveLayers);
					}
				}
				else {
					obj_style.position = "fixed";
				}

				if(typeof(layer_offsetTop)=='number' && typeof(layer_offsetLeft)=='number' && layer_offsetTop>0 && layer_offsetLeft>0) {
					var setX = layer_offsetLeft;
					var setY = layer_offsetTop;
				}	
				else {
					var setX = parseInt((( MessageLayer.dWidth - w  ) / 2) - 15);
					var setY = parseInt(( MessageLayer.dHeight - h ) / 2.5);
				}

				if(Prototype.Browser.IE) {
					setX += my_scroll_new[0];
					setY += my_scroll_new[1];
				}

				setX = ( setX < 0 ) ? 0 : setX;
				setY = ( setY < 0 ) ? 0 : setY;
				obj_style.left = setX + "px";
				obj_style.top  = setY + "px";
			}
			if(Prototype.Browser.IE) MessageLayer.dScroll = my_scroll_new;
		}
	},
	AddLayerToMove: function (obj_id, w, h) {
		if(typeof(obj_id) == 'string' && obj_id != '') {
			MessageLayer.layersToMove[obj_id] = [(w ? w : 0),(h ? h : 0)];
			MessageLayer.layersToMove.length++;
		}
	},
	RemoveLayerFromMove: function (obj_id) {
		delete MessageLayer.layersToMove[obj_id];
		if(MessageLayer.layersToMove.length > 0) MessageLayer.layersToMove.length--;
	}
};

var BlankLayer = {
	layer_id: 'registration-layer',
	cache_w: 0,
	cache_h: 0,
	
	init: function() {
		if(!$(BlankLayer.layer_id)) document.write('<div id="' + BlankLayer.layer_id + '" style="display: none;"><div style="text-align: right; width:100%; height: 16px; margin-bottom: 5px;"><img src="/images/icons/icon_expand.png" style="cursor: pointer;" title="Развернуть/Свернуть" id="' + BlankLayer.layer_id + '-expand" > <img src="/images/icons/icon_close.png" style="cursor: pointer;" title="Закрыть" id="' + BlankLayer.layer_id + '-hide" ></div><div id="' + BlankLayer.layer_id + '-content"></div></div>');
		Event.observe($(BlankLayer.layer_id + "-expand"), 'click', function() {BlankLayer.expandLayer(); return false;});
		Event.observe($(BlankLayer.layer_id + "-hide"), 'click', function() {BlankLayer.hideLayer(); return false;});
	},
	showLayer: function ( show_busy_layer, p_width, p_height ) {
		BlankLayer.resizeLayer( p_width, p_height );
		if(show_busy_layer) MessageLayer.showBusyLayer();
		if(Prototype.Browser.IE) MessageLayer.coverSelectsWithIframes(BlankLayer.layer_id);
		$(BlankLayer.layer_id).setStyle({display: 'block'});
		$(BlankLayer.layer_id + '-expand').show();
		$(BlankLayer.layer_id + '-hide').show();
		Event.observe(window, "resize", function() {if($(BlankLayer.layer_id).visible()) BlankLayer.resizeLayer( p_width, p_height );});
		Event.observe($(MessageLayer.busy_layer_id), "click", BlankLayer.hideLayer);
	},
	resizeLayer: function ( p_width, p_height ) {
		if(!p_width) p_width = 0.6;
		if(!p_height) p_height = 0.6;
		var layer_width = p_width * MessageLayer.dWidth;
		var layer_height = p_height * MessageLayer.dHeight;
		$(BlankLayer.layer_id).setStyle({width: parseInt(layer_width) + "px", height: parseInt(layer_height) + "px"});
		$(BlankLayer.layer_id + "-content").setStyle({height: (layer_height - 30) + "px"});
		MessageLayer.AddLayerToMove(BlankLayer.layer_id, layer_width, layer_height);
		MessageLayer.MoveLayers();
	},
	hideLayer: function () {
		$(BlankLayer.layer_id).setStyle({left: 0, top: 0, display: 'none'});
		$(BlankLayer.layer_id + '-content').update('');
		
		BlankLayer.cache_w = 0; BlankLayer.cache_h = 0;
		$(BlankLayer.layer_id + '-expand').src = '/images/icons/icon_expand.png';
		
		MessageLayer.RemoveLayerFromMove(BlankLayer.layer_id);
		if( ($(MessageLayer.msg_id) && !$(MessageLayer.msg_id).visible()) || !$(MessageLayer.msg_id)) {
			MessageLayer.hideBusyLayer();
			MessageLayer.RemoveLayerFromMove(BlankLayer.layer_id);
		}
			
		if(Prototype.Browser.IE) MessageLayer.removeIframesCoversForSelects(BlankLayer.layer_id);
			
		if($("WzTtDiV")) tt_HideInit();
			
		Event.stopObserving($(MessageLayer.busy_layer_id), "click", BlankLayer.hideLayer);
	},
	expandLayer: function () {
		$(BlankLayer.layer_id).setStyle({left: 0, top: 0});
		if(BlankLayer.cache_w==0 && BlankLayer.cache_h==0) { 
			BlankLayer.cache_w = $(BlankLayer.layer_id).getWidth();
			BlankLayer.cache_h = $(BlankLayer.layer_id).getHeight();
			BlankLayer.showLayer($(MessageLayer.busy_layer_id).visible(), 0.95, 0.95);
			$(BlankLayer.layer_id + '-expand').src = '/images/icons/icon_collapse.png';
		}
		else {
			BlankLayer.showLayer($(MessageLayer.busy_layer_id).visible(), (BlankLayer.cache_w/MessageLayer.dWidth), (BlankLayer.cache_h/MessageLayer.dHeight));
			$(BlankLayer.layer_id + '-expand').src = '/images/icons/icon_expand.png';
			BlankLayer.cache_w=0;
			BlankLayer.cache_h=0;
		}
		
		if(Prototype.Browser.IE) {
			MessageLayer.removeIframesCoversForSelects(BlankLayer.layer_id);
			MessageLayer.coverSelectsWithIframes(BlankLayer.layer_id);
		}
	}
};
MessageLayer.init();
BlankLayer.init();

function showMessage ( message, type, title, updating, hide_tm, width, height ) {tt_HideInit(); MessageLayer.showMessage( message, type, title, updating, hide_tm, width, height );}
function hideMessage (instantly) {MessageLayer.hideMessage(instantly);}
function showLayer ( show_busy_layer, p_width, p_height ) {tt_HideInit(); BlankLayer.showLayer( show_busy_layer, p_width, p_height );}
function hideLayer () {BlankLayer.hideLayer();}
function MoveLayer (obj_id, w, h) {MessageLayer.AddLayerToMove(obj_id, w, h); MessageLayer.MoveLayers();}
/*-------------------------------------------------------------------------------------------------------------------*/


/*-----------------LOGIN LOGOUT REGISTER------------------------*/
var reload_on_login_logout = 0;
function showLoginForm() {
	showLayer(true, 0.3, 0.4);
	$('registration-layer-content').innerHTML = $('user_result').innerHTML;
}

function makeLogin() {
	if($F($("login_form").login).strip().length == 0) {
		showMessage("Введите логин!","warning");
		return false;
	}
	if($F($("login_form").password).strip().length == 0) {
		showMessage("Введите пароль!","warning");
		return false;
	}

	$("login_submit").disabled = true;
	$("login_loading").innerHTML = "<img src='/images/indicator1.gif'>";
	new Ajax.Request("/user_cabinet_form/login/", {method: "post", evalScripts: true, parameters: $("login_form").serialize(), onComplete: function (originalRequest) {
		var Response = clearResponseText(originalRequest.responseText);
		switch(Response) {
			case 'warn_banned': showMessage("Вы были забанены на этом сайте!<br>Если вы с этим не согласны,<br>то свяжитесь с нами через <a href='/contact.html'>контактную форму</a>.","warning"); break;
			case 'warn_fault': showMessage("В доступе отказано!","fatal"); break;
			case 'warn_user_off': showMessage("Вы не активировали свою учетную запись.<br>Чтобы активировать её, вам необходимо пройти по ссылке,<br>которая пришла на ваш почтовый ящик.","warning"); break;
			case 'warn_group_off': showMessage("Авторизация для группы<br>временно отключена.","warning"); break;
			default:
				if($('registration-layer').style.display=='block') {
					$('registration-layer').style.display = 'none';
					$('registration-layer-content').innerHTML = '';
				}
				$('user_result').removeChild($('user_login'));
				$('user_result').innerHTML = Response;
				showMessage("Здраствуйте, <span style='color: #0066FF;'>" + $('user_login').innerHTML + "</span>! Рады снова Вас видеть на нашем сайте.","none");
				setTimeout("window.location.reload(true);","2000");
			break;
		}	

		$('login_loading').innerHTML = "";
		$('login_submit').disabled=false;
	}});
	return false;
}

function makeLogout() {
	if($("logout_loading")) $("logout_loading").innerHTML = "<center><img src='/images/indicator1.gif'></center>";
	else showMessage ( "Ждите...", "notice", "", true);
	new Ajax.Request("/user_cabinet_form/logout/", {method: "POST", evalScripts: true, onComplete: function (originalRequest) {
		var Response = clearResponseText(originalRequest.responseText);

		if(window.location.pathname.match(/myspace/)) {
			window.location='/';
		}
		else {
			$('user_cabinet').parentNode.removeChild($('user_cabinet'));
			$('user_result').innerHTML = Response;
			showMessage('До свидания, будем рады видеть Вас снова!','notice');
			setTimeout("window.location.reload(true);","2000");
		}
	}});
}
function showRegistrationForm() {
	showLayer(true, 0.6, 0.9);
	$('registration-layer-content').innerHTML = '<center><img style="margin-top: 200px;" src="/images/loading1.gif"></center>';
	new Ajax.Updater($('registration-layer-content'),"/register/show/",{method: "POST", evalScripts: true});
}
function showRecoverPwdForm() {
	showLayer(true, 0.6, 0.23);
	$('registration-layer-content').innerHTML = '<center><img style="margin-top: 50px;" src="/images/loading1.gif"></center>';
	new Ajax.Updater($('registration-layer-content'),"/register/showRecoverPwdForm/",{method: "POST", evalScripts: true});
}
function showEditProfileForm() {
	showLayer(true, 0.6, 0.85);
	$('registration-layer-content').innerHTML = '<center><img style="margin-top: 200px;" src="/images/loading1.gif"></center>';
	new Ajax.Updater($('registration-layer-content'),"/register/showEditProfileForm/",{method: "POST", evalScripts: true});
}
function showPMBox(type) {
	showLayer(true, 0.9, 0.9);
	$('registration-layer-content').innerHTML = '<center><img style="margin-top: 200px;" src="/images/loading1.gif"></center>';
	new Ajax.Updater($('registration-layer-content'),"/user_cabinet/showPMBox/",{method: "POST", evalScripts: true, onComplete: function(OR) {
		if(typeof(type) != 'undefined' && !type) return;
		var timerShowPMs = setInterval(function() {
			if($("pm_content") && typeof(showPMs) !== 'undefined') {
				showPMs.init(type ? type : 'Income');
				clearInterval(timerShowPMs);
			}
		}, 50);
	}});
}
function showPMBoxAndCreate(id_user_to) {
	if($('tt_user_info_' + id_user_to)) tt_HideInit();
	if($("pm_content") && typeof(createPM) != 'undefined') {
		createPM.init(null, null, (id_user_to ? id_user_to : null));
	}
	else {
		showPMBox(false);
		var timerCreatePM = setInterval(function() {
			if($("pm_content") && typeof(createPM) != 'undefined') {
				createPM.init(null, null, (id_user_to ? id_user_to : null));
				clearInterval(timerCreatePM);
			}
		}, 200);
	}
}
function showBookmarks() {
	showLayer(true, 0.6, 0.85);
	$('registration-layer-content').innerHTML = '<center><img style="margin-top: 200px;" src="/images/loading1.gif"></center>';
	new Ajax.Updater($('registration-layer-content'),"/user_cabinet/showBookmarks/",{method: "POST", evalScripts: true});
}
function showAddBookmarkForm(bookmark_title) {
	showLayer(true, 0.55, 0.3);
	$('registration-layer-content').innerHTML = '<center><img style="margin-top: 60px;" src="/images/loading1.gif"></center>';
	new Ajax.Updater($('registration-layer-content'),"/user_cabinet/showAddBookmarkForm/",{method: "POST", evalScripts: true, onComplete: function() {
		$("bookmark_uri").value = window.location.pathname;
		$("bookmark_title").value = bookmark_title ? bookmark_title : $$("title")[0].innerHTML.replace(/::[^\Z]+?$/g,'').strip();
	}});
}
function showArticles() {
	showLayer(true, 0.8, 0.9);
	$('registration-layer-content').innerHTML = '<center><img style="margin-top: 200px;" src="/images/loading1.gif"></center>';
	new Ajax.Updater($('registration-layer-content'),"/user_cabinet/showArticles/",{method: "POST", evalScripts: true});
}
function showFiles() {
	showLayer(true, 0.8, 0.9);
	$('registration-layer-content').innerHTML = '<center><img style="margin-top: 200px;" src="/images/loading1.gif"></center>';
	new Ajax.Updater($('registration-layer-content'),"/user_cabinet/showFiles/",{method: "POST", evalScripts: true});
}
function showFilesHistory(type, page) {
	showLayer(true, 0.8, 0.9);
	$('registration-layer-content').innerHTML = '<center><img style="margin-top: 200px;" src="/images/loading1.gif"></center>';
	new Ajax.Updater($('registration-layer-content'),"/user_cabinet/showFilesHistory/",{method: "POST", evalScripts: true, parameters: {page: (page ? page : 1), type: (type ? type : 'doc')}});
}
function showQuestions(type) {
	showLayer(true, 0.8, 0.9);
	$('registration-layer-content').innerHTML = '<center><img style="margin-top: 200px;" src="/images/loading1.gif"></center>';
	new Ajax.Updater($('registration-layer-content'),"/user_cabinet/showQuestions/",{method: "POST", parameters: {type: type}, evalScripts: true});
}
function showAds() {
	showLayer(true, 0.8, 0.9);
	$('registration-layer-content').innerHTML = '<center><img style="margin-top: 200px;" src="/images/loading1.gif"></center>';
	new Ajax.Updater($('registration-layer-content'),"/user_cabinet/showAds/",{method: "POST", evalScripts: true});
}
function showWords() {
	showLayer(true, 0.8, 0.9);
	$('registration-layer-content').innerHTML = '<center><img style="margin-top: 200px;" src="/images/loading1.gif"></center>';
	new Ajax.Updater($('registration-layer-content'),"/user_cabinet/showWords/",{method: "POST", evalScripts: true});
}

var UserInfoTimer;
var UserInfoCache = new Array();
function showUserInfo(id_user, fix_obj) {
	if(!id_user) return;
	
	if($('tt_user_info_' + id_user)) {
		tt_HideInit();
		return 1;
	}

	Tip( (UserInfoCache[id_user] ? UserInfoCache[id_user] : '<div style="width: 100%; text-align: center; margin: 30px 0;"><b>Загрузка...</b><br><img src="/images/loading1.gif"></div>'),
		BGCOLOR, "#FFFFFF", 
		BORDERCOLOR, "#3388CC", 
		BORDERWIDTH, 2,
		CLOSEBTN, true, 
		CLOSEBTNCOLORS, ['#FF6633','#FFFFFF','#FFFFFF','#FF6633'],
		DELAY, 0,
		FADEIN, 300,
		FADEOUT, 300,
		FIX, (fix_obj ? [fix_obj, 0, 5] : null),
		FONTCOLOR, "#404040", 
		OPACITY, 95, 
		PADDING, 8,
		STICKY, true, 
		TEXTALIGN, 'left',
		TITLE, 'Информация о пользователе', 
		TITLEFONTCOLOR, '#FFFFFF', 
		TITLEBGCOLOR, '#3388CC',
		WIDTH, 400
		);
	$$("#WzBoDy table")[0].style.width = "100%";
	
	if(!fix_obj) {
		if(Prototype.Browser.IE) {
			MessageLayer.AddLayerToMove("WzTtDiV");
			MessageLayer.AddLayerToMove("WzTtIfRm");
		}
		else {
			$("WzTtDiV").style.position = "fixed";
			$("WzTtDiV").style.top = (parseInt($("WzTtDiV").style.top.replace("px","")) - document.viewport.getScrollOffsets().top) + "px";
		}
		
		UserInfoTimer = setInterval(function() {
			var WzTtDiV_style = $("WzTtDiV").style;
			if(WzTtDiV_style.display == 'none' || WzTtDiV_style.visibility == 'hidden') {
				if(Prototype.Browser.IE) {
					MessageLayer.RemoveLayerFromMove("WzTtDiV");
					MessageLayer.RemoveLayerFromMove("WzTtIfRm");
				}
				else {
					WzTtDiV_style.position = "absolute";
				}
				if(UserInfoTimer) clearInterval(UserInfoTimer);
			}
		}, 200);
	}
	else {
		if(Prototype.Browser.IE) {
			MessageLayer.RemoveLayerFromMove("WzTtDiV");
			MessageLayer.RemoveLayerFromMove("WzTtIfRm");
		}
		else {
			$("WzTtDiV").style.position = "absolute";
		}
	}
	
	if($("WzTtDiV").cumulativeOffset().left + $("WzTtDiV").getWidth() > document.viewport.getWidth()) {
		$("WzTtDiV").setStyle({left: document.viewport.getWidth() - $("WzTtDiV").getWidth() + "px"});
	}
	
	if(!UserInfoCache[id_user]) {
		new Ajax.Updater($('WzBoDyI'),"/user_cabinet/showUserInfo/",{method: "POST", parameters: {id_user: id_user}, evalScripts: true, onComplete: function(OR) {
			UserInfoCache[id_user] = OR.responseText.strip();
		}});
	}
}
/*--------------------------------------------------------------*/

/*------------------Fast search---------------------------------*/
var FastSearch = {
	id: "fast_search",
	found_cnt: 0,
	query_cache: "",
	query_fail: new Array(),
		
	init: function(value, id) {
		if(id) this.id = id;
		if(!$(this.id)) return false;
	
		$(this.id).value = value;
		$(this.id).onfocus = function() {
			if($F(this.id) == value) $(this.id).value = '';
			$(this.id).style.color = '#000';
		};
		
		$(this.id).parentNode.insertBefore(new Element('span', {'id': this.id + '_stat'}).setStyle({fontSize: '14px'}).update("&nbsp;<span id='" + this.id + "_found_cnt' style='font-weight: bold; color: #000;'></span>&nbsp;[" + $$('.fast_search_item_value').length + ' всего]'), $(this.id).nextSibling);
		
		$(this.id).onkeypress = FastSearch.start;
		$(this.id).onkeyup = FastSearch.start;
	},
	
	start: function (event) {
		if(!($F(this.id) && this.query_cache && $F(this.id).toLowerCase().indexOf(this.query_cache.toLowerCase()) == 0)) {
			var parents = $$("." + this.id + "_item_parent_off");
			for(p = 0; p < parents.length; p++) {
				parents[p].style.display = "";
				parents[p].removeClassName(this.id + "_item_parent_off");
				parents[p].addClassName(this.id + "_item_parent");
			}
		}
	
		if($F(this.id)) {
			this.found_cnt = 0;
			var items = $$("." + this.id + "_item_parent ." + this.id + "_item_value");
			for(i = 0; i < items.length; i++) {
				if( items[i].innerHTML.toLowerCase().indexOf($F(this.id).toLowerCase()) > -1 ) {
					this.found_cnt += 1;
				}
				else {
					var ancestors = items[i].ancestors();
					for(a = 0; a < ancestors.length; a++) {
						if(ancestors[a].hasClassName(this.id + "_item_parent")) {
							ancestors[a].style.display = "none";
							ancestors[a].addClassName(this.id + "_item_parent_off");
							ancestors[a].removeClassName(this.id + "_item_parent");
						}
					}
				}
			}
			$(this.id + "_found_cnt").innerHTML = this.found_cnt;
			this.query_cache = $F(this.id);
		}
		else {
			$(this.id + "_found_cnt").innerHTML = '';
		}
	}
};
/*--------------------------------------------------------------*/


/*----------------------------------------------------XBB------------------------------------------------------------*/
var XBB_script;
var timer;
function XBB_init(params) {
	if(typeof(XBB) === "undefined") {
		$$("head")[0].appendChild(new Element('script', {language: 'javascript', type: 'text/javascript', src: '/library/bbcode/xbb.js.php'}));

		timer = setInterval(function() {
			if(typeof(XBB) != "undefined") {
				XBB_init1(params);
				if(timer) clearInterval(timer);
			}
		}, 200);
	}
	else {
		XBB_init1(params);
	}
}

function XBB_init1(params) {
	if(!params.textarea_id) return false;
	
	XBB.textarea_id = params.textarea_id;
	XBB.area_width = (params.area_width ? params.area_width : '100%');
	XBB.area_height = (params.area_height ? params.area_height : '250px');
	XBB.area_border = (params.area_border ? params.area_border : '0px none');
	XBB.lang = (params.lang ? params.lang : 'ru_cp1251');
	XBB.state = 'plain';
	XBB.init();

	if(typeof(params.onsubmit_callback) == 'function') {
		$(params.textarea_id).form.onsubmit = params.onsubmit_callback;
	}
	
	return true;
}


function getAreaValue(obj,textarea_id) {
	var value = '';
	if(typeof(XBB) != "undefined") {
		if(!textarea_id) for(var i in XBB.unique) {var unique = XBB.unique[i]; break;}
		else var unique = XBB.unique[textarea_id];
		value = $(XBB.iframe_id + unique).contentWindow.document.forms['xbb' + unique].xbb_textarea.value;
	}
	else {
		value = $F(textarea_id);
	}
	if(obj) obj.value = value;
	return value;
}
function setAreaValue(text,textarea_id,clear) {
	var value = getAreaValue(null,textarea_id);
	value = (value && !clear ? value + '\n' + text : text);
	if(typeof(XBB) != "undefined") {
		if(!textarea_id) for(var i in XBB.unique) {var unique = XBB.unique[i]; break;}
		else var unique = XBB.unique[textarea_id];
		$(XBB.iframe_id + unique).contentWindow.document.forms['xbb' + unique].xbb_textarea.value = value;
		$(XBB.iframe_id + unique).contentWindow.document.forms['xbb' + unique].xbb_textarea.focus();
	}
	else {
		$(textarea_id).value = value;
	}
}
function clearAreaValue(textarea_id) {setAreaValue("",textarea_id,true);}
/*-------------------------------------------------------------------------------------------------------------------*/

function CtrlEnter(callBack, element) {
	Event.observe( $(element) ? $(element) : window, "keypress", function(event) {
		if (window.event) event = window.event;
		if (event.ctrlKey && (event.keyCode ? event.keyCode : event.which ? event.which : null) == 13 ) {
			return callBack();
		}
	});
}

// предварительная загрузка картинок
new Array("/images/marker-menu-grey.gif",
	  "/images/marker-menu.gif",
	  "/images/indicator1.gif",
	  "/images/loading.gif",
	  "/images/loading1.gif",
	  "/images/windows/fatal-img.gif",
	  "/images/windows/fatal-head.gif",
	  "/images/windows/warning-img.gif",
	  "/images/windows/warning-head.gif",
	  "/images/windows/notice-img.gif",
	  "/images/windows/notice-head.gif",
	  "/images/windows/none-img.gif",
	  "/images/windows/none-head.gif",
	  "/images/bg_select.jpg",
	  "/images/bg_select2.jpg").each(function(src) {new Element('img', {src: src});});

// метод для плавного вертикального скроллинга до определенного элемента страницы
Element.Methods.slightVertScrollTo = function(element,step) {
	element = $(element);
	if(typeof(Scriptaculous) != 'undefined') {
		new Effect.ScrollTo(element, {duration: 1.5, offset: -10});
	}
	else {
		var scroll_from = document.viewport.getScrollOffsets();
		var scroll_to  = element.cumulativeOffset();
		for (var i = scroll_from.top; i <= scroll_to.top; i += (step ? step : 5) )
			window.scrollTo(scroll_from.left, i);
		window.scrollTo(scroll_from.left, scroll_to.top);
	}
	return element;
};
Element.addMethods();


function showCourseChart(chart_url,min,max,title,fix_obj) {
	Tip('<center><img src="/images/loading1.gif" style="margin: 135px 90px;"></center><img style="display:none;" onload="$(this).show(); $($(this).parentNode.firstChild).remove();" onerror="UnTip();" src="' + chart_url + '"><br><br><b>Мин:</b> ' + min + '<br><b>Макс:</b> ' + max,
		BGCOLOR, "#FFFFFF", 
		BORDERCOLOR, "#3388CC", 
		BORDERWIDTH, 2,
		CLOSEBTN, true, 
		CLOSEBTNCOLORS, ['#FF6633','#FFFFFF','#FFFFFF','#FF6633'],
		DELAY, 0,
		FADEIN, 300,
		FADEOUT, 300,
		FIX, [fix_obj, 0, 5],
		FONTCOLOR, "#404040", 
		PADDING, 8,
		STICKY, true, 
		TEXTALIGN, 'center',
		TITLE, title,
		TITLEFONTCOLOR, '#FFFFFF', 
		TITLEBGCOLOR, '#3388CC',
		WIDTH, 400
		);
	$$("#WzBoDy table")[0].style.width = "100%";
}
