function setFormErrors(ids,enableFields) {
	var errorDivs = new Array();
  var enableDivs = new Array();
  for(var i = 0 ; i < ids.length ; i++) {
    errorDivs[errorDivs.length] = document.getElementById(ids[i]);
  }
  for(var i = 0 ; i < enableFields.length ; i++) {
    enableDivs[enableDivs.length] = document.getElementById(enableFields[i]);
    enableDivs[enableDivs.length-1].style.visibility = 'visible';
  }
  for(var i = 0 ; i < errorDivs.length ; i++) {
    errorDivs[i].errorDivs = errorDivs;
    errorDivs[i].enableDivs = enableDivs;
	  errorDivs[i].className += " formError";
	  errorDivs[i].onclick = removeFormErrors;
  }
}

function removeFormErrors(ev) {
	var field = getTargetFromEvent(ev);
	for(var i = 0 ; i < field.errorDivs.length ; i++) {
		var classname = field.errorDivs[i].className;
		classname = classname.toString();
		classname = classname.replace('formError','');
		field.errorDivs[i].className = classname;
		field.errorDivs[i].onclick = null;
	}
	for(var i = 0 ; i < field.enableDivs.length ; i++) {
	  field.enableDivs[i].style.visibility = 'hidden';
	}
}

function setFormError(id) {
	var field = document.getElementById(id);
  field.className += " formError";
  field.onclick = removeFormError;
}

function removeFormError(ev) {
	var field = getTargetFromEvent(ev);
	var classname = field.className;
	classname = classname.toString();
	classname = classname.replace('formError','');
	field.className = classname;
	field.onclick = null;
}

function getTargetFromEvent(ev) {
	var targ;
	if (!ev) var ev = window.event;
	if (ev.target) targ = ev.target;
	else if (ev.srcElement) targ = ev.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	return targ;
}
function getParentByClassName(node,classname) {
	if(node) {
		if(node.className == classname) {
			return node;
		}
		else {
			if(node.parentNode) {
				return getParentByClassName(node.parentNode,classname);
			}
			else {
				return false;
			}
		}
	}
	else {
		return false;
	}
}
function getParentByTagName(node,tagname) {
	tagname = tagname.toUpperCase();
	if(node) {
		if(node.tagName == tagname) {
			return node;
		}
		else {
			if(node.parentNode) {
				return getParentByTagName(node.parentNode,tagname);
			}
			else {
				return false;
			}
		}
	}
	else {
		return false;
	}
}

function findPosition(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function setOpacity(obj,value) {
	if(document.all) {
    obj.style.filter = "alpha(opacity=" + (value*10) + ")";
	}
	else {
    obj.style.opacity = (value / 10);
	}
}

function getOpacity(obj) {
	if(obj) {
		if(document.all) {
		  var filter = obj.style.filter;
			var returnValue = filter.substr(14,(filter.length - 15))/10;
			return returnValue;
		}
		else {
			return obj.style.opacity*10;
		}
	}
}

function padDigits(n, totalDigits)
{
	n = n.toString();
	var pd = '';
	if (totalDigits > n.length)
	{
	  for (var i = 0 ; i < (totalDigits-n.length) ; i++)
	  {
	    pd += '0';
	  }
	}
	return pd + n.toString();
}

function getMousePosition(e) {
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	return [posx,posy];
}

function makeDragable(activator,divs) {
	activator.divs = divs;
	activator.onmousedown = function(ev) {
		for(var i = 0 ; i < this.divs.length ; i++) {
			this.divs[i].origPos = findPosition(this.divs[i]);
		}
	  window.origMousePos = getMousePosition(ev);
	  window.divs = this.divs;
	  window.onmousemove = function(ev) {
	    var currentMousePos = getMousePosition(ev);
	    for(var i = 0 ; i < this.divs.length ; i++) {
				this.divs[i].style.left = this.divs[i].origPos[0] + (currentMousePos[0] - this.origMousePos[0]);
	      this.divs[i].style.top = this.divs[i].origPos[1] + (currentMousePos[1] - this.origMousePos[1]);
	    }
	  }
	  return false;
	}
	window.onmouseup = function() {
	  window.origMousePos = null;
	  if(window.divs) {
		  for(var i = 0 ; i < window.divs.length ; i++) {
		    window.divs[i].origPos = null;
		  }
		}
	  window.onmousemove = null;
	  return false;
	}
}
