function updateDistancesInputs(elm) {
  var table = $(elm).parents("table").filter(":first");
  var inputs = $(table).find("input[name=distances[]]");
  if ($(inputs).filter(":last").val() != "") {
     $(table).find("tr")
     .append("<td><input type=\"hidden\" name=\"distance_ids[]\" value=\"\" /><input type=\"text\" name=\"distances[]\" class=\"text ui-widget-content ui-corner-all\" /></td>");
     $(inputs).unbind("keyup");
     $("#calendarEditDialog input[name=distances[]]").keyup(function() {
        updateDistancesInputs($(this));
     });
  }
}
function loadRace(id, tab) {
   if (tab == undefined)
      tab = 0;

   $("#calendarDialog").html("Kraunasi...");
   $.ajax({
      type: "get",
      url: "pages/varzybos.php?id=" + id,
      success: function(html){
         $("#calendarDialog").html(html);
         $("#calendarDialog #tabs").tabs('select', tab);
      }
   });
   $("#calendarDialog").dialog('open');
}
(function( $ ) {
   $.widget( "ui.raceCombobox", {
      _create: function() {
         var self = this,
         select = this.element.hide(),
         selected = select.children(":first-child"),
         value = selected.val() ? selected.text() : "";
         var input = $("<input name=\"" + select.attr('name') + "_c\">")
         .insertAfter(select)
         .val(value)
         .autocomplete({
            height: '200px',
            source: function(request, response) {
               $.getJSON('exec.php?races-json&term=' + request.term, function(data) {
                  $(select).empty();
                  response($.map(data, function(race, i) {
                     var opt = $("<option></option>")
                     .appendTo(select)
                     .val(race.value)
                     .text(race.label_no_year);
                     return {
                        label_no_year: race.label_no_year,
                        label: race.label,
                        value: race.value,
                        option: opt
                     }
                  }));
               });
            },
            focus: function(event, ui) {
               $(input).val(ui.item.label_no_year);
               return false;
            },
            select: function(event, ui) {
               $(input).val(ui.item.label_no_year);
               $(select).children("option").not(ui.item.option).remove();
               self._trigger('onSelect', 0, [ui.item.value]);
               return false;
            },
            change: function(event, ui) {
               if ($(input).val() == "") {
                  $(input).val("");
                  $(select).empty();
               }
               else
                  $.getJSON('exec.php?races-json&term=' + $(input).val(), function(data) {
                     if (data.length == 0 || data[0].label_no_year != $(input).val()) {
                        $(input).val("");
                        $(select).empty();
                     }
                  });
            }
         })
         .addClass("text ui-widget-content ui-corner-all");
      },
      destroy: function() {
         $.Widget.prototype.destroy.apply(this, arguments);
      }
   });
})(jQuery);
$.fn.inputHint = function() {
   $(this).each(function() {
      if ($(this).val() == "")
         $(this).val($(this).attr("title"));
      $(this)
      .focus(function() {
         if ($(this).val() == $(this).attr("title"))
            $(this).val("");
      })
      .blur(function() {
         if ($(this).val() == "")
            $(this).val($(this).attr("title"))
      });
   });
   return this;
}
$.fn.ajaxSearch = function() {
   $(this).each(function() {
      var $panel = $(this).parents(".ui-tabs-panel");
      $(this).click(function() {
         var query = $(this).siblings("input").val();
         if (query == $(this).siblings("input").attr("title"))
            query = "";
         $panel.text("Kraunasi...");
         $.ajax({
            type: "GET",
            url: $(this).attr("href") + query,
            success: function(html){
               $panel.html(html);
               $panel.find("ul.paging").ajaxPaging();
               $panel.find("table.sortable").ajaxSortableTable();
            }
         });
         return false;
      });
   });
   return this;
}
$.fn.ajaxSortableTable = function() {
   $(this).each(function() {
      // jamam einama lentele
      var $table = $(this);
      var $panel = $table.parent();
      // einam per visus headerius
      $('th', $table).each(function(column) {
         // paziurim ar rikiuojamas
         if ($(this).is('.sort')) {
            if ($(this).children("div").size() == 0)
               $(this).wrapInner("<div />");

            $(this).find("a")
            .attr("onclick", "return false;")
            .click(function() {
               return false;
            });

            if ($(this).is(".asc"))
               $(this).find("div").prepend('<span class="ui-icon ui-icon-triangle-1-n"></span>');
            else if ($(this).is(".desc"))
               $(this).find("div").prepend('<span class="ui-icon ui-icon-triangle-1-s"></span>');

            $(this).find("a").andSelf().click(function() {
               $panel.text("Kraunasi...");
               var url = "";
               if ($(this).is(":not(a)"))
                  url = $(this).find("a").attr("href");
               else
                  url = $(this).attr("href");
               $.ajax({
                  type: "GET",
                  url: url,
                  success: function(html){
                     $panel.html(html);
                     $panel.find("ul.paging").ajaxPaging();
                     $panel.find("table.sortable").ajaxSortableTable();
                  }
               });
               return false;
            });
         }
      });
   });
   return this;
}
$.fn.ajaxPaging = function() {
   $(this).each(function() {
      // jamam ul'a
      $pages = $(this);
      // jamam paneli
      $panel = $pages.parent();
      // einam per puslapius
      $pages.find("li a").each(function() {
         $(this).attr("onclick", "return false;");
         // perkeliam click'a nuo href ant evento
         $(this).click(function() {
            $panel.text("Kraunasi...");
            $.ajax({
               type: "GET",
               url: $(this).attr("href"),
               success: function(html){
                  $panel.html(html);
                  $panel.find("ul.paging").ajaxPaging();
                  $panel.find("table.sortable").ajaxSortableTable();
               }
            });
            return false;
         });
      });
   });
   return this;
}

