
$.fn.menu = function(option)
{
    var $$ = this;
    var setting = {top:0, left:0, target:$$.next()};
    if (option) $.extend(setting, option);
    // 自动判断高度
    if (setting.top == 0) setting.top = $$.height();
    // fix position
    setting.target.css('position', 'absolute');

    setting.target.mouseover(function() {
        if (setting.target.css('display') != 'block') setting.target.show();
    });
    setting.target.mouseout(function() {
        if (setting.target.css('display') != 'none') setting.target.hide();
    });

    $$.mouseover(function() {
        var pos = $$.offset();
        var obj = {
            left:pos.left + setting.left + "px",
            top:pos.top + setting.top + "px"
        };
        setting.target.css(obj).show();
    });

    $$.mouseout(function() {
        setting.target.hide();
    });
};

$.fn.check = function(mode)
{
    mode = mode || 'on'; //default
    switch(mode) {
        case 'on':
            this.attr('checked', true);
        break;

        case 'off':
            this.attr('checked', false);
        break;

        case 'toggle':
            this.each(function() {
                this.checked = !this.checked;
            });
        break;
    }
};

function get_my_image(page)
{
    $.get('/?ajax/get_my_image/' + page, function(data) {
        if (data) {
            $('#my_image').html(data);
        }
    });
}

function add_my_image(id)
{
    var html = '<li class="mr17">\
                    <img src="?attachment/'+id+'" alt="" /><br />\
                    <a href="javascript:;" onclick="del(this);" class="f_orange">点击移除</a>\
                    <input type="hidden" name="att_id[]" value="'+id+'" /></li>';
    $('#placeholderSortable').append(html);
}

$.fn.xdraggable = function(setting)
{
    var $$ = this;
    var settings = {
        destroy     : false,
        target      : $$,
        containment : null,
        cursor      : 'pointer'
    };

    if (setting == 'destroy') setting = {destroy:true};

    if (setting) $.extend(settings, setting);

    if (settings.destroy) {
        settings.target.css('cursor','');
        settings.target.unbind('mousedown')
                       .unbind('mousemove')
                       .unbind('mouseup');
        return $$;
    }

    var drag = false;
    var x = 0;
    var y = 0;
    var cur = {};
    if (settings.containment) {
        var pos = settings.containment.offset();
    }
    function fix_containment() {
        var p = $$.offset();
        if (p.top <= pos.top) {
            $$.css('top', pos.top + 'px');
        } else if ((p.top - pos.top) >= (settings.containment.height() - $$.height()) ) {
            $$.css('top', (pos.top + settings.containment.height() - $$.height()) + 'px');
        }
        if (p.left <= pos.left) {
            $$.css('left', pos.left + 'px');
        } else if ((p.left - pos.left) >= (settings.containment.width() - $$.width())) {
            $$.css('left', (pos.left + settings.containment.width() - $$.width()) + 'px');
        }
    }
    settings.target.css('cursor', settings.cursor);

    settings.target.mousedown(function(e) {
        drag = true;
        x = e.pageX;
        y = e.pageY;
        cur = $$.offset();
        $$.css({
            position:'absolute',
            zIndex:100
        });
        return false;
    });

    settings.target.mousemove(function(e) {
        if (!drag) return false;

        $$.css({
            left:cur.left + e.pageX - x + "px",
            top:cur.top + e.pageY - y + "px"
        });
        
        if (settings.containment) {
            fix_containment();
        }
        // callback
        if (typeof settings.drag === 'function') {
            settings.drag();
        }
    });

    settings.target.mouseup(function(){
        drag = false;
    });

    return this;
};


