var GLOBAL_CART_SLIDE = "";
var GLOBAL_SHOW_ITEM = "";
var MIN_QTY = 0;
var SCENE7URL = "";
function swapURL(){
	if(location.protocol == 'https:'){
		SCENE7URL = 'https://a248.e.akamai.net/f/248/9086/1.ccd/origin-d3.scene7.com';
	}
	else{
		SCENE7URL = 'http://s7d3.scene7.com';
	}
}Onload.add(swapURL);

//////////////////////////////////////
//GOOGLE EVENT TRACKER             // 
//////////////////////////////////////

function urchinTracker(str){
	pageTracker._trackPageview(str);
}

function checkForMacFF(){
	var platform = navigator.platform.toLowerCase();
	
	if(platform.indexOf('mac')!= -1 && window.gecko){
		window.macFF = true;
	}
	else{
		window.macFF = false;
	}
	return window.macFF;
}

function loadJS(path,name){
	if (name !== "" && typeof name !== "undefined") {
		if(! $(name.id)) {
			var newJsFile = new Asset.javascript(path,{id: name.id});
		}
	}
}

function loadMarquee(){
	if ($('marqueeArea')) {
		var so = new SWFObject("./resources/swf/homeMarquee.swf", "mymovie", "746", "341", "8", "#ffffff");
		so.addParam('wmode','transparent');
		so.write("marqueeArea");
	}
} Onload.add(loadMarquee);

function loadCustomKnife(){
	if($('customKnife')){
	   var so = new SWFObject("./resources/swf/customKnife.swf", "customKnife", "1100", "600", "8", "#ffffff");
	   so.addParam('wmode','transparent');
	   so.write("customKnife");
   }
}

function loadImageZoom(flashUrl,iconString,numViews){
	if($("flashZoomViewer")){
		var so = new SWFObject(flashUrl,"zoomViewer",615,571,"8","#fff");
		so.addParam('wmode','opaque');
		so.addVariable('icons',iconString);
		so.addVariable('numViews',numViews);
		so.write('flashZoomViewer');
	}
}

function frameFlash(){
	if($('frameFlash')){
	  var so = new SWFObject("./resources/swf/frameFlash.swf", "mymovie", "1006", "107", "8", "#ffffff");
	  so.addParam('wmode','transparent');
	  //so.write("frameFlash");
   }
}//Onload.add(frameFlash);

function homeFrameFlash(){
	if($('homeFrameFlash')){
	   var so = new SWFObject("./resources/swf/homeFrameFlash.swf", "mymovie", "1006", "64", "8", "#ffffff");
	   so.addParam('wmode','transparent');
	   //so.write("homeFrameFlash");
   }
}//Onload.add(homeFrameFlash);

// custom accordion
function initControlPanel(){
	if(typeof($('cpExtras')) == 'undefined'){return false;}
    if(typeof CustomAccordian !="undefined"){
        var cp = $('cpExtras');
        if(cp) {
        	var cpAccordian = new CustomAccordian(cp,'h2 a', {open: 'extraRelatedKnives', openClassName: 'swapBg'});
        }
    }
}Onload.add(initControlPanel);

function setInnerContainerWidth(){
	var itemContainer = $ES(".itemCollection .items");
	itemContainer.each(function (container){
			var children = container.getChildren();
		var width = 0;
		children.each(function(el){
			var temp = el.getCoordinates();
			width += temp.width.toInt();
		});
		container.setStyle('width',width+(children.length * 20));
	});
}//Onload.add(setInnerContainerWidth);

//////////////////////////////////////
// CSS ASSETS                       // 
//////////////////////////////////////

function detectBrowser(){
	if(window.ie6) {
		var newIE6css = new Asset.css('./resources/css/ie6.css', {id: 'ie6_css', title: 'ie6_hacks'});
	}else if(window.ie7) {
		var newIE7css = new Asset.css('./resources/css/ie7.css', {id: 'ie7_css', title: 'ie7_hacks'});
	}else if(window.webkit) {
		var newWebkitcss = new Asset.css('./resources/css/safari.css', {id: 'safari_css', title: 'safari_hacks'});
	}
}Onload.add(detectBrowser);

function showImageCaption(event){
	var el = this[0];
	var effect = this[1];
	
	effect.stop();
	
	effect.start({
		'height': [el.getStyle('height').toInt(), 82],
		'top': [el.getStyle('top').toInt(), 152]
	});
	
}

function hideImageCaption(event){
	var el = this[0];
	var effect = this[1];
	
	effect.stop();
	
	effect.start({
		'height': [el.getStyle('height').toInt(), 41],
		'top': [el.getStyle('top').toInt(), 193]
	});
	
}

