var errorType = "";
var error = "";

var req,process,output,responseHandler,ajaxParams;
//------------------------------------------------------------------------------
function noCache(url)
{
	var sep = (-1 < url.indexOf("?")) ? "&" : "?"	
	url = url + sep + "__=" + encodeURIComponent((new Date()).getTime());	
	return url;
}
//------------------------------------------------------------------------------
function ajaxPostRequest(url,postData)
{
	if(window.XMLHttpRequest) 
	{
		req = new XMLHttpRequest;
	}
	else if (window.ActiveXObject)
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	req.open("POST",noCache(url),true);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded;');
	
	req.onreadystatechange = getData_Callback;	
	req.send(postData);
}
//------------------------------------------------------------------------------
function ajaxGetRequest(url)
{
	if(window.XMLHttpRequest) 
	{
		req = new XMLHttpRequest;
	}
	else if (window.ActiveXObject)
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	req.open("GET",noCache(url),true);
	//req.setRequestHeader('Content-Type','application/x-www-form-urlencoded;');
	
	req.onreadystatechange = getData_Callback;	
	req.send(null);
}
//------------------------------------------------------------------------------
function getData_Callback()
{
	if(req.readyState==4)
	{		
		if(req.status==200)
		{
			//req.responseText;
			if(output == 'text')
			{
				eval(responseHandler + '(req.responseText)');
				
			}
			else if(output == 'xml')
			{
				eval(responseHandler + '(req.responseXML)');
			}
		}
	}
}
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
function validateValue( strValue, strMatchPattern ) 
{
	var objRE = new RegExp( strMatchPattern);
 	//check if string matches pattern
	return objRegExp.test(strValue);
}

//------------------------------------------------------------------------------
function errorStyle(eltObj){
	//alert("error");
	eltObj.style.background = "#FFCACA";
	//form.email.focus();
}
//------------------------------------------------------------------------------
function clearError(eltObj){
	//alert("error");
	eltObj.style.background = "#FFFFFF";
	//form.email.focus();
}

//------------------------------------------------------------------------------
function isEmpty(eltObj)
{
	
	strValue	=	trimAll(eltObj.value);
	if(strValue.length > 0)
	{
		clearError(eltObj);
		return false;
    }
	errorType = "empty";
	errorStyle(eltObj);
	return true;
}
//------------------------------------------------------------------------------
function isAlpha(eltObj)
{
	strValue	=	eltObj.value;
	pattern		=	'^[a-zA-Z]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue))
	{
		return false;
	}
	return true;
}

//------------------------------------------------------------------------------
function isNumeric(eltObj)
{
	strValue	=	eltObj.value;
	var pattern		=	'^[0-9]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue))
	{
		return false;
	}
	return true;
}
//------------------------------------------------------------------------------
function isAlphaNumeric(eltObj)
{
	if(isEmpty(eltObj)){
		errorType = "empty";
		return false;
	}
	strValue	=	eltObj.value;	
	pattern		=	'^[a-zA-Z0-9 ]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue))
	{
		errorType = "invalid";
		errorStyle(eltObj);
		return false;
	}
	clearError(eltObj);
	return true;
}
//------------------------------------------------------------------------------
function isPhone(eltObj)
{
	strValue	=	eltObj.value;
	pattern		=	'^[0-9\-()+ ]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue) || strValue.length < 10)
	{
		return false;
	}
	return true;
}
//--------------------------------------------------------------------------------
function isUsername(eltObj,lable){
	strValue = eltObj.value;
	if(isEmpty(eltObj)){
		errorType = "empty";
		return false;
	}
	pattern = '^[a-zA-Z0-9_]{3,15}$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue))
	{
		errorType = "invalid";
		errorStyle(eltObj);
		return false;
	}
	clearError(eltObj);
	return true;
}

//------------------------------------------------------------------------------
function isEmail(eltObj)
{
	if(isEmpty(eltObj)){
		errorType = "empty";
		return false;
	}
	strValue	=	eltObj.value;
	var objRE	=	/^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
	if(!objRE.test(strValue))
	{
		errorType = "invalid";
		errorStyle(eltObj);
		return false;
	}
	clearError(eltObj);
	return true;
}

//------------------------------------------------------------------------------
function trimAll(strValue)
{
   var objRegExp = /^(\s*)$/;

   //check for all spaces
   if(objRegExp.test(strValue)) 
   {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
   }
    
   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) 
   {
       //remove leading and trailing whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
   }
   return strValue;
}

String.prototype.trim = function() {
        return this.replace(/^\s+|\s+$/g,"");
    }

function selectOptionByValue(selObj, val){
    var A= selObj.options, L= A.length;
    while(L){
		--L;
		if(A[L].value == val.trim()){
			selObj.selectedIndex = L;
			L =0;
		}
    }
}

	

