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 or Netscape 6.*

try {
	document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}

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 getBounds(element) {
	var left = element.offsetLeft;
	var top = element.offsetTop;
	for (var parent = element.offsetParent; parent; parent = parent.offsetParent) {
		left += parent.offsetLeft;
		top += parent.offsetTop;
	}
	return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}

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);
	}
}

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");
	}
}