function imageCaption(){
	if($('imageCaption')){
		var openEffect = new Fx.Styles($('imageCaption'), {duration: 25, transition: Fx.Transitions.linear});
		$('imageCaption').addEvent('mouseenter',showImageCaption.bindWithEvent([$('imageCaption'),openEffect]));
		$('imageCaption').addEvent('mouseleave',hideImageCaption.bindWithEvent([$('imageCaption'),openEffect]));
	}
}//Onload.add(imageCaption);


//////////////////////////////////////
// TOOL TIPS                        // 
//////////////////////////////////////

function tooltip(){
	var toolTips = new Tips($$('.toolTip'), {
		fixed:false,
		showDelay: 500,
		//offset seems to cause a lot of problems
		//offsets: {'x': -20, 'y':-80},
		onShow: function(toolTip) {
			toolTip.setStyle('opacity',1);
			//quickFade(this.toolTip,0,1)
		},
		onHide: function(toolTip) {
			toolTip.setStyle('opacity',0);
			//quickFade(this.toolTip,1,0)
		}
	});
}Onload.add(tooltip);

//////////////////////////////////////
// NAVIGATION                       // 
//////////////////////////////////////
/* kill this bs for now
function safariNav(){
	if(window.webkit) {
		if($('mainNavigation')){
			// this removes inner text of any element with clearText class, used to fix clearText class problem with safari 2.0 //
			var clearText = $ES('.clearText');
			clearText.each(function(el){
				el.setText('');
			});
			// catches issues with nav in safari //
			var navSafari = $('mainNavigation').getChildren();
			navSafari.each(function(el){
				el.getFirst().setStyles({
					'opacity':'0'
				});
			});
		}
	}
}Onload.add(safariNav);

function navigation(){
	if($('mainNavigation')){
		var appCodeName = window.navigator.appCodeName;
		var appVersion = window.navigator.userAgent.split('Firefox/').getLast();
		var nav = $('mainNavigation').getChildren();
		nav.each(function(el){
			// get subnav
			var sub = el.getChildren();
			sub = sub[1];
			// hide subnav by default
			sub.setStyle('opacity',0);
			if(appVersion.toInt() >= 3 && appCodeName == 'Mozilla'){
				sub.setStyle('top',6);
				if(!checkForMacFF()){
					sub.setStyle('top',14);
				}
			}
			
			el.addEvents({
				'mouseenter': function(e) {
					e = new Event(e).stop();
					//quickFade(sub,0,1)
					sub.setStyle('opacity','1');
				},
				'mouseleave': function(e) {
					e = new Event(e).stop();
					//quickFade(sub,1,0)
					sub.setStyle('opacity','0');
				}
			});
		});
	}
}Onload.add(navigation);
*/
function navigation(){
	if($('mainNavigation')){
		var nav = $('mainNavigation').getChildren();
		nav.each(function(el){
			// get subnav
			var sub = el.getFirst();
			sub.setStyle('opacity',0);
			
			/*if(appVersion.toInt() >= 3 && appCodeName == 'Mozilla'){
				sub.setStyle('top',6);
				if(!checkForMacFF()){
					sub.setStyle('top',14);
				}
			}*/
			
			el.addEvents({
				'mouseenter': function(e) {
					e = new Event(e).stop();
					sub.setStyle('opacity','1');
				},
				'mouseleave': function(e) {
					e = new Event(e).stop();
					sub.setStyle('opacity','0');
				}
			});
		});
	}
}Onload.add(navigation);

//////////////////////////////////////
// CART UTILITY                     // 
//////////////////////////////////////
function setCartWidth(){
	if($('itemContainerScroll')){
		var totalItems = ($('itemContainerScroll').getChildren().length) * 260;
		$('itemContainerScroll').setStyle('width',totalItems);
	}
}Onload.add(setCartWidth);

function cartUtilityToggle(){
	if($('cartDetail')){
		var target = $('cartDetail');
		var btn = $('detailToggle');
			GLOBAL_SHOW_ITEM = new Fx.Scroll($('itemContainer'), {duration:1000, wait:false, transition:Fx.Transitions.Quad.easeInOut});
			GLOBAL_CART_SLIDE = new Fx.Slide(target, {duration:250,wait:true, transition: Fx.Transitions.linear,
			onComplete:function(){
				btn.toggleClass('expanded');
			}
		}).hide();
		
		btn.addEvent('click', function(e){
			e = new Event(e);
			GLOBAL_CART_SLIDE.toggle();
			e.stop();
		});
		$('closeDetail').cloneEvents(btn);
	}
}Onload.add(cartUtilityToggle);

