/* тип браузера */
var browserOpera = navigator.userAgent.indexOf("Opera") > -1 || window.opera;
var browserMSIE = navigator.userAgent.indexOf("MSIE") > -1;
var browserGecko = navigator.userAgent.indexOf("Gecko") > -1 || window.sidebar;

/* размеры окон */
var winWidth = 0, winHeight = 0;
if (typeof(window.innerWidth) == 'number') {
	// non-IE
	winWidth = window.innerWidth;
	winHeight = window.innerHeight;
} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
	// IE 6+ in 'standards compliant mode'
	winWidth = document.documentElement.clientWidth;
	winHeight = document.documentElement.clientHeight;
} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
	// IE 4 compatible
	winWidth = document.body.clientWidth;
	winHeight = document.body.clientHeight;
}

/* предзагрузка изображений */

var imagesFolder = "/images";
var filesSrc = new Array(
);
var filesImg = new Array();
for (var i = 0; i < filesSrc.length; i++) {
	filesImg[i] = new Image();
	filesImg[i].src = imagesFolder + "/" + filesSrc[i];
}

/* общие функции */

function windowOpen(url, width, height, caption, author) {
	var w = (!browserOpera ? screen.width : winWidth), h = (!browserOpera ? screen.height : winHeight);
	var is_img = url.toString().match(/\.(bmp|gif|jpe?g|png)$/);
	var height_add = 60 + (is_img ? 30 : 0) + (caption ? 30 + Math.floor(caption.length * 8 / width + 1) * 14 : 10) + (author ? 20 : 0) + 20;
	var win = window.open(url, '', 'height=' + (height + height_add) + ',width=' + (width + 40) + ',left=' + (Math.max(w - width, 0) / 2) + ',top=' + (Math.max(h - height - height_add, 0) / 2));
	if (is_img) {
		win.document.write(
			'<html><head><link rel="stylesheet" type="text/css" href="/styles.css"></head><body>' +
			'<table align="center" style="width: ' + width + 'px; height: ' + height + 'px"><tr><td><a href="javascript:window.close()"><img class="bordered" src="' + url + '" width="' + width + '" height="' + height + '" alt="' + caption + '"></a>' +
			'<table style="margin: 15px 0px 10px 0px" width=100% cellspacing=0 cellpadding=0 border=0><tr><td><IMG src="/images/s.gif" width=1 height=3 alt="" hspace=0 vspace=0><br></td></tr><tr><td bgcolor=#06249c><IMG src="/images/s.gif" width=1 height=2 alt="" hspace=0 vspace=0><br></td></tr><tr><td><IMG src="/images/s.gif" width=1 height=1 alt="" hspace=0 vspace=0><br></td></tr></td></tr></TABLE>' +
			caption +
			'<table style="margin-top: 10px" width=100% cellspacing=0 cellpadding=0 border=0><tr valign=top>' +
			(author ? '<td class="bannerik">Фотограф: ' + author + '</td>' : '') +
			'<td align="right"><img style="padding-left: 10px" src="/images/logo_line.gif" alt="rosmu.ru"></td>' +
			'</tr></table></td></tr></table></body></html>'
		);
	}
	return false;
}

function setCookie(name, value)
{
	document.cookie = name + "=" + escape(value) + "; path=/;";
}

function pageTrigger(name, value, freeze)
{
	setCookie(name, value);
	if (!freeze)
		location.reload(true);
}

function confirmDelete()
{
	var result = prompt("Производится операция удаления.\nЧтобы продолжить, введите слово \"delete\".", "");
	if (result != "delete") {
		if (result > "")
			alert("Неверное слово! Нужно: \"delete\" (без кавычек).");
	} else
		return true;
	return false;
}

function sendEmail(before, after)
{
	location = "mailto:" + before + "@" + after;
}

function under_construction()
{
	alert('Приносим свои извинения, раздел временно закрыт на реконструкцию.');
	return false;
}

/* формы */

function formCheckRequired(obj, required, re, format, obj_other)
{
	var testRE = new RegExp(re ? re : "[^\s\t]", "i"), testValue;
	if (obj.length)
		for (i = 0; i < obj.length; i++)
			if (obj[i].checked) {
				testValue = 1;
				break;
			}
	testValue = testValue || (obj.value ? obj.value : (obj_other ? obj_other.value : ''));
	if (testRE.test(testValue) || !testValue && !required)
		return true;
	else {
		alert(testValue ? "Поле заполнено неверно!" + (format ? " Формат:\n" + format : "") : "Заполнены не все обязательные поля!");
		if (obj.length)
			obj[0].focus();
		else if (!obj_other || obj.value || obj_other && obj_other.disabled)
			obj.focus();
		else
			obj_other.focus();
		return false;
	}
}

function formCreateOption(obj, text, value)
{
	if (document.createElement) {
		var newOption = document.createElement("OPTION");
		newOption.text = text;
		newOption.value = value;
		if (obj.options.add)
			obj.options.add(newOption)
		else
			obj.add(newOption, null);
	} else {
		obj.options[obj.options.length] = new Option(text, value, false, false);
	}
}

/* форматирование */

function tagsStoreCaret(textarea)
{ 
	if (textarea.createTextRange)
		textarea.selectedText = document.selection.createRange().duplicate().text; 
	else if (typeof(textarea.selectionStart) == "number")
		textarea.selectedText = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
}

function tagsInsertText(textarea, text)
{
	textarea.focus();
	if (document.selection) {
		var s = document.selection.createRange();
		s.text = text;
		s.select();
	} else if (typeof(textarea.selectionStart) == "number") {
		var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		textarea.value = textarea.value.substr(0, start) + text + textarea.value.substr(end);
		textarea.setSelectionRange(start + text.length, start + text.length);
	}
	return false;
}

function tagsInsert(textarea, tagOpen, tagClose, tagHint)
{
	if (!tagClose && tagClose != '')
		tagClose = tagOpen;
	tagOpen = "[" + tagOpen + "]";
	tagClose = (tagClose != '' ? "[/" + tagClose + "]" : "");
	textarea = document.getElementById(textarea);
	tagsInsertText(textarea, tagOpen + (tagHint ? tagHint : textarea.selectedText ? textarea.selectedText : "") + tagClose);
}

