﻿//------------------------------------------------------------------------------------------------------------------
// Telerik dialog boxes
//------------------------------------------------------------------------------------------------------------------

function radAlertUserMessage(title) {
    var hidField = getHiddenUserMessages();
    if (!hidField) { return true; }
    if (hidField.value != "") {
        var myalert = radalert(hidField.value, null, null, title);
        myalert.set_behaviors(Telerik.Web.UI.WindowBehaviors.Move);
        myalert.show();
    }
    return true;
}

function radAlertUserMessageWithPostBack(title) {
    var hidField = getHiddenUserMessages();
    if (!hidField) { return true; }
    if (hidField.value != "") {
        var myalert = radalert(hidField.value, null, null, title);
        myalert.add_close(radAlertUserMessageWithPostBackCB);
        myalert.set_behaviors(Telerik.Web.UI.WindowBehaviors.Move);
        myalert.show();
    }
    return true;
}

function radAlertUserMessageWithPostBackCB() {
    __doPostBack("hidUserReply");
}

function radConfirmUserMessage(title, button_1_caption, button_2_caption) {
    var hidField = getHiddenUserMessages();
    if (!hidField) { return true; }
    if (hidField.value != "") {
        // get jQuery object
        window.$ = $telerik.$;
        var myconfirm = radconfirm(hidField.value, radConfirmUserMessageCB, null, null, null, title);
        $(myconfirm).data("button_1_caption", button_1_caption);
        $(myconfirm).data("button_2_caption", button_2_caption);
        // add event handler for onWindowShow event
        myconfirm.add_show(radConfirmOnClientShow);
        myconfirm.set_behaviors(Telerik.Web.UI.WindowBehaviors.Move);
        // trigger show event so the handler is called
        myconfirm.show();
    }
    return true;
}

function radConfirmUserMessageCB(arg) {
    // put the response back in the hidden field
    document.getElementById("hidUserReply").value = arg;
    __doPostBack("hidUserReply");
}

function radConfirmOnClientShow(oWnd, eventArgs) {
    // get jQuery object
    window.$ = $telerik.$;
    // change radconfirm's buttons captions
    $('.rwPopupButton span span').eq(0).html($(oWnd).data("button_1_caption"));
    $('.rwPopupButton span span').eq(1).html($(oWnd).data("button_2_caption"));
}

function radPromptUserMessage(title) {
    var hidField = getHiddenUserMessages();
    if (!hidField) { return true; }
    if (hidField.value != "") {
        var myprompt = radprompt(hidField.value, radPromptUserMessageCB, null, null, null, title, " ");
        myprompt.set_behaviors(Telerik.Web.UI.WindowBehaviors.Move + Telerik.Web.UI.WindowBehaviors.Resize);
        myprompt.show();
    }
    return true;
}

function radPromptUserMessageCB(arg) {
    // put the response back in the hidden field
    document.getElementById("hidUserReply").value = arg;
    __doPostBack("hidUserReply");
}

//------------------------------------------------------------------------------------------------------------------
// Telerik windows
//------------------------------------------------------------------------------------------------------------------

function radWaitingMsg(msg, imgPath) {
    var wnd = radopen(null, null);
    var ele = document.createElement("div"); // important because setting the innerHTML only works on div with IE
    ele.style.height = "100%";
    var iht = "<table><tr>"
    if (imgPath.length > 0) {
        iht = iht + "<td style='vertical-align:middle; text-align:center'><img src='" + imgPath + "'></td>";
    }
    iht = iht + "<td style='vertical-align:middle; text-align:center'>" + msg + "</td></tr></table>"; 
    ele.innerHTML = iht;
    wnd.set_contentElement(ele);
    wnd.set_modal(true);
    wnd.set_behaviors(Telerik.Web.UI.WindowBehaviors.Close);
    wnd.set_destroyOnClose(true);
    wnd.set_visibleStatusbar(false);
    wnd.set_width(240);
    wnd.set_height(160);
    wnd.center();
    return true;
}

