// JavaScript Document


//  basketLigthBox (2009-12-07)
//  e-shop window object


function basketLigthBox() {
  var self = this;
  this.lightBoxContainer = new lightBoxContainer(this,'basketlightbox',null);
  this.transformElements = new transformElements();
  this.innerElem = null;
  this.boxType = 'basket';
  this.basketElem = null;
  //
  this.init = function() {
    self.basketElem = dojo.byId('headerbasket');
    self.innerElem = self.lightBoxContainer.innerElem;
    if (!self.innerElem || !self.tableElem) return false;
    dojo.connect(dojo.query('a',self.basketElem)[0],'onclick',self.click);
  };
  //
  this.click = function(evt) {
    self.lightBoxContainer.show();
    self.show();
    self.lightBoxContainer.centering();
    self.transformElements.init(self.innerElem);
		if (evt) dojo.stopEvent(evt);
  };
  //
  this.checkPageNumbers = function() {
    var numberSpan = dojo.query('span.pagenumber',self.innerElem)[0];
    if (!numberSpan) return false;
    dojo.query('div.pagesnumbers b',self.innerElem).forEach(function(node,index){
      if (index+1==numberSpan.innerHTML) {
        dojo.addClass(node,'active');
      } else {
        dojo.removeClass(node,'active');
      }
    });
  };
  //
  this.show = function() {
    self.postFormContent();
  };
	//
	this.submitToBasket = function(evt) {
    self.postFormContent();
    if (evt) dojo.stopEvent(evt);
	};
	//
	this.transformAfterPost = function() {
    var formElem = dojo.query('form',self.innerElem)[0];
    if (!formElem) return false;
    dojo.connect(formElem,'onsubmit',self.submitToBasket);
    dojo.query('div.basket-container a',self.innerElem).forEach(function(node,index){
      dojo.connect(node,'onclick',self.postLinkClick);
    });
    dojo.query('div.basketbox-footer input',self.innerElem).forEach(function(node,index){
      dojo.connect(node,'onclick',self.postSubmitClick);
    });
	};
	//
	this.postSubmitClick = function(evt) {
    var input = document.createElement('input');
    input.type = 'hidden';
    input.name = this.name;
    input.value = '1';
    this.parentNode.insertBefore(input,this);
	};
	//
	this.postLinkClick = function(evt) {
    dojo.query('form',self.innerElem)[0].action = this.href;
    if (evt) dojo.stopEvent(evt);
    self.postFormContent();
	};
  //
  this.postFormContent = function() {
    var targetNode = dojo.query('div.basket-container',self.innerElem)[0];
    var formElem = dojo.query('form',self.innerElem)[0];
    formElem.action = formElem.action+'?jeajax=1';
    var xhrArgs = {
      form: formElem,
      handleAs: 'text',
      load: function(data) {
        dojo.removeClass(self.innerElem,'lightbox-preloading');
        targetNode.innerHTML = data;
        self.checkPageNumbers();
        self.transformAfterPost();
        self.transformElements.init(targetNode);
      },
      error: function(error) {
        dojo.removeClass(self.innerElem,'lightbox-preloading');
        targetNode.innerHTML = 'An unexpected error occurred: ' + error;
      }
    }
    var deferred = dojo.xhrPost(xhrArgs);
    dojo.addClass(self.innerElem,'lightbox-preloading');
    targetNode.innerHTML = '';
  };
  //
  this.close = function() {
    if (basketPreview1) {
      basketPreview1.postFormContent();
    }
  };
  //
  return self.init();
}


// end of document

