/* 
 * rdCompleteOffer.js
 */
var favoritesSeparator = "x";
var searchParams = {
    lang: __LANG__
};
var detachedRdsCards = {};
var detachedRdsRows = {};
var detachedPreloader = {};
var dict = {

    /* detailDomu */
    detailDomu: {
        sk: "Detail domu",
        cz: "Detail domu",
        en: "House details"
    },
    
    /* celkovy pocet */
    celkovyPocet: {
        sk: "Celkový po\u010det: ",
        cz: "Celkový po\u010det: ",
        en: "Total Amount: "
    },

    /* vysledok vyhladavania */
    vysledokVyhladavania: {
        sk: "Výsledok vyh\u013eadávania:",
        cz: "Výsledek vyhledávání:",
        en: "Search result:"
    },

    /* dom */
    dom: {
        sk: "dom",
        cz: "d\u016fm",
        en: "house"
    },

    /* domy */
    domy: {
        sk: "domy",
        cz: "domy",
        en: "houses"
    },

    /* domov */
    domov: {
        sk: "domov",
        cz: "dom\u016f",
        en: "houses"
    },
    
    kriteriamVyhovuje: {
        sk: 'Kritériam vyhovuje',
        cz: 'Kritériím vyhovuje',
        en: 'Meets criteria for'
    },
    
    kriteriamVyhovuju: {
        sk: 'Kritériam vyhovujú',
        cz: 'Kritériím vyhovují',
        en: 'Meets criteria for'
    },
    
    /* vas vyber */
    vasVyber: {
        sk: "Vá\u0161 výber:",
        cz: "Vá\u0161 výběr:",
        en: "Your selection:"
    },

    /* tabulkove */
    tabulkove: {
        sk: "Tabu\u013ekové",
        cz: "Tabulkové",
        en: "Table"
    },
    
    /* obazkove */
    obrazkove: {
        sk: "Obrázkové",
        cz: "Obrázkové",
        en: "Thumbnails"
    },
    
    /* oblubene */
    oblubene: {
        sk: "Ob\u013eúbené",
        cz: "Oblíbené",
        en: "Favorites"
    },

    /* do porovnania */
    doPorovnania: {
        sk: "Do porovnania",
        cz: "Do porovnání",
        en: "For comparison"
    },

    /* pridat k oblubenym */
    pridatKOblubenym : {
        sk: "Prida\u0165 k obľúbeným",
        cz: "P\u0159idat k oblíbeným",
        en: "Add to Favorites"
    },
    
    /* zoradit od najvacsieho */
    orderDesc: {
        sk: "Zoradi\u0165 od najväčšieho",
        cz: "Se\u0159adit od největšího",
        en: "Order from the largest"
    },
    
    /* zoradit od najmensieho */
    orderAsc: {
        sk: "Zoradi\u0165 od najmenšieho",
        cz: "Se\u0159adit od nejmenšího",
        en: "Order from the smallest"
    },
    
    /* pocet izieb */
    pocetIzieb: {
        sk: "Po\u010det izieb",
        cz: "Po\u010det pokojů",
        en: "Number of rooms"
    },
    
    /* cena */
    cena: {
        sk: "Cena",
        cz: "Cena",
        en: "Price"
    },
    
    /* nazov */
    nazov: {
        sk: "Názov",
        cz: "Název",
        en: "Name"
    },
    
    /* zrusit vyber */
    zrusitVyber: {
        sk: 'Zru\u0161iť výber',
        cz: 'Zru\u0161it výběr',
        en: 'Cancel Choice'
    },
    
    /* vysledkySuRadenePodla */
    vysledkySuRadenePodla: {
        sk: 'Výsledky sú radené pod\u013ea',
        cz: 'Výsledky \u0159sou řazeny podle',
        en: 'Results are sorted by'
    },
    
    /* ascY */
    ascY: {
        sk: 'vzostupne',
        cz: 'vzestupn\u011b',
        en: 'ascending'
    },
    
    /* descY */
    descY: {
        sk: 'zostupne',
        cz: 'sestupn\u011b',
        en: 'descending'
    },
    
    /* CenaKlucY */
    CenaKlucY: {
        sk: 'ceny',
        cz: 'ceny',
        en: 'price'
    },
    
    /* ObytneMiestnostiY */
    ObytneMiestnostiY: {
        sk: 'po\u010dtu izieb',
        cz: 'po\u010dtu pokojů',
        en: 'number of rooms'
    },
    
    /* CisloRDY */
    CisloRDY: {
        sk: 'názvu',
        cz: 'názvu',
        en: 'name'
    }
};

