var basketVisible = false;
var decreasers;
var increasers;

Event.observe(window,'load',initBasketHandling);
function initBasketHandling() {	
	initAddBasket();	
}



function refreshCreasers() {
  decreasers = document.getElementsByClassName('basketDec');
  increasers = document.getElementsByClassName('basketInc');
}

function initBasketIncDec() {
  refreshCreasers();  
  decreasers.each(function(el_dec) {    
    el_dec.onclick = function() {
    if (parseInt($('cq'+this.rel).innerHTML) > 1) {
    setBasketValue(parseInt($('cq'+this.rel).innerHTML)-1, $F('itemQuantity'+this.rel), $F('itemName'+this.rel), this.rel);
    }
    else {
      new Ajax.Updater('bview', ROOT+'koszyk/usun/id/'+this.rel, {method:'post',onComplete:basketShown}); 
      return;
    }
  }        
      
      
    
  });
  
  increasers.each(function(el_inc) {
    el_inc.onclick = function() {
      setBasketValue(parseInt($('cq'+this.rel).innerHTML)+1, $F('itemQuantity'+this.rel), $F('itemName'+this.rel), this.rel);
    }
  });
  
}

function initAddBasket() {
	$('bview').hide();	
	$('preview').onclick = function() {
		new Ajax.Request(ROOT+'koszyk/pokaz', {method:'post', onComplete:basketShown});
	}
	
	qbadds = document.getElementsByClassName('qbadd');
	if (qbadds) {
		qbadds.each(function(qbadd){
			qbadd.onclick = function() {
				var quickId = this.rel;
				
				if (Element.hasClassName(this, 'setter'))  {					
					setBasketValue($F(quickId+'_quantity'), 
								$F(quickId+'_itemQuantity'), 
								$F(quickId+'_itemName'), 
								$F(quickId+'_itemID'));
				} else {
					addToBasket($F(quickId+'_quantity'), 
								$F(quickId+'_itemQuantity'), 
								$F(quickId+'_itemName'), 
								$F(quickId+'_itemID'));
				}
			
			}
		});		
	}
	
	if ($('badd')) {		
		$('badd').onclick = function() { addToBasket($F('quantity'), $F('itemQuantity'), $F('itemName'), $F('itemID')); }
	}
}

function setBasketValue(quantity, itemQuantity, itemName, itemID) {	
		// sprawdzanie stanow magazynowych		
		if ( parseInt(quantity) > parseInt(itemQuantity) ) {
			alert("Niestety aktualnie nie posiadamy tyle sztuk produktu "+itemName);
			return false;
		} 		
		/*
		if (basketVisible) {
			new Effect.SlideUp('bview', {duration:0.3});
			basketVisible = false;
		}
    */
        	
		new Ajax.Request(ROOT+'koszyk/ustaw/id/'+itemID+'/quantity/'+quantity, {method:'post', onComplete:productQuantityReset});
}


function addToBasket(quantity, itemQuantity, itemName, itemID) {
	
		// sprawdzanie stanow magazynowych		
		if ( parseInt(quantity) > parseInt(itemQuantity) ) {
			alert("Niestety aktualnie nie posiadamy tyle sztuk produktu "+itemName);			
			return false;
		} 		
		if (basketVisible) {
			new Effect.SlideUp('bview', {duration:0.3});
			basketVisible = false;
		}
		new Ajax.Request(ROOT+'koszyk/dodaj/id/'+itemID+'/quantity/'+quantity, {method:'post', onComplete:productAdded});
	}
  
function productAdded(org) {	
	if (parseFloat(org.responseText)) {
		$('basketTotalCost').innerHTML = org.responseText;
		if (basketVisible) {
			new Ajax.Request(ROOT+'koszyk/pokaz', {method:'post', onComplete:basketShown});
		}
	} else {
           alert(org.responseText);
		}
	}
	
function productQuantityReset(org) {

	var xmlroot = org.responseXML.getElementsByTagName('bizubasket')[0];	
	var totalCost = xmlroot.getElementsByTagName('totalCost')[0].firstChild.nodeValue;	
	var currentQuantity = xmlroot.getElementsByTagName('currentQuantity')[0].firstChild.nodeValue;	
	var id = xmlroot.getElementsByTagName('id')[0].firstChild.nodeValue;	
	var itemPriceSum = xmlroot.getElementsByTagName('itemPriceSum')[0].firstChild.nodeValue;	
	var deliveryCost = xmlroot.getElementsByTagName('deliveryCost')[0].firstChild.nodeValue;	
			
	if (xmlroot) {
    
      		
	  $('cq'+id).innerHTML = currentQuantity;
		$('basketTotalCost').innerHTML = totalCost;
		$('oTotalCost').innerHTML = (parseFloat(totalCost) - parseFloat(deliveryCost)).toFixed(2) ;
		/*$('deliveryCost').innerHTML = deliveryCost;*/		    		
		$('cqp'+id).innerHTML = itemPriceSum;
		refreshCreasers();

    
	} else {				
		// basket exception 
		//$('test').innerHTML = org.responseText;
			alert(org.responseText);
		}
		
		
		

	}



	
function basketShown(org) {
	
	basketVisible = true;
	$('bview').innerHTML = org.responseText;
	new Effect.SlideDown('bview', {duration:0.3});
	$('basket_close').onclick = function() {
		new Effect.SlideUp('bview', {duration:0.3});
		new Ajax.Updater('basketTotalCost', ROOT+'koszyk/bcost', {method:'post'});		
		basketVisible = false;
	}

	document.getElementsByClassName('idel').each(function(el){
		el.onclick = function() {
			new Ajax.Updater('bview', ROOT+'koszyk/usun/id/'+this.rel, {method:'post',onComplete:basketShown});			
			basketVisible = true;
		}
	});
	initBasketIncDec();
	if ($('delete_expired')) {		
		$('delete_expired').onclick = function() {				
			new Ajax.Request(ROOT+'koszyk/usun_niedostepne', {method:'post', onComplete:basketShown});			
		}
	}
	
}

