onload = init;
var g_page_name;
function init(){
  
  setExtendedDescription(document.getElementById('services_content'));
  setExtendedDescription(document.getElementById('team'));
  setExtendedDescription(document.getElementById('main_news'));
  setImages();
  if(!document.getElementById('gallery_content')) createGallery();
  adminClicks();
  if(document.getElementById('login_content')){
    var el = document.getElementById('retrieve_submit');
    
    var new_inp = document.createElement("span")
    new_inp.className = "link";
    new_inp.id = "retrieve_link";
    new_inp.appendChild(document.createTextNode("retrieve"));
    el.parentNode.replaceChild(new_inp,el);
    
    
    document.getElementById('login_button').onclick = loginCheck;
    document.getElementById('un').onkeyup = document.getElementById('pw2').onkeyup = loginKeys;
    document.getElementById('forgotpw').onclick = forgotLink;
    document.getElementById('retrieve_link').onclick = retrievePW;
  }
  if(document.getElementById('main_shield')){
    document.getElementById('main_shield').onclick = hideShield;
    if(String(location.search) != ""){
      document.getElementById('main_shield').style.display = "none";
      /*document.getElementById('main_news').style.display = "block";*/
    } else{
      document.getElementById('main_news').style.display = "none";
      document.getElementById('main_body').style.minHeight = "290px";
    }
  }
  
  g_page_name = "home";
  if(document.getElementById('services_content')){
    g_page_name = "services";
    document.getElementById('service_link').style.border = "1px solid white";
  }
  else if(document.getElementById('about_content')){
    g_page_name = "about";
    document.getElementById('about_link').style.border = "1px solid white";
  }
  else if(document.getElementById('contact_content')){
    g_page_name = "contact";
    document.getElementById('contact_link').style.border = "1px solid white";
  }
  else if(document.getElementById('main_content')){
    setFlash();
    document.getElementById('home_link').style.border = "1px solid white";
  }
  else if(document.getElementById('login_content')){
     document.getElementById('login_link').style.border = "1px solid white";
  }
  getGalleryVars.data = {'pic':'','t':g_page_name};
  loadGallery();
  document.getElementById('blank_white').style.display = "none";
}
function hideShield(){
  document.getElementById('main_shield').style.display = "none";
  document.getElementById('main_news').style.display = "block";
  document.getElementById('main_body').style.minHeight = "300px";
}
function setFlash(){
  var par_el = document.getElementById('main_shield');
  if(document.getElementById('blank_white').offsetWidth > 800){
    var div = document.createElement("div");
    div.id = "flash_container";
    //div.style.position = "absolute";
    par_el.style.left = "-48px";
    par_el.style.top = "-200px";
    par_el.appendChild(div);
    swfobject.embedSWF("img/Donald_Rigging_Sheild_Flash_001.swf", "flash_container", "850", "638", "9.0.0","","",{"wmode":"transparent"},{"styleclass":"flash_class"});
    //var el = document.getElementById('shield_click');
    //var el2 = document.getElementById('flash_container');
    //el.style.background = "red";
    //el.style.background = "";
    //par_el.removeChild(el);
   // par_el.removeChild(el2);
    //par_el.appendChild(el2);
    //par_el.appendChild(el);
    //document.getElementById('flash_container').onclick = hideShield;
    //document.getElementById('flash_container').style.cursor = "pointer";
    var div = document.createElement("div");
    div.className = "trans_white";
    par_el.appendChild(div);
  } else {
    var new_image = document.createElement("img");
    new_image.src = "img/metal.png";
    new_image.style.position = "relative";
    new_image.style.top = "95px";
    new_image.style.left = "-28px";
    
    par_el.appendChild(new_image);
    
  }
}
function setExtendedDescription(sc){
  if(sc){
    for(var a = 0;a < sc.childNodes.length;a++){
      if(String(sc.childNodes[a].nodeName).toUpperCase() == "DIV"){
        for(var b = 0;b < sc.childNodes[a].childNodes.length;b++){
          if(sc.childNodes[a].childNodes[b].className == "extended_description"){
            for(var c = 0;c < sc.childNodes[a].childNodes[b].childNodes.length;c++){
              if(sc.childNodes[a].childNodes[b].childNodes[c].className == "extended_description_ctrl"){
                sc.childNodes[a].childNodes[b].childNodes[c].onclick = toggleExtendedDescription;
              }
            }
          }
        }
      }
    }
  }
}
function toggleExtendedDescription(){
  var use_el = null;
  for(var a = 0;a < this.parentNode.childNodes.length;a++){
    if(this.parentNode.childNodes[a].className == "extended_description_content"){
      use_el = this.parentNode.childNodes[a];
      break;
    }
  }
  if(use_el.style.display == "block"){
    use_el.style.display = "none";
    this.childNodes[0].nodeValue = "[+] More...";
  }
  else{
    use_el.style.display = "block";
    this.childNodes[0].nodeValue = "[-] Less";
  }
}

