var is = new Is();

function Is ()
{   // convert all characters to lowercase to simplify testing
    var agt=navigator.userAgent.toLowerCase()

    // --- BROWSER VERSION ---
    this.major = stringToNumber(navigator.appVersion)
    this.minor = parseFloat(navigator.appVersion)

    this.nav  = ((agt.indexOf('mozilla')!=-1) && ((agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1)))
    this.nav2 = (this.nav && (this.major == 2))
    this.nav3 = (this.nav && (this.major == 3))
    this.nav4 = (this.nav && (this.major == 4))
	
	//Netscape 6
	this.nav5 =	(this.nav && (this.major == 5))
	this.nav6 = (this.nav && (this.major == 5))
	this.gecko = (this.nav && (this.major >= 5))

    this.ie   = (agt.indexOf("msie") != -1)
    this.ie3  = (this.ie && (this.major == 2))
    this.ie4  = (this.ie && (this.major == 3))
    this.ie5  = (this.ie && (this.major == 4))


    this.opera = (agt.indexOf("opera") != -1)
     
    this.nav4up = this.nav && (this.major >= 4)
    this.ie4up  = this.ie  && (this.major >= 4)
}



function getElt () 
{ if (is.nav4)
  {
    return document.layers[getElt.arguments[0]];
    var currentLayer = document.layers[getElt.arguments[0]];
    for (var i=1; i<getElt.arguments.length && currentLayer; i++)
    {   currentLayer = currentLayer.document.layers[getElt.arguments[i]];
    }
    return currentLayer;
  } 
  else if(document.getElementById && document.getElementsByName)
  { 
    var name = getElt.arguments[getElt.arguments.length-1];
    if(document.getElementById(name))                      //First try to find by id
       return document.getElementById(name);
    else if (document.getElementsByName(name))             //Then if that fails by name
	   return document.getElementsByName(name)[0];
  }
  else if (is.ie4up) {
    var elt = eval('document.all.' + getElt.arguments[getElt.arguments.length-1]);
    return(elt);
  }

}

function showElt(elt)
{
	setEltVisibility(elt,'visible');
}

function hideElt(elt)
{
	setEltVisibility(elt);
}

function setEltVisibility (elt, value)
{  if (is.nav4) elt.visibility = value;
   else if (elt.style) elt.style.visibility = value;
}

function getEltVisibility (elt)
{  if (is.nav4) 
   {  var value = elt.visibility;
      if (value == "show") return "visible";
      else if (value == "hide") return "hidden";
      else return value;
   }
   else if (elt.style) return elt.style.visibility;
}


function moveEltTo (elt, x, y) 
{ if (is.nav4) {
	elt.moveTo(x, y);
  }
  else if (is.ie4up) {
    elt.style.pixelLeft = x;
    elt.style.pixelTop  = y;
  }
  else if (is.gecko) {
    elt.style.left = x;
    elt.style.top  = y;
  }
}


/* Offset elt's pixel location by x,y pixels. */

function moveEltBy (elt, x, y) 
{ if (is.nav4) elt.moveBy(x, y);
  else if (is.ie4up)  {
    elt.style.pixelLeft += x;
    elt.style.pixelTop  += y;
  }
  else if (is.gecko)  {
//    elt.style.left = (stringToNumber(elt.style.left) + x + "px");
//    elt.style.top  = (stringToNumber(elt.style.top)  + y + "px");
    elt.style.left = (stringToNumber(elt.style.left) + x);
    elt.style.top  = (stringToNumber(elt.style.top)  + y);
  }
}

/* xbrowser pageX equivalent*/
function getEltPageLeft(elt) {
  var x;

  if (is.nav4)
    return elt.pageX;
  if (is.ie4up) {
    x = 0;
    while (elt.offsetParent != null) {
      x += elt.offsetLeft;
      elt = elt.offsetParent;
    }
    x += elt.offsetLeft;
    return x;
  }
  if (is.gecko) {
    x = 0;
    while (elt.offsetParent != null) {
      x += elt.offsetLeft;
      elt = elt.offsetParent;
    }
    x += elt.offsetLeft;
    return x;
  }
  return -1;
}

/* xbrowser pageY equivalent */
function getEltPageTop(elt) {
  var y;

  if (is.nav4)
    return elt.pageY;
  if (is.ie4up) {
    y = 0;
    while (elt.offsetParent != null) {
      y += elt.offsetTop;
      elt = elt.offsetParent;
    }
    y += elt.offsetTop;
    return y;
  }
  if (is.gecko) {
    y = 0;
    while (elt.offsetParent != null) {
      y += elt.offsetTop;
      elt = elt.offsetParent;
    }
    y += elt.offsetTop;
    return y;
  }
  return -1;
}

