// create cookie assigning name, value and expiration days
function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/";}

// read cookie by name and list value
function readCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null;}

// delete cookie by name
function eraseCookie(name) { createCookie(name,"",-1); }

/* If we are using standard mootools switch to mssBrowser else we are using our mootools which already has mssBrowser */
if(typeof mssBrowser == 'undefined'){var mssBrowser = Browser;}

/*	Script: modalizer.js Author: Aaron Newton (aaron [dot] newton [at] cnet [dot] com) */
var Modalizer=new Class({
   defaultModalStyle:{display:'block',position:'absolute',top:0,left:0,'z-index':5000,'background-color':'#333',opacity:0.15},
   setModalOptions:function(options){
      this.modalOptions=$merge({width:(window.getScrollSize().x+0),height:(window.getScrollSize().y+0),elementsToHide:'select',hideOnClick:true,modalStyle:{},updateOnResize:true,layerId:'modalOverlay',onModalHide:$empty,onModalShow:$empty},this.modalOptions,options);return this
   },
   toElement:function(){if(!this.modalOptions.layerId)this.setModalOptions();return $(this.modalOptions.layerId)||new Element('div',{id:this.modalOptions.layerId}).inject(document.body)},
   resize:function(){if($(this)){$(this).setStyles({width:(window.getScrollSize().x+300),height:(window.getScrollSize().y+300)})}},
   setModalStyle:function(styleObject){this.modalOptions.modalStyle=styleObject;this.modalStyle=$merge(this.defaultModalStyle,{width:this.modalOptions.width,height:this.modalOptions.height},styleObject);if($(this))$(this).setStyles(this.modalStyle);return(this.modalStyle)},
   modalShow:function(options){
      this.setModalOptions(options);
      $(this).setStyles(this.setModalStyle(this.modalOptions.modalStyle));
      if(mssBrowser.Engine.trident4)$(this).setStyle('position','absolute'); $(this).removeEvents('click').addEvent('click',function(){this.modalHide(this.modalOptions.hideOnClick)}.bind(this));
      this.bound=this.bound||{};
      if(!this.bound.resize&&this.modalOptions.updateOnResize){this.bound.resize=this.resize.bind(this);window.addEvent('resize',this.bound.resize)}
      if($type(this.modalOptions.onModalShow)=="function")this.modalOptions.onModalShow();
      this.togglePopThroughElements(0);$(this).setStyle('display','block');return this
   },
   modalHide:function(override){if(override===false)return false;this.togglePopThroughElements(1);if($type(this.modalOptions.onModalHide)=="function")this.modalOptions.onModalHide();$(this).setStyle('display','none');if(this.modalOptions.updateOnResize){this.bound=this.bound||{};if(!this.bound.resize)this.bound.resize=this.resize.bind(this);window.removeEvent('resize',this.bound.resize)}return this},
   togglePopThroughElements:function(opacity){if(mssBrowser.Engine.trident4||(mssBrowser.Engine.gecko&&mssBrowser.Platform.mac)){$$(this.modalOptions.elementsToHide).each(function(sel){sel.setStyle('opacity',opacity)})}}
});

