$(function() {

    $.ajaxSetup({ cache: false });

    $('.button').button();
    $('button').button();

    $('button:contains("Add")').button({icons:{primary: "ui-icon-plus"}});
    $('a.button:contains("Add")').button({icons:{primary: "ui-icon-plus"}});
    
    $('button:contains("Edit")').button({icons:{primary: "ui-icon-pencil"}});
    $('a.button:contains("Edit")').button({icons:{primary: "ui-icon-pencil"}});

    $('button:contains("Save")').button({icons:{primary: "ui-icon-disk"}});
    $('a.button:contains("Save")').button({icons:{primary: "ui-icon-disk"}});

    $('button:contains("Cancel")').button({icons:{primary: "ui-icon-trash"}});
    $('a.button:contains("Cancel")').button({icons:{primary: "ui-icon-trash"}});

    $('button:contains("Import")').button({icons:{primary: "ui-icon-plus"}});
    $('a.button:contains("Import")').button({icons:{primary: "ui-icon-plus"}});

    $('.tabs').tabs();

    $('.controls').hover(
        function() { $(this).removeClass('fade'); },
        function() { $(this).addClass('fade'); }
    );

    $('input.date').datepicker({ dateFormat: 'yy-mm-dd' });

    $('.buttonset').buttonset();

    $('input.link')
        .width('90%')
        .after($('<img src="/static/img/documents.png" />')
            .css({
                'float':'right',
                'height': '32px',
                'cursor': 'pointer'
            })
            .click(function() {
                var $linkButton = $(this);
                $('<div />')
                    .appendTo('body')
                    .load('/admin/link_selector', function() {
                        $('.tabs', this).tabs();
                        $('.selectable', this).selectable();
                    })
                    .dialog({
                        title: 'Add link',
                        width: 600,
                        height: 600,
                        modal: true,
                        buttons: {
                            Add: function() {
                                var pageUrl = $('#page').val();
                                if (pageUrl != "") {
                                    $linkButton.prev().val(pageUrl); 
                                }

                                var customUrl = $('#customUrl').val();
                                if (customUrl != "") {
                                    $linkButton.prev().val(customUrl); 
                                }

                                $(this).dialog('close');
                            }
                        },
                        close: function(e, ui) {
                            $(this).dialog('destory').remove();
                        }
                    });

            })
        );

    $('input.image')
        .width('90%')
        .after($('<img src="/static/img/pictures.png" />')
            .css({
                'float':'right',
                'height': '32px',
                'cursor': 'pointer'
            })
            .click(function() {
                var $imageButton = $(this);
                $('<div />')
                    .appendTo('body')
                    .load('/admin/image_selector', function() {
                        $('.tabs', this).tabs();
                        $('.selectable', this).selectable();
                    })
                    .dialog({
                        title: 'Add image',
                        width: 800,
                        height: 600,
                        modal: true,
                        buttons: {
                            Add: function() {
                                $('.ui-selected', this).each(function() {
                                    var imageUrl = $(this).data('url');
                                    $imageButton.prev().val(imageUrl); 
                                });

                                var customUrl = $('#customUrl').val();
                                if (customUrl != "") {
                                    $imageButton.prev().val(customUrl); 
                                }

                                $(this).dialog('close');
                            }
                        },
                        close: function(e, ui) {
                            $(this).dialog('destory').remove();
                        }
                    });
                
            })
        );
    
});

function showError(title, message) {
    $('<div></div>')
        .html('<span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>' + message)
        .dialog({
            modal: true,
            title: title,
            buttons: {
                Close: function() {$(':contains("Save")')
                    $(this).dialog('close');
                }
            }
        })
}

function showMessage(title, message) {
    $('<div></div>')
        .html('<span class="ui-icon ui-icon-info" style="float:left; margin:0 7px 20px 0;"></span>' + message)
        .dialog({
            modal: true,
            title: title,
            buttons: {
                Close: function() {
                    $(this).dialog('close');
                }
            }
        })
}

function showInfo(title, data) {
    var html = [];

    //html.push('<div class="ui-icon ui-icon-info" style="float:left;"></div>');

    $.each(data, function(key, value) {
        html.push('<span class="label">' + key + ':</span><div>' + value + '</div>');
    });

    $('<div></div>')
        .append(html.join(''))
        .dialog({
            modal: true,
            title: title,
            buttons: {
                Close: function() {
                    $(this).dialog('close');
                }
            }
        })
}

$.extend($.jgrid.defaults, {
    datatype: 'json',
    // autowidth: true,
    // height: 'auto',
    jsonReader: {
        root: "rows",
        page: "page",
        total: "total",
        records: "records",
        repeatitems: false,
        userdata: "user_data",
        id: "__key__"
    },
    hidegrid: false,
    rowNum: 25,
    //viewrecords: true,
    altRows: true

    // beforeRequest: function () {
    //     var $grid = $(this);
    //     var pagerId = $grid.getGridParam('pager');
    //     $(pagerId + "_center").hide();
    // },
    // afterInsertRow: function (rowid, rowdata, rowelem) {
    //     $(this).jqGrid('setRowData', rowid, false, 'gridCell');
    // },
    // cmTemplate: {
    //     sortable: false
    // },
    // loadComplete: function (data) {
    //     resizeGridToDialog(this);

    //     var $grid = $(this);
    //     var pagerId = $grid.getGridParam('pager');

    //     if ($grid.getGridParam("records") > $grid.getGridParam("rowNum")) {
    //         $(pagerId + "_center").show();
    //     }
    //     else {
    //         $(pagerId + "_center").hide();
    //     }
    // }


    
});


