/**
 * Javascript Global Functions
 * 
 * @author Waltz.of.Pearls <maruolei@gmail.com, rollie@maxxdidit.com>
 * @version CVS or SVN: $Id$
 * @copyright Marketing MAXX Inc. <maxxdidit.com, hlmagazine.com>
 */



/*------------------------------------------------------------*\
 * fault tolerance for ie 6 browser
 * hide error message in ie 6's status bar
\*------------------------------------------------------------*/
//$(window).error(function() {
//    return true;
//});

/*------------------------------------------------------------*\
 * Encrypt email
\*------------------------------------------------------------*/
String.prototype.rrot13 = function() {
    var c = '', str = '', arr = [], len = 0;
    arr = this.split('');
    len = arr.length
    for (var i = 0; i < len; i++) {
        if (arr[i].match(/[a-zA-Z]/g)) {
            c = arr[i];
            c = String.fromCharCode((c<="Z"?90:122)>=(c=c.charCodeAt(0)+13)?c:c-26);
        } else {
            c = arr[i];
        }
        str += c;
    }   //end for
    return str;
}   //end function
/*------------------------------------------------------------*\
 * Alert and confirm popup dialog
\*------------------------------------------------------------*/
function _alert(sAlertMessage, hParams)
{
    var sAlertContent = '';
    sAlertMessage += '\n\n';
    hParams = hParams || {};
    sContainer = hParams.container || '#dialog';
    iAlertWidth = hParams.alertWidth || 390;
    iAlertHeight = hParams.alertHeight || 150;
    oDomFocus = hParams.domFocus || null;
    fAlertCallback = hParams.alertCallback || function() {};
    sAlertType = hParams.alertType || 'warning';
    sRedirectUrl = hParams.redirectUrl || null;
    sOkLabel = hParams.okLabel || 'Ok';
    sAlertContent = '<div style="text-align:left;padding:8px 15px 0 50px;margin-top:7px;'
                  + 'background: url(' + _sImgUrl + 'icon/icon_' + sAlertType + '.gif) no-repeat 10px 0px;">'
                  + sAlertMessage.replace(/\n/g, '<br />') + '</div>';
    $(sContainer)
        .dialog('open')
        .dialog({
            width: iAlertWidth,
            minWidth: iAlertWidth,
            minHeight: iAlertHeight,
            resizable: false,
            buttons: {'alertOk': function() {
                $(this).dialog('close').dialog('destory');
                if ($.isFunction(fAlertCallback))
                    fAlertCallback();
                if (oDomFocus)
                    oDomFocus.focus();
                if (sRedirectUrl)
                    window.location.replace(sRedirectUrl);
            }},
            close: function() {
                if ($.isFunction(fAlertCallback))
                    fAlertCallback();
                if (oDomFocus)
                    oDomFocus.focus();
                if (sRedirectUrl)
                    window.location.replace(sRedirectUrl);
            },
            modal: false,
            overlay: {opacity: 0.25, background: 'black'}
        })
        .html(sAlertContent);
    $("button[type='button']").each(function(index, element) {
        if ('alertOk' == $(element).html())
            $(this).text(sOkLabel);
    });
}   //end function
function _confirm(sConfirmMessage, hParams)
{
    var sConfirmContent = '';
    sConfirmMessage += '\n\n';
    hParams = hParams || {};
    sContainer = hParams.container || '#dialog';
    iConfirmWidth = hParams.confirmWidth || 390;
    iConfirmHeight = hParams.confirmWidth || 150;
    oOnOkFocus = hParams.onOkFocus || null;
    oOnCancelFocus = hParams.onCancelFocus || null;
    sConfirmType = hParams.confirmType || 'warning';
    sOnOkUrl = hParams.onOkUrl || null;
    sOnCancelUrl = hParams.onCancelUrl || null;
    sOnOkEval = hParams.onOkEval || null;
    sOnCancelEval = hParams.onCancelEval || null;
    fOnOkCallback = hParams.onOkCallback || function() {};
    fOnCancelCallback = hParams.onCancelCallback || function() {};
    sOkLabel = hParams.okLabel || 'Ok';
    sCancelLabel = hParams.cancelLabel || 'Cancel';
    sConfirmContent = '<div style="text-align:left;padding:8px 15px 0 50px;'
                    + 'background: url(' + _sImgUrl + 'icon/icon_' + sConfirmType + '.gif) no-repeat 10px 0px;">'
                    + sConfirmMessage.replace(/\n/g, '<br />') + '</div>';
    $(sContainer)
        .dialog('open')
        .dialog({
            width: iConfirmWidth,
            minWidth: iConfirmWidth,
            minHeight: iConfirmHeight,
            resizable: false,
            buttons: {'confirmCancel': function() {
                $(this).dialog('close').dialog('destory');
                if (sOnCancelEval)
                    eval(sOnCancelEval);
                if ($.isFunction(fOnCancelCallback))
                    fOnCancelCallback();
                if (oOnCancelFocus)
                    oOnCancelFocus.focus();
                if (sOnCancelUrl)
                    window.location.replace(sOnCancelUrl);
            }, 'confirmOk': function() {
                $(this).dialog('close').dialog('destory');
                if (hParams.onOkEval)
                    eval(sOnOkEval);
                if ($.isFunction(fOnOkCallback))
                    fOnOkCallback();
                if (oOnOkFocus)
                    oOnOkFocus.focus();
                if (sOnOkUrl)
                    window.location.replace(sOnOkUrl);
            }},
            close: function() {
                if (sOnCancelEval)
                    eval(sOnCancelEval);
                if ($.isFunction(fOnCancelCallback))
                    fOnCancelCallback();
                if (oOnCancelFocus)
                    oOnCancelFocus.focus();
                if (sOnCancelUrl)
                    window.location.replace(sOnCancelUrl);
            },
            modal: false,
            overlay: {opacity: 0.25, background: 'black'}
        })
        .html(sConfirmContent);
    $("button[type='button']").each(function(index, element) {
        if ('confirmOk' == $(element).html())
            $(this).text(sOkLabel);
        else if ('confirmCancel' == $(element).html())
            $(this).text(sCancelLabel);
    });
}   //end function

