// overlay.js
// attached to every form to indicate a 'holding' page

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);

      // PRELOAD IMAGE
      img = new Image();
      img.src = overlay_content.img;
      img.onload = function(){ this.loaded = true; }


          var body = document.getElementById('page');
          body.appendChild(Toverlay.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='"+overlay_content.img+"' /><br/>";
          txt += overlay_content.quit;
          msg.innerHTML = txt;


	  // ADD MSG WINDOW TO TREE
	        msg.style.display='none';
	        Toverlay.real_msg = msg;
          body.appendChild(msg);
          
      var submits = document.getElementsByTagName('div');
      if (typeof(submits) == 'object') {
        for(i=0;i<=submits.length;i++) {
          if (typeof(submits[i]) == 'object') {
            if (submits[i].className == 'submit_holder') {
              submit_remover = submits[i];
              break;
            }
          }
        }
      }       
                // FOR EACH FORM
      for(var i=0; i<document.forms.length; i++)
      { // ATTACH A CUSTOM EVENT -> ONSUBMIT
      	document.forms[i].onsubmit = function()
        { // APPEND TO DOM
if (typeof(submit_remover) == 'object') { submit_remover.innerHTML = '<p style="float: right; padding-right: 1em;">'+overlay_content.submit_disabled+'</p>';    }       
      // DEFINE SIZE
      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.real_msg.style['left'] = ((size[0]-Toverlay.msg_width)/2)+offset[0]+'px';
	  Toverlay.real_msg.style['top'] = ((size[1]-Toverlay.msg_height)/2)+offset[1]+'px';      
      // SIZE THE OVERLAY DIV
      Toverlay.overlay.style['width'] = overlay_size[0]+'px';
      Toverlay.overlay.style['height'] = overlay_size[1]+'px';          
          // CHANGE THE APLHA
  	  set_style_by_id('cnsr_container','filter',"alpha(opacity=70)");
  	  set_style_by_id('cnsr_container','opacity','0.7');          
      setTimeout(showmsg, 200);
      function showmsg() {  
        Toverlay.real_msg.style.display='block';  
      }
	}
      }
    }
  }
}

// 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);