var g_thumb_imgs = [];
var g_gallery_main_img = null;
var g_gallery_main_img_title = null;
/*onkeyup = function(){
  alert(document.getElementById("outer").offsetWidth)
}
*/
var PAGE_MIN_WIDTH = 800;
var PAGE_MIN_HEIGHT = 600;
var g_galImageDim = {'w':0,'h':0};
function createGallery(){
  /*
  var new_div = document.createElement("div");
  new_div.className = "main_holder";
  var use_el = null;
  for(var a = 0;a < document.body.childNodes.length;a++){
    if(String(document.body.childNodes[a].nodeName).toUpperCase() == "TABLE"){
      var temp = document.body.removeChild(document.body.childNodes[a]);
      new_div.appendChild(temp);
      break;
    }
  }
  
  document.body.appendChild(new_div);
  */
  
  var gal_div = document.createElement("div");
  gal_div.id = "gallery";
  // TEST gal_div.style.top = document.getElementById('main_body').offsetTop + "px";
  // TEST gal_div.style.height = document.getElementById('main_body').offsetHeight + "px"
  
  // TEST document.getElementById('main_page').appendChild(gal_div);
  //dimensions
  var h = document.getElementById("outer").offsetHeight;
  if(h < PAGE_MIN_HEIGHT) h = PAGE_MIN_HEIGHT;
  var w = document.getElementById("outer").offsetWidth;
  if(w < PAGE_MIN_WIDTH) w = PAGE_MIN_WIDTH;
  //gal_div.style.width = w + "px";
  //gal_div.style.height = h + "px";
  document.body.appendChild(gal_div);
  
  var new_div = document.createElement("div");
  new_div.id = "gallery_back";
  //new_div.onclick = galleryToggle;
  gal_div.appendChild(new_div);
  
  /*var new_div = document.createElement("div");
  new_div.id='image_search_div';
  new_div.appendChild(document.createTextNode("Search: "));
  var new_inp = document.createElement("input");
  new_inp.id = "image_search";
  new_inp.onkeyup = function(e){
    //if(!e) var e = window.event;
    //if(e.keyCode == 13) doImageSearch();
    doImageSearch();
  }
  new_div.appendChild(new_inp);*/
  /*
  new_div.appendChild(document.createTextNode(" "));
  var new_inp = document.createElement("input");
  new_inp.id = "image_search_button";
  new_inp.value = "search";
  new_inp.type = "button";
  new_inp.onclick = doImageSearch;
  new_div.appendChild(new_inp);
  */
  //gal_div.appendChild(new_div);
  
  var pics_div = document.createElement("div");
  pics_div.className = "gallery_pics";
  
  var main_img_div = document.createElement("div");
  main_img_div.className = "gallery_main_image_div";
  gal_div.appendChild(main_img_div);
  
  var main_img = document.createElement("img");
  main_img.className = "gallery_main_image";
  main_img.src = "img/no_img.png";
  main_img.unselectable = "on";
  main_img.onmousedown = startMoveMainImg;
  g_gallery_main_img = main_img;
  main_img_div.appendChild(main_img);
  
  var new_span = document.createElement("div");
  new_span.className = "search_only_div";
  new_div.appendChild(new_span);
  new_span.appendChild(document.createTextNode("Search: "));
  var new_inp = document.createElement("input");
  new_inp.id = "image_search";
  new_inp.onkeyup = function(e){
    //if(!e) var e = window.event;
    //if(e.keyCode == 13) doImageSearch();
    doImageSearch();
  }
  new_span.appendChild(new_inp);
  gal_div.appendChild(new_span);
  
  var main_img_div_title = document.createElement("div");
  main_img_div_title.id = "gallery_main_image_title";
  gal_div.appendChild(main_img_div_title);
  main_img_div_title.appendChild(document.createTextNode("Pic Title"));
  g_gallery_main_img_title = main_img_div_title;
  
  var thumbs_div = document.createElement("div");
  thumbs_div.id = "thumbs_div";
  gal_div.appendChild(thumbs_div);
  gal_div.style.display = "block";
  var w = gal_div.offsetWidth;
  gal_div.style.display = "none";
  if(w < PAGE_MIN_WIDTH) w = PAGE_MIN_WIDTH;
  var left = 0;
  left = w - PAGE_MIN_WIDTH;
  left = (left <= 0) ? 0 : left / 2;
  thumbs_div.style.left = left + "px";
  var t = (document.body.offsetHeight < PAGE_MIN_HEIGHT) ? PAGE_MIN_HEIGHT : document.body.offsetHeight;
  //var t = t - 280;
  //main_img_div_title.style.top = (t - 50) + "px"; 
  //thumbs_div.style.top = t + "px";
  var w = (document.body.offsetWidth < PAGE_MIN_WIDTH) ? PAGE_MIN_WIDTH : document.body.offsetWidth;
  
  g_galImageDim = {'w':w,'h':(t - 310)};
  g_galImageDim = {'w':800,'h':800};
  //g_galImageDim = {'w':300,'h':300};
  main_img_div.style.height = g_galImageDim.h  + "px";
  main_img_div.style.width = g_galImageDim.w + "px";
  var left_pos = (w - g_galImageDim.w) / 2;
  if(left_pos < 0) left_pos = 0;
  main_img_div.style.left = left_pos + "px";

  var gal_left_button = document.createElement("img");
  gal_left_button.src = "img/left_arrow.png";
  gal_left_button.id = "gal_left_button";
  //gal_div.appendChild(gal_left_button);
  thumbs_div.appendChild(gal_left_button);
  /*gal_left_button.appendChild(document.createTextNode("Back"));*/
  gal_left_button.onclick = prevGal;
  
  var gal_right_button = document.createElement("img");
  gal_right_button.src = "img/right_arrow.png";
  gal_right_button.id = "gal_right_button";
  //gal_div.appendChild(gal_right_button);
  thumbs_div.appendChild(gal_right_button);
  /*gal_right_button.appendChild(document.createTextNode("Next"));*/
  gal_right_button.onclick = nextGal;
  
  
  var new_div = document.createElement("div");
  new_div.id='image_search_div';
  
  var img = document.createElement("img");
  img.className = "zoom";
  img.id = "zoom_in";
  img.src = "img/zoom_in_btn.png";
  new_div.appendChild(img);
  img.onclick = zoomPic;
  
  var img = document.createElement("img");
  img.className = "zoom";
  img.id = "zoom_out";
  img.src = "img/zoom_out_btn.png";
  new_div.appendChild(img);
  img.onclick = zoomPic;
  
  var img = document.createElement("img");
  img.className = "exit_left";
  img.src = "img/exit_left.png";
  new_div.appendChild(img);
  img.onclick = galleryToggle;
  
  var img = document.createElement("img");
  img.className = "exit_right";
  img.src = "img/exit_right.png";
  new_div.appendChild(img);
  img.onclick = galleryToggle;
  
  thumbs_div.appendChild(new_div);
  
  for(var a = 0;a < 5;a++){
    var thumb_holder = document.createElement("div");
    thumb_holder.className = "thumb_holder";
    thumb_holder.style.left = (65 + (((800 / (800 / (MAX_THUMB_SIZE + 15))) * a))) + "px";
    thumbs_div.appendChild(thumb_holder);
    
    var thumb_holder_2 = document.createElement("div");
    thumb_holder_2.className = "thumb_holder_2";
    thumb_holder.appendChild(thumb_holder_2);
    
    var thumb1 = document.createElement("img");
    thumb1.className = "gallery_thumbnail";
    thumb1.id = "gallery_thumbnail_" + a;
    thumb1.src = "img/no_img.png";
    thumb_holder_2.appendChild(thumb1);
    
    thumb1.onclick = setGalleryImageClick;
    g_thumb_imgs[a] = thumb1;
  }
  
  var new_span = document.createElement("span");
  new_span.className = "nav_link";
  new_span.appendChild(document.createTextNode("GALLERY "));
  document.getElementById('nav').replaceChild(new_span, document.getElementById('gallery_link'));
  new_span.onclick = galleryToggle;
  galleryToggle();
  var hr = document.createElement("div");
  hr.className = "hr_class";
  main_img_div_title.appendChild(hr);
  hr.style.left = thumbs_div.style.left;
  hr.style.width = thumbs_div.offsetWidth + "px";
  galleryToggle();
}
var g_drag_main_img = false;
var g_img_move_start = {'x':0,'y':0};
function startMoveMainImg(e){
  if(!e) var e = window.event;
  //g_main_img_def_pos
  g_img_move_start = {'x':e.clientX,'y':e.clientY};
  g_drag_main_img = true;
  return false;
}
var g_main_img_offset = {'x':0,'y':0};
function doDragImage(e){
  if(g_drag_main_img){
    if(!e) var e = window.event;
    g_main_img_offset = {'x':g_main_img_def_pos.x + (e.clientX - g_img_move_start.x),'y':g_main_img_def_pos.y + (e.clientY - g_img_move_start.y)};
    g_gallery_main_img.style.top = g_main_img_offset.y + "px";
    g_gallery_main_img.style.left = g_main_img_offset.x + "px";
  }
}
document.onmousemove = doDragImage;
document.onmouseup = function(){
  g_drag_main_img = false;
  g_main_img_def_pos = {'x':g_main_img_offset.x,'y':g_main_img_offset.y};
}
var g_scroll_top = {'g':0,'p':0};
function galleryToggle(){
  var gal = document.getElementById('gallery');
  if(gal){
    if(gal.style.display == "block"){
      //g_scroll_top.g = (window.pageYOffset) ? window.pageYOffset : ((document.body.scrollTop) ? document.body.scrollTop : 0);
       
      gal.style.display = "none";
      document.getElementById('outer').style.display = "";
      window.scrollTo(0,g_scroll_top.p);
    }
    else{
      g_scroll_top.p = (window.pageYOffset) ? window.pageYOffset : ((document.body.scrollTop) ? document.body.scrollTop : 0);
      document.getElementById('outer').style.display = "none";
      gal.style.display = "block";
      window.scrollTo(0,g_scroll_top.g);
    }
  }
}
function adminClicks(){
  
}
function loginKeys(e){
  if(!e) var e = window.event;
  if(e.keyCode == 13){
    loginCheck();
  }
}
function loginCheck(){
  if(String(document.getElementById('un').value).trim() == ""){
    document.getElementById('un').focus();
  }
  else if(String(document.getElementById('pw2').value).trim() == ""){
    document.getElementById('pw2').focus();
  }
  else{
    document.getElementById('pw').value = hex_md5(String(document.getElementById('pw2').value).trim());
    document.getElementById('login_form').submit();
  }
}
function forgotLink(){
  document.getElementById('forgot_link').style.visibility = "hidden";
  document.getElementById('forgotpw_form').style.visibility = "inherit";
}