$(document).ready(function(){
    if ($('#result-container').length > 0) {
        
        /* zaklad tabulky pre tabulkove zobrazenie rodinnych domov */
        var rdTable = ' \
                    <table id="table-view-content"> \
                        <tr> \
                            <th> \
                                <span class="th-label">' + dict.nazov[__LANG__] + '</span> \
                                <span class="order-buttons"> \
                                    <a id="CisloRD-asc" class="order-by-base" href="#" title="' + dict.orderAsc[__LANG__] + '"> \
                                        <img src="' + __WEB_BASE__ + 'tpl/img/orderArrowAsc.png" alt="asc" /> \
                                    </a> \
                                    <a id="CisloRD-desc" class="order-by-base" href="#" title="' + dict.orderDesc[__LANG__] + '"> \
                                        <img src="' + __WEB_BASE__ + 'tpl/img/orderArrowDesc.png" alt="desc" /> \
                                    </a> \
                                </span> \
                            </th> \
                            <th> \
                                <span class="th-label">' + dict.cena[__LANG__] + '</span> \
                                <span class="order-buttons"> \
                                    <a id="CenaKluc-asc" class="order-by-base" href="#" title="' + dict.orderAsc[__LANG__] + '"> \
                                        <img src="' + __WEB_BASE__ + 'tpl/img/orderArrowAsc.png" alt="asc" /> \
                                    </a> \
                                    <a id="CenaKluc-desc" class="order-by-base" href="#" title="' + dict.orderDesc[__LANG__] + '"> \
                                        <img src="' + __WEB_BASE__ + 'tpl/img/orderArrowDesc.png" alt="desc" /> \
                                    </a> \
                                </span> \
                            </th> \
                            <th> \
                                <span class="th-label">' + dict.pocetIzieb[__LANG__] + '</span> \
                                <span class="order-buttons"> \
                                    <a id="ObytneMiestnosti-asc" class="order-by-base" href="#" title="' + dict.orderAsc[__LANG__] + '"> \
                                        <img src="' + __WEB_BASE__ + 'tpl/img/orderArrowAsc.png" alt="asc" /> \
                                    </a> \
                                    <a id="ObytneMiestnosti-desc" class="order-by-base" href="#" title="' + dict.orderDesc[__LANG__] + '"> \
                                        <img src="' + __WEB_BASE__ + 'tpl/img/orderArrowDesc.png" alt="desc" /> \
                                    </a></span> \
                                </th> \
                            <th>' + dict.pridatKOblubenym[__LANG__] + '</th> \
                            <th>' + dict.doPorovnania[__LANG__] + '</th> \
                        </tr> \
                    </table> \
                    ';
        $(rdTable).appendTo($('#table-view'));
        
        /* popisky zaloziek */
        $('#table-view-action').find('span').text(dict.tabulkove[__LANG__]);
        $('#card-view-action').find('span').text(dict.obrazkove[__LANG__]);
        $('#favorites-action').find('span').text(dict.oblubene[__LANG__]);
        
        
        
        /* nacitanie informacii o vsetkych rd okrem archivnych */
        displayRdFilterPreloader();
        $.ajax({
            type: 'post',
            dataType: 'json',
            url: __WEB_BASE__ + 'ajaxAllRds.php',
            data: searchParams,
            success: function(data) {
                
                var cardContainer = $('#card-view');
                var rowContainer = $('#table-view-content');
                var linkToDetail = '';
                var linkToCompare = '';
                var linkToImg = '';
                $.each(data.rds, function(key, item){
                    if($('#wrapper_' + key).length < 1) {
                        linkToDetail = data.linkBaseToDetail + 'RD-' + item.Rada + '-' + item.Cislo + '.html';
                        linkToCompare = data.linkBaseToCompare + 'RD-' + item.Rada + '-' + item.Cislo + '.html';
                        linkToImg = __WEB_BASE__ + 'files_for_db/rodinne_domy/' + item.Rada + '_' + item.Cislo + '/katalog0.jpg';
                        var cardElem = ' \
                                <div class="video_blok2" id="rdCard_' + key + '"> \
                                    <div class="into"> \
                                        <a class="rdLink" href="' + linkToDetail + '" target="_blank"> \
                                            <img id="rdThumb_'+ key + '"class="lazy" src="' + __WEB_BASE__ + 'tpl/img/lazyLoadBase.gif" data-original="' + linkToImg + '" /> \
                                        </a> \
                                        <div> \
                                            <div class="nazov"> \
                                                <a href="' + linkToDetail + '" target="_blank">' + item.Rada + ' ' + item.Cislo + '</a> \
                                            </div> \
                                            <div class="cena">' + item.CenaKluc + ' ' + data.mena + '</div> \
                                            <div class="link"> \
                                                <a href="' + linkToCompare + '" target="_blank">' + dict.doPorovnania[__LANG__] + '</a> \
                                                <br /> \
                                                <input class="favoritesManipulate" id="CardCisloRD-' + key + '" type="checkbox" /> \
                                                ' + dict.oblubene[__LANG__] + ' \
                                            </div> \
                                        </div> \
                                    </div> \
                                </div> \
                                ';
                        $(cardElem).appendTo(cardContainer);
                        /*fix lazyload pluginu*/
                        $('#rdThumb_' + key).data('original', $('#rdThumb_' + key).attr('data-original'));
                        
                        
                        
                        var rowElem = ' \
                                <tr class="rdRows" id="rdRow_' + key + '"> \
                                    <td> \
                                        <a class="a-link" href="' + linkToDetail + '" target="_blank">' + item.Rada + ' ' + item.Cislo + '</a> \
                                    </td> \
                                    <td>' + item.CenaKluc + ' ' + data.mena + '</td> \
                                    <td>' + item.ObytneMiestnosti + '</td> \
                                    <td> \
                                        <input  class="favoritesManipulate" id="RowCisloRD-' + key + '" type="checkbox"> \
                                    </td> \
                                    <td> \
                                        <a class="a-link" href="' + linkToCompare + '" target="_blank">Do porovnania</a> \
                                    </td> \
                                </tr> \
                                ';
                        $(rowElem).appendTo(rowContainer);
                       
                    } 
                    
                });
                
                /* lazy load pre obrazky */
                $("img.lazy").lazyload();
                
                //zebrovana tabulka
                rowContainer.striper();
                
                
                
                //checkox favorites 
                $('.favoritesManipulate').live('click', function(){
                    var id = $(this).attr('id').split('-')[1];
                    setFavoritesCookie(id);
                    setActiveFavorites();
                })
                
                //nastavenie aktivnych favorites
                setActiveFavorites();
                
                /* zobrazenie celkoveho poctu domov */
                displayTotalAmount(data.total);
                
                removeRdFilterPreloader();
                
                if(homeRequest != null) {
                    ajaxFilterProcess();
                }
            }
        });
        
        
        
        //akcia v tabs controler
        var tabs = ['table-view', 'card-view', 'favorites'];
        $("a.tabs-controler-item").click(function(e) {
            e.preventDefault();
            var who = $(this).attr("id").replace("-action", "");
            for (i=0; i<tabs.length; i++) {
                $("#" + tabs[i]).hide();
                if ($("#" + tabs[i]).hasClass("visible")) {
                    $("#" + tabs[i]).removeClass("visible")
                }
            }

            //pozadie
            var tcClasses = ['table-view-active', 'card-view-active', 'favorites-active'];
            for (i=0; i<tcClasses.length; i++) {
                if ($("#tabs-controler").hasClass(tcClasses[i])) {
                    $("#tabs-controler").removeClass(tcClasses[i]);
                }
            }
            $("#tabs-controler").addClass(who + "-active");

            $("#" + who).addClass("visible").show();
            if ($(this).attr("id") != "favorites-action") {
            //ajaxRDFilterRequest();
            } else {
        //showFavorites();
        }
        });
        
        //set active favorites
        function setActiveFavorites() {
            var favoritesContainer  = $('#favorites');
            favoritesContainer.html('');
            $('.favoritesManipulate').attr({
                checked: ''
            });
            $.each(getFavoritesArr(), function(key, val){
                if($('#CardCisloRD-' + val).length > 0) {
                    $('#CardCisloRD-' + val).attr({
                        checked: 'checked'
                    });
                    
                    var favoriteCard = $('#rdCard_' + val).clone();
                    favoriteCard.find('.favoritesManipulate').attr({
                        id: 'FavoriteCisloRD-' + val
                    });
                    favoriteCard.find('img').attr({
                        src: favoriteCard.find('img').attr('data-original')
                    });
                    favoriteCard.attr({
                        id: 'favoriteCard_' + val
                    }).appendTo(favoritesContainer);
                    
                }
                if($('#RowCisloRD-' + val).length > 0) {
                    $('#RowCisloRD-' + val).attr({
                        checked: 'checked'
                    });
                }
        
            });
        }
    }
    
    if ($('#rdFilterWrapper').length > 0) {
        /* helpIco behavior */
        $('.helpIco')
        .mouseenter(function(){
            $(this).addClass('hover');
            $(this).siblings('.helpTooltip').stop().show();
        })
        .mouseleave(function(){
            $(this).removeClass('hover');
            $(this).siblings('.helpTooltip').stop().hide();
        });
        
        /* paramWrapper behavior */
        $('.paramWrapper')
        .mouseenter(function(){
            $(this).addClass('hover');
            $(this).find('.paramItems').stop().show();
        })
        .mouseleave(function(){
            $(this).removeClass('hover');
            $(this).find('.paramItems').stop().hide();
        });
        
        /* paramItem behavior */
        $('.paramItem')
        .click(function(){
            var id = $(this).attr('id');
            
            ajaxFilterProcess(id);
            
            
        })
        .mouseenter(function() {
            if(!$(this).hasClass('current') && !$(this).hasClass('empty') ){
                $(this).addClass('hover');
            } else {
     
        }
        })
        .mouseleave(function(){
            if($(this).hasClass('hover')){
                $(this).removeClass('hover');
            } 
        });
        
        /* btnExtendedPreferences behavior */
        $('#btnExtendedPreferences')
        .mouseenter(function(){
            $(this).toggleClass('hover');
        })
        .mouseleave(function(){
            $(this).toggleClass('hover');
        })
        .click(function(){
            $(this).toggleClass('down');
            $('#hiddenCategories').slideToggle('300');
        })
        
        /* yourChoiceCancelBtn behavior */
        $('#yourChoiceCancelBtn')
        .live('mouseenter', function(){
            $(this).toggleClass('hover');
        })
        .live('mouseleave', function(){
            $(this).toggleClass('hover');
        })
        .live('click', function(){
            ajaxFilterProcess();
        });
        
        /* order-by-base behavior */
        $('.order-by-base')
        .live('click', function(e) {
            e.preventDefault();
            ajaxFilterProcess($(this).attr('id'));
        });
            
    }
});


