var Messages = new Object();
Messages.GetMessageCount = function() {
    $j.ajax({
        url : "/ajax/utilities/messaging/message_count",
        type : 'GET',
        dataType : "json",
        success : function(oResponse) {
            if (oResponse.Status == 1) {
                $j("#new_message_popup").animate({
                    "top" : "-=50px"
                }, "slow");
                $j("#new_messages").html(oResponse.Message + ' NEW');
                
                $j("#new_messages").click(function() {
                    window.location = oResponse.MessageUrl;
                });
            }
        }
    });
};

var RefreshWalletBalanceBlock = false;
var RefreshWalletBalance = function() {
    if (RefreshWalletBalanceBlock)
        return;
    new Ajax.Request('/ajax/utilities/balance', {
        method : 'post',
        onLoading : function() {
            Element.addClassName('header_wallet_reload', 'refresh_loading');
            RefreshWalletBalanceBlock = true;
        },
        onComplete : function() {
            Element.removeClassName('header_wallet_reload', 'refresh_loading');
            setTimeout(function() {
                RefreshWalletBalanceBlock = false;
            }, 10000);
        },
        onSuccess : function(transport) {
            oResponse = transport.responseJSON;
            UpdateHeaderWalletBalance(oResponse.Balance);
            if(typeof oResponse.Reserve !== undefined){
            	DisplayReserveBalance(oResponse.Reserve);
            }
            
        }
    });
};

var GetWalletReserveBalanceBlock = false;
var GetWalletReserveBalance = function() {
    if (GetWalletReserveBalanceBlock)
        return;
    new Ajax.Request('/ajax/utilities/balance/reserved', {
        method : 'post',
        onLoading : function() {
            //Element.addClassName('header_wallet_reload', 'refresh_loading');
    		GetWalletReserveBalanceBlock = true;
        },
        onComplete : function() {
            //Element.removeClassName('header_wallet_reload', 'refresh_loading');
            setTimeout(function() {
            	GetWalletReserveBalanceBlock = false;
            }, 10000);
        },
        onSuccess : function(transport) {
            oResponse = transport.responseJSON;
           
            
        }
    });
};

var ClearWalletReserveBalancesBlock = false;
var ClearWalletReserveBalances = function() {
    if (ClearWalletReserveBalancesBlock)
        return;
    
    var bConfirm = confirm('Caution:'+"\n\n"+ 'We are about to release and return all unused reserved credits back to your balance.' +"\n" + 'This will finish any active webcam session you may have open at present.' + "\n\n" + 'Are you sure you want to continue?');
    
    if(bConfirm == true) {
    	
	    new Ajax.Request('/ajax/utilities/balance/reserved/clear', {
	        method : 'post',
	        onLoading : function() {
	    	
	            //Element.addClassName('header_wallet_reload', 'refresh_loading');
	    	ClearWalletReserveBalancesBlock = true;
	        },
	        onComplete : function() {
	            //Element.removeClassName('header_wallet_reload', 'refresh_loading');
	            setTimeout(function() {
	            	ClearWalletReserveBalancesBlock = false;
	            }, 10000);
	        },
	        onSuccess : function(transport) {
	            oResponse = transport.responseJSON;
	            UpdateHeaderWalletBalance(oResponse.Balance);
	            if(typeof oResponse.Reserve !== undefined){
	            	DisplayReserveBalance(oResponse.Reserve);
	            }
	        }
	    });
    }
};

var UpdateHeaderWalletBalance = function(iBalance) {
	
	Element.update('header_wallet_balance', iBalance);
};

var DisplayReserveBalance = function(iReserveBalance) {

	Element.update('header_wallet_reserve_balance', iReserveBalance);
	
	if(iReserveBalance == 0)
		HideDisplayElement('wallet_reserve');
	else
		DisplayHiddenElement('wallet_reserve');
};


var LoginPopup = {};
LoginPopup.Open = function() {
    AnimatedOverlay.ShowById('popup_logout');
};

var DropDownKickForIE = function() {
    var NavigationRoot = $('main_horizontal_menu');
    
    $H(Element.childElements(NavigationRoot)).each(function(element) {
        if (element.nodeName == 'LI') {
            Event.observe(element, 'mouseover', function() {
                Element.addClassName(element, ' over');
            });
            
            Event.observe(element, 'mouseout', function() {
                Element.removeClassName(element, ' over');
            });
        }
    });
};

Event.observe(window, 'load', function() {
    if (navigator.userAgent.indexOf('MSIE') != -1) {
        DropDownKickForIE();
    }
});

LoginRequired = function() {
    new Ajax.Request('/ajax/utilities/join_signin', {
        method : 'post',
        onSuccess : function(transport) {
            oResponse = transport.responseJSON;
            Element.update('overlay_content', oResponse.sJoinHTML);
            AnimatedOverlay.ShowById('user_option_not_logged_in',
                'user_option_not_logged_in');
        }
    });
};

DisplayHiddenElement = function(sElementName) {
    $(sElementName).show();
};

HideDisplayElement = function(sElementName) {
    $(sElementName).hide();
};