function forwardBackward(a,b,c){
	var show = a;
	var hide = b;
	var target = c;
	if($(target)){
		var fx = new Fx.Scroll(target, {duration:1000, wait:false, transition:Fx.Transitions.Quad.easeInOut,
					onStart:function(){
					}
				});	
		fx.toElement(show);
	}
}

function cartItemSlide(){
	if($('itemContainer')){
		var next  =  $ES('.next',$('itemContainerScroll'));
		var previous  =  $ES('.previous',$('itemContainerScroll'));
		var target = $('itemContainer');
		next.each(function(next){
			// current block
			var hide = next.getParent().getParent();
			var show = hide.getNext();
			next.addEvent('click',function(){
				if(show === null){
					show = hide.getParent().getFirst();
				}
				forwardBackward(show,hide,target);
			});
		});
		previous.each(function(previous){
			var hide = previous.getParent().getParent();
			var show = hide.getPrevious();
			previous.addEvent('click',function(){
				if(show === null){
					show = hide.getParent().getLast();
				}
				forwardBackward(show,hide,target);
			});
		});
	}
}


//////////////////////////////////////
// TRANSITIONS                      // 
//////////////////////////////////////

function quickFade(target,begin,end){
	if(window.ie6){
		target.setStyle('opacity',end);
	}else{
		var fx = new Fx.Styles(target, {duration:250,wait:true, transition: Fx.Transitions.linear,
			onComplete:function(){
			}
		});
		fx.start({
			'opacity':[begin,end]
		});
	}
}
function medFade(target,begin,end){
	if(window.ie6){
		target.setStyle('opacity',end);
	}else{
		var fx = new Fx.Styles(target, {duration:550,wait:true, transition: Fx.Transitions.Quad.easeIn,
			onComplete:function(){
			}
		});
		fx.start({
			'opacity':[begin,end]
		});
	}
}
//////////////////////////////////////
// PRODUCTWALL                      // 
//////////////////////////////////////

//function pwItemHover(){
//	var items = $ES('.item');
//	items.each(
//		function(item,index,group){
//			item.addEvent('mouseenter',function(){
//				//alert("ITEM :: "+item+", GROUP LENGTH ::"+group.length+", INDEX ::"+index);
//				item.addClass('current');
//			});
//			item.addEvent('mouseleave',function(){
//				//alert("ITEM :: "+item+", GROUP LENGTH ::"+group.length+", INDEX ::"+index);
//				item.removeClass('current');
//			});
//		});
//}
//////////////////////////////////////
// MENU BG SLIDE                    // 
//////////////////////////////////////

var SlideList = new Class({
	initialize: function(menu, options) {
		this.setOptions(this.getOptions(), options);
		
		this.menu = $(menu);
		this.current = this.menu.getElement('li.current');
		
		this.menu.getElements('li').each(function(item){
		item.addEvent('mouseover', function(){ this.moveBg(item); }.bind(this));
		item.addEvent('mouseout', function(){ this.moveBg(this.current); }.bind(this));
		item.addEvent('click', function(event){ this.clickItem(event, item); }.bind(this));
		}.bind(this));
		
		this.back = new Element('li').addClass('background').adopt(new Element('div').addClass('leftey')).injectInside(this.menu);
		this.back.fx = this.back.effects(this.options);
		if(this.current) {
			this.setCurrent(this.current);
		}
	},

	setCurrent: function(el, effect){
		this.back.setStyles({left: (el.offsetLeft)+'px', width: (el.offsetWidth-10)+'px'});
		(effect) ? this.back.effect('opacity').set(0).start(1) : this.back.setOpacity(1);
		this.current = el;
	},

	getOptions: function(){
		return {
			transition: Fx.Transitions.sineInOut,
			duration: 500, wait: false,
			onClick: Class.empty
		};
	},

	clickItem: function(event, item) {
		if(!this.current){
			this.setCurrent(item, true);
		}
		this.current = item;
		this.options.onClick(new Event(event), item);
	},

	moveBg: function(to) {
		if(!this.current) {return;}
		this.back.fx.custom({
			left: [this.back.offsetLeft, to.offsetLeft],
			width: [this.back.offsetWidth, to.offsetWidth-10]
		});
	}
});

SlideList.implement(new Options);

function showTabContent(item){
	$ES('li',$E('.menu')).getFirst().removeClass('currentTab');
	item.addClass('currentTab');
	var itemId = item.id.split('sel_')[1];
	var target = itemId + 'Tab';
	var fire = $(target);
	$$('.accountTabContent').setStyle('display','none');
	fire.setStyle('display','block');
}

