
function Is() {
    agent  = navigator.userAgent.toLowerCase();
    this.major = parseInt(navigator.appVersion);
    this.minor = parseFloat(navigator.appVersion);
    this.ns    = ((agent.indexOf('mozilla')   !=   -1) &&
                 ((agent.indexOf('spoofer')   ==   -1) &&
                 (agent.indexOf('compatible') ==   -1)));
    this.ns2   = (this.ns && (this.major      ==    3));
    this.ns3   = (this.ns && (this.major      ==    3));
    this.ns4b  = (this.ns && (this.major      ==    4) &&
                 (this.minor                  <= 4.03));
    this.ns4   = (this.ns && (this.major      >=    4));
    this.ns6    = (this.ns && (this.major     >=    5));
    this.ie    = (agent.indexOf("msie")       !=   -1);
    this.ie3   = (this.ie && (this.major      <     4));
    this.ie4   = (this.ie && (this.major      ==    4) &&
                 (agent.indexOf("msie 5.0")   ==   -1));
    this.ie5   = (this.ie && (this.major      ==    4) &&
                 (agent.indexOf("msie 5.0")   !=   -1));
    this.ie55  = (this.ie && (this.major      ==    4) &&
                 (agent.indexOf("msie 5.5")   !=   -1));
}

var is = new Is();

if(is.ns4) {
    doc = "document";
    sty = "";
    htm = ".document"
    xpos = "e.pageX";
    ypos = "e.pageY";
} else if(is.ie4 || is.ie5) {
    doc = "document.all";
    sty = ".style";
    htm = ""
    xpos = "event.x";
    ypos = "event.y";
}

function choreographer(cmd,argument) {
    if(argument != null) {
        arg = argument;
    }
    switch(cmd) {
        case 'layerSetup' :
            menuonLyr = eval(doc + '["menuonLayer"]' + sty);
            menuonLyr.left = available_width-340;
            menuonLyr.top = available_height-364;
            choreographer('htmlSetup',null);
            break;

        case 'eventSetup' :
            eventArea.onmousemove = mouseMove;
            break;

        case 'start' :
            setTimeout("choreographer('preLoad',null)",1000);
            break;

        case 'preLoad' :
            blankImg = new Image();
            break;

        case 'setImages' :
            arrowHTML.arrow.src = dragmeImg.src;
            break;
            break;

        case 'page_reset' :
            break;
    }
}


function clipLayer2(layer,clipto) 
{
    var cTop = clipto.top;
    var cRight = clipto.right;
    var cBottom = clipto.bottom;
    var cLeft = clipto.left;
    if(is.ns4) {
        layer.clip.top = cTop;
        layer.clip.right = cRight;
        layer.clip.bottom = cBottom;
        layer.clip.left =  cLeft;
    } else {
        layer.clip = 'rect(' + cTop + ' ' + cRight + ' ' + cBottom + ' ' + cLeft + ')';
    }
}

function adjustSlider ()
{
  if ( contentLyr.sbPos_ < 0 )
    contentLyr.sbPos_ = 0;
  else if ( contentLyr.sbPos_ > contentLyr.myHeight_ - contentLyr.sbSize_ )
    contentLyr.sbPos_ = contentLyr.myHeight_ - contentLyr.sbSize_;

  var relative =
    Math.floor ( (contentLyr.sbPos_ / (contentLyr.myHeight_ - contentLyr.sbSize_)) *
                 (contentLyr.sbSize_ - 36 - 25 ) );

  sliderButtonLyr.myPos_.y_ =  
    sliderButtonLyr.top = contentLyr.myTop_ + 18 + relative;
  contentLyr.top = contentLyr.myTop_ - contentLyr.sbPos_;
  clipLayer2 ( contentLyr, { top:contentLyr.sbPos_, 
                             right:400, 
                             left:0, 
                             bottom: contentLyr.sbPos_ + contentLyr.sbSize_ } );
}

function moveSlider ( delta )
{
  
  var delta_doc = delta / (contentLyr.sbSize_ - 36 - 25) * (contentLyr.myHeight_ - contentLyr.sbSize_);
  contentLyr.sbPos_ += Math.floor (delta_doc);

  adjustSlider ();
}

function moveSliderTo ( newSliderPos )
{
  contentLyr.sbPos_ = (newSliderPos - contentLyr.myTop_ - 18) / 
                        (contentLyr.sbSize_ - 36 - 25 ) *
                        (contentLyr.myHeight_ - contentLyr.sbSize_);

/*
  newSliderPos = contentLyr.myTop_ + 18 + 
        Math.floor ( (contentLyr.sbPos_ / (contentLyr.myHeight_ - contentLyr.sbSize_)) *
                 (contentLyr.sbSize_ - 36 - 25 ) );
*/



  adjustSlider ();
}

