﻿
/*************************************************************************************/
/*  Popups                                                                           */
/*************************************************************************************/

function openPopUpWindow(url, name) {

    var result = window.open(url, name, 'top=200,left=200,width=1024,height=768,resizable=yes,scrollbars=yes');    
    
    if (result == false) {        
        return true;
    } else {
        return false;
    }
}

function openStyledGatewayWindow(url) {
    return openStyledPopupWindow(url, 'gatewaychild');
}

function openStyledGatewayWindowNoReturn(url) {
    var result = openStyledPopupWindow(url, 'gatewaychild');
}

function openStyledPopupWindowNoReturn(url, name) {
    window.open(url, name, 'top=200,left=200,width=640,height=580,resizable=yes,scrollbars=yes');
}

function openStyledPopupWindow(url, name) {
    var result = window.open(url, name, 'top=200,left=200,width=640,height=580,resizable=yes,scrollbars=yes');
    
    if (result == false) {
        return true;
    } else {
        return false;
    }
}

function openStyledPopupWindowWithConfirm(url, name, msg) {
    var confirmed = confirm(msg);
    if (confirmed) {
        var result = window.open(url, name, 'top=200,left=200,width=640,height=580,resizable=yes,scrollbars=yes');
        if (result == false) {
            return true;
        }
    }
    return false;
}

/*************************************************************************************/
/*  Modals                                                                           */
/*************************************************************************************/

function showModal(modal) {
    $('#' + modal).modal({ appendTo: "form", persist: "false" });
    return false;
}

function showModalAndSetDefaultClose(modal, closeButtonId) {
    $('#' + modal).modal({ appendTo: "form", persist: "false", onClose: function() { closeModalUsingDefaultCloseButton(closeButtonId); } });
    return false;
}

function closeModalUsingDefaultCloseButton(button) {
    return $("#" + button).trigger("onclick");
}


/*************************************************************************************/
/*  Tooltips                                                                         */
/*************************************************************************************/

function tooltip(info) {
    if (info != "") {
        Tip(info, ABOVE, true, BGCOLOR, '#c9ddf9', FADEIN, 200, SHADOW, true, SHADOWWIDTH, 2, CLICKCLOSE, true);
    }
}


/*************************************************************************************/
/*  Refreshers                                                                       */
/*************************************************************************************/

function refreshPage() {
    document.location.href = document.location.href;
}

/*************************************************************************************/
/*  Textfields                                                                       */
/*************************************************************************************/

//  Used with textfields, stops the form submitting when the enter key is pressed. When
//  the enter key is pressed we use jquery to click the appropriate button
function clickButtonOnEnterKeyPressed(e, button) {
    
    var keynum = (window.event) ? e.keyCode : e.which;
    
    if (keynum == 13) {
        $("#" + button).click();
        return false;
    } else {
        return true;
    }
}

function checkKeywordLength(textfield, lengthRequired) {

    var chars = $("#" + textfield).val().length;
    if (chars < lengthRequired) {
        alert("When searching you must enter 3 characters or more in the keyword field");
        return false;
    }

    return true;
}

function maxCharacters(textfield, maxlength) {
    var chars = $("#" + textfield.id).val().length;
    return (chars < maxlength);
} 

function limitToNumbers(e) {
    var keynum = (window.event) ? e.keyCode : e.which;
    //  0-9, backspace, delete, left arrow, right arrow, end, home 
    // ff gives 0 for left right up down del
    return (keynum > 47 && keynum < 58) || keynum == 8 || keynum == 46 || keynum == 37 || keynum == 39 || keynum == 35 || keynum == 36;
}


String.prototype.startsWith = function(str) {
    return (this.match("^" + str) == str) 
}

String.prototype.endsWith = function(str) {
    return (this.match(str + "$") == str)
}

String.prototype.trim = function() {
    return (this.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, ""))
}

String.prototype.contains = function(it) {
    return this.indexOf(it) != -1; 
};


/*************************************************************************************/
/*  Togglers                                                                         */
/*************************************************************************************/

function toggleCheckBoxes(checkall, container) {
    var checked = $("#" + checkall).is(':checked');
    $("#" + container + " input[type='checkbox']").each(function(i) {
        this.checked = checked;
    });
}

function toggleCheckBox(id, checked) {
    $("#" + id).attr("checked", checked);
}

function toggleButton(id, enable) {
    if (enable) {
        $("#" + id).removeAttr("disabled");
    } else {
        $("#" + id).attr("disabled", "disabled");
    }
}

/*************************************************************************************/
/*  Triggers                                                                         */
/*************************************************************************************/

function triggerEvent(target, event) {
    return $("#" + target).trigger(event);
}

/*************************************************************************************/
/*  Progress Bars                                                                    */
/*************************************************************************************/

function SetupProgressBars(path) {
    $('.progressBar').each(function(i) {
        $(this).progressBar($(this).text(), {
            boxImage: path + 'images/progressbar/progressbar.gif',
            barImage: {
                0: path + 'images/progressbar/progressbg_green.gif',
                25: path + 'images/progressbar/progressbg_yellow.gif',
                50: path + 'images/progressbar/progressbg_orange.gif',
                75: path + 'images/progressbar/progressbg_red.gif'
            },
            step_duration: 10,
            steps: 50
        });
    });
}
