var HelloLabels = {};

HelloLabels.OrderStep1 = Class.create();
HelloLabels.OrderStep1.prototype = {
	initialize: function() {
		this.shapeField = $('shape');
		this.sizeField = $('size_dd');
		
		this.shapeField.observe('change', this.refreshSizes.bindAsEventListener(this));
		
		if(!this.shapeField.getValue().blank()) {
			this.refreshSizes();
		}
	},
	
	refreshSizes: function(event) {
		var sizeField = this.sizeField.update('<select name="size"><option value="">Loading sizes...</option></select>');		
		var shape = this.shapeField.getValue();
		
		new Ajax.Request('/orders/refresh_sizes', {
			parameters: { shape: shape },
			onComplete: function(transport) {
				sizeField.update(transport.responseText);
			}
		});
	}
};

HelloLabels.OrderStep2 = Class.create();
HelloLabels.OrderStep2.prototype = {
	initialize: function() {
		this.materialField = $('material_id');		
		this.previewArea = $('preview');
		
		this.materialField.observe('change', this.loadPreview.bindAsEventListener(this));
	},
	
	loadPreview: function(event) {
		var materialField = this.materialField;
		var preview = this.previewArea;
		
		if(materialField.getValue().blank()) {
			preview.update('<img src="/images/material_preview.png" alt="Label Preview" />').removeClassName('loading');
		}
		else {
			preview.update('Loading Preview&#8230;').addClassName('loading');
			
			new Ajax.Request('/orders/load_preview', {
				parameters: { label_id: $F('label_id'), material_id: materialField.getValue() },
				onComplete: function(transport) {
					preview.update(transport.responseText).removeClassName('loading');
				}
			});
		}
	}
};

HelloLabels.OrderStep3 = Class.create();
HelloLabels.OrderStep3.prototype = {
	initialize: function() {
		var self = this;
		this.lastQuantity = -1;
		
		// observe all color selects and check for user input color
		//$('colors_pick').select('select').each(function(item) {
		//	item.observe('change', self.chooseColor.bindAsEventListener(self));
		//});
		
	//	$('order_label_quantity').observe('keyup', this.getTotalCost.bindAsEventListener(this));
		$('order_label_quantity').setAttribute('autocomplete', 'off');
		
		$('preview_link').observe('click', function(event) {
			if(!$('preview_label').visible()) {
				new Effect.BlindDown('preview_label', { duration: 0.4 });
			}
			
			Event.stop(event);
		});
		
		$('close_preview_link').observe('click', function(event) {
			if($('preview_label').visible()) {
				new Effect.BlindUp('preview_label', { duration: 0.4 });
			}
			
			Event.stop(event);
		});
	},

	chooseColor: function(event) {
		var element = Event.element(event);
		
		if(element.getValue() == '__OTHER__') {
			var newColor = prompt('Enter the other pantone color you would like to use.', '') || '';
			
			if(newColor.strip().blank()) {
				element.value = '';
			}
			else {
				new Insertion.Bottom(element, '<option value="' + newColor.strip() + '">' + newColor.strip() + '</option>');
				element.value = newColor.strip();
			}
		}
	}
	
	/*getTotalCost: function(event) {
		var quantity = $F('order_label_quantity');
		var label = $F('order_label_label_id');
		
		this.lastQuantity = quantity;
		
		$('total_cost').update('Loading...');
		
		var self = this;
		
		new Ajax.Request('/order/price', {
			parameters: { label_id: label, quantity: quantity },
			onComplete: function(transport) {
				self.updateTotal(quantity, transport.responseText);
			}
		});
		new Ajax.Request('/order/update_addl', {
			parameters: { label_id: label, quantity: quantity },
			onComplete: function(transport) {
				self.updateAddl(quantity, transport.responseText);
			}
		});
		new Ajax.Request('/order/update_match', {
			parameters: { label_id: label, quantity: quantity },
			onComplete: function(transport) {
				self.updateMatch(quantity, transport.responseText);
			}
		});
		
	},
	
	updateTotal: function(quantity, total) {
		if(quantity == this.lastQuantity) {
			$('total_cost').update(total);
		}
	},
	updateAddl: function(quantity, addl_price) {
		$('color2_price').update(addl_price);
		$('color3_price').update(addl_price);
	},
	updateMatch: function(quantity, match_price) {
		$('color1_pantone_price').update(match_price);
		$('color2_pantone_price').update(match_price);
		$('color3_pantone_price').update(match_price);
	}
	*/
};

function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '$' + num + '.' + cents);
}
function validate_step_3(){
	var myval = $('order_label_quantity').value.gsub(",","");
	if(parseInt(myval) % 500!=0){ 
		alert('Please enter your quantity in increments of 500.');
		return false;
	}else{
		return true;
	}
}
function validate_quantities(){
	var count=0;$('cart_form').getInputs('text').each(function(s){
	if(s.readOnly == false && s.id.include('quantity')){
	
	s.value = s.value.gsub(",","");
	if(parseInt(s.value) % 500!=0){ 
		count=count+1;
	
	}
	if(parseInt(s.value)==0){
		count=count+1;
	}
	}});
	if(count>0)  {
		return true;
	}else{
		return false;
	}
}