/////////////////String Functions//////////////////////////////
function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	//this.replace(/^\s+|\s+$/, '');
	return LTrim(RTrim(value));
	
}
///////////////////////////////////////////////////////////////////////
///////////////////Date Functions//////////////////////////
function GetUserDate(d)
{
	var day=d.getDate();
    var month=d.getMonth() + 1;
    var year=d.getFullYear();
    
    if (day.toString().length == "1")
    {day = "0" + day;}
    
    if (month.toString().length == "1")
    {month = "0" + month;}

    return month + "/" + day + "/" + year 
}
function ValidateDate(value) 
{
    var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
    if ((value.match(RegExPattern)) && (value!='')) {
        return true
    } 
    else 
    {
		return false
    } 
}
function FormatXMLDate(d)
{
	var Slices , day , month , year , Result;
	Result = "";
	if (d.length > 0)
	{
		Slices = d.split("-");
		day = Slices[2].substring(0,2);
		month = Slices[1];
		year = Slices[0];
		Result = month + "/" + day + "/" + year;
    }
    return Result
}
///////////////////////////////////////////////////////////////////////
/////////////Caret Functions/////////////////////////////
function getCaretPosition(tBox)
{
	if (typeof tBox.selectionStart != "undefined")
	{return tBox.selectionStart;}
	else
	{
		if (document.selection)
		{return Math.abs(document.selection.createRange().moveStart("character",-100));}
	}
}
///////////////////////////////////////////////////////////////////////
/////////////Numeric Functions/////////////////////////////
function IsNumeric(sText)
{
    var ValidChars = "0123456789.";
    var IsNumber=true;
    var Char;
    
    for (i = 0; i < sText.length && IsNumber == true; i++) 
    { 
        Char = sText.charAt(i); 
        if (ValidChars.indexOf(Char) == -1) 
        {IsNumber = false;}
    }
    return IsNumber;
}
///////////////////////////////////////////////////////////////////////
/////////////Money Functions/////////////////////////////
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);
}
///////////////////////////////////////////////////////////////////////
/////////////////Ajax Functions////////////////////////////
function CreateXmlHttp()
{
    if (window.XMLHttpRequest) 
	{ // Mozilla, Safari, ...
	    xmlhttp = new XMLHttpRequest();
	    return xmlhttp;
	} 
	else if (window.ActiveXObject) 
	{ // IE
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    return xmlhttp;
	}
	else
	{
		// Browser unknown		
		alert('Browser unknown');
	}	
}

function GetProjectPath()
{
    var protocol , requestUrl , port , ProjectName
	
	protocol = document.location.protocol;
	if ( location.port == "80" || location.port == "" )
	{
	    port = "";
	    ProjectName = "/ATCMuser/";
	}
	else
	{
	    port = ":" + location.port;
	    ProjectName = "/";
	}	
	return requestUrl = protocol + '//' + document.domain + port + ProjectName;
}
function ConvertStringToHTML(div,content)
{
    var oscript;
    var oscriptCall;
    var oscriptResult;
    
    if (content != null)
    {
		while( oscript = content.match("<script.*?>.*?<\/script>"))
		{
			oscriptCall = oscript[0].replace("<script>","").replace("</script>","")
			oscriptResult = eval(oscriptCall);
			content = content.replace(oscript[0], oscriptResult);
		}
    }
    document.getElementById(div).innerHTML=content;
}
///////////////////////////////////////////////////////////////////////
/////////////////KeyBoard Functions////////////////////////////
function CheckEnterKey(e,btn)
{
	var characterCode
	if(e.which)
	{characterCode = e.which}
	else
	{characterCode = e.keyCode}
	if(characterCode == 13)
	{
		//btn.click();
		eval(btn.attributes["onclick"].value)
		return false
	}
	else
	{return true}
}
///////////////////////////////////////////////////////////////////////
//////////////////////Validate Email///////////////////////////////
function ValidateEmail(value)
{
	var result
	var strREG = /\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
    var reg = new RegExp(strREG)    
    result = reg.exec(value)
    if(result == null)
		return false
    else
		return true
}