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;
}

function isVisible(element){
	return $(element).style.display != "none";
}

function isEmpty(element){
	return $(element).innerHTML.match(/^\s*$/);
}

function hide(){
	for(var i = 0; i < arguments.length; i++){
		if(arguments[i] == null)
			continue;

		if(isArray(arguments[i][0])){
			for(var j = 0; j < arguments[i].length; j++)
				hide(arguments[i][j]);
		}else if(arguments[i] != ""){
			$(arguments[i]).style.display = 'none';
		}
	}
}

function show(){
	for(var i = 0; i < arguments.length; i++){
		if(arguments[i] == null)
			continue;

		if(isArray(arguments[i][0])){
			for(var j = 0; j < arguments[i].length; j++)
				show(arguments[i][j]);
		}else if(arguments[i] != ""){
			$(arguments[i]).style.display = '';
		}
	}
}

function isArray(thing){
	if(typeof thing != 'undefined' && typeof thing != 'string')
		return true;
	return false;
}

function toggle(){

	for(var i = 0; i < arguments.length; i++){
		if(arguments[i] == null)
			continue;

		if(isArray(arguments[i][0])){
			for(var j = 0; j < arguments[i].length; j++)
				toggle(arguments[i][j]);
		}else if(arguments[i] != ""){
			if( isVisible($(arguments[i])) ){
				hide($(arguments[i]));
			}else{
				show($(arguments[i]));
			}
		}
	}
}

function remove(){
	for(var i = 0; i < arguments.length; i++){
		if(arguments[i] == null)
			continue;

		if(isArray(arguments[i][0])){
			for(var j = 0; j < arguments[i].length; j++)
				remove(arguments[i][j]);
		}else if(arguments[i] != ""){
			$(arguments[i]).parentNode.removeChild($(arguments[i]));
		}
	}
}

function update(element, html){
	$(element).innerHTML = html;
}

function append(element, html){
	$(element).innerHTML += html;
}

document.getElementsByClassName = function(className, parentElement) {
	var children = ($(parentElement) || document.body).getElementsByTagName('*');
	var classReg = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var returnElements = new Array();
	
	for(i=0;i<children.length;i++){
		if(children[i].className != null && children[i].className.match(classReg)){
			returnElements.push(children[i]);
		}
	}

	if(returnElements.length==0)
		return null;

	return returnElements;
}

function setImage(element, src){
	var newImage = new Image();
	newImage.src = src;
	$(element).src = newImage.src;
}

function createImageRollover(element, src, origSrc){

	var e = $(element);
	e.rolloverImage = new Image();
	e.rolloverImage.src = src;
	
	
	if(origSrc){
		e.originalImage = new Image();
		e.originalImage.src = origSrc;
	}else if(!e.originalImage){
		e.originalImage = new Image();
		e.originalImage.src = e.src;
	}
				
	e.onmouseover = function(){				
		this.src = this.rolloverImage.src;
	}
	e.onmouseout = function(){
		this.src = this.originalImage.src;
	}
}

window.onload = function(){
	toBeHidden = document.getElementsByClassName("hide");
	hide(toBeHidden);
}

function setClass(element, className){
	$(element).className = className;
}

function removeClass(element){
	$(element).className = "";
}

function createClassRollover(element, className, origClassName){


	var e = $(element);
	e.rolloverClassName = className;
	
	if(origClassName){
		e.originalClassName = origClassName;
	}else if(!e.originalClassName){
		e.originalClassName = e.className;
	}
				
	e.onmouseover = function(){				
		this.className = this.rolloverClassName;
	}
	e.onmouseout = function(){
		this.className = this.originalClassName;
	}
}

function popup(url, w, h){
	var top = Math.max(0, (screen.height-h)/2 );
	var left = Math.max(0, (screen.width-w)/2 );
	var settings="top="+top+",left="+left+",width="+w+",height="+h+
					",scrollbars=false,resizable=false,toolbar=false,location=false,"+
					"menubar=false,status=false,directories=false";
	win = window.open(url,url,settings);
	win.window.focus();
}