/* Sets position of left edge of elt in pixels. */
function setEltLeft (elt, x) {
  if (is.nav4)     elt.left=x;
  else if (is.ie4up) elt.style.pixelLeft=x;
  else if (is.gecko) elt.style.left = (x + "px");
}


/* Returns left edge of elt in pixels. */
function getEltLeft (elt) {
  if (is.nav4)     return (elt.left);
  else if (is.ie4up) return (elt.style.pixelLeft);
//  else if (is.gecko) return stringToNumber(elt.style.left);
  else if (is.gecko) return elt.offsetLeft;
}

/* Sets top edge of elt in pixels. */
function setEltTop (elt, y) 
{ if (is.nav4)     elt.top=y;
  else if (is.ie4up) elt.style.pixelTop=y;
  else if (is.gecko) elt.style.top= (y + "px");
}

/* Returns top edge of elt in pixels. */
function getEltTop (elt) 
{ if (is.nav4)     return (elt.top);
  else if (is.ie4up) return (elt.style.pixelTop);
  else if (is.gecko) return stringToNumber(elt.style.top);
}

/* Returns width of elt in pixels. */
function getEltWidth(elt) {

  if (is.nav4) {
    if (elt.document.width)
      return elt.document.width;
    else
      return elt.clip.right - elt.clip.left;
  }
  if (is.ie4up) {
    if (elt.style.pixelWidth)
      return elt.style.pixelWidth;

    else
      return elt.offsetWidth;
  }
  if (is.gecko) {
    if (elt.style.width)
      return stringToNumber(elt.style.width);
    else
      return stringToNumber(elt.offsetWidth);
  }
  return -1;
}

/* set width of elt in pixels */
function setEltWidth(elt,wdth)
{
	if(is.nav4)
    { 
	     elt.document.width = wdth;
    }
    else if(elt.style)
    { 
        elt.style.width = wdth;
    }
}

/* Returns height of elt in pixels. */
function getEltHeight(elt) {
  if (is.nav4) {
    if (elt.document.height)
      return elt.document.height;
    else
      return elt.clip.bottom - elt.clip.top;
  }
  if (is.ie4up) {
    if (elt.style.pixelHeight)
      return elt.style.pixelHeight;
    else
      return elt.clientHeight;
  }
  if (is.gecko) {
    if (elt.style.height)
      return stringToNumber(elt.style.height);
    else
      return stringToNumber(elt.offsetHeight);
  }
  return -1;
}

/* set width of elt in pixels */

function setEltHeight(elt,hght)
{
	if(is.nav4)
    { 
		elt.document.height = hght;
    }
    else if(elt.style)
    { 
        elt.style.height = hght;
    }
}


function getCurrentWinWidth() 
{ if (is.nav4)     return(window.innerWidth);
  else if (is.ie4up) return(document.body.clientWidth);
  else if (is.gecko) return(window.innerWidth-15);
}


function stringToNumber(s)
{
        return parseInt(('0' + s), 10)
}

