
    //trim function
    function trim(str){
        var i = 0,j = str.length - 1;
        while(str.charAt(i) == ' ') i++;
        while(str.charAt(j) == ' ') j--;
        j++;
        var str = str.substring(i,j)
        for(i = 0; i < str.length; i++){
            if (str.charAt(i) != ' '){
                return str;
            }
        }
        //string only contains spaces...
        return '';
    }

    //Javascript function to disable controls (usually buttons OnClick)... has to
    //have delay (i.e setTimeout) so the click event will fire (click event
    //won't fire if the button is disabled)
    function DisableControl(control){
        setTimeout('DelayedDisableControl("' + control.id + '")',1)
    }
    function DelayedDisableControl(controlID){
        document.all[controlID].disabled = true;
    }

    //return true/false depending on regular expression
    //match (to be used to validate input in real time OnKeyPress)
	function CheckRegExConstraint(RegExMatch)
	{
        if (String.fromCharCode(window.event.keyCode).match(RegExMatch) != null){
            return true;
        }else{
            window.event.returnValue=false; return false;
        }
    }

    //Javascript function that allows only numeric characters on an input field (use OnKeyPress)
    function CheckDigitConstraint(){
        var RegExDigitMatch = /[0-9]/;
        if (CheckRegExConstraint(RegExDigitMatch)){
            return true;
        }else{
            window.event.returnValue=false; return false;
        }
    }

    //Javascript function that allows only phone characters on an input field (use OnKeyPress)
    function CheckPhoneConstraint(){
        var RegExPhoneMatch = /[0-9xX\+\-\.\(\)\ ]/;
        if (CheckRegExConstraint(RegExPhoneMatch)){
            return true;
        }else{
            window.event.returnValue=false; return false;
        }
    }
    
    //Javascript function that does not allow spaces in an input field (use OnKeyPress)
    function CheckNoSpacesConstraint(){
        var RegExNoSpacesMatch = /\w/;
        if (CheckRegExConstraint(RegExNoSpacesMatch)){
            return true;
        }else{
            window.event.returnValue=false; return false;
        }
    }

    // Don't postback when enter is pressed
    function SuppressEnter(OnKeyPressEvent){
        if (OnKeyPressEvent.type=="keypress" && OnKeyPressEvent.keyCode=="13")
        {
            event.returnValue=false; return false;
        }
    }

    //set of javascript cookie functions to make getting and setting cookies easy
    var cookiePath = '/';
    function getCookieVal( offset )
    {
    var endstr = document.cookie.indexOf ( ";", offset );

    if ( endstr == -1 )
    {
        endstr = document.cookie.length;
    } return unescape( document.cookie.substring( offset, endstr ) );
    }

    function getCookie( name )
    {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;

    while ( i < clen )
    {
        var j = i + alen;

        if ( document.cookie.substring( i, j ) == arg )
        {
        return getCookieVal ( j );
        }

        i = document.cookie.indexOf( " ", i ) + 1;

        if ( i == 0 )
        {
        break;
        }
    } return null;
    }

    function setCookie( name, value )
    {
    var argv = setCookie.arguments;
    var argc = setCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;

    document.cookie = name + "=" + escape (value) +
        ( ( expires == null ) ? "" : ( "; expires=" + expires.toGMTString() ) ) +
        ( ( path == null ) ? "" : ( "; path=" + path ) ) +
        ( ( domain == null ) ? "" : ( "; domain=" + domain ) ) +
        ( ( secure == true ) ? "; secure" : "" );
    }

    function deleteCookie ( name )
    {
    var exp = new Date();
    exp.setTime ( exp.getTime() - 1 );
    var cval = getCookie ( name );
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString() + "; path=/";
    }
    //end of cookie functions
    
    
    