function createRequestObject() 
{
	var ro;
	
	var browser = navigator.appName;
	
	if(browser == "Microsoft Internet Explorer")
	{
    	ro = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
    	ro = new XMLHttpRequest();
	}
	return ro;
}
 
function addToFavorites(urlAddress, pageName) 
{ 
	if (window.external) 
    {
    	window.external.AddFavorite(urlAddress,pageName) 
    }
    else 
    { 
    	alert("Sorry! Your browser doesn't support Bookmark Function."); 
    } 
}

function open_window(url, height, width)
{
	window.open(url, '_blank', "height="+height+", width="+width);
}

function textCounter(field, countfield, maxlimit) 
{
    if (field.value.length > maxlimit) 
    {
       field.value = field.value.substring(0, maxlimit);
    } 
    else 
    {
       countfield.value = maxlimit - field.value.length;
    }
}

function isURL (url) 
{
  var urlPattern = new RegExp("^[A-Za-z]+://[A-Za-z0-9]+\.[A-Za-z0-9]+\.[A-Za-z0-9]");
  var item=url;
   
  if(!urlPattern.test(item))
  {
   return false;
  }
  return true;
}


function validate_email(str) 
{
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	
	if (str.indexOf(at)==-1)
	{
	   return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	{
	   return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	{ 
	    return false;
	}

	if (str.indexOf(at,(lat+1))!=-1)
	{
	    return false;
	}

	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	{
	    return false;
	}

	if (str.indexOf(dot,(lat+2))==-1)
	{
	    return false;
	}
	
	if (str.indexOf(" ")!=-1)
	{
	    return false;
	}

	return true;					
}

function validate_currency(field)
{
	var currency = /^\d*(?:\.\d{0,2})?$/;
	
	if(!currency.test(field))
    {
	 return false;
    }
    
    return true;
}

function validate_number(field)
{
	var number = /^\d+$/;

	if(!number.test(field))
    {
	 return false;
    }
    
    return true;
}

function check_password(field, fieldname, minlength)
{
	minlength=parseInt(minlength);
	
 	if(field.value.length < minlength)
 	{
 		alert("Your "+fieldname+" should be at least "+minlength+" characters");
 		field.focus();
 		return false;
 	}	
 	
 	return true;
}

function check_retype_password(password, passwordfield, retypedpassword, retypedpasswordfield)
{
	if(password.value != retypedpassword.value)
	{
		alert("Your "+passwordfield+" and "+retypedpasswordfield+" are not matched");
		retypedpassword.focus();
		return false;
	}
	
	return true;
}

function check_maxlength(maxlength, field, fieldname)
{
	maxlength=parseInt(maxlength);
	
	if(field.value.length > maxlength)
	{
		alert(fieldname+" should be not more than "+maxlength+" characters");
		field.focus();
		return false;
	}
	
	return true;
}

function check_minlength(minlength, field, fieldname)
{
	minlength=parseInt(minlength);
	
	if(field.value.length < minlength)
	{
		alert(fieldname+" should be at least "+minlength+" characters");
		field.focus();
		return false;
	}
	
	return true;
}

function validate_field(type, field, fieldname, required, maxlength, minlength)
{
	/*
	 A - Anything
	 C - Currency
	 E - Email
	 N - Number
	 S - select
	 url - URL
	*/
	
	maxlength=parseInt(maxlength);
	minlength=parseInt(minlength);
	
	switch (type)
	{
		case 'A':
		 if(required == '1' || field.value !="")
		 {
		    if(field.value=='' || field.value.indexOf(" ")==0)
		    {
		    	alert("Please key in "+fieldname);
		    	field.focus();
		    	return false;
		    }
		    
		    if(minlength != 0)
		    {
		    	if(!check_minlength(minlength, field, fieldname))
		    	{
		    		return false;
		    	}
		    }
		    
		    if(maxlength != 0)
		    {
		    	if(!check_maxlength(maxlength, field, fieldname))
		    	{
		    		return false;
		    	}
		    }
		    
		    return true;
		 }
		 else
		 {
		  	return true;
		 }
		 break;
		 
		case 'C':
		 if(required == '1' || field.value !="")
		 {
			  if(validate_currency(field.value))
			  {
			  	return true;
			  }
			  else
			  {
			  	alert("Please key in a valid "+fieldname);
			  	field.focus();
			  	return false;
			  }
		 }
		 else
		 {
		  	return true;
		 }
		 break;
		 
		case 'E':
		 if(required == '1' || field.value !="")
		 {
			 if(validate_email(field.value))
			 {
			 	return true;
			 }
			 else
			 {
			 	alert("Please key in a valid "+fieldname);
			 	field.focus();
			 	return false;
			 }
		 }
		 else
		 {
		  	return true;
		 }
		 break;
		
	    case 'N':
	     if(required == '1' || field.value !="")
		 {
			  if(validate_number(field.value))
			  {
			  	return true;
			  }
			  else
			  {
			  	alert("Please key only numbers for "+fieldname);
			  	field.focus();
			  	return false;
			  }
		 }
		 else
		 {
		  	return true;
		 }
		 break;
		 
		case 'S':
		 if(required == '1')
		 {
		    if(field.value=='')
		    {
		    	alert("Please select a "+fieldname);
		    	field.focus();
		    	return false;
		    }
		    
		    return true;
		 }
		 else
		 {
		  	return true;
		 }
		 break;
		 
		case 'url':
		 if(required == '1' || field.value !="")
		 {
		  if(isURL(field.value))
		  {
		  	return true;
		  }
		  else
		  {
		  	alert("Please key in a valid "+fieldname);
		  	field.focus();
		  	return false;
		  }
		 }
		 else
		 {
		 	return true;
		 }
		 break;
	}
}


function trim(value) 
{
	return value.replace('/^\s+|\s+$/g', '');
}