// 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.

// 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);}

/*	Script: modalizer.js Author: Aaron Newton (aaron [dot] newton [at] cnet [dot] com) */
var Modalizer2=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)})}}});


// 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 moo = true;
var writeCart = function(qv){
   if(mssBrowser.Engine.trident && mssBrowser.Engine.version<5) return;
   if(!readCookie('fCartLoadNum'))return
	var mssFcartVersion=4.6; // for use with mootools1.2
	var mssAccountId="spytown";  
	var showCart=1;
	var showCheckout=1;
	var cartEl=$('mssCartEl');
	var mssFrameContainer=$('mssFrameContainer');
	mssCartFrame=($chk(mssCartFrame))?mssCartFrame:$('mssCartFrame0');
	var fcartBG=$('fcartBG');
	var floatingCartHeader=$('floatingCartHeader');
	var fcartTotal=$('fcartTotal'); 
	var fviewCart=$('fviewCart');
	var fcheckout=$('fcheckout');
	var viewCartForm=$('mssViewCartForm');
	var viewCartLink=$('viewCartLink');
	var cartClose=$('cartClose');
	var giftEl=$('cartFreeGift'); 
	var giftLevel=500;
	var giftStatement="<div style='width:356px;'>Congratulations!  You've qualified for FREE UPS Ground Shipping within the continental U.S.</div>";
	var checkTot=1;
	var skipCart=true;
	var frameCart=true; 
	var frameFxTimer=4500;
	var framecartDraggable=false;
	var mssFrameW=318;
	var mssCartH=150;
	var minCartH=150;
	var maxCartH=370;
	var ghostImgOn=true;
	var ghostFxTimer=1500;
	var showNoItems=true;
	var rightColCart=true;
	
	//don't edit below here
	var eachArray=summary=links=titles=pids=prices=units=new Array();
	var mssCartTotal=0;
	var numItems=0;
	var minCartTimer=0;
	var mssCartTotal=0;
	var giftLeft=0;
	var total="$0";
	var mssCartOldTotal=0;
	
	var fcartLoading,mssCartCookie,cartX, cartY, updateFcart, makeGhostEl, modalizer, createAdditionalDivs;
	var fCartHeight = mssActiveCartForm = ghostSource = ghostImg = cartPeriodical = null;
	createCookie('fCartLoadNum',0,0);
	var mssCartCookie=unescape(readCookie('mssFloatingCart'));
	var mssGetCoords = function(el){el=$('mss-floating-cart');return el.getPosition();}
	
	/* Depricated variables */
	var myCheckout = "https://order.store.yahoo.net/ymix/MetaController.html?ysco_key_event_id=1&ysco_key_store_id=" + mssAccountId + "&sectionId=ysco.ship-bill";
	var cartURL = "http://order.store.yahoo.net/cgi-bin/wg-order?catalog=" + mssAccountId;
	
	if(!mssCartFrame || mssCartFrame==null) return;
	if(!cartEl || cartEl == null)return;
	
	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){
		form.onsubmit=null;
		form.addEvent('submit',function(){
         	makeFormActive(form);
			mssFrameNum++;
			form.target='mssCartFrame'+mssFrameNum;
	   		removeIframe(mssFrameNum);
			if (ghostImgOn){
				if($('pimg')) ghostImg = $('pimg').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(){
		//if(Browser.Engine.webkit)return 
		cartX = mssGetCoords(cartEl).x;
		cartY = mssGetCoords(cartEl).y;
	}
	
	function checkLoadNum(){
		var loadNum=(readCookie('fCartLoadNum'))?unescape(readCookie('fCartLoadNum'))*1:0;
		return loadNum;
	}
	
	function parseCookie(x){ 
		mssCartCookie=unescape(readCookie('mssFloatingCart'));
		if(!mssCartCookie && mssCartCookie == "")return;
		eachArray = mssCartCookie.split("^");
		summary=eachArray[0].split("|:|");
		total = summary[0];
		//mssCartTotal = (total)?(total.substr(1) * 1):0;
		mssCartTotal = (total)?((total.substr(1)).replace(",","") * 1):0;
		var cookieH = (summary[2])? summary[2] * 1:0;
		var h2 = Math.max(cookieH +10,minCartH);
		//mssCartH = Math.min(h2,maxCartH);
		if(mssBrowser.Engine.trident){h2+=10;}
		if(mssBrowser.Engine.gecko ){h2-=10;}
		mssCartH = h2;
		//mssCartH=250;
		if(!eachArray[1] || eachArray[1]==null || eachArray[1]==""){
			numItems=0;
			total="$0";
			return;
		}
		links=eachArray[1].split("|:|");
		numItems = (links.length > 0) ? links.length - 1:0;
		titles=eachArray[2].split("|:|");
		pids=eachArray[3].split("|:|");
		prices=eachArray[4].split("|:|");
		units=eachArray[5].split("|:|");
		if(x)return x;
	}
	
	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 ){
			floatingCartHeader.innerHTML="Items in your Cart: <span>" + numItems + "</span> ";
			fcartTotal.innerHTML="Sub Total: <span>" + total + "</span>";
			$(viewCartLink).addEvent('click',mssShowCart);	
		}
	}
	
	var resetHeight=function(){
		parseCookie();
		setTimeout(function(){
			mssCartFrame.setStyle('height',mssCartH);
			mssFrameContainer.setStyle('height',mssCartH); 
			setUpCart();
			if(mssCartOldTotal != mssCartTotal){
			   mssCartOldTotal=mssCartTotal;
			   createAdditionalDivs();
			}
		},200);
	}
	
	updateFcart = function(){
		parseCookie();
		setUpCart();
	//	resetHeight();
		initGiftMessage();
    	if(checkTot != mssCartTotal){
      		checkTot = mssCartTotal;
		  	createAdditionalDivs();
		}
	}
	
	showClose = function(){
		cartClose.setStyles({display: 'block',width: '60px',position: 'absolute',top: '0px',textDecoration:'none',right:'0px', color: '#fff', zIndex: '5'});
		cartClose.addEvent('click',mssHideCart);
	}

	mssHideCart = function(){ 
		cartClose.style.display='none';
		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})}
		cartPeriodical = $clear(cartPeriodical);
	}
	
	mssShowCart = function(){
		createCookie('fCartLoadNum',0,0);
		showClose();
		mssFrameContainer.setStyles({padding:'40px 0px 00px 0px', position:'absolute', width:'410px', top:'52px', border: '2px solid #000099', left: '-264px', background: '#fff', zIndex:'10'});
		mssCartFrame.setStyle('width','400px');
		var fadeCart = new Fx.Morph(mssFrameContainer, {duration: '500'}).start({opacity:[0, 1],height:[1,mssCartH]});
		//fadeCart.onComplete=function(){  mssFrameContainer.setStyles({height: '',width: ''}); }
		
		var cartTimer = (frameFxTimer)? setTimeout('mssHideCart()',frameFxTimer):null;
		mssFrameContainer.addEvent('mouseenter',function(){clearTimeout(cartTimer)});
		cartPeriodical = $clear(cartPeriodical);
		cartPeriodical = resetHeight.periodical(800);
		createAdditionalDivs();
		if(framecartDraggable)mssFrameContainer.makeDraggable();
	}
		
	makeGhostEl = function(){
		if(!$chk(mssActiveCartForm))return
	//	updateFcart();
		if (cartEl.offsetTop<1) cartEl.setStyle('display','block');
		var submitBtn = mssActiveCartForm.getElement('.order-button');
		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.start({'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 Modalizer2().modalShow();
			fcartLoading = new Element('div', {'id': 'fCartLoading'}).injectInside(document.body);
			fcartLoading.innerHTML="Please wait. Your cart is being updated.";	
		}
		var stop = function(){
			if(fcartLoading)fcartLoading.dispose();
			fcartModal.modalHide();
			updateFcart();
			if(frameCart)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(){
       if($chk($('giftMessage')))$('giftMessage').dispose();
  	var giftMessage = new Element('div',{id:'giftMessage'}).inject(mssFrameContainer);
    giftMessage.setStyles({display: 'block',width: '410px',position: 'absolute',top: '0px',textDecoration:'none', left:'0px',background:'#000099', textAlign:'left', color:'#ffffff', padding:'2px 3px 3px 0', height: '30px'});
  	giftLeft = giftLevel - mssCartTotal;
  	if (mssCartTotal > 0){
  		if (mssCartTotal > (giftLevel - .01)){giftMessage.innerHTML=giftStatement;}
  		else { 
  			giftMessage.innerHTML = "<div style='width:356px;'>Add $<b>" + giftLeft.toFixed(2) + "</b> to your cart to qualify for FREE UPS Ground Shipping within the continental U.S.</div>";
  		}
  	} else {
         giftMessage.innerHTML = "<div style='width:356px;'>Add $<b>" + giftLevel.toFixed(2) + "</b> to your cart to qualify for FREE UPS Ground Shipping within the continental U.S.</div>";
   }
  
    if($chk($('keepShopping')))$('keepShopping').dispose();
  	var keepShopping = new Element('a',{id:'keepShopping', href:'javascript:void(0)'}).inject(mssFrameContainer);
  	keepShopping.innerHTML="<img src=\"http://site.spytowne.com/mss/keepshopping.gif\" width=\"116\" height=\"25\">";
  	keepShopping.setStyles({display: 'block',width: '116px',position: 'absolute',bottom: '5px',textDecoration:'none',right:'5px',background:'#fff', textAlign:'right', color:'#ffffff', padding:'2px 3px 3px 0'});
  	keepShopping.addEvent('click',mssHideCart);
  
   
   
   
   }
	
	initAddtoCart();
	if (showNoItems || (mssCartCookie && mssCartCookie != ""))updateFcart();
	if(!qv){$$('.fcartForm').each(function(f){ setFormEvent(f)});}
	else{setFormEvent(qv);}
	
	
} // close writeCart function 
if(fCartShow){if(!moo){writeCart();}else{window.addEvent('domready', function(){writeCart();});}}
else{ window.onload=function(){$('viewCartLink').target="_top"} }
