/*

function list
1.  isEmailValid(email)
2.  isEmailInDB(email,userid,subdir,user) //if for new login, pass userid=0, otherwise passuserid to filter out,
    (both uer and haulier)           //if in subdirectory, pass subdir=1, otherwise in root, pass subdir=0
                                     //if user==1, this is to check user, 0, check haulier
3.  isNameInDB(name,userid,subdir,user)   //check if userName already in DB

4. isNum(val)

5.addCommas(nStr) //add comma to the number string
*/

function getexpirydate( nodays){
         var UTCstring;
         Today = new Date();
         nomilli=Date.parse(Today);
         Today.setTime(nomilli+nodays*24*60*60*1000);
         UTCstring = Today.toUTCString();
         return UTCstring;
}
function getcookie(cookiename) {
         var cookiestring=""+document.cookie;
         var index1=cookiestring.indexOf(cookiename);
         if (index1==-1 || cookiename=="") return "";
         var index2=cookiestring.indexOf(';',index1);
         if (index2==-1) index2=cookiestring.length;
             return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}
function setcookie(name,value,duration){

        cookiestring=name+"="+escape(value)+";EXPIRES="+getexpirydate(duration);
        document.cookie=cookiestring;
         if(!getcookie(name)){
             return false;
             }
             else{
             return true;
             }

}


function isEmailValid(email)
{
     if(email.indexOf(".")< 0 || email.indexOf("@")< 0)
     {
      return false;
     }else
     {
      return true;
     }

}

function isHEX(val)
{
        val=val.toString();
        if(val=="") return true;
        if(val.length==0)
        return false;
        for(var n=1;n<val.length;n++)
        {
                if(! ( (val.substring(n,n+1)>="0" && val.substring(n,n+1)<="9")
                     || (val.substring(n,n+1)=="a")
                     || (val.substring(n,n+1)=="b")
                     || (val.substring(n,n+1)=="c")
                     || (val.substring(n,n+1)=="d")
                     || (val.substring(n,n+1)=="e")
                     || (val.substring(n,n+1)=="f")
                     || (val.substring(n,n+1)=="A")
                     || (val.substring(n,n+1)=="B")
                     || (val.substring(n,n+1)=="C")
                     || (val.substring(n,n+1)=="D")
                     || (val.substring(n,n+1)=="E")
                     || (val.substring(n,n+1)=="F")
                     )
                )
                {
                 return false;
                }
        }
        return true;
}

function isNum(val){

        val=val.toString();
        if(val=="") return true;
        if(val.length==0)
        return false;
        for(var n=0;n<val.length;n++)
        {
              if((val.substring(n,n+1)<"0" || val.substring(n,n+1) >"9")
               && !(val.substring(n,n+1)==",")  && !(val.substring(n,n+1)=="."))
               {
                 return false;
               }

        }
        return true;
}




             function GetXmlHttpObject()
             {
                  var objXMLHttp=null
                  if (window.XMLHttpRequest)
                  {
                  objXMLHttp=new XMLHttpRequest()
                  }
                  else if (window.ActiveXObject)
                  {
                  objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
                  }
                  return objXMLHttp
             }

             var xmlHttpEmail
             function isEmailInDB(email,userid,subdir,user)      //used to check email in time
             {
                  xmlHttpEmail=GetXmlHttpObject();
                  if (xmlHttpEmail==null)
                  {
                  alert ("Browser does not support HTTP Request")
                  return
                  }

                  if(subdir>0)
                  {
                    var url="../chkEmailInDB.php"
                  }else
                  {
                    var url="chkEmailInDB.php"
                  }

                  url=url+"?q="+email
                  if(userid>0)
                  {
                   url=url+"&userid="+userid;
                  }

                  if(user==1)
                  {
                   url=url+"&role=users";
                  }else
                  {
                   url=url+"&role=hauliers";
                  }


                  url=url+"&sid="+Math.random()
                  xmlHttpEmail.onreadystatechange=stateChangedForEmail
                  xmlHttpEmail.open("GET",url,true)
                  xmlHttpEmail.send(null)
             }


             function stateChangedForEmail()
             {

                    if (xmlHttpEmail.readyState==4 || xmlHttpEmail.readyState=="complete")
                    {
                        str=xmlHttpEmail.responseText;
                        if(str>0)
                        {
                           alert ("Email already existed in our system, you can not use this email again again!\nPlease login with your email and password or register with another email!\nThanks");
                           return;
                        }
                    }
             }

             var xmlHttpName
             function isNameInDB(name,userid,subdir,user)
             {
                  xmlHttpName=GetXmlHttpObject();
                  if (xmlHttpName==null)
                  {
                  alert ("Browser does not support HTTP Request")
                  return
                  }

                  if(subdir>0)
                  {
                   var url="../chkNameInDB.php"
                  }else
                  {
                   var url="chkNameInDB.php"
                  }

                  url=url+"?q="+name
                  if(userid>0)
                  {
                   url=url+"&userid="+userid;
                  }

                  if(user==1)
                  {
                   url=url+"&role=users";
                  }else
                  {
                   url=url+"&role=hauliers";
                  }


                  url=url+"&sid="+Math.random()
                  xmlHttpName.onreadystatechange=stateChangedForName
                  xmlHttpName.open("GET",url,true)
                  xmlHttpName.send(null)
             }

             function stateChangedForName()
             {
                    if (xmlHttpName.readyState==4 || xmlHttpName.readyState=="complete")
                    {
                        str=xmlHttpName.responseText;
                        if(str>0)
                        {
                           alert ("User name already existed in our system, please register with another name!\nThanks");
                           return;
                        }
                    }
             }

             function getFutureDate(days)
             {
                      var myDate=new Date()
                      myDate.setDate(myDate.getDate()+ parseInt(days))
                      return myDate;
             }

             function setCertainDate(year,month,day)
             {
                      var myDate=new Date()
                      myDate.setFullYear(parseInt(year),parseInt(strip0(month))-1,parseInt(strip0(day)))
                      return myDate;
             }

             function strip0(str)
             {
                      if(str.substr(0,1)=="0")
                      {
                         return str.substr(1,1);
                      }else
                      {
                       return str;
                      }
             }


             function addCommas(nStr)
{
        nStr += '';
        x = nStr.split('.');
        x1 = x[0];
        x2 = x.length > 1 ? '.' + x[1] : '';
        var rgx = /(\d+)(\d{3})/;
        while (rgx.test(x1)) {
                x1 = x1.replace(rgx, '$1' + ',' + '$2');
        }
        return x1 + x2;
}

