function ScrollBarClass(containerID,scrollerID,objectName)
{
  var container = document.getElementById(containerID);
      container.scrollTop = 0;
  var scroll = document.getElementById(scrollerID);
  
  this.objectName = objectName;     
  this.mouse_x = 0;
  this.mouse_y = 0;
  this.scrollingStep = 20;
  this.scrollSpeed = 200;
  this.scrolling = false;
  this.scrollingObject = container;
  this.scrollObject = scroll;
  this.suwak = scroll.firstChild.nextSibling.firstChild;
  this.timer = null;
  this.scrollUp = scroll.firstChild;
  this.scrollDown = scroll.firstChild.nextSibling.nextSibling;
  this.scrollMoveBlock = false;
  this.scrollUp.onmousedown = this.upScroll;
  this.scrollDown.onmousedown = this.downScroll;
  
  this.scrollUp.ondblclick = this.upScrollClick;
  this.scrollDown.ondblclick = this.downScrollClick;
  this.scrollUp.onmouseup = this.stopScroll;
  this.scrollDown.onmouseup = this.stopScroll; 
  
  scroll.owner = this;
  this.suwak.owner = this;
  
  scroll.onmousemove = this.moveScroll;
  scroll.onmousedown = this.runScroll;
  scroll.onmouseup = this.stopScroll;
  scroll.onmouseout = this.outScroll;
  
  this.suwak.onmouseout = this.outScroll;
 
}  
ScrollBarClass.prototype.scrollDirectionClick = function(objectID,direction)
{
  
 var scrollParent = document.getElementById(objectID);

      this.scrollingObject.scrollTop += this.scrollingStep * direction;
      var diffrent = (this.suwak.clientHeight); 
      this.suwak.style.top = Math.round((this.scrollingObject.scrollTop / (this.scrollingObject.scrollHeight - this.scrollingObject.clientHeight)) * (this.suwak.parentNode.clientHeight - diffrent)) + 'px';
    
}
ScrollBarClass.prototype.scrollDirection = function(objectID,direction)
{
  
 var scrollParent = document.getElementById(objectID);
   
 if (scrollParent.owner.scrolling)
 {
      this.scrollingObject.scrollTop += this.scrollingStep * direction;
      
      this.timer = setTimeout('document.getElementById("'+objectID+'").owner.scrollDirection("'+objectID+'",'+direction+')',this.scrollSpeed);
      var diffrent = (this.suwak.clientHeight); 
      this.suwak.style.top = Math.round((this.scrollingObject.scrollTop / (this.scrollingObject.scrollHeight - this.scrollingObject.clientHeight)) * (this.suwak.parentNode.clientHeight - diffrent)) + 'px';
      
      if (this.scrollSpeed > 50)
      this.scrollSpeed -= 50;
      
 }   
}
ScrollBarClass.prototype.upScroll = function(e)
{
  this.parentNode.owner.scrollSpeed = 200;
  this.parentNode.owner.scrollMoveBlock = true;
  this.parentNode.owner.scrolling = true;
  clearTimeout(this.parentNode.owner.timer); 
  this.parentNode.owner.scrollDirection(this.parentNode.id,-1);
}
ScrollBarClass.prototype.downScroll = function(e)
{
  this.parentNode.owner.scrollSpeed = 200;
  this.parentNode.owner.scrollMoveBlock = true;
  this.parentNode.owner.scrolling = true;
  clearTimeout(this.parentNode.owner.timer);
  this.parentNode.owner.scrollDirection(this.parentNode.id,1);
  
}
ScrollBarClass.prototype.downScrollClick = function(e)
{
  this.parentNode.owner.scrollSpeed = 200;
  this.parentNode.owner.scrollMoveBlock = true;
  this.parentNode.owner.scrolling = true;
  this.parentNode.owner.scrollDirectionClick(this.parentNode.id,1);
  this.parentNode.owner.scrolling = false;
}
ScrollBarClass.prototype.upScrollClick = function(e)
{
  this.parentNode.owner.scrollSpeed = 200;
  this.parentNode.owner.scrollMoveBlock = true;
  this.parentNode.owner.scrolling = true;
  this.parentNode.owner.scrollDirectionClick(this.parentNode.id,-1);
  this.parentNode.owner.scrolling = false;
}
ScrollBarClass.prototype.getTopPos = function(inputObj)
	{		
	  var returnValue = inputObj.offsetTop;
	  while((inputObj = inputObj.offsetParent) != null){
	  	if(inputObj.tagName!='HTML')returnValue += inputObj.offsetTop;
	  }
	  return returnValue;
	}
