// Вывод текста
function echo(text)
{
	document.write(text);
}

// Вывод текста с переводом строки
function echoln(text)
{
	document.writeln(text);
}

// Подключить css
function use_css(url)
{
	echo('<link rel="stylesheet" type="text/css" href="' + url + '">');
}

// Подключить скрипт
function use_script(url)
{
	//echo('<script language="JavaScript" type="text/javascript" src="' + url + '"></script>');
	var head = document.getElementsByTagName("HEAD")[0];
	var elem = document.createElement("SCRIPT");
	head.appendChild(elem);
	//var tag = createNode("script");
	elem.src = url;
}

// Назад
function go_back()
{
	history.go(-1);
}

// Перейти по ссылке
function redirect(url)
{
	window.location = url;
}


// Обработчик меню для ебанутого IE
admin_menu_hover = function()
{
	$('#admin_menu li').each(
		function()
		{
			$(this).hover(
				function()
				{
					this.className+=' iehover';
				},
				function()
				{
					this.className=this.className.replace(new RegExp(' iehover\\b'), '');
				}
			);
		}
	);
}
if (window.attachEvent) window.attachEvent('onload', admin_menu_hover);

// Коррекция альфа-канала PNG в IE
function fix_png(element)
{
	if (/MSIE (5|6)/.test(navigator.userAgent))
	{
		var src;

		if (element.tagName=='IMG')
		{
			if (/\.png$/.test(element.src))
			{
				src = element.src;
				var w = element.width;
				var h = element.height;
				element.src = "/ui/x.gif";
				//element.width = w;
				//element.height = h;
			}
			
			if (src)
			{
				element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='image')";
			}
		}
		else
		{
			src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i)
			if (src)
			{
				src = src[1];
				element.runtimeStyle.backgroundImage="none";
			}
			if (src)
				element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
		}
		
	}
}

String.prototype.starts = function(item)
{
	return this.substr(0, item.length) === item;
};


function admin_set_checkboxes(form, name, checked)
{
	for (var i=0; i < form.length; i++)
		if (form[i].name.starts(name))
			form[i].checked = checked;
}

function ui_detail_window(url, width, height, scroll, resizable)
{
	if (scroll == null)
		scroll = 0;
	if (resizable == null)
		resizable = 0;
	w = width;
	h = height;
	var x, y, w, h;
	x = Math.round((screen.availWidth - w) / 2);
	y = Math.round((screen.availHeight - h) / 2);
	var param = 'toolbar=0,status=0,scrollbars=' + scroll + ',resizable=' + resizable +
		',left=' + x.toString() + 
		',top=' + y.toString() +
		',width=' + w.toString() + 
		',height=' + h.toString();
	wnd=open(url, 'detail' + Math.round(Math.random() * 4000000000), param);
	wnd.focus();
	return wnd;
}


function insert_text(area, text)
{
	area.focus();
	// IE
	if(typeof document.selection != 'undefined')
	{
		var range = area.attr('document').selection.createRange();
		var sel = range.text;
		range.text = text;
		range = area.attr('document').selection.createRange();
		range.select();
	}
	// Mozilla
	else if(typeof area.attr('selectionStart') != 'undefined')
	{
		var scroll = area.attr('scrollTop');
		var start = area.attr('selectionStart');
		var end = area.attr('selectionEnd');
		var before = area.attr('value').substring(0, start);
		var sel = area.attr('value').substring(start, end);
		var after = area.attr('value').substring(end, area.attr('textLength'));
		area.attr('value', before + text + after);
		var caret = sel.length == 0 ? start + text.length : start + text.length + sel.length - 1;
		area.attr('selectionStart', caret);
		area.attr('selectionEnd', caret);
		area.attr('scrollTop', scroll);
	}
}

function insert_tags(area, tag1, tag2, attr)
{
	if (!attr)
		attr = '';
	area.focus();
	
	// IE
	if(typeof document.selection != 'undefined')
	{
		var range = document.selection.createRange();
		var sel = range.text;
		range.text = tag2 ? "[" + tag1 + attr + "]" + sel + "[/" + tag2 + "]" : ":" + tag1 + ":";
		range = document.selection.createRange();
		if (tag2 && !sel.length)
			range.move('character', -tag2.length - 3);
		else if(tag2)
			range.move('character', tag1.length + 2 + attr.length + sel.length + tag2.length + 3);
		range.select();
	}
	// Mozilla
	else if(typeof area.attr('selectionStart') != 'undefined')
	{
		var scroll = area.attr('scrollTop');
		var start = area.attr('selectionStart');
		var end = area.attr('selectionEnd');
		var before = area.attr('value').substring(0, start);
		var sel = area.attr('value').substring(start, end);
		var after = area.attr('value').substring(end, area.attr('textLength'));
		area.attr('value', tag2 ? before + "[" + tag1 + attr + "]" + sel + "[/" + tag2 + "]" + after : before + ":" + tag1 + ":" + after);
		var caret = sel.length == 0 ? start + tag1.length + 2 + attr.length : start + tag1.length + 2 + attr.length + sel.length + tag2.length + 3;
		area.attr('selectionStart', caret);
		area.attr('selectionEnd', caret);
		area.attr('scrollTop', scroll);
	}
}

