var wspLineImgs = function(name, url)
{
 this.name = name; this.url = url;
 this.step = 0; this.curr = 0;
 this.opacity = 0;
};

wspLineImgs.prototype.Init = function()
{
 this.ImgsOpacitySet(100);
 this.ImgsLineSet(0);
 this.ImgsOpacitySet(0);
// this.ShowImages(0);
};

wspLineImgs.prototype.InitList = function()
{
 var own = document.getElementById(this.name);
 var imgs = own.getElementsByTagName('td');
 for(var i=0; i<imgs.length; i++)
 {
  var img = imgs[i].getElementsByTagName('div');
  var lnk = imgs[i].getElementsByTagName('a');
  try{
   lnk[0].href = this.imgs[i]['img']; lnk[0].title = this.imgs[i]['ttl'];
   this.ObjBgrSet(img[0], this.imgs[i]['ico']);
  }catch(e){};
 };
};


wspLineImgs.prototype.intval = function(mixed_var, base)
{
 var tmp;
 if(typeof(mixed_var) == 'string')
 {
  tmp = parseInt(mixed_var);
  if(isNaN(tmp)) return 0;
   else return tmp.toString(base || 10);
 }
 else if(typeof(mixed_var) == 'number')
  return Math.floor(mixed_var);
 else return 0;
};
wspLineImgs.prototype.ObjOpacity = function(obj, set)
{
 try{
  set = this.intval(set);
  obj.style.filter = "alpha(opacity="+(100-set)+")";
  obj.style.opacity = (100-set)/100;
 }catch(e){};
};

wspLineImgs.prototype.getElementsByClassName = function(obj, cls)
{
 var ret = []; 
 if(obj.getElementsByClassName == undefined)
 { 
  var reg = new RegExp('\\b'+cls+'\\b'); 
  var elem = obj.getElementsByTagName('*'); 
  for(var i=0; i<elem.length; i++)
  { 
   if(reg.test(elem[i].className))
    ret.push(elem[i]); 
  };
 }
 else
  ret = obj.getElementsByClassName(cls);
 return ret;
}; 



wspLineImgs.prototype.ImgsOpacitySet = function(set)
{
 try{
  if(set<0) set = 0; if(set>100) set = 100;
  var obj = document.getElementById(this.name);
  var divs = this.getElementsByClassName(obj, 'Img');
  for(var i=0; i<divs.length; i++)
   this.ObjOpacity(divs[i], set);
  this.opacity = set;
 }catch(e){};
};
 
wspLineImgs.prototype.ObjBgrSet = function(obj, set)
{
 try{
  if(!/^url\(.*\)$/i.test(set))
   set = 'url(\''+set+'\')';
  obj.style.backgroundImage = set;
 }catch(e){};
};
wspLineImgs.prototype.ImgsLineSet = function(curr)
{
 while(curr < 0) curr += this.imgs.length;
 while(curr >= this.imgs.length) curr -= this.imgs.length;
 if(curr < 0) return false;
 this.curr = curr;

 try{
  var obj = document.getElementById(this.name);
   var divs = this.getElementsByClassName(obj, 'Img');
   var icos = this.getElementsByClassName(obj, 'Ico');
  for(var i=0; i<divs.length; i++)
  {
   if(curr >= this.imgs.length) curr -= this.imgs.length;
   icos[i].href = this.imgs[curr]['img']; icos[i].title = this.imgs[curr]['ttl'];
   this.ObjBgrSet(divs[i], this.imgs[curr]['ico']); curr++;
  };
 }catch(e){};
};

wspLineImgs.prototype.GoPage = function(step)
{
 try{
  var obj = document.getElementById(this.name);
   var divs = this.getElementsByClassName(obj, 'Img');
  this.curr = this.curr + step*divs.length;
  while(this.curr < 0) this.curr += this.imgs.length;
  while(this.curr >= this.imgs.length)
   this.curr -= this.imgs.length;
  this.GoPageTick(0);
 }catch(e){};
};

wspLineImgs.prototype.tickTimer = null;
wspLineImgs.prototype.GoPageTick = function(tick)
{
 var max = 100;
 var speedshow = 3;
 var speedhide = 10;
 clearTimeout(this.tickTimer); 
 switch(tick)
 {
  case 0: tick = 1; break;
  case 1: // процесс скрытия
   this.ImgsOpacitySet(this.opacity+speedhide);
   if(this.opacity >= max) tick++;
   break;
  case 2:
   this.ImgsLineSet(this.curr); tick++;
   break;
  case 3: // процесс появления
   this.ImgsOpacitySet(this.opacity-speedshow);
   if(this.opacity <= 0) tick = 0;
   break;
  default: tick = 0; break;
 };
 if(tick > 0)
  this.tickTimer = setTimeout(this.name+'.GoPageTick('+tick+');', 10);
};

