
var Calculator = {

	megabyte: 0,
	megabyte_wo_12: 0,
	packages: {},
	questions: {},
	max: 0,

	init: function() {

		$('#package_net .package').each(function(){
			
			var id = this.id;
			if (this.title) {
				eval('var data = {' + this.title + '}');
				Calculator.packages[id] = data;
				if (data.min > Calculator.max) {
					Calculator.max = data.min;
				}
				if (data.max > Calculator.max) {
					Calculator.max = data.max;
				}
			}
			this.title = '';
		});
		$('#package_net .question').each(function(){
			var id = this.id;
			eval('var data = {' + this.title + '}');
			data.value = 0;
			data.index = 1;
			Calculator.questions[id] = data;
			$('#' + id + 'v').blur(Calculator.value).html(data.value);
			$(this).slider({
				min: 0,
				max: data.range[data.index],
				value: data.value,
				slide: Calculator.slide,
				range: "min"
			});
			this.title = '';
		});
		$('#package_net input:radio').each(function(){
			var id = this.name.replace('r', '');
			this.checked = Calculator.questions[id].index == this.value;
			$(this).click(Calculator.range);
		});
		Calculator.compute()
		/*;
		$('#package_net img').hover(function(){
			var p = $(this).position();
			$('#tooltip').css({top: p.top-10,left: p.left+20}).html($(this).attr('rel')).show();
		},function(){
			$('#tooltip').hide();
		});*/
	},

	value: function() {
		var id = this.id.replace('v', '');
		var data = Calculator.questions[id];
		data.value = parseInt(this.value);
		if (isNaN(data.value)) {
			data.value = 0;
		} else if(data.value > data.range[data.index]) {
			data.value = data.range[data.index];
		}
		this.value = data.value;
		$('#' + id).slider('value', data.value);
		Calculator.questions[id] = data;
		Calculator.compute();
	},

	range: function() {
		
		if(!$(this).data('set')) {
			var id = this.name.replace('r', '');
			var data = Calculator.questions[id];
			var prevValue = $('#' + id).slider('option','value');
			
			
			if(this.value==0) { 
				data.value = parseInt(prevValue/7);
			} else {
				data.value = parseInt(prevValue*7);
			}
			$(this).data('set',true);
			$(this).siblings('input:radio').not(this).data('set',false);
			
			data.index = parseInt(this.value);
			$('#' + id).slider('option', 'max', data.range[data.index]).slider('value', data.value);
			
			$('#' + id + 'v').html(data.value);
			
			var max = $('#' + id).slider('option', 'max');
			if(data.value >= max) { 
				$('#' + id + 'v').html(max+'+'); 
			}

			Calculator.questions[id] = data;
			Calculator.compute();
		}
	},

	slide: function(event, ui) {
		var id = this.id;
		var value = parseInt(ui.value);

		var max = $('#' + id).slider('option', 'max');
		if (value >= max) {
			$('#' + id + 'v').html(max+'+');
		} else {
			$('#' + id + 'v').html(value);
		}
		
		
		Calculator.questions[id].value = value;
		Calculator.compute();
	},

	compute: function() {
		var sum = 0;
		var sum_wo_12 = 0;
		for (var id in Calculator.questions) {
			var data = Calculator.questions[id];
			switch (data.index)
			{
				case 0:
					sum += data.value * data.usage * 30;
					if (id != 'q1' && id != 'q2') {
						sum_wo_12 += data.value * data.usage * 30;
					}
					break;
				case 1:
					sum += data.value * data.usage * 30 / 7;
					if (id != 'q1' && id != 'q2') {
						sum_wo_12 += data.value * data.usage * 30 / 7;
					}
					break;
				default:
					sum += data.value * data.usage;
					if (id != 'q1' && id != 'q2') {
						sum_wo_12 += data.value * data.usage;
					}
			}
		}
		Calculator.megabyte = Math.round(sum);
		Calculator.megabyte_wo_12 = Math.round(sum_wo_12);
		
		var isMax = false;
		
		for (p in Calculator.questions){
			d=Calculator.questions[p];
			if(parseInt(p.replace(/q/,''))>2) {
				var selectedRadio;
				$('input[name='+p+'r]:eq(0):checked').val()==0 ? selectedRadio = 0 : selectedRadio=1;
				if(d.value==d.range[selectedRadio]) {
					isMax=true;
				} 
			}
		}
		
		if(isMax) {
			Calculator.offer(460801, 6145);
		} else {
			Calculator.offer(Calculator.megabyte, Calculator.megabyte_wo_12);
		}
	
	},

	offer: function(num, num_wo_12) {
		for (var id in Calculator.packages) {
			$('#' + id).removeClass('selected');
		}

		if (num <= 1024) {
			$('#p1').addClass('selected');
		} else if (num_wo_12 <= 6144) {
			$('#p2').addClass('selected');
		} else if (num_wo_12 > 6144 && num < 46080) {
			$('#p3').addClass('selected');
		} else {
			$('#p4').addClass('selected');
		}
		
		
	}

}

