var messages=["Nincs megjelenítendő találat! Módosítson a keresési feltételeken!","Nincs kiválasztva terület","Kiválasztva","Összes város","Mutasd"];

var ajax_url="/partnerek/ajax";

var flashmap = {};
var searchresult = {};
var newresult = {};
var newfilter="";
var searchfilter="";

var items_per_page = 20;
$(document).ready(function () {

    if ($("#partnersmap").length > 0) {
        flashmap = new SWFObject("/assets/flash/magyar.swf", "line", "346", "209", "0", "#000000");
        flashmap.addParam("allowScriptAccess", "sameDomain");
        flashmap.addParam("wmode", "transparent");
        flashmap.addParam("flashvars", "urls=/datahu.xml");
        flashmap.write("partnersmap");

        if ($("input[name='all']").is(':checked')) {
            $("input[name='type[]']").attr("checked", false);
        }

        $("#filter_city").change(function (e) {
            filtersend();
        });

        $("#showresult").click(function (e) {
            e.preventDefault();
            e.stopPropagation();
            if (newresult.length>0){
                searchresult = newresult;
                searchfilter = newfilter;
                if(searchresult.length>items_per_page){
                    $("#searchpaginator").pagination(searchresult.length, {
                        items_per_page: items_per_page,
                        callback: handlePaginationClick,
                        num_display_entries: 3,
                        next_text:'&gt;',
                        prev_text:'&lt;',
                        next_show_always:false,
                        prev_show_always:false,
                        num_edge_entries:0
                    });


                } else {
                    showresult(searchresult,0);
                    $("#searchpaginator").html("");
                }
            } else {
                alert(messages[0]);
            }
        });

        $("input[name='type[]']").click(function (e) {

            if ($("input[name='type[]']:checked").length==0) $("input[name='all']").attr("checked", true);

            if (this.checked) {
                $("input[name='all']").attr("checked", false);
            }
            filtersend();
        });

        $("input[name='all']").click(function (e) {
            if (this.checked) {
                $("input[name='type[]']").attr("checked", false);
            } else {
                e.preventDefault();
                e.stopPropagation();

            }
            filtersend();
        });


        $("#partnerstable").hide();
        filtersend();
        areaCode(0);
    }
});

var areas = [messages[1], "Győr-Moson-Sopron megye", "Vas megye", "Zala megye", "Somogy megye", "Veszprém megye", "Komárom-Esztergom megye", "Fejér megye", "Tolna megye", "Baranya megye", "Pest megye", "Budapest", "Bács-Kiskun megye", "Nógrád megye", "Heves megye", "Jász-Nagykun-Szolnok megye", "Csongrád megye", "Békés megye", "Hajdú-Bihar megye", "Borsod Abaúj Zemplén megye", "Szabolcs-Szatmár Bereg megye"];

function areaCode(code) {

    $("input[name=areacode]").val(code);
    $("#areaname").html("&nbsp;");
    if (code) {
        $("#areaname").html('<span class="strong">'+messages[2]+': </span>' + areas[code] + ' <a href="#" onclick="areaCode(0);return false;" ><img style="border:0px;" src="../../images/delete11x11.jpg" width="11" height="11" alt="" /></a>');
    } else {
        $("#partnersmap").html("");
        flashmap.write("partnersmap");
    }
    $.post("/partnerek/ajax", {
        'getcities': code
    },
    function (data) {
        if (data.status) {
            $('#filter_city').html("");
            var c = $('<option value="all" >'+messages[3]+'</option>');
            $('#filter_city').append(c);
            for (var i = 0; i < data.result.length; i++) {
                var c = $('<option value="' + data.result[i].pc_city + '" >' + data.result[i].pc_city + '</option>');
                $('#filter_city').append(c);
            }

        } else {
            $('#filter_city').html("");
            var c = $('<option value="all" >'+messages[3]+'</option>');
            $('#filter_city').append(c);
        }
        filtersend();
    },
    "json");
}