function newSlide(){
	if($('toutItemDetail')){
		var sList = new SlideList($E('ul', 'toutItemDetail'), {transition: Fx.Transitions.backOut, duration: 700, onClick: function(ev, item) { ev.stop(); }});
	}
	if($('userRegistrationTabs')){
		var userRegistrationTabs = $('userRegistrationTabs');
		var initialEl = $E('.current',userRegistrationTabs);
		// new SlideList($E('ul', 'userRegistrationTabs'), {transition: Fx.Transitions.backOut, duration: 700, onClick: function(ev, item) { ev.stop(); showTabContent(item); }});
		//var selectedTab = $E('.currentTab',SlideList.menu);
		//showTabContent(selectedTab);
		if($E('.current')){
		var selected = $E('.current').getFirst();
		showTabContent(selected);
		}
		var links = $ES('li',$E('.menu')).getFirst();
		links.each(function(el){
			el.addEvent('click', function(){
				showTabContent(this);
			});
		});
	}
}Onload.add(newSlide);




// dealer locator results scroll
//function scrollResults(){
//	if($("resultsCopy")){
//		var scrollHeight = $("resultsCopy").getStyle('height').toInt();
//		scrollHeight = scrollHeight - 255;
//		if(scrollHeight > 0){
//			var mySlide = new Slider($('resultsContentBar'), $('knobVert'), {	
//				steps: scrollHeight,	
//				mode: 'vertical',	
//				onChange: function(step){
//					var scroll = new Fx.Scroll('resultsContent', {wait: false,duration: 250,transition: Fx.Transitions.linear});
//					scroll.scrollTo(0,step);
//				}
//			}).set(0);
//		}else {
//			$('resultsContentBar').setStyle('display','none');
//		}
//	}
//}Onload.add(scrollResults);

// checkout scroller //
//function scrollCart(){
//	if($("cartContentsScroll")){
//		var scrollHeight = $("cartContentsScroll").getStyle('height').toInt();
//		scrollHeight = scrollHeight - 244;
//		if(scrollHeight > 0){
//			$('cartContentBar').setStyle('display','block');
//			var mySlide = new Slider($('cartContentBar'), $('knobVert'), {	
//				steps: scrollHeight,	
//				mode: 'vertical',	
//				onChange: function(step){
//					var scroll = new Fx.Scroll('cartContents', {wait: false,duration: 250,transition: Fx.Transitions.linear});
//					scroll.scrollTo(0,step);
//				}
//			}).set(0);
//		}else {
//			$('cartContentBar').setStyle('display','none');
//		}
//	}
//}Onload.add(scrollCart);

function textInputs(){
    var inputs = $ES('input');
    inputs.each(function(input){
            if(input.getAttribute('type') == 'text'){
                var value = input.value;
                input.addEvents({
	            	'focus' : function(){
	                    if(this.value == value){
	                        this.value = "";
	                    }
	                },
	                'blur' : function(){
	                        if(this.value === ""){
	                            this.value = value;
	                        }
	                }
           		});
    }
});
}Onload.add(textInputs);


//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////
///////// AJAX CART FUNCTIONS ////////
function openQuickCart(upc){
	GLOBAL_CART_SLIDE.slideIn();
	var currentItem = $('item_'+upc);
	GLOBAL_SHOW_ITEM.toElement(currentItem);
}
function updateQuickCart(prod){
	var target = $('itemContainerScroll');
	var quickCartUpdate = '';
	target.empty();
	for(i=0; i< prod.items.length; i++){
		var qTotal = (prod.items[i].quantity)*(prod.items[i].price-prod.items[i].discount);
		var productName = prod.items[i].name;
		if(productName.length > 30){
			productName = productName.substr(0,27)+'...';
		}
		quickCartUpdate += "<form id='item_"+prod.items[i].upc+"' class='cartItem'>" +
					"<div class='info'>" +
					//stringObject.substr(start,length)
						"<h2 class='prodTitle'><a href='/index.cfm?event=product.detail&productID="+prod.items[i].productid+"'>"+productName+"</a></h2>" +
						"<input type='text' id='"+prod.items[i].upc+"_qty' class='updateQty' value='"+prod.items[i].quantity+"'>" +
						"<a onClick=removeItem('"+prod.items[i].upc+"')>remove</a>" +
						" | <a onClick=updateItemQty('"+prod.items[i].upc+"_qty')>update</a>" +
						"<div class=\"clear\"></div>" +
						"<h2 style='padding-top:3px;'><span style='margin-left:0;font-weight:bold;font-size:10px;'>SUB TOTAL:</span> $"+qTotal+"</h2>" +
					"</div>" +
					"<div class='pix'>" +
						"<div class='previous'></div>" +
						"<div class='next'></div>" +
						"<div class='itemPict'><img height='35' width='72' src='"+SCENE7URL+"/is/image/BuckKnives/qCart?$knife=is{BuckKnives/"+prod.items[i].imagename+"_1?scl=1}&$qSharp$' /></div>" +
						"<a href='/index.cfm?event=secureCart.begin' id='proceedCheckout_btn' class='clear_text'>Proceed to Checkout</a>" +
					"</div>" +
				"</form>";
	}
	target.innerHTML = quickCartUpdate;
	
	// set total items in cart
	var totalItems = "";
	if (prod.items.length == 1){
		totalItems = prod.items.length+' item';
	} else {
		totalItems = prod.items.length+' items';
	}
	if($('totalItemsCart')){
		var updateTotal = $('totalItemsCart');
		updateTotal.innerHTML = totalItems;
	}
	
	setCartWidth();
	cartItemSlide();
}