//set cookie
function setFavoritesCookie(id)
{

    var idWasRemoved = false;
    var cookieArr = (getFavoritesCookie() != null) ? getFavoritesCookie().split(favoritesSeparator) : [];
    for (i=0; i<cookieArr.length; i++) {
        if(cookieArr[i] == id) {
            cookieArr.splice(i,1);
            idWasRemoved = true;
            break;
        }
    }

    if (idWasRemoved == false) {
        cookieArr[cookieArr.length] = id;
    }
    var value = cookieArr.sort(numberSorter).join(favoritesSeparator);
    var cookie_string = "favoritesRDs=" + escape ( value );

    var date = new Date();
    var expires = new Date ( date.getFullYear() + 10, date.getMonth(), date.getDay() );
    cookie_string += "; expires=" + expires.toGMTString();

	
    cookie_string += "; path=" + escape ( "/" );

    //if ( domain )
    //cookie_string += "; domain=" + escape ( domain );

    //if ( secure )
    //cookie_string += "; secure";

    document.cookie = cookie_string;
}
//get cookie
function getFavoritesCookie()
{
    var results = document.cookie.match ( '(^|;) ?favoritesRDs=([^;]*)(;|$)' );

    if ( results ) {
        return ( unescape ( results[2] ) );
    } 
    else
        return null;
}
//getFavoritesArr
function getFavoritesArr() {
    var str = getFavoritesCookie();
    var arr = (str) ? str.split(favoritesSeparator) : [];
    return arr;
}

