

/*==============================================================*/
	var b_objects;
	var s_objects;
	var copyEnabled = 0;
		
	function startup () {		
		b_objects = $$(['b_address1','b_address2','b_city','b_territory','b_zip','b_country']);
		s_objects = $$(['s_address1','s_address2','s_city','s_territory','s_zip','s_country']);
		$('duplicateAddress').onclick = function() {toggleDuplicateInfo();};
		for (var i=0; i<b_objects.length;i++) {
			b_objects[i].onchange =  function() {copyData();};
		}
		// if data is re-displayed from errors but this option was checked, then fire onLoad
		toggleDuplicateInfo();
	}

	function toggleDuplicateInfo() {		
		copyEnabled = $('duplicateAddress').checked;		
		copyData(); // copy over data
		countryHideShowLogic($('s_country'),'s'); // reveal/show zip/postal and territory data depending on whats copied over
	}

	function copyData () {		
		// DISABLED fields do not get POST
		if (copyEnabled) {
			$('s_address1').value = $('b_address1').value;
			$('s_address2').value = $('b_address2').value;
			$('s_city').value = $('b_city').value;
			$('s_territory').selectedIndex = $('b_territory').selectedIndex;
			$('s_zip').value = $('b_zip').value;
			$('s_country').selectedIndex = $('b_country').selectedIndex;
			
			for (var i=0; i<s_objects.length;i++) {
				s_objects[i].readOnly = true;
				s_objects[i].className = "disabled";
			}
		} else {
			for (var i=0; i<s_objects.length;i++) {
				s_objects[i].readOnly = false;
				s_objects[i].className = (s_objects[i].className == "error") ? "error" : "" ;
			}
		}
	}
	
/*==============================================================*/
	var sticker = new Array();
	function labelPreview() {
		// gather all front-side inputs if they exist
		if ($('front_fields')) {
			var inputs = $('front_fields').getElementsByTagName('input');
			for (var i=0; i<inputs.length; i++) {
				if (inputs[i].getAttribute('type') == 'text') {
					inputs[i].onkeyup = (function(i) {return function() {previewField(this, i,'prev_front')}})(i);
					inputs[i].onblur = (function(i) {return function()  {previewField(this, i,'prev_front')}})(i);
				}
			}
		}
		// if this is a bag tagz, then there are inputs for the back:
		// gather all back-side inputs if they exist
		if ($('back_fields')) {
			var fields = $('back_fields').getElements('input[type=text]');
			fields.each(function(el,i) {
				el.addEvents({
					'keyup': function() {
						previewField(this, i+2, 'prev_back')
					},
					'blur' : function() {
						previewField(this, i+2, 'prev_back')
					}
				});
			})
		}
		// gather all sticker sheet inputs if they exist
		
		if ($('stickerSpace')) {
			inputs = $('stickerSpace').getElements('input');
			for (var i=0; i<inputs.length; i++) {
				if (inputs[i].getAttribute('type') == 'text') {					
					inputs[i].onkeyup = function() {pushAllFields();};	
					inputs[i].onblur = function() {pushAllFields();};
					//stickerFields.push(inputs[i]);
					sticker[inputs[i].getAttribute('title')] = inputs[i];
					
				}
			}
		}
		
		// font and graphics
		 if ($('setFont')) {
			 $('setFont').onchange = function () {previewFont();};
			 $('setFont').onkeyup = function () {previewFont();};
		 }
		 if ($('setStyle')) {
			 $('setStyle').onchange = function () {previewStyle();};
			 $('setStyle').onkeyup = function () {previewStyle();};
		 }
	}
	
	function previewRearBagField(elArray){
		/*elArray.each(function(el, i){
			previewField(el,i,'prev_back');
		});*/
	}
	
	function previewField(field, num, side) {
		var comText = (field.value == "") ? field.value : field.value + " ";
		getFlashMovie(side).sendTextToFlash(comText, num);
	}
	
	function previewFont() {
		var fontID = parseInt($('setFont').options[$('setFont').selectedIndex].value);
		getFlashMovie("prev_front").sendFontToFlash(fontID);	
	}
	
	function previewStyle() {
		var styleID = $('setStyle').options[$('setStyle').selectedIndex].value;
		getFlashMovie("prev_front").sendStyleToFlash(styleID);	
	}

	function pushAllFields() {
		getFlashMovie("prev_front").sendStickerText(sticker['First_Name'].value, sticker['Last_Name'].value, sticker['Phone'].value, sticker['Address'].value, sticker['City'].value, sticker['Territory'].value, sticker['Code'].value, sticker['Country'].value);
	}
	
	function getFlashMovie(movieName) {
		var isIE = navigator.appName.indexOf("Microsoft") != -1;
		return (isIE) ? window[movieName] : document[movieName];
	}
	
