﻿
function RemoveResult(id) {
    $("#" + id).remove();
}


function LoadDialog(actionurl) {

    $.ajax({
        url: actionurl,
        type: 'GET',
        dataType: 'html', // <-- to expect an html response
        success: function (html) {
            $('#dlg').html(html);
            $("#dlg").dialog();
        }
    });

}



function SaveDialog(actionurl) {
    // todo: validate
    var formdata = $("#dlg form").serialize();

    $.ajax({
        url: actionurl,
        type: 'POST',
        data: formdata,
        dataType: 'html', // <-- to expect an html response
        success: function (html) {
            $('#dlg').html(html);
            $("#dlg").dialog('close');
        }
    });
}

function CustomSaveDialog(actionurl, formdata) {

    $.ajax({
        url: actionurl,
        type: 'POST',
        data: formdata,
        dataType: 'html', // <-- to expect an html response
        success: function (html) {
            $('#dlg').html(html);
            $("#dlg").dialog('close');
        }
    });
}

function SubmitDialog(formObj, successFn, successParam) {
    $(formObj).ajaxSubmit({
        success: function (m) {

            if (successParam == null)
                successParam = m;

            ActSuccessFn(successFn, successParam);

            //$("#dlg").html(m);
            $("#dlg").dialog("close");
        }
    });
}

function PostCommandAction(actionurl, formdata, successFn, successParam) {
    // todo: validate

    $.ajax({
        url: actionurl,
        type: 'POST',
        data: formdata,
        dataType: 'html', // <-- to expect an html response
        success: function (html) {

            ActSuccessFn(successFn, successParam);
        }
    });

}

function ActSuccessFn(successFn, successParam) {
    if (successFn != null) {
        successFn(successParam);
    }
}
//function PostCommandAction(actionurl, formdata) {
//    PostCommandAction(actionurl, formdata, null);
//}

function CloseTip() {
    $(".tip").hide();
};


function UpdateTableFromDialog(event, ui) {
    if (event.result != null) {
        UpdateTable(event.result);
    }
}

function UpdateTable(data) {
    var tmp = $("<table />");
    tmp.html(data);

    $("tr", tmp).each(function () {
        var rk = $(this).attr("rowKey");
        var ex = $(".dataTable tr[rowKey=" + rk + "]");
        if (ex.length > 0) {
            ex.html($(this).html());
        }
        else {
            $(".dataTable").append($(this));
        }

    });
    tmp.remove();

    //                   $(".dataTable").append(event.result);

    $(".dataTable td").addClass("ui-widget-content");

}

function FormDialog(url, title, width, height) {

    jQuery.FrameDialog.create({
        url: url,
        title: title,
        width: width,
        height: height,
        buttons: null
    })
           .bind('dialogclose', UpdateTableFromDialog);

}

function AjaxAction(url) {
    $.ajax({
        url: url,
        type: 'POST',
        dataType: 'html',
        success: function (data) {
            UpdateTable(data);
        },
        error: function (x) {
            alert(x.responseText);
        }
    });

}


function AjaxMessageAction(url) {
    $.ajax({
        url: url,
        type: 'POST',
        dataType: 'html',
        success: function (data) {
            alert(data);
        },
        error: function (x) {
            alert(x.responseText);
        }
    });

}

function renderJSON(obj) {
    var keys = []
    var retValue = ""
    for (var key in obj) {
        if (typeof obj[key] == 'object') {
            retValue += "<div class='tree'>" + key
            retValue += renderJSON(obj[key])
            retValue += "</div>"
        }
        else {
            retValue += "<div class='tree'>" + key + " = " + obj[key] + "</div>"
        }

        keys.push(key)
    }
    return retValue;
}


(function ($) {

    $.fn.sliderlabels = function (options) {

        // add labels to a slider        



        var settings = {

            'showMin': true,

            'showMax': true,

            'showLabels': true,

            'labels': {}

        };

        if (options) {

            $.extend(settings, options);

        }



        var sliderdiv = this;

        var val = sliderdiv.slider("option", "value");

        var min = sliderdiv.slider("option", "min");

        var max = sliderdiv.slider("option", "max");



        var getlabel = function (v) {

            if (settings.labels[v]) return settings.labels[v];

            else return v;

        };





        $(".ui-slider-handle", sliderdiv).append("<span class=\"ui-slider-label\" >" + getlabel(val) + "</span>");

        if (settings.showMin == true) {

            sliderdiv.append("<span class=\"ui-slider-label-min\" >" + getlabel(min) + "</span>");

        }

        if (settings.showMax == true) {

            sliderdiv.append("<span class=\"ui-slider-label-max\" >" + getlabel(max) + "</span>");

        }





        var ocf = sliderdiv.slider('option', 'change');

        var osf = sliderdiv.slider('option', 'slide');



        sliderdiv.slider('option', 'change', function (event, ui) {

            if ($.isFunction(ocf)) {

                ocf(event, ui);

            }

            $(".ui-slider-label", sliderdiv).html(getlabel(ui.value));



            var min = sliderdiv.slider("option", "min");

            var max = sliderdiv.slider("option", "max");

            $(".ui-slider-label-min", sliderdiv).html(getlabel(min));

            $(".ui-slider-label-max", sliderdiv).html(getlabel(max));

        });



        sliderdiv.slider('option', 'slide', function (event, ui) {

            if ($.isFunction(osf)) {

                osf(event, ui);

            }

            $(".ui-slider-label", sliderdiv).html(getlabel(ui.value));



            var min = sliderdiv.slider("option", "min");

            var max = sliderdiv.slider("option", "max");

            $(".ui-slider-label-min", sliderdiv).html(getlabel(min));

            $(".ui-slider-label-max", sliderdiv).html(getlabel(max));

        });





        return this;

    };

})(jQuery);







$(function () {

    $(".dataTable tr:has(td)")
                    .live('click', function () {
                        var tbl = $(".dataTable");

                        if (tbl.attr("editUrl") != null) {
                            document.location = tbl.attr("editUrl") + "?" + tbl.attr("keyName") + "=" + $(this).attr("rowKey");
                        }
                    })
                    .live('mouseover', function () {
                        $(this).children("td").addClass("ui-state-hover");
                    })
                    .live('mouseout', function () {
                        $(this).children("td").removeClass("ui-state-hover");

                    });

    $(".dataTable th").addClass("ui-state-default");
    $(".dataTable td").addClass("ui-widget-content");


    $(".pageDescription")
    //      .addClass("ui-widget")
            .addClass("ui-widget-content")
            .addClass("ui-corner-all");


    $(".leftNav ul li a").button({

});


$(".button").button();

$(".button[description]").bt({
    contentSelector: "$(this).attr('description')",
    positions: 'top',
    fill: 'rgba(255, 255, 255, .8)',
    cssStyles: { color: '#000000', fontSize: '0.7em', fontWeight: 'bold' }
});

$("label[description]").bt({
    contentSelector: "$(this).attr('description')",
    positions: 'right',
    fill: 'rgba(255, 255, 255, .8)',
    cssStyles: { color: '#000000', fontSize: '0.7em', fontWeight: 'bold' }
});

$(".datetimepicker").datetimepicker();


$(".jsondata").each(function () {
    var jd = $(this).text();
    var o = $.parseJSON(jd);
    $(this).html(renderJSON(o));
});


});


