

//AJAX Error handling
$(document).ready(AppLoad);
function AppLoad() {
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequest);
    Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequest);
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(cancelPostBack);
}
function triggerFancybox() {
    if ($('a#ErrorContainerLink').length == 0) {
        var a = $('<a>');
        a.attr('id', 'ErrorContainerLink')
        a.attr('href', '#ErrorContainer');
        a.css('display', 'none');
        a.html("test");
        $('body').append(a);
        a.fancybox({
                'width': 500,
                'height': 180,
                'autoScale': false,                
                'scrolling': 'no',
                'hideOnContentClick': false
            });
            
    }
    $('a#ErrorContainerLink').click();
    return false;
}
var activityDisabled = false;
function BeginRequest(sender, args) {
    // Clear the error if it's visible from a previous request.
    //jQuery('#ErrorContainer').hide();
    if(!activityDisabled)
        $.fancybox.showLoading();

    HideAllErrors();
}

function cancelPostBack(sender, args) {
    if (Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) {
        //alert('One postback at a time please');
        $.jnotify(globalRes.LinguLabErrorSecondPostBack, "error", 3000);
        args.set_cancel(true);
    }

}

function EndRequest(sender, args) {
    // Check to see if there's an error on this request.
    var frm = $('form.jqtransformdone');
    
    if (frm) {
        
            frm.removeClass('jqtransformdone').addClass('jqtransform');
            frm.jqTransform();
        
    }
    $.fancybox.hideLoading();
    var errorObj = args.get_error();
    if (errorObj != undefined) {
    /*
                //error debug
                var msg = '';
                msg += 'Status code: '+ args.get_response().get_statusCode()
                msg+= ';\nerror: '+errorObj.message;
                var members = ';\nThe \'get_error\' members are:\n\n';
                for (var i in errorObj){
                   members += '\t' + i +': '+errorObj[i] + '\n';
                }
                msg+= members;
                alert(msg);
    */
    
        triggerFancybox();
        args.set_errorHandled(true);
    }
}

//Generates click event of element.
//Used on Login page.
function ClickOnEnter(evt, ctrlId, validate){
    var enter = 13;
    var domEvt = new Sys.UI.DomEvent(evt);        
    
    if(domEvt.charCode == enter)
    {
        if(validate)
        {
            if(validate())            
            {
                $('#'+ctrlId).click();
            }            
            else
            {
                return false;
            }           
        }
        else {
            
            eval($('#' + ctrlId).attr('href'));
            //$('#' + ctrlId).click();   
        }
    }
    return true;
}

/*
// Notifications
*/
var errorList = new Array();
function ShowError(msg) {
    var errorObj = $.jnotify(msg, "error", true);
    errorList.push(errorObj);

}
function ShowNotify(msg, speed) {
    var delayTime = 6000;
    if (speed == "fast") {
        delayTime = 3000;
    }
    $.jnotify(msg, delayTime);
}
function ShowWarning(msg, speed) {
    var delayTime = 6000;
    if (speed == "fast") {
        delayTime = 3000;
    }
    $.jnotify(msg, "warning", delayTime);
}
function HideAllErrors() {
    if (errorList.length != 0) {
        var errorObj
        do {
            errorObj = errorList.pop();
            errorObj.remove();
        } while (errorList.length != 0);
    }
}




