var currentY;

window.addEvent('resize', function(){
	sizeFooter();
});

window.addEvent('domready', function(){
	sizeFooter();
	
	if($('billing_zip') && $('billing_zip') != ""){
		get_location('billing', $('billing_zip').value);
	}
	
	if($('shipping_zip') && $('shipping_zip') != ""){
		get_location('shipping', $('shipping_zip').value);
	}
	
	$$('.reg_help').each(function(el){
		el.addEvents({
			'focus': function(){
				$$('.reg_help_text').each(function(el){
					el.setStyle('display', 'none');
				});
				$(el.get('id')+'_help').setStyle('display', '');
			},
			'blur': function(){
				$$('.reg_help_text').each(function(el){
					el.setStyle('display', 'none');
				});
			}
		});
	});
	
	if($('phone')){
		$('phone').addEvents({
			'keyup': function (event) {
				var txtbox = event.target;
				if (event.key != 'delete' && event.key != 'backspace'){
					txtbox.value = txtbox.value.phone();
				}
			},
			'blur': function (event) {
				var txtbox = event.target;
				if (event.key != 'delete' && event.key != 'backspace'){
					if(txtbox.value != '')
						txtbox.value = txtbox.value.phone();
				}
			}
		});
	}
	
	$$('.make_alphanumeric').addEvents({
		'keyup': function (event) {
			var txtbox = event.target;
			if (event.key != 'delete' && event.key != 'backspace'){
				txtbox.value = txtbox.value.alphanumeric();
			}
		},
		'blur': function (event) {
			var txtbox = event.target;
			if (event.key != 'delete' && event.key != 'backspace'){
				if(txtbox.value != '')
					txtbox.value = txtbox.value.alphanumeric();
			}
		}
	});
	
	if($('add_to_cart_table')){
		window.addEvent('scroll', function(){
			if(!currentY){
				currentY = $('add_to_cart_table').getPosition().y;
			}
			var scrollY = window.top.getScroll().y;
			if(scrollY > currentY){
				$('add_to_cart_table').setStyles({
					'position': 'fixed',
					'top': 10
				});
			}
			else{
				$('add_to_cart_table').setStyles({
					'position': 'relative',
					'top': 0
				});
			}		
		});
	}
});

function sizeFooter(){
	if($('footer_outer')){
		if(window.getCoordinates().height > ($('footer_outer').getCoordinates().top + 140)){
			$('footer_outer').setStyle('height', window.getCoordinates().height - $('footer_outer').getCoordinates().top);
		}
	}
}

function processing_request(id, buttontext){
	var buttontext = (buttontext)?buttontext:'Processing'
	var buttons = $(id).getParent().getChildren('a');
	buttons.each(function(el){ el.setStyle('display', 'none'); });
	var processing_class = 'dis'+$(id).getProperty('class').substr(3);
	var processing_btn = new Element('a', {
		'id': id+'_processing',
		'class': processing_class,
		'href': '#',
		'events': {
			'click': function(){
				return false;
			}
		}
	});
	processing_btn.innerHTML = buttontext;
	processing_btn.inject($(id), 'before');
	var cap = new Element('div').inject(processing_btn, 'top');
}

function show_help(id){
	$$('.reg_help').each(function(el){
		el.setStyle('display', 'none');
	});
	$(id+'_help').setStyle('display', '');
}
function show_shipping(){
	if($('different_shipping').checked){
		$('shipping_area').setStyle('display', '');
	}
	else {
		$('shipping_area').setStyle('display', 'none');
	}
}

String.implement({
	phone: function() {
		var newphone = this.replace(/[^\d]/g, "");
		var phonematches = newphone.match(/^(\d{0,3})(\d{0,3})(\d{0,4})/);
		if (phonematches[1].length > 0){
			newphone = "(" + phonematches[1];
		}
		if (phonematches[1].length == 3){
		  newphone += ") " + phonematches[2];
		  if (phonematches[2].length == 3){
		    newphone += "-" + phonematches[3];
		  }
		}
		return newphone;
	},
	numeric: function() {
		var numeric = this.replace(/[^\d]/g, "");
		return numeric;
	},
	alpha: function() {
		var alpha = this.replace(/[^0-9.,]/g, "");
		return alpha;
	},
	alphanumeric: function() {
		var alpha = this.replace(/\W/, "");
		return alpha;
	}
});

Element.implement({
	changeState: function(group, fade, duration) {
		var duration = (duration)?duration:300;
		var changing = (document.getElement('.clone'))?true:false;
		if(!changing){
			if(!group){
				if(!fade){
					this.toggleClass('active');
				}
				else{
					var clone = this.clone().setStyles({
						'opacity': 0,
						'position': 'absolute',
						'top': this.getCoordinates().top,
						'left': this.getCoordinates().left
					});
					clone.injectAfter(this).addClass('clone').toggleClass('active');
					var myEffect = new Fx.Morph(clone, {
						duration: 500,
						onComplete: function(){
							this.toggleClass('active');
							clone.destroy();
						}.bind(this)
					}).start({'opacity': 1});
				}
			}
			else{
				if(!fade){
					$$(group).removeClass('active');
					this.addClass('active');
				}
				else{
					$$(group).each(function(el){
						if(el.hasClass('active')){
							var clone = el.clone().setStyles({
								'opacity': 0,
								'position': 'absolute',
								'top': el.getCoordinates().top,
								'left': el.getCoordinates().left
							});
							clone.injectAfter(el).addClass('clone').toggleClass('active');
							var myEffect = new Fx.Morph(clone, {
								duration: 500,
								onComplete: function(){
									el.toggleClass('active');
									clone.destroy();
								}
							}).start({'opacity': 1});
						}
					});
					var clone = this.clone().setStyles({
						'opacity': 0,
						'position': 'absolute',
						'top': this.getCoordinates().top,
						'left': this.getCoordinates().left
					});
					clone.injectAfter(this).addClass('clone').toggleClass('active');
					var myEffect = new Fx.Morph(clone, {
						duration: 500,
						onComplete: function(){
							this.toggleClass('active');
							clone.destroy();
						}.bind(this)
					}).start({'opacity': 1});
				}
			}
		}
	}
});