function branding() {} // эта функция при необходимости переопределяется

function init_jquery() {
  if (eval("typeof livegames_start == 'function'")) {
    livegames_start();
  }
  // Брендинг
  $('body').click(function(e) {
    var p=$('#main').offset();
    if (((e.pageX<p.left)||(e.pageX>p.left+970))&&(e.target.tagName=='BODY')&&(e.pageY<=brandingheight)) {
      window.open($('#brandtop').attr('href'));
      return false;
    }
  });
  $('body').mousemove(function(e) {
    var p=$('#main').offset();
    if (((e.pageX<p.left)||(e.pageX>p.left+970))&&(e.pageY<=brandingheight)) {
      $('body').css('cursor','pointer');
    } else {
      $('body').css('cursor','auto');
    }
  });
  //
  if ((cur_sub!='games')&&(cur_sub!='mults')&&(cur_sub!='other')&&(cur_sub!='minigames')&&(cur_sub!='online')&&(cur_sub!='mobile')) {
    cur_sub='games';
  }
  $('#sub_'+cur_sub).show();
  $('#sub_'+cur_sub).next('.submore').show();
  // Главное меню
  $('#menu a').mouseover(function() {
    menu_selected=$(this).attr('href').substr(1);
    if (menu_selected=='games') $('#sub_games').show(); else $('#sub_games').hide();
    if (menu_selected=='minigames') $('#sub_minigames').show(); else $('#sub_minigames').hide();
    if (menu_selected=='online') $('#sub_online').show(); else $('#sub_online').hide();
    if (menu_selected=='mobile') $('#sub_mobile').show(); else $('#sub_mobile').hide();
    if (menu_selected=='mults') $('#sub_mults').show(); else $('#sub_mults').hide();
    if (menu_selected=='other') $('#sub_other').show(); else $('#sub_other').hide();
    $('.submore').hide();
    $('.submore').next('ul').hide();
    $('#sub_'+menu_selected).show();
    $('#sub_'+menu_selected).next('.submore').show();
  });
  $('.submore').children('img').mouseenter(function() {
    $(this).next('ul').slideDown(100);
  });
  $('.submore').mouseleave(function() {
    $(this).children('ul').slideUp(100);
  });
  // Сдвигаем некоторые подменю под соответствующий главный пункт
  $('#sub_online').children().first().css('padding-left','350px');
  $('#sub_other').children().first().css('padding-left','300px');
  // Подсветка строк списков пользователей
  $('#topusers td,#userlist td').hover(function() {
    $(this).addClass('hover')
  },function() {
    $(this).removeClass('hover')
  });
  // Голосование за флешки
  if (typeof(already_voted)=='undefined') {
    $('#stars img').each(function(index,elm) {
      $(elm).attr('id','s'+(index+1));
      $(elm).data('ssrc',$(elm).attr('src'));
    });
    $('#stars img').hover(function() {
      $(this).attr('src','/img/star3.gif');
      $('#stars img').each(function(index,elm) {
        if ($(elm).attr('src')!='/img/star3.gif') {
          $(elm).attr('src','/img/star3.gif');
        } else {
          return false;
        }
      });
    },function() {
      $('#stars img').each(function(index,elm) {
        $(elm).attr('src',$(elm).data('ssrc'));
      });
    });
    $('#stars img').click(function() {
      n=$(this).attr('id').substr(1,1);
      id=$('.swfdesc img').attr('src').slice(13,-4);
      $.ajax({
        url:'/action/vote/'+id+'/'+n,
        success:function(data) {
          data=eval('('+data+')');
          if (data.result=='login_required') {
            showPopup('login');
          } else {
            // Делаем звездочки неактивными
            $('#stars img').unbind();
            //
            if (data.result=='OK') {
              $('#votemsg').html(messages[data.action]);
              $('#s1').data('ssrc','/img/star'+data.s1+'.gif');
              $('#s2').data('ssrc','/img/star'+data.s2+'.gif');
              $('#s3').data('ssrc','/img/star'+data.s3+'.gif');
              $('#s4').data('ssrc','/img/star'+data.s4+'.gif');
              $('#s5').data('ssrc','/img/star'+data.s5+'.gif');
              $('#s1').attr('src','/img/star'+data.s1+'.gif');
              $('#s2').attr('src','/img/star'+data.s2+'.gif');
              $('#s3').attr('src','/img/star'+data.s3+'.gif');
              $('#s4').attr('src','/img/star'+data.s4+'.gif');
              $('#s5').attr('src','/img/star'+data.s5+'.gif');
              $('#votecnt').html(data.votes);
              if (data.drate>0) {
                data.drate=' <span class="green">+'+data.drate+'</span>';
              } else if (data.drate<0) {
                data.drate=' <span class="red">'+data.drate+'</span>';
              } else {
                data.drate=' <span class="gray">+0</span>';
              }
              $('#avg').html('('+data.avg+data.drate+')');
            } else if (data.result=='ERROR') {
              $('#votemsg').html(messages[data.error]);
            }
            // Обновление информации о пользователе
            if (data.exp) {
              $('#userexp img').attr('src','/img/exp'+data.expN+'.gif');
              $('#userexp span').html(data.exp+'/'+data.explimit);
            }
            if (data.mana) {
              $('#usermana img').attr('src','/img/mana'+data.manaN+'.gif');
              $('#usermana span').html(data.mana+'/'+data.maxmana);
            }
            if (data.levelup) {
              // Всплывающий слой с сообщением о новом уровне
              $('#popup_levelup b:eq(0)').html('<img src="/img/level'+data.levelup+'_.gif" class="level2"/>');
              $('#popup_levelup b:eq(1)').html(data.maxmana);
              $('#popup_levelup b:eq(2)').html(data.newpower);
              showPopup('levelup');
              //
              $('#welcome .level').attr('src','/img/level'+data.levelup+'.gif');
              $('#welcome .level').attr('alt',data.levelup);
              $('#userpower').html(data.newpower);
              //
              setLevelCookie(data.levelup);
            }
          }
        }
      });
      return false;
    });
  }
  // Центрируем всплывающие окна
  $.fn.alignCenter=function() {
   var marginLeft=-$(this).width()/2+'px';
   var marginTop=-$(this).height()/2+'px';
   return $(this).css({'margin-left':marginLeft,'margin-top':marginTop});
  };
  // Смена пароля по ссылке
  if (typeof(newpasscode)!='undefined') {
    showPopup('newpass2');
    $('#popup #code').attr('value',newpasscode);
    $('#popup #newpass1').attr('value','');
    $('#popup #newpass2').attr('value','');
    $('#popup #newpasslogin').attr('value',newpasslogin);
  }
  // Теневое повышение уровня
  prevLevel=getCookie('level_'+user_id);
  if (prevLevel!=null) {
    if (user_level>prevLevel) {
      $.ajax({
        url:'/action/shadowlevelup/',
        success:function(data) {
          data=eval('('+data+')');
          if (data.result=='OK') {
            $('#popup_levelup b:eq(0)').html('<img src="/img/level'+data.levelup+'_.gif" class="level2"/>');
            $('#popup_levelup b:eq(1)').html(data.maxmana);
            $('#popup_levelup b:eq(2)').html(data.newpower);
            showPopup('levelup');
          }     
        }
      });
    }
  }
  setLevelCookie(user_level);
  // Добавление комментария
  $('#addcomment img').click(function() {
    if ($('#addcomment textarea').css('display')=='none') {
      $('#addcomment textarea').css('display','block');
      $('#addcomment').css('background-image',"url('/img/bgaddcomment2.gif')");
    } else {
      comment=$('#addcomment textarea').val();
      swf_id=$('#addcomment input').attr('value');
      $.ajax({
        url:'/action/addcomment/',
        type:'POST',
        data:{comment:encodeURIComponent(comment),swf_id:swf_id},
        success:function(data) {
          data=eval('('+data+')');
          if (data.result=='login_required') {
            showPopup('login');
          } else if (data.result=='OK') {
            $('#addcomment textarea').val('');
            $('#addcomment textarea').css('display','none');
            $('#addcomment').css('background-image',"url('/img/bgaddcomment.gif')");
            comment='<div class="comment">';
            comment+='<small><img src="/img/avatars/'+data.user_id+'.gif" class="avatar"/><span';
            if (data.user_rights==255) {
              comment+=' class="user_admin"';
            } else if (data.user_rights==64) {
              comment+=' class="user_moderator"';
            }
            comment+='><a href="/users/user'+data.user_id+'">'+data.name+'</a> <img src="/img/sex'+data.sex+'.gif" class="sex"/> <img src="/img/level'+data.level+'.gif" alt="'+data.level+'" class="level"/></span><br/>'+data.dt+'</small>';
            comment+='<p>'+data.html+'</p>';
            comment+='</div>';
            $('#adderror').html('');
            $('#addcomment').after(comment);
            $('#nocomments').addClass('hidden');
            $('.comment:last').css('border-bottom','none');
            $('.comment:first').css('border-bottom','1px solid #ccc');
          } else if (data.result=='ERROR') {
            $('#adderror').css('color','#f00');
            $('#adderror').html(messages[data.error]);
          }
        }
      });
    }
    return false;
  });
  // Показ скрытого из-за низкого рейтинга комментария
  $('.comment i.gray a,.comment2 i.gray a').click(function() {
    if ($(this).parent().next().hasClass('hidden')) {
      $(this).html(messages['hide']);
      $(this).parent().next().removeClass('hidden');
    } else {
      $(this).html(messages['show']);
      $(this).parent().next().addClass('hidden');
    }
    return false;
  });
  // Голосование за комментарии
  $('.cplus').hover(function() {
    $(this).attr('src','/img/but_plus2.gif');
  },function() {
    $(this).attr('src','/img/but_plus.gif');
  });
  $('.cminus').hover(function() {
    $(this).attr('src','/img/but_minus2.gif');
  },function() {
    $(this).attr('src','/img/but_minus.gif');
  });
  $('.cplusminus').hover(function() {
    $(this).attr('src','/img/but_plusminus2.gif');
  },function() {
    $(this).attr('src','/img/but_plusminus.gif');
  });
  $('.cplus,.cminus,.cplusminus').click(function() {
    id=$(this).attr('alt');
    $.ajax({
      url:'/action/cvote/'+id,
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='login_required') {
          showPopup('login');
        } else {
          if (data.result=='OK') {
            $('.com'+data.id).before('<p class="gray">'+messages[data.action]+'</p>');
            // Делаем плюс и минус неактивными, отображаем изменение
            if (data.proc=='jud') {
              controls='<span class="gray">'+messages['jud']+'</span>';
            } else {
              if (data.proc<0) {
                controls='<span class="red">';
              } else {
                controls='<span class="green">';
              }
              if (data.proc>0) {
                controls+='+';
              }
              controls+=data.proc+'%</span> <span class="gray">';
              if ((data.drate>0)||((data.drate==0)&&(data.rated=='plus'))) {
                controls+='+';
              } else if ((data.drate==0)&&(data.rated=='minus')) {
                controls+='-';
              }
              controls+=data.drate+'%</span>';
            }
            controls+=' <img src="/img/but_'+data.rated+'2.gif"/>';
            $('.com'+data.id).html(controls);
          } else if (data.result=='ERROR') {
            $('.com'+data.id).before('<p class="red">'+messages[data.error]+'</p>');
            if (typeof(data.rated)!='undefined') {
              $('.com'+data.id+' span').next().remove();
              $('.com'+data.id+' span').next().remove();
              $('.com'+data.id+' span').after('<img src="/img/but_'+data.rated+'2.gif"/>');
            }
          }
          // Обновление информации о пользователе
          if (data.exp) {
            $('#userexp img').attr('src','/img/exp'+data.expN+'.gif');
            $('#userexp span').html(data.exp+'/'+data.explimit);
          }
          if (data.mana) {
            $('#usermana img').attr('src','/img/mana'+data.manaN+'.gif');
            $('#usermana span').html(data.mana+'/'+data.maxmana);
          }
          if (data.levelup) {
            // Всплывающий слой с сообщением о новом уровне
            $('#popup_levelup b:eq(0)').html('<img src="/img/level'+data.levelup+'.gif" class="level"/>');
            $('#popup_levelup b:eq(1)').html(data.maxmana);
            $('#popup_levelup b:eq(2)').html(data.newpower);
            showPopup('levelup');
            //
            $('#welcome .level').attr('src','/img/level'+data.levelup+'.gif');
            $('#welcome .level').attr('alt',data.levelup);
            $('#userpower').html(data.newpower);
            //
            setLevelCookie(data.levelup);
          }
        }
      }
    });
  });
  // Удаление комментария
  $('.cdelete').click(function() {
    id=$(this).attr('alt');
    $.ajax({
      url:'/action/cdelete/'+id,
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='login_required') {
          showPopup('login');
        } else {
          if (data.result=='OK') {
            $('.com'+data.id).parent().slideUp();
          }
        }
      }
    });
  });
  // Редактирование комментария
  $('.cedit').click(function() {
    id=$(this).attr('alt');
    $.ajax({
      url:'/action/cedit/'+id,
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='login_required') {
          showPopup('login');
        } else {
          if (data.result=='OK') {
            $('.com'+data.id).nextUntil('p').next('p').replaceWith('<div id="editcomment">'+$('#editcomment_template').html()+'</div>');
            com=$('.com'+data.id).nextUntil('div').next('div');
            com.children('textarea').val(data.comment.replace(/\\n/g,'\n'));
            com.children('img').click(function() {
              comment=$(this).prev('textarea').val();
              $.ajax({
                url:'/action/cedit2/',
                type:'POST',
                data:{comment:encodeURIComponent(comment),id:data.id},
                success:function(data) {
                  data=eval('('+data+')');
                  if (data.result=='login_required') {
                    showPopup('login');
                  } else {
                    if (data.result=='OK') {
                      $('.com'+data.id).nextUntil('div').next('div').replaceWith('<p>'+data.html+'</p>');
                    }
                  }
                }
              });
            });
          }
        }
      }
    });
  });
  // Добавление в избранное и удаление
  addfav=function() {
    id=$(this).parent().prev().attr('alt');
    $.ajax({
      url:'/action/addfavorite/'+id,
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='login_required') {
          showPopup('login');
        } else {
          if (data.result=='OK') {
            $('#favorited').children('span').html(messages['infavorites']);
            $('.removefavorite').click(removefav);
          }
        }
      }
    });
    return false;
  }
  removefav=function() {
    id=$(this).parent().prev().attr('alt');
    $.ajax({
      url:'/action/removefavorite/'+id,
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='login_required') {
          showPopup('login');
        } else {
          if (data.result=='OK') {
            $('#favorited').children('span').html(messages['addfavorite']);
            $('.addfavorite').click(addfav);
          }
        }
      }
    });
    return false;
  }
  $('.addfavorite').click(addfav);
  $('.removefavorite').click(removefav);
  // Удаление из избранного (вызывается из списка)
  $('.removefav').click(function() {
    id=$(this).attr('alt');
    $.ajax({
      url:'/action/removefavorite/'+id,
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='login_required') {
          showPopup('login');
        } else {
          if (data.result=='OK') {
            $('.removefav[alt="'+data.id+'"]').prev().fadeOut();
            $('.removefav[alt="'+data.id+'"]').fadeOut('');
          }
        }
      }
    });
    return false;
  });
  // Убираем ненужные border у некоторых комментариев
  $('.comment2').first().css('border-top','none');
  $('#adderror').prev().prev().prev('.comment').css('border-bottom','none');
  $('.comment:last').css('border-bottom','none');
  // Скрины
  $("a[rel^='prettyPhoto']").prettyPhoto();
  // Инициализация datepicker
  $('#birth').datepicker({
    changeMonth:true,
    changeYear:true,
    dateFormat:messages['dt_dateFormat'],
    firstDay:messages['dt_firstDay'],
    monthNamesShort:messages['dt_monthNamesShort'],
    dayNamesMin:messages['dt_dayNamesMin'],
    yearRange:'1900:2010',
    showAnim:'fadeIn'
  });
  // Загрузка аватара
  msg1aS=$('#msg1a').html();
  $('#upload_avatar_link').upload({
    name:'filename',
    method:'post',
    enctype:'multipart/form-data',
    action:'/action/upload/avatar',
    onSubmit:function() {
      $('#upload_avatar_img').attr('src','/img/loader.gif');
      $('#upload_avatar_img').css('margin','18px');
      $('#upload_avatar_img').css('width','64px');
      $('#upload_avatar_img').css('height','64px');
    },
    onComplete:function(data) {
      data=eval('('+data+')');
      if (data.result=='OK') {
        $('#upload_avatar_img').attr('src','/img/avatars/'+data.user_id+'.gif?rnd='+Math.random());
        $('#msg1a').html(msg1aS).removeClass('red');
      } else {
        $('#upload_avatar_img').attr('src','/img/avatars/0.gif');
        if (data.result=='ERROR') {
          if (data.error!='') $('#msg1a').html(messages[data.error]).addClass('red');
        }
      }
      $('#upload_avatar_img').css('margin','0');
      $('#upload_avatar_img').css('width','100px');
      $('#upload_avatar_img').css('height','100px');
    }
  });
  // Изменение личных данных
  msg2aS=$('#msg2a').html();
  msg3aS=$('#msg3a').html();
  msg4aS=$('#msg4a').html();
  msg6aS=$('#msg6a').html();
  msg8aS=$('#msg8a').html();
  $('#but_saveprofile').click(function() {
    email=$('#pfemail').val();
    url=$('#pfurl').val();
    info=$('#pfinfo').val();
    sex=$('#sex').val();
    birth=$('#birth').val();
    country=$('#country').val();
    city=$('#city').val();
    $.ajax({
      url:'/action/editprofile',
      type:'POST',
      data:{email:encodeURIComponent(email),url:encodeURIComponent(url),info:encodeURIComponent(info),sex:encodeURIComponent(sex),birth:encodeURIComponent(birth),country:encodeURIComponent(country),city:encodeURIComponent(city)},
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='OK') {
          location.href='/users/user'+data.user_id;
        } else if (data.result=='ERROR') {
          if (data.error!='') $('#msg0a').html(messages[data.error]).addClass('red'); else $('#msg0a').html('').removeClass('red');
          if (data.error2!='') $('#msg2a').html(messages[data.error2]).addClass('red'); else $('#msg2a').html(msg2aS).removeClass('red');
          if (data.error3!='') $('#msg3a').html(messages[data.error3]).addClass('red'); else $('#msg3a').html(msg3aS).removeClass('red');
          if (data.error4!='') $('#msg4a').html(messages[data.error4]).addClass('red'); else $('#msg4a').html(msg4aS).removeClass('red');
          if (data.error6!='') $('#msg6a').html(messages[data.error6]).addClass('red'); else $('#msg6a').html(msg6aS).removeClass('red');
          if (data.error8!='') $('#msg8a').html(messages[data.error8]).addClass('red'); else $('#msg8a').html(msg8aS).removeClass('red');
        }
      }
    });
    return false;
  });
  // Изменение пароля
  msg9aS=$('#msg9a').html();
  msg10aS=$('#msg10a').html();
  msg11aS=$('#msg11a').html();
  $('#but_changepass').click(function() {
    oldpass=$('#oldpass').val();
    newpass1=$('#newpass1a').val();
    newpass2=$('#newpass2a').val();
    $.ajax({
      url:'/action/changepass',
      type:'POST',
      data:{oldpass:encodeURIComponent(oldpass),newpass1:encodeURIComponent(newpass1),newpass2:encodeURIComponent(newpass2)},
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='OK') {
          $('#msg0a2').html(messages['passchanged']).addClass('green');
          $('#oldpass').val('');
          $('#newpass1a').val('');
          $('#newpass2a').val('');
          $('#msg9a').html(msg9aS).removeClass('red');
          $('#msg10a').html(msg10aS).removeClass('red');
          $('#msg11a').html(msg11aS).removeClass('red');
        } else if (data.result=='ERROR') {
          if (data.error!='') $('#msg0a2').html(messages[data.error]).addClass('red'); else $('#msg0a2').html('').removeClass('red');
          if (data.error9!='') $('#msg9a').html(messages[data.error9]).addClass('red'); else $('#msg9a').html(msg9aS).removeClass('red');
          if (data.error10!='') $('#msg10a').html(messages[data.error10]).addClass('red'); else $('#msg10a').html(msg10aS).removeClass('red');
          if (data.error11!='') $('#msg11a').html(messages[data.error11]).addClass('red'); else $('#msg11a').html(msg11aS).removeClass('red');
        }
      }
    });
    return false;
  });
  msg1bS=$('#msg1b').html();
  msg2bS=$('#msg2b').html();
  msg3bS=$('#msg3b').html();
  msg4bS=$('#msg4b').html();
  msg5bS=$('#msg5b').html();
  msg6bS=messages['screenshot']; // нельзя из html-кода, в англ. верии его нет
  msg7bS=$('#msg7b').html();
  msg7b2S=$('#msg7b2').html();
  msg8bS=$('#msg8b').html();
  msg9bS=$('#msg9b').html();
  msg17bS=$('#msg17b').html();
  msg18bS=$('#msg18b').html();
  msg19bS=$('#msg19b').html();
  // Подсчет символов в текстовых полях
  $('#adddesc,#adddesc2').keyup(function() {
    len=$(this).val().length;
    $(this).next().children('span').html(len);
    if ((len<100)||(len>255)) {
      $(this).next().children('span').addClass('red');
    } else {
      $(this).next().children('span').removeClass('red');
    }
  });
  //
  $('#upload_avatar_link,#upload_preview_link,#upload_screenshot_link,#upload_swf_link').mousemove(function() {
    // Исправляем косяк IE с двойным кликом
    $(this).focus();
  });
  // Загрузка превьюшки
  $('#upload_preview_link').upload({
    name:'filename',
    method:'post',
    enctype:'multipart/form-data',
    action:'/action/upload/preview',
    onSubmit:function() {
      $('#msg00').html('');
      $('#upload_preview_img').attr('src','/img/loader.gif');
      $('#upload_preview_img').css('margin','9px 9px 10px 10px');
      $('#upload_preview_img').css('width','64px');
      $('#upload_preview_img').css('height','64px');
    },
    onComplete:function(data) {
      data=eval('('+data+')');
      if (data.result=='OK') {
        $('#upload_preview_img').attr('src','/files/uploads/'+data.user_id+'/preview.gif?rnd='+Math.random());
        $('#msg3b').html(msg3bS).removeClass('red');
      } else {
        $('#upload_preview_img').attr('src','/img/upload_preview.gif');
        if (data.result=='ERROR') {
          if (data.error!='') $('#msg3b').html(messages[data.error]).addClass('red');
        }
      }
      $('#upload_preview_img').css('margin','0');
      $('#upload_preview_img').css('width','83px');
      $('#upload_preview_img').css('height','83px');
    }
  });
  // Загрузка скриншота
  function upload_insertScreenshot(data) {
    $('#upload_screenshot_img').attr('src','/files/uploads/'+data.user_id+'/screenshot.gif?rnd='+Math.random());
    $('#upload_screenshot').css('width',data.sx+'px');
    $('#upload_screenshot').css('height',data.sy+'px');
    $('#upload_screenshot_img').css('margin','0');
    $('#upload_screenshot_img').css('width',data.sx+'px');
    $('#upload_screenshot_img').css('height',data.sy+'px');
    $('#scrsh2').css('display','block');
    scrshW=data.sx;
    scrshH=data.sy;
  }
  if (typeof(upload_screenshot_data)!='undefined') {
    // Делаем задержку, без нее почему-то не работает
    setTimeout(function() {upload_insertScreenshot(upload_screenshot_data)},500);
  }
  scrshW=0;
  scrshH=0;
  $('#upload_screenshot_link').upload({
    name:'filename',
    method:'post',
    enctype:'multipart/form-data',
    action:'/action/upload/screenshot',
    onSubmit:function() {
      $('#msg00').html('');
      $('#upload_screenshot').css('width','200px');
      $('#upload_screenshot').css('height','80px');
      $('#upload_screenshot_img').attr('src','/img/loader.gif');
      $('#upload_screenshot_img').css('margin','8px 68px');
      $('#upload_screenshot_img').css('width','64px');
      $('#upload_screenshot_img').css('height','64px');
    },
    onComplete:function(data) {
      data=eval('('+data+')');
      if (data.result=='OK') {
        $('#msg6b').html(msg6bS).removeClass('red');
        upload_insertScreenshot(data);
      } else {
        $('#upload_screenshot_img').attr('src','/img/upload_big.gif');
        if (data.result=='ERROR') {
          if (data.error!='') $('#msg6b').html(messages[data.error]).addClass('red');
        }
        $('#upload_screenshot').css('width','200px');
        $('#upload_screenshot').css('height','80px');
        $('#upload_screenshot_img').css('margin','0');
        $('#upload_screenshot_img').css('width','200px');
        $('#upload_screenshot_img').css('height','80px');
        $('#scrsh2').css('display','none');
        scrshW=0;
        scrshH=0;
      }
    }
  });
  // Загрузка флешки
  function upload_insertSWF(data) {
    if ((data.user_id==1389)||(data.user_id==1111)) {
      $('#upload_swf img').attr('src','/img/file_loaded.gif');
    } else {
      $('#upload_swf').css('display','none');
      $('#uploadedswf').css('width',data.sx+'px');
      $('#uploadedswf').css('height',data.sy+'px');
      swfparams={wmode:'opaque'};
      swfobject.embedSWF('/files/uploads/'+data.user_id+'/swf.swf?rnd='+Math.random(),'uploadedswf',data.sx,data.sy,'9.0.0','/expressInstall.swf',{},swfparams);
      $('#uploadedswf').css('display','block');
    }
  }
  if (typeof(upload_swf_data)!='undefined') {
    // Делаем задержку, без нее почему-то не работает
    setTimeout(function() {upload_insertSWF(upload_swf_data)},500);
  }
  $('#upload_swf_link').upload({
    name:'filename',
    method:'post',
    enctype:'multipart/form-data',
    action:'/action/upload/swf',
    onSubmit:function() {
      $('#msg00').html('');
      $('#uploadedswf').css('display','none');
      $('#upload_swf').css('display','block');
      $('#upload_swf').css('width','200px');
      $('#upload_swf').css('height','80px');
      $('#upload_swf_img').attr('src','/img/loader.gif');
      $('#upload_swf_img').css('margin','8px 68px');
      $('#upload_swf_img').css('width','64px');
      $('#upload_swf_img').css('height','64px');
      $('#upload_swf_link3').show();
      $('#uploadswfurlblock').hide();
      $('#msg7b2').html(msg7b2S).removeClass('red');
    },
    onComplete:function(data) {
      data=eval('('+data+')');
      if (data.result=='OK') {
        $('#msg7b').html(msg7bS).removeClass('red');
        upload_insertSWF(data);
      } else {
        $('#upload_swf_img').attr('src','/img/upload_big.gif');
        if (data.result=='ERROR') {
          if (data.error!='') $('#msg7b').html(messages[data.error]).addClass('red');
        }
        $('#upload_swf').css('width','200px');
        $('#upload_swf').css('height','80px');
        $('#upload_swf_img').css('margin','0');
        $('#upload_swf_img').css('width','200px');
        $('#upload_swf_img').css('height','80px');
      }
    }
  });
  // Создание превьюшки из скриншота
  var jcrop_api;
  function initJcrop() {
    jcrop_api=$.Jcrop('#upload_screenshot_img',{
      onChange:showPreview,
      onSelect:showPreview,
      aspectRatio:1,
      minSize:[83,83]
    });
    if (scrshW>scrshH) {
      bx1=Math.round((scrshW-scrshH)/2);
      by1=0;
      bx2=scrshW-bx1;
      by2=scrshH;
    } else {
      bx1=0
      by1=Math.round((scrshH-scrshW)/2);
      bx2=scrshW;
      by2=scrshH-by1;
    }
    bx1+=20;bx2-=20;by1+=20;by2-=20;
    jcrop_api.setSelect([bx1,by1,bx2,by2]);
  };
  $('#scrsh2').children().click(function() {
    preview_temp=$('#upload_preview_img').attr('src');
    $('#upload_preview_img').attr('src','/files/uploads/'+user_id+'/screenshot.gif?rnd='+Math.random());
    $('#scrsh1').css('display','none');
    $('#scrsh2').css('display','none');
    $('#scrsh3').css('display','block');
    $('#scrsh4').css('display','block');
    initJcrop();
    showPreview({x:bx1,y:by1,w:bx2-bx1,h:by2-by1});
    return false;
  });
  function showPreview(coords) {
    var rx=83/coords.w;
    var ry=83/coords.h;
    $('#upload_preview_img').css({
      width:Math.round(rx*scrshW)+'px',
      height:Math.round(ry*scrshH)+'px',
      marginLeft:'-'+Math.round(rx*coords.x)+'px',
      marginTop:'-'+Math.round(ry*coords.y)+'px'
    });
  };
  $('#scrsh3').children(':first').click(function() {
    crop=jcrop_api.tellSelect();
    $.ajax({
      url:'/action/makepreview',
      type:'POST',
      data:crop,
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='OK') {
          finishCrop(true);
        } else if (data.result=='ERROR') {
          if (data.error!='') $('#msg6b').html(messages[data.error]).addClass('red'); else $('#msg6b').html(msg6bS).removeClass('red');
        }
      }
    });
    return false;
  });
  function finishCrop(newimage) {
    jcrop_api.destroy();
    $('#scrsh1').css('display','block');
    $('#scrsh2').css('display','block');
    $('#scrsh3').css('display','none');
    $('#scrsh4').css('display','none');
    if (newimage) {
      $('#upload_preview_img').attr('src','/files/uploads/'+user_id+'/preview.gif?rnd='+Math.random());
    } else {
      $('#upload_preview_img').attr('src',preview_temp);
    }
    $('#upload_preview_img').css({
      width:'83px',
      height:'83px',
      marginLeft:'0',
      marginTop:'0'
    });
    $('#msg6b').html(msg6bS).removeClass('red');
  }
  $('#scrsh4').children(':last').click(function() {
    finishCrop(false);
    return false;
  });
  // Добавление флешки
  $('#but_submit').click(function() {
    $('#msg00').html('');
    addcat=$('#addcat').val();
    addtitle=$('#addtitle').val();
    adddesc=$('#adddesc').val();
    adddesc2=$('#adddesc2').val();
    addlink=$('#addlink').val();
    addsize=$('#addsize').val();
    adddesclong=$('#adddesclong').val();
    swflink=$('#swflink').val();
    if ($('#notpublish').attr('checked')) {
      notpublish='1';
    } else {
      notpublish='0';
    }
    //$('#but_submit').attr('src','/img/loader2.gif');
    $.ajax({
      url:'/action/submit/',
      type:'POST',
      data:{cat_id:encodeURIComponent(addcat),title:encodeURIComponent(addtitle),desc:encodeURIComponent(adddesc),desc2:encodeURIComponent(adddesc2),addlink:encodeURIComponent(addlink),addsize:encodeURIComponent(addsize),adddesclong:encodeURIComponent(adddesclong),swflink:encodeURIComponent(swflink),notpublish:notpublish},
      success:function(data) {
        //$('#but_submit').attr('src','/img/'+messages['LANG']+'/but_submit.gif');
        data=eval('('+data+')');
        if (data.result=='login_required') {
          showPopup('login');
        } else {
          if (data.result=='OK') {
            // Флешка добавлена, сбрасываем все поля и ошибки
            $('#msg00').html(messages[data.message].replace(/%id%/,data.id)).addClass('green');
            $('#addcat').val(0);
            $('#addtitle').val('');
            $('#adddesc').val('');
            $('#adddesc2').val('');
            $('#addlink').val('');
            $('#addsize').val('');
            $('#adddesclong').val('');
            $('textarea').next().children('span').addClass('red').html('0');
            $('#upload_preview_img').attr('src','/img/upload_preview.gif');
            $('#upload_screenshot_img').attr('src','/img/upload_big.gif');
            $('#upload_screenshot').css('width','200px');
            $('#upload_screenshot').css('height','80px');
            $('#upload_screenshot_img').css('margin','0');
            $('#upload_screenshot_img').css('width','200px');
            $('#upload_screenshot_img').css('height','80px');
            $('#scrsh2').css('display','none');
            $('#uploadedswf').css('display','none');
            $('#upload_swf').css('display','block');
            $('#upload_swf_img').attr('src','/img/upload_big.gif');
            $('#upload_swf').css('width','200px');
            $('#upload_swf').css('height','80px');
            $('#upload_swf_img').css('margin','0');
            $('#upload_swf_img').css('width','200px');
            $('#upload_swf_img').css('height','80px');
            $('#msg0b2').html('').removeClass('red');
            $('#msg1b').html(msg1bS).removeClass('red');
            $('#msg2b').html(msg2bS).removeClass('red');
            $('#msg3b').html(msg3bS).removeClass('red');
            $('#msg4b').html(msg4bS).removeClass('red');
            $('#msg5b').html(msg5bS).removeClass('red');
            $('#msg6b').html(msg6bS).removeClass('red');
            $('#msg7b').html(msg7bS).removeClass('red');
            $('#msg7b2').html(msg7b2S).removeClass('red');
            $('#upload_screenshot1_img').attr('src','/img/upload_noflash.gif');
            $('#upload_screenshot2_img').attr('src','/img/upload_noflash.gif');
            $('#upload_screenshot3_img').attr('src','/img/upload_noflash.gif');
            $('#upload_screenshot4_img').attr('src','/img/upload_noflash.gif');
            $('#upload_screenshot5_img').attr('src','/img/upload_noflash.gif');
            $('#upload_screenshot6_img').attr('src','/img/upload_noflash.gif');
            $('#msg11b').html(msg6bS+' 1:').removeClass('red');
            $('#msg12b').html(msg6bS+' 2:').removeClass('red');
            $('#msg13b').html(msg6bS+' 3:').removeClass('red');
            $('#msg14b').html(msg6bS+' 4:').removeClass('red');
            $('#msg15b').html(msg6bS+' 5:').removeClass('red');
            $('#msg16b').html(msg6bS+' 6:').removeClass('red');
            $('#msg17b').html(msg17bS).removeClass('red');
            $('#msg18b').html(msg18bS).removeClass('red');
            $('#msg19b').html(msg19bS).removeClass('red');
            $('#noflash').css('display','none');
            $('#yesflash').css('display','block');
            $('#longdescpreview').html('');
            $('#dwlink').val('');
            $('#dwscreen').val('');
          } else if (data.result=='ERROR') {
            if (data.error!='') $('#msg0b2').html(messages[data.error]).addClass('red'); else $('#msg0b2').html('').removeClass('red');
            if (data.error1!='') $('#msg1b').html(messages[data.error1]).addClass('red'); else $('#msg1b').html(msg1bS).removeClass('red');
            if (data.error2!='') $('#msg2b').html(messages[data.error2]).addClass('red'); else $('#msg2b').html(msg2bS).removeClass('red');
            if (data.error3!='') $('#msg3b').html(messages[data.error3]).addClass('red'); else $('#msg3b').html(msg3bS).removeClass('red');
            if (data.error4!='') $('#msg4b').html(messages[data.error4]).addClass('red'); else $('#msg4b').html(msg4bS).removeClass('red');
            if (data.error5!='') $('#msg5b').html(messages[data.error5]).addClass('red'); else $('#msg5b').html(msg5bS).removeClass('red');
            if (data.error6!='') $('#msg6b').html(messages[data.error6]).addClass('red'); else $('#msg6b').html(msg6bS+':').removeClass('red');
            if (data.error7!='') $('#msg7b').html(messages[data.error7]).addClass('red'); else $('#msg7b').html(msg7bS).removeClass('red');
            if (data.error7a!='') $('#msg7b2').html(messages[data.error7a]).addClass('red'); else $('#msg7b2').html(msg7b2S).removeClass('red');
            if (data.error11!='') $('#msg11b').html(messages[data.error11]).addClass('red'); else $('#msg11b').html(msg6bS+' 1:').removeClass('red');
            if (data.error12!='') $('#msg12b').html(messages[data.error12]).addClass('red'); else $('#msg12b').html(msg6bS+' 2:').removeClass('red');
            if (data.error13!='') $('#msg13b').html(messages[data.error13]).addClass('red'); else $('#msg13b').html(msg6bS+' 3:').removeClass('red');
            if (data.error14!='') $('#msg14b').html(messages[data.error14]).addClass('red'); else $('#msg14b').html(msg6bS+' 4:').removeClass('red');
            if (data.error15!='') $('#msg15b').html(messages[data.error15]).addClass('red'); else $('#msg15b').html(msg6bS+' 5:').removeClass('red');
            if (data.error16!='') $('#msg16b').html(messages[data.error16]).addClass('red'); else $('#msg16b').html(msg6bS+' 6:').removeClass('red');
            if (data.error17!='') $('#msg17b').html(messages[data.error17]).addClass('red'); else $('#msg17b').html(msg17bS).removeClass('red');
            if (data.error18!='') $('#msg18b').html(messages[data.error18]).addClass('red'); else $('#msg18b').html(msg18bS).removeClass('red');
            if (data.error19!='') $('#msg19b').html(messages[data.error19]).addClass('red'); else $('#msg19b').html(msg19bS).removeClass('red');
          }
        }
      }
    });
    return false;
  });
  // Скачивание с другого сайта
  $('#but_download').click(function() {
    dwlink=$('#dwlink').val();
    dwscreen=$('#dwscreen').val();
    $('#otherloader').css('display','block');
    $.ajax({
      url:'/action/getfrom/',
      type:'POST',
      data:{dwlink:encodeURIComponent(dwlink),dwscreen:encodeURIComponent(dwscreen)},
      success:function(data) {
        $('#otherloader').css('display','none');
        data=eval('('+data+')');
        if (data.result=='login_required') {
          showPopup('login');
        } else {
          if (data.result=='OK') {
            $('#msg8b').html(msg8bS).removeClass('red')
            $('#msg9b').html(msg9bS).removeClass('red')
            $('#addtitle').val(data.title);
            $('#adddesc').val(data.desc);
            $('#adddesc2').val(data.desc2);
            upload_insertScreenshot(data);
            data.sx=data.sx2;
            data.sy=data.sy2;
            upload_insertSWF(data);
          } else if (data.result=='ERROR') {
            if (data.error8!='') $('#msg8b').html(messages[data.error8]).addClass('red'); else $('#msg8b').html(msg8bS).removeClass('red');
            if (data.error9!='') $('#msg9b').html(messages[data.error9]).addClass('red'); else $('#msg9b').html(msg9bS).removeClass('red');
          }
        }
      }
    });
    return false;
  });
  // Селектор раздела добавления флешки
  $('#addcat').change(function() {
    c=$('#addcat').val();
    if ((c>600)&&(c<800)) {
      $('#yesflash').css('display','none');
      $('#noflash').css('display','block');
      if ((c>600)&&(c<700)) {
        $('#miniformats').css('display','block');
      } else {
        $('#miniformats').css('display','none');
      }     
    } else {
      $('#yesflash').css('display','block');
      $('#noflash').css('display','none');
    }
  });
  // Загрузка скриншотов для noflash
  function upload_insertScreenshot_noflash(data) {
    $('#upload_screenshot'+data.n+'_img').attr('src','/files/uploads/'+data.user_id+'/screenshot'+data.n+'.jpg?rnd='+Math.random());
    $('#upload_screenshot'+data.n).css('width','150px');
    $('#upload_screenshot'+data.n).css('height','113px');
    $('#upload_screenshot'+data.n+'_img').css('margin','0');
    $('#upload_screenshot'+data.n+'_img').css('width','150px');
    $('#upload_screenshot'+data.n+'_img').css('height','113px');
    $('#scrsh2').css('display','block');
  }
  if (typeof(upload_noflash_data)!='undefined') {
    if (upload_noflash_data[1]) {
      // Делаем задержку, без нее почему-то не работает
      setTimeout(function() {upload_insertScreenshot_noflash({user_id:upload_noflash_data[0],n:1})},500);
    }
    if (upload_noflash_data[2]) {
      setTimeout(function() {upload_insertScreenshot_noflash({user_id:upload_noflash_data[0],n:2})},500);
    }
    if (upload_noflash_data[3]) {
      setTimeout(function() {upload_insertScreenshot_noflash({user_id:upload_noflash_data[0],n:3})},500);
    }
    if (upload_noflash_data[4]) {
      setTimeout(function() {upload_insertScreenshot_noflash({user_id:upload_noflash_data[0],n:4})},500);
    }
    if (upload_noflash_data[5]) {
      setTimeout(function() {upload_insertScreenshot_noflash({user_id:upload_noflash_data[0],n:5})},500);
    }
    if (upload_noflash_data[6]) {
      setTimeout(function() {upload_insertScreenshot_noflash({user_id:upload_noflash_data[0],n:6})},500);
    }
  }
  // Для подмены параметров, иначе подставить разные id для скронов не получается
  onSubmitUpload=function(n) {
    $('#msg00').html('');
    $('#upload_screenshot'+n).css('width','150px');
    $('#upload_screenshot'+n).css('height','113px');
    $('#upload_screenshot'+n+'_img').attr('src','/img/loader.gif');
    $('#upload_screenshot'+n+'_img').css('margin','24px 43px 25px 43px');
    $('#upload_screenshot'+n+'_img').css('width','64px');
    $('#upload_screenshot'+n+'_img').css('height','64px');
  }
  // Сделано так, потому что .upload почему-то не принимает список селекторов
  noflash_upload={
    name:'filename',
    method:'post',
    enctype:'multipart/form-data',
    action:'', // будет заполнено для каждого скрина отдельно
    onSubmit:function() {}, // будет заполнена для каждого скрина отдельно
    onComplete:function(data) {
      data=eval('('+data+')');
      if (data.result=='OK') {
        $('#msg'+(parseInt(data.n)+10)+'b').html(msg6bS+' '+data.n+':').removeClass('red');
        upload_insertScreenshot_noflash(data);
      } else {
        $('#upload_screenshot'+data.n+'_img').attr('src','/img/upload_noflash.gif');
        if (data.result=='ERROR') {
          if (data.error!='') $('#msg'+(parseInt(data.n)+10)+'b').html(messages[data.error]).addClass('red');
        }
        $('#upload_screenshot'+data.n).css('width','150px');
        $('#upload_screenshot'+data.n).css('height','113px');
        $('#upload_screenshot'+data.n+'_img').css('margin','0');
        $('#upload_screenshot'+data.n+'_img').css('width','150px');
        $('#upload_screenshot'+data.n+'_img').css('height','113px');
        $('#scrsh2').css('display','none');
      }
    }
  }
  noflash_upload.action='/action/upload/screenshot_noflash/1';
  noflash_upload.onSubmit=function() {onSubmitUpload(1)}
  $('#upload_screenshot1_link').upload(noflash_upload);
  noflash_upload.action='/action/upload/screenshot_noflash/2';
  noflash_upload.onSubmit=function() {onSubmitUpload(2)}
  $('#upload_screenshot2_link').upload(noflash_upload);
  noflash_upload.action='/action/upload/screenshot_noflash/3';
  noflash_upload.onSubmit=function() {onSubmitUpload(3)}
  $('#upload_screenshot3_link').upload(noflash_upload);
  noflash_upload.action='/action/upload/screenshot_noflash/4';
  noflash_upload.onSubmit=function() {onSubmitUpload(4)}
  $('#upload_screenshot4_link').upload(noflash_upload);
  noflash_upload.action='/action/upload/screenshot_noflash/5';
  noflash_upload.onSubmit=function() {onSubmitUpload(5)}
  $('#upload_screenshot5_link').upload(noflash_upload);
  noflash_upload.action='/action/upload/screenshot_noflash/6';
  noflash_upload.onSubmit=function() {onSubmitUpload(6)}
  $('#upload_screenshot6_link').upload(noflash_upload);
  // Скрываем слой после обработки .upload, иначе не работает
  $('#noflash').css('display','none');
  // Предпросмотр длинного описания
  $('#longdescpreviewlink').click(function() {
    adddesclong=$('#adddesclong').val();
    $.ajax({
      url:'/action/longdescpreview/',
      type:'POST',
      data:{adddesclong:encodeURIComponent(adddesclong)},
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='login_required') {
          showPopup('login');
        } else {
          if (data.result=='OK') {
            $('#longdescpreview').html(data.text);
          }
        }
      }
    });
    return false;
  });
  // Деактивируем ссылки в неактивных swfbox (добавленное юзером)
  $('.disable_link').find('a[href*="/swf/"],a[href*="/flash/"]').attr('onclick','return false');
  $('.disable_link').find('a[href*="/swf/"],a[href*="/flash/"]').attr('href','');
  //
  $('#captcha2').attr('src','/captcha?rand='+Math.random());
  // Отправка сообщения с формы обратной связи
  msg1cS=$('#msg1c').html();
  msg2cS=$('#msg2c').html();
  msg3cS=$('#msg3c').html();
  msg4cS=$('#msg4c').html();
  $('#but_contacts').click(function() {
    if (user_id>0) {
      name='';
      email='';
      captcha='';
    } else {
      name=$('#contacts_name').val();
      email=$('#contacts_email').val();
      captcha=$('#keystring2').val();
    }
    message=$('#contacts_message').val();
    $.ajax({
      url:'/action/contacts/',
      type:'POST',
      data:{name:encodeURIComponent(name),email:encodeURIComponent(email),message:encodeURIComponent(message),captcha:encodeURIComponent(captcha)},
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='OK') {
          $('#msg0c').html(messages['message_sent']).addClass('green');
          $('#contacts_message').val('');
          $('#keystring2').val('');
          $('#msg1c').html(msg1cS).removeClass('red');
          $('#msg2c').html(msg2cS).removeClass('red');
          $('#msg3c').html(msg3cS).removeClass('red');
          $('#msg4c').html(msg4cS).removeClass('red');
        } else if (data.result=='ERROR') {
          if (data.error!='') $('#msg0c').html(messages[data.error]).addClass('red'); else $('#msg0c').html('');
          if (data.error1!='') $('#msg1c').html(messages[data.error1]).addClass('red'); else $('#msg1c').html(msg1cS).removeClass('red');
          if (data.error2!='') $('#msg2c').html(messages[data.error2]).addClass('red'); else $('#msg2c').html(msg2cS).removeClass('red');
          if (data.error3!='') $('#msg3c').html(messages[data.error3]).addClass('red'); else $('#msg3c').html(msg3cS).removeClass('red');
          if (data.error4!='') $('#msg4c').html(messages[data.error4]).addClass('red'); else $('#msg4c').html(msg4cS).removeClass('red');
        }

      }
    });
  });
  // Прогрессбар прелоадера
  var p=$('#flash').offset();
  if (p) {
    $('#preloader_bg').show().fadeTo('fast',0.8);
    $('#preloader').show();
    function closePreloader() {
      $('#preloaderclose').hide();
      $('#progressbar').stopTime();
      $('#progressbar').progressbar('option','value',100);
      $('#preloader').hide();
      $('#preloader_bg').hide();
      return false;
    }
    $(function() {
      $('#progressbar').progressbar();
    });
    $('#progressbar').everyTime(100,function(i) {
      $('#progressbar').progressbar('option','value',i);
      if (i>=50) {
        // Активируем кнопку Close
        $('#preloaderloading').hide();
        $('#preloaderclose').show();
      }
      if (i==100) {
        // Закрываем рекламу
        closePreloader();
      }
    });
    $('#preloaderclose a').click(closePreloader);
  }
  // Вызов форм логина и регистрации
  $('#showloginform').click(function() {
    showPopup('login');
    return false;
  });
  $('#showregisterform').click(function() {
    showPopup('register');
    return false;
  });
  // Сохранение счета
  $('.newscore img.but').click(function() {
    scorename=$('#scorename').val();
    $.ajax({
      url:'/action/submitscore/',
      type:'POST',
      data:{scorename:encodeURIComponent(scorename),url:encodeURIComponent(location.href)},
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='OK') {
          location.href=data.uri;
        } else if (data.result=='ERROR') {
          $('#submiterror').css('color','#f00');
          $('#submiterror').html('<br/>'+messages[data.error]);
        }
      }
    });
    return false;
  });
  // Переключение вкладок рекордов и достижений
  $('#goachieves').click(function() {
    $('#gamescores').hide();
    $('#gameachieves').show();
    $('#gameside').css('background-image','url("/img/gamebg_achieves.gif")');
    return false;
  });
  $('#goscores').click(function() {
    $('#gameachieves').hide();
    $('#gamescores').show();
    $('#gameside').css('background-image','url("/img/gamebg_scores.gif")');
    doReloadscores();
    return false;
  });
  // Обновление таблицы рекордов во вкладке
  function doReloadscores() {
    $('#scoretable').html('');
    $('#scoretable').next().hide();
    path=location.href.split('/');
    $.ajax({
      url:'/action/reloadscores/'+path[4],
      type:'GET',
      success:function(data) {
        data=eval('('+data+')');
        $('#scoretable').html(data.scoreshtml);
        $('#scoretable').next().show();
      }
    });
  }
  $('#reloadscores').click(function() {
    doReloadscores();
    return false;
  });
  // Подсчет символов в текстовом поле перевода описаний
  $('.translate textarea').keyup(function() {
    len=$(this).val().length;
    $(this).next().html(len);
    if ((len<100)||(len>255)) {
      $(this).next().addClass('red');
    } else {
      $(this).next().removeClass('red');
    }
  });

  // Скачивание, показ формы
  $('#download1').click(function(){
    $('#download1').hide();
    $('#download2').show();
    return false;
  });
  // Скачивание, поверка кода
  $('#download2 img').click(function(){
    code=$('#download2 input').val();
    path=location.href.split('/');
    $.ajax({
      url:'/action/dwcode/'+path[4],
      type:'GET',
      data:{code:encodeURIComponent(code)},
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='OK') {
          $('#download2').hide();
          $('#download3').show();
        } else if (data.result=='ERROR') {
          $('#download2 p').css('color','#f00');
          $('#download2 p').html(messages[data.error]);
        }
      }
    });
    return false;
  });
  // Моя тизерка справа от игры
  var m=$('.mytizer1');
  if ((m)&&(typeof(tizer1)!='undefined')) {
    function tizergame_show() {
      $('.mytizer1').fadeOut(300,function() {
        tizergame=Math.round(Math.random()*(tizer1.length-1));
        if (tizergame==tizer1n) {
          tizergame=Math.round(Math.random()*(tizer1.length-1));
        }
        tizer1n=tizergame;
        var m2=tizer1[tizergame];
        $('.mytizer1 a img:first').attr('src','/img/onlinegames/img/'+m2[0]+'.jpg');
        lnk=m2[3];
        lnk=lnk.replace("http://","");
        lnk=base64_encode(lnk);
        lnk=lnk.replace("/","%20");
        lnk='/goto/'+lnk;
        $('.mytizer1 a').attr('href',lnk);
        $('.mytizer1 b a').html(m2[1]);
        $('.mytizer1 p').html(m2[2]);
        $('.mytizer1').fadeIn(300);
        setTimeout(tizergame_show,20000);
      });
    }
    setTimeout(tizergame_show,20000);
  }
  // Показ поля для загрузки флешки по URL
  $('#upload_swf_link3').click(function(){
    $('#msg7b2').html(msg7b2S).removeClass('red');
    $('#upload_swf_link3').hide();
    $('#uploadswfurlblock').show();
    return false;
  });
  // Загрузка флешки по URL
  $('#upload_swf_link2').click(function(){
    $('#msg7b').html(msg7bS).removeClass('red');
    $('#msg00').html('');
    $('#uploadedswf').css('display','none');
    $('#upload_swf').css('display','block');
    $('#upload_swf').css('width','200px');
    $('#upload_swf').css('height','80px');
    $('#upload_swf_img').attr('src','/img/loader.gif');
    $('#upload_swf_img').css('margin','8px 68px');
    $('#upload_swf_img').css('width','64px');
    $('#upload_swf_img').css('height','64px');
    swflink=$('#swflink').attr('value');
    $.ajax({
      url:'/action/swflinkupload/',
      type:'POST',
      data:{swflink:encodeURIComponent(swflink)},
      success:function(data) {
        data=eval('('+data+')');
        if (data.result=='login_required') {
          showPopup('login');
        } else if (data.result=='OK') {
          $('#swflink').attr('value','');
          $('#upload_swf_link3').show();
          $('#uploadswfurlblock').hide();
          $('#msg7b').html(msg7bS).removeClass('red');
          $('#msg7b2').html(msg7b2S).removeClass('red');
          upload_insertSWF(data);
        } else {
          if (data.result=='ERROR') {
            $('#msg7b2').html(messages[data.error]).addClass('red');
          }
          $('#upload_swf_img').attr('src','/img/upload_big.gif');
          $('#upload_swf').css('width','200px');
          $('#upload_swf').css('height','80px');
          $('#upload_swf_img').css('margin','0');
          $('#upload_swf_img').css('width','200px');
          $('#upload_swf_img').css('height','80px');
        }
      }
    });
    return false;
  });
}

