jQuery(document).ready(function($){
	var $remove_check = false;
	var $total_info = 'Selected specification estimate: <strong>€&nbsp;<span>0</span></strong> (excl. VAT 21%)';
	var $total = 0;
	var $preset_hrefs = new Array();
	var $show_price = false;
	
	$('#oscar-spec')
		.prepend('<p id="spec-total-top" class="spec-total">'+$total_info+'</p>')
		.append('<p id="spec-total-bottom" class="spec-total">'+$total_info+'</p>');
	
	// Add spec. presets
	if (typeof($presets) !== 'undefined') {
		for (var index in $presets) {
			$preset_hrefs.push(' <a href="#" class="spec-preset" id="preset_'+index+'">'+$presets[index]+'</a> ');
		}
		if ($preset_hrefs.length > 0)
			$('#oscar-spec').prepend('<p id="spec-presets">Preset specifications: '+ $preset_hrefs.join(' / ') +'</p>');
	}
	
	// Set base price
	update_total(calculate_total());
	
	$('.spec-preset').click(function(e) {
		e.preventDefault();
		var $dyn_var = window["$"+$(this).attr('id')];
		for (var index in $dyn_var) {
			$('input[name='+index+'][value='+$dyn_var[index]+']').attr('checked', 'checked');
			$('input[name='+index+'][value!='+$dyn_var[index]+']').attr('checked', false);
		}
		update_total(calculate_total());
	});
	
	$('#oscar-spec input').each(function() {
		if ($(this).is(':checked'))
			$(this).parent('li').addClass('selected');
		
		if ($(this).attr('title') > 0)
			$(this).parent('li').prepend('<span>€&nbsp;'+ commaFormatted(currencyFormatted($(this).attr('title'))) +'</span>');
			
		$(this).parent('li').wrapInner('<label></label>');
	});
	
	$('#oscar-spec input').change(function() {
		var $this_name = $(this).attr('name');
		$(this).parent('label').parent('li').addClass('selected').siblings('li').each(function() {
			if ($('input', this).attr('name') == $this_name)
				$(this).removeClass('selected');
		}); 
		$show_price = true;
		update_total(calculate_total());
	});
	
	var $w_height = $(window).height();
	var $total_top = $('#oscar-spec').position().top;
	var $total_bottom = $('#oscar-spec').position().top + $('#oscar-spec').height() - $(window).height();

	$(window).scroll(function () {
		//console.log('top:'+$total_top+'; bottom:'+ $total_bottom+'; now:'+$(window).scrollTop());
		if ($(window).scrollTop() > $total_top)
			$('#spec-total-top').addClass('sticktotop');
		else
			$('#spec-total-top').removeClass('sticktotop');
    });
	
	
	function update_total($value) {
		$('.spec-total span').text($value);
		$('#spec-total-top').css('background-color', 'yellow').animate({ backgroundColor: '#eee' }, 'slow');
		
		if ($show_price)
			$('#spec-total-top').addClass('sticky');
	}
	
	function calculate_total() {		
		//if ($total < 1)
		$total = parseInt($('#total_quote').val());
		
		$('form#oscar-spec input:checked').each(function() {
			if ($(this).attr('title') != '')
				$total += parseInt($(this).attr('title'));
		});
		
		return commaFormatted(currencyFormatted($total));
	}
	
	function commaFormatted(amount) {
		var delimiter = ','; // replace comma if desired
		var a = amount.split('.',2)
		var d = a[1];
		var i = parseInt(a[0]);
		if (isNaN(i))
			return '';		
		var minus = '';
		if (i < 0) 
			minus = '-';
		i = Math.abs(i);
		var n = new String(i);
		var a = [];
		while(n.length > 3) {
			var nn = n.substr(n.length-3);
			a.unshift(nn);
			n = n.substr(0,n.length-3);
		}
		if(n.length > 0) 
			a.unshift(n);
		n = a.join(delimiter);
		if (d.length < 1) 
			amount = n;
		else 
			amount = n + '.' + d;
		amount = minus + amount;
		return amount;
	}
	
	function currencyFormatted(amount) {
		var i = parseFloat(amount);
		if (isNaN(i)) 
			i = 0.00;
		var minus = '';
		if (i < 0) 
			minus = '-';
		i = Math.abs(i);
		i = parseInt((i + .005) * 100);
		i = i / 100;
		s = new String(i);
		if (s.indexOf('.') < 0) 
			s += '.00';
		if (s.indexOf('.') == (s.length - 2)) 
			s += '0';
		s = minus + s;
		return s;
	}

});