function scrollUp ( theStep )
{
  if ( theStep == -1 )
    contentLyr.sbPos_ = 0;
  else if ( theStep == -2 )
    contentLyr.sbPos_ -= (contentLyr.sbSize_ - contentLyr.sbStep_);
  else
    contentLyr.sbPos_ -= contentLyr.sbStep_;
                   
  adjustSlider();
}

function scrollDown ( theStep )
{
  if ( theStep == -1 )
  {
    contentLyr.sbPos_ = contentLyr.myHeight_ - contentLyr.sbSize_;
  }
  else
  {
    if ( theStep == -2 )
      contentLyr.sbPos_ += contentLyr.sbSize_ - contentLyr.sbStep_;
    else
      contentLyr.sbPos_ += contentLyr.sbStep_;

  }

  adjustSlider();
}

function keyDown2(e) {
    var key_press = (is.ns4) ? e.which : window.event.keyCode;
    status = "Key: " + key_press;
    switch ( key_press )
    {
    case 40: // Arrow Down
      scrollDown ();
      break;
    case 38: // Arrow Up
      scrollUp ();
      break;
    case 34: // Page Down
    case 32: // Space
      scrollDown ( -2 );
      break;
    case 33: // Page Up
      scrollUp ( -2 );
      break;
    case 36: // Home
      scrollUp ( -1 );
      break;
    case 35: // End
      scrollDown ( -1 );
    }
}


var page_height = null;
var mouse_y = 0;
var mouse_x = 0;
var start_y = 0;
var start_ydelta = 0;

function resetSliderStates ()
{
 in_drag = false;
 in_slider = false;
 in_slider_button = false;
 sli_but_state = "normal";
 butcoords = "";
 in_slider_upper_part = false;
 in_slider_lower_part = false;
}

resetSliderStates ();

function showSliderState ( e )
{
   var x = 
   status = " Evt: " + e + " (" + mouse_x + "," + mouse_y + ")" +
            " But: " + butcoords +
            " Slid: " + in_slider + 
            " But:" + in_slider_button + " - " + sli_but_state + 
            " Drag:" + in_drag;

   return x;
}

function setSliderState ( mouse_x, mouse_y )
{
  butcoords = "(" + 
sliderButtonLyr.myPos_.x_ + "-" +
( sliderButtonLyr.myPos_.x_ + sliderButtonLyr.mySize_.x_ ) + "," +
sliderButtonLyr.myPos_.y_ + "-" +
( sliderButtonLyr.myPos_.y_ + sliderButtonLyr.mySize_.y_ ) + ")";


    if ( mouse_x >= sliderButtonLyr.myPos_.x_ &&
         mouse_x < ( sliderButtonLyr.myPos_.x_ + sliderButtonLyr.mySize_.x_ ) &&
         mouse_y >= sliderButtonLyr.myPos_.y_ &&
         mouse_y < ( sliderButtonLyr.myPos_.y_ + sliderButtonLyr.mySize_.y_ ) )
    {
      in_slider_button = true;
    }
    else
    {
      if ( mouse_y < sliderButtonLyr.myPos_.y_ )
        in_slider_upper_part = true;
      else
        in_slider_upper_part = false;

      if ( mouse_y > sliderButtonLyr.myPos_.y_ + sliderButtonLyr.mySize_.y_ )
        in_slider_lower_part = true;
      else
        in_slider_lower_part = false;

      in_slider_button = false;
    }

    in_slider = true;
}
 


function setSliderButtonState ( onState )
{
  sli_but_state = onState;
  switch ( onState )
  {
  case 'over':
    sliderButtonLyr.myDoc_.Slider_Btn.src = 'images/Slider-Btn-over.gif';
    break;
  case 'down':
    sliderButtonLyr.myDoc_.Slider_Btn.src = 'images/Slider-Btn-down.gif';
    break;
  case 'normal':
    sliderButtonLyr.myDoc_.Slider_Btn.src = 'images/Slider-Btn.gif';
    break;
  }
}
    

function mouseMove(e) {
    mouse_y = eval(ypos);
    mouse_x = eval(xpos);

    if ( !in_drag )
    {
      setSliderState ( mouse_x, mouse_y );
      if ( in_slider_button )
        setSliderButtonState ( 'over' );
      else
        setSliderButtonState ( 'normal' );
    }
    else
    {
      moveSliderTo ( mouse_y - start_ydelta );
    }
       
    if ( document.all )
      event.cancelBubble = true;
    return false;
}


function mouseOver(e) {
    mouse_y = eval(ypos);
    mouse_x = eval(xpos);

    setSliderState ( mouse_x, mouse_y );
    if ( !in_drag )
    {
      if ( in_slider_button )
        setSliderButtonState ( 'over' );
    }

    if ( document.all )
      event.cancelBubble = true;
    return false;
}


