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]+'/';
var resize_window_flag = false;			// this flag is just to figure if they have moved their screen really small and clicked on mini cart



window.addEvent('domready', function(){
	if(location.href.match('apothica'))
	{
		portal_height = 508;
		portal_margin_top = 4;
		portal_scroll_location = 0;
	}
	else if(location.href.match('skinbotanica'))
	{
		portal_height = 500;
		portal_margin_top = 1;
		portal_scroll_location = 0;
	}
	else
	{
		portal_height = 505;
		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:500,
		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:500,
		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";
	}
	
	// added by rduhan to make the mini cart visible within the browser for smaller screen
	var tr_tags = $$('tr');			
	if (document.body.clientHeight < 320 && miniCart.toggled )
		{			
			miniCart.style.height = portal_height - 260 ;			
				
			if (document.body.clientHeight < 320 )
			{		
				for ( var i = 0; i < tr_tags.length; i++)
				{			
					if ( tr_tags[i].className == "miniCartNotEssentialElements" || tr_tags[i].className == "miniCartNotEssentialElements grandTotal" )
					{
						tr_tags[i].style.display = "none";
					}
				}
			}
			resize_window_flag = true;			
		}	// end small screen resolution
	else if(miniCart.toggled)
	{
		miniCart.style.height = portal_height + (1*product_height-280);
		
		if ( resize_window_flag )
		{
			for ( var i = 0; i < tr_tags.length; i++)
			{			
				if ( tr_tags[i].className == "miniCartNotEssentialElements" || tr_tags[i].className == "miniCartNotEssentialElements grandTotal" )
				{
					tr_tags[i].style.display = "";
				}
			}
			resize_window_flag = false;
		}
		
	}
	
	$('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);
		
		new Request({
			url: href+'p_include/ajax_func.html',
			method: 'post',
			evalScripts:true,
			onComplete: function(response) {
				
			}
		}).send('func=openMiniCartOmniture');
	}
}

function expressShopping(form_name)
{
	allowCartToClose = false;
	var my_form_elements = $('expressShopping_'+form_name).elements;
	var obj = new Object();
	var index = '';
	var index2 = '';
	var name = '';
	for(var i=0;i<my_form_elements.length;i++)
	{
		name = my_form_elements[i].name;
		index = name.substring(name.indexOf('[')+1, nameindexOf(']')-1);
		index2 = name.substring(name.indexOf('[',name.indexOf('[')+1)+1, nameindexOf(']',nameindexOf(']')+1)-1);
		
		if(!obj[index])
		{
			obj[index] = new Object();
		}
		obj[index][index2] = 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');
}
