// JavaScript Document
if(flav) {
}else{
	var flav={};
}


Df.flavDialog = Class.create(Df.Dialog,{
	initialize: function($super, hash) {
		$super(hash)

		this.setPars({
			center: true,
			drag: false
		});

		return this;
	},

	set: function($super, pars){
		if(this.pars.center && Prototype.Browser.ie6) {
			this.pars.center = false

			Event.observe(window,'resize', function(e){
				this.ie6center()
			}.bind(this));
		}

		$super(pars)

		return this;
	},

	ie6center: function(){
		element = $(this.getElement());
		holder = element.up()

		var hWidth
		if (holder == document.body) {
			hWidth = document.viewport.getWidth()/2
		}else{
			hWidth = holder.getWidth()/2
		}

		element.style.left = hWidth-(element.getWidth()/2) + 'px'

		return element
	}

})

flav.miniCartActive = true;


/*********RecentlyView Product Slider Init*****************/
Event.observe(window,'load',function(e){

	// Fix the width of the slider element
	if(document.getElementById("rv-products")!=null) {
		var rvProds = document.getElementById("rv-products");
		var rvProdListItems = rvProds.getElementsByTagName("li");
		var width = 0;
		for(var i = 0; i<rvProdListItems.length; i++) {
		   width = width+rvProdListItems[i].offsetWidth;
		}
		var productSlider = document.getElementById("rv-product-slider");
		productSlider.style.width = ""+width+"px";




		var ins3 = new Df.Slider('rv-products')

		ins3.pars.animate = {
			time: 100,
			pause: 20
		}

		ins3.pars.iterateBy = 'li'
		ins3.set();
	}
});

/*********Navigation Init*****************/
Event.observe(window,'load',function(e){
	 if ($('mainNav')) { $('mainNav').dropnav({}); }
	 if ($('secondNav')) { $('secondNav').dropnav({}); }

	 if(Prototype.Browser.ie6 && $('searchTop')){
		  var blockerLeft = '0px'
		  var blockerTop = '35px'
		  var blockerHeight = (parseInt($('searchTop').offsetHeight)) + 'px'
		  var blockerWidth = (parseInt($('searchTop').offsetWidth)) + 'px'
		  var html = '<iframe id="ie6BlockerFrame2" style="z-index: 100; display:block; left:0px; position:absolute; top:35px; filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);" scrolling="no" src="javascript:void(0);" frameborder="0" height="'+ blockerHeight +'" width="'+ blockerWidth +'"></iframe>'

		  $('myAccount').down().next('ul').observe(':shown', function(e){
				if($('ie6BlockerFrame2')){ $('ie6BlockerFrame2').style.display = "block"; }else{ $('searchTop').insert({before: html}); }
		  })
		  $('xpress').down().next('ul').observe(':shown', function(e){
				if($('ie6BlockerFrame2')){ $('ie6BlockerFrame2').style.display = "block"; }else{ $('searchTop').insert({before: html}); }
		  })
		  $('delivery').down().next('ul').observe(':shown', function(e){
				if($('ie6BlockerFrame2')){ $('ie6BlockerFrame2').style.display = "block"; }else{ $('searchTop').insert({before: html}); }
		  })

		  $('myAccount').observe(':hide', function(e){ if($('ie6BlockerFrame2')){ $('ie6BlockerFrame2').style.display = "none"; } })
		  $('xpress').observe(':hide', function(e){ if($('ie6BlockerFrame2')){ $('ie6BlockerFrame2').style.display = "none"; } })
		  $('delivery').observe(':hide', function(e){ if($('ie6BlockerFrame2')){ $('ie6BlockerFrame2').style.display = "none"; } })
	 }

});

/*********Category Feature Init*****************/
Event.observe(window,'load',function(e){
	var products = $$('#products li');
	var height = 0;

 	products.each(function(myItem){
		myItem.observe('mouseover', function(e){ myItem.addClassName('featureOver') });
		myItem.observe('mouseout', function(e){ myItem.removeClassName('featureOver'); });

		if(height < myItem.offsetHeight){
			height = myItem.down(1).offsetHeight;
		}
	});

	/*
		// this code was trying to resize all of the products, which caused a long-running script message in IE6
		// the height of the products are now sized via css
		products.each(function(myItem){
			myItem.down(1).style.height = height + 'px';
		});
	*/
});