function radInfoMsg(id) {
    wsCallback.getInfoMsg(id, radInfoMsg_handler);
}

function radInfoMsg_handler(result) {
    var height_default = 160;
    var width_default = 240;

    // Create window
    var wnd = radopen(null, null);
    wnd.set_modal(true);
    wnd.set_behaviors(Telerik.Web.UI.WindowBehaviors.Close + Telerik.Web.UI.WindowBehaviors.Move + Telerik.Web.UI.WindowBehaviors.Resize);
    wnd.set_destroyOnClose(true);
    wnd.set_visibleStatusbar(false);
    if (result['title']) {
        wnd.set_title(result['title']);
    }

    // Determine size
    var height;
    if (!result['height']) {
        height = height_default;
    }
    else {
        height = result['height'];
    }
    var width;
    if (!result['width']) {
        width = width_default;
    }
    else {
        width = result['width'];
    }

    // Set content
    var name = wnd.get_name();
    var ele = document.createElement("div");
    //var button = '<div style="text-align:center;margin-top:10px;padding-bottom:5px;"> <button id="closeRadInfoMsg" type="button" OnClick="radWindowClose(\'' + name + '\'); return false;">OK</button> </div>'
    var button = '<div class="rwDialogPopup" style="text-align:center;margin-top:10px;padding-bottom:5px;"><a onclick="radWindowClose(\'' + name + '\'); return false;" class="rwPopupButton" href="javascript:void(0);"><span class="rwOuterSpan"><span class="rwInnerSpan">OK</span></span></a> </div>';
    ele.innerHTML = '<div>' + result['msg'] + '</div>' + button;
    ele.setAttribute("style", "height:" + height + "px;overflow:auto;");
    ele.setAttribute("id", "wndResult");
    wnd.set_contentElement(ele);

    // Apply size
    wnd.set_width(width);
    wnd.set_height(height);
    wnd.add_resize(radInfoMsg_onResize);
    wnd.center();
}

function radInfoMsg_onResize(sender, eventArgs) {
    var bounds = sender.getWindowBounds();
    var div = document.getElementById("wndResult");
    div.setAttribute("style", "height:" + bounds.height + "px;overflow:auto;");
}

function radWindowClose(WinName) {
    var oManager = GetRadWindowManager();
    var oWindow = oManager.GetWindowByName(WinName)
    oWindow.argument = null;
    oWindow.close();
}

//------------------------------------------------------------------------------------------------------------------
// Telerik controls
//------------------------------------------------------------------------------------------------------------------

function RadGridUpdateSource(initial, ctlid, listid, currentPageIndex) {
    var tbl = document.getElementById(ctlid).control.get_masterTableView();
    var pageSize = tbl.get_pageSize();
    var params = new Object();
    params['initial'] = initial;
    params['ctlid'] = ctlid;
    params['listid'] = listid;
    params['browserInstance'] = document.getElementById("hidBrowserInstance")['value'];
    params['currentPageIndex'] = currentPageIndex;
    wsCallback.radGridGetData(params, currentPageIndex * pageSize, pageSize, RadGridUpdateSource_Handler);
}

function RadGridUpdateSource_Handler(result) {
    var tbl = document.getElementById(result['ctlid']).control.get_masterTableView();
    tbl.set_dataSource(result['data']);
    tbl.dataBind();
    tbl.set_virtualItemCount(result['count']);
    if (result['initial']) {
        // Restore the current page as returned by the web function (set_virtuaItemCount resets the current page)
        Telerik.Web.UI.Grid.NavigateToPage(result['ctlid'] + '_ctl00', result['currentPageIndex'] + 1)
    }
}

function RadGridExportToExcelClicked(gridId) {
    if (gridId) {
        __doPostBack(gridId, "ExportToExcel");
    }
}