function filtersend() {
    //$("#resultmessage").html('&nbsp;');
    $("#resultmessage").html('&nbsp;<img src="/images/ajax-loader.gif" title="Loading..." style="display:inline; margin-top:5px;"/>');
    var areacode = $("input[name=areacode]").val();
    var citycode = $("select[name=citycode] :selected").val();

    var type = new Array();
    var all = $("input[name=all]")[0].checked;

    if (!all) {
        $.each($("input[name='type[]']:checked"), function () {
            type.push($(this).val());
        });

    }

    $.post(ajax_url, {
        'areacode': areacode,
        'citycode': citycode,
        'type[]': type
    },
    function (data) {
        if (data.status) {
            showresult({},0);
            $("#searchpaginator").html("");
            $("#resultmessage").html(data.message + '<span class="strong">' + data.count + '</span>');
            if($("#resultbutton").hasClass('button_1_fail')){
                $("#resultbutton").removeClass('button_1_fail');
                $("#resultbutton").addClass('button_1');
                $("#resultbutton").html('<a title="'+messages[4]+'" href="#" id="showresult"><span>'+messages[4]+'</span></a>');
                $("#showresult").click(function (e) {
                    e.preventDefault();
                    e.stopPropagation();
                    if (newresult.length>0){
                        searchresult = newresult;
                        searchfilter = newfilter;
                        //$("#keresesi_feltetelek").html(searchfilter);
                        if(searchresult.length>items_per_page){
                            $("#searchpaginator").pagination(searchresult.length, {
                                items_per_page: items_per_page,
                                callback: handlePaginationClick,
                                num_display_entries: 3,
                                next_text:'&gt;',
                                prev_text:'&lt;',
                                next_show_always:false,
                                prev_show_always:false,
                                num_edge_entries:0
                            });
                        } else {
                            showresult(searchresult,0);
                            $("#searchpaginator").html("");
                        }
                    } else {
                        alert(messages[0]);
                    }
                });

            }
            newresult = data.result;
            newfilter = data.filter;

        } else {
            //alert(1)
            $("#resultmessage").html(data.message);
            if($("#resultbutton").hasClass('button_1')){
                $("#resultbutton").removeClass('button_1');
                $("#resultbutton").addClass('button_1_fail');
                $("#resultbutton").html('<span>'+messages[4]+'</span>');
            }
            showresult(0,0);

            newresult = data.result;
            newfilter = data.filter;

        }
    },
    "json");
}



function handlePaginationClick(new_page_index, pagination_container) {
    showresult(searchresult,new_page_index);
    return false;
}



function showresult(data, page) {
    var from=page*items_per_page;
    var c = data.length;
    var to=Math.min(from+items_per_page,c);
    if (c > 0) {
        var table = $("#partnerstable");
        table.show();
        table.children().children(":gt(0)").remove();
        var j = -1;
        var p = 0;
        for (i = from; i < to; i++) {
            var color = "";
            if (i % 2 == 1) color = "odd-col-bg";
            var pc = data[i].partners.length;
            for (j = 0; j < pc; j++) {
                ne = (j != pc - 1);

                var row = $("<tr/>").addClass(ne ? "" : "partner-brd-bottom").addClass(color).append(
                $("<td/>").append(
                $("<p/>").addClass("nomargin").addClass("strong").html((j == 0) ? data[i].pa_name : '&nbsp;'))).append(
                $("<td/>").addClass(ne ? "partner-dotted-bottom" : "").append(
                data[i].partners[j].ps_postcode + " " + data[i].partners[j].ps_city + ", " + data[i].partners[j].ps_address+"<br/>"+ data[i].partners[j].ps_types)).append(
                $("<td/>").addClass(ne ? "partner-dotted-bottom" : "").append(data[i].partners[j].infos)
                );
                table.append(row);
            }
        }

    } else {
        $("#partnerstable").hide();
    }

}
