$(document).ready(function(){
	var bindBehaviours = function() {
		$('#points span span').click(function(){
			number = parseInt($(this).parent().text());
			for(i=0;i<_c;i++) {
				if(_set[i]==number) { 
					_set.splice(i,1);
					_c--;
					break;
				}
			}
			$(this).parent().remove();
			getSubsets();
		});
	}
	var clickEvent = function(){
		number = parseInt($('input[name="points"]').val());
		if(isNaN(number) || number==0) {
			alert('Niepoprawna liczba!');
		//} else if(_c==9) {
		//	alert('Wprowadziłeś za dużo liczb!');
		} else {
			$('#points').append('<span class="p">'+number+'<span></span></span>');
			_c++;
			_set.unshift(number);
			getSubsets();
			bindBehaviours();
			if(_c>9) {
				$('#points').height(Math.ceil(_c/3)*60+'px');
				$('#form').height(Math.ceil(_c/3)*60+15+'px');
			}
		}
		$('input[name="points"]').val('');
		return false;
	}
	
	$('input[name="submit"]').click(clickEvent);
	
	$("body").keypress(function(e) {
		if (e.which == 13 && !$(e.target).is("textarea")) {
			return clickEvent();
		}
	});
	$("#content-slider").slider({
		animate: true,
	    change: handleSliderChange,
	    slide: handleSliderSlide,
	    orientation: 'vertical',
	    value: 100
	});
	$("#content-slider2").slider({
		animate: true,
	    change: handleSliderChange2,
	    slide: handleSliderSlide2,
	    orientation: 'vertical',
	    value: 100
	});
	
	$('#right').click(function(){
		pos = $('#container ul').position();
		if(pos.left>-1)$('#container ul').animate({left:pos.left-430},'slow'); 
	});
	$('#left').click(function(){
		pos = $('#container ul').position();
		if(pos.left<0)$('#container ul').animate({left:pos.left+430},'slow'); 
	});
	$('#podlicz').click(function(){
		sum = 0;
		for(i in _set) {
			sum += (_set[i]+0);
		}
		alert('Suma wprowadzonych kuponów: ' + sum + '.');
	});
	$('#container,#left,#right').pngFix(); 
});

var _c = 0;var _divisor = 1000;var _set = [];var _win = [];

function handleSliderChange(e, ui){
  var maxScroll = $("#inner").attr("scrollHeight") - $("#inner").height();
  $("#inner").animate({scrollTop: (100 - ui.value) *(maxScroll / 100) }, 1000);
}
function handleSliderSlide(e, ui){
  var maxScroll = $("#inner").attr("scrollHeight") - $("#inner").width();
  $("#inner").attr({scrollTop: (100 - ui.value) * (maxScroll / 100) });
}
function handleSliderChange2(e, ui){
	var maxScroll = $("#inner2").attr("scrollHeight") - $("#inner2").height();
	$("#inner2").animate({scrollTop: (100 - ui.value) *(maxScroll / 100) }, 1000);
}
function handleSliderSlide2(e, ui){
	var maxScroll = $("#inner2").attr("scrollHeight") - $("#inner2").width();
	$("#inner2").attr({scrollTop: (100 - ui.value) * (maxScroll / 100) });
}
function getSubsets() {
	if(_c>0) {
		v = Math.pow(2,_c)-1;
		_win = [];
		html = '';
		col = 1;
		for(i=1;i<=v;i++) {
			var mask = []; 
			mask = (dec2bin(i)+'').split('');
			while(mask.length<_c) mask.unshift(0);
			result = calcIntersect(mask);		
			if(result[0]<10001 && result[0]%_divisor==0) {
				if(!inArray(result[1].toString(),_win)) {
					_win.push(result[1].toString());
					html += '<span class="r">';
					if(col%3!=1) {
						html += '<img src="templates/images/kwotomierz/txt-lub.gif" alt="" />';
					}
					for(j in result[1]) {
						html += '<span class="i">' + result[1][j] + '</span>';
					}
					html += '<span class="sum">' + result[0] + '</span>';
					html += '</span>';
					col++;
				}
			}
		}
		if(html) {
			$('#info').hide();
			$('.win').html(html);
			$('#results').show('slow');
		} else {
			$('#results').slideUp('slow',function(){$('.win').text();});
			$('#info').show();
			sum = 0;
			for(i in _set) {
				sum += (_set[i]+0);
			}
			alert('Nie wygrałeś, suma wynosi '+ sum +'zł. Graj dalej aby zebrać wielokrotność sumy 1000zł');
		}
	} else {
		$('#results').slideUp('slow',function(){$('.win').text();});
	}
}
function calcIntersect(mask) {			
	var sum = 0;
	var numbers = [];
	for(var j=0;j<_c;j++) {
		if(mask[j]==1) {
			sum += _set[j];
			numbers.push(_set[j]);
		}
	}			
	return new Array(sum,numbers.sort(function(a,b){return a>b}));
}
function inArray(needle,haystack) {
	for (key in haystack) {
		if (haystack[key] == needle) {
			return true;
		}
	}
}
/**
 * @author http://www.ericzhang.com
 */	
function dec2bin(nub) {
	if (nub.length == 0) alert("Input is Blank");
	if(nub==0 || nub==1) return nub;
	var strValidChars = "0123456789";
	var strChar;
	var blnResult = true;
	for (i = 0; i < nub.length && blnResult == true; i++) {
		strChar = nub.charAt(i);
		if(strValidChars.indexOf(strChar) == -1) blnResult = false;
	}
	if (blnResult != false) {
		var i,j,ib;
		var result="";
		while (nub != 1) {
			j = nub % 2;
			i = (nub - j) / 2;
			nub = i;
			ib = j.toString();
			result = ib + result;
		}
		return "1" + result;
	}
	return "Numbers Only"
}	