var miniCart;
var miniCartOpen;
var miniCartClose;
var miniCartContent;
var miniCartContentOpen;
var miniCartContentClose;
var listenElement;
var allowCartToClose = true;
var portal_height;
var portal_margin_top;
var portal_scroll_location;
var loc = location.href;
var href;
href = loc.split('/');
href = href[0]+'//'+href[2]+'/';



window.addEvent('domready', function(){
	if(location.href.match('apothica'))
	{
		portal_height = 513;
		portal_margin_top = 4;
		portal_scroll_location = 0;
	}
	else if(location.href.match('skinbotanica'))
	{
		portal_height = 498;
		portal_margin_top = 1;
		portal_scroll_location = 0;
	}
	else
	{
		portal_height = 495;
		portal_margin_top = 9;
		portal_scroll_location = 0;
	}
//	if(Browser.Engine.name=='trident')
//	{
//		portal_height+=10;
//		portal_scroll_location+=15;
//	}
	$('productsInCart').style.overflow='hidden';
	miniCart = $('miniShoppingCart');
	miniCartContent = $('transparentMiniCartContainer');
	miniCart.toggled = false;
	if(Browser.Engine.name=='trident')//browser is IE
	{
		listenElement = $(document.body);
	}
	else listenElement = $(document.html);
	miniCartOpen = new Fx.Tween(miniCart,{
		property: 'height',
		duration:500,
		onStart:function(){
			miniCart.style.display='';
			miniCart.toggled = true;
		},
		onComplete:function(){
			adjustProductHeight();
			miniCart.removeClass('collapsableDiv');
		}
	});
	miniCartClose = new Fx.Tween(miniCart,{
		transition: Fx.Transitions.Bounce.easeOut,
		property: 'height',
		duration:1000,
		onStart:function(){
			$('productsInCart').style.overflow='hidden';
			miniCart.addClass('collapsableDiv');
		},
		onComplete:function(){
			miniCart.style.display='none';
			miniCart.toggled = false;
		}
	});
	miniCartContentOpen = new Fx.Tween(miniCartContent,{
		property: 'margin-top',
		duration:500,
		onStart:function(){
			miniCartContent.style.display='';
		},
		onComplete:function(){
			
		}
	});
	miniCartContentClose = new Fx.Tween(miniCartContent,{
		transition: Fx.Transitions.Bounce.easeOut,
		property: 'margin-top',
		duration:1000,
		onComplete:function(){
			miniCartContent.style.display='none';
		}
	});


	listenElement.addEvent('click', function(ev){
		if(miniCart.toggled && allowCartToClose)checkParentNodes(ev.target);
	})
	window.addEvent('scroll', function(){
		if(Browser.Engine.name=='trident')
		{
			if(document.body.scrollTop>portal_scroll_location)miniCart.style.top = document.body.scrollTop;
			else if(document.body.scrollTop<=portal_scroll_location)miniCart.style.top = portal_scroll_location;
		}
		else
		{
			if(document.body.scrollTop>portal_scroll_location)
			{
				miniCart.style.position = 'fixed';
				miniCart.style.top = portal_margin_top+'px';
			}
			else if(document.body.scrollTop<=portal_scroll_location)
			{
				miniCart.style.position = 'absolute';
				miniCart.style.top = portal_scroll_location+'px';
			}
		}
	})
})
var product_height;
function adjustProductHeight()
{
	var overflow_style = "hidden";
	var products = $('productsInCart').childNodes;
	product_height = 0;
	for(var i=0;i<products.length;i++)
	{
		if(products[i].offsetHeight!=undefined && products[i].offsetHeight!=null)
		{
			product_height+=1*products[i].offsetHeight+5;
		}
	}
	if(product_height<140)
	{
		product_height = 140;
	}
	if(product_height>290)
	{
		product_height = 290;
		overflow_style="auto";
	}
	if(miniCart.toggled)miniCart.style.height = portal_height + (1*product_height-280);
	$('productsInCart').style.height=product_height+'px';
	$('productsInCart').style.overflowY = overflow_style;
}
function checkParentNodes(ele)
{
	while(ele && ele!=$(document.body) && ele!=$(document.html))
	{
		if(ele.className=='miniShoppingCart')
		{
			return;
		}
		else
		{
			ele = ele.parentNode;
		}
	}
	closeMiniCart();
}

function closeMiniCart()
{
	miniCartClose.start(portal_height + (product_height-280),0);
	miniCartContentClose.start(0,-portal_height);
}
function openMiniCart()
{
	if(!miniCart.toggled)
	{
		adjustProductHeight();
		miniCartOpen.start(0,portal_height + (product_height-280));
		miniCartContentOpen.start(-portal_height, 0);
	}
}

function expressShopping(form_name)
{
	allowCartToClose = false;
	var my_form_elements = $('expressShopping_'+form_name).elements;
	var obj = new Object();
	var index = '';
	var name = '';
	for(var i=0;i<my_form_elements.length;i++)
	{
		name = my_form_elements[i].name;
		index = name.substring(name.indexOf('[')+1, name.length-1);
		obj[index] = my_form_elements[i].value;
	}
	new Request({
		url: href+'p_include/ajax_func.html',
		method: 'post',
		onComplete: function(response) {
			$('miniCartInnerHtml').innerHTML = response;
			adjustProductHeight();
			openMiniCart();
			updateShoppingCartValues();
			allowCartToClose = true;
		}
	}).send('func=expressShoppingCart&product='+JSON.encode(obj));
}

function printView()
{
	var printWindow = window.open('','PrintView','width=920,height=600, scrollbars=1, resizeable=1');
	new Request({
		url: href+'/p_include/ajax_func.html',
		method: 'post',
		onComplete: function(response) {
			printWindow.document.open();
			//printWindow.document.write("<title>Print View</title>");
			printWindow.document.write(response);
			printWindow.document.close();
			if(Browser.Engine.name=='presto')
			{
				printWindow.onload = printWindow.print;
			}
			else
			{
				printWindow.print();
			}
		}
	}).send('func=miniCartPrintView');
}