﻿function setClose(pageId, module) {
    if ($('#' + module) == null)
        return;

    var s = $.cookie(pageId);
    if (s == null || s == '')
        return;

    var mas = s.split('&');
    var count = mas.length;

    var ns = ''
    for (var i = 0; i < count; i++) {
        var item = s.split('&')[i];
        if (module == parseInt(item)) {
            var v = item.substring(item.indexOf("v="), item.indexOf(":"));
            item = item.replace(v, 'v=0');
        }

        ns += item + '&';
    }

    setcookie(pageId, ns);

    $('#'+module).remove(); 
}

function setcookie(name, value) {
    var date = new Date();
    date.setTime(date.getTime() + (3 * 24 * 60 * 60 * 1000));
    $.cookie(name, value, { expires: date });
}

function colexp(pageid, module) {
    var c = $.cookie(pageid);
    if (c != null) 
    {
        var mas = c.split('&');

        var ns = '';
        var c;
        for (var i = 0; i < mas.length; i++) 
        {
            if (module == parseInt(mas[i])) 
            {
                c = mas[i].substring(mas[i].indexOf("c="), mas[i].indexOf("c=") + 3);
                
                if(c == 'c=1')
                    mas[i] = mas[i].replace(c, 'c=0');
                else
                    mas[i] = mas[i].replace(c, 'c=1');
            }

            ns += mas[i] + '&';
        }

        setcookie(pageid, ns);

        if (c == 'c=0') {
            $('#' + module + ' > div.b254 > div.t > div.b > div.slideUD').slideUp(500,
                function() 
                {
                    $('#' + module + ' > div.b254 > div.t > div.b > a[class=\"sver\"] img:first').attr("src", "i/but-sver.gif");
                });

                if ($('#' + module + ' > div.b254 > div.t > div.b > div.slideUD').length != 0)
                    $('#' + module + ' > div.b254 > div.t > div.b > div.slideUD > *:not(h2):not(a[class=\"sver\"]):not(a[class=\"close\"])').css("display", "none");
                else
                    $('#' + module + ' > div.b254 > div.t > div.b > *:not(h2):not(a[class=\"sver\"]):not(a[class=\"close\"])').css("display", "none");
            
        }
        else {
            $('#' + module + ' > div.b254 > div.t > div.b > div.slideUD').slideDown(500,
                function() {
                    $('#' + module + ' > div.b254 > div.t > div.b > a[class=\"sver\"] img:first').attr("src", "i/but-!sver.gif");
                });

                if ($('#' + module + ' > div.b254 > div.t > div.b > div.slideUD').length != 0)
                    $('#' + module + ' > div.b254 > div.t > div.b > div.slideUD > *:not(h2):not(a[class=\"sver\"]):not(a[class=\"close\"])').css("display", "block");
                else
                    $('#' + module + ' > div.b254 > div.t > div.b > *:not(h2):not(a[class=\"sver\"]):not(a[class=\"close\"])').css("display", "block");
        }
    }
}

function setModuleState(pageid, module) {

    var c = $.cookie(pageid);
    if (c != null) {
        var mas = c.split('&');

        for (var i = 0; i < mas.length; i++) 
        {
            if (module == parseInt(mas[i])) 
            {
                var c = mas[i].substring(mas[i].indexOf("c="), mas[i].indexOf("c=") + 3);

                if (c == 'c=1') {
                    if ($('#' + module + ' > div.b254 > div.t > div.b > div.slideUD').length != 0)
                        $('#' + module + ' > div.b254 > div.t > div.b > div.slideUD > *:not(h2):not(a[class=\"sver\"]):not(a[class=\"close\"])').css("display", "none");
                    else
                        $('#' + module + ' > div.b254 > div.t > div.b > *:not(h2):not(a[class=\"sver\"]):not(a[class=\"close\"])').css("display", "none");
                        
                    $('#' + module + ' > div.b254 > div.t > div.b > a[class=\"sver\"] img:first').attr("src", "i/but-sver.gif");
                    break;
                }
                else {
                    if($('#' + module + ' > div.b254 > div.t > div.b > div.slideUD').length != 0)
                        $('#' + module + ' > div.b254 > div.t > div.b > div.slideUD > *:not(h2):not(a[class=\"sver\"]):not(a[class=\"close\"])').css("display", "block");
                    else
                        $('#' + module + ' > div.b254 > div.t > div.b > *:not(h2):not(a[class=\"sver\"]):not(a[class=\"close\"])').css("display", "block");
                    
                    $('#' + module + ' > div.b254 > div.t > div.b > a[class=\"sver\"] img:first').attr("src", "i/but-!sver.gif");
                    break;
                }
            }
        }
    }

    $('#' + module + ' > div.b254 > div.t > div.b > h2').css("cursor", "move");
}