$.fn.richEdit = function() {
    $(this).each(function() {
        $(this).tinymce({
            theme:"advanced",
            plugins:"table,advimage,advlink,inlinepopups,insertdatetime,preview,media,searchreplace,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
            width:"100%",
            theme_advanced_buttons1:"bold,italic,underline,sub,sup,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect",
            theme_advanced_buttons2:"removeformat,forecolor,backcolor,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,image,cleanup,|,code",
            theme_advanced_buttons3:"tablecontrols,|,hr,visualaid,|,charmap,media,|,insertdate,inserttime,preview,fullscreen",
            theme_advanced_toolbar_location:"top",
            theme_advanced_toolbar_align:"left",
            theme_advanced_statusbar_location:"bottom",
            theme_advanced_resizing:true,

            // Location of TinyMCE script
            script_url:'scripts/tiny_mce/tiny_mce.js'

            // Example content CSS (should be your site CSS)
            //content_css:"css/default.css"
        });
    });
    return this;
}

$.fn.alternateTableRows = function() {
   $('tbody tr:not(:has(th)):odd td', this).removeClass('row1').addClass('row0');
   $('tbody tr:not(:has(th)):even td', this).removeClass('row0').addClass('row1');
   return this;
}
$.fn.sortableTable = function() {
   $(this).each(function() {
      // jamam einama lentele
      var $table = $(this);
      // paziurim ar reikes eil. nr. surasyt
      var indices = false;
      if ($table.find("th:first-child").is(".index"))
         indices = true;
      // einam per visus headerius
      $('th', $table).each(function(column) {
         // paziurim ar rikiuojamas
         if ($(this).is('.sort')) {
            if ($(this).children("div").size() == 0)
               $(this).wrapInner("<div />");
            $(this).click(function() {
               // paziurim ka rikiuojam
               var type = 0;
               if ($(this).is(".numeric"))
                  type = 1;
               else if ($(this).is(".date"))
                  type = 2;
               // paziurim i kuria puse rikiuot
               var dir = 1
               if ($(this).is('.asc'))
                  dir = -1;
               // jamam eilutes visas
               var rows = $table.find('tbody > tr').get();
               // randam kiekvienai eilutei palyginimo rakta
               $.each(rows, function(index, row) {
                  if (type == 1) {
                     row.sortKey = parseFloat($(row).children('td').eq(column).text());
                     if (isNaN(row.sortKey))
                        row.sortKey = 0;
                  }
                  else if (type == 2) {
                     var text = $(row).children('td').eq(column).text().split("-");
                     row.sortKey = parseInt(text[0] + text[1] + text[2]);
                  }
                  else
                     row.sortKey = $(row).children('td').eq(column).text().toUpperCase();
               });
               // surikiuojam eilutes pagal surasta rakta
               rows.sort(function(a, b) {
                  if (a.sortKey < b.sortKey) return -dir;
                  if (a.sortKey > b.sortKey) return dir;
                  return 0;
               });
               // sudedam surikiuotas eilutes
               $.each(rows, function(index, row) {
                  // pakeiciam eil. nr.
                  if (indices)
                     $(row).children('td:first-child').text(index + 1);
                  // imetam eilute
                  $table.children('tbody').append(row);
                  // pasalinam palyginimo rakta
                  row.sortKey = null;
               });
               $table.alternateTableRows();
               // nujamam surikiavimo zymejimus
               $table.find('th').removeClass('asc').removeClass('desc');
               // sumetam paveiksliukus
               var $sortHead = $table.find('th').filter(':nth-child(' + (column + 1) + ')');
               if (dir == 1) {
                  $sortHead.removeClass('desc').addClass('asc');
                  $sortHead.siblings().removeClass('desc').removeClass('asc');
                  $table.find('th').find('span').removeClass('ui-icon-triangle-1-n')
                  .removeClass('ui-icon-triangle-1-s')
                  .addClass('ui-icon-none');
                  $sortHead.find('span').removeClass('ui-icon-none')
                  .removeClass('ui-icon-triangle-1-s')
                  .addClass('ui-icon-triangle-1-n');
               } else {
                  $sortHead.removeClass('asc').addClass('desc');
                  $sortHead.siblings().removeClass('asc').removeClass('desc');
                  $table.find('th').find('span').removeClass('ui-icon-triangle-1-s')
                  .removeClass('ui-icon-triangle-1-n')
                  .addClass('ui-icon-none');
                  $sortHead.find('span').removeClass('ui-icon-none')
                  .removeClass('ui-icon-triangle-1-n')
                  .addClass('ui-icon-triangle-1-s');
               }
            });
         }
      });
   });
   return this;
}
$(document).ready(function(){
   $("#confirmDialog").dialog({
      bgiframe: true,
      autoOpen: false,
      resizable: false,
      height:140,
      modal: true,
      overlay: {
         backgroundColor: '#000',
         opacity: 0.5
      },
      buttons: {
         'Gerai': function() {
            exe($("#confirmDialog").attr("action"));
            $(this).dialog('close');
         },
         'Atšaukti': function() {
            $(this).dialog('close');
         }
      },
      open: function(event, ui) {
         $("body").css("overflow", "hidden");
      },
      close: function(event, ui) {
         $("body").css("overflow", "auto");
      }
   });

   $("#infoDialog").dialog({
      bgiframe: true,
      autoOpen: false,
      resizable: true,
      height:500,
      width: "60%",
      modal: true,
      overlay: {
         backgroundColor: '#000',
         opacity: 0.5
      },
      buttons: {
         'Uždaryti': function() {
            $(this).dialog('close');
         }
      },
      open: function() {
         $("body").css("overflow", "hidden");
      },
      close: function() {
         $("body").css("overflow", "auto");
      }
   });

   $(".button:not(.ui-state-disabled)")
   .hover(
      function(){
         $(this).addClass("ui-state-hover");
      },
      function(){
         $(this).removeClass("ui-state-hover");
      }
      )
   .mousedown(
      function(){
         $(this).parents('.fg-buttonset-single:first').find(".fg-button.ui-state-active").removeClass("ui-state-active");
         if( $(this).is('.ui-state-active.fg-button-toggleable, .fg-buttonset-multi .ui-state-active') ){
            $(this).removeClass("ui-state-active");
         }
         else {
            $(this).addClass("ui-state-active");
         }
      }
      )
   .mouseup(
      function(){
         if(! $(this).is('.fg-button-toggleable, .fg-buttonset-single .fg-button,  .fg-buttonset-multi .fg-button') ){
            $(this).removeClass("ui-state-active");
         }
      }
      );
   $("#menu .single")
   .hover(
      function(){
         $(this).addClass("ui-state-active");
         $.each(allUIMenus, function(i){
            if (allUIMenus[i].menuOpen) {
               allUIMenus[i].kill();
            }
         });
      },
      function(){
         $(this).removeClass("ui-state-active");
      }
      );
});

