
var Site = {	
	prep: function(){
		new SmoothScroll({ duration: 400 },window);
		
		$$('.editGiftMessage').addEvent('click',function(e){
			e = new Event(e).stop();
			popupDisplay('/detail/gift-message.php?type=' + this.get('rel').split('|')[0] + '&productID=' + this.get('rel').split('|')[1]);
		});
		
		$$('.newAddressLink').addEvent('click',function(e){
			e = new Event(e).stop();
			popupDisplay('/detail/new-address.php?type=' + this.get('rel').split('|')[0] + '&productID=' + this.get('rel').split('|')[1]);
		});
		
		$$('.editAddressLink').addEvent('click',function(e){
			e = new Event(e).stop();
			popupDisplay('/detail/edit-address.php?addressID=' + this.get('rel'));
		});
		
		var popupDisplay = function(href){
			var time = 400;			
			var overlay = new Element('div',{
				'events':{
					'click':function(){
						closeOverlay();
					}
				},
				'styles':{
					'position':'fixed',
					'width':'100%',
					'height':'100%',
					'background-color':'#0d1a2a',
					'left':'0',
					'top':'0',
					'z-index':'999998'					
				}
			});
			
			var container = new Element('div',{
				'styles':{
					'width':'410px',
					'height':'auto',
					'background':'#ffffff',
					'top':'100px',
					'left':'50%',
					'margin-left':'-216px',
					'z-index':'999999',
					'position':'fixed',
					'border':'2px solid #94b9d9'
				}
			});
			if(Browser.Engine.trident4){
				overlay.setStyle('position','absolute');
				container.setStyle('position','absolute');	
			}
			
			var closeOverlay = function(){
				window.removeEvents('keyup');
				var showContainer = new Fx.Morph(container,{
					transition: Fx.Transitions.Quad.easeOut,
					duration: time
				}).start({
					'opacity':0,
					'top':100
				});	
				
				var hideOverlay = new Fx.Morph(overlay,{
					transition: Fx.Transitions.Sine.easeOut,
					duration: time,
					onComplete:function(){
						container.empty();
						container.remove();
						
						overlay.empty();
						overlay.remove();
					}
				}).start({
					'opacity': 0
				});	
			}
			
			var itemContent = new Request.HTML({
				onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript){
					window.addEvent('keyup',function(event){
						if (event.key == 'esc') closeOverlay();
					});
					
					container.setHTML(responseHTML);					
					container.setOpacity(0).inject(document.body,'top');
					overlay.setOpacity(0).inject(document.body,'top');
					
					container.getElements('.closeButton').addEvent('click',function(e){
						e = new Event(e).stop();
						closeOverlay();						 
					});
					
					var showOverlay = new Fx.Morph(overlay,{
						transition: Fx.Transitions.Sine.easeOut,
						duration: time
					}).start({
						'opacity':.5
					});
					var showContainer = new Fx.Morph(container,{
						transition: Fx.Transitions.Quad.easeOut,
						duration: time
					}).start({
						'opacity':1,
						'top':100
					});
				}
			}).get(href);
		}
		
		var addLinkEvents = function(){		
			$$('.detailLink').removeEvents('click').addEvent('click',function(e){
				e = new Event(e).stop();
				detailLink(this.get('href'));
			});
		}
		
		var detailLink = function(href){
			var time = 400;			
			var overlay = new Element('div',{
				'events':{
					'click':function(){
						closeOverlay();
					}
				},
				'styles':{
					'position':'fixed',
					'width':'100%',
					'height':'100%',
					'background-color':'#0d1a2a',
					'left':'0',
					'top':'0',
					'z-index':'999998'					
				}
			});
			
			var container = new Element('div',{
				'styles':{
					'width':'410px',
					'height':'auto',
					'background':'#ffffff',
					'top':'100px',
					'left':'50%',
					'margin-left':'-216px',
					'z-index':'999999',
					'position':'fixed',
					'border':'2px solid #94b9d9'
				}
			});
			if(Browser.Engine.trident4){
				overlay.setStyle('position','absolute');
				container.setStyle('position','absolute');	
			}
			
			var closeOverlay = function(){
				window.removeEvents('keyup');
				var showContainer = new Fx.Morph(container,{
					transition: Fx.Transitions.Quad.easeOut,
					duration: time
				}).start({
					'opacity':0,
					'top':100
				});	
				
				var hideOverlay = new Fx.Morph(overlay,{
					transition: Fx.Transitions.Sine.easeOut,
					duration: time,
					onComplete:function(){
						container.empty();
						container.remove();
						
						overlay.empty();
						overlay.remove();
					}
				}).start({
					'opacity': 0
				});	
			}
			
			var itemContent = new Request.HTML({
				onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript){
					window.addEvent('keyup',function(event){
						if (event.key == 'esc') closeOverlay();
					});
					
					container.setHTML(responseHTML);					
					container.setOpacity(0).inject(document.body,'top');
					overlay.setOpacity(0).inject(document.body,'top');
					
					container.getElements('.closeButton').addEvent('click',function(e){
						e = new Event(e).stop();
						closeOverlay();						 
					});
					
					var showOverlay = new Fx.Morph(overlay,{
						transition: Fx.Transitions.Sine.easeOut,
						duration: time
					}).start({
						'opacity':.5
					});
					var showContainer = new Fx.Morph(container,{
						transition: Fx.Transitions.Quad.easeOut,
						duration: time
					}).start({
						'opacity':1,
						'top':100
					});	
					
					$('detailAdd').addEvent('click',function(e){
						e = new Event(e).stop();
						var href = this.get('href') + '&Qty=' + $('productQuantity').get('value');
						if($('productGiftWrap')){
						   href += '&Gift_Wrap=' + $('productGiftWrap').get('checked');
						}
						window.location = href;
					});
				}
			}).get(href);
		}
			
		$$('.validate').addEvent('submit',function(e){
			e.stop();
			var error = 0;
			$$('.required').each(function(req){
				var value = req.get('value');
				if(value == ''){
					error++;
				}
			});
			if(error > 0){
				popupDisplay('/detail/error.php?id=5');
			}else{
				this.submit();	
			}
		});
		
		var myImages = new Asset.images([
			'/img/interface/arrowRightOver.gif',
			'/img/interface/arrowDownOver.gif'
		]);
		
		addLinkEvents();
		
		$$('.toggleDetail').addEvent('click',function(e){	
			var duration = 250;
			var id = this.get('id').split('_')[1];
			var detailBox = $('Detail_' + id); 
			e = new Event(e).stop();
			var height = detailBox.get('rel');
			if(height != 'visible'){
				new Fx.Morph(detailBox,{
					duration:duration,
					onComplete: function(){					
						new Fx.Morph(detailBox,{
							duration:duration
						}).start({		  
							opacity:1
						});
					}
				}).start({
					height:parseInt(height),
					paddingBottom:37
				});
				detailBox.set('rel','visible');
				this.src = '/img/interface/cart/hide.gif';
			}else{
				new Fx.Morph(detailBox,{
					duration:duration,
					onComplete: function(){					
						new Fx.Morph(detailBox,{
							duaration:duration
						}).start({
							height:0,
							paddingBottom:0
						});
					}
				}).start({
					opacity:0
				});
				detailBox.set('rel',detailBox.getSize().y - 37);
				this.src = '/img/interface/cart/edit.gif';
			}
		});
		
		var detailCount = 0;
		$$('.shoppingCartProductDetail').each(function(el){
			if(detailCount > 0){
				el.set('rel',el.getSize().y - 37);
				el.setStyles({
					height:0,
					opacity:0,
					paddingBottom:0
				});
				$('Toggle_' + el.get('id').split('_')[1]).set('src','/img/interface/cart/edit.gif');
			}else{
				el.set('rel','visible');	
			}
			detailCount++;
		});
		
		
		// Validation
		if($('no-results')){
			popupDisplay('/detail/error.php?id=6');
		}
		
		if($('form-sent')){
			popupDisplay('/detail/error.php?id=7');
		}
		
		if($('empty-cart')){
			popupDisplay('/detail/error.php?id=8');
		}
		
		if($('pickContainerButton')){
			$('pickContainerButton').addEvent('click',function(e){
				var href = this.get('href');
				e = new Event(e).stop();
				var errorCheck = new Request.HTML({
					onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript){
						if(responseHTML != ''){
							popupDisplay('/detail/error.php?id=' + responseHTML);
						}else{
							window.location = href;
						}
					}
				}).get('/detail/error-check.php?check=items');
			});
		}
		
		if($('pickRibbonButton')){
			$('pickRibbonButton').addEvent('click',function(e){
				var href = this.get('href');
				e = new Event(e).stop();
				var errorCheck = new Request.HTML({
					onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript){
						if(responseHTML != ''){
							popupDisplay('/detail/error.php?id=' + responseHTML);
						}else{
							window.location = href;
						}
					}
				}).get('/detail/error-check.php?check=container');
			});
		}
		
		if($('completeGiftButton')){
			$('completeGiftButton').addEvent('click',function(e){
				var href = this.get('href');
				e = new Event(e).stop();
				
				
				var errorCheck = new Request.HTML({
					onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript){
						if(responseHTML != ''){
							popupDisplay('/detail/error.php?id=' + responseHTML);
						}else{
							var errorCheck = new Request.HTML({
								onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript){
									if(responseHTML != ''){
										popupDisplay('/detail/error.php?id=' + responseHTML);
									}else{
										var errorCheck = new Request.HTML({
											onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript){
												if(responseHTML != ''){
													popupDisplay('/detail/error.php?id=' + responseHTML);
												}else{
													window.location = href;
												}
											}
										}).get('/detail/error-check.php?check=ribbon');
									}
								}
							}).get('/detail/error-check.php?check=container');
						}
					}
				}).get('/detail/error-check.php?check=items');
				
				
			});
		}
		
		$$('.checkoutButton').addEvent('click',function(e){
			var href = this.get('href');
			e = new Event(e).stop();
			
			var errorCheck = new Request.HTML({
				onComplete: function(responseTree, responseElements, responseHTML, responseJavaScript){
					if(responseHTML != ''){
						popupDisplay('/detail/error.php?id=' + responseHTML);
					}else{
						window.location = href;
					}
				}
			}).get('/detail/error-check.php?check=shipping');
		});
	},
	
	init: function(){
		
	}
}

window.addEvents({
	'domready': function(){
		Site.prep();
	},
	'load': function(){
		Site.init();	
	}
});