var fpwVars = null;
function retrievePW(){
  fpwVars = new xmlHTTP();
  fpwVars.doLoad = loadFPW;
  fpwVars.onstatus = statusFPW;
  if(String(document.getElementById('email').value).trim() == ""){
    alert("Please enter your email address.");
    return;
  }
  document.getElementById('forgotpw_form').style.visibility = "hidden";
  document.getElementById('forgotpw_status').childNodes[0].nodeValue = "working...";
  
  fpwVars.data.email = String(document.getElementById('email').value).trim();
  fpwVars.data.xml = "true";
  fpwVars.sendAndLoad("func/forgotPW.php","POST");
}
function loadFPW(){
  if(fpwVars.rvars.error == 0){
    document.getElementById('forgotpw_form').style.visibility = "inherit";
    document.getElementById('forgotpw_status').childNodes[0].nodeValue = "An email has been sent to reset your password.";
  }
  else if(fpwVars.rvars.error == 1){
    document.getElementById('forgotpw_form').style.visibility = "inherit";
    document.getElementById('forgotpw_status').childNodes[0].nodeValue = "The email address above is not in our records.";
  }
  else{
    document.getElementById('forgotpw_form').style.visibility = "inherit";
    document.getElementById('forgotpw_status').childNodes[0].nodeValue = "There was an error sending the email to reset your password.";
  }
}
function statusFPW(status){
  if(status != 200 && status != 0){
    document.getElementById('forgotpw_form').style.visibility = "inherit";
    document.getElementById('forgotpw_status').childNodes[0].nodeValue = "There was an error sending the email to reset your password.";
  }
}
function setImages(){
  var images = document.getElementsByTagName('img');
  for(var a = 0;a < images.length;a++){
    if(images[a].className == 'article_img'){
      images[a].style.cursor = "pointer";
      images[a].onclick = loadGalleryClick;
      thumbSize(images[a]);
    }
  }
}

