﻿///<reference path="jquery-1.3.2-vsdoc2.js" />
var reEmail = /^.+\@.+\..+$/;
var reFloat = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/;
var reInteger = /^\d+$/;
var defaultEmptyOK = false;

$.preloadImages = function()
{
    for(var i = 0; i < arguments.length; i++)
    {
        $("<img>").attr("src", arguments[i]);
    }
}
String.prototype.endsWith = function(suffix) {
    return (this.substr(this.length - suffix.length) === suffix);
}

String.prototype.startsWith = function(prefix) {
    return (this.substr(0, prefix.length) === prefix);
}

//common helper function
function isEmpty(s) {
    return ((s == null) || (s.length == 0))
}

function isInteger(s) {
    var i;
    if (isEmpty(s))
        if (isInteger.arguments.length == 1) return defaultEmptyOK;
    else return (isInteger.arguments[1] == true);

    return reInteger.test(s)
}

function isEmail(s) {
    if (isEmpty(s))
        if (isEmail.arguments.length == 1) return defaultEmptyOK;
    else return (isEmail.arguments[1] == true);

    else {
        return reEmail.test(s)
    }
}

function isFloat(s) {
    if (isEmpty(s))
        if (isFloat.arguments.length == 1) return defaultEmptyOK;
    else return (isFloat.arguments[1] == true);

    return reFloat.test(s)
}

function QUERY_STRING(key) {
    query = window.location.search.substring(1);
    pairs = query.split("&");
    for (i = 0; i < pairs.length; i++) {
        pair = pairs[i].split("=");
        if (pair[0] == key) {
            return pair[1];
        }
    }
}

function ToggleElementDisplay(element) {
    element = document.getElementById(element);
    if (element.style.display == "") {
        element.style.display = "none";
    }
    else {
        element.style.display = "";
    }
}

function ShowPopup(url, width, height)
{
    window.open(url, 'Popup', 'height=' + height + ',width=' + width + ', scrollbars=yes');
}

function ShowPrintReport(hasSendEmail, printScheduled) {
    var obj = window.open(hasSendEmail ? "/Report/Print?sendemail=true&printScheduled=" + printScheduled : "/Report/Print?printScheduled=" + printScheduled);
}