// This script is the sole property of 4D Internet Solutions. Copyright 2009, 4D Internet Solutions, Inc. All rights reserved. Neither this script nor any part thereof may be used, copied or otherwise utilized without the express writen approval of 4D Internet Solutions, Inc.  This script has been licensed for use on a single Yahoo! Store for the benefit of the purchaser. Any other use of this script is a violation of this copyright.
// Global Vars
var mssCartFrame,mssActiveCartForm,mssShowCart,mssHideCart,reloadCart,fcartModal;
var fCartLoadNum=mssFrameNum=0;
var iniFrame=false;
try{if (top.document.domain != self.document.domain){iniFrame=false}}catch(e){iniFrame=true}
var fCartShow = (!iniFrame) ? true : false;
var writeCart = function(qv){
	var mssTesting = false; // If we are not live with the product
	var mssFcartVersion = '5.0 Beta 1.1';
	var mssAccountId="draftingsteals-store";
	var giftLevel=75;
	var giftStatement="<div style='width:300px;'>Congratulations!  You've qualified for FREE UPS Ground Shipping within the continental U.S.</div>";
	var checkTot=1;
	var skipCart=true;
	var frameFxTimer=9000;
	var mssFrameW=312;
	var mssCartH=150;
	var minCartH=100;
	var ghostImgOn=false;
	var ghostFxTimer=1500;
	var showNoItems=true;
	var rightColCart=true;
	var hoverCart=true;

	//don't edit below here
	var cartEl=$('mssCartEl');
	var mssFrameContainer=$('mssFrameContainer');
	mssCartFrame=($chk(mssCartFrame))?mssCartFrame:$('mssCartFrame0');
	var fcartBG=$('fcartBG');
	var floatCartItems=$('floatCartItems');
	var fcartTotal=$('fcartTotal');
	var fviewCart=$('fviewCart');
	var viewCartLink=$('viewCartLink');
	var cartClose=$('cartClose');
	var giftEl=$('cartFreeGift');

	var mssCartTotal=minCartTimer=mssCartTotal=giftLeft=mssCartOldTotal=0;
	var total="$0";

	var fcartLoading,cartX,cartY,updateFcart,makeGhostEl,modalizer,createAdditionalDivs;
	var fCartHeight=mssActiveCartForm=ghostSource=ghostImg=cartPeriodical=null;
	createCookie('fCartLoadNum',0,0);
	var mssCartCookie = (!mssTesting)?unescape(readCookie('mssFloatingCart')):unescape('%2451.78%7C%3A%7C0%7C%3A%7C200%5E%5E%5E%5E%2425.89%20%7C%3A%7C%5E2%7C%3A%7C%5E1354577160752589.8');
	var nocookie=(!mssCartCookie || mssCartCookie=='null')?true:false;
	var mssGetCoords = function(el){el=$(el);return el.getPosition();}

	if(!mssCartFrame || mssCartFrame==null) return;
	if(!cartEl || cartEl == null)return;

	function insertAfter(refNode,newNode){refNode.parentNode.insertBefore(newNode,refNode.nextSibling);}
	function removeIframe(num){
		var lastNum = num-1;
		$('mssCartFrame'+lastNum).dispose();
		mssCartFrame=$('mssCartFrame'+num);
		mssCartFrame.setStyle('display','block');
	   	viewCartLink.setProperty('target',mssCartFrame.name);
	}

	function makeFormActive(form){ mssActiveCartForm = $(form); }

	function setFormEvent(form){
		if (!skipCart)return;
		form.onsubmit=null;
		form.addEvent('submit',function(){
         	makeFormActive(form);
			mssFrameNum++;
			form.target='mssCartFrame'+mssFrameNum;
			viewCartLink.setAttribute('target','mssCartFrame'+mssFrameNum);
	   		removeIframe(mssFrameNum);
			if (ghostImgOn){
				if($('image1')) ghostImg = $('image1').getElements('img')[0].clone();
				else if($(form.vwitem.value)) ghostImg = $(form.vwitem.value).clone();
				else if(ghostImg.offsetHeight<10)ghostImg=new Element('div').setStyles({'height':'50px','width':'50px','background':'#cccccc'});
			}
			reloadCart();
		});
	}

	function initAddtoCart(){
		cartX = mssGetCoords(cartEl).x;
		cartY = mssGetCoords(cartEl).y;
		if(!nocookie)viewCartLink.setAttribute('target','mssCartFrame'+mssFrameNum);
		$('fcartBG').injectInside(cartEl);
		//insertAfter($('mss-cart-items'),$('fcartBG'))
	}

	function checkLoadNum(){
		var loadNum=(readCookie('fCartLoadNum'))?unescape(readCookie('fCartLoadNum'))*1:0;
		return loadNum;
	}

	// new string in cookie mssFloatingCart = sTotal + "^" + qty + "^" + mssCartH + "^" + rnum;
	function parseCookie(){
		if(!mssTesting)mssCartCookie=unescape(readCookie('mssFloatingCart'));
		if(!mssCartCookie && mssCartCookie == "")return;
      	dataEls = mssCartCookie.split("^");
		total = dataEls[0];
		mssCartTotal = (total)?(total.substr(1) * 1):0;
		var cookieH = (dataEls[2])? dataEls[2] * 1:0;
		var h2 = Math.max(cookieH +15,minCartH);
		mssCartH = h2;
		if(!dataEls[1] || dataEls[1]==null || dataEls[1]==""){
			numItems=0;
			total="$0";
			return;
		}
		numItems = dataEls[1];
	}

	function initGiftMessage(){
		giftLeft = giftLevel - mssCartTotal;
		if (giftEl && mssCartTotal > 0){
			if (mssCartTotal > (giftLevel - .01)){giftEl.innerHTML=giftStatement;}
			else {
				giftEl.innerHTML = "&nbsp; Add $" + giftLeft.toFixed(2) + " more to your cart for FREE SHIPPING.";
			}
		}
	}

	function setUpCart(){
		if (showNoItems || numItems >= 0 ){
			floatCartItems.innerHTML="Items: <span>" + numItems + "</span> ";
			fcartTotal.innerHTML="Subtotal: <span>" + total + "</span>";
			viewCartLink.addEvent('click',function(){mssShowCart();});
		}
	}

	var resetHeight=function(){
		parseCookie();
		setTimeout(function(){
			mssCartFrame.setStyle('height',mssCartH + 10);
			mssFrameContainer.setStyle('height',mssCartH + 10);
			setUpCart();
			if(mssCartOldTotal != mssCartTotal){
			   mssCartOldTotal=mssCartTotal;
			   createAdditionalDivs();
			}

		},200);
	}

	updateFcart = function(){
		parseCookie();
		setUpCart();
		//initGiftMessage();
    	if(checkTot != mssCartTotal){
      		checkTot = mssCartTotal;
		  	createAdditionalDivs();
		}
	}

	mssHideCart = function(){
		var fadeCart = new Fx.Morph(mssFrameContainer, {duration: '600'});
		if(rightColCart){
			fadeCart.start({opacity:[1,0],'height': [mssFrameContainer.offsetHeight, 1]});
		}else{
			fadeCart.start({opacity:[1,0],'height': [mssFrameContainer.offsetHeight, 1], 'width': [mssFrameContainer.offsetWidth, 1] });
		}
		fadeCart.onComplete=function(){ mssFrameContainer.setStyles({height:1, padding:0})}
		cartEl.removeClass('incart');
		$('fcheckout').injectInside($('mssCartEl'))
		insertAfter($('fviewCart'), $('fcheckout'));
		cartPeriodical = $clear(cartPeriodical);
	}

	mssShowCart = function(){
		cartEl.addClass('incart');
		cartClose.addEvent('click',mssHideCart);
		$('fcheckout').injectInside($('fcartBG'))
		var fadeCart = new Fx.Morph(mssFrameContainer, {duration: '500'}).start({opacity:[0, 1],height:[1,mssCartH]});

		if(hoverCart){
   		var cartTimer = (frameFxTimer)? setTimeout('mssHideCart()',frameFxTimer):null;
   		//mssFrameContainer.addEvent('mouseenter',function(){clearTimeout(cartTimer)});
		}
		cartPeriodical = $clear(cartPeriodical);
		cartPeriodical = resetHeight.periodical(1000);
	}

	makeGhostEl = function(){
		if(!$chk(mssActiveCartForm))return;
		if (cartEl.offsetTop<1) cartEl.setStyle('display','block');
		var submitBtn = mssActiveCartForm.getElement('.addtocartImg');
		var x = mssGetCoords(submitBtn).x;
		var y =	mssGetCoords(submitBtn).y;
		var ghost = new Element('div', {'id': 'mssGhost'}).injectInside(document.body);
		ghostImg.injectInside(ghost);
		var ratio=ghost.offsetWidth/ghost.offsetHeight;
		ghostImg.setStyles({ height:50, width:50*ratio, top:y, left:x });
		var container = $('container');
		var ghostFx=new Fx.Morph('mssGhost', {duration: ghostFxTimer});
		ghostFx.start({'top': [y, cartY],'left': [x, cartX], 'opacity': [.4, .7]});
		ghostFx.onComplete=function(){ghostImg.dispose();ghost.dispose();}
	}

	reloadCart=function(inc){
		if (!skipCart)return;
		if (!inc){
			createCookie('fCartLoadNum',0,0);
			minCartTimer = (ghostImgOn)?$time():$time() + ghostFxTimer + 1;
			if (ghostImgOn) makeGhostEl();
			fcartModal = new Modalizer().modalShow();
			fcartLoading = new Element('div', {'id': 'fCartLoading'}).injectInside(document.body);
			fcartLoading.innerHTML="<img src=\"/lib/"+mssAccountId+"/loading.gif\" alt=\"loading\" /><br />Please wait. Your cart is being updated.";
		}
		var stop = function(){
			if(fcartLoading)fcartLoading.dispose();
			fcartModal.modalHide();
			updateFcart();
			mssShowCart();
			createCookie('fCartLoadNum',1,1);
			fCartLoadNum = 0;
			if($('qvOverlay'))$('qvOverlay').dispose();
			if($('qvLoading'))$('qvLoading').dispose();
			if ($('qvShell'))$('qvShell').dispose();
		}
		var retry=function(){
			if (checkLoadNum() > 0 && $time() > (minCartTimer + ghostFxTimer)){stop();}
			else if (fCartLoadNum > 16){ stop();return; }
			else {fCartLoadNum++; setTimeout('reloadCart(1)',500);}
		}
		retry();
	}

	function createAdditionalDivs(){}

	initAddtoCart();
	if(nocookie)return;
	updateFcart();
	if(!qv){$$('.fcartForm').each(function(f){ setFormEvent(f)});}
	else{setFormEvent(qv);}
	setUpCart();

} // close writeCart function
if(fCartShow){ window.addEvent('domready',function(){writeCart();});}

/*
Notes:
- Removed var frameCart. We no longer sell any other version of our cart.
- Removed test for var moo. This will only work with moo (and another version with jquery)
- Removed var framecartDraggable. Never used.
- removed vars showCart and showCheckout. Legacy. Not used.
- when no mssCookie is available, cart button goes to real cart and summary data is not written. Place alternate content in the HTML directly. It will be over written by summary data if cookie is found.
- Fix periodical ???

*/