function bb_insert_url(area)
{
	var enterURL = prompt('Введите ссылку', 'http://');
	if (!enterURL)
		return;
	var enterTITLE = prompt('Введите текст ссылки', 'Ссылка');
	if (enterTITLE)
		insert_text(area, '[url=' + enterURL + ']' + enterTITLE + '[/url]');
	else
		insert_text(area, enterURL);
}

function bb_insert_img(area)
{
	var enterURL = prompt('Введите путь к картинке', '/res/');
	if (!enterURL)
		return;
	var enterTITLE = prompt('Введите альтернативный текст', '');
	if (enterTITLE)
		insert_text(area, '[img alt="' + enterTITLE + '"]' + enterURL + '[/img]');
	else
		insert_text(area, '[img]' + enterURL + '[/img]');
}

function bb_insert_list(area, type)
{
	var listvalue = "init";
	var thelist   = "";
	
	opentag = ( type == 'ordered' ) ? '[list=1]' : '[list]';
	
	while ( (listvalue != "") && (listvalue != null) )
	{
		listvalue = prompt('Введите пункт списка. Для завершения списка, нажмите «отмена» или оставьте очередное поле пустым', '');
		
		if ( (listvalue != "") && (listvalue != null) )
		{
			thelist = thelist+"[*]"+listvalue+"\n";
		}
	}
	
	if (thelist != "")
	{
		insert_text(area, opentag + "\n" + thelist + "[/list]\n");
	}
}

function bb_bar(area, page_id, sub_id, block)
{
	if (page_id == null)
		page_id = 0;
	if (sub_id == null)
		sub_id = 0;
	if (block == null)
		block = '';
	echo
	(
		'<a title="Заголовок" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="insert_tags($(\'#' + area + '\'), \'h2\', \'h2\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/h.gif)"></span></a>' +

		'<span class="bb_bar_splitter"></span>' +

		'<a title="Жирный" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="insert_tags($(\'#' + area + '\'), \'b\', \'b\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/bold.gif)"></span></a>' +

		'<a title="Наклонный" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="insert_tags($(\'#' + area + '\'), \'i\', \'i\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/italic.gif)"></span></a>' +

		'<a title="Подчеркнутый" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="insert_tags($(\'#' + area + '\'), \'u\', \'u\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/underline.gif)"></span></a>' +

		'<a title="Перечеркнутый" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="insert_tags($(\'#' + area + '\'), \'s\', \'s\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/strike.gif)"></span></a>' +

		'<a title="Тире" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="insert_text($(\'#' + area + '\'), \'—\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/dash.gif)"></span></a>' +

		(page_id ?
		'<span class="bb_bar_splitter"></span>' +
		'<a title="Картинка" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="ui_detail_window(\'/admin/pic/' + page_id + '/' + sub_id + '/' + block + '/' + area + '/\', 640, 480, 1, 1);return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/pic.gif)"></span></a>'
		: ''
		) +
/*
		'<a title="Внешняя картинка" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="bb_insert_img($(\'#' + area + '\'));return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/image.gif)"></span></a>' +
*/

		'<a title="Файл" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="wnd=ui_detail_window(\'/admin/file/\', 640, 480, 1, 1);wnd.area=\'' + area + '\';return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/file.gif)"></span></a>' +

		'<span class="bb_bar_splitter"></span>' +

		'<a title="Ссылка" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="bb_insert_url($(\'#' + area + '\'));return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/url.gif)"></span></a>' +


		'<span class="bb_bar_splitter"></span>' +

		'<a title="По левому краю" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="insert_tags($(\'#' + area + '\'), \'align\', \'align\', \'=left\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/align_left.gif)"></span></a>' +

		'<a title="По центру" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="insert_tags($(\'#' + area + '\'), \'align\', \'align\', \'=center\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/align_center.gif)"></span></a>' +

		'<a title="По правому краю" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="insert_tags($(\'#' + area + '\'), \'align\', \'align\', \'=right\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/align_right.gif)"></span></a>' +


		'<span class="bb_bar_splitter"></span>' +

		'<a title="Блок по левому краю" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="insert_tags($(\'#' + area + '\'), \'float\', \'float\', \'=left\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/float_left.gif)"></span></a>' +

		'<a title="Блок по правому краю" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="insert_tags($(\'#' + area + '\'), \'float\', \'float\', \'=right\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/float_right.gif)"></span></a>' +


		'<span class="bb_bar_splitter"></span>' +

		'<a title="Список" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="bb_insert_list($(\'#' + area + '\'), \'\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/list.gif)"></span></a>' +

		'<a title="Нумерованный список" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="bb_insert_list($(\'#' + area + '\'), \'ordered\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/numbered_list.gif)"></span></a>' +

		'<span class="bb_bar_splitter"></span>' +

		'<a title="Разделительная линия" ' +
		'onfocus=$(\'#' + area + '\').focus() ' +
		'onclick="insert_text($(\'#' + area + '\'), \'[hr]\');return false;" class="bb_bar_btn" href="."><span style="background-image:url(/ui/bb/hr.gif)"></span></a>' +
		
		'<div style="clear:both"></div>'
	)
}

