var Cache = new Object();

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}


function getCheckedValue(radioObj) {
	if(!radioObj)
		return false;
		
	var radioLength = radioObj.length;
	
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return false;
}

function get(id)
{
return (Cache[id]) ? Cache[id] : Cache[id] = document.getElementById(id);
}


function showObj(obj)
{
get(obj).style.display='';		
}

function hideObj(obj)
{
get(obj).style.display='none';	
}

function clearValue(obj,pattern)
{
	if(get(obj).value==pattern)get(obj).value='';
}

function toggle(obj)
{
 if(get(obj).style.display=='none'){
 	get(obj).style.display=''; 
 }else get(obj).style.display='none'
}

function isdefined( variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

function checkStr(obj,strtype)
{
	

	switch (strtype)
	{
		case 'mixed' :
		
		if(obj.value.match('^([à-ÿÀ-ßa-zA-Z0-9¸¨éÉªº¯¿²³\'\.,]|\s|\xFC|¹|#|\n|\r|/|\\|\x23|\x20|\s|\-){5,200}$')) {
				 
		obj.style.border="1px dotted green";
			return true; 
		 } else obj.style.border="1px dashed red";
		break;
		
		case 'stdtxt':
		if (obj.value.match(/^([à-ÿÀ-ßa-zA-Z¸¨éÉªº¯¿²³\-\']|\x20){3,120}$/)) {
			obj.style.border="1px dotted green";
		
			return true; 
		 } else obj.style.border="1px dashed red";
		break;
		
		case 'username':
		if (obj.value.match(/^[a-zA-Z0-9]{5,8}$/)) {
			obj.style.border="1px dotted green";
		
			return true; 
		 } else obj.style.border="1px dashed red";
		break;
		
		case 'nic-handle':
		if (obj.value.match(/^[a-zA-Z0-9\-]{6,11}$/)) {
			obj.style.border="1px dotted green";
		
			return true; 
		 } else obj.style.border="1px dashed red";
		break;
		
		case 'email':
		if (obj.value.match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/)) {
			obj.style.border="1px dotted green";
		
			return true; 
		 } else obj.style.border="1px dashed red";
		break;
		
		case 'zip':
		if (obj.value.match(/^[0-9]{5,10}$/)) {
			obj.style.border="1px dotted green";
		
			return true; 
		 } else obj.style.border="1px dashed red";
		break;
		
		case 'phone':
		if (obj.value.match(/^([0-9]|\s|-|\+|\(|\)|\x20){5,}$/) ) {
			obj.style.border="1px dotted green";
		
			return true; 
		 } else obj.style.border="1px dashed red";
		break;
	}
	
	return false;
}