function removeCommas(aNum) {

//remove any commas

aNum=aNum.replace(/,/g,"");

//remove any spaces

aNum=aNum.replace(/\s/g,"");

return aNum;

}//end of removeCommas(aNum)




/*******************************************************************/
/***                                                             ***/
/***   Tokenizer.js - JavaScript String Tokenizer Function       ***/
/***                                                             ***/
/***   Version   : 0.2                                           ***/
/***   Date      : 01.05.2005                                    ***/
/***   Copyright : 2005 Adrian Zentner                           ***/
/***   Website   : http://www.adrian.zentner.name/               ***/
/***                                                             ***/
/***   This library is free software. It can be freely used as   ***/
/***   long as this this copyright notice is not removed.        ***/
/***
/***var myString = "These, are, comma, separated, tokens, and,   ***/
/***  whitespaces, will, be, omitted";                           ***/

/***var tokens = myString.tokenize(",", " ", true);              ***/

/***for(var i=0; i<tokens.length; i++)                           ***/
/***  window.alert(i + ". token: " + tokens[i]);                 ***/
/*******************************************************************/

String.prototype.tokenize = tokenize;

function tokenize()
  {
     var input             = "";
     var separator         = " ";
     var trim              = "";
     var ignoreEmptyTokens = true;

     try {
       String(this.toLowerCase());
     }
     catch(e) {
       window.alert("Tokenizer Usage: string myTokens[] = myString.tokenize(string separator, string trim, boolean ignoreEmptyTokens);");
       return;
     }

     if(typeof(this) != "undefined")
       {
          input = String(this);
       }

     if(typeof(tokenize.arguments[0]) != "undefined")
       {
          separator = String(tokenize.arguments[0]);
       }

     if(typeof(tokenize.arguments[1]) != "undefined")
       {
          trim = String(tokenize.arguments[1]);
       }

     if(typeof(tokenize.arguments[2]) != "undefined")
       {
          if(!tokenize.arguments[2])
            ignoreEmptyTokens = false;
       }

     var array = input.split(separator);

     if(trim)
       for(var i=0; i<array.length; i++)
         {
           while(array[i].slice(0, trim.length) == trim)
             array[i] = array[i].slice(trim.length);
           while(array[i].slice(array[i].length-trim.length) == trim)
             array[i] = array[i].slice(0, array[i].length-trim.length);
         }

     var token = new Array();
     if(ignoreEmptyTokens)
       {
          for(var i=0; i<array.length; i++)
            if(array[i] != "")
              token.push(array[i]);
       }
     else
       {
          token = array;
       }

     return token;
  }

  function popup(mylink, windowname)
{
         if (! window.focus)return true;
         var href;
         if (typeof(mylink) == 'string')
            href=mylink;
         else
            href=mylink.href;
         window.open(href, windowname, 'width=400,height=400,scrollbars=yes');
         return false;
}

function replaceAll( str, from, to ) {
    var idx = str.indexOf( from );


    while ( idx > -1 ) {
        str = str.replace( from, to );
        idx = str.indexOf( from );
    }

    return str;
}