 /* 2009 (c) FlipFlip.ru */

 /* MD5 */
 var hexcase=0;function hex_md5(a){return rstr2hex(rstr_md5(str2rstr_utf8(a)))}function hex_hmac_md5(a,b){return rstr2hex(rstr_hmac_md5(str2rstr_utf8(a),str2rstr_utf8(b)))}function md5_vm_test(){return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72"}function rstr_md5(a){return binl2rstr(binl_md5(rstr2binl(a),a.length*8))}function rstr_hmac_md5(c,f){var e=rstr2binl(c);if(e.length>16){e=binl_md5(e,c.length*8)}var a=Array(16),d=Array(16);for(var b=0;b<16;b++){a[b]=e[b]^909522486;d[b]=e[b]^1549556828}var g=binl_md5(a.concat(rstr2binl(f)),512+f.length*8);return binl2rstr(binl_md5(d.concat(g),512+128))}function rstr2hex(c){try{hexcase}catch(g){hexcase=0}var f=hexcase?"0123456789ABCDEF":"0123456789abcdef";var b="";var a;for(var d=0;d<c.length;d++){a=c.charCodeAt(d);b+=f.charAt((a>>>4)&15)+f.charAt(a&15)}return b}function str2rstr_utf8(c){var b="";var d=-1;var a,e;while(++d<c.length){a=c.charCodeAt(d);e=d+1<c.length?c.charCodeAt(d+1):0;if(55296<=a&&a<=56319&&56320<=e&&e<=57343){a=65536+((a&1023)<<10)+(e&1023);d++}if(a<=127){b+=String.fromCharCode(a)}else{if(a<=2047){b+=String.fromCharCode(192|((a>>>6)&31),128|(a&63))}else{if(a<=65535){b+=String.fromCharCode(224|((a>>>12)&15),128|((a>>>6)&63),128|(a&63))}else{if(a<=2097151){b+=String.fromCharCode(240|((a>>>18)&7),128|((a>>>12)&63),128|((a>>>6)&63),128|(a&63))}}}}}return b}function rstr2binl(b){var a=Array(b.length>>2);for(var c=0;c<a.length;c++){a[c]=0}for(var c=0;c<b.length*8;c+=8){a[c>>5]|=(b.charCodeAt(c/8)&255)<<(c%32)}return a}function binl2rstr(b){var a="";for(var c=0;c<b.length*32;c+=8){a+=String.fromCharCode((b[c>>5]>>>(c%32))&255)}return a}function binl_md5(p,k){p[k>>5]|=128<<((k)%32);p[(((k+64)>>>9)<<4)+14]=k;var o=1732584193;var n=-271733879;var m=-1732584194;var l=271733878;for(var g=0;g<p.length;g+=16){var j=o;var h=n;var f=m;var e=l;o=md5_ff(o,n,m,l,p[g+0],7,-680876936);l=md5_ff(l,o,n,m,p[g+1],12,-389564586);m=md5_ff(m,l,o,n,p[g+2],17,606105819);n=md5_ff(n,m,l,o,p[g+3],22,-1044525330);o=md5_ff(o,n,m,l,p[g+4],7,-176418897);l=md5_ff(l,o,n,m,p[g+5],12,1200080426);m=md5_ff(m,l,o,n,p[g+6],17,-1473231341);n=md5_ff(n,m,l,o,p[g+7],22,-45705983);o=md5_ff(o,n,m,l,p[g+8],7,1770035416);l=md5_ff(l,o,n,m,p[g+9],12,-1958414417);m=md5_ff(m,l,o,n,p[g+10],17,-42063);n=md5_ff(n,m,l,o,p[g+11],22,-1990404162);o=md5_ff(o,n,m,l,p[g+12],7,1804603682);l=md5_ff(l,o,n,m,p[g+13],12,-40341101);m=md5_ff(m,l,o,n,p[g+14],17,-1502002290);n=md5_ff(n,m,l,o,p[g+15],22,1236535329);o=md5_gg(o,n,m,l,p[g+1],5,-165796510);l=md5_gg(l,o,n,m,p[g+6],9,-1069501632);m=md5_gg(m,l,o,n,p[g+11],14,643717713);n=md5_gg(n,m,l,o,p[g+0],20,-373897302);o=md5_gg(o,n,m,l,p[g+5],5,-701558691);l=md5_gg(l,o,n,m,p[g+10],9,38016083);m=md5_gg(m,l,o,n,p[g+15],14,-660478335);n=md5_gg(n,m,l,o,p[g+4],20,-405537848);o=md5_gg(o,n,m,l,p[g+9],5,568446438);l=md5_gg(l,o,n,m,p[g+14],9,-1019803690);m=md5_gg(m,l,o,n,p[g+3],14,-187363961);n=md5_gg(n,m,l,o,p[g+8],20,1163531501);o=md5_gg(o,n,m,l,p[g+13],5,-1444681467);l=md5_gg(l,o,n,m,p[g+2],9,-51403784);m=md5_gg(m,l,o,n,p[g+7],14,1735328473);n=md5_gg(n,m,l,o,p[g+12],20,-1926607734);o=md5_hh(o,n,m,l,p[g+5],4,-378558);l=md5_hh(l,o,n,m,p[g+8],11,-2022574463);m=md5_hh(m,l,o,n,p[g+11],16,1839030562);n=md5_hh(n,m,l,o,p[g+14],23,-35309556);o=md5_hh(o,n,m,l,p[g+1],4,-1530992060);l=md5_hh(l,o,n,m,p[g+4],11,1272893353);m=md5_hh(m,l,o,n,p[g+7],16,-155497632);n=md5_hh(n,m,l,o,p[g+10],23,-1094730640);o=md5_hh(o,n,m,l,p[g+13],4,681279174);l=md5_hh(l,o,n,m,p[g+0],11,-358537222);m=md5_hh(m,l,o,n,p[g+3],16,-722521979);n=md5_hh(n,m,l,o,p[g+6],23,76029189);o=md5_hh(o,n,m,l,p[g+9],4,-640364487);l=md5_hh(l,o,n,m,p[g+12],11,-421815835);m=md5_hh(m,l,o,n,p[g+15],16,530742520);n=md5_hh(n,m,l,o,p[g+2],23,-995338651);o=md5_ii(o,n,m,l,p[g+0],6,-198630844);l=md5_ii(l,o,n,m,p[g+7],10,1126891415);m=md5_ii(m,l,o,n,p[g+14],15,-1416354905);n=md5_ii(n,m,l,o,p[g+5],21,-57434055);o=md5_ii(o,n,m,l,p[g+12],6,1700485571);l=md5_ii(l,o,n,m,p[g+3],10,-1894986606);m=md5_ii(m,l,o,n,p[g+10],15,-1051523);n=md5_ii(n,m,l,o,p[g+1],21,-2054922799);o=md5_ii(o,n,m,l,p[g+8],6,1873313359);l=md5_ii(l,o,n,m,p[g+15],10,-30611744);m=md5_ii(m,l,o,n,p[g+6],15,-1560198380);n=md5_ii(n,m,l,o,p[g+13],21,1309151649);o=md5_ii(o,n,m,l,p[g+4],6,-145523070);l=md5_ii(l,o,n,m,p[g+11],10,-1120210379);m=md5_ii(m,l,o,n,p[g+2],15,718787259);n=md5_ii(n,m,l,o,p[g+9],21,-343485551);o=safe_add(o,j);n=safe_add(n,h);m=safe_add(m,f);l=safe_add(l,e)}return Array(o,n,m,l)}function md5_cmn(h,e,d,c,g,f){return safe_add(bit_rol(safe_add(safe_add(e,h),safe_add(c,f)),g),d)}function md5_ff(g,f,k,j,e,i,h){return md5_cmn((f&k)|((~f)&j),g,f,e,i,h)}function md5_gg(g,f,k,j,e,i,h){return md5_cmn((f&j)|(k&(~j)),g,f,e,i,h)}function md5_hh(g,f,k,j,e,i,h){return md5_cmn(f^k^j,g,f,e,i,h)}function md5_ii(g,f,k,j,e,i,h){return md5_cmn(k^(f|(~j)),g,f,e,i,h)}function safe_add(a,d){var c=(a&65535)+(d&65535);var b=(a>>16)+(d>>16)+(c>>16);return(b<<16)|(c&65535)}function bit_rol(a,b){return(a<<b)|(a>>>(32-b))};

 var commentParentID = 0;
 
 var changeTime = 9000;
 var filterEmail  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 var filterLogin  = /^([a-zA-Z0-9_\.\-])+$/;

 var press = 0;


 $(document).ready(function() {

  /* Авторизация */
  
  $('#login').submit(function() {
   $(this).find('input[name=md5_password]').val(hex_md5($(this).find('input[name=password]').val()));
   $(this).find('input[name=password]').val('');
   return true;
  });
  
  /* Регистрация */
 
  $('a.action.registration').click(function() {
   Boxy.load("/so/include/registration.php", {modal: true, title: 'Регистрация нового пользователя на сайте zzima.com'});
   return false;
  });

 
  $('#reg_form').load("/so/include/registration.php");


  /* Голосование */
 
  $('#vote').submit(function() {
   var param = getFormData(this);
   
   $.post("/so/include/ajax.vote.php", param, function(data){
    if (data == '0') alert(language.a);
    else if (data == '3') alert(language.d);
    else {
     if (data == '1') alert(language.b);
     if (data == '2') alert(language.c);
     
     location.href = '/so/vote/index.phtml?id=' + param.parent;
    }
   });
   return false;
  });
  
  $('.fo').flyout();

  /* Раскраска таблицы */
  
  $('#content div.description table tbody tr:odd').each(function() {
	$(this).find('td').css('background', '#3b3b3b');
  });
  $('#content div.description table.no-row-bg tbody tr').each(function() {
	$(this).find('td').css('background', 'none');
  });
  
  /* Выход */
  
  $('#logout').click(function() {
   location.href = '/so/action.logout';
  });

  /* Ресайз */

  if ($(window).width() > 1040) { $('#quick-menu').width(244); }
  $(window).resize(function() { if ($(window).width() > 1040) { $('#quick-menu').width(244); } else { $('#quick-menu').width(231); } });

  /* Меню */

  $('#menu li').each(function() {
   if ($(this).hasClass('select')) $(this).attr('remove', 'false');
   
   $(this).mouseover(function() {

    /* Скрыть все пункты */

    $('#menu li').each(function() {
     if ($(this).attr('remove') != 'false') $(this).removeClass('select');
     $(this).find('div.menu-padding-bottom').hide();
    });


    $(this).addClass('select').find('div.menu-padding-bottom').show();
    
   });
   
   if (!$.browser.msie) {
    $(this).mouseout(function() {
     if ($(this).attr('remove') != 'false') $(this).removeClass('select');
     $(this).find('div.menu-padding-bottom').hide();
    });
   }
  });
  
  $('#content').mouseover(function() { 
   $('#menu li.select').each(function() {
    if ($(this).attr('remove') != 'false') $(this).removeClass('select');
    $(this).find('div.menu-padding-bottom').hide();
   });
  });

  /* Предзагрузка */

  $.preloadImages('/so/images/background_button.gif', '/so/images/background_button_more.gif', '/so/images/button_more.gif', '/so/images/button_more_hover.gif', '/so/images/button_vote.gif', '/so/images/button_vote_hover.gif', '/so/images/menu_h2_news_hover.gif', '/so/images/menu_h2_about_hover.gif', '/so/images/menu_h2_download_hover.gif', '/so/images/menu_h2_shop_hover.gif', '/so/images/menu_h2_communicate_hover.gif', '/so/images/menu_h2_partner_hover.gif', '/so/images/menu_h2_home_hover.gif', '/so/images/menu_h2_news.gif', '/so/images/menu_h2_about.gif', '/so/images/menu_h2_download.gif', '/so/images/menu_h2_shop.gif', '/so/images/menu_h2_communicate.gif', '/so/images/menu_h2_partner.gif', '/so/images/menu_h2_home.gif');

  //var img = $.preloadCssImages();
  //for(var i = 0; i < img.length; i++){
  // jQuery("<img>").attr("src", img[i].src);
  //}
  
  
  /* Комментарии  */
  $(".b-comments .add_comment").click(function(){
	commentParentID = 0;
	var form = $('.b-comment_form');
	if($(this).text() == 'Отменить комментарий'){
		$(this).text('Добавить комментарий');
  		form.hide();
		commentParentID = 0;
	}else{
		$(this).text('Отменить комментарий');
		
		$(this)
			.parent().parent().parent()
			.find("input[name='parent_id']").val(commentParentID)
			.parent()
			.find("textarea").val('');
		form.hide().insertAfter($(this).parent()).show();
		$('.comments_list a.add-comment').each(function(){
			if($(this).text() != 'ответить'){
				$(this).text('ответить');
			}
		});
	}
	return false;
  });
  $('.comments_list a.add-comment').click(function(){
	var id = $(this).parent().parent().find("a.name").attr('name').replace('comment-','');
	var form = $('.b-comment_form');
	$(".b-comments h4 .add_comment").text('Добавить комментарий');
  	if($(this).text() == 'отменить'){
  		form.hide();
		commentParentID = 0;
 		$(this).text('ответить');
  	}else{
		if (commentParentID != id) {
			commentParentID = id;
			form
				.hide()
				.insertAfter($(this).parent())
				.show();
			$(this).parent().parent().parent()
				.find("input[name='parent_id']").val(id)
				.parent()
				.find("textarea").val('');
		}
		$('.comments_list a.add-comment').each(function(){
			if($(this).text() != 'ответить'){
				$(this).text('ответить');
			}
		});
		$(this).text('отменить');
	}
	return false;
  });

  $('.b-comments form').submit(function(){
    return submitComment(this);
  });

 });


 /* предзагрузка */

 jQuery.preloadImages = function() {
  for(var i = 0; i < arguments.length; i++) {
    jQuery("<img>").attr("src", arguments[i]);
  }
 }


 /* Предзагрузка */

 jQuery.preloadCssImages = function(){
  var allImgs = [];
  var k = 0;
  var sheets = document.styleSheets;
  for(var i = 0; i<sheets .length; i++) {
   var cssPile = '';
   var csshref = (sheets[i].href) ? sheets[i].href : 'window.location.href';
   var baseURLarr = csshref.split('/');

   baseURLarr.pop();
   var baseURL = baseURLarr.join('/');

   if(baseURL!="") baseURL+='/';
   if(document.styleSheets[i].cssRules) {
    var thisSheetRules = document.styleSheets[i].cssRules;
    for(var j = 0; j<thisSheetRules.length; j++) {
     cssPile+= thisSheetRules[j].cssText;
    }
   }
   else { cssPile+= document.styleSheets[i].cssText; }

   var imgUrls = cssPile.match(/[^\(]+\.(gif|jpg|jpeg|png)/g);
   if(imgUrls != null && imgUrls.length>0 && imgUrls != '') {
    var arr = jQuery.makeArray(imgUrls);
    jQuery(arr).each(function(){
     allImgs[k] = new Image();
     allImgs[k].src = (this[0] == '/' || this.match('http://')) ? this : baseURL + this;
     k++;
    });
   }
  }
  return allImgs;
 }

 var language = {
  'a': 'Ошибка передачи данных',
  'b': 'Вы уже голосовали на сайте',
  'c': 'Ваш голос учтен! Спасибо!',
  'd': 'Необходимо выбрать вариант ответа'
 };
 
 /* Захват данных */

 function getFormData(obj) {
  var params = {};
  $(obj)
  .find("input[checked], input[type='text'], input[type='hidden'], input[type='password'], input[type='submit'], option[selected], textarea")
  .each(function() {
    params[ this.name || this.id || this.parentNode.name || this.parentNode.id ] = this.value;
  });
  return params;
 } 
 
 /* Язык */

 var language = {
  'a': 'Ошибка передачи данных',
  'b': 'Вы уже голосовали на сайте',
  'c': 'Ваш голос учтен! Спасибо!',
  'd': 'Комментировать могут только зарегистрированные пользователи',
  'e': 'Комментарий успешно добавлен!',
  'f': 'Удалять комментарии могут только админы',
  'g': 'Комментарий успешно удален!'
 };
 
 /* Отправка комментариев */

  function submitComment(obj) {
    var param = getFormData(obj);
	$.post("/so/include/ajax.commentary.php", param, function(data){
	  if (data == '0') alert(language.a);
	  if (data == '1') alert(language.d);
	  if (data == '2') { alert(language.e); location.reload(); }
	  if (data == '0') alert(language.a);
	  if (data == '3') alert(language.f);
	  if (data == '4') { alert(language.g); location.reload(); }
	});
	return false;
  }
  
  
 /* Email фильтр */

 function checkEmail(obj, bg) {
  if (!filterEmail.test(obj.value)) {
   if (!bg) obj.style.background = '#fcc';
   return false;
  }
  else {
   if (!bg) obj.style.background = '#cfc';
   return true;
  }
 }


 /* Обновление картинки */

 function updateImage(obj) {
  var src = obj.src;
  if (src.indexOf('?') > 0) src = src.substr(0, src.indexOf('?'));
  obj.src = src + "?r=" + Math.random();
 }

 /* Проверка капчи */

 function checkCapcha(obj, bg) {
  if (obj.value > 999 && obj.value <= 9999)	{
   if (!bg) obj.style.background = '#cfc';
   return true;
  }
  else {
   if (!bg) obj.style.background = '#fcc';
   return false;
  }
 }

 /* Регистрация */

 function ajaxRegistration(obj) {
  $(obj).find('input[type=submit]').attr('disabled', 'disabled').addClass('disabled');

  var email = ($(obj).find('input[name=email]').val());
  var capcha = ($(obj).find('input[name=capcha]').val());
  var eula = ($(obj).find('input[name=eula]').attr('checked'));

  if (filterEmail.test(email) && capcha > 999 && capcha <= 9999) {
   $.post("/ajax/registration", { email: email, eula: eula, capcha: capcha, action: 'registration' }, function(data){
   	if (data == 0) alert('Ошибка передачи данных');
   	if (data == 1) alert('Вы ошиблись при вводе цифр, либо вы – робот. Попробуйте еще раз!');
   	if (data == 2) alert('Данный адрес электронной почты уже зарегистрирован');
   	if (data == 4) alert('Для того, чтобы пройти регистрацию необходимо ознакомиться и согласиться с условиями пользовательского соглашения');
   	if (data == 3) {
   	 alert('На указанный вами адрес электронной почты отправлено письмо для подтверждения регистрации');
 	 if (Boxy.get(obj)) Boxy.get(obj).hide();
   	}

    $(obj).find('input[type=submit]').attr('disabled', '').removeClass('disabled');

    /* Обновление капчи */

    $(obj).find('img.capcha').each(function() {
     updateImage(this);
    });
   });
  } else {
   alert('Ошибка ввода данных');
   $(obj).find('input[type=submit]').attr('disabled', '').removeClass('disabled');
  }

  return false;
 }

 function checkInput(obj) {
  $('.boxy-form input[name=' + $(obj).attr('alt') + ']').each(function() {
   if ($(obj).attr('name').indexOf($(this).val()) > 0) $(this).attr('checked', 'checked');
  });
 }