//number sorter
function numberSorter(a, b) {
    return a - b;
}

/* zobrazenie vyberovych parametrov */
function displayYourChoice() {
    var params = [];
    $.each(searchParams, function(key, val){
        if(key != 'lang' && key != 'orderBy') {
            var label = '<strong>' + $('#' + key).siblings().html() + '</strong>';
            var value = $('#' + key + '_' + val).find('.itemLabel').html();
            params.push(label + ': ' + value);
        }
        
        if (key == 'orderBy') {
            var obArr = val.split('-');
            var one = dict.vysledkySuRadenePodla[__LANG__];
            var two = dict[obArr[0] + 'Y'][__LANG__];
            var three = dict[obArr[1] + 'Y'][__LANG__];
            params.push('<em>' + one + ' ' + two  + ' ' + three + '</em>');
        }
    });

    var yourChoice = '';
    $('#yourChoice').html(yourChoice).hide();
    if (params.length) {
        yourChoice = ' \
                    <div id="yourChoiceCancelBtn">' + dict.zrusitVyber[searchParams['lang']] + '</div> \
                    <div id="yourChoiceTitle">' + dict.vasVyber[searchParams['lang']] + '</div> \
                    <div id="yourChoiceContent">' + params.join('<br />') + '</div>';
        $('#yourChoice').html(yourChoice).show();
    }
    
    
}