// JavaScript Document
Event.observe(window,'load',function(){
	$$('img.expressShopView').each(function(b){
		b.setStyle({visibility: 'visible'})
	});

	Df.Modal.getUiInstance().element.setStyle({opacity: .6})

	Df.Shells = {
		dialog: function(holder) {
			if(!holder) {
				holder = document.body
			}

			var dialog = Df.e('div', holder ,{className: 'dialog'})
			/*Create Express Div*/
			var expressShop = Df.e('div', dialog ,{className: 'expressShop'})
			var details = Df.e('div', dialog ,{className: 'details df_element_hide'})
			var content = Df.e('div', dialog ,{id: 'expressShop'})
			var title = Df.e('div', dialog ,{id: 'quickTitle'})
			var close = Df.e('a', dialog ,{id: 'quickClose'})
			var buttonHolder = Df.e('div', dialog ,{id: 'quickButtonHolder'})
			var button1 = Df.e('a', buttonHolder ,{id: 'quickButton1'})
			var button2 = Df.e('a', buttonHolder ,{id: 'quickButton2'})

			dialog.observe(':hidden',function(e){
				$$('.expressShop')[0].removeClassName('loaded')
				$('quickClose').setStyle({display: 'none'})
				$('quickTitle').setStyle({display: 'none'})
			})

			close.observe('click', function(){
				Df.Lightbox.hide()
				$('quickButtonHolder').setStyle({display: 'none'})
				$('quickButton1').setStyle({display: 'none'})
				$('quickButton2').setStyle({display: 'none'})
				if($('addToCart')){$('addToCart').removeClassName('added')}
			})

			button1.observe('click', function(){
				Df.Lightbox.hide()
				$('quickButtonHolder').setStyle({display: 'none'})
				$('quickButton1').setStyle({display: 'none'})
				$('quickButton2').setStyle({display: 'none'})
				if($('addToCart')){$('addToCart').removeClassName('added')}
			})

			button2.observe('click', function(){
				//change the url to the cart
				location.href='/cart/index.jsp'
			})

			return {element:dialog, content:content}
		}
	}

	var dialog = new Df.flavDialog(Df.Shells.dialog()).set({resize: false})

	Df.Lightbox.createDialog(dialog)

	// IE6 fix to scroll the Lightbox along with the window scroll
	 if(Prototype.Browser.ie6){
		  Event.observe(window, 'scroll', function(){
				var o = document.viewport.getScrollOffsets()

				// only re-position the Modal and iframe when it is diaplayed (or when the iframe exists and is displayed)
				if(Df.Modal._element.iframe != null && Df.Modal._element.iframe.style.display == 'block'){
					 Df.Modal._element.iframe.setStyle({ left: o.left + 'px', top: o.top + 'px' })
					 Df.Modal._element.getElement().setStyle({ left: o.left + 'px', top: o.top + 'px' })
				}
		  })
	 }
	
	/* Flash triggered popup */

//if($('flav_home_1')){		//CHANGED FOR SMP:3652/ PMO:104137
		// Create lightbox feature.
		var content = {element: document.createElement('div')}
		Object.extend(content.element, {id:'flashPopUp'});
		
		var popUp = {
			width: 784,
			height: 370,
			yoffSet: 79
		}

		var rootElement = {
			left: $$('body')[0].viewportOffset().left,
			width: $$('body')[0].getDimensions().width,
			top: $$('body')[0].viewportOffset().top,
			height: document.viewport.getDimensions().height
			
/*	
		//CHANGED FOR SMP:3652/ PMO:104137

			left: $('flav_home_1').viewportOffset().left,
			width: $('flav_home_1').getDimensions().width,
			top: $('flav_home_1').viewportOffset().top,
			height: 330 //$('flav_home_1').viewportOffset().height
*/


		}
		
		$(content.element).setStyle({
			left: rootElement.left + rootElement.width/2 - popUp.width/2 + 'px',
			top: rootElement.top + rootElement.height/2 - popUp.height/2 - popUp.yoffSet + 'px',
			width: '784px',
			height: '324px',
			backgroundColor: '#782E20',
			paddingTop: '45px'
		});
		
		var flashPopUp = {};
		
		setTimeout(function(){
			
			$$('body')[0].insert(content.element);
			
			flashPopUp = new Df.Dialog(content);

			hideflashPopUp();
			
			if($$('div.modal')[0]){
				$$('div.modal')[0].observe('click', function(){
					hideflashPopUp();
				});
			}
		}, 2000);
		
		getVideo = function(){
			if(!($('flashPopUp').select('object').length > 0 || $('flashPopUp').select('embed').length > 0)){
				var so = new SWFObject("../include/flavia_homePageVideo.swf","FlashPopUpSWF2", "752", "310","9", "0x333333");     
				so.addParam("quality","high"); 
				so.addParam("wmode","transparent");
				so.addParam("swliveconnect","true");     
				so.addParam("menu","false");     
				so.addParam("allowScriptAccess","always"); 
				so.addParam("type","application/x-shockwave-flash"); 
				so.addParam("pluginspace","http://www.adobe.com/go/getflashplayer");
				so.addParam("base","."); 
				so.write("flashPopUp");
				
				$('flashPopUp').insert('<a id="flashCloseButton"></a>');
				
				$('flashCloseButton').observe('click', function(){
					Df.Modal.hide();
					hideflashPopUp();
				});
			}
			Df.Modal.show();
			flashPopUp.show();
			$('flashPopUp').removeClassName('df_element_hide');
			$('flashPopUp').addClassName('df_element_show');
			$('flashPopUp').setStyle({zIndex: 9999});
		}
	
		hideflashPopUp = function(){
			$('flashPopUp').removeClassName('df_element_show');
			$('flashPopUp').addClassName('df_element_hide');
			$('flashPopUp').setStyle({zIndex: 0});
		}
//	} 	//CHANGED FOR SMP:3652/ PMO:104137
}, false);



