var knob_check_id = 0;

var num_knob_imgs = 0;
var num_knobs = 0;

var knob_images = new Array;
var knob_pos = new Array;
var knob_dir = new Array;


function knobCheck() {
/*
	console.log(' ');
	console.log('Checking all knobs:');
*/
	
	done = true;
	
	for (var i = 1; i <= num_knobs; i++) {
/* 		console.log('Checking knob ' + i); */
		
		if (knob_dir[i] != 0) {
/* 			console.log('Checking ' + i + ' direction: ' + knob_dir[i]); */
		
			knob_pos[i] += knob_dir[i];
			
			if ((knob_dir[i] == -1 && knob_pos[i] == 1) || (knob_dir[i] == 1 && knob_pos[i] == num_knob_imgs)) {
				knob_dir[i] = 0;
			} else {
				done = false;
			}
			
			var src = knob_images[knob_pos[i]].src;
			$('#knob-' + i).attr('src',src);
		}
	}
	
	if (done) {
		return stopKnobCheck();
	}
	
	stopKnobCheck();
	knob_check_id = window.setTimeout("knobCheck()", 30);
}


function startKnobCheck() {
	knobCheck();
}


function stopKnobCheck() {
	window.clearTimeout(knob_check_id);
}




$(document).ready(function(){
	check_country('billing');
	check_country('shipping');
	check_ship_to();
	check_payment_method();
	check_shipping_method();

	
	
	if ($('.knob')) {
		num_knob_imgs = 5;
		num_knobs = $('.knob').length;
		
		for (var i = 1; i <= num_knob_imgs; i++) {
			knob_images[i] = new Image;
			knob_images[i].src = '/images/grey/knob-' + i + '.gif';
		}
		
		for (var i = 1; i <= num_knobs; i++) {
			knob_pos[i] = 1;
			knob_dir[i] = 0;
		}
		
		
		$('.knob').mouseover(function(){
			var id = $(this).attr('id').replace('knob-','');
			
			knob_dir[id] = 1;
			startKnobCheck();
		});
		
		$('.knob').mouseout(function(){
			if ($(this).attr('class') != 'knob') {
				return;
			}
			var id = $(this).attr('id').replace('knob-','');
			
			knob_dir[id] = -1;
			startKnobCheck();
		});
		
		$('.knob').click(function(){
			var id = $(this).attr('id').replace('knob-','');
			
			knob_dir[id] = 0;
			$(this).removeClass('knob');
		});
	}
	
	
	
	/*
	
			checkout splash
	
	*/
	$('#store_splash a').click(function(){
		$('#store_splash').hide();
		return false;
	});
	
	
	
	/*
	
			sizes
	
	*/
	$('#browseSize').change(function(){
		var size = $(this).children('option:selected').html().replace(' ','-');
		var url = '/browse/size-' + $(this).val() + '/' + size;
		
		window.location = url;
	});
	
	
	
	/*
		buttons
	*/
	if ($('#add_to_cart')) {
		//set up the ids of all the buttons			
		var buttons = new Array(
			'add_to_cart',
			'update_cart',
			'check_out',
			'keep_shopping',
			'add_to_wishlist',
			'update_wishlist',
			'send_wishlist'
		);
		
		//create image containers and set src for each button
		for (var i = 0; i < buttons.length; i++) {
			eval('var ' + buttons[i] + '_up = new Image();');
			eval('var ' + buttons[i] + '_down = new Image();');
			
			eval(buttons[i] + '_up.src = \'/images/content/' + buttons[i] + '.jpg\';');
			eval(buttons[i] + '_down.src = \'/images/content/' + buttons[i] + '_down.jpg\';');
		}
		
		//set the actions for all of the buttons
		var ids = '#' + buttons.join(',#');
		
		$(ids).mouseup(function(){
			eval('var src = ' + $(this).attr('id') + '_up.src;');
			$(this).attr('src',src);
		});
		$(ids).mouseout(function(){
			eval('var src = ' + $(this).attr('id') + '_up.src;');
			$(this).attr('src',src);
		});
		$(ids).mousedown(function(){
			eval('var src = ' + $(this).attr('id') + '_down.src;');
			$(this).attr('src',src);
		});
	}
	
	
	
	/*
		IE fix for image inputs (thanks for nothing, bill gates!)
	*/
	$('input[@name=submit]').click(function(){
		$('#real_submit').val($(this).val());
		return true;
	});
	
	
	
	
	/*
		jquery impromptu alert
	*/
	$('a[@rel=alert]').click(function(){
		$.prompt($(this).attr('title'),{ show:'slideDown' });
		return false;
	});
	/*
	*/
	
	
	
	/*
		mailing list validation
	*/
	$('#mailing-list form').submit(function(){
		if ($('input[@name=fields_email]').val() == '') {
			alert('The email field is required.')
			return false;
		}
		
		return true;
	});
	/*
	*/
	
	
	
	$('a#recommend').click(function(){
		window.open('','page','toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=550,height=410,left=50,top=50,titlebar=yes');
	});
	
	
	$('input[@name=fields_email]').focus(function(){
		if ($(this).val() == 'Email List') {
			$(this).val('');
		}
	});
	$('input[@name=fields_email]').blur(function(){
		if ($(this).val() == '') {
			$(this).val('Email List');
		}
	});
	
	

	$('select[@name=billing_country]').change(function(){
		check_country('billing');
	});
	$('select[@name=shipping_country]').change(function(){
		check_country('shipping');
	});
	
	
	$('input[@name=ship_to_billing]').click(function(){
		check_ship_to();
	});
	$('input[@name=ship_to_billing]').change(function(){
		check_ship_to();
	});
	
	$('select[@name=payment_method]').click(function(){
		check_payment_method();
	});
	$('select[@name=payment_method]').change(function(){
		check_payment_method();
	});
});



