function isNumber(val) {
  if (!val) return false;
  if (isNaN(val)) return false;
  if ((val-Math.round(val))!=0) return false;
  return true;
}

function isRNumber(val) {
  if (!val) return false;
  if (isNaN(val)) return false;
  return true;
}

function getcurdate() {
 r='' + Stamp.getYear() + (Stamp.getMonth() + 1) + Stamp.getDate() + Stamp.getHours() + Stamp.getMinutes() + Stamp.getSeconds();
 return r;
}

function check_n(n,maxleftitems) {
  err='';
  if (!isNumber(n)){
     err = 'You have to enter a valid number of items';
  }
  if (n<=0) {
     err = 'You have to enter a valid number of items';
  }
  if (maxleftitems == -1) return err;

  if (n>maxleftitems) {
     err = 'You can not add so many items to your cart.';
  }
  return err;
}

function check_n_plus_freq(n,maxleftitems, freq) {
  err='';
  if (!isNumber(n)){
     err = 'You have to enter a valid number of items';
  }
  if (n<=0) {
     err = 'You have to enter a valid number of items';
  }
  if (!freq_rate(n,freq)) {
     err = 'You have to enter a number multiple by '+freq;
  }
  if (Math.ceil(n/freq)>maxleftitems) {
     err = 'You can not add so many items to your cart.';
  }
  return err;
}

function additem(n,url) {
  var err='';
  if (document.forms['i'].elements['multiplicator_'+n]) {
    err=check_n_plus_freq(document.forms['i'].elements['number'+n].value,document.leftitems, document.forms['i'].elements['multiplicator_'+n].value);
  }else{
    err=check_n(document.forms['i'].elements['number'+n].value,document.leftitems);
  }
  if ((err=='') && (document.forms['i'].elements['min'+n])) {
     var real_number=0;
     if (document.forms['i'].elements['multiplicator_'+n]) {
        real_number = Math.ceil(document.forms['i'].elements['number'+n].value/document.forms['i'].elements['multiplicator_'+n].value);
     }else{
        real_number = document.forms['i'].elements['number'+n].value;
     }
     if (real_number - document.forms['i'].elements['min'+n].value < 0) {
       err = 'You can not add less then '+ document.forms['i'].elements['min'+n].value +' items';
     }
  }

//  if ((err=='') && (document.forms['i'].elements['max'+n])) {
//     var real_number=0;
//     if (document.forms['i'].elements['multiplicator_'+n]) {
//        real_number = Math.ceil(document.forms['i'].elements['number'+n].value/document.forms['i'].elements['multiplicator_'+n].value);
//        real_max = document.forms['i'].elements['max'+n].value*document.forms['i'].elements['multiplicator_'+n].value;
//     }else{
//        real_number = document.forms['i'].elements['number'+n].value;
//        real_max = document.forms['i'].elements['max'+n].value;
//     }
//     if (real_number - document.forms['i'].elements['max'+n].value > 0) {
//        if (real_max>0) err = 'You can not add more then '+ real_max +' items';
//        else err = 'You can not add more such items to your cart';
//     }
//  }

  if (err!='') {
    alert(err);
    document.forms['i'].elements['number'+n].value='';
  }else{
    Stamp = new Date();
    r = getcurdate();
    if (document.frames) {
        subobj = document.frames['sobj'];
    } else if (window.frames) {
       subobj = window.frames['sobj'];
    } else if (document.getElementByID) {
       subobj = document.getElementByID('sobj');
    }
//    if (subobj) {
//      document.leftitems = document.leftitems - document.forms['i'].elements['number'+n].value;
//      subobj.location.replace('subtotal.cfm?action='+r+'&i='+escape(document.forms['i'].elements['item'+n].value)+'&n='+document.forms['i'].elements['number'+n].value);
//      document.forms['i'].elements['number'+n].value='';      
//    }else{
      document.location.href=url+'&action='+r+'&i='+escape(document.forms['i'].elements['item'+n].value)+'&n='+document.forms['i'].elements['number'+n].value;
//      return true;
//    }
  }
//  return false;
}


function addmultiitem(url, countitems) {
  err = false;
  var n = 0;
  var found = 0;
  var resurl='';
  Stamp = new Date();
  r = getcurdate();
  resurl=url+'&action='+r;  
  while (!err && (n<=countitems)) {
    n++;
    if (document.forms['i'].elements['number'+n]) {
     if (document.forms['i'].elements['number'+n].value!='') {
       if (document.forms['i'].elements['multiplicator_'+n]) {
         err=check_n_plus_freq(document.forms['i'].elements['number'+n].value,document.leftitems, document.forms['i'].elements['multiplicator_'+n].value);
       }else{
         err=check_n(document.forms['i'].elements['number'+n].value,document.leftitems);
       }
       if ((err=='') && (document.forms['i'].elements['min'+n])) {
          var real_number=0;
          if (document.forms['i'].elements['multiplicator_'+n]) {
             real_number = Math.ceil(document.forms['i'].elements['number'+n].value/document.forms['i'].elements['multiplicator_'+n].value);
          }else{
             real_number = document.forms['i'].elements['number'+n].value;
          }
          if (real_number - document.forms['i'].elements['min'+n].value < 0) {
            err = 'You can not add less then '+ document.forms['i'].elements['min'+n].value +' items';
          }
       }

//       if ((err=='') && (document.forms['i'].elements['max'+n])) {
//          var real_number=0;
//          if (document.forms['i'].elements['multiplicator_'+n]) {
//             real_number = Math.ceil(document.forms['i'].elements['number'+n].value/document.forms['i'].elements['multiplicator_'+n].value);
//             real_max = document.forms['i'].elements['max'+n].value*document.forms['i'].elements['multiplicator_'+n].value;
//          }else{
//             real_number = document.forms['i'].elements['number'+n].value;
//             real_max = document.forms['i'].elements['max'+n].value;
//          }
//          if (real_number - document.forms['i'].elements['max'+n].value > 0) {
//             if (real_max>0) err = 'You can not add more then '+ real_max +' items';
//             else err = 'You can not add more such items to your cart';
//          }    
//       }

       if (err=='') {
            found++;
            resurl=resurl+'&i'+found+'='+escape(document.forms['i'].elements['item'+n].value)+'&n'+found+'='+document.forms['i'].elements['number'+n].value;
            document.leftitems = document.leftitems - document.forms['i'].elements['number'+n].value;
       }
     }
    }
  }
  if (err) {
    alert(err);
    for (n=1;n<=countitems;n++) {
      if (document.forms['i'].elements['number'+n]) {
         document.forms['i'].elements['number'+n].value='';
      }
    }
  }else{
    if (found>0) {
      document.location.href=resurl+'&found='+found;
    }else{
      alert('You have to enter a valid number of items');
    }
  }
}

function freq_rate(numb,indicator) {
   if (!isRNumber(numb)) return false;
   if (((numb/indicator)-Math.round(numb/indicator))!=0) return false;
   return true;
}