// JavaScript Document


//  basketPreview (2009-11-24)
//  this object make small information box on basket link


function basketPreview() {
  var self = this;
  this.mainElem = null;
  this.basketElem = null;
  this.heightMax = 0;
  //
  this.init = function() {
    self.mainElem = dojo.byId('headerbasket');
    if (!self.mainElem) return false;
    var linkElem = self.mainElem.getElementsByTagName('a')[0];
    dojo.connect(linkElem,"onmouseover",self.show);
    dojo.connect(linkElem,"onmouseout",self.hide);
    self.basketElem = self.mainElem.getElementsByTagName('div')[0];
    self.reset();
  };
  //
  this.postFormContent = function() {
    var xhrArgs = {
      form: dojo.query('form',self.mainElem)[0],
      handleAs: 'text',
      load: function(data) {
        self.changeData(data);
      },
      error: function(error) {
        self.changeData('An unexpected error occurred: ' + error);
      }
    }
    var deferred = dojo.xhrPost(xhrArgs);
    self.basketElem.innerHTML = '';
    this.reset();
  };
  //
  this.changeData = function(data) {
    self.basketElem.innerHTML = data;
    self.reset();
    self.show();
    setTimeout(self.hide,2000);
  };
  //
  this.show = function() {
    dojo.animateProperty({node:self.basketElem,properties:{height:self.heightMax}}).play();
  };
  //
  this.hide = function() {
    dojo.animateProperty({node:self.basketElem,properties:{height:0}}).play();
  };
  //
  this.reset = function() {
    self.basketElem.className = 'header-basket-holder';
    self.basketElem.style.height = '';
    self.heightMax = self.basketElem.offsetHeight;
    self.basketElem.style.height = 0+'px';
    //
    //var itemCount = dojo.query('div.item',self.basketElem).length;
    var itemCount = 0;
    if (dojo.query('div.item',self.basketElem)) {
      dojo.query('div.item div.data span',self.basketElem).forEach(function(node,index){
        itemCount = itemCount+(1*node.innerHTML);
      });
    }
    dojo.query('a b',self.basketElem.parentNode)[0].innerHTML = itemCount;
    if (itemCount>0) {
      self.basketElem.className = 'header-basket-holder';
    } else {
      self.basketElem.className = 'hidden';
    }
    //
  };
  //
  return self.init();
}


// end of document

