
//------------------//
// Common Functions //
//------------------//

function Trim(strValue)
{
  return LTrim(RTrim(strValue));
}
  
function LTrim(strValue)
{
  var LTRIMrgExp = /^\s */;
  return strValue.replace(LTRIMrgExp, '');
}

function RTrim(strValue)
{
  var RTRIMrgExp = /\s *$/;
  return strValue.replace(RTRIMrgExp, '');
}

function GetCookie(cookieName)
{
  var rtn = "";
  var cn = cookieName + "=";
  var c = document.cookie;
  var s;
  var i;
  while(c.indexOf(" =",0)>-1) c = c.replace(" =","="); 
  var s = c.split(';');
  for(i=0;i<s.length;i++)
  {
	  if(s[i].indexOf(cn)>-1)
	  {
	    rtn = s[i].substring(s[i].indexOf(cn) + cn.length) 
	    break;
	  }
  }
  return rtn;
}


function IsNumeric(val)
{
  var validChars = "0123456789.";
  var isNum = true;
  var c;
  for (i=0;i<val.length && isNum==true;i++) 
  { 
    c = val.charAt(i); 
    if(validChars.indexOf(c)==-1) isNum = false;
  }
  return isNum;
}


function CheckFileNameForNavigation(fn)
{
  var invalidChars = "/\:*?\"<>|#&";
  var isValid = true;
  var c;
  for (i=0;i<fn.length && isValid==true;i++) 
  { 
    c = fn.charAt(i); 
    if(invalidChars.indexOf(c)>-1) isValid = false;
  }
  return isValid;
}

function CurrencyFormat(num)
{
  var rtn = new String("");
  if(!isNaN(num) && num!="")
  {
    var s = new String;
    var dec = new String("");
    var isNegative = new Boolean(false);
    var d = new Number;
    s = num.toString();
    s = s.replace(/[,]/g, "");
    if(s.lastIndexOf(".")==-1) s += ".00";
    dec = s.substring(s.lastIndexOf("."), s.length);
    s = s.replace(dec, ""); 
    d = Math.round(parseFloat(dec) * 100);
    dec = "." + d.toString(); 
    if(dec.length==2) dec += "0";    
    if(s.charAt(0)=="-")
    {
      isNegative = true;
      s = s.replace("-", "");
    }
    if(s.length<4)
    {
      rtn = s;
    }
    else
    {  
      var i = new Number;    
      var j = new Number(s.length);    
      for(i=3;i<=s.length;i+=3)
      {
        j -= 3;
        rtn = "," + s.substring(j, j + 3) + rtn; 
      }
      rtn = s.substring(0, s.length % 3) + rtn;
      if(rtn.charAt(0)==",") rtn = rtn.replace(",", "");
    }
    rtn += dec;
    if(isNegative==true) rtn = "-" + rtn;
  }  
  return rtn;
}

function BlockAmpersand()
{
  if(this.event.keyCode==38) this.event.returnValue = false;
}  


function ChkEmailAddress(eml)
{
  // Email addresses should be in *@*.* format.
  var rex=/([\w.-]{1,96})+[@]+([\w.-]{1,98})$/g;
  if(eml.match(rex)==null)
    return false;
  else
    return true;
}      


function ChkPhoneNumber(num)
{
  // Phone, fax and cell numbers should be in (xxx)xxx-xxxx format
  var rex=/\(\d{3}\)[ ]\d{3}\-\d{4}$/g;
  if(num.match(rex)==null)
    return false;
  else
    return true;
}   

function DetectBrowser()
{
  var browser;
  if(CheckThis('konqueror'))
    browser = "Konqueror";
  else if(CheckThis('safari'))
    browser = "Safari";
  else if(CheckThis('omniweb'))
    browser = "OmniWeb";
  else if(CheckThis('opera')) 
    browser = "Opera";
  else if(CheckThis('webtv'))
    browser = "WebTV";
  else if(CheckThis('icab'))
    browser = "iCab";
  else if(CheckThis('msie')) 
    browser = "Internet Explorer";
  else if(CheckThis('firefox')) 
    browser = "Firefox";
  else if(!CheckThis('compatible'))
    browser = "Netscape Navigator";
  else
    browser = "An unknown browser";
  return browser;
}

function CheckThis(str)
{
  var ua = navigator.userAgent.toLowerCase();
  return ua.indexOf(str) + 1;
}
