// ---------------------------------------------------------------------------------------------
//  All function for TEXT-PAGE
// ---------------------------------------------------------------------------------------------

// User defined Vars
// Text version
   parentBoxId  = "FrameScrollText";   // ID of outer box (div) with scollbuttons
   contentBoxId = "ContentScrollText";  // ID of inner box (div) with content to be scolled
   // Image version
   parentBoxId2  = "FrameScrollImages";   // ID of outer box (div) with scollbuttons
   contentBoxId2 = "ContentScrollImages";  // ID of inner box (div) with content to be scolled

// ---------------------------------------------------------------------------------------------
// DONT CHANGE ANYTHING BELOW !! 


/****************************************************************************************/
//  Scolling functions
/****************************************************************************************/

// Set vars
yPos = 0;
yPos2 = 0;
run = 0;
state = 0;

// Initialize elements on load
window.onload = function() {
  if(!document.getElementById(parentBoxId) || !document.getElementById(contentBoxId)){return false;}
  outerBox = document.getElementById(parentBoxId);
  innerBox = document.getElementById(contentBoxId);
  maxScollHeightText = -(innerBox.offsetHeight - outerBox.offsetHeight + 20);  // End position for scrolling at bottom (top is always 0)
  outerBox2 = document.getElementById(parentBoxId2);
  innerBox2 = document.getElementById(contentBoxId2);
  maxScollHeightImg = -(innerBox2.offsetHeight - outerBox2.offsetHeight -3 );  // End position for scrolling at bottom (top is always 0)
}


/************************************************
// Main function for images
/***********************************************/
function goScrollImg(step) {  
  moveItImg(step);
  v = step;
  if ((run) && (yPos2 < 0)) setTimeout("goScrollImg(v)",1);
}

/************************************************
// This function moves images!
/***********************************************/
function moveItImg(step) {  
  // Out of range? Stop scrolling!
  if (yPos2 + step < maxScollHeightImg) {yPos2 = maxScollHeightImg; run = 0;}  // Bottom
  else if (yPos2 + step > 0) {yPos2 = 0; run = 0;}  // Top
  else { // No
	yPos2 += step;
	innerBox2.style.top = yPos2 + 'px'; // Here we go!
  }
}
  
  
/************************************************
// Main function for text
/***********************************************/
function goScroll(step) {  
  moveIt(step);
  v = step;  
  if ((run) && (yPos < 0)) setTimeout("goScroll(v)",1);
}

/************************************************
// This function moves text!
/***********************************************/
function moveIt(step) {
  // Out of range? Stop scrolling!
  if (yPos + step < maxScollHeightText) {yPos = maxScollHeightText;}  // Bottom
  else if (yPos + step > 0) {yPos = 0;}  // Top
  else { // No
	yPos += step;
	innerBox.style.top = yPos + 'px'; // Here we go!
  }
}

/************************************************
// Move fast back to top (up)
/***********************************************/
function gotoTop(speed) {
  moveIt(speed);
  s = speed;
  if ((run) && yPos < 0) setTimeout("gotoTop(s)",1);
  else {yPos = 0; innerBox.style.top = yPos + 'px';}
}


/****************************************************************************************/
// Set styles to change to big text version
/****************************************************************************************/
function read_and_print() {
  state = 1; // Needed for reload in reInit
  
  // Set CSS-class
  outerBox.id = 'ParentDivBig';
  innerBox.id = 'ContentDivBig';
  
  outerBox.offsetParent.style.position = "static";
  
  // Get available width and height (browser resolution)
  if(window.innerHeight){  // Firefox, Netscape, Opera, Konqueror, Safari
    yDiv = window.innerHeight;
    xDiv = (window.innerWidth-592)/2;
  } 
  else if(document.documentElement.clientHeight) { // IE im standardkonformen Modus
    yDiv = document.documentElement.clientHeight;
    xDiv = (document.documentElement.clientWidth-592)/2;
  } 
  else { // IE (Notlösung)
    yDiv = document.body.clientHeight;
    xDiv = (document.body.clientWidth-592)/2;
  }
  
  // Set new styles of parent div
  if(xDiv < 188){xDiv = 188;}  // Set position always back to left range
  if(yDiv < 509){yDiv = 509;}  // Set min-height for Box
  outerBox.style.left = xDiv + 'px';
  outerBox.style.height = yDiv + 'px';
  outerBox.style.clip = 'rect(0,780px,'+yDiv+'px,0)';
  
  // Set end position for scrolling to bottom (top is always 0)
  if(innerBox.offsetHeight > outerBox.offsetHeight){
    maxScollHeightText = -innerBox.offsetHeight + outerBox.offsetHeight - 20;
  }
  else {
    maxScollHeightText = 0;
  }
  
  if(yPos < maxScollHeightText) {yPos = maxScollHeightText;}  // Go to bottom
  
  moveIt(0);  // Set height back to alowed range
   
  // Set positions and new styles for buttons etc.
  document.getElementById('chaptermenu').style.display = 'none';  // Hide Chaptermenu
  document.getElementById('close').style.display = 'block';
  document.getElementById('scrolltop').style.left = '581px';
  document.getElementById('scrolltop').style.top = '13px';
  document.getElementById('scrollbottom').style.left = '581px';
  document.getElementById('scrollbottom').style.top = yDiv - document.getElementById('scrollbottom').offsetHeight + 'px';
  document.getElementById('print').style.display = 'block';
  document.getElementById('print').style.top = yDiv - document.getElementById('close').offsetHeight -6 + 'px';
}

/************************************************
// Use Arrowkeys to scoll in both text versions
/***********************************************/
document.onkeypress = function ScrollByKeys(keyAction){
  if (!keyAction)
    keyAction = window.event;
    if(keyAction.keyCode == 38) {goScroll(10);}
    if(keyAction.keyCode == 40) {goScroll(-10);}
}// http://adomas.org/javascript-mouse-wheel/


/************************************************
// Reset position of big version (on resize)
/***********************************************/
window.onresize = function() {
  if(state == 1) {read_and_print();}
}


/****************************************************************************************/
//  Show / Hide elements
/****************************************************************************************/
function showhide(id, opac){
  // Get element
  element = document.getElementById(id);
  // Set opacity
  if(element.style.filter != undefined){element.style.filter = 'Alpha(opacity='+opac+')';}  // IE 
  else if(element.style.MozOpacity != undefined){element.style.MozOpacity = (opac/100);}  // Mozilla etc
  // Show or hide element
  if(opac){element.style.display = 'block';}
  else {element.style.display = 'none';}
  //if(element.style.display == 'none' || !element.style.display){element.style.display = 'block';}
  //else {element.style.display = 'none';}
}

