/*
 * $Date: 2009/11/12 03:14:45 $
 * $Revision: 1.5 $
 */


$('a#logout-link').live('click', logout);

$('a[rel!=""]').live('click',function(){
	if ($(this).attr('rel') == 'nofollow') return true;
if ($(this).attr('id') == 'faunasphere')
{
link = decode_link($(this).attr('rel'));
$(this).attr('target','_blank').attr('href', link);
return;
}


    var cookie_name = $(this).hasClass('buy-button')
                    ? 'dg_order_parameters' : 'dgparameters';

    $.post('/mainpage/set_cookie/'+cookie_name,{set: 'true'});
	link = decode_link($(this).attr('rel'));
	name = $(this).parent('.game-buttons').parent('.game-container').find('.game-name').text();
	name = name.replace(/(^\s+)|(\s+$)/g, "");
	if (name != '') name = name + '-index';
	if (name == '')
	{
		name = $(this).parent('.featured-game-control-buttons').parent('.featured-game').find('.featured-game-text').find('a.game-name').text();
		name = name.replace(/(^\s+)|(\s+$)/g, "");
		if (name != '') name = name + '-featured';
		if (name == '')
		{
			name = $(this).parent('.games-list-lower-buttons').parent('.game-wide-container').find('.games-list-text').find('a.game-name').text();
			name = name.replace(/(^\s+)|(\s+$)/g, "");
			if (name != '') name = name + '-list';
			if (name == '')
			{
				name = $('h1.game-name-big').text();
				name = name.replace(/(^\s+)|(\s+$)/g, "");
				if (name != '') name = name + '-play';
				if (name == '')
				{
					name = $('h1.game-name').text();
					name = name.replace(/(^\s+)|(\s+$)/g, "");
				}
			}
		}
	}

        type = $(this).hasClass('buy-button') ? 'buy' : 'exe';
	pageTracker._trackPageview(type + '/' + dgLanguage + '/' + name);
	$(this).attr('target','_blank').attr('href', link);
});

$('a.clover-button').live('click', function(){
	$.post($(this).attr('href'), {}, function(data){
		if (data == 'ok')
		{
			alert('Вы нашли клевер!');
			$('a.clover-button').hide();
		}
		else
		{
			//alert('Тут будет редирект!');
			document.location = '/contest/status';
			//$('a.clover-button').attr('href', '/contest/status');
			return true;
		}
	});
	return false;
});

$('a.thumbnail-image').live('click', load_preview);
if ($.browser.msie && parseInt($.browser.version) <= 6)
{
	$('div#sub-navigation ul li').live('mouseover', function(){
		$(this).attr('class', 'li-hover');
	});
	$('div#sub-navigation ul li ul li').live('mouseover', function(){
		$(this).parent('ul').parent('li').attr('class', 'li-hover');
	});
	$('div#sub-navigation ul li').live('mouseout', function(){
		$(this).attr('class', '');
	});
	$('div#sub-navigation ul li ul li').live('mouseout', function(){
		$(this).parent('ul').parent('li').attr('class', '');
	});
}
//attr('value', 'Search...');
//$('a.mmorpg-thumbnail').click(mmo_preview);
function searchPanelInit(i)
{
	$('#header-languages').text('Languages...');
	if (i)
	{
	$('.search-input').css({
		color: 'silver',
		fontStyle: 'italic'
	}).val('Search...').focus(function(){
		if ($(this).val() == 'Search...')
			$(this).css({
				color: 'black',
				fontStyle: 'normal'
			}).val('');
	}).blur(function()
	{
		if ($(this).val() == '') $(this).css({
			color: 'silver',
			fontStyle: 'italic'
		}).val('Search...');
	});
	}
	$('#header-languages, #language-selector').click(langDropDown);
}

function showMessage(text, m_class)
{
	$('.jpopup').remove();
	$('body').prepend('<div class="jpopup '+m_class+'" id="jpopup-message">'+text+'</div>');
	setTimeout("$('.jpopup').remove();", 5000);
}


function langDropDown()
{
	$('#header-languages-list').show();
	$('#header-languages-list').mouseleave(function(){
		$('#header-languages-list').hide();
	});
	return false;
}