// Функции показа всплывающих окон
function showPopup(popup_id) {
  // Разные высота и фон у разных окон
  if (popup_id=='newpass') {
    bg='2';
    h=84;
  } else if (popup_id=='newpass2') {
    bg='3';
    h=213;
  } else if (popup_id=='register') {
    bg='4';
    h=362;
  } else if (popup_id=='levelup') {
    bg='5';
    h=165;
  } else {
    bg='';
    h=155;
  }
  $('#popup').css('background','transparent url("/img/popupbg'+bg+'.gif") no-repeat');
  $('#popup').css('height',h+'px');
  //
  //if($.browser.msie) {
  //  $('#opaco').height($(document).height()).removeClass('hidden');//.click(function(){closePopup()});
  //} else {
    $('#opaco').height($(document).height()).fadeTo('slow',0.7);//.click(function(){closePopup()});
  //}
  $('#popup').html($('#popup_'+popup_id).html()).alignCenter().removeClass('hidden');
  // Обработка Enter
  $('#popup').keypress(function(event) {
    if (event.keyCode == '13') {
      event.preventDefault(); // просто отключаем     
    }
  });
  // Установка фокуса на нужное текстовое поле
  if (popup_id=='login') {
    $('#popup #login2').focus();
  } if (popup_id=='newpass') {
    $('#popup #newpass').focus();
  } if (popup_id=='newpass2') {
    if (typeof(newpasscode)!='undefined') {
      $('#popup #newpass1').focus();
    } else {
      $('#popup #code').focus();
    }
  } if (popup_id=='register') {
    $('#popup #login').focus();
    // Обновляем капчу
    $('#captcha').attr('src','/captcha?rand='+Math.random());
    //
  }
  //
  return false;
}
function closePopup() {
  $('#opaco').addClass('hidden').removeAttr('style');//.unbind('click');
  $('#popup').addClass('hidden');
  $('#popup').html('');
  return false;
}

