/*- nums -*/
// extend lib.js !!
var itemCount = {
	lastValue : '',
	
   init : function(className) {
      this.counts = getElementsByClass(className);
      if(!this.counts) return;
      for(var i=0;i<this.counts.length;i++) {
         this.makeCode(this.counts[i]);
         this.counts[i].onkeydown = function() {itemCount.justNumOnKeyDown(this)}
         this.counts[i].onkeyup = function() {itemCount.justNumsOnKeyUp(this)}
      }
   },
   makeCode : function(elem) {
      btns = document.createElement('span');
      
      up = document.createElement('span');
   	up.innerHTML = '+';
   	up.onclick = function(){itemCount.up(elem)};
   	
   	down = document.createElement('span');
   	down.innerHTML = '-';
   	down.onclick = function(){itemCount.down(elem)};
      
      addClass(btns, 'js-count-btns', true);
      addClass(up, 'js-count-up', true);
      addClass(down, 'js-count-down', true);
      
      insertBefore(btns, elem);
      btns.appendChild(up);
      btns.appendChild(down);
   },
   up : function (elem) {
      if(!elem.value) elem.value=0;
      elem.value = parseInt(elem.value,10)+1;
   },
   down : function (elem) {
      elem.value = parseInt(elem.value,10)-1;
      if(elem.value<0) elem.value=0;
   },
   justNumOnKeyDown : function (elem) {
   	var numsRegexp = new RegExp('^[0-9]+$');
   	if (!elem.value.match(numsRegexp) && elem.value != "") {
   		return;
   	}
	  this.lastValue = elem.value;
   },
   justNumsOnKeyUp : function (elem) {
   	var numsRegexp = new RegExp('^[0-9]+$');
   	if ((!elem.value.match(numsRegexp) && elem.value != "")) {
	     elem.value = this.lastValue;
   	}
   	
	   elem.value = parseInt(elem.value,10);
	   if (isNaN(elem.value)) elem.value = 0;
   }  
}