var preview_zoomed = false;
var Base64 = {

	// private property
	_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

	// public method for decoding
	decode : function (input) {
		var output = "";
		var chr1, chr2, chr3;
		var enc1, enc2, enc3, enc4;
		var i = 0;

		input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

		while (i < input.length) {

			enc1 = this._keyStr.indexOf(input.charAt(i++));
			enc2 = this._keyStr.indexOf(input.charAt(i++));
			enc3 = this._keyStr.indexOf(input.charAt(i++));
			enc4 = this._keyStr.indexOf(input.charAt(i++));

			chr1 = (enc1 << 2) | (enc2 >> 4);
			chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
			chr3 = ((enc3 & 3) << 6) | enc4;

			output = output + String.fromCharCode(chr1);

			if (enc3 != 64) {
				output = output + String.fromCharCode(chr2);
			}
			if (enc4 != 64) {
				output = output + String.fromCharCode(chr3);
			}

		}

		output = Base64._utf8_decode(output);

		return output;

	},
	// private method for UTF-8 decoding
	_utf8_decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;

		while ( i < utftext.length ) {

			c = utftext.charCodeAt(i);

			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}

		}

		return string;
	}

}

function add_download(id)
{
	$.post('/game/new_download', {
		'game_id': id
	});
}

function goto_link(link)
{
	link = link.replace(/-_-/g, "=");
	link = link.replace(/-/g, "+");
	link = link.replace(/_/g, "/");
        $.post('/mainpage/set_cookie',{set: 'true'});
	//alert(Base64.decode(link));
	window.open(Base64.decode(link));
}

function decode_link(link)
{
	link = link.replace(/-_-/g, "=");
	link = link.replace(/-/g, "+");
	link = link.replace(/_/g, "/");
	return Base64.decode(link);
}

$(function(){
	//	$('a[rel!=""]').click(function(){
	//		pageTracker._trackPageview('exe/{$language.lang}/{$game.file_name}');
	//goto_link($(this).attr('rel'));
	//return false;
	//});
	});

function load_preview()
{
	if ($('#preview-image').size() == 0) return false;
	if (preview_zoomed) return false;
	$('a.thumbnail-image').css('background', 'none');
	$(this).css('background-color', '#B8E7EA');
	$('#preview-image').unbind('click');
	$('img.preview-loader').show();
	$('#preview-image').attr('src', $(this).attr('href')).load(show_preview);
	return false;
}

function getImgSize(imgSrc)
{
	var newImg = new Image();
	newImg.src = imgSrc;
	var imSize = {
		'width':newImg.height,
		'height':newImg.width
	}
	return imSize;
}
/*	var oHlpr = document.createElement( 'IMG');
	var oPic = document.getElementById( id);
	oHlpr.style.visibility = 'hidden';
	oHlpr.style.position = 'absolute';
	oHlpr.top = 0; oHlpr.left = 0;
	oHlpr.src = oPic.src;
	document.body.appendChild(oHlpr);
	document.body.removeChild( oHlpr);
	return imSize;*/
//}

function show_preview()
{
	$('#preview-adsense').hide();
	offset = $('#preview-image').show().offset();
	if (offset.top == 0 && offset.left == 0)
		{
			$('#preview-image').hide();
			$('#preview-adsense').show();
			return;
		}
	$('#preview-image').css('position', 'absolute').css('margin', '0').css('top', offset.top + 'px').css('left', offset.left+'px').click(zoom_in);
	$('img.preview-loader').hide();
}

function zoom_in()
{
	$('img.preview-loader').show();
	preview_zoomed = true;

	var newImg = new Image();
	newImg.src = $('#preview-image').attr('src');
	prev_img = this;
	$(newImg).load(function(){
		$('img.preview-loader').hide();
		var is = {
			'width':newImg.width,
			'height':newImg.height
		}
		x = (is.width - 387) / 2;
		y = (is.height - 290) / 2;
		$(prev_img).unbind('click').animate({
			marginLeft: (-x) + 'px',
			marginTop: (-y)+'px',
			width: is.width,
			height: is.height
		}, 200, function(){
			$(prev_img).click(zoom_out);
		});
	});
	return false;
}

function zoom_out()
{
	$(this).unbind('click').animate({
		marginLeft: '0',
		marginTop: '0',
		width: '378px',
		height: '290px'
	}, 200, function(){
		$(this).hide(); $('#preview-adsense').show(); preview_zoomed = false;
	});
	return false;
}


