﻿// ===========================================================
// PanelsService.asmx
// ===========================================================
function loadPanelsState() {

    dojo.xhrGet({
        url: "./PanelsService.asmx/LoadPanelsState",
        handleAs: "json",
        contentType: "application/json; charset=utf-8",
        load: function(data, args) {
            if (data.d == "") {
                //                alert("No data to ressurect!");
                return;
            }
            var panelsState = dojo.fromJson(data.d);

            for (var i = 0; i < panelsState.length; i++) {
                panelsState[i].tfid = next_tfid++;
                addPanel(panelsState[i]);
            }

            gravitation();

            updatePanels();

            adjustContentArea();
        },
        error: function(error, args) {
            //            alert(error);
        }
    });
}


function savePanelsState() {

    var panelsState = new Array();
    for (var i = 0; i < panels.count; ++i) {
        panelsState.push(panels.item(i));
    }

    if(isLogin())
    {
        dojo.xhrPost({
            url: "./PanelsService.asmx/SavePanelsState",
            //handleAs: "json",
            //contentType: "application/json; charset=utf-8",
            content: {
                "PanelsState": dojo.toJson(panelsState)
            },
            load: function(data, args) {
                //            alert("Saved");
            },
            error: function(error, args) {
                //            alert(error);
            }
        });
    }
    else
    {
        saveStateToCookie(panelsState);
    }
}

function getContent(contentId, tfid) {

    dojo.xhrGet({
        url: "./PanelsService.asmx/GetContent",
        handleAs: "json",
        contentType: "application/json; charset=utf-8",
        content: {
            "ContentId": dojo.toJson(contentId)
        },
        load: function(data, args) {

            var iframe = dojo.byId('panelIframe' + tfid);
            if (iframe != null) {
                iframe.src = data.d.url;
                //alert(data.d.height);
            }
        },
        error: function(error, args) {
            //alert(error);
        }
    });
}

function getContentAndCreatePanel(contentId, title) {

    dojo.xhrGet({
        url: "./PanelsService.asmx/GetContent",
        handleAs: "json",
        contentType: "application/json; charset=utf-8",
        content: {
            "ContentId": dojo.toJson(contentId)
        },
        load: function(data, args) {

            var layoutType = getLayoutTypeByHeight(data.d.height);

            var newpanel = new PanelT(next_tfid++, layoutType, title, contentId, 0, getContentHeight());

            addPanel(newpanel);

            gravitation();

            updatePanels();

            adjustContentArea();

            savePanelsState();

            var iframe = dojo.byId('panelIframe' + newpanel.tfid);
            if (iframe != null) {
                iframe.src = data.d.url;
                //alert(data.d.height);
            }
        },
        error: function(error, args) {
            //alert(error);
        }
    });
}

function getContentAndResizePanel(contentId, current_tfid, title) {

    dojo.xhrGet({
        url: "./PanelsService.asmx/GetContent",
        handleAs: "json",
        contentType: "application/json; charset=utf-8",
        content: {
            "ContentId": dojo.toJson(contentId)
        },
        load: function(data, args) {

            var layoutType = getLayoutTypeByHeight(data.d.height);

            var panel = getPanel(current_tfid);

            if (panel != null) {
                panel.title = title;
                panel.contentId = contentId;
                panel.type = layoutType;
            }

            var i, u, v;

            for (i = 0; i < _map[0].length; ++i) {
                if (_map[0][i] == current_tfid) {
                    u = 0;
                    v = i;
                    break;
                }
                else if (_map[1][i] == current_tfid) {
                    u = 1;
                    v = i;
                    break;
                }
            }

            deleteFromMap(current_tfid);

            moveDown(layoutType, u, v);

            setMap(u, v, layoutType, current_tfid);

            var panel = dojo.byId('dojoUnique' + current_tfid);

            var panelContentHeight = CH - 47;
            if (layoutType > 2) {
                panelContentHeight += Math.floor((parseInt(layoutType) - 1) / 2) * CH;
            }

            var panelBoxHeight = Math.floor((parseInt(layoutType) + 1) / 2) * CH - 13;
            
            dojo.byId('panelHandler' + current_tfid).innerHTML = title;
            dojo.byId('panelBox' + current_tfid).style.height = panelBoxHeight + "px";
            dojo.byId('panelContent' + current_tfid).style.height = panelContentHeight + "px";

            gravitation();

            updatePanels();

            adjustContentArea();

            savePanelsState();

            var iframe = dojo.byId('panelIframe' + current_tfid);
            if (iframe != null) {
                iframe.src = data.d.url;
                //alert(data.d.height);
            }
        },
        error: function(error, args) {
            //alert(error);
        }
    });
}

