/* Minification failed. Returning unminified contents.
(3,22): run-time error CSS1031: Expected selector, found '='
(3,22): run-time error CSS1025: Expected comma or open brace, found '='
 */


var jbRegisterWidget = (function () {

    'use strict';

    var mainDomain = jbDomain || 'jumbula.com',
        rootPath = 'https://' + mainDomain,
        errorText = 'Sorry, something went wrong.',
        initWidget = function () {
            var jq = jQuery.noConflict(true);

            jq(function () {


                jq("body").on("click", "#jb-register-close", function () {
                    hideModal();
                });

                jq('.jb-register-widget-table').each(function () {
                    var loadingImg = '<img style="width:80px;height:80px" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDBweCIgaGVpZ2h0PSIyMDBweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIiBjbGFzcz0ibGRzLXJpcHBsZSIgc3R5bGU9ImJhY2tncm91bmQ6IG5vbmU7Ij48Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSIzMi42MDA3IiBmaWxsPSJub25lIiBuZy1hdHRyLXN0cm9rZT0ie3tjb25maWcuYzF9fSIgbmctYXR0ci1zdHJva2Utd2lkdGg9Int7Y29uZmlnLndpZHRofX0iIHN0cm9rZT0iI2JkNDAzMCIgc3Ryb2tlLXdpZHRoPSIyIj48YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiBjYWxjTW9kZT0ic3BsaW5lIiB2YWx1ZXM9IjA7NDAiIGtleVRpbWVzPSIwOzEiIGR1cj0iMSIga2V5U3BsaW5lcz0iMCAwLjIgMC44IDEiIGJlZ2luPSItMC41cyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiLz48YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiBjYWxjTW9kZT0ic3BsaW5lIiB2YWx1ZXM9IjE7MCIga2V5VGltZXM9IjA7MSIgZHVyPSIxIiBrZXlTcGxpbmVzPSIwLjIgMCAwLjggMSIgYmVnaW49Ii0wLjVzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPjwvY2lyY2xlPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjEyLjYyMjQiIGZpbGw9Im5vbmUiIG5nLWF0dHItc3Ryb2tlPSJ7e2NvbmZpZy5jMn19IiBuZy1hdHRyLXN0cm9rZS13aWR0aD0ie3tjb25maWcud2lkdGh9fSIgc3Ryb2tlPSIjZTBiODNlIiBzdHJva2Utd2lkdGg9IjIiPjxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InIiIGNhbGNNb2RlPSJzcGxpbmUiIHZhbHVlcz0iMDs0MCIga2V5VGltZXM9IjA7MSIgZHVyPSIxIiBrZXlTcGxpbmVzPSIwIDAuMiAwLjggMSIgYmVnaW49IjBzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIvPjxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9Im9wYWNpdHkiIGNhbGNNb2RlPSJzcGxpbmUiIHZhbHVlcz0iMTswIiBrZXlUaW1lcz0iMDsxIiBkdXI9IjEiIGtleVNwbGluZXM9IjAuMiAwIDAuOCAxIiBiZWdpbj0iMHMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIi8+PC9jaXJjbGU+PC9zdmc+" />'
                    jq(this).html('<center>' + loadingImg + '<label>Loading... </label></center>');
                    var id = jq(this).attr('data-id');
                    var clubDomain = jq(this).attr('data-club-domain');
                    var $this = jq(this);
                    var url = "https://" + clubDomain + "." + mainDomain + "/api/widget/GetWidgetInfo?widgetKey=" + id;

                    jq.ajax({
                        type: "GET",
                        url: url,
                        success: function (data) {
                            if (data['Data']) {
                                $this.html(jbGenerateWidget.generateTable(data['Data']));
                            }
                            else {
                                $this.html(errorText);
                            }

                        },
                        error: function (ex) {
                            $this.html(errorText);
                        },
                        complete: function () {
                        }

                    })

                });


                function showModal(programData) {

                    /*When using "iFrame". These codes are usable.*/

                    //if (jq("#register-modal").length) {
                    //    jq('#register-modal').html('');
                    //    jq("#jb-modal-bg").show();
                    //}
                    //else {
                    //    jq("body").append(
                    //        '<div id="jb-modal-bg">' +
                    //        '<button id="jb-register-close" >×</button> ' +
                    //        '<div class="register-modal" id="register-modal"></div > ' +
                    //        '</div>');
                    //}

                    var url = "https://" + programData.clubDomain + "." + mainDomain + "/api/Widget/GenerateWidgetLink?key=" + programData.id;

                    jq.ajax({
                        type: "GET",
                        url: url,
                        success: function (data) {

                            if (data['Data']) {

                                /*When using "iFrame". These codes are usable.*/

                                //jq("#register-modal").html(
                                //    '<iframe ' +
                                //    'id="jb-iframe"' +
                                //    'sandbox="' +
                                //    'allow-forms ' +
                                //    'allow-scripts ' +
                                //    'allow-modals ' +
                                //    'allow-same-origin"' +
                                //    '  src="' + data.Data + '">');

                                //jq('#jb-iframe').on('load', function () {
                                //    jq("#jb-iframe").contents().find("#mainHeader").hide();
                                //    jq('#jb-iframe').width(jq('#register-modal').width());

                                //    return;
                                //});

                                window.open(data.Data);

                            }
                            else {
                                jq("#register-modal").html(errorText);
                            }
                        },
                        error: function (ex) {
                            jq("#register-modal").html(errorText)
                        },
                        complete: function () {
                        }


                    });


                }
                function hideModal() {
                    jq("#jb-modal-bg").hide();
                }

                var eventMethod = window.addEventListener
                    ? "addEventListener"
                    : "attachEvent";
                var eventer = window[eventMethod];
                var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

                // Listen to message from child window
                eventer(
                    messageEvent,
                    function (e) {
                        var key = e.message ? "message" : "data";
                        var data = e[key];

                        if (data == 'orderPaid' || data == 'loggedOut') {
                            hideModal();
                        }

                    },
                    false
                );

            })
        },
        addFiles = function () {

            var script = document.createElement("script");
            script.type = "text/javascript";
            script.id = "jb-jqScriptTag";

            script.src = rootPath + "/Scripts/Libraries/jQuery/jquery-2.1.3.min.js";

            document.getElementsByTagName("head")[0].appendChild(script);

            doAfterScriptLoaded(script, addGenerateWidgetFile);


            var style = document.createElement("link");
            style.rel = "stylesheet";
            style.href = rootPath + "/Content/Student/Register/registerWidget.css";

            document.getElementsByTagName("head")[0].appendChild(style);
        },
        addGenerateWidgetFile = function () {

            var script = document.createElement("script");
            script.type = "text/javascript";
            script.id = "jb-jqScriptTag";

            script.src = rootPath + "/Scripts/Widget/generateWidget.js";

            document.getElementsByTagName("head")[0].appendChild(script);

            doAfterScriptLoaded(script, initWidget);

        },
        setThirdPartyCookie = function (url) {
            var url = rootPath + "/api/widget/SetCookie?returnUrl=" + location.href;
            var isSafari = (/safari/.test(navigator.userAgent.toLowerCase()));
            if (isSafari && !document.cookie.match(/^(.*;)?\s*thirdPartyCookie\s*=\s*[^;]+(.*)?$/)) {
                document.cookie = 'thirdPartyCookie=fixed';
                location.href = url;
            }
        },
        doAfterScriptLoaded = function (script, targetFunction) {

            if (script.readyState) {
                // only required for IE <9
                script.onreadystatechange = function () {
                    if (script.readyState === "loaded" || script.readyState === "complete") {
                        script.onreadystatechange = null;
                        targetFunction();
                    }
                };
            } else {
                //Others
                script.onload = function () {
                    targetFunction();
                };
            }
        };


    /*When using "iFrame". These codes are usable.*/
    //setThirdPartyCookie();
    addFiles();

    return {
        initWidget: initWidget
    };
}());