function writePanel(domains)
{
	document.write('<div id="header-languages-block">');
	document.write('<div id="header-languages">JS required</div>');
	document.write('<abbr title="Choose Language"><img src="/images/view/language-selector.png" alt="Languages" id="language-selector"/></abbr>');
	document.write('<ul id="header-languages-list">');
	requri = domains[22];
	document.write('<li><a href="'+domains[0]+requri+'"><img src="/images/flags/gb.gif"/>English</a></li>');
	document.write('<li><a href="'+domains[1]+requri+'"><img src="/images/flags/ru.gif"/>Russian</a></li>');
	document.write('<li><a href="'+domains[2]+requri+'"><img src="/images/flags/de.gif"/>German</a></li>');
	document.write('<li><a href="'+domains[3]+requri+'"><img src="/images/flags/ir.png"/>Arabic</a></li>');
	document.write('<li><a href="'+domains[4]+requri+'"><img src="/images/flags/bg.gif"/>Bulgarian</a></li>');
	document.write('<li><a href="'+domains[5]+requri+'"><img src="/images/flags/cn.gif"/>Chinese</a></li>');
	document.write('<li><a href="'+domains[6]+requri+'"><img src="/images/flags/cz.gif"/>Czech</a></li>');
	document.write('<li><a href="'+domains[7]+requri+'"><img src="/images/flags/nl.gif"/>Dutch</a></li>');
	document.write('<li><a href="'+domains[8]+requri+'"><img src="/images/flags/fr.gif"/>French</a></li>');
	document.write('<li><a href="'+domains[9]+requri+'"><img src="/images/flags/gr.gif"/>Greek</a></li>');
	document.write('<li><a href="'+domains[10]+requri+'"><img src="/images/flags/it.gif"/>Italian</a></li>');
	document.write('<li><a href="'+domains[11]+requri+'"><img src="/images/flags/jp.gif"/>Japanese</a></li>');
	document.write('<li><a href="'+domains[12]+requri+'"><img src="/images/flags/kr.gif"/>Korean</a></li>');
	document.write('<li><a href="'+domains[13]+requri+'"><img src="/images/flags/no.gif"/>Norway</a></li>');
	document.write('<li><a href="'+domains[14]+requri+'"><img src="/images/flags/pl.gif"/>Polish</a></li>');
	document.write('<li><a href="'+domains[15]+requri+'"><img src="/images/flags/pt.gif"/>Portuguese</a></li>');
	document.write('<li><a href="'+domains[16]+requri+'"><img src="/images/flags/rs.gif"/>Serbian</a></li>');
	document.write('<li><a href="'+domains[17]+requri+'"><img src="/images/flags/es.gif"/>Spanish</a></li>');
	document.write('<li><a href="'+domains[18]+requri+'"><img src="/images/flags/se.gif"/>Swedish</a></li>');
	document.write('<li><a href="'+domains[19]+requri+'"><img src="/images/flags/ro.gif"/>Romanian</a></li>');
	document.write('<li><a href="'+domains[20]+requri+'"><img src="/images/flags/hu.gif"/>Hungarian</a></li>');
	document.write('<li><a href="'+domains[21]+requri+'"><img src="/images/flags/tr.gif"/>Turkish</a></li>');
	document.write('</ul>');
	document.write('</div>');
}

function login()
{
	$.post('/user/login', {login: $('#loginform-login').val(), password: $('#loginform-password').val(), remember_me: $('#remember-me').attr('checked')}, login_response);
	return false;
}

function login_response(data)
{
	if (data == 'true')
	{
		var str = document.location.toString();
		if (str.search(/user\/recovery/) == -1)
			location.reload(true);
		else
			document.location = '/';
	}
	else


		if (data == 'ipblock')
			$('#loginform-error').html(ipblock);
		else
			if (data == 'block')
				$('#loginform-error').html(accblock);
			else
				if (data == 'false')
					$('#loginform-error').html(loginfail);
				else
					document.location = data;
}

function logout()
{
	$.post('/user/logout', {}, logout_response);
	return false;
}

