function getIndexFromId(str, separator)
{
  if(!separator)
    var separator = '_';

  var tmp = str.split(separator);
  var num = tmp[tmp.length - 1];

  if(num)
    return parseInt(num);

  return '';
}

function initLoader(only_loader)
{
  $("#loading")
  .ajaxStart(function(){
    $(this).show();

    if(!only_loader)
    {
      $("#upload_block1, #upload_block3").hide();
      $("#loading2").show();
    }

    var h = 0;
    jQuery('#cont_avasimple_photo img').each(function(){ h += this.height });
    $("#loading").css('top', h/2);
  })
  .ajaxComplete(function(){
    $(this).hide();

    if(!only_loader)
    {
      $("#upload_block2, #upload_block3").show();
      $("#loading2").hide();
    }
  });
}

function showAvatar(data)
{
  var icount = 0;
  var result = '';
  for(i in data)
  {
    result += '<img src="'+data[i].url+'" alt="" border="0" class="img_avasimple_photo" />';
    icount += 1;

    if( !jQuery("#delete_image_"+data[i].index).get(0) )
      jQuery('#fileToUpload'+data[i].index).after("<input type='button' value='x' class='delete_image' id='delete_image_"+data[i].index+"' onclick='deleteImage("+data[i].index+");' />");
  }

  if(poloska_id = document.getElementById("poloska_id").value)
  {
    var poloska_url = "/avasimple/"+poloska_id+".png";
    result += '<img src="' + poloska_url + '" id="avasimple_poloska" alt="" />';
  }

  if(clipart_id = document.getElementById("clipart_id").value)
  {
    var clipart_url = "/images/"+clipart_id+".jpg";
    result += '<img src="' + clipart_url + '" id="form_clipart" alt="" />';
  }
  else
  {
    result += '<img src="/i/blank.gif" id="form_clipart" alt="" />';
  }

  document.getElementById("cont_avasimple_photo").innerHTML = result;

  document.getElementById("photo_count").value = icount;

  jQuery("#form_clipart").click(function(){
    selectClipart('');
  });
}

function ajaxFileUpload(obj)
{
  initLoader();

  $.ajaxFileUpload ({
    url:'/avatar/upload_photo_process',
    secureuri:false,
    fileElementId: obj.id,
    dataType: 'json',
    success: function (data, status, obj) {
      if(typeof(data.error) != 'undefined')
      {
        if(data.error != '')
          alert(data.msg);
        else
          showAvatar(data.msg);

        $('#avasimple_photo').show();
      }

      submit_check();
    },
    error: function (data, status, e) {
      var msg = 'Произошел сбой загрузки.';
      if(data && data.msg)
        msg += ' ' + data.msg;

      alert(msg);
    }
  });

  return false;
}

function deleteImage(index)
{
  initLoader();

  $.post("/avatar/delete_image", { index: index },
    function(data){
      if(!data)
        return;

      showAvatar(data);

      submit_check();
    },
    "json");

  jQuery('#delete_image_' + index).remove();
}

function selectClipart(id, url)
{  $("html").animate({ scrollTop: ($("#avasimple_form").offset().top - 40) }, 300);
  initLoader();

  $.post("/avatar/clipart", { clipart_id: id },
    function(data){
      if(!data)
        return;

      if(url)
        document.getElementById("form_clipart").src = url;
      else
        document.getElementById("form_clipart").src = '/i/blank.gif';

      document.getElementById("clipart_id").value = id;

      submit_check();
  });
}

function effects(obj)
{
  initLoader(true);

  effect_type = obj.id;

  $.post("/avatar/effects", { type: effect_type },
    function(data){
      jQuery('.effects').removeClass('current_effect');
      jQuery(obj).addClass('current_effect');
      jQuery('#eff_id').val(effect_type);

      if(!data)
        return;

      showAvatar(data);

      submit_check();
    },
    "json");
}

function load_poloska()
{
  var poloska_id = document.getElementById("poloska_id").value;
  $.get("/avatar/poloska", {id: poloska_id},
    function(data) {
      document.getElementById("poloska_id").value = data;
      document.getElementById("poloska_id2").src = "/avasimple/"+data+".png";
      document.getElementById("avasimple_poloska").src = "/avasimple/"+data+".png";
      }
    );
}

function submit_check()
{
  if(document.getElementById("photo_count").value==0) //||document.getElementById("clipart_id").value==0
  {
    document.getElementById("avasimple_form").elements['submit'].disabled = true;
    document.getElementById("avasimple_form").elements['submit'].style.display = 'none';
  } else {
    document.getElementById("avasimple_form").elements['submit'].disabled = false;
    document.getElementById("avasimple_form").elements['submit'].style.display = 'block';
  }
}

function check_round(obj)
{
  if(obj)
    var checked = obj.checked;
  else
    var checked = jQuery("#chk_round").attr('checked');

  if(checked)
  {
    jQuery("#roundtop, #roundbtm").css("display", "block");
    jQuery("#round").val("1");
  }
  else
  {
    jQuery("#roundtop, #roundbtm").css("display", "none");
    jQuery("#round").val("0");
  }
}

/* */
function initApp()
{
  jQuery(".load_poloska").click(function(){ load_poloska(); return false; });

  submit_check();

  jQuery('.sel_c').click(function(){
    var iid = getIndexFromId(this.id);
    var iurl = jQuery("#img_" + iid).attr('src');
    selectClipart(iid, iurl);
    return false;
  });

  jQuery("#load_another").click(function(){
    jQuery("#upload_block1").css("display", "block");
    jQuery("#upload_block2").css("display", "none");
    return false;
  });

  jQuery("#form_clipart").click(function(){
    selectClipart('');
  });

  check_round();
  jQuery("#chk_round").change(function(){
    check_round(this);
  });

  var eff_id = jQuery("#eff_id").val();
  if(!eff_id)
    eff_id = 'no';
  jQuery("#" + eff_id).addClass('current_effect');
  jQuery(".effects").click(function(){ effects(this); return false; });
}