// Функции авторизации и регистрации
function signIn(n) {
  loginX=$('#login'+n).attr('value');
  pass=$('#pass'+n).attr('value');
  remember=$('#remember'+n).attr('checked');
  $.ajax({
    url:'/action/login/',
    type:'POST',
    data:{login:encodeURIComponent(loginX),pass:encodeURIComponent(pass),remember:remember,n:n},
    success:function(data) {
      data=eval('('+data+')');
      if (data.result=='OK') {
        // При логине на некоторые страницы нужно перезагрузить 
        path=location.href.split('/');
        if (
           ((path[3]=='users')&&(data.id==path[4].substr(4,100)))||
           (path[3]=='contacts')||
           ((path[3]=='score')&&(path[5].substr(0,6)=='submit'))||
           (path[3]=='submit')
           ) {
          window.location.reload(true);
        }
        //
        closePopup();
        $('#welcometext a').html(data.login);
        $('#welcometext a').attr('href','/users/user'+data.id);
        $('#welcome img:first').attr('src','/img/level'+data.level+'.gif');
        $('#welcome img:first').attr('alt',data.level);
        $('#userpower').html(data.power);
        $('#userexp img').attr('src','/img/exp'+data.expN+'.gif');
        $('#userexp span').html(data.exp+'/'+data.explimit);
        $('#usermana img').attr('src','/img/mana'+data.manaN+'.gif');
        $('#usermana span').html(data.mana+'/'+data.maxmana);
        $('#welcome .linksline a:first').attr('href','/users/user'+data.id);
        $('#loginform').addClass('hidden');
        $('#welcome').removeClass('hidden');
        // На странице с флешкой, если юзер уже голосовал
        if (data.already_voted>0) {
          $('#stars img').unbind();
          $('#votemsg').html(messages['already_voted']);
        }
        $('#unregachieve').hide();
      } else if (data.result=='ERROR') {
        // Если логин производился через форму в шапке - показать всплывающее окно с ошибкой
        if (data.n==1) {
          showPopup('login');
          $('#popup #login2').attr('value',data.login);
          if (data.remember=='true') {
            $('#popup #remember2').attr('checked','checked');
          } else {
            $('#popup #remember2').attr('checked','');
          }
        }
        //
        $('#popup #loginmsg').html(messages[data.error]).addClass('red');
        $('#pass1').attr('value','');
        $('#pass2').attr('value','');
      }
    }
  });
}
function newPass() {
  newpass=$('#newpass').attr('value');
  $.ajax({
    url:'/action/newpass/',
    type:'POST',
    data:{newpass:encodeURIComponent(newpass)},
    success:function(data) {
      data=eval('('+data+')');
      if (data.result=='OK') {
        showPopup('newpass2');
        $('#popup #newpasslogin').attr('value',data.newpasslogin);
      } else if (data.result=='ERROR') {
        $('#popup #newpassmsg').html(messages[data.error]).addClass('red');
      }
    }
  });
}
function newPass2() {
  code=$('#code').attr('value');
  newpass1=$('#newpass1').attr('value');
  newpass2=$('#newpass2').attr('value');
  newpasslogin=$('#newpasslogin').attr('value');
  $.ajax({
    url:'/action/newpass2/',
    type:'POST',
    data:{code:encodeURIComponent(code),newpass1:encodeURIComponent(newpass1),newpass2:encodeURIComponent(newpass2),newpasslogin:encodeURIComponent(newpasslogin)},
    success:function(data) {
      data=eval('('+data+')');
      if (data.result=='OK') {
        newpasslogin=data.newpasslogin;
        showPopup('login');
        $('#popup #loginmsg').html(messages['password_changed']).addClass('green');
        $('#login2').attr('value',newpasslogin);
      } else if (data.result=='ERROR') {
        showPopup('newpass2');
        if (data.error1!='') $('#popup #msg1').html(messages[data.error1]).addClass('red');
        if (data.error2!='') $('#popup #msg2').html(messages[data.error2]).addClass('red');
        if (data.error3!='') $('#popup #msg3').html(messages[data.error3]).addClass('red');
        $('#popup #code').attr('value',data.code);
        $('#popup #newpasslogin').attr('value',data.newpasslogin);
      }
    }
  });
}
function signUp() {
  reglogin=$('#reglogin').attr('value');
  newpass1=$('#newpass1').attr('value');
  newpass2=$('#newpass2').attr('value');
  email=$('#email').attr('value');
  captcha=$('#keystring').attr('value');
  $.ajax({
    url:'/action/register/',
    type:'POST',
    data:{reglogin:encodeURIComponent(reglogin),newpass1:encodeURIComponent(newpass1),newpass2:encodeURIComponent(newpass2),email:encodeURIComponent(email),captcha:captcha},
    success:function(data) {
      data=eval('('+data+')');
      if (data.result=='OK') {
        reglogin=data.reglogin;
        showPopup('login');
        $('#popup #loginmsg').html(messages['registered']).addClass('green');
        $('#login2').attr('value',reglogin);
      } else if (data.result=='ERROR') {
        showPopup('register');
        if (data.error!='') $('#popup #registermsg').html(messages[data.error]).addClass('red');
        if (data.error1!='') $('#popup #msg1').html(messages[data.error1]).addClass('red');
        if (data.error2!='') $('#popup #msg2').html(messages[data.error2]).addClass('red');
        if (data.error3!='') $('#popup #msg3').html(messages[data.error3]).addClass('red');
        if (data.error4!='') $('#popup #msg4').html(messages[data.error4]).addClass('red');
        if (data.error5!='') $('#popup #msg5').html(messages[data.error5]).addClass('red');
        $('#popup #reglogin').attr('value',data.reglogin);
        $('#popup #email').attr('value',data.email);
      }
    }
  });
}

