﻿var textFormTemplate;
var currentTab;
var currentSection;
var currentSectionIndex;

var $tk_jQuery = jQuery.noConflict();

$tk_jQuery("form:first").submit(function () {
    tkcfp_showModalLoadingDialog();
    return true;
});


$tk_jQuery(document).ready(function () {

    //showModalLoadingDialog();

    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_pageLoaded(tkcfp_Ajax_PageLoaded);
    prm.add_initializeRequest(tkcfp_Ajax_InitializeRequest);
    prm.add_endRequest(tkcfp_Ajax_EndRequestHandler)

    $tk_jQuery(".FormLayoutSwitcher").change(function () {
        tkcfp_toggleFormLayout($tk_jQuery(this));
    });

    $tk_jQuery("span[name='UserCopyTemplateCheckbox']").click(function (e) {
        tkcfp_toggleUserCopyTemplate($tk_jQuery("span[name='UserCopyTemplateCheckbox']"));
    });


    $tk_jQuery("#fec_spacer").css("display", "block");

    $tk_jQuery("#accordion-1").accordion({
        active: false,
        collapsible: true,
        autoHeight: false,
        clearStyle: true,
        header: 'h3',
        icons: { 'header': 'ui-icon-plus', 'headerSelected': 'ui-icon-minus' },
        change: function (event, ui) { tkcfp_trackAccordionChange(event, ui); }
    });

    $tk_jQuery("#accordion-2").accordion({
        active: false,
        collapsible: true,
        autoHeight: false,
        clearStyle: true,
        header: 'h3',
        icons: { 'header': 'ui-icon-plus', 'headerSelected': 'ui-icon-minus' },
        change: function (event, ui) { tkcfp_trackAccordionChange(event, ui); }
    });

    $tk_jQuery("#accordion-3").accordion({
        active: false,
        collapsible: true,
        autoHeight: false,
        clearStyle: true,
        header: 'h3',
        icons: { 'header': 'ui-icon-plus', 'headerSelected': 'ui-icon-minus' },
        change: function (event, ui) { tkcfp_trackAccordionChange(event, ui); }
    });

    $tk_jQuery("#accordion-4").accordion({
        active: false,
        collapsible: true,
        autoHeight: false,
        clearStyle: true,
        header: 'h3',
        icons: { 'header': 'ui-icon-plus', 'headerSelected': 'ui-icon-minus' },
        change: function (event, ui) { tkcfp_trackAccordionChange(event, ui); }
    });

    $tk_jQuery(".module_menu > li").click(function (e) {
        currentTab.val(e.target.id);
        tkcfp_setupTabs();
        return false;
    });

    $tk_jQuery("FormButton").button();
});

$tk_jQuery(window).load(function () {
    $tk_jQuery_PageLoaded();
});

function tkcfp_Ajax_PageLoaded(sender, args) {
    tkcfp_hideModalLoadingDialog();
    //alert("Ajax_PageLoaded");
    //$tk_jQuery("FormButton").button();
}

function tkcfp_Ajax_EndRequestHandler(sender, args) {
    //alert("Ajax_EndRequestHandler");
    $tk_jQuery("FormButton").button();
    tkcfp_setupGridDnD();
}

function tkcfp_Ajax_InitializeRequest(sender, args) {
    //args.set_cancel(!confirm("Are you sure?"));
    tkcfp_showModalLoadingDialog();
}

function $tk_jQuery_PageLoaded() {
    tkcfp_setupTabs();
    tkcfp_setupGridDnD();
    $tk_jQuery("#fec_spacer").css("display", "none");
    $tk_jQuery("#form_editor_container").css("display", "block");
    tkcfp_hideModalLoadingDialog();
}

function tkcfp_trackAccordionChange(event, ui) {
    //alert($tk_jQuery(event.target).accordion("option", "active"));
    //alert($tk_jQuery(event.target).attr("id"));
    currentSection.val($tk_jQuery(event.target).attr("id"));
    currentSectionIndex.val($tk_jQuery(event.target).accordion("option", "active"));
}

function tkcfp_setupTabs() {
    if (currentTab) {

        switch (currentTab.val()) {
            case "settings":
                //change status & style menu
                $tk_jQuery("#settings").addClass("CFP_active_tab");
                $tk_jQuery("#notifications").removeClass("CFP_active_tab");
                $tk_jQuery("#fields").removeClass("CFP_active_tab");
                $tk_jQuery("#misc").removeClass("CFP_active_tab");
                //display selected division, hide others
                $tk_jQuery("div.settings").fadeIn();
                $tk_jQuery("div.notifications").css("display", "none");
                $tk_jQuery("div.fields").css("display", "none");
                $tk_jQuery("div.misc").css("display", "none");
                break;
            case "notifications":
                //change status & style menu
                $tk_jQuery("#settings").removeClass("CFP_active_tab");
                $tk_jQuery("#notifications").addClass("CFP_active_tab");
                $tk_jQuery("#fields").removeClass("CFP_active_tab");
                $tk_jQuery("#misc").removeClass("CFP_active_tab");
                //display selected division, hide others
                $tk_jQuery("div.notifications").fadeIn();
                $tk_jQuery("div.settings").css("display", "none");
                $tk_jQuery("div.fields").css("display", "none");
                $tk_jQuery("div.misc").css("display", "none");
                break;
            case "fields":
                //change status & style menu
                $tk_jQuery("#settings").removeClass("CFP_active_tab");
                $tk_jQuery("#notifications").removeClass("CFP_active_tab");
                $tk_jQuery("#fields").addClass("CFP_active_tab");
                $tk_jQuery("#misc").removeClass("CFP_active_tab");
                //display selected division, hide others
                $tk_jQuery("div.fields").fadeIn();
                $tk_jQuery("div.notifications").css("display", "none");
                $tk_jQuery("div.settings").css("display", "none");
                $tk_jQuery("div.misc").css("display", "none");
                break;
            case "misc":
                //change status & style menu
                $tk_jQuery("#settings").removeClass("CFP_active_tab");
                $tk_jQuery("#notifications").removeClass("CFP_active_tab");
                $tk_jQuery("#fields").removeClass("CFP_active_tab");
                $tk_jQuery("#misc").addClass("CFP_active_tab");
                //display selected division, hide others
                $tk_jQuery("div.misc").fadeIn();
                $tk_jQuery("div.notifications").css("display", "none");
                $tk_jQuery("div.fields").css("display", "none");
                $tk_jQuery("div.settings").css("display", "none");
                break;
        }
    }
}

