function addEv(obj, type, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(type, fn, false);
		return true;
	}
	else if (obj.attachEvent) {
		obj['e'+type+fn] = fn;
		obj[type+fn] = function() { obj['e'+type+fn]( window.event );}
		var r = obj.attachEvent('on'+type, obj[type+fn]);
		return r;
	}
	else {
		obj['on'+type] = fn;
		return true;
	}
}

function setOpacityStd(object, opacity) {
	if (opacity == 100)
		object.style.opacity = 1.0;
	else
		object.style.opacity = opacity/100;
}

var setOpacity = setOpacityStd;

function abs(v) {
	return (v > 0) ? v : -v;
}

function addClass(elem, cls) {
	if (elem.classList)
		elem.classList.add(cls);
	else {
		if (elem.className.indexOf(cls) == -1) {
			elem.className += ' ';
			elem.className += cls;
		}
	}
}

// if (!Array.prototype.contains) {
// 	Array.prototype.contains = function(obj) {
// 		var i = this.length;
// 		while (i--) {
// 			if (this[i] === obj) {
// 				return true;
// 			}
// 		}
// 		return false;
// 	}
// }

// if (!Array.prototype.indexOf) {
// 	Array.prototype.indexOf = function(obj) {
// 		var i = this.length;
// 		while (i--) {
// 			if (this[i] === obj) {
// 				return i;
// 			}
// 		}
// 		return -1;
// 	}
// }

function removeClass(elem, cls) {
	if (elem.classList)
		elem.classList.remove(cls);
	else {
		var target = elem.className.indexOf(cls);
		if (target != -1) {
			var result = elem.className.slice(0, target) + elem.className.slice(target + cls.length);
			elem.className = result.replace(/\s+/g,' ');
		}
	}
}

// function toggleClass(elem, class) {
// 	if (elem.classList)
// 		elem.classList.toggle(class);
// 	else {
// 		var classes = elem.className.replace(/\s+/g,' ').split(' ');
// 		
// 		var target = classes.indexOf(class);
// 		if (target == -1)
// 			classes.push(class);
// 		else
// 			classes = classes.slice(target, target);
// 		
// 		elem.className = classes.join(' ');
// 	}
// }

