	// helper for various purpose

	// some helper functions for string validation
	var numb = '0123456789';
	var lwr = 'abcdefghijklmnopqrstuvwxyz';
	var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

	function isValid(parm,val) 
	{
		if (parm == "") return false;
		for (i=0; i<parm.length; i++) {
			if (val.indexOf(parm.charAt(i),0) == -1) return false;
		}
		return true;
	}

	function isNum(parm) {return isValid(parm,numb);}
	function isLower(parm) {return isValid(parm,lwr);}
	function isUpper(parm) {return isValid(parm,upr);}
	function isAlpha(parm) {return isValid(parm,lwr+upr);}
	function isAlphanum(parm) {return isValid(parm,lwr+upr+numb);}

	function rand ( n )
	{
		return ( Math.floor ( Math.random ( ) * n + 1 ) );
	}
	
	// KL, add element with given css class name
	// used due to differneces between the browser engines
	function createElement(type, className, addAttribute ) 
	{
	   var element = null;

	   try {
	      // First try the IE way; if this fails then use the standard way
		  if ( addAttribute ) {
			element = document.createElement('<'+type+' class="' + className + '" ' + addAttribute + '>');
		  } else {
			element = document.createElement('<'+type+' class="' + className + '">');
		  }
	   } catch (e) {
	      // Probably failed because we’re not running on IE
	   }
	   if (!element) {
			element = document.createElement(type);
			element.setAttribute('class', className);
	   }
	   return element;
	}
	
	function zeroPad(num,count)
	{
		var numZeropad = num + '';
		while(numZeropad.length < count) {
			numZeropad = "0" + numZeropad;
		}
		return numZeropad;
	}		

	function getObjectLeft(elem)  {
		var result = 0;
		if (elem.offsetLeft) {
			result = elem.offsetLeft;
		}
		return result;
	}

	function getObjectTop(elem)  {
		var result = 0;
		if (elem.offsetTop) {
			result = elem.offsetTop;
		}
		return result;
	}

	// Retrieve the rendered width of an element
	function getObjectWidth(elem)  {
		var result = 0;
		if (elem.offsetWidth) {
			result = elem.offsetWidth;
		} else if (elem.clip && elem.clip.width) {
			result = elem.clip.width;
		} else if (elem.style && elem.style.pixelWidth) {
			result = elem.style.pixelWidth;
		}
		return parseInt(result);
	}

	// Retrieve the rendered height of an element
	function getObjectHeight(elem)  {
		var result = 0;
		if (elem.offsetHeight) {
			result = elem.offsetHeight;
		} else if (elem.clip && elem.clip.height) {
			result = elem.clip.height;
		} else if (elem.style && elem.style.pixelHeight) {
			result = elem.style.pixelHeight;
		}
		return parseInt(result);
	}