function mouseOut(e) {
    mouse_y = eval(ypos);
    mouse_x = eval(xpos);

    if ( in_drag )
    {
        mouseUp ( e );
        resetSliderStates ();
        setSliderButtonState ( 'normal' );
    }
    else
    {
        resetSliderStates ();
        setSliderButtonState ( 'normal' );
    }





    if ( document.all )
      event.cancelBubble = true;
    return false;
}


function mouseDown(e) {
    mouse_y = eval(ypos);
    mouse_x = eval(xpos);

    in_drag = true;
    if ( in_slider_button )
    {
      start_y = mouse_y;
      start_ydelta = mouse_y - sliderButtonLyr.myPos_.y_;
      setSliderButtonState ( "down" );
    }
    else
    {
      if ( in_slider_upper_part )
        scrollUp ( -2 );
      if ( in_slider_lower_part )
        scrollDown ( -2 );
    }

    if ( document.all )
      event.cancelBubble = true;
    return false;
}

function mouseUp(e) {
    in_drag = false;
    mouse_y = eval(ypos);
    mouse_x = eval(xpos);

    if ( document.all )
      event.cancelBubble = true;
    return false;
}








//var page_height = null;
//var mouse_y = 0;
//var drag = false;
//
//function mouseMove(e) {
//    mouse_y = eval(ypos);
//    mouse_x = eval(xpos);
//    if(drag && mouse_y > 15 && mouse_y < (available_height-15) && mouse_x >= (parseInt(arrowLyr.left)+10)) {
//      contentLyr.top = page_height * -(mouse_y/available_height)+20;
//      choreographer('parallax',null);
//      arrowLyr.top = mouse_y - 10;
//    } else {
//      drag = false;
//    }
//}
//
//function mouseDown(e) {
//    shieldLyr.visibility = "visible";
//    page_height = (is.ns4) ? contentHTML.height : contentHTML.clientHeight;
//    if(mouse_y > parseInt(arrowLyr.top) && mouse_y < parseInt(arrowLyr.top)+30) {
//        drag = true;
//        clipLayer(arrowLyr,dragmeclipArray,1);
//        choreographer('displayInfo','Excellent Grasshopper! - Now move Up or Down');
//    }
//}
//
//function mouseUp(e) {
//    shieldLyr.visibility = "hidden";
//    drag = false;
//    clipLayer(arrowLyr,dragmeclipArray,0);
//    infoLyr.left = available_width;
//}
//



preloadFlag = true;

function changeImages(scope, from, to) {
  img_scope = document;
  if ( scope.__parent__ != null )
    img_scope = scope.__parent__;

  if (img_scope.images && (preloadFlag == true)) {
    img_scope [from].src = to;
  }
}