function showAddedItem(jsonObj,upc){
	   updateQuickCart(jsonObj);
	   openQuickCart(upc);
}

function completeAddItem(upc,response){
	var url = '/index.cfm?event=cart.load.json';
	var request = new Json.Remote(url, {
		onComplete: function(jsonObj){
			showAddedItem(jsonObj,upc); 
		}
	}).send(request);
}

function createPwOverlay(){
	var body = '';
	var overlay = '';
	if(! window.ie){
		if(!$('pwOverlay')){   
			body = document.getElementsByTagName('body')[0];
			overlay = new Element('div');
			overlay.id = 'pwOverlay';
		  	overlay.setStyles({
			   	'opacity':1,
				'z-index':'5000',
				'cursor':'pointer',
				'position':'absolute',
				'top':'0',
				'left':'0',
				'background':'url(/resources/images/backgrounds/overlayBg.gif)',
				'height': window.getScrollHeight().toInt(),
				'width': window.getScrollWidth().toInt()
		   });
		   overlay.injectInside(body);
	   	}
	   	else{
	   		overlay = $('pwOverlay'); 
	   	}
	}
	else{
		if(!$('pwOverlay')){   
			body = document.getElementsByTagName('body')[0];
			overlay = new Element('div');
			overlay.id = 'pwOverlay';
		  	overlay.setStyles({
				'z-index':'5000',
				'cursor':'pointer',
				'position':'absolute',
				'top':'0',
				'left':'0',
				'background':'#000000',
				'opacity':'.4',
				'height': window.getScrollHeight().toInt(),
				'width': window.getScrollWidth().toInt()
		    });
		    overlay.injectInside(body);
   		}
	   	else{
	   		overlay = $('pwOverlay'); 
	   	}
	}
   	return overlay;
}

function removeOverlay(){
	this.each(function(el){
		if($(el)){
			try{
				el.remove();
			}
			catch(error){
				// console.log(error);
			}
		}
	});
	if($('pwBanner')) {
		$('pwBanner').remove();
	}
}

function processCartResponse(response){
	response = response.clean();
	var overlay = '';
	response = Json.evaluate(response);
	if(response.type == "error"){
		if($('pwOverlay')){
			overlay = $('pwOverlay');
			overlay.removeEvents();
		}
		else{
			overlay = createPwOverlay();
		}
		banner = createLimitExceededBanner();
		banner.injectAfter($(overlay));
		
		$E('.continueShopping',banner).addEvent('click',removeOverlay.bindWithEvent([$(overlay),banner]));
		
		$(overlay).addEvent('click',removeOverlay.bindWithEvent([$(overlay),banner]));
		
		banner.addEvent('click',removeOverlay.bindWithEvent([$(overlay),banner]));
		
		return false;
	}
	else{
		return true;
	}
}

function pdpAddToCart(e){
	new Event(e).stop();
	/*
	var upc = this.id.split('pID_')[1];
	
	if (!upc)
	{
		upc = this.name;
	}	
	*/

	var upc = this.name;

	if (!upc)
	{
		upc = this.id.split('pID_')[1];
	}	
	
	var qty = $('qty').value.toInt();
	if(qty <=0){
		qty = 1;
	}
	//alert(upc);
	var url = '/index.cfm?event=cart.addItem&upc='+upc;
	url += "&quantity="+qty;
	var overlay = "";
	var banner = "";
	var addItem = new Ajax(url,{method:'get',
		onRequest:function(){
			
		},
		onComplete: function(response){
			//Process response here ...
			var addTheItem = processCartResponse(response);
			if(addTheItem){ 
				completeAddItem(upc,response);
				overlay = createPwOverlay();	
				if($(overlay)){
					$(overlay).removeEvents();
					banner = createAddedItemBanner();
					banner.injectAfter($(overlay));
					banner.addEvent('click',removeOverlay.bindWithEvent([$(overlay),banner]));
					$E('.continueShopping',banner).addEvent('click',removeOverlay.bindWithEvent([$(overlay),banner]));
					$(overlay).addEvent('click',removeOverlay.bindWithEvent([$(overlay),banner]));
				}
			}
			else{
				window.fireEvent('onLimitExceeded');
			}
		}
	});
	addItem.request();
}

