$(document).ready(function(){
	var moverTemplate = ''+
		'<div class="scpb-pic">'+
		'<div class="scpb-name">$name</div>'+
		'<a class="scpb-l" href="$uid-slots-review.htm"><img src="$pic" width="171" height="120" /></a>'+
		'<div class="scpb-r">'+
		'<ul>'+
		'<li class="scpb-score">Game score - <strong>$score</strong></li>'+
		'<li>$type</li>'+
		'<li>$paylines</li>'+
		'<li>$max_win</li>'+
		'<li class="scpb-review"><a href="$uid-slots-review.htm"">Read Review</a></li>'+
		'</ul>'+
		'</div>'+
		'<div class="ixp-c">'+
		'<a target="_blank" href="$casino" class="ixp-c-logo" style="background-position:0 -$pospx;"></a>'+
		'<div class="ixp-c-info"><span>$bonus</span><span class="ixp-c-us">welcome</span></div>'+
		'<div class="ixp-c-r"><a target="_blank" href="$casino"">Visit Casino</a></div>'+
		'</div>'+
		'</div>';
	var currType;
	
	var $tab1 = $('.scph-popular');
	
	var counters = {
		popular:0
	};
	if (Math.floor(Math.random()*101)>=60) {
		counters.popular = 1;
	};
	
	var images = {};
	
	var partnersNames = {
		'sloto-cash':'Slotocash casino~160~$1500 bonus',
		'rushmore':'Rushmore casino~128~$2400 bonus',
		'go-casino':'Go casino~64~$20000 bonus',
		'online-vegas':'Online Vegas casino~32~$5125 bonus',
		'rome':'Rome casino~192~$5000 bonus',
		'club-usa':'Club USA casino~96~$150 bonus',
		'harbour':'English Harbour casino~0~$800 bonus',
		'win-palace':'Win Palace~0~$3000 bonus'
	};
	var partnersOverride = {
		'grail-maiden':'online-vegas'
	};
	if ($.cookie('SlotsPickerPosition')) {
		var savedArr = $.cookie('SlotsPickerPosition').split(',');
		if(savedArr.length == 3){
			for(var i = 0, l = slotsBase.popular.length; i<l; i++){
				if(slotsBase.popular[i].uid == savedArr[0]){
					counters.popular = i;
					break;
				}
			}
			if(savedArr[2] == 'true'){
				$tab2.addClass('active');
				$tab1.removeClass('active');
			}
		}
	}

	cacheImg('popular');
	
	function cacheImg(type){
		var indexes = [
			counters[type],
			((counters[type] + 1) > slotsBase[type].length-1)?0:counters[type] + 1,
			((counters[type] - 1) < 0)?slotsBase[type].length-1:counters[type] - 1
		];
		
		for (var i = 0; i < 2; i++){
			var uid = slotsBase[type][indexes[i]].uid
			if(typeof images[uid] == 'undefined'){
				images[uid] = new Image();
				if (slotsBase[type][counters[type]].pic) {
				images[uid].src = 'img/slots-catalog/screens/171x120/'+uid+'-1.jpg';
				}
				else {
				images[uid].src = 'img/slots-catalog/screens/171x120/noscreen.jpg';
				}
			}
		}
	}
	initMover('popular');
	
	function applyTemplate(type){
		var currArr = slotsBase[type];
		var currPartner = currArr[counters[type]].casino;
		for (var i in partnersOverride) {
			if (i == currArr[counters[type]].uid) {
				var currpartSplit = currPartner.split('/');
				currpartSplit[2] = partnersOverride[i]
				currPartner = currpartSplit.join('/');
			}
		} 
		var partner = partnersNames[currArr[counters[type]].casino.split('/')[2]].split('~');
		var logoPos = partner[1];
		var bonus = partner[2];
		var currCont = moverTemplate
			.replace(/\$uid/g, currArr[counters[type]].uid)
			.replace(/\$name/g, currArr[counters[type]].name)
			.replace(/\$score/g, currArr[counters[type]].score)
			.replace(/\$type/g, currArr[counters[type]].type)
			.replace(/\$paylines/g, currArr[counters[type]].paylines)
			.replace(/\$max_win/g, currArr[counters[type]].max_win)
			.replace(/\$casino/g, currPartner)
			.replace(/\$pic/g, images[currArr[counters[type]].uid].src)
			.replace(/\$bonus/g, bonus)
			.replace(/\$pos/g, logoPos)
		return currCont;
	}
	
	/*function addTooltip($this){
		$this.mouseenter(function(e){
			var this_casino = $this.attr('href').split('/');
			var tpos = e.pageX+3;
			if (tpos+210>=$(window).width()) {
				tpos = $(window).width()-210;
			}
			this_casino = this_casino[2];
			$('body').append('<div class="picker-tooltip" style="left:'+tpos+'px; top:'+(e.pageY+3)+'px">“Play” forwards you to '+partnersNames[this_casino]+' where you can <span>play this game for fun or real money</span>.</div>');
			
			
		});
		$this.mouseleave(function(){
			$('.picker-tooltip').remove();
		})
	};*/
	
	function initMover(type){
		currType = type;
		var currCont = applyTemplate(type);
		$('.scpb-current').html(currCont);
		//addTooltip($('.scpb-current').find('.scpb-play'));
	}
	function updateMover(type,increment){
		if((counters[type] + increment) < 0){
			counters[type] = slotsBase[type].length-1;
		} else if((counters[type] + increment) > slotsBase[type].length-1)
		{
			counters[type] = 0;
		} else {
			counters[type] += increment;
		}
		
		images[slotsBase[type][counters[type]].uid] = new Image();
		if (slotsBase[type][counters[type]].pic) {
			images[slotsBase[type][counters[type]].uid].src = 'img/slots-catalog/screens/171x120/'+slotsBase[type][counters[type]].uid+'-1.jpg';
		}
		else {
			images[slotsBase[type][counters[type]].uid].src = 'img/slots-catalog/screens/171x120/noscreen.jpg';
		}
		
		var currCont = applyTemplate(type);
		$('.scpb-next').html(currCont);
		//addTooltip($('.scpb-next').find('.scpb-play'));
	}
	
	function savePosition(){
		var str = '' + slotsBase['popular'][counters['popular']].uid;
		//console.log(str)
		$.cookie('SlotsPickerPosition',str, { expires: 30 })
	}

	
	var $arrLeft = $('.scpb-arr-left');
	var $arrRight = $('.scpb-arr-right');
	var $moverCont = $('.scpb-mover-cont');
	
	$arrRight.click(function(){
		var $currFrame = $('.scpb-current');
		var $nextFrame = $('.scpb-next');
		
		$arrLeft.hide();
		$arrRight.hide();
		
		updateMover(currType,1);
		$nextFrame.css({'left':737, opacity:0.2});
		
		$currFrame.animate({opacity:0.2},500);
		$nextFrame.animate({opacity:1},500);
		
		$moverCont.animate(
			{left:-737},
			1000,
			function(){
				$moverCont.css('left',-369);
				$nextFrame.css('left',369);
				$currFrame.css('left',0);
				$arrLeft.show();
				$arrRight.show();
				$currFrame.removeClass('scpb-current').addClass('scpb-next');
				$nextFrame.removeClass('scpb-next').addClass('scpb-current');
				savePosition();
			}
		);
	});
	$arrLeft.click(function(){
		var $currFrame = $('.scpb-current');
		var $nextFrame = $('.scpb-next');
		
		$arrLeft.hide();
		$arrRight.hide();

		
		updateMover(currType,-1);
		$nextFrame.css({'left':0, opacity:0.2});
		
		$currFrame.animate({opacity:0.2},500)
		$nextFrame.animate({opacity:1},500)
		
		$moverCont.animate(
			{left:0},
			1000,
			function(){
				$moverCont.css('left',-369);
				$nextFrame.css('left',369);
				$currFrame.css('left',0);
				$arrLeft.show();
				$arrRight.show();
				$currFrame.removeClass('scpb-current').addClass('scpb-next');
				$nextFrame.removeClass('scpb-next').addClass('scpb-current');
				savePosition();
			}
		);
	});
});