function b_edit()
{
	echo('<img title="Изменить" src="/ui/btn/edit.gif">');
}

function b_new()
{
	echo('<img title="Добавить" src="/ui/btn/new.gif">');
}

function b_delete()
{
	echo('<img title="Удалить" src="/ui/btn/delete.gif">');
}

function b_browse()
{
	echo('<img title="Просмотр" src="/ui/btn/browse.gif">');
}

function b_up()
{
	echo('<img title="Выше" src="/ui/btn/up.gif">');
}

function b_down()
{
	echo('<img title="Ниже" src="/ui/btn/down.gif">');
}

function b_cut()
{
	echo('<img title="Вырезать" src="/ui/btn/cut.gif">');
}

function b_copy()
{
	echo('<img title="Копировать" src="/ui/btn/copy.gif">');
}

function b_paste()
{
	echo('<img title="Вставить" src="/ui/btn/paste.gif">');
}

function b_folder()
{
	echo('<img title="Папка" src="/ui/btn/folder.gif">');
}

function b_item()
{
	echo('<img title="Элемент" src="/ui/btn/item.gif">');
}

function b_folder_new()
{
	echo('<img title="Добавить папку" src="/ui/btn/folder_new.gif">');
}

function b_active()
{
	echo('<img title="Активно" src="/ui/btn/active.gif">');
}

function b_inactive()
{
	echo('<img title="Неактивно" src="/ui/btn/inactive.gif">');
}

function b_apply()
{
	echo('<img title="Применить" src="/ui/btn/apply.gif">');
}

function b_textfield()
{
	echo('<img title="Текстовые поля" src="/ui/btn/textfield.gif">');
}

function pic_frame_start(floating, margin, color)
{
	if (typeof color == 'undefined')
		color = '#DEDEDE';
	if (typeof floating == 'undefined')
		echo('<table><tr><td style="padding:1px;border:' + color + ' 1px solid">');
	else
	{
		if (typeof margin == 'undefined')
			margin = '10px';
		echo('<table style="float:' + floating + ';margin:' + margin + '"><tr><td style="padding:1px;border:' + color + ' 1px solid">');
	}
}

function pic_frame_end()
{
	echo('</td></tr></table>');
}

function antispam_error()
{
	echo('<div class="error">Сработала защита от спама! Вы ввели неправильный код.</div><br>');
}

function antispam_block_title()
{
	echo('<span title="Введите код, указанный на рисунке">Защита от спама</span>');
}

function antispam_block_input()
{
	echo('<span title="Введите код, указанный на рисунке"><input type="text" id="antispam" name="antispam" class="text" value="" style="width:60px" /></span>');
}

function antispam_block_pic()
{
	echo('<span title="Введите код, указанный на рисунке"><img src="/antispam.php"></span>');
}

function antispam_block()
{
	echo('<table class="ui_form_title" title="Введите код, указанный на рисунке"><tr><td style="vertical-align:middle">Защита от спама:</td><td style="vertical-align:middle;padding:0px 8px 0px 8px"><img src="/antispam.php"></td><td style="vertical-align:middle"><input type="text" id="antispam" name="antispam" class="admin_textbox" value="" style="width:60px" /></td></tr></table>');
}

function admin_panel_start()
{
	echo(
		'<table class="admin_panel">' +
		'<tr>' +
		'<td class="admin_panel_left" nowrap></td>' +
		'<td class="admin_panel_content">'
		);
}

function admin_panel_end()
{
	echo(
		'</td>' +
		'<td class="admin_panel_right" nowrap></td>' +
		'</tr>' +
		'</table>'
		);
}

