/*
    We show a  message, if the browser Back-Button was clicked
*/
window.onbeforeunload = function () {
   if(detailPage){
      if(sprachkz == "F"){
          return "Si vous cliquez sur le bouton « Retour arrière » de votre navigateur, vous quittez la fenêtre de recherche. Veuillez utiliser à la place le bouton « Fermer ».";
      } else if(sprachkz == "E"){
          return "Pressing the Back button of your browser means leaving the search page. Please use the “Close” button instead.";
      } else if(sprachkz == "I"){
          return "Premendo il pulsante “Indietro“ del browser la ricerca verrà interrotta. Utilizzare, invece, il pulsante “Chiudi”.";
      } else {
          return "Wenn Sie den Back-Knopf Ihres Browsers betätigen, werden Sie die Suche verlassen. Bitte verwenden Sie stattdessen den \"Schliessen\" Knopf.";
      }
   }
}

/*
    Global-flag to indicate if "Merkliste"-Checkbox was clicked
*/
var merklisteEvent = false;

/*
    Global-flag to indicate if we show the detail page
*/
var detailPage = false;

/*
    Ajax-call for page setup
 */
$(function(){
    setMerklisteEntry(0);
});

/*
    Generates Result-List
*/
function getResultList() {

    var serializedForm = $(".form-search-simple").serialize();
    var sortparam="?tag_s_1_ausstellerName=asc";

    flobu.enable();

    $.ajax({
       type: "POST",
       url:  contextPath + "/ajax/result-list" + sortparam,
       data: serializedForm,
       success: function(html){
           $("#container-result-list").replaceWith(html);
           unbindTdMerkliste();
           bindTdMerkliste();
           resizeTabContainer( $("#container-search-simple").height() );
           flobu.disable();
       },
       error: function(){
           flobu.disable();
       }
    });
}

/*
    Generates Result-Detail
*/
function getResultDetail(adrnr, sprachkz) {

    /* Load detail-data on row-click-event only if "Merkliste" - checkbox was not clicked! */
    if(merklisteEvent == false){
        flobu.enable();
        $.ajax({
            type: "POST",
            url:  contextPath + "/ajax/aussteller-detail?adrnr=" + adrnr + "&sprachkz=" + sprachkz,
            success: function(html){
                posLeft = $(".form-search-simple").position().left;
                posTop = $(".form-search-simple").position().top;
                $("#container-result-detail").replaceWith(html);
                $("#container-result-detail").css({ "display":"block", "position":"absolute", "left": posLeft, "top": posTop });
                $("#container-result-list").css({ "display":"none" });
                resizeTabContainer( $("#container-result-detail").height() );
                detailPage = true;
                flobu.disable();
            },
            error: function(){
                flobu.disable();
            }

        });
    } else {
        merklisteEvent = false;
    }
}

/*
    Close Result-Detail
*/
function closeDetail() {
    $("#container-result-detail").hide("slow");
    $("#container-result-list").css({ "display":"block" });
    $("#tab-container").css("height", 'auto');
    detailPage = false;
    //resizeTabContainer($("#container-search-extended").height() );
}

/*
    Deletes or adds "Merkliste" - entry
*/
function setMerklisteEntry(adrnr) {
    if(adrnr!=0){
        merklisteEvent = true;
    }
    $.ajax({
        type: "POST",
        url:  contextPath + "/ajax/merkliste-setter;jessionid=" + jsessionid + "?adrnr=" + adrnr + "&sprachkz=" + sprachkz,
        success: function(html){
            $(".merkliste").html(html);
            unbindTdMerkliste();
            bindTdMerkliste();
        }
    });
}

/*
    jMesa Ajax-Requests
*/
function onInvokeAction(id) {

    flobu.enable();
    setExportToLimit(id, '');

    var parameterString = createParameterStringForLimit(id);
    parameterString = parameterString + "&sprachkz=" + $('#sprachkzAjax').val() +
                      "&suchbegriff=" + encodeURIComponent($('#suchbegriffAjax').val()) +
                      "&landbezeichnung=" + encodeURIComponent($('#landbezeichnungAjax').val());

    $.get(contextPath + '/ajax/result-list?ajax=true&' + parameterString, function(data) {
        $("#container-result-list").replaceWith(data);
        unbindTdMerkliste();
        bindTdMerkliste();
        resizeTabContainer( $("#container-search-simple").height() );
    });

    flobu.disable();
    
}

function onInvokeExportAction(id) {
    var parameterString = createParameterStringForLimit(id);
    parameterString = parameterString + "&sprachkz=" + $('#sprachkzAjax').val() +
                      "&suchbegriff=" + encodeURIComponent($('#suchbegriffAjax').val()) +
                      "&landbezeichnung=" + encodeURIComponent($('#landbezeichnungAjax').val());
    location.href = contextPath + '/csv-export?' + parameterString;
}


/*
    Wait-Cursor
*/
var flobu;
$(function(){
	flobu = new flower_bubble ({
		base_obj: $('.dreispaltig_mitte'),
		base_dir: contextPath + '/images/flobu/',
		background: { css: 'white', opacity: 0.78 },
		flower: { image: 'flower.gif', width: 32, height: 32 },
		block_mode: 'base_obj'
	});
});

/*
    Invert "Merkliste" checkboxes
 */
function invertMerkliste(){
    flobu.enable();
    $(".checkbox-merkliste").each(function (i) {
       if(   $(this).attr("checked")   ){
           $(this).attr("checked","");
       } else {
           $(this).attr("checked","checked");
       }
       setMerklisteEntry($(this).val());
    });
    flobu.disable();
}

function activateMerkliste(){
    flobu.enable();
    $(".checkbox-merkliste").each(function (i) {
       if( ! $(this).attr("checked")   ){
           $(this).attr("checked","checked");
           setMerklisteEntry($(this).val());
       }
    });
    flobu.disable();
}

function deactivateMerkliste(){
    flobu.enable();
    $(".checkbox-merkliste").each(function (i) {
       if($(this).attr("checked")   ){
           $(this).attr("checked","");
           setMerklisteEntry($(this).val());
       }
    });
    flobu.disable();
}

/*
    Bind and Unbind Events on hole checkbox table cell
 */
function unbindTdMerkliste(){
    $(".td-merkliste-link").unbind();
}

function bindTdMerkliste(){
     $(".td-merkliste-link").bind("mouseenter", function(e){
          merklisteEvent = true;
    });
    $(".td-merkliste-link").bind("mouseleave", function(e){
          merklisteEvent = false;
    });
}

function resizeTabContainer(height){
    $.each($.browser, function(i, val) {
        if(i=="mozilla"){
            height = height + 50;
        }
    });
	$("#tab-container").css("height", height);
}
