var current_hash;		
//
function checkAll(ref) {  
  fmobj=ref.form;
  for (var i=0;i<fmobj.elements.length;i++) {
    var e = fmobj.elements[i];
    if ( (e != ref) && (e.type=='checkbox') && (!e.disabled) ) {
      e.checked = ref.checked;
    }
  }
}
//
function __cancelBubble(e) {
  if (!e) var e = window.event;
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
}

// 
function getRandomNum(lbound, ubound) {
return (Math.floor(Math.random() * (ubound - lbound)) + lbound);
}
function getRandomChar(number, lower, upper, other) {
var numberChars = "0123456789";
var lowerChars = "abcdefghijklmnopqrstuvwxyz";
var upperChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var otherChars = "`~!@#$%^&*()-_=+[{]}\\|;:'\",<.>/? ";
var charSet;
if (number == true)
charSet += numberChars;
if (lower == true)
charSet += lowerChars;
if (upper == true)
charSet += upperChars;
if (other == true)
charSet += otherChars;
return charSet.charAt(getRandomNum(0, charSet.length));
}
function getPassword(length) {
var rc = "";
for (var idx = 0; idx < length; ++idx) {
rc = rc + getRandomChar(true, true, true, false);
}
return rc;
}


function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function showBox(e,id,clean) {   
   if (!e) e=window.event;	
   if (browser.isIE) window.event.cancelBubble = true;    
   if (browser.isNS) e.stopPropagation(); 
	if (clean) document.getElementById(id).innerHTML=null;
	
	temp=document.getElementById(id).style.display;
	
	if ((!temp) || (temp=='none')) {
		hideAllOfClass('box',document);
		document.getElementById(id).style.display='block';
		return true;
	}
	else { 
		document.getElementById(id).style.display='none';
		return false;
		}	
}

function hideAllOfClass(c,node) {
	temp=getElementsByClass(c,node,'div');
	for ( i=0;i<temp.length;i++ ) {
		temp[i].style.display='none';
	}
}
							
//function appendHash(string) {
	//window.location.hash=window.location.hash+'&'+string;
//}



function setContent(element,msg) { 
	document.getElementById(element).innerHTML=msg;
}


function checkenter(e)
{
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;

if (keycode == 13)
   { 
   return true;
   }
else
   return false;
}

// -------------------------------------------------------------------
function hasOptions(obj) {
	if (obj!=null && obj.options!=null) { return true; }
	return false;
	}

function moveSelectedOptions(from,to) {
	// Unselect matching options, if required
	if (arguments.length>3) {
		var regex = arguments[3];
		if (regex != "") {
			unSelectMatchingOptions(from,regex);
			}
		}
	// Move them over
	if (!hasOptions(from)) { return; }
	for (var i=0; i<from.options.length; i++) {
		var o = from.options[i];
		if (o.selected) {
			if (!hasOptions(to)) { var index = 0; } else { var index=to.options.length; }
			to.options[index] = new Option( o.text, o.value, false, false);
			}
		}
	// Delete them from original
	for (var i=(from.options.length-1); i>=0; i--) {
		var o = from.options[i];
		if (o.selected) {
			from.options[i] = null;
			}
		}	
	from.selectedIndex = -1;
	to.selectedIndex = -1;
	}

// -------------------------------------------------------------------
// moveAllOptions(select_object,select_object[,autosort(true/false)[,regex]])
//  Move all options from one select box to another.
// -------------------------------------------------------------------
function selectAllOptions(obj) {
	if (!hasOptions(obj)) { return; }
	for (var i=0; i<obj.options.length; i++) {
		obj.options[i].selected = true;
		}
	}

function moveAllOptions(from,to) {
	selectAllOptions(from);
	moveSelectedOptions(from,to);		
}


