var isDOM = document.getElementById; //DOM1 browser (MSIE 5+, Netscape 6, Opera 5+)
var isOpera = isOpera5=window.opera && isDOM; //Opera 5+
var isOpera6 = isOpera && window.print; //Opera 6+
var isOpera7 = isOpera && document.readyState; //Opera 7+
var isMSIE = document.all && document.all.item && !isOpera; //Microsoft Internet Explorer 4+
var isMSIE5 = isDOM && isMSIE; //MSIE 5+
var isNetscape4 = document.layers; //Netscape 4.*
var isMozilla = isDOM && navigator.appName == "Netscape"; //Mozilla или Netscape 6.*

function setGlobalOnLoad(handler) {
   var root = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null;
   if(root) {
      if(root.addEventListener) root.addEventListener("load", handler, false);
      else if(root.attachEvent) root.attachEvent("onload", handler);
   }
}

function addHandler(object, event, handler) {
	if(typeof object.addEventListener != 'undefined')
		object.addEventListener(event, handler, false);
	else if(typeof object.attachEvent != "undefined")
		object.attachEvent("on" + event, handler);
}

function removeHandler(object, event, handler)
{
	if(typeof object.removeEventListener != "undefined")
		object.removeEventListener(event, handler, false);
	else if(typeof object.detachEvent != "undefined")
		object.detachEvent("on" + event, handler);
}

Function.prototype.bind = function(object) {
    var method = this;
    return function() {
        return method.apply(object, arguments);
    }
}
function getVariableFromURL(varName) {
	var arg = location.search.substring(1).split('&');
	var variable="";
	for(var i = 0; i < arg.length; i++) {
		if(arg[i].split("=")[0] == varName) {
			if(arg[i].split("=").length > 1) {
				variable=arg[i].split("=")[1];
			}
			return variable;
		}
	}
	return "";
}

// класс-обёртка, явным образом обычно не создаётся
function CssClassesHandler(object) {this.object = object}

CssClassesHandler.prototype = {
	object : null,

	// возвращает все классы элемента в виде массива строк
	all : function() {
		return this.object.className.split(/\s+/);
	},

	// назначен ли элементу данный класс?
    exists : function(className) {
		var classes = this.all();
		for(var i = 0; i < classes.length; i++)
			if(classes[i] == className) return true;
		return false;
	},

    // назначает элементу класс
    add : function(className) {
		var classes = this.all();
		for(var i = 0; i < classes.length; i++)
			if(classes[i] == className) return;
		this.object.className = this.object.className + " " + className;
	},

    // удаляет класс из назначенных элементу
    remove : function(className) {
		var classes = this.all();
		var cn = "";
		for(var i = 0; i < classes.length; i++)
			if(classes[i] != className) cn = cn + " " + classes[i];
		this.object.className = cn.substr(1);
	},

    // назначает/удаляет класс в зависимости от булевского параметра state
    set : function(className, state) {
		if(state)
			this.add(className);
		else
			this.remove(className);
	},

    // назначает элементу класс, если он ещё не назначен, в противном случае удаляет
    flip : function(className) {
		if(this.exists(className))
			this.remove(className);
		else
			this.add(className);
	}
}

// функция, создающая класс-обёртку для данного элемента
function CssClasses(object) {
	return new CssClassesHandler(object);
}

function setParagInContentFullJustified() {
	var parArr = document.getElementById("content").getElementsByTagName("p");
	for (var i = 0; i < parArr.length; i++) {
		if(!(parArr[i].className == "date" || parArr[i].className == "caption" || parArr[i].getAttribute("align")))
			parArr[i].setAttribute("align", "justify");
	}
	
}

$(document).ready(function () {
	$("div.picL, div.picR").each(function() {
		this.style.width = $(this).find("img").width() + 2 + "px";
	});
});