// overlay.js
// attached to every form to indicate a 'holding' page
// 21/01/2008 09:31:22 - ROBW - Change loading mechanism to allow for IE7's inability to show animations onsubmit()

var Toverlay = {
  "id" 		: "overlay",		// OVERLAY DIV
  "msg_id" 	: "overlay_msg",
  "msg_width"	: "300",
  "msg_height"	: "140",

  "init" : function()
  { if(document.forms.length > 0)
    { // IE6 BACKGROUND FLICKER
      try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {}

          // OVERLAY DIV
          Toverlay.overlay = document.createElement("iframe");
          Toverlay.overlay.src = location.protocol+"//"+document.domain+"/booking/output/blank.html";
          Toverlay.overlay.setAttribute("id",Toverlay.id);          
      /*
      var tmp = new Date();
      var suffix = tmp.getTime();
      +"?"+suffix
      */

      // PRELOAD IMAGE
      var img = new Image();
      img.loaded = false;
      img.src = location.protocol+"//"+document.domain+overlay_content.img;
      img.onload = function() {
        this.loaded = true;
        return true;
      }
      
      
	  // APPEND TO DOM
          
          // MOVED to below
          //body.appendChild(overlay);

  
 	  // ADD TRANSPARENT CLASS
 	  //document.getElementById('cnsr_container').className = "transparent";
 	  
  	  // BUILD MSG WINDOW
          var msg = document.createElement("div");
          msg.setAttribute("id",Toverlay.msg_id);
          
          txt = "<h1>"+overlay_content.title+"</h1>";
          txt += "<p>"+overlay_content.msg+"</p>";
          //if(img.loaded) {
            txt += "<img src='"+img.src+"' alt='loading..' border='0' /><br/>";
            //txt += img.src+"<br/>";
          //}
          txt += overlay_content.quit;
          
          msg.innerHTML = txt;
          
          /*
          replace = document.createElement('img');
          replace.src = location.protocol+"//"+document.domain+'/booking/images/yachts200x200.jpg';
          msg.appendChild(replace);
          */
  var overlay_size = page_height(); 
  //alert(overlay_size);
 var body = document.getElementsByTagName('body')[0];

	  //console.log(msg);
    //msg.innerHTML += "<img src='"+img.src+"' alt='loading..' border='0' /><br/>";
    msg.style.display = 'none';
    //msg.id="msg_hidden";
	  // ADD MSG WINDOW TO TREE
          body.appendChild(msg);
          Toverlay.msg_real = msg;
          if (document.forms['qbform']) {
      	document.forms['qbform'].onsubmit = function()
        {   
          var overlay_size = page_height();        
      	  // POSITION INNER WINDOW  
      	  offset = scrolling_offset();
      	  inner_width = inner_width();
      	  size = ((inner_width[1] > overlay_size[1]) ? overlay_size : inner_width);
      	  Toverlay.msg_real.style['left'] = (Math.round((size[0]-Toverlay.msg_width)/2)+offset[0])+'px';
      	  Toverlay.msg_real.style['top'] = (Math.round((size[1]-Toverlay.msg_height)/2)+offset[1])+'px';       	
          // DEFINE SIZE
              // CHANGE THE APLHA
      	  set_style_by_id('sea','filter',"alpha(opacity=40)");
      	  set_style_by_id('sea','opacity','0.4');            
          // SIZE THE OVERLAY DIV
          Toverlay.overlay.style['width'] = overlay_size[0]+'px';
          Toverlay.overlay.style['height'] = overlay_size[1]+'px';          
          document.getElementsByTagName("body")[0].appendChild(Toverlay.overlay);           
          document.getElementById("flashapp").style.display="none";
          setTimeout(showmsg, 200);
          function showmsg() {
          Toverlay.msg_real.style.display='block';
          //document.getElementById(Toverlay.msg_id).style.position='absolute';
        }          
        }
      }
               
	}
      }

}

// SET THE STYLE OF ELEMENT
function set_style_by_id(id,p,v)
{ var node = document.getElementById(id);
  if(node) node.style[p] = v;
}

// PAGE HEIGHT
// THE HEIGHT OF THE TOTAL PAGE (USUALLY THE BODY ELEMENT).
function page_height()
{ var x,y;
  var test1 = document.body.scrollHeight;
  var test2 = document.body.offsetHeight
  // ALL BUT EXPLORER MAC
  if(test1 > test2)
  { x = document.body.scrollWidth;
    y = document.body.scrollHeight;
  }
  // EXPLORER MAC;
  // WOULD ALSO WORK IN EXPLORER 6 STRICT, MOZILLA AND SAFARI
  else
  { x = document.body.offsetWidth;
    y = document.body.offsetHeight;
  }
  var size = new Array(x,y);
  return size;
}

// INNER WIDTH
// THE INNER DIMENSIONS OF THE WINDOW OR FRAME.
function inner_width()
{ var x,y;
  // ALL EXCEPT EXPLORER
  if(self.innerHeight)
  { x = self.innerWidth;
    y = self.innerHeight;
  }
  // EXPLORER 6 STRICT MODE
  else if(document.documentElement && document.documentElement.clientHeight)
  { x = document.documentElement.clientWidth;
    y = document.documentElement.clientHeight;
  }
  // OTHER EXPLORERS
  else if (document.body)
  { x = document.body.clientWidth;
    y = document.body.clientHeight;
  }
  var size = new Array(x,y);
  return size;
}

// SCROLLING OFFSET
// HOW MUCH THE PAGE HAS SCROLLED.
function scrolling_offset()
{ var x,y;
  // ALL EXCEPT EXPLORER
  if(self.pageYOffset)
  { x = self.pageXOffset;
    y = self.pageYOffset;
  }
  // EXPLORER 6 STRICT
  else if(document.documentElement && document.documentElement.scrollTop)
  { x = document.documentElement.scrollLeft;
    y = document.documentElement.scrollTop;
  }
  // ALL OTHER EXPLORERS
  else if(document.body)
  { x = document.body.scrollLeft;
    y = document.body.scrollTop;
  }	
  var size = new Array(x,y);
  return size;
}

function addLoadEvent(func)
{ var oldonload = window.onload;
  if(typeof window.onload != 'function') window.onload = func;
  else
  { window.onload = function()
    { if(oldonload) oldonload();
      func();
    }
  }
}

addLoadEvent(Toverlay.init);
//window.onload = Toverlay.init;
