//Файл, отвечающий за управлением отображение и функционированием элемента управления оценки звёздочками

function array_search(needle, haystack) {
  for (var i = 0; i < haystack.length; i++)
    if (haystack[i] == needle)
      return i;
  return false;
}

 jQuery.fn.starManager = function(options) {
    switch (options.arrMarksType) {
      default:
      case "simple-10":
        var arrMarks = new Array(-5, -4, -3, -2, -1, 1, 2, 3, 4, 5);
        var arrMarksTitles = new Array("Очень плохо", "Плохо", "Довольно плохо", "Так себе", "Нормально", "Терпимо", "Хорошо", "Неплохо", "Супер", "Гениально!");
        var splitStarsVal = 2;
        break;
    }

    var marksCnt = arrMarks.length; //Количество звёздочек
    var arrStarsControls = options.arrStarsControls;
    $("stars-stars").remove(); //ДОРАБОТАТЬ!
    var allStars = this;
    allStars.each(function(index) {
      //Формируем элемент управления
      var i = 0;
      var selForm = $("<form></form>")
            .attr("action", "#")
            .attr("method", "POST")
            .attr("id","rating-form-" + index);
      $("<div></div>")
            .attr("id","form_ocv_" + index)
            .appendTo(selForm);
       $("<div></div>")
            .attr("id","mark_title_" + index)
            //.attr("class","mark_title_" + index)
            .attr("class","mark_title")
            .appendTo(selForm);           
      $("<select></select>")
            .attr("name", "selrate" + index)
            .appendTo(selForm.find("#form_ocv_" + index));
      for (i = 0; i < marksCnt; i++) {
        var newOption = $("<option></option>")
          .attr("value", arrMarks[i])
          .html(arrMarksTitles[i])
          .appendTo(selForm.find("div select"));
      }
      selForm.appendTo(allStars.get(index));
      $("<div></div>")
        .insertAfter(selForm);
      $("<div></div>")
        .attr("class", "mark-result")
        .attr("id", "mark-result-" + index)
        .insertAfter(selForm);
      selForm.appendTo(allStars.get(index)); 
    });
    allStars.each(function(i) {
      var disabledValue = false;
      if(arrStarsControls[i]["disabled"])
        disabledValue = true;
      var selectedValue = array_search(arrStarsControls[i]["selected"], arrMarks);
      if (!selectedValue)
        selectedValue = -1;
      //Пропускаем нулевое (или неопределённое) значение
      if ((options.arrMarksType == 'simple-10') && (arrStarsControls[i]["selected"] == 0)) 
        if (arrStarsControls[i]["isMarkSetByAnyone"]) {
          selectedValue = 4;
          //alert(1);
        }
      //alert(selectedValue);
      $("#form_ocv_" + i).stars({ 
          inputType: "select",
          split: splitStarsVal,
          oneVoteOnly: true,
          disabled: disabledValue,
          captionEl: $("#mark_title_" + i),
          selected: selectedValue,
          callback: function(ui, type, value) {
    	      $("#mark-result-" + i).load(W_AJAX + "mark.php?mark=" + value + "&essenceType=" + arrStarsControls[i]['essenceType'] + "&ID_essence=" + arrStarsControls[i]['ID_essence']);
          },
      });
    });
 }
