﻿var checkAllClicked = false;
var checkItemClicked = false;

var saveNoteServiceLocation = "/immobilien/webservices/search_helper.asmx/SaveNote";

var loading = true;

function OnDocumentReady() {
    $("#chkAll").bind('click', function() {
        if (!loading) {
            if (!checkItemClicked) {
                checkAllClicked = true;

                var selectedItems = "";
                var count = 0;

                var checked = $("#chkAll").is(':checked');

                $("#repeaterTable input:checkbox").not("#chkAll").each(function() {

                    if ($(this).is(':checked') != checked) {
                        selectedItems = count == 0 ? $(this).attr("identifier") : selectedItems + "," + $(this).attr("identifier");
                        count++;
                    }
                    $(this).attr("checked", checked);
                });

                RecordChange(selectedItems);

                DisableButtons(!checked);
                checkAllClicked = false;
            }
        }
    });

    $("#DeleteFromFavoritesButton").bind('click', function() {
        window.location.href = removeUrl;
    });

    $("#repeaterTable input:checkbox").not("#chkAll").bind('click', function() {
        if (!loading) {
            if (!checkAllClicked) {

                checkItemClicked = true;

                var identifier = $(this).attr("identifier");

                if ($(this).is(':checked')) {
                    //enable buttons
                    DisableButtons(false);

                    $("#chkAll").attr("checked", "checked");
                }
                else { //if other checkboxes are not checked disable comapre and add ot favorites buttons
                    if ($("#repeaterTable input:checkbox[checked]").not("#chkAll").length == 0) {
                        DisableButtons(true);
                        $("#chkAll").attr("checked", false);
                    }
                }

                //ajax call
                RecordChange(identifier);



                checkItemClicked = false;
            }
        }
    });

    var checkedBoxesCount = 0;
    $("#repeaterTable input:checkbox[checked]").not("#chkAll").each(function() {
        checkedBoxesCount++;
    });

    if (checkedBoxesCount > 0) {
        DisableButtons(false);
    }
    else {
        DisableButtons(true);
    }



    //note functionallity
    $(".txtAreaTD > a").bind('click', function() {
        var idText = $(this).attr("id"); //id="36-editLink
        if (idText != undefined || idText.lenght > 0) {
            var minusPosition = idText.indexOf("-");
            if (minusPosition > -1) {
                var currentText = $(this).text();
                if (currentText == "") {
                    currentText = editLabel;
                }
                else {
                    currentText = currentText == editLabel ? closeLabel : editLabel;
                }
                $(this).text(currentText);
                var id = idText.substring(0, minusPosition);
                $("#txtArea" + id).toggle("slow");
                return false;
            }
        }
    });


    $(".txtAreaTD input[type=button]").bind('click', function() {
        var idText = $(this).attr("id"); //id="36-btnSend
        if (idText != undefined || idText.lenght > 0) {
            var minusPosition = idText.indexOf("-");
            if (minusPosition > -1) {
                var id = idText.substring(0, minusPosition);
                $("#txtArea" + id).slideUp("slow");

                var currentText = $("#" + id + "-editLink").text();
                if (currentText == "") {
                    currentText = editLabel;
                }
                else {
                    currentText = currentText == editLabel ? closeLabel : editLabel;
                }

                $("#" + id + "-editLink").text(currentText);

                $("#divProgress" + id).fadeIn(1000);

                SaveNote(id, $("#txtNote" + id).val());

            }
        }
    });

    var sortControlID = "#" + ddlSortClientID;
    $(sortControlID).bind('change', function() {
        var selected = $(sortControlID + " option[selected]");
        $("#" + submitter).val($(this).attr("id"));
        $("#" + sortOrder).val(selected.val());
    });
}

function SaveNote(id, note) {

    var data = {
        referenceId: id,
        note: note
    };
    $.ajax({
        type: "POST",
        url: saveNoteServiceLocation,
        data:JSON.stringify(data),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            $("#divProgress" + id).hide();
            $("#divResult" + id).fadeIn(1000, function() {
                $("#divResult" + id).hide();
                if (msg.d.length > 50) {
                    $("#noteSpan" + id).text(msg.d.substring(0, 50) + "...");
                }
                else {
                    $("#noteSpan" + id).text(msg.d);
                }
            });
        },
        error: function() {
            $("#divProgress" + id).hide();
            $("#divError" + id).fadeIn(2000, function() {
                $("#divError" + id).hide();
                $("#txtNote" + id).val("");
            });
        }
    });
}

// REMARK: 14.10.2009 - MF: Why this way? The FF is able to wait for the fully initialized DOM before executing this function. The IE not. We need to wait until every
// element has been loaded before executing our ready function. Thatswhy we have to use set timeout.
$(document).ready(function() { setTimeout("OnDocumentReady();", 50) });

function RecordChange(selectedItems) {
    $.ajax({
        type: "POST",
        url: "/immobilien/webservices/selected_items.asmx/ChangeSelection",
        data: "{'selectedItems':' " + selectedItems + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json"
    });
}
function DisableButtons(disable) {
    $("#DeleteFromFavoritesButton").attr("disabled", disable);
}