/* zobrazenie poctu domov podla vyberu */
function displayTotalAmount(amount) {
    var dom;
    var kriteria;
    switch (parseInt(amount)) {
        case 1:
            dom = dict.dom[__LANG__];
            kriteria = dict.kriteriamVyhovuje[__LANG__];
            break;
            
        case 2:
        case 3:
        case 4:
            dom = dict.domy[__LANG__];
            kriteria = dict.kriteriamVyhovuju[__LANG__];
            break;
                    
        default:
            dom = dict.domov[__LANG__];
            kriteria = dict.kriteriamVyhovuje[__LANG__];
    }
    var info = '<span class="text">' + kriteria + '</span><span class="number">' + amount + '</span><span class="text">' + dom + '</span>';
    $('#totalAmount').html(info);
}

/* overlay behavior */
function displayRdFilterPreloader() {
    if (detachedPreloader.overlay === undefined) {
        var over = $(document.createElement('div'));
        over
        .css({
            background: '#fff',
            opacity: 0.5,
            width: $(window).width(),
            height: $(document).height(),
            position: 'absolute',
            'z-index': 10000
        })
        .attr({
            id: 'rdFilterOverlay'
        })
        detachedPreloader.overlay = over;
    }
    if (detachedPreloader.preloader === undefined) {
        var preloader = $(document.createElement('img'));
        preloader
        .attr({
            src: __WEB_BASE__ + 'tpl/img/preloader.gif',
            id: 'rdFilterPreloader'
        })
        .css({
            position: 'absolute',
            'z-index': 10001
        });
        detachedPreloader.preloader = preloader;
    }
    detachedPreloader.overlay.prependTo($('body'));
    detachedPreloader.preloader
    .prependTo($('body'))
    .css({
        top: $(window).scrollTop() + ($(window).height() - detachedPreloader.preloader.height())/2,
        left: ($(window).width() - detachedPreloader.preloader.width())/2
    });

}

