

/*
var skin = 0;
var eyes = 0;
var gender = 1;
var hair_color = 0;
var hair_cut = 0;
*/
$(document).ready(function()  {
   $("#gender-male").add("#gender-female").click(function()  {
      var new_gender = ($("#gender-male").attr("checked")) ? 1 : 2;
      //alert(new_gender);
      if (gender != new_gender)  {
         gender = new_gender;
         initialValues();
         showAva();
         showAllMiniObjects();
         showHairRings();
      }
   });

   //gender = ($("#gender-male").attr("checked")) ? 1 : 2;
   switch(gender)  {
      case 1:
         $("#gender-male").attr("checked", 1);
         break;
      case 2:
         $("#gender-female").attr("checked", 1);
         break;
   }

   $("#avatar img").remove();
   $("#avatar").append("<img id='body' src='' class='clothes abs hidden'/>");
   $("#avatar").append("<img id='eyes' src='' class='clothes abs hidden'/>");
   $("#avatar").append("<img id='eyebrows' src='' class='clothes abs hidden'/>");
   $("#avatar").append("<img id='mouth' src='' class='clothes abs hidden'/>");
   $("#avatar").append("<img id='hairs' src='' class='clothes abs hidden'/>");
   $("#avatar").append("<img id='hairrings' src='' class='clothes abs hidden'/>");

   if ("avatar" == PAGE)   {
      $("#avatar").append("<img class='abs hidden iePNG' id='clothes' width='150' height='200' src='" + HOME + "/images/avatars/" + USER_ID + "_clothes.png?" + AVA_NUMBER + "' />");

      moveObjectRelativeTo("clothes", "avatar", 0, 0, "corner");
      $("#clothes").removeClass("hidden");
      $("#clothes").css("z-index", 1000);
   }

   showAllMiniObjects();
   showAva();

   $("#login").change(function() {
      newName();
   });

   $("#login").add("#password").focus(function() {
      $("#error-message").addClass("hidden");
   });
});

function initialValues()
{
   hairs_id = HAIRS[gender][0].clothes_id;
   mouth_id = MOUTH[gender][0].clothes_id;
   eyebrows_id = EYEBROWS[gender][0].clothes_id;
}

function showAllMiniObjects()
{
   showMiniObjects("select-hairsid", HAIRS, HAIR_COLORS[6]);
   showMiniObjects("select-eyebrowsid", EYEBROWS, EYEBROWS_COLORS[6]);
   showMiniObjects("select-mouthid", MOUTH, BODY_COLORS[5]);
}


function newName()
{
   var name = $("#login").val();
   
   if (checkString(name))  {
      name = "Вы &ndash; " + name + "!";
   }  else  {
      name = "Вы &ndash; ...";
   }
   $("#avatar-block h1").html(name);
}

function bodyColor(ind)
{
   body_color = BODY_COLORS[ind];
   show_object("#avatar img#body", BODIES[gender][0], body_color);

   $("#select-bodycolor div a.active").removeClass("active");
   $("#select-bodycolor div a:eq(" + ind + ")").addClass("active");

   $("#save-block p").addClass("hidden");

   mouthId(mouth_id);
}

function eyesColor(ind)
{
   eyes_color = EYES_COLORS[ind];
   show_object("#avatar img#eyes", EYES[gender][0], eyes_color);

   $("#select-eyescolor div a.active").removeClass("active");
   $("#select-eyescolor div a:eq(" + ind + ")").addClass("active");

   $("#save-block p").addClass("hidden");
}

function eyebrowsColor(ind)
{
   eyebrows_color = EYEBROWS_COLORS[ind];
   show_object("#avatar img#eyebrows", get_item(EYEBROWS[gender], eyebrows_id), eyebrows_color);

   $("#select-eyebrowscolor div a.active").removeClass("active");
   $("#select-eyebrowscolor div a:eq(" + ind + ")").addClass("active");

   $("#save-block p").addClass("hidden");
}

function hairsColor(ind)
{
   hairs_color = HAIR_COLORS[ind];
   show_object("#avatar img#hairs", get_item(HAIRS[gender], hairs_id), hairs_color);

   $("#select-hairscolor div a.active").removeClass("active");
   $("#select-hairscolor div a:eq(" + ind + ")").addClass("active");

   $("#save-block p").addClass("hidden");
}