ScrollBarClass.prototype.runScroll = function(e)
{
  var elementClass = this.owner.getElement(e).className;
  if (elementClass != 'scroll-down' && elementClass != 'scroll-up')
  { 
   this.owner.scrolling = true;
  } 
}
ScrollBarClass.prototype.getElement = function(e)
{
 var element = null;
 if(document.all) e = event;
  
 if (e.srcElement)
  {
   element = e.srcElement;
  }
 else
  {
   element = e.target;
  }
 return element; 
}
ScrollBarClass.prototype.outScroll = function(e)
{
  var element = null;
  var toElement = null;
 if(document.all) e = event;
  
 if (e.srcElement)
  {
   element = e.srcElement;
   toElement = e.toElement;
  }
 else
  {
   element = e.target;
   toElement = e.relatedTarget;
  }
  if (toElement.className != 'suwak' && toElement.className != 'suwakbox' && toElement.className != 'scroll-up' && toElement.className != 'scroll-down')
  {
    this.owner.scrolling = false;
    this.owner.scrollMoveBlock = false;
  }
}
ScrollBarClass.prototype.stopScroll = function(e)
{
   if (this.owner)
   { 
    this.owner.scrolling = false;
    this.owner.scrollMoveBlock = false;
   } 
   if (this.parentNode.owner)
   {
     this.parentNode.owner.scrolling = false;
     this.parentNode.owner.scrollMoveBlock = false;
   }
}
ScrollBarClass.prototype.moveScroll = function(e)
{
  if (this.owner.scrollMoveBlock) return false;
  
  if(document.all) e = event;
  
  classObj = this.owner;
  
  if (classObj.scrolling && classObj.scrollingObject)
  {
   classObj.mouse_x = e.clientX;
	 classObj.mouse_y = e.clientY + document.documentElement.scrollTop; 
   var top = classObj.getTopPos(classObj.suwak.parentNode);
   var diffrent = (classObj.suwak.offsetHeight); 
    
   var position = (classObj.mouse_y - top) / (classObj.suwak.parentNode.clientHeight - classObj.suwak.offsetHeight);
   var scrollTop = (classObj.scrollingObject.scrollHeight - classObj.scrollingObject.offsetHeight) * position;
   classObj.scrollingObject.scrollTop =  scrollTop;
   
   var suwakTop = Math.round((classObj.scrollingObject.scrollTop / (classObj.scrollingObject.scrollHeight - classObj.scrollingObject.offsetHeight)) * (classObj.suwak.parentNode.offsetHeight - diffrent));
    
   classObj.suwak.style.top =  suwakTop + 'px';
  
  }
}
function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }
function selectOn(objectID,event)
    {
toggleFrame();
     for(var i = 0; i < SelectArray.length; i++)
     {
      var options = document.getElementById(SelectArray[i] + '_options');
      var dynSelect = document.getElementById(SelectArray[i] + '_content');
      
      if (!event)
      {
      if ((options.style.visibility == 'hidden' || !options.style.visibility )&& objectID == SelectArray[i])
       {
        dynSelect.style.background = 'transparent url('+imgDown.src+') no-repeat 5px 4px';
        options.style.visibility = 'visible';
       }  
      else
       {
          dynSelect.style.background = 'transparent url('+imgRight.src+') no-repeat 5px 4px';
          options.style.visibility = 'hidden';
       } 
      }
      else
      {
       if (event.srcElement)
        {
          var close = true;
          var node = event.srcElement;
          if (node!='http://ekofora.pl/' && node!='http://ekoalert.pl/' && node!='http://pogoda.ekologia.pl/' && node!='http://www.ekologia.pl/artykuly/63_Oferta/31_Ekokalendarz.html' && node!='http://ekokatalog.pl/' && node!='http://eurokatalog.pl/' && node.tagName!='IMG'){  
    //alert ('1'+event.target);                          
          while(node.tagName != 'body' && node.tagName != 'BODY')
          {
            node = node.parentNode;
             if (node && node.className != null ){
            if (node.className == 'options' || node.className == 'select') close = false;
            if (node.className == 'select') close = false;
             }
          }
          }
          if (close)
          {
           dynSelect.style.background = 'transparent url('+imgRight.src+') no-repeat 5px 4px';
           options.style.visibility = 'hidden';
          } 
        }
        else
        {
          var close = true;
          var node = event.target;    
          if (node!='http://ekofora.pl/' && node!='http://ekoalert.pl/' && node!='http://pogoda.ekologia.pl/' && node!='http://ekokatalog.pl/' && node!='http://eurokatalog.pl/' && node!='http://www.ekologia.pl/artykuly/63_Oferta/31_Ekokalendarz.html' && node.tagName!='IMG'){ 
                
  //alert ('2'+event.target);
          while(node && node.tagName != 'body' && node.tagName != 'BODY')
          {
            node = node.parentNode;
                            
            if (node && node.className != null ){ 
            
            if (node.className == 'options' || node.className == 'select') close = false;
            if (node.className == 'select') close = false;
            }
          }
          }
          if (close)
          {
           dynSelect.style.background = 'transparent url('+imgRight.src+') no-repeat 5px 4px';
           options.style.visibility = 'hidden';


          } 
        }
        
      }
      }
    }
    function setItem(index,objectID,submit)
    {
     var node = document.getElementById(objectID);
     var dynSelect = document.getElementById(objectID+'_content');
     var tmp = dynSelect.innerHTML;
      dynSelect.innerHTML = node.options[index].text;
      node.selectedIndex = index;
      selectOn(objectID,0);
      
     if (tmp != node.options[index].text)
     {
      if (submit)
        node.form.submit();
     }   
    }
    function setItemWidthTitle(index,objectID,submit,title)
    {
     var node = document.getElementById(objectID);
     var dynSelect = document.getElementById(objectID+'_content');
     var tmp = dynSelect.innerHTML;
      dynSelect.innerHTML = title+node.options[index].text;
      node.selectedIndex = index;
      selectOn(objectID,0);
      
     if (tmp != node.options[index].text)
     {
      if (submit)
        node.form.submit();
     }   
    }
    function runDynamicSelectWithTitle(objectID,submit,bezpierszego,zindex,title)
    {
      var node = document.getElementById(objectID);
     
      var dynSelect = document.createElement('div');
      
      SelectArray[SelectArray.length] = objectID;
      
      if (node.id != 'profil')
      {
        if (navigator.appName == 'Microsoft Internet Explorer')
          document.onclick  = function() {selectOn(objectID,event);}
        else
          document.addEventListener("click",function(event) {selectOn(objectID,event)},false);
      }
     
      var html = '<div id="'+objectID+'_select" class="select"><div class="select_1"><div class="select_2"><div id="'+objectID+'_content" class="select_3" onclick="selectOn(\''+objectID+'\',0)">'+title+node.options[node.selectedIndex].text+'</div></div></div></div>';
      
      var popups = '<div id="'+objectID+'_options" class="options"><div style="z-index:2;position:absolute;top:0px;left:0px;"><div class="options_1"><div class="options_2"><div class="options_1_2"></div></div></div><div id = "'+objectID+'_options_items" class="options-items">';
      
      var begin = 0;
      
      if (bezpierszego) begin = 1; 
     
      if (node.id != 'profil')
      {
      for (var i = begin;i<node.options.length;i++)
      
      {
        popups += '<div class="item" onclick="setItemWidthTitle('+i+',\''+objectID+'\','+submit+',\''+title+'\');">'+node.options[i].text+'</div>';
        if (i < node.options.length - 1)
        {
         popups += '<div class="separator"></div>';
        } 
      }
      }
      else
      {
        
        for (var i=1;i<node.options.length;i++)
        {
        popups += '<div class="item">'+node.options[i].text+'</div>';
        if (i < node.options.length - 1)
        {
         popups += '<div class="separator"></div>';
        } 
      }
      }
      popups += '</div><div class="options_3"><div class="options_4"><div class="options_3_4"></div></div></div></div></div><div class="clear"></div>';
      
      dynSelect.id = objectID+'_temp';
      dynSelect.className = 'select-parent';
      
      dynSelect.innerHTML = html + popups;
            
      node.parentNode.insertBefore(dynSelect,node);
      
      var optionsDiv = document.getElementById(objectID+'_options');
      
      var bgHide = document.createElement('iframe');
          bgHide.src= 'about:blank';
          bgHide.frameBorder = 0;
          bgHide.style.background = '#fff';
          bgHide.style.position = 'absolute';
          bgHide.style.top = '0px';
          bgHide.style.left = '0px';
          bgHide.style.width = '100%';
          bgHide.style.height = '80px';
          
          optionsDiv.appendChild(bgHide);
          
      node.style.display = 'none';
}
    function runDynamicSelect(objectID,submit,bezpierszego,zindex)
    {
      var node = document.getElementById(objectID);
     
      var dynSelect = document.createElement('div');
      
      SelectArray[SelectArray.length] = objectID;
      
      if (node.id != 'profil')
      {
        if (navigator.appName == 'Microsoft Internet Explorer')
          document.onclick  = function() {selectOn(objectID,event);}
        else
          document.addEventListener("click",function(event) {selectOn(objectID,event)},false);
      }
     
      var html = '<div id="'+objectID+'_select" class="select"><div class="select_1"><div class="select_2"><div id="'+objectID+'_content" class="select_3" onclick="selectOn(\''+objectID+'\',0)">'+node.options[node.selectedIndex].text+'</div></div></div></div>';
      
      var popups = '<div id="'+objectID+'_options" class="options"><div class="options_1"><div class="options_2"><div class="options_1_2"></div></div></div><div id = "'+objectID+'_options_items" class="options-items">';
      
      var begin = 0;
      
      if (bezpierszego) begin = 1; 
     
      if (node.id != 'profil')
      {
      for (var i = begin;i<node.options.length;i++)
      
      {
        popups += '<div class="item" onclick="setItem('+i+',\''+objectID+'\','+submit+');">'+node.options[i].text+'</div>';
        if (i < node.options.length - 1)
        {
         popups += '<div class="separator"></div>';
        } 
      }
      }
      else
      {
        
        for (var i=1;i<node.options.length;i++)
        {
        popups += '<div class="item">'+node.options[i].text+'</div>';
        if (i < node.options.length - 1)
        {
         popups += '<div class="separator"></div>';
        } 
      }
      }
      popups += '</div><div class="options_3"><div class="options_4"><div class="options_3_4"></div></div></div></div><div class="clear"></div>';
      
      dynSelect.id = objectID+'_temp';
      dynSelect.className = 'select-parent';
      
      dynSelect.innerHTML = html + popups;
            
      node.parentNode.insertBefore(dynSelect,node);
      node.style.display = 'none';
}
function runDynamicCustomSelect(objectID,submit,bezpierszego,zindex,customEvent)
    {
    
      var node = document.getElementById(objectID);
     
      var dynSelect = document.createElement('div');
      
      SelectArray[SelectArray.length] = objectID;
      
        if (navigator.appName == 'Microsoft Internet Explorer')
          document.onclick  = function() {selectOn(objectID,event);}
        else
          document.addEventListener("click",function(event) {selectOn(objectID,event)},false);
      
      var scrollbox = '<div id="scroll'+objectID+'" class="scrollbox"><div id="scrollbox'+objectID+'"><div class="scroll-up"></div><div class="suwakbox"><div class="suwak"></div></div><div class="scroll-down"></div></div></div>';
       
      var html = '<div id="'+objectID+'_select" class="select"><div class="select_1"><div class="select_2"><div id="'+objectID+'_content" class="select_3" onclick="selectOn(\''+objectID+'\',0)">'+node.options[node.selectedIndex].text+'</div></div></div></div>';
      
      var popups = '<div id="'+objectID+'_options" class="options"><div class="options_1"><div class="options_2"><div class="options_1_2"></div></div></div>' + scrollbox + '<div id = "'+objectID+'_options_items" class="options-items">';
      
      var begin = 0;
      
      if (bezpierszego) begin = 1; 
     
      
      for (var i = begin;i<node.options.length;i++)
      
      {
        popups += '<div class="item" onclick="'+customEvent+'('+i+',\''+objectID+'\');selectOn(\''+objectID+'\',0);">'+node.options[i].text+'</div>';
        if (i < node.options.length - 1)
        {
          popups += '<div class="separator"></div>';
        } 
      }
     
      
      popups += '</div><div class="options_3"><div class="options_4"><div class="options_3_4"></div></div></div></div><div class="clear"></div>';
      
      dynSelect.id = objectID+'_temp';
      dynSelect.className = 'select-parent';
      
      dynSelect.innerHTML = html + popups;
            
      node.parentNode.insertBefore(dynSelect,node);
      
      if ( document.getElementById(objectID+'_options_items').offsetHeight >= document.getElementById(objectID+'_options_items').scrollHeight)
      {
       document.getElementById('scrollbox'+objectID).style.display = 'none';
       document.getElementById(objectID+'_options_items').style.height = 'auto';
       document.getElementById(objectID+'_options_items').style.width = document.getElementById(objectID+'_options_items').firstChild.offsetWidth + 'px';
      }
      else
      {
       var scroll = new ScrollBarClass(objectID+'_options_items','scrollbox'+objectID,'scroll');
      }
      
      node.style.display = 'none';
      
      
       
          
}
function runDynamicCustomSelect2(objectID,submit,bezpierszego,zindex,customEvent)
    {
    
      var node = document.getElementById(objectID);
     
      var dynSelect = document.createElement('div');
      
      SelectArray[SelectArray.length] = objectID;
      
        if (navigator.appName == 'Microsoft Internet Explorer')
          document.onclick  = function() {selectOn(objectID,event);}
        else
          document.addEventListener("click",function(event) {selectOn(objectID,event)},false);
      
      var scrollbox = '<div id="scroll'+objectID+'" class="scrollbox"><div id="scrollbox'+objectID+'"><div class="scroll-up"></div><div class="suwakbox"><div class="suwak"></div></div><div class="scroll-down"></div></div></div>';
       
      var html = '<div id="'+objectID+'_select" class="select"><div class="select_1"><div class="select_2"><div id="'+objectID+'_content" class="select_3" onclick="selectOn(\''+objectID+'\',0)">'+node.options[node.selectedIndex].text+'</div></div></div></div>';
      
      var popups = '<div id="'+objectID+'_options" class="options"><div class="options_1"><div class="options_2"><div class="options_1_2"></div></div></div>' + scrollbox + '<div id = "'+objectID+'_options_items" class="options-items">';
      
      var begin = 0;
      
      if (bezpierszego) begin = 1; 
     
      
      for (var i = begin;i<node.options.length;i++)
      
      {
        popups += '<div class="item" onclick="'+customEvent+'('+i+',\''+objectID+'\');">'+node.options[i].text+'</div>';
        if (i < node.options.length - 1)
        {
          popups += '<div class="separator"></div>';
        } 
      }
     
      
      popups += '</div><div class="options_3"><div class="options_4"><div class="options_3_4"></div></div></div></div><div class="clear"></div>';
      
      dynSelect.id = objectID+'_temp';
      dynSelect.className = 'select-parent';
      
      dynSelect.innerHTML = html + popups;
            
      node.parentNode.insertBefore(dynSelect,node);
      
      if ( document.getElementById(objectID+'_options_items').offsetHeight >= document.getElementById(objectID+'_options_items').scrollHeight)
      {
       document.getElementById('scrollbox'+objectID).style.display = 'none';
       document.getElementById(objectID+'_options_items').style.height = 'auto';
       document.getElementById(objectID+'_options_items').style.width = document.getElementById(objectID+'_options_items').firstChild.offsetWidth + 'px';
      }
      else
      {
       var scroll = new ScrollBarClass(objectID+'_options_items','scrollbox'+objectID,'scroll');
      }
      
      node.style.display = 'none';
      
      
       
          
}
function runDynamicPopup(objectContainerID,objectTitleID,submit,bezpierszego,zindex,srcAddress,w,h)
{
      SelectArray[SelectArray.length] = objectContainerID;
       
      var node = document.getElementById(objectContainerID);
      var nodeTitle = document.getElementById(objectTitleID);
      
      if (navigator.appName == 'Microsoft Internet Explorer')
          document.onclick  = function() {selectOn(objectContainerID,event);}
        else
          document.addEventListener("click",function(event) {selectOn(objectContainerID,event)},false);
      
      var dynSelect = document.createElement('div');
      
      var html = '<div id="' + objectContainerID + '_select" class="select"><div class="select_1"><div class="select_2"><div id="' + objectContainerID + '_content" class="select_3" onclick="selectOn(\'' + objectContainerID + '\',0)">' + nodeTitle.innerHTML + '</div></div></div></div>';
      
      var popups = '<div id="' + objectContainerID + '_options" class="options"><div class="options_1"><div class="options_2"><div class="options_1_2"></div></div></div><div id = "' + objectContainerID + '_options_items" class="options-items">';
      
      var iframe = document.createElement('iframe');
          iframe.src = srcAddress;
          iframe.frameBorder="no";
          iframe.style.width = w;
          iframe.style.height = h;
          iframe.id="login_iframe";
          iframe.style.visibility="hidden";
          setInterval("toggleFrame()",1000);
       
       var container = document.createElement('div');
           container.appendChild(iframe);  
      
      popups += '<div class="item">' + container.innerHTML + '</div>';
      popups += '</div><div class="options_3"><div class="options_4"><div class="options_3_4"></div></div></div></div><div class="clear"></div>';
      
      dynSelect.id = objectContainerID + '_temp';
      dynSelect.className = 'select-parent';
      
      dynSelect.innerHTML = html + popups;
      
      node.parentNode.insertBefore(dynSelect,node);
      node.style.display = 'none';
      nodeTitle.style.display = 'none';
      
}

function toggleFrame() {
/*var iframe=document.getElementById('login_iframe');
//var profil=document.getElementById('profile_options');
if (profil.style.visibility=='visible') iframe.style.visibility='visible';
else if (profil.style.visibility=='hidden') iframe.style.visibility='hidden';
else if (iframe.style.visibility=='visible' && profil.style.visibility!='visible') iframe.style.visibility='hidden';
*/
}