function onloadHandler() 
{

    if(is.ns4) {
        available_width=innerWidth;
        available_height=innerHeight;
        document.onkeydown = keyDown2;
        document.captureEvents(Event.KEYDOWN);
//        choreographer('layerSetup',null);
    } else if(is.ie4 || is.ie5) {
        available_width=document.body.clientWidth;
        available_height=document.body.clientHeight;
        document.onkeydown = keyDown2;
//        choreographer('layerSetup',null);
    } else if(is.ns2 || is.ns3 || is.ie3 || is.op3 || is.ns6) {
        var msg = "($txt_error)";
        document.write(msg);
        document.close();
    }

	headerLyr = eval(doc + '["headerLayer"]' + sty);
	headerLyr.left = (available_width-620)/2;
	headerLyr.top = 10;
   headerLyr.visibility = "visible";
   headerLyr.myHeight_ = 
     (is.ns4 ? headerLyr.clip.height : 0 ) |
     (is.ie ? document.all.headerLayer.offsetHeight : 0 );
 
	footerLyr = eval(doc + '["footerLayer"]' + sty);
	footerLyr.left = (available_width-620)/2;
	footerLyr.top = available_height-31;
   footerLyr.visibility = "visible";
   footerLyr.myHeight_ = 
     (is.ns4 ? footerLyr.clip.height : 0 ) |
     (is.ie ? document.all.footerLayer.offsetHeight : 0 );

	navLyr = eval(doc + '["navLayer"]' + sty);
	navLyr.left = (available_width-620)/2 + 620 - 42;
	navLyr.top = available_height-31;
   navLyr.visibility = "visible";
 
	ulmLyr = eval(doc + '["ulmLayer"]' + sty);
	ulmLyr.left = 0;
	ulmLyr.top = available_height-213;
   ulmLyr.visibility = "visible";
 
	leafLyr = eval(doc + '["leafLayer"]' + sty);
	leafLyr.left = (available_width-530)/2;
	leafLyr.top = (available_height-346-11-56)/2 + 56;

	contentLyr = eval(doc + '["contentLayer"]' + sty);
   contentLyr.myHeight_ = 
     (is.ns4 ? contentLyr.clip.height : 0 ) |
     (is.ie ? document.all.contentLayer.offsetHeight : 0 );
   contentLyr.sbStep_ = 20;
   contentLyr.sbPos_ = 0;

  var max_height = available_height - 41 - headerLyr.myHeight_ - 10 - 20;
  var scrollbar = false;
	contentLyr.left = (available_width-400)/2;

  var desired_top = contentLyr.myTop_ = (available_height-346-11-56)/2 + 90;

  if ( max_height > 315 )
  {
    contentLyr.top = contentLyr.myTop_ = 
      (available_height-346-11-56)/2 + 90;
//status = ( contentLyr.myHeight_ + " >?> const(330)," + max_height );
    if ( contentLyr.myHeight_ > 315 )
    {
      scrollbar = true;
      contentLyr.sbSize_ = 315;
      clipLayer2  ( contentLyr, { top:0, right:400, left:0, bottom: 315 } );
    }
  }
  else
  {
   if ( desired_top < headerLyr.myHeight_ + 10 )
     desired_top = headerLyr.myHeight_ + 10;
   contentLyr.top = contentLyr.myTop_ = desired_top;

   contentLyr.sbSize_ = available_height - desired_top - 41;
//status = ( contentLyr.myHeight_ + " >?>" +  contentLyr.sbSize_ );
   if ( contentLyr.myHeight_ > contentLyr.sbSize_ )
   {
     scrollbar = true;
     clipLayer2 ( contentLyr, { top:0, right:400, left:0, bottom: contentLyr.sbSize_ } );
   }

  }

   contentLyr.visibility = "visible";
   leafLyr.visibility = "visible";

   sliderArrowUpLyr = eval(doc + '["sliderArrowUp"]' + sty);
   sliderArrowDownLyr = eval(doc + '["sliderArrowDown"]' + sty);
   sliderAreaLyr = eval(doc + '["sliderArea"]' + sty);
   sliderButtonLyr = eval(doc + '["sliderButton"]' + sty);
   if ( is.ns4 )
     sliderButtonLyr.myDoc_ = document.sliderButton.document;
   else if ( is.ie )
     sliderButtonLyr.myDoc_ = document.all.sliderButton.document;
	eventLyr = eval(doc + '["eventLayer"]' + sty);

   if ( scrollbar )
   {
     sliderButtonLyr.mySize_ = { y_: 25, x_: 21 };
     sliderButtonLyr.myPos_ = {};
     sliderArrowUpLyr.left =
     sliderArrowDownLyr.left =
     sliderButtonLyr.left =
     sliderButtonLyr.myPos_.x_ =
     eventLyr.left =
     sliderAreaLyr.left = (available_width-620)/2 + 620 - 21;

     sliderArrowUpLyr.top = contentLyr.myTop_;
     sliderButtonLyr.top = sliderButtonLyr.myPos_.y_ =
       sliderAreaLyr.top = eventLyr.top = contentLyr.myTop_ + 18;
     sliderArrowDownLyr.top = contentLyr.myTop_ + contentLyr.sbSize_ - 18;
     clipLayer2 ( sliderAreaLyr, { top:0, right:21, left:0, bottom: contentLyr.sbSize_ - 36 } );
     clipLayer2 ( eventLyr, { top:0, right:21, left:0, bottom: contentLyr.sbSize_ - 36 } );
     sliderArrowUpLyr.visibility =
     sliderArrowDownLyr.visibility =
     sliderButtonLyr.visibility =
     eventLyr.visibility =
     sliderAreaLyr.visibility = "visible";

	  eventArea = eval(doc + '["eventLayer"]');
		eventArea.onmousemove = mouseMove;
		eventArea.onmouseover = mouseOver;
		eventArea.onmouseout =  mouseOut;
		eventArea.onmousedown = mouseDown;
		eventArea.onmouseup =   mouseUp;
   	if(is.ns4) {
		  eventArea.captureEvents( Event.MOUSEMOVE | 
                                 Event.MOUSEDOWN | Event.MOUSEUP |
                                 Event.MOUSEOVER | Event.MOUSEOUT );
	   }
   }
   else
   {
     sliderArrowUpLyr.visibility =
     sliderArrowDownLyr.visibility =
     eventLyr.visibility =
     sliderButtonLyr.visibility =
     sliderAreaLyr.visibility = "hidden";
   }


 
   window.onresize = window.onload; 
   if ( is.ns4 )
     window.onresize = function () { history.go (0) };
}