var ScrollStep = 100;
var Step = 50;
var SizeImage = 21;
var TableSize;
var tmp = (is.nav6) ? 3: 0;
var y1;
function PositionLayers(y) {
	   var width = (is.nav4) ? 21 : 0;
	   var height = (is.nav4) ? 8 : 0;
	   y1 = y+1;
	   if (!TableSize) TableSize = getEltWidth(getElt('float'))-21;
	   if (is.nav6) {TableSize = 1016;}
//	   alert(document.layers.length);
	   if (!is.nav4) {
//	    alert(getCurrentWinWidth());
	    setEltWidth(getElt('float'),getCurrentWinWidth()-SizeImage-tmp);
//	    setEltWidth(getElt('float'),getCurrentWinWidth() - 51 -getEltLeft(getElt('float')));
	   } else {
/*	        obj = document.layers['float'];
//            	obj.clip.top = t;
                obj.clip.right = getCurrentWinWidth() - SizeImage;
//                obj.clip.bottom = b;
 //               obj.clip.left = l;
*/
	   }
	   setEltWidth(getElt('staticTop'),getCurrentWinWidth()-tmp);
	   setEltWidth(getElt('staticBottom'),getCurrentWinWidth()-tmp);
	   moveEltTo(getElt('staticTop'),0,y);
	   moveEltTo(getElt('staticBottom'),0,y+100);
	   moveEltTo(getElt('staticLeft'),0,y+1);
	   moveEltTo(getElt('staticRight'),getCurrentWinWidth() - 21 - width + height-tmp,y+1);
	   moveEltTo(getElt('float'),21,y+1);
	   showElt(getElt('staticTop'));
	   showElt(getElt('staticBottom'));
	   showElt(getElt('staticLeft'));
	   showElt(getElt('staticRight'));
//	   setEltClip(getElt('float'),10,10,106,100);
	   showElt(getElt('float'));
	  }

	  function GetRight(n) {
	   var right;
//	   alert(TableSize);
		if (is.gecko)
			right = n*180+(n-1)*24;
		else
			right = TableSize + getEltLeft(getElt('float'));
//	   right += 2;
	   return right;
	  }
	 function GetLeft() {
	   return getEltLeft(getElt('float'));
//	   return LGetX('float');
	  }

	  function ShiftRight(top,n) {
	   if (!is.nav4) {
		getElt('right').src = "/images/aux-16.gif";
		getElt('right').width=21;
	   }

	   if (!top) {top = ScrollStep};
	   var right = GetRight(n);
	   var end = getCurrentWinWidth()-SizeImage -tmp;
	   if ((right <= end && top) || GetLeft() < SizeImage) {
//	   alert(right +"<="+ end +"||"+ GetLeft() +"<"+ SizeImage);
	    var shift = (right+Step < end || GetLeft() < SizeImage) ? Step: (end-right)%Step;
	    shift = Math.abs(shift);
//	    if (getEltWidth(getElt('float')) - shift )
//            if (is.nav4) obj.clip.right = getCurrentWinWidth() - SizeImage;
        setEltWidth(getElt('float'),getEltWidth(getElt('float'))-shift);
	    moveEltTo(getElt('float'),getEltPageLeft(getElt('float'))+shift,y1);
        setTimeout("setEltWidth(getElt('float'),getEltWidth(getElt('float'))+3)",200);
//	    moveEltBy(getElt('float'),shift,0);
//	    LMoveBy('float',shift,0);
	    top -= shift;
	    if (top) {
	     setTimeout("ShiftRight("+top+")",10);
	    } else if (!is.nav6) {
	     setTimeout("moveEltBy(getElt('float'),-6,0)",100);
	     if (!is.nav4 && ((GetRight(n) > end ) && GetLeft() >= SizeImage)) {
	      getElt('left').src = "/images/aux-15.gif";
	      getElt('right').src = "/images/aux-16.gif";
	     }
	    }
	   }
	  }

	  function ShiftLeft(top,n) {
	   if (!is.nav4) {
		getElt('left').src = "/images/aux-15.gif";
		getElt('left').width=21;
	   }
	   if (!top) {top = ScrollStep};
//	   alert(GetRight());
	   var left = GetLeft();
	   var end = SizeImage;
	   var t3 = GetRight(n) >= getCurrentWinWidth() - SizeImage;
	   var t4 = GetRight(n);
//	   ViewProp(getElt('float'));
//	   alert(t4);
	   if ((left-Step >= end || t3) && top) {
	    var t1 = Math.abs(left-Step);
	    var t2 = Math.abs(left-end);
	    var shift = (t1 > end || t3) ? Step: t2%Step;
	    shift = Math.abs(shift);
//	    if (getEltWidth(getElt('float')) + shift <= TableSize+49)
	     setEltWidth(getElt('float'),getEltWidth(getElt('float')) + shift-3);
//	    alert(shift);
	    moveEltTo(getElt('float'),getEltPageLeft(getElt('float'))-shift,y1);
	    top -= shift;
//	    alert(top);
	    if (top) {
	     setTimeout("ShiftLeft("+top+")",100);
	    } else if (!is.nav6) { setTimeout("moveEltBy(getElt('float'),6,0)",100);
	     if (!is.nav4 && (GetLeft()-Step < end && GetRight(n) < getCurrentWinWidth() - SizeImage )) {
	      getElt('left').src = "/images/aux-15.gif";
	      getElt('right').src = "/images/aux-16.gif";
	     }
	    }
	   }
	  }

   function ViewProp(obj) {
    var str;
    for (var propName in obj) {
	   if (obj[propName])
	   str +=propName+"="+obj[propName]+"<br>";
    }
    var win = window.open();
    win.document.writeln(str);
   }
   function OpenNew(str) {
    open(str,'ds_t', 'height=300,width=650,screenX=500,screenY=300,left=60,top=40,toolbar=0,scrollbars=1,menubar=0,resizable=yes');
    return false;
   }