﻿/// <reference path="jquery-1.4.3.min-vsdoc.js" />

$.fn.screenTransfer = function () {
    //GLOBAL
    //saving this to variable
    var $t = $(this);
    //creating buttons
    var $finish = $('<input class="transfer_next_button" type="button" value="Klar" />');
    var $clear = $('<input id="clearButton" class="transfer_clear_button" type="button" value="Börja om" />');
    var $back = $t.find('.transfer_back_button');
    //variables to save data during the process
    var step1 = { panel: $t.find('.step1'), name: false, id: false };
    var step2 = { panel: $t.find('.step2'), name: false, id: false };
    var step3 = { panel: $t.find('.step3'), part: $.makeArray($t.find('.step3 .choosescreen')) };
    var step4 = { panel: $t.find('.step4') };
    var step5 = { panel: $t.find('.step5') };
    //took path variable
    var createOwnScreenTransfer = false;
    var uploadScreenTransfer = false;
    var pickOldUploadedScreenTransfer = false;
    //STEP ONE (1)
    //getting step 1 radio buttons
    var $method = $t.find('input[name=screenmethod]:radio');
    //resetting buttons on load
    $method.filter(':checked').attr('checked', '');
    $method.click(function () {
        //saving values for later use
        step1.name = $t.find('label[for=' + this.id + ']').html();
        step1.id = this.value;
        //hiding current step and showing next
        step1.panel.hide();
        step2.panel.show();
        add_saved_state(step1.panel, step2.panel);
    });

    //STEP TWO (2)
    //getting step 2 radio buttons
    var $choose = $t.find('input[name=choosescreen]:radio');
    //resetting buttons on load
    $choose.filter(':checked').attr('checked', '');
    $choose.click(function () {
        if ($("#loginusersmall form").length == 1 && $(this).attr('id') == 'CS1' ) {
            return false;
        }
        step2.name = $t.find('label[for=' + this.id + ']').html();
        step2.id = this.value;
        step2.panel.hide();
        step3.panel.show();
        $(step3.part[step2.id]).show();
        add_saved_state(step2.panel, step3.panel);
    });

    //STEP THREE (3), PART ONE (1), Create sreen transfer
    $('#step3part1NextButton').click(function () {
        if (($('#ttplacement').val() != '') && ($('#trycktext').val() != '')) {
            createOwnScreenTransfer = true;

            step3.panel.hide();
            step4.panel.html('');
            var $form = $(step3.part[step2.id]).find('#texttryck');
            var $table = $('<table />').attr('id', 'ScreenTransferSummary').appendTo(step4.panel);
            var $row;

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Tryckmetod</th>');
            $row.append('<td>' + step1.name + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Tryck</th>');
            $row.append('<td>' + step2.name + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Typsnitt</th>');
            $row.append('<td>' + $form.find('#selectImage option:selected').html() + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Tryckform</th>');
            $row.append('<td>' + $form.find('#selectFormImage option:selected').html() + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Tryckstorlek</th>');
            $row.append('<td>' + $form.find('#ttproduct option:selected').html() + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Text</th>');
            $row.append('<td>' + $form.find('#trycktext').val() + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Placering</th>');
            $row.append('<td>' + $form.find('#ttplacement').val() + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Övrigt</th>');
            $row.append('<td>' + $form.find('#ttother').val() + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>&nbsp;</th>');
            $row.append($('<td class="button" />').append($clear).append($finish));

            $clear.click($.clearButtonFunction);
            $finish.click($.finishButtonFunction);

            step4.panel.prepend('<h3>Sammanställning (4/4)</h3>');
            step4.panel.show();

            add_saved_state(step3.panel, step4.panel);
        }
        else {
            if ($('#trycktext').val() == '')
                alert('Du måste fylla i text!');
            if ($('#ttplacement').val() == '')
                alert('Du måste fylla i placering!');
        }
    });

    //STEP THREE (3), PART TWO (2), Upload
    $('#step3part2NextButton').click(function () {
        if ($('#dfplacement').val() != '' && $('#datafile').val() != '') {
            uploadScreenTransfer = true;

            step3.panel.hide();
            step4.panel.html('');
            var $table = $('<table />').attr('id', 'ScreenTransferSummary').appendTo(step4.panel);
            var $row;

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Tryckmetod</th>');
            $row.append('<td>' + step1.name + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Tryck</th>');
            $row.append('<td>' + step2.name + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Fil</th>');
            $row.append('<td>' + $(step3.part[step2.id]).find('#datafile').val() + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Storlek/Antal färger</th>');
            $row.append('<td>' + $(step3.part[step2.id]).find('#dfsize option:selected').html() + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Placering</th>');
            $row.append('<td>' + $(step3.part[step2.id]).find('#dfplacement').val() + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Övrigt</th>');
            $row.append('<td>' + $(step3.part[step2.id]).find('#dfother').val() + '</td>');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>&nbsp;</th>');
            $row.append($('<td class="button" />').append($clear).append($finish));

            $clear.click($.clearButtonFunction);
            $finish.click($.finishButtonFunction);

            step4.panel.prepend('<h3>Sammanställning (4/4)</h3>');
            step4.panel.show();

            add_saved_state(step3.panel, step4.panel);
        }
        else {
            if ($('#datafile').val() == '')
                alert('Du måste välja fil att ladda upp');

            if ($('#dfplacement').val() == '')
                alert('Du måste fylla i placering!');
        }
    });

    //STEP THREE (3), PART THREE (3), Pick older screen transfer
    $('#step3part3NextButton').click(function () {
        if ($('#cs3placement').val() != '') {
            pickOldUploadedScreenTransfer = true;

            step3.panel.hide();
            step4.panel.html('');
            var $table = $('<table />').attr('id', 'ScreenTransferSummary').appendTo(step4.panel);
            var $row;
            //var trycknamn;

            //$("#PRODFORM_PRINT").find("#Trycknamn").attr("value", "");

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Tryckmetod</th>');
            //trycknamn = "Tryckmetod: ";
            $row.append('<td>' + step1.name + '</td>');
            //trycknamn = trycknamn + step1.name;
            //$("#PRODFORM_PRINT").find("#ProductID").attr("value", step1.id);

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Tryck</th>');
            //trycknamn = trycknamn + " - Tryck: ";
            $row.append('<td>' + step2.name + '</td>');
            //trycknamn = trycknamn + step2.name;

            var radioselect = $(step3.part[step2.id]).find('input[name=radioprint]:checked');

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Fil</th>');
            //trycknamn = trycknamn + " - Fil: ";
            $row.append('<td>' + $(step3.part[step2.id]).find('label[for=' + radioselect.attr('id') + ']').html() + '</td>');
            //trycknamn = trycknamn + $(step3.part[step2.id]).find('label[for=' + radioselect.attr('id') + ']').html();

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Storlek/Antal färger</th>');
            //trycknamn = trycknamn + " - Storlek/Antal färger: ";
            $row.append('<td>' + $(step3.part[step2.id]).find('#cs3size option:selected').html() + '</td>');
            //trycknamn = trycknamn + $(step3.part[step2.id]).find('#cs3size option:selected').html();
            //var variantId = $(step3.part[step2.id]).find('#cs3size option:selected').val();
            //$("#PRODFORM_PRINT").find("#VariantID").attr("value", variantId);

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Placering</th>');
            //trycknamn = trycknamn + " - Placering: ";
            $row.append('<td>' + $(step3.part[step2.id]).find('#cs3placement').val() + '</td>');
            //trycknamn = trycknamn + $(step3.part[step2.id]).find('#cs3placement').val();

            $row = $('<tr />').appendTo($table);
            $row.append('<th>Övrigt</th>');
            //trycknamn = trycknamn + " - Övrigt: ";
            $row.append('<td>' + $(step3.part[step2.id]).find('#cs3other').val() + '</td>');
            //trycknamn = trycknamn + $(step3.part[step2.id]).find('#cs3other').val();
            //$("#PRODFORM_PRINT").find("#Trycknamn").attr("value", trycknamn);
            //$("#EcomOrderLineFieldInput_999_trycknamn").attr('value', $(step3.part[step2.id]).find('label[for=' + radioselect.attr('id') + ']').html());
            $row = $('<tr />').appendTo($table);
            $row.append('<th>&nbsp;</th>');
            $row.append($('<td class="button" />').append($clear).append($finish));

            $clear.click($.clearButtonFunction);
            $finish.click($.finishButtonFunction);

            step4.panel.prepend('<h3>Sammanställning (4/4)</h3>');
            step4.panel.show();

            add_saved_state(step3.panel, step4.panel);
        }
        else {
            alert('Du måste fylla i placering!');
        }
    });

    //FINISH BUTTON FUNCTION
    $.finishButtonFunction = function () {
        $("#printchoosen").val("true");
        //On användaren valt att göra ett eget tryck
        if (createOwnScreenTransfer) {
            var trycknamn = "";
            var radioselect = $(step3.part[step2.id]).find('input[name=radioprint]:checked');
            var $form = $(step3.part[step2.id]).find('#texttryck');
            $("#PRODFORM_PRINT").find("#Trycknamn").attr("value", "");

            trycknamn = "Typsnitt: " + $form.find('#selectImage option:selected').html();

            trycknamn += "|Tryckform: " + $form.find('#selectFormImage option:selected').html();
            trycknamn += "|Tryckstorlek: " + $form.find('#ttproduct option:selected').html();
            trycknamn += "|Text: " + $form.find('#trycktext').val();
            trycknamn += "|Placering: " + $form.find('#ttplacement').val();
            trycknamn += "|Övrigt: " + $form.find('#ttother').val();

            $("#EcomOrderLineFieldInput_999_trycknamn").attr('value', trycknamn);
            $("#PRODFORM_PRINT").find("#Trycknamn").attr("value", trycknamn);
            $("#PRODFORM_PRINT").find("#ProductID").attr("value", step1.id);

            var variantId = $(step3.part[step2.id]).find('#ttproduct option:selected').val();
            $("#PRODFORM_PRINT").find("#VariantID").attr("value", variantId);

            var productId = $("#ttproduct").val();
            $("#PRODFORM_CREATEPRINT").find("#ProductID").attr("value", productId);
            $('#printID').val(step1.id);
            $('#printVariantID').val(variantId);
            $('#printVariantText').val('');
            $('#ownPrint').val('');
            $('#printVariantText').val($(step3.part[step2.id]).find('#ttproduct option:selected').html());
        }

        //Om använddaren har valt att ladda upp ett tryck
        if (uploadScreenTransfer) {
            var trycknamn = "";
            var radioselect = $(step3.part[step2.id]).find('input[name=radioprint]:checked');
            $("#PRODFORM_PRINT").find("#Trycknamn").attr("value", "");

            trycknamn = trycknamn + "Fil: " + $("#datafile").val();
            trycknamn = trycknamn + "|Storlek/Antal färger: " + $(step3.part[step2.id]).find('#dfsize option:selected').html();
            trycknamn = trycknamn + "|Placering: " + $(step3.part[step2.id]).find('#dfplacement').val();
            trycknamn = trycknamn + "|Övrigt: " + $(step3.part[step2.id]).find('#dfother').val();

            $("#PRODFORM_PRINT").find("#Trycknamn").attr("value", trycknamn);
            $("#EcomOrderLineFieldInput_999_trycknamn").attr('value', trycknamn);

            $("#PRODFORM_PRINT").find("#ProductID").attr("value", step1.id);
            var variantId = $(step3.part[step2.id]).find('#dfsize option:selected').val();
            $("#PRODFORM_PRINT").find("#VariantID").attr("value", variantId);
            $('#printID').val(step1.id);
            $('#printVariantID').val(variantId);
            $('#ownPrint').val('');
            $('#printVariantText').val($(step3.part[step2.id]).find('#dfsize option:selected').html());
        }

        //Om användaren har valt att välja ett redan uppladdat tryck
        if (pickOldUploadedScreenTransfer) {
            var trycknamn = "";
            var radioselect = $(step3.part[step2.id]).find('input[name=radioprint]:checked');
            $("#PRODFORM_PRINT").find("#Trycknamn").attr("value", "");

            trycknamn = "Tryck: " + step2.name;
            trycknamn = trycknamn + "|Fil: " + $(step3.part[step2.id]).find('label[for=' + radioselect.attr('id') + ']').html();
            trycknamn = trycknamn + "|Storlek/Antal färger: " + $(step3.part[step2.id]).find('#cs3size option:selected').html();
            trycknamn = trycknamn + "|Placering: " + $(step3.part[step2.id]).find('#cs3placement').val();
            trycknamn = trycknamn + "|Övrigt: " + $(step3.part[step2.id]).find('#cs3other').val();

            $("#PRODFORM_PRINT").find("#Trycknamn").attr("value", trycknamn);
            $("#EcomOrderLineFieldInput_999_trycknamn").attr('value', trycknamn);

            $("#PRODFORM_PRINT").find("#ProductID").attr("value", step1.id);
            var variantId = $(step3.part[step2.id]).find('#cs3size option:selected').val();
            $("#PRODFORM_PRINT").find("#VariantID").attr("value", variantId);
            $('#printID').val(step1.id);
            $('#printVariantID').val(variantId);
            $('#ownPrint').val('');
            $('#printVariantText').val($(step3.part[step2.id]).find('#cs3size option:selected').html());
        }

        //hiding this step
        step4.panel.hide();
        //showin last step
        step5.panel.show();

        add_saved_state(step4.panel, step5.panel);

        alert($.trim(step5.panel.find('span').html()));
        $clear.unbind('click').appendTo(step5.panel.find('div')).click($.clearButtonFunction);
    }
    //CLEAR BUTTON FUNCTION
    $.clearButtonFunction = function () {
        $("#printchoosen").val("false");
        createOwnScreenTransfer = false;
        uploadScreenTransfer = false;
        pickOldUploadedScreenTransfer = false;

        step2.panel.hide();
        step3.panel.hide();
        step4.panel.hide();
        step5.panel.hide();

        for (var i in step3.part) {
            $(step3.part[i]).hide();
        }

        //resetting saved state
        saved_state = new Array();

        //checking if we should show back button
        show_back_button_check();

        // ... build function to remove transfer if there is one

        step1.panel.show();
    }
    //BACK BUTTON FUNCTIONS
    //creating array to save state
    var saved_state = new Array();
    //creating function to store saved states
    add_saved_state = function (show, hide) {
        saved_state[saved_state.length] = [show, hide];
        show_back_button_check();
    }
    remove_latest_saved_state = function () {
        saved_state.splice(saved_state.length - 1, 1);
        show_back_button_check();
    }
    go_to_saved_state = function () {
        //checking if there is a saved state
        if (saved_state.length) {
            //showing last known previous panel
            saved_state[saved_state.length - 1][0].show();
            if (saved_state[saved_state.length - 1][0].attr('class') == "step step1") {
                $('input[name="screenmethod"]:checked').attr("checked", "");
            }
            //hinding current panel and children if there is any
            saved_state[saved_state.length - 1][1].hide()
            .find('.choosescreen').hide();

            //removing latest saves state
            remove_latest_saved_state();
        }
    }
    //BINDING BACK BUTTON
    $back.click(go_to_saved_state);

    show_back_button_check = function () {
        saved_state.length
            ? $back.parent('div').show()
            : $back.parent('div').hide();
    }

    show_back_button_check();
}

$(document).ready(function () {
    $('.infobox_popper').click(function () {
        $.toggleOverlay({ lock: false });
        $('#' + this.rel).clone().prependTo('body').css({
            'top': ($(document).scrollTop() + 100) + 'px',
            'left': (($(window).width() / 2) - (750 / 2)) + 'px'
        }).prepend($('<a href="">Stäng</a>').css({
            'display': 'block',
            'text-align': 'right',
            'margin-top': '-10px'
        }).click(function () {
            $(this).parent('div.infobox').remove();
            $.toggleOverlay();
            return false;
        })).show();
        return false;
    });
});

function selectPreviousPrint() {
    var partArray = new Array();
    $("#previous_print tr").each(function () {
        var wrappedRow = $(this);
        var part = wrappedRow.find("th").text() + ": " + wrappedRow.find("td").text()
        partArray.push(part);
    });
    var joinedParts = partArray.join("|");
    var previousPrintProductId = $("#previous_print_productId").val();
    var previousPrintVariantId = $("#previous_print_variantId").val();
    var productPrintValue = $("#previous_print_productPrintValue").val();

    $(targetPrintForm).find("#ProductID").val(previousPrintProductId);
    $(targetPrintForm).find("#VariantID").val(previousPrintVariantId);
    $(targetPrintForm).find("#Trycknamn").val(joinedParts);

    $('#printID').val(previousPrintProductId);
    $('#printVariantID').val(previousPrintVariantId);
    $('#ownPrint').val('');
    $('#printVariantText').val(joinedParts);
    $("#EcomOrderLineFieldInput_999_trycknamn").val(joinedParts);

    $("#printchoosen").val("true");

    var alertMessage = $("div.step5 span").text();
    alert(alertMessage);
}

function cartingBuy(id, pageId, buyprint) {
    var success = true;
    if (buyprint == true) {
        $("#inputPrintcolor").each(function () {
            if ($(this).val().length > 0 && $("#printchoosen").val() == "false") {
                alert("Varning!! Du har angett en tryckfärg men inte valt tryck/märkning");
                $('#tab2').click();
                success = false;
                return false;
            }
            else if ($(this).val().length < 1 && $("#printchoosen").val() == "true") {
                alert("Varning!! Du har angett en tryck/märkning men inte valt tryckfärg");
                success = false;
                return false;
            }
            else if ($(this).val().length < 1 && $("#printchoosen").val() == "false") {
                alert("Skapa ett tryck under fliken Tryck/märkning");
                $('#tab2').click();
                success = false;
                return false;
            }
        });
    }
    else if (buyprint == "false") {
        clearButton.click();
        success = true;
    }
    if (success) {
        var postBackCounter = 0;
        var productSent = 0;
        var productSentCount = 1;
        var carttablerows = $("#producttable").find("#tablerow");
        var form = $("#" + id);
        var uploadFileForm = ("#uploadFileForm");
        var productprint = ""; //$("#printSelect input:checked").attr('value');

        //        $.each($("#printSelect input:checked"), function () { productprint += $(this).attr('value') + " ,"; });
        //        if ($("#chkboxttPrint").attr("checked") == true) {
        //            productprint += $("#texttryck #ttproduct :selected").text();
        //        }
        //productprint = productprint[productprint.length -1];

        totalProducts = carttablerows.length;
        var quantityprod = 0;
        var productRef = '<!--@Ecom:Product.Name-->';
        for (var i = 0; i < carttablerows.length; i++) {
            var rowinput = $(carttablerows[i]).find('input');
            $("#EcomOrderLineFieldInput_003_Printcolor").val($(rowinput[0]).val());
            var selectedoption = $(carttablerows[i]).find('#colorselection option:selected').attr('id');
            if (selectedoption != 'start') {
                //$(carttablerows[i]).find("#Trycknamn :input").attr('value', productprint);

                var totprod = 0;
                var nrprod = 0;
                productRef += " (" + $(carttablerows[i]).find('#colorselection option:selected').html() + "): ";


              

                for (var j = 1; j < rowinput.length; j++) {
                    nrprod = 0;
                    var tempid = $(rowinput[j]).attr('id');
                    if (tempid != "Trycknamn") {
                        $("#VariantID").attr('value', tempid + '.' + selectedoption);
                        nrprod = parseInt($(rowinput[j]).attr('value'));
                        if (nrprod > 0) {
                            productRef += $(rowinput[j]).attr('name') + "(" + nrprod + "st), ";
                            $("#Quantity").attr('value', nrprod);
                            quantityprod += nrprod;
                        }
                    }
                    //var name = $(rowinput[j]).attr('name');
                    //var removename = name.length - 1;
                    //$(rowinput[j]).attr('name', name.slice(0, removename));
                    if (nrprod > 0) {
                        if (buyprint == true) {
                            $("#productsHolder").mask("Kopplar trycken till produkten");
                        }
                        else if (buyprint == false) {
                            $("#productsHolder").mask("Uppdaterar kundkorgen");
                        }
                            productSent++;
                            var action = "Default.aspx?ID=" + pageId; ; //form.attr("action");
                            var serialized_form = form.serialize();
                            $.post(action, serialized_form, function (data) {
                                if (productSent == productSentCount) {
                                    $('#uploadFileForm').submit();
                                    //window.location.reload(true);
                                } productSentCount++;
                            });
                        
                    }
//                        var serializedUploadFileForm = uploadFileForm.serialize();
//                        $.post(action, serializedUploadFileForm, function (data) {
//                        });

                    }
            }
            // SEND IF total product is not 0

            //                for (var j = 0; j < rowinput.length; j++) {
            //                    var name = $(rowinput[j]).attr('name');
            //                    $(rowinput[j]).attr('name', name + '-');
            //}
        }

//        if ($("#printchoosen").val() == "true") {

 //          $("#productsHolder").mask("Kopplar trycken till produkten");
//            var printForm = $("#PRODFORM_PRINT");
//            $("#PRODFORM_PRINT").find("#printQuantity").attr("value", quantityprod);
//            var printTemp = $("#PRODFORM_PRINT").find("#Trycknamn").attr("value");
//            $("#PRODFORM_PRINT").find("#Trycknamn").attr("value", printTemp);
//            var serialized_printForm = printForm.serialize();

//            $("#PRODFORM_PRINT").find("#printQuantity").attr("value", 1);
//            $("#PRODFORM_PRINT").find("#VariantID").attr("value", "VO151");
//            var serialized_printForm_startingCost = printForm.serialize();

//            var createPrintForm = $("#PRODFORM_CREATEPRINT");
//            $("#PRODFORM_CREATEPRINT").find("#createprintQuantity").attr("value", quantityprod);
//            var serialized_createprintForm = createPrintForm.serialize();

//            $.when(
//                    $.post("Default.aspx?ID=" + pageId, serialized_printForm),
//                    $.post("Default.aspx?ID=" + pageId, serialized_printForm_startingCost),
//                    $.post("Default.aspx?ID=" + pageId, serialized_createprintForm))
//                 .then(function () {
//                     if ($("#datafile").val().length > 0) {
//                         setTimeout("$('#uploadFileForm').submit()", 2000);
//                     }
//                     else {
//                         window.location.reload(true);
//                     }
//                 });

//        }
//        else {
//            window.location.reload(true);
//        }
//        return false;
    }

}
