$(function(){
  $("#complex-rating-select").stars({
      inputType: "select",
      captionEl: $("#stars-cap")
  });
  $("#ambience-rating-select").stars({
      inputType: "select",
      captionEl: $("#stars-cap")
  });
  $("#ltf-rating-select").stars({
      inputType: "select",
      captionEl: $("#stars-cap")
  });
  $("#huts-rating-select").stars({
      inputType: "select",
      captionEl: $("#stars-cap")
  });
  $("#sf-rating-select").stars({
      inputType: "select",
      captionEl: $("#stars-cap")
  });
  $("#cpfr-rating-select").stars({
      inputType: "select",
      captionEl: $("#stars-cap")
  });

    $("#ratingDialog").dialog({
      bgiframe: true,
      resizable: false,
      autoOpen: false,
      width:411,
      modal: true,
      buttons: {
        'Senden': function() {
          $(this).dialog('close');
          setRating();
        },
        'Abbrechen': function() {
          $(this).dialog('close');
        }
      }
    });

    $("#commentDialog").dialog({
      bgiframe: true,
      resizable: false,
      autoOpen: false,
      width:430,
      modal: true,
      buttons: {
        'Senden': function() {
          $(this).dialog('close');
          setComment();
        },
        'Abbrechen': function() {
          $(this).dialog('close');
        }
      }
    });

    $("#responseDialog").dialog({
        bgiframe: true,
        modal: true,
        autoOpen: false,
        width:350,
        dialogClass: 'alert',
        buttons: {
                Ok: function() {
                        $(this).dialog('close');
                }
        }
    });

    $("#commentErrorDialog").dialog({
        bgiframe: true,
        modal: true,
        autoOpen: false,
        width:350,
        dialogClass: 'alert',
        buttons: {
            Ok: function() {
                $(this).dialog('close');
                $('#commentDialog').dialog('open');
            }
        }
    });

    $('#open-rating').click(function() {
        $('#ratingDialog').dialog('open');
    });

    $('#open-comment').click(function() {
        $('#commentDialog').dialog('open');
    });
});

function setRating() {

    var enoughData = false;
    var complex = $("#complex-rating-select").data("stars").options.value;
    var ambience = $("#ambience-rating-select").data("stars").options.value;
    var ltf = $("#ltf-rating-select").data("stars").options.value;
    var huts = $("#huts-rating-select").data("stars").options.value;
    var sf = $("#sf-rating-select").data("stars").options.value;
    var cpfr = $("#cpfr-rating-select").data("stars").options.value;
    var email = $("#ratingEmailIn").val();
    var language = $("#language").val();

    var campgroundId = $("#current_campground_id").val();
    var suitabilityBoxes = document.getElementsByName("suitability");

    if (email == null || email.length < 1) {
        $("#responseDialog").html("Bitte Email-Adresse f&uuml;r eventuelle R&uuml;ckfragen eingeben.");
        $("#responseDialog").dialog('option', 'title', "Email-Adresse fehlt");
        $("#responseDialog").dialog('option', 'buttons', {"Ok": function() {$(this).dialog('close');$('#ratingDialog').dialog('open');}});
        $("#responseDialog").dialog('open');
    }
    else {
	    var json = {"action" : "set_campground_rating",
			"email" : email,
			"language" : language,
			"campground_id" : parseInt(campgroundId)};

	    var suitability = {};

	    for (var i = 0; i < suitabilityBoxes.length; i++) {
		suitability[suitabilityBoxes[i].value] = suitabilityBoxes[i].checked;
	    }

	    if (suitability != null) {
		json["suitability"] = suitability;
	    }

	    if (complex != null && complex > 0) {
		json["complex"] = parseInt(complex);
		enoughData = true;
	    }

	    if (ambience != null && ambience > 0) {
		json["ambience"] = parseInt(ambience);
		enoughData = true;
	    }

	    if (ltf != null && ltf > 0) {
		json["leisure_time_facilities"] = parseInt(ltf);
		enoughData = true;
	    }

	    if (huts != null && huts > 0) {
		json["huts"] = parseInt(huts);
		enoughData = true;
	    }

	    if (sf != null && sf > 0) {
		json["sanitary_facilities"] = parseInt(sf);
		enoughData = true;
	    }

	    if (cpfr != null && cpfr > 0) {
		json["cost_performance_ratio"] = parseInt(cpfr);
		enoughData = true;
	    }

	    if (enoughData) {
		showLoadingBar();
		sendAPIRequest(json, "setRatingResponse");
	    }
    }
}

function setComment() {
    var lastVisitYear = $("#last_visit_year_combo").val();
    var campgroundId = $("#current_campground_id").val();
    var email = $("#emailIn").val();
    var nickname = $("#nicknameIn").val();
    var comment = $("#comment_box").val();
    var language = $("#language").val();

    if (email == null || email.length < 1) {
        $("#responseDialog").html("Bitte Email-Adresse f&uuml;r eventuelle R&uuml;ckfragen eingeben.");
        $("#responseDialog").dialog('option', 'title', "Email-Adresse fehlt");
        $("#responseDialog").dialog('option', 'buttons', {"Ok": function() {$(this).dialog('close');$('#commentDialog').dialog('open');}});
        $("#responseDialog").dialog('open');
    }
    else if (nickname == null || nickname.length < 1) {
        $("#responseDialog").html("Bitte Kurznamen eingeben.");
        $("#responseDialog").dialog('option', 'title', "Kurzname fehlt");
        $("#responseDialog").dialog('option', 'buttons', {"Ok": function() {$(this).dialog('close');$('#commentDialog').dialog('open');}});
        $("#responseDialog").dialog('open');
    }
    else {
        if (comment != null && comment.length > 0) {
            var json = {"action" : "set_campground_comment",
                        "campground_id" : parseInt(campgroundId),
                        "language" : language,
                        "email" : email,
                        "nickname" : nickname,
                        "last_visit_year" : parseInt(lastVisitYear)};

            json["comment"] = comment;
            showLoadingBar();
            sendAPIRequest(json, "setCommentResponse");
        }
    }
}

function setRatingResponse(response) {
    hideLoadingBar();
    var status = response["status"]

    if (status == 0) {
        location.reload();
    }
    else {
        $("#responseDialog").html(response["message"]);
        $("#responseDialog").dialog('option', 'title', "Fehler");
        $("#responseDialog").dialog('option', 'buttons', {"Ok": function() {$(this).dialog('close');$('#ratingDialog').dialog('open');}});
        $("#responseDialog").dialog('open');
    }
}

function setCommentResponse(response) {
    hideLoadingBar();
    var status = response["status"]

    if (status == 0) {
        location.reload();
    }
    else {
        $("#commentErrorDialog").html(response["message"]);
        $("#commentErrorDialog").dialog('option', 'title', "Fehler");
        $("#commentErrorDialog").dialog('open');
    }
}