function preloadAddItemBanner(){
	var image = "";
	if(window.ie6){
		image = 'IE6/pwBanner.gif';
	}
	else{
		image = 'pwBanner.png';
	}
	var newImage = new Asset.image('/resources/images/backgrounds/'+image);
	var bgImage = new Asset.image('/resources/images/backgrounds/overlayBg.gif');
}

function createAddEvent(button,index,group){
	button.addEvent('click',function(e){
		new Event(e).stop();
		
		var p_id = button.id;
		p_id = p_id.split('pID_');
		var url = '/index.cfm?event=cart.addItem&upc='+p_id[1];
		
		
		urchinTracker('product wall/add to cart/quantity:1, upc:'+p_id[1]);
		
		url += "&quantity=1";
		var overlay = "";
		var banner = "";
		
		
		var addItem = new Ajax(url,{method:'get',
		onRequest:function(){
				preloadAddItemBanner();
		},
		onComplete:function(response){
				//Process Response here also
				//HANDLE RESPONSE maybe have a processResponseFunction
				var addTheItem = processCartResponse(response);
				if(addTheItem){
					//completeAddItem(p_id[1],response);
					buildCart(response);
					overlay = createPwOverlay();
					//overlay.removeEvents();
					banner = createAddedItemBanner();
					banner.injectAfter($(overlay));
					banner.addEvent('click',removeOverlay.bindWithEvent([$(overlay),banner]));
					$E('.continueShopping',banner).addEvent('click',removeOverlay.bindWithEvent([$(overlay),banner]));
					overlay.addEvent('click',removeOverlay.bindWithEvent([$(overlay),banner]));
				}
				else{
					window.fireEvent('onLimitExceeded');
				}
		}});
		addItem.request();
	});
}
function initAddToCart(){
	var buttons = $ES('.addToCart');
	buttons.each(createAddEvent);
	
	var pdpButtons = $ES('.addToCart_pdp');
	pdpButtons.each(function(button){
		button.addEvent('click',pdpAddToCart.bindWithEvent(button));
	});
}Onload.add(initAddToCart);



function miniPdpAddToCart(e){
	new Event(e).stop();
	var qty = this[0].value;
	var upc = this[1].value;
	var miniPdp = this[2];
	
	urchinTracker('product wall overlay/add to cart/quantity:'+qty+', upc:'+upc);
	
	if(qty <= 0){
		qty = 1;
	}
	
	var url = '/index.cfm?event=cart.addItem&upc='+upc;
	url += "&quantity="+qty;
	var overlay = "";
	var banner = "";
	var addItem = new Ajax(url,{
		method:'get',
		onRequest:function(){
			if($(miniPdp)){		
				$(miniPdp).remove();
			}
			
			overlay = createPwOverlay();
			if(!$(overlay)){
				$(overlay).removeEvents();
			}
		},
		onComplete: function(response){
			
			//check response here also 
			var addTheItem = processCartResponse(response);
			if(addTheItem){
				completeAddItem(upc,response);
				banner = createAddedItemBanner();
				banner.injectAfter($(overlay));
				banner.addEvent('click',removeOverlay.bindWithEvent([$(overlay),banner]));
				$E('.continueShopping',banner).addEvent('click',removeOverlay.bindWithEvent([$(overlay),banner]));
				$(overlay).addEvent('click',removeOverlay.bindWithEvent([$(overlay),banner]));
			}
			else{
				window.fireEvent('onLimitExceeded');
			}
		}
	});
	addItem.request();
	
}


function showLimitExceededBanner(){
	//console.log('EXCEEDED');
}


function limitExceededBannerEvent(){
	window.addEvent('onLimitExceeded',showLimitExceededBanner);
}Onload.add(limitExceededBannerEvent);

function proceedToCheckout(){
   	urchinTracker('product wall/go to checkout');
	window.location = '/index.cfm?event=secureCart.begin';
}