function moveModule(pageid, trg, ui, isCrossPh) {
    var c = $.cookie(pageid);
    if (c != null) {
        var modcookies = c.split('&'); //cookie array

        for (var i = 0; i < modcookies.length; i++) {
            if (parseInt(modcookies[i]) == parseInt(ui.item[0].id)) {
                //found cookie of moved module
                //if module was moved in the same placeholder
                var isSamePlaceholder = false;
                //if (trg.className.indexOf(modcookies[i].substring(modcookies[i].indexOf('p=') + 2, modcookies[i].indexOf(']')).replace('_', '-')) != -1)
                if(!isCrossPh)
                    isSamePlaceholder = true;
                else {
                    isSamePlaceholder = false;
                    modcookies[i] = changePlace(modcookies[i]);
                }

                //split into two arrays
                var otherColumnModules = new Array();
                var isAdded = false;

                for (var j = 0; j < modcookies.length; j++) {
                    if (isAdded)
                        j = 0;

                    if (trg.className.indexOf(modcookies[j].substring(modcookies[j].indexOf('p=') + 2, modcookies[j].indexOf(']')).replace('_', '-')) == -1) {
                        otherColumnModules.push(modcookies[j]);
                        modcookies.splice(j, 1);
                        isAdded = true;
                    }
                    else
                        isAdded = false;
                }

                //sort modcookies
                //sortArray(modcookies);

                var sortedMods = $('.' + trg.className.substring(0, trg.className.indexOf(' ')) + ' > div:first > div.clrBlock');
                setCorrectSortOrder(modcookies, sortedMods, trg);

                if (!isSamePlaceholder) {
                    sortedMods = $('.' + changePlace(trg.className.substring(0, trg.className.indexOf(' '))) + ' > div:first > div.clrBlock');
                    setCorrectSortOrder(otherColumnModules, sortedMods, trg);
                }

                var cook = '';
                for (var k = 0; k < modcookies.length; k++) {
                    if (cook != '')
                        cook += '&';

                    cook += modcookies[k];
                }

                for (var k = 0; k < otherColumnModules.length; k++) {
                    if (cook != '')
                        cook += '&';

                    cook += otherColumnModules[k];
                }

                setcookie(pageid, cook);
                break;
            }
        }
    }
}

function sortArray(arr) {
    arr.sort(function(x, y) { return parseInt(x.substring(x.indexOf('s=') + 2, x.indexOf(':c'))) - parseInt(y.substring(y.indexOf('s=') + 2, y.indexOf(':c'))); });
}

function changePlace(str) {
    if (str.indexOf('right') != -1) {
        return str.replace('right', 'left');
    }
    else
        if (str.indexOf('left') != -1) {
        return str.replace('left', 'right');
    }
}

function setCorrectSortOrder(modcookies, sortedMods, trg) {
    //modcookies - cookie array to change sortOrder
    //sortedMods - array of modules that a now on the page in ordered state
    //trg - event.target

    //set correct sortorder
    for (var k = 0; k < sortedMods.length; k++) {
        for (var j = 0; j < modcookies.length; j++) {
            if (parseInt(modcookies[j]) == parseInt(sortedMods[k].id)) {
                modcookies[j] = modcookies[j].replace(modcookies[j].substring(modcookies[j].indexOf('s='), modcookies[j].indexOf(':c')), 's=' + (k + 1))
                break;
            }
        }
    }

    //sortArray(modcookies);
}
