$(document).ready(function () {
  // События селектов с географией.
  $("select.geo_country").change(function () {
    window._country_id = this.value;
    $('select.geo_state').load('/index.php?page=product&mode=ajax&submode=states&country_id='+this.value, function () {
      $(this).change();
      //$('select.geo_city').load('/index.php?page=product&mode=ajax&submode=cities&country_id='+this.value);
    });
  });
  $("select.geo_state").change(function () {
    $('select.geo_city').load('/index.php?page=product&mode=ajax&submode=cities&state_id='+this.value+'&country_id='+window._country_id);
  });

  if ($("select.geo_country").val() != 0) {
      if ($("select.geo_state").val() == 0) {
          $("select.geo_country").change();
      }
      else if ($("select.geo_city").val() == 0) {
        $("select.geo_state").change();
      }
  }

  style_forms();

  // "default" чекбоксы.
  $('form[default]').each(function (form_idx, form)
  {
    var default_value = $(form).attr('default');
    $('input[default],textarea[default]').each(function (idx, el)
    {
      var no_checboxes = window._js_global_default_fields_no_checkboxes || false;
      $(el).attr('old_value', $(el).val());
      if (el.type == 'checkbox')
        $(el).prev('input[type=hidden][name="'+el.name+'"]').remove();
      var checkbox = document.createElement('input');
      checkbox.type = 'checkbox';
      checkbox.title = "Use default value";
      checkbox.checked = $(el).attr('is_default') == "1";
      checkbox.className = 'checkbox-default';
      $(el).before(checkbox);
      $(checkbox).css({'vertical-align': 'top'});
      if (no_checboxes && !$(el).hasClass('force_checkboxes')) {
          $(checkbox).css('display', 'none');
      }
      var replacer = document.createElement('div');
      replacer.className = 'default';
      replacer.style.position = 'absolute';
      replacer.style.visibility = 'hidden';
      replacer.innerHTML = 'default';
      var el_offset = $(el).offset();
      replacer.style.top = el_offset.top+'px';
      replacer.style.left = el_offset.left+'px';
      $(el).after(replacer);
      var onclick = function ()
      {
        el.style.visibility = this.checked ? 'hidden' : 'visible';
        replacer.style.visibility = this.checked ? 'visible' : 'hidden';
        if (this.checked)
        {
          $(el).attr('old_value', $(el).val());
          $('*[name="'+$(el).attr('name')+'"]').val(default_value);
          if (el.type == 'checkbox')
            $(el).before('<input type="hidden" name="'+el.name+'" value="'+default_value+'" />');
        }
        else
        {
          $('*[name="'+$(el).attr('name')+'"]').val($(el).attr('old_value'));
          if (el.type == 'checkbox')
            $(el).prev('input[type=hidden][name="'+el.name+'"]').remove();
        }
      };
      $(checkbox).click(onclick);
      onclick.call(checkbox);
    });
  });

});

function style_forms()
{
  // Поля для ввода даты.
  $('input.date').date_input();

  $('form.form-common input[type="submit"]').addClass('submit').prev('label.field-label').remove();
}

function setCookie (name, value, expires, path, domain, secure)
{
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "; path=/") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name)
{
    var cookie = " " + document.cookie;
    var search = " " + name + "=";
    var setStr = null;
    var offset = 0;
    var end = 0;
    if (cookie.length > 0) {
        offset = cookie.indexOf(search);
        if (offset != -1) {
            offset += search.length;
            end = cookie.indexOf(";", offset)
            if (end == -1) {
                end = cookie.length;
            }
            setStr = unescape(cookie.substring(offset, end));
        }
    }
    return(setStr);
}

function ticketType()
{

    jQuery.fn.makeSelect=function(id){
        var elems=available.split(';');
        for (var i=0; i<elems.length; i++)
        {
            tmp=elems[i].split(':');
            if (tmp[0]==id)
            {
                $(this).empty();
                var len=(tmp[1]>20)?20:tmp[1];
                for (var j=0; j<len; j++)
                    $(this).append($('<option>').attr('value',j+1).html(j+1));
            }
        }
    }

    function _change()
    {
        if (this.value!=-1)
            $(this).next('span').remove().end().next().show().attr('name','tickets['+this.value+']').makeSelect(this.value).end().after($('<span>').html(' # '));    //$(this).next('span').remove().end().next().show().attr('name','tickets['+this.value+']').val('').focus().end().after($('<span>').html(' # '));
        else
            $(this).next().remove().end().next().val('').hide();
    }

    // исходный элемент
    var select=$('select#tickets').attr('name','').change(_change);
    // данные о кол-ве билетов
    var available=select.attr('available');
//console.log(available);
    // удаляем чтобы не мешались)
    select.removeAttr('available');
    //
    //var input=$('<input>').attr('type','text').css({display:'none',width:'60px'});
    var input=$('<select>').css({display:'none',width:'60px'});
    select.after(input);
    //
    var add_link=$('<a>').attr('href','#').css('marginLeft','210px').html('+ add ticket type').click(function(){
        var span=$('<span>').css('paddingLeft','210px');
        var del_link=$('<a>').attr('href','#').html('remove').css('marginLeft','4px').click(function(){
            $(this).parent().remove();
            return false;
        });
        span.append(select.clone().attr('name','').find('option:first').attr('selected','selected').end().change(_change)).
             append(input.clone().css('display','none').val('')).
             append(del_link).
             append('<br/>');
        $(this).before(span);
        return false;
    });
    select.parent().append('<br/>').append(add_link);
}

$(function(){
    //
    ticketType();
});