Utilities = {};

//example : var js_file=new Array("js/Ajax.js","js/AjaxUpdater.js","js/HTTP.js","js/Utilities.js","js/errorHandler.js");
//Utilities.inclideJS(js_file);
Utilities.includeJS = function(filepaths){
	for(var i=0; i < filepaths.length; i++)
		document.write('<script type="text/javascript" src="'+filepaths[i]+'"></script>');
}

Utilities.includeCSS = function(filepaths){
	for(var i=0; i < filepaths.length; i++)
		document.write('<ink href="'+filepaths[i]+'" rel="stylesheet" type"text/css" />');;
}

Utilities.getElement = function(i){
	return document.getElementById(i);
}

//use for debugging, put the error msg to div named 'debug'
Utilities.debug = function(val){
	this.getElement('debug').innerHTML +=val+"</br>";
}

//change the visibility of an object
Utilities.toggle = function(id){
	this.getElement(id).style.display = (this.getElement(id).style.display == '')? 'none' : '';
}

//example: var title = Utilities.createElement("div",{id:'title', className:'title',innerHTML:'title'});
Utilities.createElement = function(e, obj){
	var element= document.createElement(e);
	for(prop in obj)
		element[prop] = obj[prop];
		
	return element;
}

//example: var title = Utilities.createElement("div",{id:'title', className:'title',innerHTML:'title'});
//Utilities.appendChild(document.body,title);
Utilities.appendChild = function(){
	if(this.appendChild.arguments.length>1){
		var a=this.appendChild.arguments[0];
		for(i=1; i<this.appendChild.arguments.length;i++)
			if(arguments[i])
				a.appendChild(this.appendChild.arguments[i]);
		return a;
	}else{
		return null;
	}
}

Utilities.removeChildren = function(node){
	if(node==null)
		return;
		
	while(node.hasChildNodes())
		node.removeChild(node.firstChild);
}

Utilities.copyNode = function(fromNode, toNode)
{
	for (var i=0; i<fromNode.childNodes.length; i++) {
	   var fromChild = fromNode.childNodes[i];
	   var toChild = toNode.appendChild(fromChild);
	   this.copyNode(fromChild, toChild);
	}

}


Utilities.addListener = function(obj, eventName, listener){
	if(obj.attachEevent)
		obj.attachEvent("on"+eventName, listener);
	else if(obj.addEventListener)
		obj.addEventListener(eventName, listener, false);
	else
		return false;
	
	return true;
}

Utilities.removeListener = function(obj, eventName, listener){
	if(obj.detachEvent)
		obj.detachEvent("on"+eventName, listener);
	else if(obj.removeEventListener)
		obj.removeEventListener(eventName, listener, false);
	else
		return false;
		
	return true;
}

Utilities.changeOpac = function (opacity, id){
	var object = Utilities.getElement(id).style;
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