/*==============================================================*/
	function cartBindings() {
		if ($('shoppingCartItems')) {
			var cartIcons = $ES('img.previewToggler','shoppingCartItems');
			for (var i=0; i<cartIcons.length; i++){
				cartIcons[i].onmouseup = function() {toggleItemPreview(this);};
			}
		}
		
		var previewIcons = $$('a[rel^=preview]');
		previewIcons.each(function(icon,index){			
			var preview = $(icon.getAttribute('rel'));			
			icon.addEvent('mouseover',function(e){
				preview.setStyles({
					'display' : 'block',
					'top' : icon.getCoordinates().top - 360,
					'left': 300
				});
				/*
				$(document).addEvent('mousemove',function(e){				
					preview.setStyles({
						'top' : e.pageY - 380 + 16,
						'left': e.pageX - 380 + 16
					});
				});
				*/
			});
			icon.addEvent('mouseleave',function(e){
				preview.setStyle('display','none');
				$(document).removeEvents();				
			});
		});
	}
	
	 function toggleItemPreview(whichItem, scenario) {
		 var prefix = ($('shoppingCartItems').className == "checkoutCart") ? 'checkout' : 'cart' ;
		 var toggleItem = whichItem.getAttribute('alt');
		 if ($('item_'+toggleItem).style.display == 'none') {
			 $('item_'+toggleItem).style.display = '';	// IE doesnt support display:table-row so had to use ''
			 whichItem.src = "images/"+ prefix +"_hideItem.gif";
		 } else {
			 $('item_'+toggleItem).style.display = 'none'; 
			 whichItem.src = "images/"+ prefix +"_showItem.gif";
		 }		 
	 }
	 
	 function toggleItemPreview2(whichItem) {
		 	$('whichItem')
	 }

/*==============================================================*/
	function selectCountries() {
		// get the selected country (either onload or via selection change) and hide/show territories & zip/postal code depending on the selection
		countryHideShowLogic($('b_country'),'b'); // check on load
		countryHideShowLogic($('s_country'),'s'); // check on load
		$('b_country').addEvent('change',function(){
				countryHideShowLogic(this,'b');
				if ($('duplicateAddress').checked == true) {
					countryHideShowLogic(this,'s'); // if copy billing address, then force shipping
				}
			});
		$('s_country').addEvent('change',function(){countryHideShowLogic(this,'s');});
	}
	
	/*function countryHideShowLogic(el,prefix) {
		// hide and show logic for country selection
		var copy = $('duplicateAddress').checked;
		var name = el[el.selectedIndex].value;
		
		if (name != 'Canada' && name != 'United States' && name != 'United Kingdom') {
			$(prefix+'_territory').getParent().setStyle('display','none');
			$(prefix+'_zip').getParent().setStyle('display','none');
		} else {
			if (name == 'United Kingdom') {
				$(prefix+'_territory').getParent().setStyle('display','none');
				$(prefix+'_zip').getParent().setStyle('display','block');
			} else {
				$(prefix+'_territory').getParent().setStyle('display','block');
				$(prefix+'_zip').getParent().setStyle('display','block');
			}
		}
	}*/
	
	function countryHideShowLogic(el,prefix) {
		// hide and show logic for country selection
		var copy = $('duplicateAddress').checked;
		var name = el[el.selectedIndex].value;
		
		if (name != 'Canada' && name != 'United States' && name != 'United Kingdom') {
			$(prefix+'_territory').getParent().setStyle('display','none');
			$(prefix+'_territory').options[0].setAttribute('value','NA');
			$(prefix+'_zip').getParent().setStyle('display','none');
			$(prefix+'_zip').setAttribute('value','NA');
		} else {
			if (name == 'United Kingdom') {
				$(prefix+'_territory').getParent().setStyle('display','none');
				$(prefix+'_territory').options[0].setAttribute('value','NA');
				$(prefix+'_zip').getParent().setStyle('display','block');
				$(prefix+'_zip').setAttribute('value','');
			} else {
				$(prefix+'_territory').getParent().setStyle('display','block');
				$(prefix+'_territory').options[0].setAttribute('value','NA');
				$(prefix+'_zip').getParent().setStyle('display','block');
				$(prefix+'_zip').setAttribute('value','');
			}
		}
	}

/*==============================================================*/