function createAddedItemBanner(){
	var bannerTarget = "";
	var bannerLeft = "";
	if($('pw')){
		bannerTarget = $('pwContent');
		bannerLeft = bannerTarget.getLeft().toInt() + 41;
	}
	else{
		bannerTarget = $('frame');
		bannerLeft = (bannerTarget.getSize().scrollSize.x.toInt()-556)/2;
	}
	var image = "";
	var body = $E('body');
	   if(window.ie6){
	   	image = 'IE6/pwBanner.gif';
	   }else{
	   	image = 'pwBanner.png';
	   }
	var windowHeight = window.getHeight().toInt();
	var windowTop = window.getScrollTop().toInt();
	var topValue = (windowHeight - 276)/2 + windowTop;
	   
   var pwBanner = new Element('div');
   pwBanner.id = 'pwBanner';
   pwBanner.setStyles({
   	'display':'block',
   	'cursor':'pointer',
   	'position':'absolute',
   	'z-index':'5000',
   	'top':topValue,
   	'left': bannerLeft,
	'background':'url(/resources/images/backgrounds/'+image+') center no-repeat',
   	'height': 276,
   	'width': 556
   });
   
   var checkoutBtn = new Element('a');
   checkoutBtn.addClass('proceedToCheckout');
   checkoutBtn.setAttribute('href','/index.cfm?event=secureCart.begin');
   checkoutBtn.addEvent('click',proceedToCheckout);
   checkoutBtn.injectInside(pwBanner);
   
   var continueShopping = new Element('a');
   continueShopping.addClass('continueShopping');
   continueShopping.injectInside(pwBanner);
   checkoutBtn.addEvent('click',function(){urchinTracker('product wall/continue shopping');});
   return pwBanner;
}

function createLimitExceededBanner(){
	var bannerTarget = "";
	var bannerLeft = "";
	if($('pw')){
		bannerTarget = $('pwContent');
		bannerLeft = bannerTarget.getLeft().toInt() + 41;
	}
	else{
		bannerTarget = $('frame');
		bannerLeft = (bannerTarget.getSize().scrollSize.x.toInt()-556)/2;
	}
	var image = "";
	var body = $E('body');
	   if(window.ie6){
	   	image = 'IE6/limitExceeded.jpg';
	   }else{
	   	image = 'limitExceeded.png';
	   }
	var windowHeight = window.getHeight().toInt();
	var windowTop = window.getScrollTop().toInt();
	var topValue = (windowHeight - 276)/2 + windowTop;
	   
   var pwBanner = new Element('div');
   pwBanner.id = 'pwBanner';
   pwBanner.setStyles({
   	'display':'block',
   	'cursor':'pointer',
   	'position':'absolute',
   	'z-index':'5000',
   	'top':topValue,
   	'left': bannerLeft,
	'background':'url(/resources/images/backgrounds/'+image+') center no-repeat',
   	'height': 276,
   	'width': 556
   });
   
   var checkoutBtn = new Element('a');
   checkoutBtn.addClass('proceedToCheckout');
   checkoutBtn.setAttribute('href','/index.cfm?event=secureCart.begin');
   checkoutBtn.addEvent('click',proceedToCheckout);
   checkoutBtn.injectInside(pwBanner);
   
   var continueShopping = new Element('a');
   continueShopping.addClass('continueShopping');
   continueShopping.injectInside(pwBanner);
   checkoutBtn.addEvent('click',function(){urchinTracker('product wall/continue shopping');});
   return pwBanner;
}