function logout_response()
{
	location.reload(true);
}
/*

	Array.prototype.inArray = function (value)
	{
		for (var i in this) {
		// Matches identical (===), not just similar (==).
			if (this[i] === value) {
				return i;
			}
		}
		return false;
	};

	var in_progress = new Array;

	$('.fav_star, .fav_star_sel').live('click', send_fav_req);

	function send_fav_req()
	{
		if (in_progress.inArray($(this).attr('id')) === false)
		{
			in_progress.push($(this).attr('id'));
			$.post('/user/favorites', {gameid:$(this).attr('rev')}, change_fav, "json");
		}
		return false;
	}

	function nulfunc()
	{
		return false;
	}

	function change_fav(data)
	{
		if (data.status == 'on')
		{
			showMessage('Игра добавлена в избранное', 'simple-message');
			$('a[rev="'+data.gameid+'"]').find('img').attr('src', '/images/summer/fav-button-up.png');

		}
		else
		{
			showMessage('Игра удалена из избранного', 'simple-message');
			$('a[rev="'+data.gameid+'"]').find('img').attr('src', '/images/summer/fav-button.png');
		}
		in_progress.splice(in_progress.inArray(data.gameid), 1);
	}
*/


$('ul.dgtabs li a').live('click', changetab);

function changetab()
{
	$('ul.dgtabs li a').removeClass('active-tab-h');
	$(this).addClass('active-tab-h');
	id = $(this).attr('href');
	$('.active-tab').removeClass('active-tab').addClass('inactive-tab');
	$(id).removeClass('inactive-tab').addClass('active-tab');
	return false;
}

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function getanchor()
{
  var regex = /#(.*)/;
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}


	inArray = function (arr, value)
	{
		for (var i in arr) {
		// Matches identical (===), not just similar (==).
			if (arr[i] === value) {
				return i;
			}
		}
		return false;
	};

	var in_progress = new Array;

	$('.fav_star, .fav_star_sel').live('click', send_fav_req);

	function send_fav_req()
	{
		if (inArray(in_progress, $(this).attr('rev')) === false)
		{
			in_progress.push($(this).attr('rev'));
			$.post('/user/favorites', {gameid:$(this).attr('rev')}, change_fav, "json");
		}
		return false;
	}

	function nulfunc()
	{
		return false;
	}

	function change_fav(data)
	{
		if (data.status == 'on')
		{
			showMessage(addedtofav, 'simple-message');
			$('.fav_star[rev="'+data.gameid+'"]').attr('class', 'fav_star_sel').attr('title', delfromfav);
		}
		else
		{
			showMessage(removedfromfav, 'simple-message');
			$('.fav_star_sel[rev="'+data.gameid+'"]').attr('class', 'fav_star').attr('title', addtofav);
		}
		in_progress.splice(inArray(in_progress, data.gameid), 1);
	}

		function rating_init()
	{
		$('.rate-link').hover(function(){
			id = $(this).attr('id');
			id = id.split('-');
			num = parseInt(id[1]);
			for(i = 1; i <= num; i++)
			{
				$('#rate-'+i).find('img').attr('src', '/images/view/rate/2-0.png');
			}
			if (num != 5)
			for(i = (num+1); i <= 5; i++)
			{
				$('#rate-'+i).find('img').attr('src', '/images/view/rate/2-1.png');
			}
		}, function(){
			for(i = 1; i <= 5; i++)
			{
				$('#rate-'+i).find('img').attr('src', '/images/view/rate/2-1.png');
			}
		}).click(function(){
			$.post($(this).attr('href'), {}, function(data){
				eval("param = "+data);
				if (param['status'] == 'rated')
				{
					alert('You have already rated this game.');
					return false;
				}

				var width = (114 / 5 * param['game_rate']);
				$('#game-rate').css('width', width+'px');
				var rate = param['game_rate'];
				$('#game-rate-number').text( rate.toFixed(2) );
				$('#game-voices').text(param['voices']);

//				$('#game-rate').attr('alt', param['game_rate']);
				//$('#game-rate').attr('title', param['game_rate']);
				$('.rate-link').unbind();
				num = param['user_rate'];
				for(i = 1; i <= num; i++)
				{
					$('#rate-'+i).find('img').attr('src', '/images/view/rate/2-0.png');
				}
				if (num != 5)
				for(i = (num+1); i <= 5; i++)
				{
					$('#rate-'+i).find('img').attr('src', '/images/view/rate/2-1.png');
				}

				for(i = 1; i <= 5; i++)
				{
					$('#rate-'+i).replaceWith($('#rate-'+i).html());
				}
				$('.game-rating p').text(yourrate);
			});
			return false;
		});
	}


$(document).ready(set_actions);

function set_actions()
{
    $('#dg_social a').live('click', function()
    {
	pageTracker._trackPageview(dgLanguage + '/' + $(this).parent().attr('id'));
    });
}