function showphones(vendor) {
  document.getElementById('p'+vendor).style.display='none';
  document.getElementById('p'+vendor+'full').style.display='inline';
}

function sendsms() {
  var phone=$('#phone').attr('value');
  var url='http://viewdemo.playfon.ru/demo_send.php?d=79824481&iItemId='+game_id+'&sMSISDN='+phone;
  if (phone.length>2) {
    $.ajax({
      url:url,
      cache:false,
      dataType:'jsonp',
      success:function(data) {
        if (data.error==0) {
          $('#sentmessage').html('Отлично! Ждите SMS со ссылкой!');
          $('#phone').attr('value','+7');
        } else if (data.error==1) {
          $('#sentmessage').html('Введите номер телефона!');
        } else if ((data.error==2)||(data.error==3)||(data.error==6)) {
          $('#sentmessage').html('Неверный номер телефона, проверьте.');
        } else {
          $('#sentmessage').html('Ошибка! Проверьте номер телефона или попробуйте еще раз позже.');
        }
      },
      error:function(XMLHttpRequest,textStatus,errorThrown) {
        $('#sentmessage').html('Ошибка отправки, попробуйте еще раз позже.');
      }
    });
    // Делаем пометку о запросе ссылки, чтобы была какая-то собственная статистика
    $.ajax({
      url:'/playfon/'+game_id+'/'+phone
    });
  }
}

