(function($) {
    $.fn.tipui = function(o) {
        var def = {
            width:320,
            title:'',
            content:'',
            trigger:'',                        //显示的对象
            sender:'',                     //发送或击发对象
            type:1,                         //0为普通提示 //1为警告提示,2为成功提示,3为失败提示，4为帮助
            btn:['ok','cancel'],        //按钮
            btnText:['保存','取消'], //按钮文本
            //btnColor:['green','white'], //按钮颜色
            delay:0,     //延迟时间
            position:['top','center'], //'top', 'bottom', 'right', 'left', 'center'
            offset: [0, 0],
            relative: true,
            onCancel:function(){}, //取消按钮事件
            onOK:function(){} //确定按钮事件
        };

        $.extend(def, o);
        var me;
        var main;
        var template='<div></div>';

        return this.each(function(e) {
            me = jQuery(this);
            _clear();
           
            jQuery(me).bind("showtip",function(e,conf){
                var opt = {
                    width:320,
                    title:'',
                    content:'',
                    trigger:'',                        //显示的对象
                    sender:'',                     //发送或击发对象
                    type:1,                         //0为普通提示 //1为警告提示,2为成功提示,3为失败提示，4为帮助
                    btn:['ok','cancel'],        //按钮
                    btnText:['保存','取消'], //按钮文本
                    //btnColor:['green','white'], //按钮颜色
                    delay:0,     //延迟时间
                    position:['top','center'], //'top', 'bottom', 'right', 'left', 'center'
                    offset: [0, 0],
                    relative: true
                };

                $.extend(def, opt);
                $.extend(def, conf);
                _clear();
                //初始化
                switch(def.type){
                    case 0:
                        _initGeneralStyle();
                        break;
                    case 1:
                        _initWarningStyle();
                        break;
                    case 2:
                        _initOkStyle();
                        break;
                    case 3:
                        _initErrorStyle();
                        break;
                    case 4:
                        _initHelpStyle();
                        break;
                    default:
                        _initWarningStyle();
                        break;
                }
              
                _showTip();

            });

            return me;

        });

        //初始化警告提示样式
        function _initWarningStyle(){
            main=jQuery(template);
            main.hide();
            main.addClass('black_tooltip mcenter fleft');
            main.css('width',def.width+'px');
            if(def.position[0]=='bottom' && def.btn.length==0){
                main.append('<div class="file_border_select1 tit_col fleftie"></div>');
            }
            main.append(' <div class="black_tooltip_top clear" ' + (def.position[0] == "bottom" ? "style='margin-top: -4px'" : "") + '>\
                                        <div class="tooltip_left">\
                                            <div class="tooltip_right">\
                                                <div class="tooltip_mid"></div>\
                                            </div>\
                                        </div>\
                                    </div>');

            main.append(' <div class="black_tooltip_left">\
                                        <div class="black_tooltip_right">\
                                            <div class="back_black3 mcenter w96p">\
                                               <div class="file_left ">\
                                                    <div class="">\
                                                        <div class=" pdleft5 ">\
                                                            <table cellspacing="0" cellpadding="0" border="0" style="width: 97%;">\
                                                                <tbody><tr>\
                                                                    <td class="tit_close_ico w40">\
                                                                    </td>\
                                                                    <td class="tooltip_content">\
                                                                   </td>\
                                                                </tr>\
                                                            </tbody></table>\
                                                            <div class="clear"></div>\
                                                        </div>\
                                                    </div>\
                                                </div>\
                                            </div>\
                                        </div>\
                                    </div>');

            var ul_content=jQuery('<ul class="w100p  fleft lh20"> </ul>');
            if(jQuery.trim(def.title) !="" && jQuery.trim(def.content)!="" ){
                jQuery(ul_content).append('<li class="org h20 tleft">'+def.title+'</li>');
                jQuery(ul_content).append('<li class="light_green tleft">'+def.content+'</li>');
            }else{
                if(jQuery.trim(def.title) !=""){
                    jQuery(ul_content).append('<li class="org tleft">'+def.title+'</li>');
                }
                if(jQuery.trim(def.content)!=""){
                    if(jQuery.trim(def.title) !=""){
                        jQuery(ul_content).append('<li class="light_green tleft">'+def.content+'</li>');
                    }else{
                        jQuery(ul_content).append('<li class="light_green mh25 lh20 pdtop3 tleft">' + def.content + '</li>');
                    }
                }
            }
           

            if(def.btn !="" && def.btn.length>0){
                var btn_content=jQuery('<ul class="w100p h30 pdtop5 overflow"></ul>');
                var btn_save;
               
                if(jQuery.inArray('ok', def.btn)>-1){
                    btn_save=jQuery('<a href="javascript:;" class="little_org_button  white fleft disp_1 f12"><span class="white">'+def.btnText[0]+'</span></a>');
                }
                
                var btn_cancel;
                if(jQuery.inArray('cancel', def.btn)>-1){
                    btn_cancel=jQuery(' <a href="javascript:;" class="little_white_button   fleft disp_1 f12 black"><span>'+def.btnText[1]+'</span></a>');
                }

                var li=jQuery('<li class="h28  fleft"></li>');
                btn_content.append(li);
                
                var dv=jQuery('<div class="fb w100p   mleft10 "></div>');
                li.append(dv);
                
                if(btn_save && btn_cancel){ 
                    dv.append(btn_save);
                    dv.append('<p class="w10 disp_1 h10 fleft"></p>');
                    dv.append(btn_cancel);
                }else{
                    if(btn_save){
                        dv.append(btn_save);
                    }
                    if(btn_cancel){
                        dv.append(btn_cancel);
                    }
                }
                
                //绑定事件
                if(btn_save){
                    jQuery(btn_save).bind('click', function(){
                        if(def.onOK)
                            def.onOK();

                        //隐藏当前
                        _clear();
                    });
                }

                if(btn_cancel){
                    jQuery(btn_cancel).bind('click',function(){
                        if(def.onCancel)
                            def.onCancel();

                        //隐藏当前
                        _clear();
                    });
                }
 
            }else{
                //无应答
                if(def.delay>0){
                    setTimeout(function(){
                        _clear();
                    },def.delay);
                }else{
                    if(!def.sender){
                        def.sender=def.trigger;
                    }
                    //======jeffli 20110721========
                    if(jQuery.browser.msie){
                        _cancelBubble();
                    }
                    else{
                        jQuery(document).bind('click',_cancelBubble);
                    }
                //============================== 
                //jQuery(document).bind('click',_cancelBubble);
                }

            }
            jQuery(btn_content).append(' <li class="h28 fright "></li>');

            jQuery(main).find("td[class='tooltip_content']").append(ul_content);
            jQuery(main).find("td[class='tooltip_content']").append(btn_content);

            main.append(' <div class="black_tooltip_bottom">\
                                        <div class="tooltip_left">\
                                            <div class="tooltip_right">\
                                                <div class="tooltip_mid"></div>\
                                            </div>\
                                        </div>\
                                    </div>');
            
            if(def.position[0]=='top' && def.btn.length==0){
                main.append('<div class="file_border_select2 " style="margin-top: -4px; margin-left: 60px;"></div>');
            }
            
            main.appendTo(me);
            return main;
        }
        //一般普通提示样式
        function _initGeneralStyle(){
            main=jQuery(template);
            main.hide();
            main.addClass('black_tooltip mcenter fleft');
            main.css('width',def.width+'px');

            var genstyle=' <div class="black_tooltip_top clear" '+(def.position[0]=="bottom"?"style='margin-top: -4px'":"") +'>\
                                        <div class="tooltip_left">\
                                            <div class="tooltip_right">\
                                                <div class="tooltip_mid"></div>\
                                            </div>\
                                        </div>\
                                    </div>\
                                    <div class="black_tooltip_left">\
                                        <div class="black_tooltip_right">\
                                            <div class="back_black3 mcenter w94p">\
                                                <div id="companyOaNumberMsgTipInfo" class="lh30 org" item="tooltip_content">请填写公司oa号</div>\
                                            </div>\
                                        </div>\
                                    </div>\
                                    <div class="black_tooltip_bottom">\
                                        <div class="tooltip_left">\
                                            <div class="tooltip_right">\
                                                <div class="tooltip_mid"></div>\
                                            </div>\
                                        </div>\
                                    </div> ';

            

            if(def.position[0]=='bottom'){
                main.append('<div class="file_border_select1 tit_col fleftie"></div>');
            }

            main.append(genstyle);

            if(def.position[0]=='top'){
                main.append('<div class="file_border_select2 " style="margin-top: -4px; margin-left: 60px;"></div>');
            }

            if(def.title !=''){
                jQuery(main).find("div[item='tooltip_content']").html(def.title);
            }else{
                jQuery(main).find("div[item='tooltip_content']").html(def.content);
            }
           

            if(def.delay>0){
                setTimeout(function(){
                    _clear();
                },def.delay);
            }else{
                if(!def.sender){
                    def.sender=def.trigger;
                }
                jQuery(document).bind('click',function(){
                    _cancelBubbling( {
                        function1: function(){
                            _clear();
                            return false;
                        }
                    },{
                        cancelBubbling1:def.sender?jQuery(def.sender).attr('id'):me.attr('id')
                    });
                });
            }

            main.appendTo(me);
            return main;
            
        }
        //错误提示样式
        function  _initErrorStyle(){
            main=jQuery(template);
            main.hide();
            main.addClass('fleft');
            main.css('width',def.width+'px');

            var errorstyle='<div class="org_tit_left">\
                    <div class="org_tit_right tleft">\
                    <a class="yellow" href="javascript:;"><div item="tooltip_content">发送失败！已保存草稿，请重新发送！</div></a>\
                    </div>\
                    </div>';

            main.append(errorstyle);
            // jQuery(main).find("div[item='tooltip_content']").html(def.content);
            if(def.title !='' && def.content==''){
                jQuery(main).find("div[item='tooltip_content']").html(def.title);
            }else{
                jQuery(main).find("div[item='tooltip_content']").html(def.content);
            }

            if(def.delay>0){
                setTimeout(function(){
                    _clear();
                },def.delay);
            }else{
                if(!def.sender){
                    def.sender=def.trigger;
                }
                jQuery(document).bind('click',function(){
                    _cancelBubbling( {
                        function1: function(){
                            _clear();
                            return false;
                        }
                    },{
                        cancelBubbling1:def.sender?jQuery(def.sender).attr('id'):me.attr('id')
                    });
                });
            }

            main.appendTo(me);
            return main;
        }
        //操作成功提示样式
        function _initOkStyle(){
            main=jQuery(template);
            main.hide();
            main.addClass('black_tooltip fleft');
            main.css('width',def.width+'px');

            var okstyle = ' <div class="black_tooltip_top clear">\
                                                            	<div class="tooltip_left">\
                                                                	<div class="tooltip_right">\
                                                                    	<div class="tooltip_mid"></div>\
                                                                    </div>\
                                                                </div>\
                                                            </div>\
                                        <div class="black_tooltip_left">\
                                                            	<div class="black_tooltip_right">\
                                                                	<div class="back_black3 disp_1 mleft5 mright5 overflow">\
                                                                    	<table cellspacing="0" cellpadding="0" border="0" style="width: 97%;">\
                                                                <tbody><tr>\
                                                                    <td class=" w20">\
                                                                    </td>\
                                                                    <td>\
                                                                       <ul class="w100p  fleft lh20">\
                                                                            <li class="light_green tleft lh20" item="tooltip_content">内部邮件通过局域网通道发送成功！</li>\
                                                                        </ul>\
                                                                   </td>\
                                                                </tr>\
                                                            </tbody></table>\
                                                                        <div class="clear"></div>\
                                                                    </div>\
                                                                </div>\
                                                            </div>\
                                                        <div class="black_tooltip_bottom">\
                                                            	<div class="tooltip_left">\
                                                                	<div class="tooltip_right">\
                                                                    	<div class="tooltip_mid"></div>\
                                                                    </div>\
                                                                </div>\
                                                            </div>';

            main.append(okstyle);

            jQuery(main).find("li[item='tooltip_content']").html(def.content);
        


            if(def.delay>0){
                setTimeout(function(){
                    _clear();
                },def.delay);
            }else{
                if(!def.sender){
                    def.sender=def.trigger;
                }
                jQuery(document).bind('click',function(){
                    _cancelBubbling( {
                        function1: function(){
                            _clear();
                            return false;
                        }
                    },{
                        cancelBubbling1:def.sender?jQuery(def.sender).attr('id'):me.attr('id')
                    });
                });
            }

            main.appendTo(me);
            return main;
        }
        //帮助提示样式
        function _initHelpStyle(){
            main=jQuery(template);
            main.hide();
            main.addClass('black_tooltip fleft');
            main.css('width',def.width+'px');
            
            var helpstyle='<div>\
                                    <div class="black_tooltip_top clear">\
                                                            	<div class="tooltip_left">\
                                                                	<div class="tooltip_right">\
                                                                    	<div class="tooltip_mid"></div>\
                                                                    </div>\
                                                                </div>\
                                                            </div>\
                                                            <div class="black_tooltip_left">\
                                                            	<div class="black_tooltip_right">\
                                                                	<div class="back_black3 mcenter w98p">\
                                                                    	<div class="w90 fleft mtop10 disp">\
                                                                    		<div class="blue_question fright pdright10 disp"></div>\
                                                                        </div>\
                                                                        <div class="fright w290">\
                                                                        	<div class="white f12 h25 lh25 mtop10 tleft w245" item="tooltip_content">还没有会议纪要，现在要写一写吗？</div>\
                                                                            <div class="w200 mcenter h45 mtop10">\
                                                                            	<a class="little_green_button white disp_1" href="javascript:;"><span>写一写</span></a>\
                                                                        	</div>\
                                                                        </div>\
                                                                        <div class="clear"></div>\
                                                                    </div>\
                                                                </div>\
                                                            </div>\
                                                            <div class="black_tooltip_bottom">\
                                                            	<div class="tooltip_left">\
                                                                	<div class="tooltip_right">\
                                                                    	<div class="tooltip_mid"></div>\
                                                                    </div>\
                                                                </div>\
                                                            </div>\
                                                        </div>';


            main.append(helpstyle);
            jQuery(main).find("div[item='tooltip_content']").html(def.content);
            /* if(def.title !=''){
                 jQuery(main).find("div[item='tooltip_content']").html(def.title);
            }else{
                 jQuery(main).find("div[item='tooltip_content']").html(def.content);
            }*/

            if(def.delay>0){
                setTimeout(function(){
                    _clear();
                },def.delay);
            }else{
                if(!def.sender){
                    def.sender=def.trigger;
                }
                jQuery(document).bind('click',function(){
                    _cancelBubbling( {
                        function1: function(){
                            _clear();
                            return false;
                        }
                    },{
                        cancelBubbling1:def.sender?jQuery(def.sender).attr('id'):me.attr('id')
                    });
                });
            }

            main.appendTo(me);
            return main;
        }
        //获取事件源(暂无用)
        function _getEvent()
        {
            if(document.all)
            {
                return window.event;//如果是ie
            }
            func=_getEvent.caller;
            while(func!=null)
            {
                var arg0=func.arguments[0];
                if(arg0)
                {
                    if((arg0.constructor==Event || arg0.constructor ==MouseEvent)
                        ||(typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))
                        {
                        return arg0;
                    }
                }
                func=func.caller;
            }
            return null;
        }
        /**
         *显示
         */
        function _showTip(){
            try{
                var  pos = _getPosition();
                jQuery(main).css({
                    position:'absolute',
                    'z-index':9999,
                    top: pos.top,
                    left: pos.left
                });
                jQuery(main).show();
            }catch(e){}
        }
        /* calculate tip position relative to the trigger */
        function _getPosition() {
            var top;
            var left;
            if(def.trigger==''){
                //计算屏幕正中间的位置
                var browserwidth = jQuery(window).width();
                var browserheight = jQuery(window).height();
                //有滚动条的情况
                var scrollLeft = jQuery(window).scrollLeft();
                var scrollTop = jQuery(window).scrollTop();

                //提示内容高度宽度
                var cwinwidth = jQuery(main).width();
                var cwinheight = jQuery(main).height();

                left = scrollLeft + (browserwidth-cwinwidth)/2;

                top = scrollTop + (browserheight-cwinheight)/2;
                //alert('left:'+left+',top:'+top)
                return {
                    top: top,
                    left: left
                };
            }else{
                // get origin top/left position
                top = def.relative ? def.trigger.position().top : def.trigger.offset().top,
                left = def.relative ? def.trigger.position().left : def.trigger.offset().left,
                pos = def.position[0];
                top  -= jQuery(main).outerHeight() - def.offset[0];
                left += def.trigger.outerWidth() + def.offset[1];
     
                if (/iPad/i.test(navigator.userAgent)) {
                    top -= jQuery(window).scrollTop();
                }
            
                // adjust Y
                var height = main.outerHeight() + def.trigger.outerHeight();
                if (pos == 'center') 	{
                    top += height / 2;
                }
                if (pos == 'bottom') 	{
                    top += height;
                }
                // adjust X
                pos = def.position[1];
                var width = main.outerWidth() + def.trigger.outerWidth();
                if (pos == 'center') 	{
                    left -= width / 2;
                }
                if (pos == 'left')   	{
                    left -= width;
                }
                //alert('left:'+left+',top:'+top)
                return {
                    top: top,
                    left: left
                };
            }
        }

        function _cancelBubble(){
            _cancelBubbling( {
                function1: function(){
                    _clear();
                    return false;
                }
            },{
                cancelBubbling1:def.sender?jQuery(def.sender):me
            });
        }
        /**
         *取消响应事件
         */
        function _cancelBubbling(functionNameObj,cancelBubblingObj){
        
            for(var key2 in cancelBubblingObj){
                if(cancelBubblingObj[key2]){
                    jQuery(cancelBubblingObj[key2]).click(function(event){
                        //取消冒泡
                        if(document.all){
                            window.event.cancelBubble = true;
                        }
                        else{
                            event.stopPropagation();
                        }
                    });
                }
            }
            //绑定冒泡事件
            for(var key1 in functionNameObj){
                jQuery(document).click(function(){
                    functionNameObj[key1]();
                });

            }
        }
        /**
         * 清空内容
         */
        function _clear(){
            jQuery(me).empty();
        // jQuery(document).unbind('click');
        }
    },
    $.fn.tooltip=function(conf){
        $(this).trigger("showtip",conf);
    };
})(jQuery)