function hairringsColor(ind)
{
   hairrings_color = CLOTHES_COLORS[ind];
   if (hairrings_id != 0)   {
      show_object("#avatar img#hairrings", get_item(HAIRRINGS[gender], hairrings_id), hairrings_color);
   }

   $("#select-hairringscolor div a.active").removeClass("active");
   $("#select-hairringscolor div a:eq(" + ind + ")").addClass("active");

   $("#save-block p").addClass("hidden");
}

function hairsId(id)
{
   var ind = get_item_number(HAIRS[gender], id);
   hairs_id = id;
   show_object("#avatar img#hairs", HAIRS[gender][ind], hairs_color);
   showHairRings();

   $("#select-hairsid div a.active").removeClass("active");
   $("#select-hairsid div a:eq(" + ind + ")").addClass("active");

   $("#save-block p").addClass("hidden");
}

function eyebrowsId(id)
{
   var ind = get_item_number(EYEBROWS[gender], id);
   eyebrows_id = id;
   show_object("#avatar img#eyebrows", EYEBROWS[gender][ind], eyebrows_color);

   $("#select-eyebrowsid div a.active").removeClass("active");
   $("#select-eyebrowsid div a:eq(" + ind + ")").addClass("active");

   $("#save-block p").addClass("hidden");
}

function mouthId(id)
{
   var ind = get_item_number(MOUTH[gender], id);
   mouth_id = id;
   show_object("#avatar img#mouth", MOUTH[gender][ind], body_color);

   $("#select-mouthid div a.active").removeClass("active");
   $("#select-mouthid div a:eq(" + ind + ")").addClass("active");

   $("#save-block p").addClass("hidden");
}

function get_src(item, color)
{
   return HOME + "/images/clothes/" + item.clothes_id + "/" + color + ".png";
}

function show_object(id, item, color)
{
   $(id).attr("src", get_src(item, color));
   $(id).css("left", item.x + "px");
   $(id).css("top", item.y + "px");
   $(id).css("width", item.w + "px");
   $(id).css("height", item.h + "px");
   fixPNG($(id)[0]);
}

function get_item(array, id)
{
   for (var i = 0, len = array.length; i<len; i++) {
      if (array[i].clothes_id == id) return array[i];
   }
   return false;
}

function get_item_number(array, id)
{
   for (var i = 0, len = array.length; i<len; i++) {
      if (array[i].clothes_id == id) return i;
   }
   return -1;
}

function showHairRings()
{
   if ("undefined" == typeof(HAIRRINGS_BINDS[hairs_id])) {
      $("#avatar img#hairrings").add("#select-hairringscolor").addClass("none");
      hairrings_id = 0;
   }  else  {
      hairrings_id = HAIRRINGS_BINDS[hairs_id];
      show_object("#avatar img#hairrings", get_item(HAIRRINGS[gender], hairrings_id), hairrings_color);
      $("#avatar img#hairrings").add("#select-hairringscolor").removeClass("none");
   }
}

function showAva()
{
   show_object("#avatar img#body", BODIES[gender][0], body_color);
   show_object("#avatar img#eyes", EYES[gender][0], eyes_color);
   show_object("#avatar img#eyebrows", get_item(EYEBROWS[gender], eyebrows_id), eyebrows_color);
   show_object("#avatar img#mouth", get_item(MOUTH[gender], mouth_id), body_color);
   show_object("#avatar img#hairs", get_item(HAIRS[gender], hairs_id), hairs_color);

   //hairring situation
   showHairRings();
   
   $("#avatar img").removeClass("hidden");
}


function showMiniObjects(id, data, color)
{
   var selector = $("#" + id + " a");
   var len = data[gender].length;

   for (var i = 0; i < len; i++) {
      var a = selector[i];
      var img = a.firstChild;
      var clothes_id = data[gender][i].clothes_id;

      img.className = "";
      img.src = HOME + "/images/clothes/" + clothes_id + "/mini_" + color + ".png";

      a.href = a.href.replace(/\([0-9]+\)/, "(" + clothes_id + ")");

//      fixPNG(img);
   }
}