// Функции работы с куками
function setCookie(name, value, expires, path, domain, secure) {
  document.cookie = name + "=" + escape(value) +
    ((expires) ? "; expires=" + expires : "") +
    ((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 setLevelCookie(level) {
  dt=new Date();
  dt2=new Date(dt.getTime()+30000000000);
  setCookie('level_'+user_id,level,dt2.toString(),'/');
}

// Отображение нового достижения
function newAchieve(n) {
  $('#gamescores').hide();
  $('#gameachieves').show();
  $('#gameside').css('background-image','url("/img/gamebg_achieves.gif")');
  img=$('#ach'+n).children('img').attr('src');
  if (img.substr(img.length-5,1)=='g') {
    // Отображаем. только если еще не отображено
    $('#ach'+n).addClass('achieve_done');
    $('#ach'+n).children('img').attr('src',img.substr(0,img.length-5)+'.gif');
    $('#ach'+n).children('small').html(messages['new_achievement']+'!').css('color','#f00');
    $('#ach'+n).animate({backgroundColor:'#ffa'},1000).delay(10000).animate({backgroundColor:'#fff'},1000);
    var now=new Date();
    dD=now.getDate();
    dM=now.getMonth()+1;
    dY=now.getFullYear();
    if (dD<10) dD='0'+dD;
    if (dM<10) dM='0'+dM;
    dt=dD+'.'+dM+'.'+dY;
    setTimeout(function(){$('#ach'+n).children('small').html(messages['received']+' '+dt).css('color','#aaa')},12000);
  }
}

// Аналог PHP-функции
function base64_encode( data ) {    // Encodes data with MIME base64
	    //
	    // +   original by: Tyler Akins (http://rumkin.com)
	    // +   improved by: Bayron Guevara
	 
	    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
	    var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc='';
	 
	    do { // pack three octets into four hexets
	        o1 = data.charCodeAt(i++);
	        o2 = data.charCodeAt(i++);
	        o3 = data.charCodeAt(i++);
	 
	        bits = o1<<16 | o2<<8 | o3;
	 
	        h1 = bits>>18 & 0x3f;
	        h2 = bits>>12 & 0x3f;
	        h3 = bits>>6 & 0x3f;
	        h4 = bits & 0x3f;
	 
	        // use hexets to index into b64, and append result to encoded string
	        enc += b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
	    } while (i < data.length);
	 
	    switch( data.length % 3 ){
	        case 1:
	            enc = enc.slice(0, -2) + '==';
	        break;
	        case 2:
	            enc = enc.slice(0, -1) + '=';
	        break;
	    }
	 
	    return enc;
	}
