var _clientMessageContainer;
var _clientMessageIntervalID;

var _dialogContainer;

$(function(){
    
    if( $("#clientMessageContainer").size()<=0 ){
        $("<div id=\"clientMessageContainer\" style=\"display:none;\"><dl><dt></dt><dd class=\"alert-icon\"></dd><dd class=\"context\">------</dd></dl><dl></dl></div>").prependTo($("body"));
        
    }
    
    _clientMessageContainer = $("#clientMessageContainer").eq(0);
    $("a.close",_clientMessageContainer).click(function(){
        _clientMessageContainer.dialog("close");
        return false;
    })
    
    
    
    if($("#dialogContainer").size()<=0){
        $("<div id=\"dialogContainer\" style=\"display:none\"></div>").prependTo($("body"));
    }
    _dialogContainer = $("#dialogContainer").eq(0);
})

function _showMessage(title,message,type,callback,userContext){
    // _clientMessageContainer.dialog("close");
        
    $("dd.alert-icon",_clientMessageContainer).removeClass("alert");
    $("dd.alert-icon",_clientMessageContainer).removeClass("error");
    if( type.toLowerCase() == "error" || type.toLowerCase() == "alert"){
        $("dd.alert-icon",_clientMessageContainer).addClass(type.toLowerCase());
    }
    _clientMessageContainer.removeClass();
    _clientMessageContainer.addClass("");
    $("dd.context",_clientMessageContainer).html(message);
    _clientMessageContainer.show();
    _clientMessageContainer.dialog(
    {
        title:title,
        modal:true,
        height:200,
        resizable:false,
        overlay: 
        { 
            opacity: 0.5, 
            background: "black" 
        },
        buttons: {   
            "确定": function(){
                if( callback && userContext){
                    callback(userContext);
                }
                $(this).dialog("close");   
            },
            "取消": function(){   
                $(this).dialog("close");   
            }   
        },
        close:function(type,data){
        }
    });
}

function _dialogError(error){
    _showMessage(Strings.Dialog_Error,error,"error");
}

function _showError(message){
    _clientMessageContainer.removeClass();
    _clientMessageContainer.addClass("ErrorPanel");
    _clientMessageContainer.html(message);
    clearInterval( _clientMessageIntervalID );
    _clientMessageContainer.fadeIn("slow",function(){
        _clientMessageIntervalID = setInterval(function(){            
            _clientMessageContainer.fadeOut("slow");
        },
        5000
        )
    })
}

function _showAjaxMessage(href , jQueryObject , isOnceClick){
    
    _dialogContainer.load(href,function(){
        _dialogContainer.show();
        _dialogContainer.dialog({modal:true,height:100});
                
        var _w = $(window).width() ;
        var _h = $(window).height();
        
        var _fullW = jQueryObject.offset().left + $("div.ui-dialog").width();
        var _fullH = jQueryObject.offset().top + $("div.ui-dialog").height();
        
        if( _fullW > _w ){
            _fullW = jQueryObject.offset().left - $("div.ui-dialog").width();
        }else{
            _fullW = jQueryObject.offset().left;
        }
        if( _fullH > _h ){
            _fullH = jQueryObject.offset().top - $("div.ui-dialog").height() -15;
        }else{
            _fullH = jQueryObject.offset().top + 15;
        }
        
        $("div.ui-dialog").css("top",_fullH);
        $("div.ui-dialog").css("left",_fullW);
        
        if( isOnceClick == true ){
            jQueryObject.attr("disabled", "disabled");
            jQueryObject.unbind();
            jQueryObject.click(function(){
                return false;
            });
        }
        
//        _dialogContainer.offset().top = jQueryObject.offset().top;
//        _dialogContainer.offset().left = jQueryObject.offset().left;
    })
}

function _showConfirmMessage( title ,message ,callback ,userContext,type){

    _clientMessageContainer.dialog("close");
    
    $("dd.alert-icon",_clientMessageContainer).removeClass("alert");
    $("dd.alert-icon",_clientMessageContainer).removeClass("error");
    if( type.toLowerCase() == "error" || type.toLowerCase() == "alert"){
        $("dd.alert-icon",_clientMessageContainer).addClass(type.toLowerCase());
    }
    _clientMessageContainer.removeClass();
    
    $("dd.context",_clientMessageContainer).html(message);

    _clientMessageContainer.show();
    _clientMessageContainer.dialog(
        {
            title:title,
            modal:true,
            height:200,
            resizable:false, 
            buttons: {   
                "确定": function(){   
                    if(callback && userContext){
                        callback(userContext);
                    }
                    $(this).dialog("close");   
                },
                "取消": function(){   
                    $(this).dialog("close");   
                }   
            },
            close:function(type,data){
            }
        }
    );
                
    var _w = $(window).width() ;
    var _h = $(window).height();
    
    var _fullW = userContext.offset().left + $("div.ui-dialog").width();
    var _fullH = userContext.offset().top + $("div.ui-dialog").height();
    
    if( _fullW > _w ){
        _fullW = userContext.offset().left - $("div.ui-dialog").width();
    }else{
        _fullW = userContext.offset().left;
    }
    if( _fullH > _h ){
        _fullH = userContext.offset().top - $("div.ui-dialog").height() -15;
    }else{
        _fullH = userContext.offset().top + 15;
    }
    
    $("div.ui-dialog").css("top",_fullH);
    $("div.ui-dialog").css("left",_fullW);
}