var isAnimating = false;

function flashStatusMessage(txt, itmId, msgType, box){
	var newDate = new Date;
	var uid = newDate.getTime();
	var delay = 2;
	
	$('wrapper').insert(new Element("div", { id: "status"+uid }))
	$('status'+uid).hide();
	$('status'+uid).innerHTML = txt;
	$('status'+uid).addClassName('addToCartMessage');
	if(msgType == 'error'){
		$('status'+uid).addClassName('addToCartMessageError');
		delay = 6
	}else if(msgType == 'ok'){
		$('status'+uid).addClassName('addToCartMessageOk');
	}else if(msgType == 'warning'){
		$('status'+uid).addClassName('addToCartMessageWarning');
		delay = 6
	}
	var productBox = 'productBoxWrapper'+itmId;
	if(box == 'acc'){
		productBox = 'productAccessoryWrapper'+itmId;
	}
	if(box == 'offer'){
		productBox = 'productOfferWrapper'+itmId;
	}

	$('status'+uid).setStyle({
		left:(document.body.getWidth()/2)-150+'px',
		top: (document.body.viewportOffset().top*-1) + (document.viewport.getHeight() / 2)+'px',
		width: '300px',
		height: '100px',
		lineHeight: '100px'
	});

/*
		left:$(productBox).cumulativeOffset().left+'px',
		top:$(productBox).cumulativeOffset().top+'px',
		width: $(productBox).getWidth()-40+'px'
*/

	var queue = Effect.Queues.get('flashItm');
	queue.each(function(effect) { effect.cancel(); });
	new Effect.Appear('status'+uid, { duration: 0.5} );
	new Effect.Fade('status'+uid, { duration: delay} );
}


function cartAddItem(itmId, hasOptions, pName, noAnim, box, addToCartNotice){
	if(addToCartNotice){
		if(!confirm(addToCartNotice)){
			return false;
		}
	}
	if(hasOptions == 1){
		alert('Denna produkt har en eller flera valmöjligheter.\nDu blir nu förflyttad till produktens sida.');
		location.href = '/'+pName+'/p'+itmId;
		return false;
	}
	var newDate = new Date;
	//if(!isAnimating){
		
		if($('quantity'+itmId)){
			var qty = $F('quantity'+itmId);
		}
		var parameters = 'productId='+itmId+'&quantity='+qty;
		if($('optionForm'+itmId)){
			parameters += '&' + $('optionForm'+itmId).serialize();
		}
		
		var statusText;
		new Ajax.Request('/fnc/cartAddItem/?'+newDate.getTime(), {
			method: 'post',
			parameters: parameters,
			onCreate: function(){

			},
			onSuccess: function(data){
				var rTxt = data.responseText;
				if(rTxt == ''){
					statusText = 'Artiklen lades till i kundvagnen.';
					flashStatusMessage(statusText, itmId, 'ok', box);


					var newDate = new Date;
					var uid = newDate.getTime();
					
					if(!noAnim){
						$('wrapper').insert(new Element("div", { id: "item"+uid }))
						$('item'+uid).hide();
						//$('item'+uid).innerHTML = $('productImage'+itmId).innerHTML
						$('item'+uid).setStyle({
							backgroundImage: 'url(/fnc/getProductPicture/?product_id='+itmId+'&max_width=180&max_height=120)',
							backgroundRepeat: 'no-repeat',
							width:'180px',
							height:'120px',
							backgroundColor:'#fff',
							position:'absolute',
							border:'1px dashed #969696',
							left:$('productImage'+itmId).cumulativeOffset().left+40+'px',
							top:$('productImage'+itmId).cumulativeOffset().top-6+'px'
						});
				
						setAnimationStatus(1.5);
						$('item'+uid).appear({duration:0.5});
			
						new Effect.Move('item'+uid, { x: $('previewCartWrapper').cumulativeOffset().left+5, y: $('previewCartWrapper').cumulativeOffset().top+5, mode: 'absolute', duration: 1, queue:{position: 'end', scope: 's'+uid, limit: 4} });
						new Effect.Fade('item'+uid, { duration: 0.2, queue:{position: 'end', scope: 's'+uid, limit: 4} });
					}
					updateCart.delay(0.7);


				}else{
					statusText = rTxt;
					flashStatusMessage(statusText, itmId, 'warning', box);
				}
			},
			onFailure: function(data){
				alert(data.responseText);
				flashStatusMessage('Ett fel int&auml;ffade.<br />Produkten &auml;r inte tillagd!', itmId, 'error', box);
			}
		});
	}
//}

function updateCart(){
	var newDate = new Date;
	new Ajax.Request('/fnc/cartGetValues/?'+newDate.getTime(), {
		method: 'post',
		onSuccess: function(data){
			var values = data.responseText.split('|');
			//-- Platser i Preview Cart
			$('previewCartItemCount').innerHTML = values[4];
			$('cartFreightValue').innerHTML = values[1];
			$('previewCartPaymentOptionValue').innerHTML = values[2];
			$('previewCartItemsValue').innerHTML = values[0];
			$('previewCartTotalDiscount').innerHTML = values[5];
			if(values[5].indexOf('0/,00')){
				$('previewCartTotalDiscountRow').hide();
			}else{
				$('previewCartTotalDiscountRow').show();
			}
			$('previewCartTotalValue').innerHTML = values[3];
			
			if(values[4] == 0){
				$('previewCart').hide();
				$('previewCartNoItems').show();
				
				$('headerCartIcon').addClassName('headerCartIconEmpty');				
				$('headerCartIcon').removeClassName('headerCartIconItems');
				$('headerCartText').innerHTML = 'Kundvagnen &auml;r tom';
				$('headerCartButtonWrapper').hide();
			}else{
				var previewCartItemText;
				if(values[4] == 1){
					previewCartItemText = 'artikel';
				}else{
					previewCartItemText = 'artiklar'
				}
				$('previewCartItemText').innerHTML = previewCartItemText + ' i kundvagnen';
				$('previewCart').show();
				$('previewCartNoItems').hide();
				
				$('headerCartIcon').addClassName('headerCartIconItems');
				$('headerCartIcon').removeClassName('headerCartIconEmpty');
				$('headerCartText').innerHTML = $('previewCartItemCount').innerHTML + ' ' + $('previewCartItemText').innerHTML;
				$('headerCartButtonWrapper').show();
			}
			$('previewCartLoader').hide();

		},
		onFailure: function(data){
			alert(data.responseText);
		}
	});
}

function setAnimationStatus(t){
	isAnimating = true;
	setAnimationStatusDelay.delay(t);
}

function setAnimationStatusDelay(){
		isAnimating = false;
}
