// Footer Auto-Stretch
function getWindowHeight() {
  var windowHeight = 0;
  if (typeof(window.innerHeight) == 'number') {
    windowHeight = window.innerHeight;
  }
  else {
    if (document.documentElement && document.documentElement.clientHeight) {
      windowHeight = document.documentElement.clientHeight;
    }
    else {
      if (document.body && document.body.clientHeight) {
        windowHeight = document.body.clientHeight;
      }
    }
  }
  return windowHeight;
}

function setFooter() {
  if (document.getElementById) {
    var windowHeight = getWindowHeight();
    
    if (windowHeight > 0) {
      var contentHeight = document.getElementById('content').offsetHeight;
      var footerElement = document.getElementById('footer');
      var footerHeight  = footerElement.offsetHeight;
     
      if (windowHeight - (contentHeight + footerHeight) >= 0) {
        footerElement.style.position = 'absolute';
        footerElement.style.top = (windowHeight - footerHeight) + 'px';
      }
      
      else {
        footerElement.style.position = 'static';
      }
    }
  }
}

window.onload = function() {
  setFooter();
}

window.onresize = function() {
  setFooter();
}


/* EMAIL ENCRYPTION SCRIPT */

// This script is (c) copyright 2008 by Dan Appleman under the GNU General Public License (http://www.gnu.org/licenses/gpl.html)
// This script is modified from an original script by Jim Tucek For more information, visit www.danappleman.com

var decryption_cache = new Array();

function decrypt_string(crypted_string,n,decryption_key,just_email_address) {
 var cache_index = "'"+crypted_string+","+just_email_address+"'";

 if(decryption_cache[cache_index])     // If this string has already been decrypted, just
  return decryption_cache[cache_index];    // return the cached version.

 if(addresses[crypted_string])      // Is crypted_string an index into the addresses array
  var crypted_string = addresses[crypted_string];   // or an actual string of numbers?

 if(!crypted_string.length)      // Make sure the string is actually a string
  return "Error, not a valid index.";

 if(n == 0 || decryption_key == 0) {     // If the decryption key and n are not passed to the
  var numbers = crypted_string.split(' ');   // function, assume they are stored as the first two
  n = numbers[0]; decryption_key = numbers[1];   // numbers in crypted string.
  numbers[0] = ""; numbers[1] = "";    // Remove them from the crypted string and continue
  crypted_string = numbers.join(" ").substr(2);
 }

 var decrypted_string = '';
 var crypted_characters = crypted_string.split(' ');

 for(var i in crypted_characters) {
  var current_character = crypted_characters[i];
  var decrypted_character = exponentialModulo(current_character,n,decryption_key);
  if(just_email_address && i < 7)    // Skip 'mailto:' part
   continue;
  if(just_email_address && decrypted_character == 63) // Stop at '?subject=....'
   break;
  decrypted_string += String.fromCharCode(decrypted_character);
 }
  decryption_cache[cache_index] = decrypted_string;   // Cache this string for any future calls

 return decrypted_string;
}

function email_contact(crypted_string,n,decryption_key) {
 if(!n || !decryption_key) { n = 0; decryption_key = 0; }
 if(!crypted_string) crypted_string = 0;

 var decrypted_string = decrypt_string(crypted_string,n,decryption_key,false);
 parent.location = decrypted_string;
}

function decrypt_and_echo(crypted_string,n,decryption_key) {
 if(!n || !decryption_key) { n = 0; decryption_key = 0; }
 if(!crypted_string) crypted_string = 0;

 var decrypted_string = decrypt_string(crypted_string,n,decryption_key,true);
 document.write(decrypted_string);
 return true;
}

// Finds base^exponent % y for large values of (base^exponent)
function exponentialModulo(base,exponent,y) {
 if (y % 2 == 0) {
  answer = 1;
  for(var i = 1; i <= y/2; i++) {
   temp = (base*base) % exponent;
   answer = (temp*answer) % exponent;
  }
 } else {
  answer = base;
  for(var i = 1; i <= y/2; i++) {
   temp = (base*base) % exponent;
   answer = (temp*answer) % exponent;
  }
 }
 return answer;
}


 if(!addresses) var addresses = new Array();
addresses.push("1837 1107 1781 1521 315 1367 1283 903 390 1781 1521 315 1367 1290 672 1521 1012 1549 1581 922 903 1586 1676 672 315 1549 315 1283 1521 1367 1812 363 903 1781 215 1676 1586 648 640 1581 363 1283 1030 305 1521 1012 1549 1581 922 903 1586 1676 1539 305 315 1549 315 1283 1521 1367 1539 1533 1581 1012 1581 922 1521 1367 1539 1410 1012 852 1586 315 922 693");


/* E-mail Array */

if(!addresses) var addresses = new Array();
addresses.push("1837 1107 1781 1521 315 1367 1283 903 390 1781 1521 315 1367 1290 672 1521 1012 1549 1581 922 903 1586 1676 672 315 1549 315 1283 1521 1367 1812 363 903 1781 215 1676 1586 648 640 1581 363 1283 1030 305 1521 1012 1549 1581 922 903 1586 1676 1539 305 315 1549 315 1283 1521 1367 1539 1533 1581 1012 1581 922 1521 1367 1539 1410 1012 852 1586 315 922 693");