function tkcfp_setupSections(accordion) {
    //alert(currentSectionIndex.val());
    $tk_jQuery("#" + accordion).accordion("option", "active", currentSectionIndex.val());
}

function tkcfp_hideModalLoadingDialog() {
    $tk_jQuery.modal.close();
}

function tkcfp_showModalLoadingDialog() {
    $tk_jQuery('#modal-loading-dialog').modal();
}

function tkcfp_updateRedirectSettings() {
    showModalLoadingDialog();
    $tk_jQuery.ajax({
        type: "POST",
        url: "Default.aspx",
        data: { CustomForms_ServiceMethodCall: "UpdateRedirectSettings"
        },
        contentType: "application/x-www-form-urlencoded; charset=utf-8",
        dataType: "json",
        success: function (result) { tkcfp_onSucceeded(result); },
        error: function (result) { tkcfp_onFailed(result); }
    });
}

function tkcfp_updateForm() {
    tkcfp_showModalLoadingDialog();
    $tk_jQuery.ajax({
        type: "POST",
        url: "Default.aspx",
        data: { CustomForms_ServiceMethodCall: "UpdateForm"
        },
        contentType: "application/x-www-form-urlencoded; charset=utf-8",
        dataType: "json",
        success: function (result) { tkcfp_onSucceeded(result); },
        error: function (result) { tkcfp_onFailed(result); }
    });
}

function tkcfp_onSucceeded(result) {
    //alert(msg.success);
    tkcfp_hideModalLoadingDialog();
    alert("Reorder was a success!");
}

function tkcfp_onFailed(result) {
    //alert(msg);
    tkcfp_hideModalLoadingDialog();
    alert("Reorder failed!");
}

function tkcfp_toggleFormLayout(ddl) {
    //alert(ddl.val());
    if (ddl.val() == "Basic") {
        $tk_jQuery(".TemplateLayoutRow").css("display", "none");
    } else {
        $tk_jQuery(".TemplateLayoutRow").css("display", "block");
    }
}

function tkcfp_toggleUserCopyTemplate(checkbox) {
    if (checkbox.children(":checkbox").attr("checked")) {
        $tk_jQuery(".UserCopyTemplate").css("display", "none");
    } else {
        $tk_jQuery(".UserCopyTemplate").css("display", "block");
    }
}

function tkcfp_exportForms(url, sdate, edate, ih, hc) {
    //event.preventDefault();
    url += "&sdate=" + sdate + "&edate=" + edate + "&ih=" + ih + "&hc=" + hc;
    window.open(url, "export_forms");
    //return false;
}

function tkcfp_setupGridDnD() {
    if (currentTab) {
        $tk_jQuery(".sortable-grid > tbody").sortable({
            helper: 'clone',
            opacity: 0.6,
            cursor: 'move',
            axis: 'y',
            revert: true,
            placeholder: 'sortable-grid-placeholder',
            items: 'tr:not(.not-draggable)',
            cancel: '.not-draggable',
            sort: function (event, ui) { ui.item.previousIndex = ui.item.index() - 2; ui.item.addClass("sortable-grid-highlight"); },
            stop: function (event, ui) { ui.item.removeClass("sortable-grid-highlight"); },
            update: function (event, ui) { tkcfp_controlRowChanged(event, ui); }
        });
        $tk_jQuery(".sortable-grid > tbody").disableSelection();
        $tk_jQuery(".sortable-grid > tbody > tr").mousedown(function () {
            $tk_jQuery(this).addClass("sortable-grid-highlight");
        });
        $tk_jQuery(".sortable-grid > tbody > tr").mouseup(function () {
            $tk_jQuery(this).removeClass("sortable-grid-highlight");
        });
        $tk_jQuery(".sortable-grid > tbody > tr").hover(function () {
            $tk_jQuery(this).addClass("sortable-grid-highlight");
        }, function () {
            $tk_jQuery(this).removeClass("sortable-grid-highlight")
        });

        if (currentControlIndex)
            currentControlIndex.val("-1");
        if (previousControlIndex)
            previousControlIndex.val("-1");
    }
}

function tkcfp_controlRowChanged(event, ui) {
    currentControlIndex.val(ui.item.index() - 1);
    previousControlIndex.val(ui.item.previousIndex);
    reorderSubmitButton.click();
}
