if( typeof window['convertStringToArray'] == 'undefined') { DynaLoad(_path + 'jscript/js_hlp_display_v1','convertStringToArray'); }
if( typeof window['ObjFeature'] == 'undefined') { DynaLoad(_path + 'jscript/object/js_obj_feature','ObjFeature'); }
if ( !objFeature ) { var objFeature = new ObjFeature(); }

function ObjItem() {
//alert('ObjItem in');
 this.Number     = "0";
 this.arrName    = new Array();

 this.objVariant = new Array();
 this.varSep     = "##";
 this.varValSep  = "#";
 this.objSPrice  = new Array();
 this.currBase   = 0;
 this.Vat        = 19.00;

 this.actVariant = 0;

 this.offerFrom  = new Date(1970,01,31);
 this.offerTill  = new Date(1970,01,31);

 this.getFeatureValues = function getFeatureValues(_options,_language) {
   //alert('Variant-->getFeatureValues in ' + _options);
   var arrOpt = convertStringToArray(_options,'|');
   var arrOptVal = new Array();
   var featRet = "";

   for ( var iLoop=0; iLoop<arrOpt.length; iLoop++ ) {
     arrOptVal = convertStringToArray(arrOpt[iLoop],'_');
     featRet += objFeature.getValue([arrOptVal[1]])[_language] + '%20';
   }

   return featRet;
 }

 // -------------------------------------------
 // getItemID()
 // -------------------------------------------
 this.getItemID = function getItemID() {
  return this.Number + "-" + this.actVariant;
 }

 // -------------------------------------------
 // getObjSPrice()
 // -------------------------------------------
 this.getObjSPrice = function getObjSPrice() {
 //alert('getObjSPrice IN');
   var sPrice = this.objVariant[this.actVariant].objSPrice;

   if ( !sPrice || (sPrice.Price[0] == 0.00) ) {
    sPrice = this.objSPrice;
   }

   //alert('getObjSPrice return');
   return sPrice;
 }

 // -------------------------------------------
 // getPrice(index)
 // using: getObjSPrice()
 // -------------------------------------------
 this.getPrice = function getPrice(index) {
   return this.getObjSPrice().Price[index];
 }

 // -------------------------------------------
 // getRange(_number)
 // using: getObjSPrice()
 // -------------------------------------------
 this.getRange = function getRange(_number) {
   //alert('-->getRange(' + _number + ')');
   var arrRange = this.getObjSPrice().rangeBeg;
   var numRet = 0;

   while ( ( arrRange[numRet] != 0 ) && ( _number >= arrRange[numRet+1] ) ) {
     numRet++;
   }

   //alert('-->getRange return ' + numRet);
   return numRet;
 }

 // -------------------------------------------
 // getVariant()
 // -------------------------------------------
 this.getVariant = function getVariant() {
   return this.objVariant[this.actVariant];
 }

 // -------------------------------------------
 // getVariantNo(_itemID)
 // -------------------------------------------
 this.getVariantNo = function getVariantNo(_itemID) {
  var iRet = -1;
  for ( var iLoop=0; iLoop<this.objVariant.length; iLoop++ ) {
   if ( (this.Number + "-" + iLoop ) == _itemID ) {
    iRet = iLoop;
   }
  }

  //alert('getVariantNo return');
  return iRet;
 }

 // -------------------------------------------
 // isRatePrice()
 // using: getObjSPrice()
 // -------------------------------------------
 this.isRatePrice = function isRatePrice() {
 //alert('isRatePrice IN return ' + this.getObjSPrice().Price.length);
  return (this.getObjSPrice().Price.length > 1 )
 }

  // -------------------------------------------
 // isSpecialPrice()
 // -------------------------------------------
 this.isSpecialPrice = function isSpecialPrice() {
  //alert('isSpecialPrice in');
  var actDate = new Date();
  var bRet = false;

  if (( actDate >= this.offerFrom ) &&
      ( actDate <= this.offerTill )) {
    bRet = true;
  }

  //alert('isSpecialPrice return');
  return bRet;
 }

 // -------------------------------------------
 // isVariant(_itemID)
 // -------------------------------------------
 this.isVariant = function isVariant(_itemID) {
  //alert('isVariant in ' + _itemID);
  var bRet = false;

  if ( this.getVariantNo(_itemID) >= 0 ) {
   bRet = true;
  }

  //alert('isVariant return');
  return bRet;
 }

 // -------------------------------------------
 // setName(_itemID)
 // -------------------------------------------
 this.setName = function setName(_idx, _val) {
   this.arrName[_idx] = unescape(_val);
 }

 //alert('ObjItem out');
 return this;
}