function showHairs()
{
   var hairs_number = (gender - 1)*24 + hair_cut;
   var hairs_id = hairs_number + HAIRS_BEGIN_ID;

   $("#hairs").addClass("hidden");
   
   $("#hairs").css("width", HAIR_DATA[hairs_number].w + "px");
   $("#hairs").css("height", HAIR_DATA[hairs_number].h + "px");
   $("#hairs").css("left", HAIR_DATA[hairs_number].x + "px");
   $("#hairs").css("top", HAIR_DATA[hairs_number].y + "px");
   $("#hairs").attr("src", HOME + "/images/clothes/" + hairs_id + "/" + HAIR_COLORS[hair_color] + ".png");

   $("#hairs").removeClass("hidden");
   fixPNG($("#hairs")[0]);
}

function checkString(s)   {
   reg = /^[A-Za-z0-9\-\_\.\@]+/;
   return reg.test(s);
}

function raiseError(mess, jqid)
{
   if (0 == mess.length) mess = "Произошла неизвестная ошибка...";
   $(jqid).text(mess);
   $(jqid).css("color", "red");
   $(jqid).removeClass("hidden");
}

function register()
{
   $("#error-message").addClass("hidden");

   var login = $("#login").val();
   if (0 == login.length)   {
      raiseError("Вы забыли ввести логин!", "#error-message");
      return;
   }
   if (!checkString(login))   {
      raiseError("Логин может содержать только латинские буквы, дефис, цифры и знак подчеркивания.", "#error-message");
      return;
   }

   var password = $("#password").val();
   if (0 == password.length)   {
      raiseError("Вы забыли ввести пароль!", "#error-message");
      return;
   }
   if (!checkString(password))   {
      raiseError("Пароль может содержать только латинские буквы, дефис, цифры и знак подчеркивания.", "#error-message");
      return;
   }

   var params = getParams();
   params.login = login;
   params.password = password;
   params.gender = gender;

   $.get(HOME + "/serv/register.php?" + Math.random(), params,
      function(xml, textStatus) {
         if (0 == $(xml).find("response").length)  {
            raiseError("Ошибка - некорректный ответ сервера", "#error-message");
            return;
         }

         var x_mess = $(xml).find("response message");
         if (0 != x_mess.length)  {
            raiseError(x_mess[0].firstChild.nodeValue, "#error-message");
            return;
         }

         var x_redirect = $(xml).find("response redirect");
         if (0 != x_redirect.length)  {

            if ("undefined" != typeof (pageTracker))  {
               try   {
                  pageTracker._trackPageview("/register"); 
               }
               catch(e) {}
            }

            location.href = x_redirect[0].firstChild.nodeValue;
            return;
         }

         raiseError("Ошибка сервера - некорректная обработка", "#error-message");
      });
}

function getParams()
{
   return {
      mode : "body",
      body_color : body_color,
      eyes_color : eyes_color,
      hairs_id : hairs_id,
      hairs_color : hairs_color,
      hairrings_id : hairrings_id,
      hairrings_color : hairrings_color,
      eyebrows_id : eyebrows_id,
      eyebrows_color : eyebrows_color,
      mouth_id : mouth_id
   };
}

function save()
{
   var params = getParams();
   //alert("fgdf");
   //$.get("serv/store_ava.php?" + Math.random(), { mode:"body", skin: skin, eyes:eyes, hair_cut:hair_cut, hair_color:hair_color },
   $.get(HOME + "/serv/store_ava.php?" + Math.random(), params,
      function(xml, textStatus) {
         if (0 == $(xml).find("response").length)  {
            raiseError("Ошибка - некорректный ответ сервера", "#save-block p");
            return;
         }

         var x_mess = $(xml).find("response message");
         if (0 != x_mess.length)  {
            if ("done" == x_mess[0].firstChild.nodeValue)  {
               $("#save-block p").css("color", "black");
               $("#save-block p").text("Изменения успешно сохранены.");
            }  else  {
               $("#save-block p").css("color", "red");
               $("#save-block p").text("При сохранении возникла ошибка.");
            }
            
            $("#save-block p").removeClass("hidden");
            return;
         }

         raiseError("Ошибка сервера - некорректная обработка", "#save-block p");
      });
}