function getRadioValue(name)
{
	var els = document.getElementsByName(name);
	for(var i = 0; i < els.length; i++)
	{
		if(els[i].checked)
			return els[i].value;
	}
	return 0;
}

function setRadioValue(name, value)
{
	var els = document.getElementsByName(name);
	for(var i = 0; i < els.length; i++)
	{
		if(els[i].value == value)
		{
			els[i].checked = true;
			return;
		}
	}
}


function setSelect(sel, val, forceLoad)
{
	if(sel)
	{
		for(var i = 0; i < sel.options.length; i++)
		{
			if(sel.options[i].value == val)
			{
				sel.selectedIndex = i;
				return;
			}
		}
		
		if(forceLoad && forceLoad.length > 0)
		{
			var opt = document.createElement('option');
			opt.setAttribute('value', val);
			opt.appendChild(document.createTextNode(forceLoad));
			sel.appendChild(opt);
			return setSelect(sel, val);
		}
		sel.selectedIndex = 0;		
	}
}

function getSelVal(selid)
{
	var ret = 0;
	var sel = document.getElementById(selid);
	if(sel && sel.selectedIndex >= 0 && sel.selectedIndex < sel.options.length)
		ret = sel.options[sel.selectedIndex].value;
	return ret;
}

function countWords(str)
{
	return str.replace(/[^A-Za-z0-9]+/gi, ' ').split(' ').length;
}

function checkEnter(e, enterfunc)
{ //e is event object passed from function invocation
	var characterCode;
	
	if(e && e.which != null) //if which property of event object is supported (NN4)
	{
		e = e;
		characterCode = e.which; //character code is contained in NN4's which property
	}
	else
	{
		e = event;
		characterCode = e.keyCode; //character code is contained in IE's keyCode property
	}
	
	if(characterCode == 13)
	{ //if generated character code is equal to ascii 13 (if enter key)
		if(enterfunc)
			enterfunc();
		return false;
	}
	else
		return true;
}

function formatDate(dt)
{
  	var tempDate = dt.split('-');

	var ret = dt;
	if(tempDate.length == 3)
  		ret = tempDate[1]+'/'+tempDate[2]+'/'+tempDate[0].substr(2);
	
	return ret;
}

function jsFloatFix(num)
{
	//trying to fix 1.4609999999999
	var str = num.toString();
	
	var decIndex = str.indexOf('.');
	if(str.length > 15 && decIndex >= 0)
	{
		var last = null;
		var goti = decIndex;
		for(var i = str.length-1; i > decIndex; i--)
		{
			if(!last)
				last = (str[i] == '9' ? '9' : '0');
			else
			{
				if(str[i] != last)
				{
					goti = i;
					str = str.substring(0, i+2);
					break;
				}
			}		
		}
		
		var mod = Math.pow(10, (goti-decIndex));
		return Math.round(parseFloat(str)*mod)/mod;
	}
	
	return num;
}

function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '$' + num + '.' + cents);
}
function formatPhone(phone, ext)
{
	return phone.substring(0, 3)+'-'+phone.substring(3, 6)+'-'+phone.substring(6)+(ext?' x'+ext:'');
}

function validateWeb(str)
{
	if(str.length)
	{
		if(str.substring(0, 7) == 'http://' || str.substring(0, 8) == 'https://')
			return str;
		else
			return 'http://'+str;
	}
	return '';
}

function validatePhone(str)
{
	var ret = '';
	
	var stripped = str.replace(/[\(\)\.\-\ ]/g, '');
	//strip out acceptable non-numeric characters
	if(isNumeric(stripped)) 
	{
		if(stripped.length == 10)
			ret = stripped;
		else if(stripped.length == 11 && stripped[0] == '1')
			ret = stripped.substring(1);
	}
	
	return ret;
}

function validateEmail(str)
{
	var ret = '';
	
	var emailFilter=/^.+@.+\..{2,6}$/;///;//.{2,3,4,6}$/;
	if(emailFilter.test(str)) 
	{ 
		var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
		if(!str.match(illegalChars))
			ret = str;
	}
	
	return ret;
}

function validateCurrency(str)
{
	var ret = str.replace(/\$/, '');
	
	if(ret.length == 0)
		ret = 0;
	else
	{
		ret = parseFloat(ret);
		if(isNaN(ret))
			ret = null;
	}
	
	return ret;
}

var NUMBERS = '0123456789';
var LOWERS = 'abcdefghijklmnopqrstuvwxyz';
var UPPERS = '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 isNumeric(parm) {return isValid(parm,NUMBERS);}
function isLower(parm) {return isValid(parm,LOWERS);}
function isUpper(parm) {return isValid(parm,UPPERS);}
function isAlpha(parm) {return isValid(parm,LOWERS+UPPERS);}
function isAlphanum(parm) {return isValid(parm,LOWERS+UPPERS+NUMBERS);}