function dialog(dialog, cleanup) {
   if (cleanup == undefined)
      cleanup = true;

   $("#" + dialog).dialog({
      bgiframe: true,
      autoOpen: false,
      height: 500,
      width: "60%",
      modal: true,
      buttons: {
         'Gerai': function() {
            var data = "";
            $("#" + dialog + " form input,textarea,select").removeClass('ui-state-error').each(function() {
               data += "&" + this.name + "=" + this.value;
            });
            data = data.substr(1, data.length - 1);

            $("#" + dialog + " form").ajaxSubmit({
               iframe: true,
               success: function(html){
                  if (html == "OK") {
                     $(this).dialog('close');
                     location.reload();
                  }
                  else {
                     var pairs = html.split("\n");
                     var txt = "<ul>";
                     for (i = 0; i < pairs.length; i++) {
                        var pair = pairs[i].split("\t");
                        if (pair.length == 2) {
                           var elems = "input[name=" + pair[0] + "], ";
                           elems += "textarea[name=" + pair[0] + "], ";
                           elems += "select[name=" + pair[0] + "]";
                           $("#" + dialog + " form " + elems).addClass('ui-state-error');
                           txt += "<li>" + pair[1] + "</li>";
                        }
                        else
                           txt += "<li>" + pair[0] + "</li>";
                     }
                     txt += "</ul>";
                     $("#" + dialog + " #notices").append(txt).effect("highlight", {}, 1500);
                     $("#" + dialog + " .dialog-notice").css("display", "block");
                  }
               }
            });
         },
         'Atšaukti': function() {
            $(this).dialog('close');
         }
      },
      close: function() {
         if (cleanup)
            $("#" + dialog + " form input,textarea")
            .not("#" + dialog + " form :checkbox").val('');
         $("#" + dialog + " form input,textarea").removeClass('ui-state-error');
         $("#" + dialog + " .dialog-notice").css("display", "none");
         if ($(".ui-dialog:visible").length == 0)
            $("body").css("overflow", "auto");
      },
      open: function() {
         $("#" + dialog + " button").addClass("button ui-state-default ui-corner-all");
         $("body").css("overflow", "hidden");
      }
   });
}