function emptyCheckoutCart(prod){
	if($('cartContentsScroll')){
		var cartTarget = $('cartContentsScroll');
		var mainCartUpdate = '';
		var cartTotal = 0;
		for(i=0; i< prod.items.length; i++){
			var qTotal = (prod.items[i].quantity)*(prod.items[i].price-prod.items[i].discount).toInt();
			cartTotal += qTotal.toInt();
			var productName = prod.items[i].name;
			if(productName.length > 27){
				productName = productName.substr(0,24)+'...';
			}
			var testImg = SCENE7URL+"/is/image/BuckKnives/carttemp?$addcart2$&$product=is%7bBuckKnives/"+prod.items[i].upc+"_1?scl=1%7d&$bkgd=BuckKnives/mainCart_itemBackground2";
			mainCartUpdate += "<div class='itemBlock'>" +
							"<img src='"+testImg+"' height='76' width='108' class='pict'>" +
							"<div class='content'>" +
								"<p class='itemId'>"+prod.items[i].upc+"</p>" +
								"<a class='productName' href='/index.cfm?event=product.detail&productID="+prod.items[i].productid+"'>"+productName+"</a>" +
								"<p class='quantity'>Qty:</p><input type='text' id='"+prod.items[i].upc+"_qty2' class='updateQty2' value='"+prod.items[i].quantity+"'>" +
								"<div class='clear'></div>" +
								"<p class='price'>$"+formatCurrency(prod.items[i].price-prod.items[i].discount)+"</p>" +
								"<a class='cartUpdate' onClick=updateItemQty('"+prod.items[i].upc+"_qty2')>update</a>" +
								"<a class='cartRemove' onClick=removeItem('"+prod.items[i].upc+"')>remove</a>" +
							"</div>" +
						"</div>";
		}
		
		
		cartTarget.innerHTML = mainCartUpdate;
		$('priceSubTotal').innerHTML = '$0';
		$('priceTax').innerHTML = '$0';
		$('priceShipping').innerHTML = '$0';
		if ($('priceDiscount')) {
			$('priceDiscount').innerHTML = '$0';
		}
		$E('span', $('priceTotal')).innerHTML = '$0';
		if($('mainCartItems')){
		var mainCartItems = $('mainCartItems');
			mainCartItems.innerHTML = '0 items';
		}	
		// scrollCart(); // removed to revert back to browser scroll bars
	}
}
function initEmptyButtons(){
	$ES('.emptyCart').each(function(el){
		el.addEvent('click',emptyQuickCart);
	});
	
}Onload.add(initEmptyButtons);
function emptyQuickCart(e){
	new Event(e).stop();
	var url = '/index.cfm?event=cart.empty';
	var request = new Ajax(url,{method:'get',onComplete:function(jsonObj){
		updateQuickCart({items:[]});
		GLOBAL_CART_SLIDE.slideOut();
		emptyCheckoutCart({items:[]});
		window.location.href='/';
	}}).request();
}



//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////
//////////////////////////////////////
// DEBUG                            // 
//////////////////////////////////////


function debug(txt) {
		var frame = $('frame');
		if(!$('debug')){
			var newEl = new Element('div', {
			    'styles': {
					'position':'absolute',
					'top':0,
					'left':0,
					'font-size':10,
					'width':250,
					'min-height':300,
					'z-index':9999,
					'display':'block',
					'background-color':'#fff',
					'border':'1px solid red'
			    },
			    'id': 'debug'
			});
			newEl.injectInside(frame);
			newEl.innerHTML += '<span id="clearDebug" style="text-decoration:underline;cursor:pointer;">Clear:</span><br />';
		}
	var debugItem = $('debug');
	debugItem.innerHTML += '<br />' + txt;
	var debugClear = $('clearDebug');

	debugClear.addEvent('click',function(){
		debug.innerHTML = '<span id="clearDebug" style="text-decoration:underline;cursor:pointer;">Clear:</span><br />';
	});
	
}

//////////////////////////////////////
// INITIATE VALIDATION              // 
//////////////////////////////////////
/*
function customValidateForms(){	
		if(($('form_shippingAddress'))&&(!window.ie6)){var shippingInfoValid = new CustomValidate('form_shippingAddress', {required: 'required', error: 'error', submit: 'continue_btn'});};
		if(($('form_billingAddress'))&&(!window.ie6)){var billingInfoValid = new CustomValidate('form_billingAddress', {required: 'required', error: 'error', submit: 'continue_btn'});};
//			shouldBeExtension($('shippingContainer'));
//			function shouldBeExtension(container){
//				container.addEvent('keyup',function(){
//					checkForInvalid();
//				});
//				container.addEvent('focus',function(){
//					checkForInvalid();
//				});
//				container.addEvent('blur',function(){
//					checkForInvalid();
//				});
//				container.addEvent('click',function(){
//					checkForInvalid();
//				});
//			};
//			function checkForInvalid(){
//				var container = $('shippingContainer');
//					if($ES('.invalid', container).length > 0){
//						$('continueBilling').setStyle('visibility','hidden');
//					}else {
//						$('continueBilling').setStyle('visibility','visible');
//					}
//			};
};
*/



// add to cart with updated quantity
function qAddCart(qty){
	if($('ProductURL')){
		var btn = $('ProductURL') 
		var url = btn.getProperty('href');
		url = url.split('quantity=');
		url = url[0]+'quantity='+qty;
		btn.setProperty('href',url);
	}
}


//////////////////////////////////////
// Currency Functions               // 
//////////////////////////////////////
function formatCurrency(num) 
{
	num = num.toString().replace(/\$|\,/g,'');
	
	if(isNaN(num)){
		num = "0";
	}
	
	var sign = (num == (num = Math.abs(num)));

	num = Math.floor(num*100+0.50000000001);
	var 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 killSession() {
	window.location.href='/killSession.cfm';
	var req = new Request({
		url: '/killSession.cfm',
		method: 'get',
		async: false
	});
}



if(typeof(console) == 'undefined'){
	console = {};
	console.log = function(){
		
	};
}