﻿function isDateTextMMDDYYYYFormat(strDate, strSeparator) 
{
    var strSpecialChars = "[\^$.|?*+(){}";

    if (strSpecialChars.indexOf(strSeparator) > -1)
        strSeparator = '\\' + strSeparator;

    var strDateFormat = "^\\d{1,2}%delim%\\d{1,2}%delim%\\d{4}$";
    var strRE = strDateFormat.replaceAll('%delim%', strSeparator);

    var reDate = new RegExp(strRE);

    return reDate.test(strDate);
}

var INVALID_CHARACTERS = "\\/:*<>@#|?\"";

function validateBadCharacters(sender, args) 
{
    var txt = jQuery('#' + sender.controltovalidate);
    txt.val(jQuery.trim(txt.val()));

    var atrIsEmail = (sender.attributes['IsEmail'] ? sender.attributes['IsEmail'] : sender.attributes['isemail']);

    var bIsEmail = false;

    if (atrIsEmail && atrIsEmail.nodeValue)
        bIsEmail = atrIsEmail.nodeValue.toLowerCase() == "true";

    var strInvalidChars = INVALID_CHARACTERS;

    if (bIsEmail)
        strInvalidChars = strInvalidChars.replace('@', '');

    var aryBadChars = strInvalidChars.split('');

    var bIsValid = true;

    for (var i = 0; i < aryBadChars.length && bIsValid; i++)
        bIsValid = txt.val().indexOf(aryBadChars[i]) < 0;

    delete aryBadChars;
    aryBadChars = null;

    args.IsValid = bIsValid;
}

function hideAjaxLoading() {
    jQuery('#ajax_loading_overlay').hide();
}

function showAjaxLoading() {

    var elLoading = jQuery('#ajax_loading');
    var win = jQuery(window);
    //var left = win.scrollLeft() + (win.width() - elLoading.width()) / 2;
    var top = win.scrollTop() + (win.height() - elLoading.height()) / 2; 
    
    elLoading.css
    (
        {
            "top" : top + "px"
        }
    );

    var doc = jQuery(document);
    var elOverlay = jQuery('#ajax_loading_overlay');
    elOverlay.css
    (
        {
            "width": doc.width() + "px",
            "height": doc.height() + "px"
        }
    );
            
    elOverlay.show();
}

function reload()
{
    window.location.href = window.location.href;
}
function parentLaunchFB(aMe, strUrl, strParams) {
    var aMe = jQuery(aMe);
    
    var aParent = parent.jQuery('.fancybox_trigger');
    aParent.attr('href', strUrl);

    var objParams = strParams && strParams != "" ? strParams.ParamsToObject() : {};

    parent.triggerFancybox(objParams, 500);
    return true;
}


/* Extensions */

String.prototype.replaceAll =
    function(strOld, strNew) 
    {
        var aryStr = this.split(strOld);

        if (aryStr.length > 1)
            return aryStr.join(strNew);

        return this;
    }

String.prototype.QueryStringToObject =
    function() 
    {
        return convertToObject(this, "&", "=");
    }

String.prototype.ParamsToObject =
    function() 
    {
        return convertToObject(this, ";", "=");
    }

function convertToObject(str, strPairDelim, strNameValDelim) 
{
    var rePairDelimHead = new RegExp("^" + strPairDelim);
    var rePairDelim = new RegExp(strPairDelim, "g");
    var reNameValDelim = new RegExp(strNameValDelim, "g");

    return eval("({" + str.replace(rePairDelimHead, "").replace(reNameValDelim, ":").replace(rePairDelim, ", ") + "})")
}
