/*  Validation / UI  */
function IsValidAlphaNumericText(controlName)
{
    var control = document.getElementById(controlName);
    var value = control.value.replace(/ /g, "").replace(/\n/g, "").replace(/\r/g, "");
    var isValid = false;
    //var regEx = /^\S{2,}([ ]*\S*\s*)*$/;
    //var isValid = regEx.test(control.value);
    
    if (value.length > 0)
        isValid = true;

    if (!isValid)
        control.focus();
    
    return isValid;
}

function IsValidEmailAddress(controlName)
{
    var control = document.getElementById(controlName);
    var regEx = /^[_\w\-]{2,}(\.[_\w\-]+)*@[_\w\-]{2,}(\.[_\w\-]+)*(\.[\D]{2,4})$/
    var isValid = regEx.test(control.value);
    
    if (!isValid)
        control.focus();
    
    return isValid;
}

function IsValidLength(controlName, count)
{
    var control = document.getElementById(controlName);
    var valid = control.value.length >= count;

    if (!valid)
        control.focus();

    return valid;
}

function IsValidURL(controlName)
{
    var control = document.getElementById(controlName);
    var valid = true;
    var expression = /(^(http)s{0,1}:\/\/)(www\.)*([a-z0-9]{2,}\.){1,}(\D{2,4}|\D{2}\.\{2})((\S)*)$/;
   
    valid = expression.test(control.value);
   
    if (!valid)
         control.focus();
   
    return valid;
}

function AutoFocus(controlName)
{
    var control = document.getElementById(controlName);
    if (control)
        control.focus();
}

function HideMessage()
{
    //document.getElementById("message").style.visiblity = "hidden";
    ShowMessage(true, "&nbsp;");
}

function ShowMessage(isSuccessful, message)
{
    var messageElement = document.getElementById("message");
    
    if (!isSuccessful)
        messageElement.className = "error";
    else
        messageElement.className = "";
        
    messageElement.innerHTML = message;
}

/*  Validation / UI  */

/*  AJAX  */
function GetHttpRequestObject()
{
    try
    {
        httpRequest = new XMLHttpRequest();
    }
    catch(requestError)
    {
        try
        {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(requestError)
        {
            try
            {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(requestError)
            {
                return false;
            }
        }
    }
    
    return httpRequest;
}

function BuildQueryString(form)
{
    var value;
    var queryString = "";

    for (var i = 0; i < form.elements.length; i++)
    {
        value = "";
        var control = form.elements[i];
        
        switch (control.type)
        {
            case "hidden":
            case "text":
            case "textarea":
            case "password":
                value = control.value;
                break;
            
            case "checkbox":
                if (control.checked)
                    value = 1;
                else
                    value = 0;
                break;
            
            case "button":
                value = "";
                break;

            case "select-one":
                value = control.value;
                break;

            case "select-multiple":
                for (var j = 0; j < control.options.length; j++)
                {
                    if (control.options[j].selected)
                        value = value + control.options[j].value + ",";
                }
                
                if (value.length > 1)
                    value = value.substring(0, value.length - 1);
                break;
        }

        if (value != "")
        {
            queryString = queryString + control.id + "=" + encodeURIComponent(value) + "&";
        }
    }

    return queryString.substring(0, queryString.length - 1);
}


function GetPosition(e) {
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    } 
    else {
        var de = document.documentElement;
        var b = document.body;
        cursor.x = e.clientX + 
            (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
        cursor.y = e.clientY + 
            (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
    }
    return cursor;
}


/*  AJAX  */