function check_country(address,skip_else) {
	var country = $('select[@name=' + address + '_country]').val();
	var country_province =  $('#' + address + '_province_' + country)[0]
	
	//province
	$('.' + address + '_province').hide();
	$('.' + address + '_province').find('input,select').attr('disabled','disabled');
	//state
	$('#' + address + '_state').find('input').attr('disabled','disabled');
	$('#' + address + '_state').find('label').addClass('disabled');
	
	if (country_province) {
		//province
		$(country_province).show();
		$(country_province).find('input,select').removeAttr('disabled');
	} else if (country != 'US') {
		//province
		$('#' + address + '_province').show();
		$('#' + address + '_province').find('input,select').removeAttr('disabled');
	} else {
		//state
		$('#' + address + '_state').find('input').removeAttr('disabled');
		$('#' + address + '_state').find('label').removeClass('disabled');
	}
}



function check_ship_to() {
	if ($('input[@name=ship_to_billing]').attr('disabled') == true) {
		return;
	}
	
	if ($('input[@name=ship_to_billing]').attr('checked')) {
		$('#shipping label').addClass('disabled');
		$('#shipping input,#shipping select').attr('disabled','disabled');
	} else {
		$('#shipping label').removeClass('disabled');
		$('#shipping input,#shipping select').removeAttr('disabled');
		check_country('shipping',true);
	}
}



function check_payment_method() {
	if ($('select[@name=payment_method]').attr('disabled') == true) {
		return;
	}
	
	if ($('select[@name=payment_method]').val() == 'PayPal') {
		$('select[@name=payment_method]').parent().siblings().children('label').addClass('disabled');
		$('select[@name=payment_method]').parent().siblings().children('input,select').attr('disabled','disabled');
	} else {
		$('select[@name=payment_method]').parent().siblings().children('label').removeClass('disabled');
		$('select[@name=payment_method]').parent().siblings().children('input,select').removeAttr('disabled');
	}
}



function check_shipping_method(obj) {
	if ($('select[@name=shipping]').length) {
		var total = parseFloat(total_before_shipping) + parseFloat(shipping_prices[$('select[@name=shipping]').val()]);
		$($('#total').text('$' + total.toFixed(2)));
	}
}