flav.miniCartActive = true;



//Express Shop
flav.validateProduct = function(pForm, cartAction) {
   var isCartable = true;

	if($('prodErr')){
		  //clear errors
		  $('prodErr').down().style.display = 'none'
		  $('prodErr').down().innerHTML = ''

		  //check size
		  if (pForm.prod_0.value == '0') {
				$('prodErr').down().innerHTML = 'Please select a size.';
				$('prodErr').down().style.display = 'block';
				isCartable = false;
				return
		  }

		  var isBadNumber = false;
		  if (isNaN(parseInt(pForm.qty_0.value))) isBadNumber = true;
		  if (!isBadNumber) {
			 for (j=0; j < pForm.qty_0.value.length; j++) {
				 if(isNaN(parseInt(pForm.qty_0.value.charAt(j)))) isBadNumber = true;
			 }
		  }

		  //check quantity
		  if (pForm.qty_0.value < 1 || pForm.qty_0.value == 'undefined' || isBadNumber) {
			 $('prodErr').down().innerHTML = 'Please enter a valid quantity.'
			 $('prodErr').down().style.display = 'block'
			 isCartable = false;
			 return
		  }
	}

	purchaseTypes = document.getElementsByName('purchaseType');

	for (var x=0; x< purchaseTypes.length; x++) {
		var purchaseType = purchaseTypes[x];
		if (purchaseType.checked && purchaseType.value == 'autoship') {
			 purchaseType.value = purchaseType.value + '|' + pForm.autoShipFrequencySelect.value;
		}
	}

	 // add to cart
	if (isCartable) {
		 if (cartAction == 'wishList') {
			  pForm.wlName.value = 'default';
			  pForm.submit();
		 } else if (flav.miniCartActive) {
			  var ajax = new Ajax.Request('/cartHandler/index.jsp', {
				  method: 'post',
				  parameters: {
					  qty_0: pForm.qty_0.value,
					  prod_0: pForm.prod_0.value,
					  async: pForm.asynch.value,
					  action: pForm.action.value
				  },
				  onComplete: function(e){
					  if (e.status == '200') {
                    try {
								if(e.responseText.match(/\<itemCount\>([0-9]+)\<\/itemCount\>/)!=null){
									 var m = e.responseText.match(/\<itemCount\>([0-9]+)\<\/itemCount\>/)
									 var newQty = m[1] + ' Item'
									 if (m[1] > 1) { newQty += 's' }
									 $('shoppingBag').innerHTML = newQty
								}else{
									 location.href = '/cart/index.jsp'
								}
                    } catch(x) {
                        location.href = '/cart/index.jsp'
                    }
						  if($('quickButtonHolder')){$('quickButtonHolder').setStyle({display: 'block'})}
						  if($('quickButton1')){$('quickButton1').setStyle({display: 'block'})}
						  if($('quickButton2')){$('quickButton2').setStyle({display: 'block'})}
						  if($('addToCart')){$('addToCart').addClassName('added')}
					  }
				  },
				  onException: function(e,m){
					 //if exception occurs in the express shop, forward to the cart so the proper error messaging can be displayed to the user
					 location.href = '/cart/index.jsp'
				  },
				  onError: function(e,m){
					 Df.Lightbox.hide()
				  }
			  })
		 } else {
			  pForm.submit();
		 }
	}
}


$(document).observe('dom:loaded', function(e){
	$$('a[rel^="redir:"]').each(function(v){
		//syntax
		//rel="redir:p+n=v|p-n=v|h+v|h-
		//p+ adds a name value pair
		//p- removes a name value pair
		//h+ changes the hash
		//h- removes the hash

		//disect current href
		var url = {q:[]}
		var parts = v.href.split(/\?|\#/)
		url.d = parts.shift()
		while(parts.length > 0){
			var p = parts.shift()
			if (p.indexOf('=') > -1)
				url.q = p.split('&')
			else
				url.h = p
		}
		//append redir
		parts = v.rel.replace('redir:','').split('|')
		while(parts.length > 0){
			var p = parts.shift()
			if (p.indexOf('p+') > -1)
				url.q.push(p.replace('p+',''))
			else if (p.indexOf('p-') > -1)
				url.q = $A(url.q).without(p.replace('p-',''))
			else if (p.indexOf('h+') > -1)
				url.h = p.replace('h+','')
			else if (p.indexOf('h-') > -1)
				url.h = false
		}

		//change href
		v.href = url.d
		if(url.q.length > 0) v.href += '?' + url.q.join('&')
		if(url.h) v.href += '#' + url.h
	});
})
