// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

$(document).ajaxSend(function (event, request, settings) {
  if (typeof(AUTH_TOKEN) == "undefined") return;
  // settings.data is a serialized string like "foo=bar&baz=boink" (or null)
  settings.data = settings.data || "";
  settings.data += (settings.data ? "&" : "") + "authenticity_token=" + encodeURIComponent(AUTH_TOKEN);
});

jQuery.fn.submitWithAjax = function () {
  this.submit(function () {
    $.post(this.action, $(this).serialize(), null, "script");
    return false;
  })
  return this;
};


function positionGiven(overlay, point)
{
    removeMarker();
    createMarker(point, loppis_icon);
}

var gmarker = null;
function createMarker(point, icon) {
    var marker = new GMarker(point, {draggable:true,icon:icon});
    gmarker=marker;
    GEvent.addListener(marker, "dragend", onDragEnd);
    map.addOverlay(marker);
	map.setCenter(point);
    updateCoordinates(point);
}

function removeMarker() {
    if (gmarker != null)
    {
        map.removeOverlay(gmarker);
        gmarker = null;
    }
}

function onDragEnd() {
    //map.setCenter(gmarker.getPoint());
    updateCoordinates(gmarker.getPoint());
}

function updateCoordinates(point)
{
    $('#location_lat').attr('value', point.y);
    $('#location_lng').attr('value', point.x);
}

$(document).ready(function () {
    $("#new_comment").submitWithAjax();

    var advancedMenu = $.cookie('advancedMenuCookie') || 'hidden';
    var extraParamsExist = false;
    $("#advancedSearch input").each(function () {
        if (this.value != '') {
          extraParamsExist = true;
        }
    });
    if (advancedMenu == 'hidden' && !extraParamsExist) {
        $('#formula-one').removeClass("advanced");
        $("#advancedSearch").hide();
        $("#advancedLink").text($("#advancedLinkText").text());
        $("#advancedSearch").find('input').attr('value', '');
    }
    else {
        $('#formula-one').addClass("advanced");
        $("#advancedSearch").show();
        $("#advancedLink").text($("#simpleLinkText").text());
    }
    $("#advancedLink").show();

    var searchEndDate = $.cookie('searchEndDateCookie') || 'hidden';
    if (searchEndDate == 'hidden') {
        $("input.searchEndDate").attr('value', '');
        $(".searchEndDate").hide();
        $("#addEndDateLink").show();
        $("#removeEndDateLink").hide();
    }
    else {
        $(".searchEndDate").show();
        $("#addEndDateLink").hide();
        $("#removeEndDateLink").show();
    }

    $("#addPeriodLink").live("click", function () {
        var new_id = new Date().getTime();
        $("#openPeriods").append(open_period_partial.replace(/NEW_RECORD/g, new_id) );
        return false;
    });

    $("#addDateLink").live("click", function () {
        var new_id = new Date().getTime();
        $("#openDates").append(open_date_partial.replace(/NEW_RECORD/g, new_id) );
        return false;
    });

    $("#addDayLink").live("click", function () {
        //alert($(this).parent().find("div.openDays").html());
        var new_id = new Date().getTime();
        var matches = $(this).parent().find('select').attr('id').match(/attributes_([0-9]+)_/);
        var period_id = matches[1];
        var partial = open_day_partial.replace(/NEW_RECORD/g, new_id);
        $(this).parent().find(".openDays").append(partial.replace(/(open_periods_attributes(_|\]\[))([0-9]+)(_|\]\[)/g, '$1' + period_id + '$4'));
        return false;
    });

    $('.removeNew').live("click", function () {
        $(this).parent().remove();
        return false;
    });

    $('.removeOld').click(function () {
        var sendData = {_method:"delete"};
        sendData["authenticity_token"] = $('#edit_location input[name=authenticity_token]').attr('value');
        $.post($(this).attr('href'), sendData, function (data) {});
        $(this).parent().remove();
        return false;
    }).attr("rel", "nofollow");


    $('.datepicker').datepicker();
    $.datepicker.setDefaults($.extend({showMonthAfterYear: false}, {dateFormat: 'yy-mm-dd'}, $.datepicker.regional['sv']));

    $('#advancedLink').click(function () {
        $('#formula-one').toggleClass("advanced");
        $('#advancedSearch').slideToggle("fast");
        if ($("#formula-one").hasClass("advanced"))
        {
            $(this).text($("#simpleLinkText").text());
            $.cookie('advancedMenuCookie', 'visible', {path: '/'});
        }
        else
        {
            $(this).text($("#advancedLinkText").text());
            $.cookie('advancedMenuCookie', 'hidden', {path: '/'});
            $("#advancedSearch").find('input').attr('value', '');
        }
        return false;
    });

    $("#addEndDateLink").click(function () {
        $('.searchEndDate').show();
        $(this).hide();
        $("#removeEndDateLink").show();
        $.cookie('searchEndDateCookie', 'visible', {path: '/'});
        return false;
    });

    $("#removeEndDateLink").click(function () {
        $('input.searchEndDate').attr('value', '');
        $('.searchEndDate').hide();
        $(this).hide();
        $("#addEndDateLink").show();
        $.cookie('searchEndDateCookie', 'hidden', {path: '/'});
        return false;
    });

    /*$(".regularInfo").click(function () {
        $(this).parent().toggleClass("extended");
        $(this).parent().find(".extendedInfo").slideToggle("fast");
        return false;
    });*/

    $("#addFavoriteLink").click(function () {
        $.get($(this).attr('href'), null, null, "script");
        $(this).hide();
        $("#removeFavoriteLink").show();
        return false;
    });

    $("#removeFavoriteLink").click(function () {
        $.get($(this).attr('href'), null, null, "script");
        $(this).hide();
        $("#addFavoriteLink").show();
        return false;
    });

    $(".addFavoriteLink").click(function () {
        $.get($(this).attr('href'), null, null, "script");
        $(this).hide();
        $(this).parent().find(".removeFavoriteLink").show();
        return false;
    });

    $(".removeFavoriteLink").click(function () {
        $.get($(this).attr('href'), null, null, "script");
        $(this).hide();
        $(this).parent().find(".addFavoriteLink").show();
        return false;
    });

    $(".removeFavoriteUserLink").click(function () {
        $.get($(this).attr('href'), null, null, "script");
        $(this).parent().parent().remove();
        return false;
    });

    $(".star-rating a").live("click", function () {
        $.get($(this).attr('href'), null, null, "script");
        /*var link = $(this).attr('href');
        var percent = link.substr(link.lastIndexOf('=') + 1) * 100 / 5;
        var li = $(this).parent().parent().find("li.current-rating");
        li.css('width', percent + '%');
        li.html()*/
        return false;
    });
});
