/* тип браузера */
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 scrollToElement(element) {
	if (element && element.scrollIntoView)
		element.scrollIntoView(true);
}

function fixPNG(myImage) {
	var arVersion = navigator.appVersion.split("MSIE");
	var version = parseFloat(arVersion[1]);
	if ((version >= 5.5) && (version < 7) && (document.body.filters)) {
		var imgID = (myImage.id) ? "id='" + myImage.id + "' " : "";
		var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : "";
		var imgTitle = (myImage.title)
			? "title='" + myImage.title  + "' "
			: "title='" + myImage.alt + "' ";
		var imgStyle = "display:inline-block;" + myImage.style.cssText;
		var strNewHTML = "<span " + imgID + imgClass + imgTitle
			+ " style=\"" + "width:" + myImage.width 
			+ "px; height:" + myImage.height 
			+ "px;" + imgStyle + ";"
			+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
			+ "(src=\'" + myImage.src + "\', sizingMethod='scale');\"></span>";
		myImage.outerHTML = strNewHTML;
    }
}

function windowOpen(url, width, height) {
	var w = (!browserOpera ? screen.width : winWidth), h = (!browserOpera ? screen.height : winHeight);
	var is_img = url.toString().match(/\.(gif|jpe?g|png)$/);
	var win = window.open(is_img ? '' : url, '', ''/*'height=' + (height + (is_img ? 30 : 0) + 40) + ',width=' + (width + 40) + ',left=' + (Math.max(w - width, 0) / 2) + ',top=' + (Math.max(h - height, 0) / 2)*/);
	if (is_img) {
		var js_code = "window.open('http://www.smsonline.ru/s/s.cgi?id=563&f=http://www.metallibrary.ru" + url + "','smsonline'+parseInt(Math.random()*10000),'width=780,height=560,status=1,resize=0'); return false";
		win.document.write('<html><head><link rel="stylesheet" type="text/css" href="/style.css"></head><body>');
		win.document.write('<table cellspacing="0"><tr><td class="form_button" style="width: 200px"><form action="http://www.smsonline.ru/s/s.cgi"><input type="hidden" name="id" value="563"><input type="hidden" name="f" value="http://www.metallibrary.ru' + url + '"><input style="width: 200px" type="submit" name="submit" value="Картинку &ndash; на мобильник!" onClick="' + js_code + '"></form></td></tr></table>');
		win.document.write('<p><a href="javascript:window.close()"><img src="' + url + '" alt=""></a>');
		win.document.write('</body></html>');
		win.document.close();
	}
	return false;
}

function getCookie(name) {
	var start = document.cookie.indexOf(name + '=');
	var len = start + name.length + 1;
	if (!start && name != document.cookie.substring(0, name.length))
		return null;
	if (start == -1)
		return null;
	var end = document.cookie.indexOf(';', len);
	if (end == -1)
		end = document.cookie.length;
	return unescape(document.cookie.substring(len, end));
}

function setCookie(name, value, expires, path) {
	if (!path)
		path = '/';
	document.cookie = name + '=' + escape(value) + (expires ? '; expires=' + expires : '') + '; path=' + path + ';';
}

function deleteCookie(name, path, debug) {
	var date = new Date();
	date.setTime(date.getTime() - 1);
	setCookie(name, '', date.toGMTString(), path);
}

function pageTrigger(name, value, freeze) {
	setCookie(name, value);
	if (!freeze)
		location.reload(true);
}

function checkRequired(obj, required, re, format)
{
	var testRE = new RegExp(re ? re : "[^\s\t]");
	if (testRE.test(obj.value) || !obj.value && !required)
		return true;
	else {
		alert(obj.value ? "Поле заполнено неверно!" + (format ? " Формат:\n" + format : "") : "Заполнены не все обязательные поля!");
		obj.focus();
		return false;
	}
}

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 getHTTPObject() {
	var xmlhttp;
	/*@cc_on
	@if (@_jscript_version >= 5)
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				xmlhttp = false;
			}
		}
	@else
		xmlhttp = false;
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp = false;
		}
	}
	return xmlhttp;
}

var extraHTTP = new Array(), extraInterval = new Array();

function extraShowClick(index)
{
	var a = document.getElementById("extra_a_" + index);
//	var p = document.getElementById("extra_p_" + index);
	var div = document.getElementById("extra_div_" + index);

	if (div.style.display == "block") {
		clearInterval(extraInterval[index]);
		a.innerHTML = "&raquo;";
		div.style.display = "none";
		return false;
	} else {
		if (!extraHTTP[index])
			extraHTTP[index] = getHTTPObject();
		a.innerHTML = "&laquo;";
		div.style.display = "block";
		if (extraHTTP[index].readyState != 4 || extraHTTP[index].status != 200) {
			extraInterval[index] = setInterval("extraLoading('" + index + "')", 300);
			return true;
		} else {
			return false;
		}
	}
}

function extraShowLoad(index, content)
{
	clearInterval(extraInterval[index]);
	var div = document.getElementById("extra_div_" + index);
	div.style.borderStyle = "solid";
	div.innerHTML = content;
	if (div.style.display == "none")
		extraShowClick(index);
}

function extraLoading(index)
{
	var div = document.getElementById("extra_div_" + index);
	div.style.borderStyle = (div.style.borderStyle == "solid" ? "dashed" : "solid");
	return true;
}

function extraShowHTTPRequest(index, url)
{
	extraHTTP[index].onreadystatechange = function()
	{
		if (extraHTTP[index].readyState == 4 && extraHTTP[index].status == 200) {
			extraShowLoad(index, extraHTTP[index].responseText);
		} else if (extraHTTP[index].readyState == 4 && extraHTTP[index].status != 200) {
			extraLoaded[index] = 0;
			extraShowLoad(index, '<p class="error">Ошибка при загрузке!</span>');
		}
	};
	extraHTTP[index].open('GET', url);
	extraHTTP[index].send(null);
}

/* форматирование */

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, reqHint)
{
	if (!tagClose && tagClose != '')
		tagClose = tagOpen;
	tagOpen = "[" + tagOpen + "]";
	tagClose = (tagClose != '' ? "[/" + tagClose + "]" : "");
	textarea = document.getElementById(textarea);
	if (reqHint && !tagHint && !textarea.selectedText.match(/\S/))
		alert("Невозможно применить оформление к пустому месту!\nНеобходимо выделить текст в поле ввода.");
	else
		tagsInsertText(textarea, tagOpen + (tagHint ? tagHint : textarea.selectedText ? textarea.selectedText : "") + tagClose);
	return false;
}



