$(document).ready(function() {
    $("tr.change_color:odd").css("background-color", "#D4FAFA");
    //$("form#new").reset();
    $("#date_buy").datepicker();
    $("#bperiod").datepicker();
    $("#eperiod").datepicker();
    $(".alttd").tooltip({
      showBody: "::",
      track: true,
      delay: 100,
      opacity: 0.85
    });

    $(".altlink").tooltip({
      showBody: "::",
      track: true,
      delay: 100,
      opacity: 0.85
    });

    $("#target").change(function () {
      $("#opinion_part_table").remove();
      var target_id = $("#target option:selected").val();
      if (target_id != ""){
        var url = "/feedback/new/opinion_part?target_id=" + target_id
        $.get(url, function(data) {
          $("#new").append(data);
          $("#date_event").datepicker();
          bindCity();
          symbolLimit();
          bindBehaviors();
        });
      }
    }).change();
    
    $("#field").change(function () {
      $("#offer_part_table").remove();
      var field_id = $("#field option:selected").val();
      if (field_id != ""){
        var url = "/feedback/new/offer_part?field_id=" + field_id
        $.get(url, function(data) {
          $("#new").append(data);
          symbolLimit();
          bindBehaviors();
        });
      }
    }).change();
    
    $("#city").change(function () {
      $("#metro_tr").remove();
      var city_html = $("#city option:selected").text();
      if (city_html == "Москва" || city_html == "Санкт-Петербург"){
        var url = "/feedback/new/vacancy_part"
        $.get(url, function(data) {
          $("#city_tr").after(data);
          symbolLimit();
          /*bindBehaviors();*/
        });
      }
      if ($("#city").attr("show_adress") == "true"){
          var city_id = $("#city option:selected").val();
          bindCityOnlyForOne(1, city_id, "#reason_td_om");
      }
    }).change();
    
    function bindCity() {
      $("#city_op").change(function () {
        $("#adress_tr").remove();
        var city_id = $("#city_op option:selected").val();
        var target_id = $("#target option:selected").val();
        if (city_id != "" && target_id != ""){
          var url = "/feedback/new/opinion_adress?city_id=" + city_id + "&target_id=" + target_id
          $.get(url, function(data) {
            $("#city_tr_op").after(data);
            /*bindBehaviors();*/
          });
        }
      }).change();
    }
    
    $("#city_qn").change(function () {
      var city_id = $("#city_qn option:selected").val();
      bindCityOnlyForOne(1, city_id, "#city_tr_qn")
    }).change();

    function bindCityOnlyForOne(_tagert_id, _city_id, _insert_id) {
      $("#adress_tr").remove();
      if (_city_id != ""){
        var url = "/feedback/new/opinion_adress?city_id=" + _city_id + "&target_id=" + _tagert_id
        $.get(url, function(data) {
          $(_insert_id).after(data);
          /*bindBehaviors();*/
        });
      }
    }
    
    var bindBehaviors = function() {
      $("#confirm_b").click(function () {
        var elem = $("[class='no']");
        var key = true;
        var error_id;
        $.each(elem, function(){
            if ($(this).attr("value") == null || $(this).attr("value") == ""){
                key = false;
                error_id = $(this).attr("id");
            }
        });
        $.each($("[id='date_event']"), function(){
            if ($(this).attr("value") == null || $(this).attr("value") == ""){
                key = false;
                error_id = $(this).attr("id");
            }
        });
        var valid = ckeckMail($("#email").val());
        var alert_message = "Поля отмеченные звездочкой (*) обязательны к заполнению!"
        if (!valid){
          key = false;
          error_id = "email";
          alert_message = "Некорректный e-mail: " + $("#email").val();
        }
        if(key){
            popUpWindow();
        }else{
            alert(alert_message);
            $("#" + error_id).focus();
        }
      });
    }
        
    var popUpWindow = function() {
      $("#new").hide("slow");
      $("#notice").hide("slow");
      var data = "<table class='data'>";
      var disp_name = "";
      $.each($("#new :input"), function(){
        name_show = "label[for='" + $(this).attr("name") + "']";
        disp_name = $(name_show).text();
        if(this.type != "button" && this.type != "reset") {
          if ($(this).is("select")) {
            data += "<tr><td class='left'>" + disp_name + "</td><td class='right'>" + $("#" + this.id + " option:selected").text() + "</td></tr>";
          }else if ((this.type == "radio" || this.type == "checkbox") && !this.checked) {
            // ignore this item
          }else {
            data += "<tr><td class='left'>" + disp_name + "</td><td class='right'>" + $(this).val() + "</td></tr>";
          }
        }
      });
      data +="<tr><td class='left_button'><input type='button' name='save_b' value='Все правильно' id='save_b'></td><td class='right_button'><input type='button' id='edit_b' value='Исправить'></td></tr></table>";
      $("#claim_view").html(data);
			$("#claim_view").show("slow");
			$("#claim_view").css("top");
      $("#save_b").click(function () {
        $("#claim_view").hide(2000);
        $("#new").submit();
      });
      $("#edit_b").click(function () {
        $("#new").show("slow");
        $("#notice").show("slow");
        $("#claim_view").hide("slow");
      });
    }
    
    bindBehaviors();
    
    
    
    
    var ckeckMail = function (email){
      var valid = true;
      var myAtSymbolAt = email.indexOf('@');
      var myLastDotAt = email.lastIndexOf('.');
      var mySpaceAt = email.indexOf(' ');
      var myLength = email.length;
      // at least one @ must be present and not before position 2
      // @yellow.com : NOT valid
      // x@yellow.com : VALID
      if (myAtSymbolAt < 1 ) 
       {valid = false}
      // at least one . (dot) afer the @ is required
      // x@yellow : NOT valid
      // x.y@yellow : NOT valid
      // x@yellow.org : VALID
      if (myLastDotAt < myAtSymbolAt) 
       {valid = false}
      // at least two characters [com, uk, fr, ...] must occur after the last . (dot)
      // x.y@yellow. : NOT valid
      // x.y@yellow.a : NOT valid
      // x.y@yellow.ca : VALID
      if (myLength - myLastDotAt <= 2) 
       {valid = false}
      // no empty space " " is permitted (one may trim the email)
      // x.y@yell ow.com : NOT valid
      if (mySpaceAt != -1) 
       {valid = false}
      return valid
    }
    
    //Двойной щелчок по строке для ее редактирования
    $("#log td[id^='comment_td_']").dblclick(function () {
    		var offset = $(this).offset();
        var tr = $(this).parent();
        var id = tr.attr("id");
        if (id != null){
					$("div#message").hide();
          $("div#update").hide();
					$("div#update").css("top", offset.top-100);
          $("div#update").css("left", offset.left-500);
          $("div#update").show("slow");
          var com = $(this).attr("full_value");
          $("input#position_id").val(id);
          $("textarea#comment").val(com);
          $("td#position_num").html(id);        
        }
    });

    //Закрыть окно редактирования
    $("div#update input#close").click(function () {
        $("div#update").fadeOut("slow");
    });

    //Завершить редактирование заявки
    $("#update_b").click(function () {
        $("div#update").hide(2000);
        $("form#filter_form").submit();
    });
    
    //------------------------------------------------------------------------//
    
    //клик по нужным ячейкам для полного отображения содержимого для его копирования
    $("#log td.alttd").click(function () {
        openMessage($(this));
    });
    
    $("#no_update td.alttd").click(function () {
        openMessage($(this));
    });
    
   var openMessage = function(elem){
   			var offset = elem.offset();
        var id = elem.attr("object_id");
        if (id != null){
          $("div#update").hide();
          $("div#message").hide();
          $("div#message").css("top", offset.top-100);
          $("div#message").css("left", offset.left-300);
          $("div#message").show("slow");
          var com = elem.attr("full_value");
          $("div#message textarea#comment_msg").val(com);
          $("div#message td#position_msg_num").html(id);        
        }
   }
    //Закрыть окно полного просмотра
    $("div#message input#close").click(function () {
        $("div#message").fadeOut("slow");
        $("div#message textarea#comment_msg").val("");
    });

    //------------------------------------------------------------------------//
    
    $("#filter_b").click(function () {
        $("#filter_form").submit();
    });

    $(".page_href").click(function () {
        $("#page").val($(this).html());
        $("#filter_form").submit();
    });
    
    
    
    var symbolLimit = function() {
      $("textarea").keyup(function(){
        if($(this).val().length > 2713){
          $(this).val($(this).val().substr(0, 2713));
        }
      });
    }
    
    symbolLimit();
    
    // 1 - Статус "Новая"
    $(".status_reaction").change(function () {
      var status_id = $(this).val();
      var object_id = $(this).attr("object_id")
      var class_name = $(this).attr("class_name")
      var feedback_user_id = $("#feedback_user").attr("feedback_user_id")
      if (status_id != 1 && status_id != null){
        var url = "/feedback/update/status?class_name=" + class_name + "&status_id=" + status_id + "&object_id=" + object_id + "&feeedback_user_id=" + feedback_user_id
        $.get(url);
      }
    });   
});