var g_zoom = 0;
function zoomPic(){
  var id = this.id.split("_")[1];
  if(id == "out") g_zoom--;
  else g_zoom++;
  setGalleryImage(g_gallery_main_img);
}
var MAX_IMG_SIZE = 350;
var g_temp_image = new Image();
function setGalleryImageClick(){
  var id = Number(this.id.split("_")[2]);
  g_zoom = 0;
  g_gallery_main_img_title.childNodes[0].nodeValue = g_gallery[id + g_gallery_pos].t;
  setGalleryImage(this);
}

function setGalleryImage(img){
  g_galImageDim.w = 400;
  g_galImageDim.h = 400;
  var temp_img = new Image();
  temp_img.src = img.src;
  var h = temp_img.height;
  var w = temp_img.width;
  if(h > w){
    if(h > g_galImageDim.h){
      var w = ((g_galImageDim.h / h) * w);
      var h = g_galImageDim.h;
    }
  }
  else{
    if(w > g_galImageDim.w){
      var h = ((g_galImageDim.w / w) * h);
      var w = g_galImageDim.w;
    }
  }
  h = h + (((h / w) * 20) * (g_zoom));
  w = w + (20 * (g_zoom));
  
  
  if(w <= 0){ w = 10; g_zoom++;}
  if(h <= 0){ h = 10; g_zoom++;}
      
  g_gallery_main_img.style.height = h + "px";
  g_gallery_main_img.style.width = w + "px";
  g_gallery_main_img.height = h;
  g_gallery_main_img.width = w;
  g_gallery_main_img.src = temp_img.src;
  var top = (g_galImageDim.h - h) / 2;
  if(top < 0) top = 0;
  g_gallery_main_img.style.top = top + "px";
  g_gallery_main_img.style.left = "0px";
  g_main_img_def_pos = {'x':0,'y':top};
  
}
var g_main_img_def_pos = {'x':0,'y':0};
function loadGalleryClick(){
  galleryToggle();
  setGalleryImage(this);
  var fname = String(this.src).split("/");
  fname = fname[fname.length -1];
  var pos = 0;
  for(var a = 0; a < g_gallery.length;a++){
    if(fname == g_gallery[a].f){ pos = a; break}
  }
  var pipeRX = /\s/gi;
  g_search_pat = new RegExp("(" + (g_gallery[pos].t + " " + g_gallery[pos].tg).replace(pipeRX,"|") + ")","gi");
  g_gallery.sort(searchSort);
  g_gallery_pos = 0;
  setGalleryThumbs();
  //getGalleryVars.data = {'pic':this.src,'t':''};
  //loadGallery();
}
var getGalleryVars = new xmlHTTP();
function loadGallery(){
  getGalleryVars.sendAndLoad("func/getGallery.php","POST");
}
getGalleryVars.doLoad = function(){
  g_gallery_pos = 0;
  setGalleryThumbs();
  g_gallery = getGalleryVars.rvars;
  if(g_gallery.length > 0){
    var new_img = new Image();
    new_img.src = "pics/"+g_gallery[0].f;
    setGalleryImage(new_img);
  }
  g_gallery_main_img_title.childNodes[0].nodeValue = g_gallery[0].t;
}
var g_gallery_pos = 0;
var g_gallery = [];
function setGalleryThumbs(){
  for(var a = 0;(a < 5);a++){
    var src =  ((a + g_gallery_pos) < getGalleryVars.rvars.length) ? "pics/"+getGalleryVars.rvars[a + g_gallery_pos].f : "img/no_img.png";
    var vis = ((a + g_gallery_pos) < getGalleryVars.rvars.length) ? "inherit" : "hidden";
    g_thumb_imgs[a].style.visibility = vis;
    g_thumb_imgs[a].style.height = 0;
    g_thumb_imgs[a].style.width = 0;
    g_thumb_imgs[a].height = 0;
    g_thumb_imgs[a].width = 0;
    g_thumb_imgs[a].src = src;
    g_thumb_imgs[a].onload = thumbLoad;
  }
}
function nextGal(){
  g_gallery_pos += 5;
  if(g_gallery_pos >= g_gallery.length) g_gallery_pos -= 5;
  setGalleryThumbs();
}
function prevGal(){
  g_gallery_pos -= 5;
  if(g_gallery_pos < 0) g_gallery_pos = 0;
  setGalleryThumbs();
}
var MAX_THUMB_SIZE = 120;

