
function send_request_top(){
	this.request.send(this.params);	
}
function httpGet_top( page, ready_state_change ){
	this.request = false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	 try {
	  this.request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
	  try {
	   this.request = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (E) {
	   this.request = false;
	  }
	 }
	@end @*/
	if (!this.request && typeof XMLHttpRequest!='undefined') {
		try {
			this.request = new XMLHttpRequest();
		} catch (e) {
			this.request=false;
		}
	}
	if (!this.request && window.createRequest) {
		try {
			this.request = window.createRequest();
		} catch (e) {
			this.request=false;
		}
	}
	this.request.open("GET", page ,true);
	this.request.onreadystatechange = ready_state_change;
	this.params = null;
	this.send = send_request_top;
}

function animate_top(){
  if ( ( topside.animating == true ) ){
    if ( typeof(topside.keyframe[topside.tick]) != "undefined" ){
    
      var frm = topside.keyframe[topside.tick];

      //change animation
      if ( typeof (frm.top ) != "undefined" ){
        topside.top = frm.top;
      }
      if ( typeof (frm.left) != "undefined" ){
        topside.left = frm.left;
      }
      if ( typeof( frm.vtop ) != "undefined" ){
        topside.vtop = frm.vtop;
      }
      if ( typeof( frm.vleft ) != "undefined" ){
        topside.vleft = frm.vleft;
      }
      if ( typeof( frm.opacity) != "undefined" ){
        topside.opacity = frm.opacity;
      }
      if ( typeof( frm.vopacity) != "undefined" ){
        topside.vopacity = frm.vopacity;
      }
      if ( typeof( frm.text_left ) != "undefined" ){
        topside.text_left = frm.text_left;
      }
      if ( typeof( frm.vtext_left ) != "undefined" ){
        topside.vtext_left = frm.vtext_left;
      }
      if ( typeof( frm.text_top ) != "undefined" ){
        topside.text_top  = frm.text_top;
      }
      if ( typeof( frm.vtext_top ) != "undefined" ){
        topside.vtext_top = frm.vtext_top;
      }
    }
    
    topside.top += topside.vtop;
    topside.left += topside.vleft;
    topside.opacity += topside.vopacity;
    topside.text_left += topside.vtext_left;
    topside.text_top += topside.vtext_top;
    
    var div = document.getElementById( topside.div + "_fg" );
    div.style.left = topside.left + "px";
    div.style.top = topside.top + "px";
    div.style.opacity = topside.opacity / 100;
    div.style.filter = "alpha(opacity=" + topside.opacity + ")";

    var div_textbox = document.getElementById( topside.div + "_textbox" );
    var div_text = document.getElementById( topside.div + "_text" );
    div_textbox.style.left = topside.text_left + "px";
    div_text.style.left = topside.text_left + "px";
    div_textbox.style.top = topside.text_top + "px";
    div_text.style.top = topside.text_top + "px";
    div_text.style.display = "block";
    div_textbox.style.display = "block";
    
    topside.tick++;
    if ( topside.tick <= topside.animation_ticks ){
      setTimeout(animate_top, 1000 / topside.animation_resolution);
    } else {
      load_next_slide_top();
    }
    
  }
}

var load_slide_request_top = false;

function do_linkright( dest, target ){
  switch ( target ){
    case "window":
      window.open(dest);
    break;
    default:
      window.location = dest;
    break;
  }
}
function load_slide_request_ready_state_change_top(){
  if ( load_slide_request_top != false ){
    switch ( load_slide_request_top.request.readyState ){
      case 4:
        
        var slide = topside.slide[topside.slide_num];
        var div = document.getElementById( topside.div + "_fg" );
        switch ( slide.type ){
          case "html":
            div.innerHTML = load_slide_request_top.request.responseText;
            document.getElementById( topside.div ).style.cursor = "";
          break;
          case "image": 
                 
            div.innerHTML = "<div style=\"background-image:url("+slide.src+");width:"+slide.width+";height:"+slide.height+";overflow:hidden;\"></div>";
            //document.getElementById( topside.div ).style.cursor = "pointer";
          break;
          
          case "flash":
            var t = "";
            t += "<object width=\""+parseInt(slide.width)+"\" height=\""+parseInt(slide.height)+"\">";
            t += "<param name=\"movie\" value=\""+slide.src+"\">";
            t += "<embed src=\"somefilename.swf\" width=\""+parseInt(slide.width)+"\" height=\""+parseInt(slide.height)+"\">";
            t += "</embed>";
            t += "</object>";
            div.innerHTML = t;
            document.getElementById( topside.div ).style.cursor = "";
          break;
        }
        //generate_navigation();
                
        topside.tick = 0;
        animate_top();
        load_slide_request_top = false;
      break;
    }
  }
}

function load_next_slide_top(){

  topside.slide_num++;
  if ( topside.slide_num >= topside.num_slides ){
    topside.slide_num -= topside.num_slides;
  }

  //copy the current slide to the background, including styles
  var div_bg = document.getElementById( topside.div + "_bg" );
  var div_fg = document.getElementById( topside.div + "_fg" );
  var slide = topside.slide[topside.slide_num];  
  var slide_bottom = parseInt(slide.height) - parseInt(topside.height);
  var slide_right = parseInt(slide.width) - parseInt(topside.width);
  
  var transition_ticks = Math.round( slide.transition_speed * topside.animation_resolution )
  var exposure_ticks = Math.round( slide.exposure_length * topside.animation_resolution );
  var animation_ticks = Math.round( slide.pause_speed * topside.animation_resolution );
  var pause_ticks = Math.round( slide.animation_speed * topside.animation_resolution );
  
  
  topside.animation_ticks = exposure_ticks + transition_ticks;
  
  div_bg.innerHTML = div_fg.innerHTML;
  div_bg.style.top = div_fg.style.top;
  div_bg.style.left = div_fg.style.left;
  div_bg.style.width = div_fg.style.width;
  div_bg.style.height = div_fg.style.height;
  div_bg.style.display = "block";
  div_fg.style.display = "none";
  div_fg.innerHTML = "";
  
  //compile the animations keyframes
  topside.keyframe = new Array();
  switch ( slide.transition ){
    case "fade":
      topside.keyframe[0] = new Object();
      topside.keyframe[0].vtop = 0;
      topside.keyframe[0].vleft = 0;
      topside.keyframe[0].left = 0;
      topside.keyframe[0].top = 0;
      topside.keyframe[0].opacity = 0;
      topside.keyframe[0].vopacity = 100 / transition_ticks;
    break;       
  }
  
  //sliding text comes in
  switch ( slide.text_animation ){
    case "slide_from_top":
      topside.keyframe[0].text_top = 0;
      topside.keyframe[0].vtext_top = 0;
      topside.keyframe[0].text_left = parseInt(topside.width);
      topside.keyframe[0].vtext_left = -parseInt(topside.width) / transition_ticks;
    break;
    case "slide_from_top":
      topside.keyframe[0].text_left = 0;
      topside.keyframe[0].vtext_left = 0;
      topside.keyframe[0].text_top = -parseInt(topside.height);
      topside.keyframe[0].vtext_top = parseInt(topside.height) / transition_ticks;
    break;
    case "slide_from_left":
      topside.keyframe[0].text_top = 0;
      topside.keyframe[0].vtext_top = 0;
      topside.keyframe[0].text_left = -parseInt(topside.width);
      topside.keyframe[0].vtext_left = parseInt(topside.width) / transition_ticks;
    break;
    case "none":
      topside.keyframe[0].text_left = 0;
      topside.keyframe[0].vtext_left = 0;
      topside.keyframe[0].text_left = 0;
      topside.keyframe[0].vtext_left = 0;
    break;
    default:
      topside.keyframe[0].text_left = 0;
      topside.keyframe[0].vtext_left = 0;
      topside.keyframe[0].text_left = 0;
      topside.keyframe[0].vtext_left = 0;
    break;
  }

  var i =transition_ticks;
  topside.keyframe[i] = new Object();
  topside.keyframe[i].text_left = 0;
  topside.keyframe[i].vtext_left = 0;
  topside.keyframe[i].text_top = 0;
  topside.keyframe[i].vtext_top = 0;
  
  switch ( slide.animation ){
    case "slide_down_and_up":
      var mode = 0;
      while ( i <= exposure_ticks + transition_ticks){        
          if ( typeof( topside.keyframe[i] ) == "undefined" ){
            topside.keyframe[i] = new Object();
          }
          topside.keyframe[i].opacity = 100;
          topside.keyframe[i].vopacity = 0;
      
        switch ( mode ){
          case 0:       //move down
            topside.keyframe[i].vtop = -slide_bottom / animation_ticks;
            topside.keyframe[i].vleft = 0;
            topside.keyframe[i].left = 0;
            topside.keyframe[i].top = 0;
            i += animation_ticks;
            mode++;
          break;
          case 1:       //pause
            topside.keyframe[i].vtop = 0;
            topside.keyframe[i].vleft = 0;
            topside.keyframe[i].left = 0;
            topside.keyframe[i].top = -slide_bottom;
            i += pause_ticks;
            mode++;
          break;
          case 2:       //move up
            topside.keyframe[i].vtop = slide_bottom / animation_ticks;
            topside.keyframe[i].vleft = 0;
            topside.keyframe[i].left = 0;
            topside.keyframe[i].top = -slide_bottom;
            i += animation_ticks;
            mode++;
          break;
          case 3:       //pause
            topside.keyframe[i].vtop = 0;
            topside.keyframe[i].vleft = 0;
            topside.keyframe[i].left = 0;
            topside.keyframe[i].top = 0;
            i += pause_ticks;
            mode = 0;
          break;
        }
        
      }
    break;


    case "slide_top_and_left":
      var mode = 0;
      while ( i <= exposure_ticks + transition_ticks){        
          if ( typeof( topside.keyframe[i] ) == "undefined" ){
            topside.keyframe[i] = new Object();
          }
          topside.keyframe[i].opacity = 100;
          topside.keyframe[i].vopacity = 0;
      
        switch ( mode ){
          case 0:       //move down
            topside.keyframe[i].vleft = -slide_top / animation_ticks;
            topside.keyframe[i].vtop = 0;
            topside.keyframe[i].top = 0;
            topside.keyframe[i].left = 0;
            i += animation_ticks;
            mode++;
          break;
          case 1:       //pause
            topside.keyframe[i].vleft = 0;
            topside.keyframe[i].vtop = 0;
            topside.keyframe[i].top = 0;
            topside.keyframe[i].left = -slide_top;
            i += pause_ticks;
            mode++;
          break;
          case 2:       //move up
            topside.keyframe[i].vleft = slide_top / animation_ticks;
            topside.keyframe[i].vtop = 0;
            topside.keyframe[i].top = 0;
            topside.keyframe[i].left = -slide_top;
            i += animation_ticks;
            mode++;
          break;
          case 3:       //pause
            topside.keyframe[i].vleft = 0;
            topside.keyframe[i].vtop = 0;
            topside.keyframe[i].top = 0;
            topside.keyframe[i].left = 0;
            i += pause_ticks;
            mode = 0;
          break;
        }
        
      }
    break;
    default:
          var i = transition_ticks;
          if ( typeof( topside.keyframe[i] ) == "undefined" ){
            topside.keyframe[i] = new Object();
          }
          topside.keyframe[i].opacity = 100;
          topside.keyframe[i].vopacity = 0;
          topside.keyframe[i].vtop = 0;
          topside.keyframe[i].vleft = 0;
          topside.keyframe[i].left = 0;
          topside.keyframe[i].top = 0;
    break;
  }
  
  //sliding text leaves the screen
  var x = exposure_ticks - transition_ticks;
  if (typeof( topside.keyframe[x] ) == "undefined" ){
    topside.keyframe[x] = new Object();
  }
  topside.keyframe[x].text_left = 0;
  topside.keyframe[x].text_top = 0;
  
  switch ( slide.text_animation ){
    case "slide_from_right":
      topside.keyframe[x].vtext_left = parseInt(topside.width) / transition_ticks;
    break;
    case "slide_from_top":
      topside.keyframe[x].vtext_top = -parseInt(topside.height) / transition_ticks;
    break;
    case "slide_from_left":
      topside.keyframe[x].vtext_left = -parseInt(topside.width) / transition_ticks;
    break;
    default:
      topside.keyframe[x].vtext_left = parseInt(topside.width) / transition_ticks;
    break;
  }


  topside.animating = true;
  topside.tick = 0;
  
  var div = document.getElementById( topside.div + "_fg" );
  div.style.display = "block";
  div.style.left = topside.keyframe[0].left + "px";
  div.style.top = topside.keyframe[0].top + "px";
  div.style.width = slide.width;
  div.style.height = slide.height;
  
  var div_textbox = document.getElementById( topside.div + "_textbox" );
  var div_text = document.getElementById( topside.div + "_text" );
  div_text.style.display = "none";
  div_textbox.style.display = "none";
  div_textbox.style.height = slide.text_height;
  div_textbox.style.top = "0px";
  div_text.style.top = "0px";
  div_text.innerHTML = slide.text;
  
  
  if ( load_slide_request_top == false ){
      load_slide_request_top = new httpGet_top(slide.src,load_slide_request_ready_state_change_top);
      load_slide_request_top.send();
  }
  
}

function init_rotator_top(){  
  try
  {
    init_rotator_right(); 
  }
  catch (e)
  {
    
    try
      {
        init_rotator_tag(); 
      }
      catch (e)
      {
       
      }
  }
  div = document.getElementById(topside.div);
  topside.slide_num = -1;
  div.style.position = "relative";
  div.style.width = topside.width;
  div.style.height = topside.height;
  //div.style.border = "1px solid black";
  div.style.overflow = "hidden";
  div.style.padding = "0px";
  
  
  //add the queue and the focus divs.
  //the queue is the slide in transit
  //the focus is the slide in focus.
  var new_inner_html = "<div id=\"" + topside.div + "_bg\"></div>\n\r";
  new_inner_html += "<div id=\"" + topside.div + "_fg\"></div>\n\r";
  new_inner_html += "<div id=\"" + topside.div + "_navigation\"></div>\n\r";
  new_inner_html += "<div id=\"" + topside.div + "_textbox\"></div>\n\r";
  new_inner_html += "<div id=\"" + topside.div + "_text\"></div>\n\r";
  div.innerHTML = new_inner_html;
  
  //set up the foreground and background div styles
  var div_fg = document.getElementById( topside.div + "_fg" );
  var div_bg = document.getElementById( topside.div + "_bg" );
  var div_navigation = document.getElementById( topside.div + "_navigation" );
  var div_textbox = document.getElementById( topside.div + "_textbox" );
  var div_text = document.getElementById( topside.div + "_text" );
  
  div_fg.style.display = "none";
  div_bg.style.display = "none";
  div_fg.style.position = "absolute";
  div_bg.style.position = "absolute";
  div_navigation.style.position = "absolute";
  div_navigation.style.top = (parseInt(topside.height) - 40) + "px";
  
  div_textbox.style.position = "absolute";
  div_text.style.position = "absolute";
  div_text.style.left = -(parseInt(topside.width)) + "px";
  div_textbox.style.left = -(parseInt(topside.width)) + "px";
  div_text.style.top = "0px";
  div_textbox.style.top = "0px";
  div_textbox.style.opacity = topside.textbox_opacity;
  div_textbox.style.filter = "alpha(opacity=" + (topside.textbox_opacity*100) + ")";
  //div_textbox.style.background = "#000000";
  div_textbox.style.width = topside.width;
  div_text.style.width = topside.width;
  div_textbox.style.height = "100px";
  div_text.style.padding = topside.textbox_padding;
  div_text.style.color = topside.textbox_color;
  div_textbox.style.margin = "0px";
  div_text.style.margin = "0px";
  

  //calculate some misc things
  topside.slide_num = -1;
  topside.num_slides = topside.slide.length;
  topside.paused = false;
  
  //start animating the rotator
  load_next_slide_top();
}