/* Ajax */

function loading_set(id)
{
	var w = $('#' + id).attr('offsetWidth') + "px";
	var h = $('#' + id).attr('offsetHeight') + "px";
	
	$('#' + id + ' div.loading-overlay').css({ width:w, height:h });
}

function loading_show(id)
{
	$('#' + id).prepend('<div class="loading-overlay"></div>');
	$('#' + id).prepend('<div class="loading"><div>Загрузка&hellip;</div></div>');
	
	loading_set(id);
	
	$(window).resize(function() {
		loading_set(id);
	});
}

function load_page(id, url, _this)
{
	var data = _this ? $(_this).serialize() : "";
	$.ajax({
		type: "get",
		url: url,
		data: data,
		beforeSend: function(){
			loading_show(id);
		},
		success: function(html) {
			$("#"+id).html(html);
		}
	});
}

function reload_page(id, url, _this)
{
	var data = _this ? $(_this).serialize() : "";
	$.ajax({
		type: "get",
		url: url,
		data: data,
		beforeSend: function(){
			loading_show(id);
		},
		success: function(html) {
			$("#"+id).replaceWith(html);
		}
	});
}

function body_resize()
{
	if ($.find('#top_menu_containter') != '')
	{
		$('#top_menu_containter').width($('#content2_table').width());
		
		var left = parseInt($('#top_menu_items').css('margin-left'));
		
		if (left < 0) $('#top_menu_prev').css('display', 'block');		
		if ($('#top_menu').width() < $('#top_menu_items').width())
		{
			//if (left > 0)
				//$('#top_menu_prev').css('display', 'block');

			if (left <= $('#top_menu').width() - $('#top_menu_items').width())
				$('#top_menu_items').css('marginLeft', ($('#top_menu').width() - $('#top_menu_items').width())+'px');		
			else
			$('#top_menu_next').css('display', 'block');
		}
		else
		{
			$('#top_menu_prev').css('display', 'none');
			$('#top_menu_next').css('display', 'none');
			$('#top_menu_items').animate({marginLeft:(0)+'px'});
		}
	}
}

function init()
{
	if ($.find('#top_menu_containter') != '')
	{
		$('#top_menu_containter').css('display', 'block');
		var w = 0;
		var wf = true;
		$('#top_menu_items td').each(function(i,n){
			if (this.id == 'top_menu_active')
				wf = false;
			if (wf)
				w += $(this).width()
			});
		if($('#content2_table').width() - (w + $('#top_menu_active').width()) - 74 < 0)
			$('#top_menu_items').css('marginLeft', -w);
	}

	if ($.find('#top_menu_next') != '')
	{
		$('#top_menu_next').hover(
			function()
			{
				if (top_menu_anim != 1)
				{
					top_menu_anim = 1;
					var f = function(i) {
						var left = parseInt($('#top_menu_items').css('margin-left'));
						
						if (left > $('#top_menu').width() - $('#top_menu_items').width() + 3)
						{
							left -= 500;
							if (left < $('#top_menu').width() - $('#top_menu_items').width())
								left = $('#top_menu').width() - $('#top_menu_items').width();
							$('#top_menu_items').animate({marginLeft:(left)+'px'}, function(){top_menu_anim = 0; if (left < 0) $('#top_menu_prev').css('display', 'block'); if (left <= $('#top_menu').width() - $('#top_menu_items').width()) $('#top_menu_next').css('display', 'none')});
						}
						else
							top_menu_anim = 0;
						

						

					};
					$(this).everyTime(600, f);
					f();
				}
			},
			function()
			{
				$(this).stopTime();
			}
		);
		
		$('#top_menu_prev').hover(
			function()
			{
				if (top_menu_anim != 1)
				{
					top_menu_anim = 1;
					var f = function(i) {
						var left = parseInt($('#top_menu_items').css('margin-left'));
						
						if (left < 0)
						{
							left += 500;
							if (left > 0)
								left = 0;
							$('#top_menu_items').animate({marginLeft:(left)+'px'}, function(){top_menu_anim = 0; if (left >= 0) $('#top_menu_prev').css('display', 'none'); if (left > $('#top_menu').width() - $('#top_menu_items').width()) $('#top_menu_next').css('display', 'block')});
						}
						else
							top_menu_anim = 0;
						
					};
					$(this).everyTime(600, f);
					f();
				}
			},
			function()
			{
				$(this).stopTime();
			}
		);
	}

	body_resize();

	$(document).pngFix(); // Лечим ебаный IE
}

var top_menu_anim = 0;

$(document).ready(init);