function thumbLoad(){
  thumbSize(this);
}
function thumbSize(img){
  var new_img = new Image();
  new_img.src = img.src;
  var h = new_img.height;
  var w = new_img.width;
  if(h > w){
    if(h > MAX_THUMB_SIZE){
      var w = (MAX_IMG_SIZE / h) * w;
      var h = MAX_THUMB_SIZE;
    }
  }
  else{
    if(w > MAX_THUMB_SIZE){
      var h = (MAX_THUMB_SIZE / w) * h;
      var w = MAX_THUMB_SIZE;
    }
  }
  //img.parentNode.style.height = (h + 4) + "px";
  //img.parentNode.style.width = (w + 4) + "px";
  img.height = h;
  img.width = w;
  var top = (MAX_THUMB_SIZE - h) / 2;
  if(top < 0) top = 0;
}
function thumbLoad(){
  var new_img = new Image();
  new_img.src = this.src;
  var h = new_img.height;
  var w = new_img.width;
  var wh = (w / h) * 81;
  var hw = (h / w) * 116;
  var nw = 0; var nh = 0; var top = 0; var left = 0;
  if(wh >= 116){
    left = (wh - 116 > 0) ? (wh - 116) / 2 : 0;
    nw = wh;
    nh = 81;
  }
  else{
    top = (hw - 81 > 0) ? (hw - 81) / 2 : 0;
    nw = 116;
    nh = hw;
  }
  this.height = nh;
  this.style.height = nh + "px";
  this.width = nw;
  this.style.width = nw + "px";
  this.style.top = -top + "px";
  this.style.left = -left + "px";
  
}

function doImageSearch(){
  var val = String(document.getElementById('image_search').value).trim();
  if(val == "") return;
  var pipeRX = /\s/gi;
  g_search_pat = new RegExp("(" + val.replace(pipeRX,"|") + ")","gi");
  g_gallery.sort(searchSort);
  g_gallery_pos = 0;
  setGalleryThumbs();
}
var g_search_pat = new RegExp("","");
function searchSort(b,a){
  if(a.tg.search(g_search_pat,"gi") == b.tg.search(g_search_pat,"gi")){
    return a.t.search(g_search_pat,"gi") > b.t.search(g_search_pat,"gi");
  }
  return a.tg.search(g_search_pat,"gi") > b.tg.search(g_search_pat,"gi");
}

function searchSort(b,a){
  var atM = a.t.match(g_search_pat);
  var btM = b.t.match(g_search_pat);
  var atgM = a.tg.match(g_search_pat);
  var btgM = b.tg.match(g_search_pat);
  if(atM == null) atM = [];
  if(btM == null) btM = [];
  if(atgM == null) atgM = [];
  if(btgM == null) btgM = [];
  
  if(atM.length == btM.length) {return atgM.length > btgM.length;}
  return atM.length > btM.length;
}
String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g,"") }