function newDialog(wTitle, action, dialog) {
   if (dialog == undefined)
      dialog = "dialog";

   $("#" + dialog).dialog('option', 'width', $(window).width() - 50);
   $("#" + dialog).dialog('option', 'height', $(window).height() - 50);
   $("#" + dialog + ' textarea').css('height', $(window).height() - 600);
   $('#' + dialog + ' form').attr("action", action);
   $('#' + dialog).dialog('option', 'title', wTitle).dialog('open');
}

function editDialog(wTitle, action, inputs, dialog) {
   if (dialog == undefined)
      dialog = "dialog";

   $('#' + dialog + ' form input,textarea').removeClass('ui-state-error')
   .not('#' + dialog + ' form input[type=file]')
   .not('#' + dialog + ' form :checkbox').each(function() {
      var a = $(this);
      for (i = 0; i < inputs.length; i++) {
         if (inputs[i][0] == this.name) {
            this.value = inputs[i][1];
         }
      }
   });
   $("#" + dialog).dialog('option', 'width', $(window).width() - 50);
   $("#" + dialog).dialog('option', 'height', $(window).height() - 50);
   $("#" + dialog + ' textarea').css('height', $(window).height() - 600);
   $('#' + dialog + ' form').attr("action", action);
   $('#' + dialog).dialog('option', 'title', wTitle).dialog('open');
}

function exe(link) {
   $("#noticeBoard").css("display", "none");
   $.ajax({
      type: "GET",
      url: link,
      success: function(html){
         if (html == "OK") {
            location.reload();
         }
         else {
            var pairs = html.split("\n");
            var txt = "<ul>";
            for (i = 0; i < pairs.length; i++) {
               var pair = pairs[i].split("\t");
               txt += "<li>" + pair[1] + "</li>";
            }
            txt += "</ul>";
            $("#noticeBoard #notices").html(txt);
            $("#noticeBoard").effect("highlight", {}, 1500).css("display", "block");
         }
      }
   });
}

function confirmDialog(action, title, text) {
   $("#confirmDialog").attr("action", action);
   $("#confirmDialogText").text(text);
   $('#confirmDialog').dialog('option', 'title', title);
   $('#confirmDialog').dialog('open');
}

function setStages(self, id, stages) {
   elm = document.getElementById(id);
   opts = elm.options.length;
   selid = self.options[self.selectedIndex].value;
   for (var i = 0; i < opts; i++)
      elm.remove(elm.options[i]);
   for (i = 0; i < stages[selid].length; i++) {
      var option = document.createElement("option");
      option.setAttribute("value", stages[selid][i]);
      option.innerHTML = stages[selid][i] + " etapas";
      elm.appendChild(option);
   }
}

function addImage(thumb, image, id, showDel) {
   var num = 4;
	
   var elem = '<a href="' + image + '" class="pic">';
   elem += '<img alt="Nuotrauka" src="' + thumb + '" style="display: none; " />';
   elem += '</a>';

   if (showDel == '1') {
      elem += '<br /><a href="#" onclick="exe(\'exec.php?media-image-remove&id=' + id + '\')">Trinti</a>';
   }

   var size = $("#thumbnails tr:last td a.pic").size();
   var ins = size % num;

   if (size % num == 0) {
      var w = 100 / num;
      var tdd = '<td width="' + w + '%"></td>';
      var trr = '<tr>' + tdd + tdd + tdd + tdd + '</tr>';
      $("#thumbnails").append(trr);
      ins = 0;
   }

   $("#thumbnails tr:last td:eq(" + ins + ")").append(elem);
   $("#thumbnails tr td a.pic img")
   .fadeIn("slow")
   .mouseover(function(){
      $(this).addClass("over");
   })
   .mouseout(function(){
      $(this).removeClass("over");
   });
}

function goTo(href) {
   document.location.href = "index.php?" + href;
}