function removeRdFilterPreloader() {
    if($('#rdFilterPreloader').length > 0) {
        detachedPreloader.preloader = $('#rdFilterPreloader').detach();
    }
    if($('#rdFilterOverlay').length > 0) {
        detachedPreloader.overlay = $('#rdFilterOverlay').detach();
    }
}

/* filtrovaci ajax */
function ajaxFilterProcess(id) {
    displayRdFilterPreloader();
    if(id !== undefined) {
        var paramArr = id.split('_');
        if(paramArr.length > 1) {
            /* parametre selectov */
            if (paramArr[1] == 'none') {
                delete searchParams[paramArr[0]];
            } else {
                searchParams[paramArr[0]] = paramArr[1];
            }
        } else {
            /* parameter pre order by */
            $('.order-by-active').removeClass('order-by-active');
            if (searchParams['orderBy'] == id) {
                delete(searchParams['orderBy']);
            } else {
                searchParams['orderBy'] = id;
                $('#' + id).addClass('order-by-active');
            }
            
        }

    } else {
        if (homeRequest != null) {
            $.each(homeRequest, function(key, val){
                searchParams[key] = val;
            });
        } else {
            /* zrusenie vyberu */
            $.each(searchParams, function(key, val) {
                if (key != 'lang') {
                    delete searchParams[key];
                }
            })
            /* zrusenie highlightingu pre order by */
            $('.order-by-active').removeClass('order-by-active');
        }
    }
    
    $.ajax({
        url: __WEB_BASE__ + 'ajaxFilteredRds.php',
        type: 'post',
        dataType: 'json',
        data: searchParams,
        success: function(response){
            /* spravanie poloziek filtra */
            if(id !== undefined) {
                $('#' + paramArr[0]).find('.current').removeClass('current');
                $('#' + id).addClass('current');
            } else {
                $('.paramItem').each(function(){
                    if($(this).hasClass('current')) {
                        $(this).removeClass('current');
                    }
                });
                $('[id$="_none"]').addClass('current');
                /****/
                if (homeRequest != null) {
                    $.each(homeRequest, function(key, val){
                        $('#' + key + '_none').removeClass('current');
                        $('#' + key + '_' + val).addClass('current');

                    });
                    homeRequest = null;
                }
            }
            
                    
            /* zmena poctov projektov pre jednotlive polozky filtra */
            $.each(response.amounts, function(key, val){
                var elem = $('#' + key);
                elem.find('.amount').html('(' + val + ')');
                if(parseInt(val) === 0) {
                    if(!elem.hasClass('empty')) {
                        elem.addClass('empty');
                    }
                } else {
                    if(elem.hasClass('empty')) {
                        elem.removeClass('empty');
                    }
                }
                        
            });
            
                    
            /* zobrazenie info bloku */
            displayYourChoice();
            displayTotalAmount(response.amounts.total);
                    
            /* zmena zobrazenia domov */
            $('#card-view').find('.video_blok2').each(function(){
                $(this).find('img').attr({
                    src:  $(this).find('img').attr('data-original')
                });
                var rdId = $(this).attr('id').replace('rdCard_', '');
                detachedRdsCards[rdId] = $(this).detach();
            });
                    
            $('#table-view').find('.rdRows').each(function(){
                var rdId = $(this).attr('id').replace('rdRow_', '');
                detachedRdsRows[rdId] = $(this).detach();
            });
                    
            $.each(response.rdsIds, function(key, rdId){
                detachedRdsCards[rdId].appendTo($('#card-view'));
                detachedRdsRows[rdId].appendTo($('#table-view-content'));
            });
            $('#table-view-content').striper();
            removeRdFilterPreloader();
        }
    });
}

