// Scripts for commerce-related features
var bbb_extras = function() {
	return {
		init: function() {
			bbb_extras.disableCalendarDates();
			bbb_extras.enableShippingToggle();
			bbb_extras.enableShipConfirmToggle();
			
			if (window.location.href.indexOf('birthday/cakes') > -1) {
				bbb_extras.moveCakePageContent();
			}
		},
		disableCalendarDates: function() {
			if (typeof(icomm_cal) != 'undefined') {
				var today = new Date();
				today.setDate(today.getDate() + 2); // Add two days to current date
				
				var day   = bbb_extras.padZero(today.getDate(), 2);
				var month = bbb_extras.padZero(today.getMonth() + 1, 2);
				var year  = today.getFullYear();
				
				icomm_cal.addDisabledDates(null, year + '-' + month + '-' + day);
                icomm_cal.addDisabledDates('2010-08-21', '2010-08-30');
				icomm_cal.setDisabledWeekDays(0); // Disable Sundays
			}
		},
		enableShippingToggle: function() {
			var date_textbox = document.getElementById('bbb-extras-pickup-date');
			
			if (date_textbox) {
				// Check for changes to date text box every one second
				window.setInterval('bbb_extras.toggleShippingInfo()', 1000);
			}
		},
		enableShipConfirmToggle: function() {
			// Hide delivery information if in-store pick-up is chosen
			var details_div   = document.getElementById('shipping-details');
			var ship_dropdown = document.getElementById('i-commerce-ship-option');
			
			if (details_div && ship_dropdown.options[0].value.indexOf('Pick-up') > -1) {
				details_div.style.display = (ship_dropdown.selectedIndex == 0) ? 'none' : 'block';
			}
		},
		toggleShippingInfo: function() {
			var date_textbox  = document.getElementById('bbb-extras-pickup-date');
			var ship_fieldset = document.getElementById('icarus-commerce-delivery-info');
			var skip_wrap     = document.getElementById('icarus-commerce-skip-ship-wrap');
			var skip_checkbox = document.getElementById('icarus-commerce-skip-ship');
			
			if (date_textbox.value != 'Choose a date' && date_textbox.value != '') {
				ship_fieldset.style.display = skip_wrap.style.display = 'none';
			} else {
				skip_wrap.style.display = 'block';
				ship_fieldset.style.display = (skip_checkbox.checked) ? 'none' : 'block';
			}
		},
		moveCakePageContent: function() {
			var sidebar2    = document.getElementById('sidebar2');
			var fav_button  = document.getElementById('i-comm-favorite');
			var warning_msg = document.getElementById('bbb-cake-warning');
			var cake_img    = document.getElementById('bbb-cake-image');
			
			fav_button.parentNode.insertBefore(warning_msg, fav_button.nextSibling);
			sidebar2.insertBefore(cake_img, sidebar2.firstChild);
		},
		padZero: function(num, length) {
			var result = num.toString();
			
			while (result.length < length) {
				result = '0' + result;
			}
			
			return result;
		}
	};
}();

i_scripts.addDOMLoadedListener(bbb_extras.init);