function GetHTMLMarketList() {

    dojo.xhrGet({
        url: "./PanelsService.asmx/GetMarketList",
        handleAs: "json",
        contentType: "application/json; charset=utf-8",
        load: function(data, args) {
            var i;
            var selMarket = dojo.byId('selMarket');

            for (i = selMarket.length - 1; i >= 0; i--) {
                selMarket.remove(i);
            }

            for (i = 0; i < data.d.length; i++) {
                try {
                    selMarket.add(new Option(data.d[i].name, data.d[i].id), null);
                }
                catch (e) { //in IE, try the below version instead of add()
                    selMarket.add(new Option(data.d[i].name, data.d[i].id));
                }
            }
        },
        error: function(error, args) {
            //alert(error);
        }
    });
}

function GetHTMLNewsCategories() {

    dojo.xhrGet({
        url: "./PanelsService.asmx/GetNewsCategories",
        handleAs: "json",
        contentType: "application/json; charset=utf-8",
        load: function(data, args) {
            var i;
            var selNewsCat = dojo.byId('selNewsCat');

            for (i = selNewsCat.length - 1; i >= 0; i--) {
                selNewsCat.remove(i);
            }

            for (i = 0; i < data.d.length; i++) {
                try {
                    selNewsCat.add(new Option(data.d[i].name, data.d[i].id), null);
                }
                catch (e) { //in IE, try the below version instead of add()
                    selNewsCat.add(new Option(data.d[i].name, data.d[i].id));
                }
            }
        },
        error: function(error, args) {
            //alert(error);
        }
    });
}

function GetHTMLNewsSubCategories(categoryId, val) {

    var i, selNewsSubCat = dojo.byId('selNewsSubCat');

    for (i = selNewsSubCat.length - 1; i >= 0; i--) {
        selNewsSubCat.remove(i);
    }
    
    try {
        selNewsSubCat.add(new Option("Loading...", "0"), null);
    }
    catch (e) { //in IE, try the below version instead of add()
        selNewsSubCat.add(new Option("Loading...", "0"));
    }

    dojo.xhrGet({
        url: "./PanelsService.asmx/GetNewsSubCategories",
        handleAs: "json",
        contentType: "application/json; charset=utf-8",
        content: {
            "CategoryId": dojo.toJson(categoryId)
        },
        load: function(data, args) {

            //var i, selNewsSubCat = dojo.byId('selNewsSubCat');

            for (i = selNewsSubCat.length - 1; i >= 0; i--) {
                selNewsSubCat.remove(i);
            }
            if (data.d.length != 0) {

                for (i = 0; i < data.d.length; i++) {
                    try {
                        selNewsSubCat.add(new Option(data.d[i].name, data.d[i].id), null);
                    }
                    catch (e) { //in IE, try the below version instead of add()
                        selNewsSubCat.add(new Option(data.d[i].name, data.d[i].id));
                    }
                }

                if (val != "")
                    selNewsSubCat.value = val;
            }
            else {

                try {
                    selNewsSubCat.add(new Option('No entries', 'none'), null);
                }
                catch (e) { //in IE, try the below version instead of add()
                    selNewsSubCat.add(new Option('No entries', 'none'));
                }
            }
        },
        error: function(error, args) {
            //alert(error);
        }
    });
}

function GetHTMLContentList(marketId, formFactor, val) {
    
    var i, selContent = dojo.byId('selContent');

    for (i = selContent.length - 1; i >= 0; i--) {
        selContent.remove(i);
    }

    try {
        selContent.add(new Option("Loading...", "0"), null);
    }
    catch (e) { //in IE, try the below version instead of add()
        selContent.add(new Option("Loading...", "0"));
    }
    dojo.xhrGet({
        url: "./PanelsService.asmx/GetContentList",
        handleAs: "json",
        contentType: "application/json; charset=utf-8",
        content: {
            "marketId": dojo.toJson(marketId),
            "formFactor": dojo.toJson(formFactor)
        },
        load: function(data, args) {

            //var i, selContent = dojo.byId('selContent');

            for (i = selContent.length - 1; i >= 0; i--) {
                selContent.remove(i);
            }
            if (data.d.length != 0) {

                for (i = 0; i < data.d.length; i++) {
                    try {
                        selContent.add(new Option(data.d[i].name, data.d[i].id), null);
                    }
                    catch (e) { //in IE, try the below version instead of add()
                        selContent.add(new Option(data.d[i].name, data.d[i].id));
                    }
                }

                if(val!="")
                    selContent.value = val;
            }
            else {

                try {
                    selContent.add(new Option('No entries', 'none'), null);
                }
                catch (e) { //in IE, try the below version instead of add()
                    selContent.add(new Option('No entries', 'none'));
                }
            }
        },
        error: function(error, args) {
            //alert(error);
        }
    });
}

function sendFeedback(email, msg) {

    dojo.xhrPost({
        url: "./PanelsService.asmx/SendFeedback",
        //handleAs: "json",
        //contentType: "application/json; charset=utf-8",
        content: {
            "email": dojo.toJson(email),
            "message": dojo.toJson(msg)
        },
        load: function(data, args) {
            //alert("Message was sent");
        },
        error: function(error, args) {
            //            alert(error);
        }
    });
}