/* OverlayObj base class to render and overlay */
function overlayObj(overlayHTML) {
		/* ATTRIBUTES */
		this.bodyElem = document.getElementsByTagName("body")[0];
		this.htmlElem = document.getElementsByTagName("html")[0];
		this.browser = checkForInternetExplorer();
		this.overlayHTML=overlayHTML;
		this.returnOverlayDiv=null;
		this.returnFormDiv=null;
		
		/* METHODS */
		/* Add and Remove the Overlay */
		this.addOverlay = function() {
			/* Create the element*/
			returnOverlayDiv = document.createElement("div");
			returnOverlayDiv.id = "returnOverlayDiv";
			returnOverlayDiv.style.height = this.adjustHeightOverlay();
			
			/* Add overlay handling to Internet Explorer */
			this.addSelectElemOverlay(true);
			
			/* Display the overlay*/
			document.body.appendChild(returnOverlayDiv);
			
			/* Add the form */
			this.addInnerHTML();
		};		
		
		this.removeOverlay = function() {
			if(document.getElementById("GHIiframeTracking") != null  ){
				document.getElementById("GHIiframeTracking").src = "http://www.gohealthinsurance.com/iframeTracking.jsp?s_prop6="+s_prop_6+"&s_prop24="+config_id+"&s_prop25="+affiliate_id+"&s_prop26="+trackStateInfo+"&s_prop27="+link_id+"&s_prop29=Return_Visit_Form&s_events=event64";
			}
			returnOverlayDiv.style.display = "none";
			returnFormDiv.style.display = "none";
			removeSelectElemOverlay();
		};
		
		this.addInnerHTML= function() {
			/* Create the element */
			returnFormDiv = document.createElement("div");
			returnFormDiv.id = "returnFormDiv";
			returnFormDiv.innerHTML = overlayHTML;
			
			/* Add event handling to the page before load*/
			this.enableCloseLinks(returnFormDiv.getElementsByTagName("a"));
			
			/* Display the form */
			document.body.appendChild(returnFormDiv);
		};
		
		/* Add iframes over the select elements in IE 6*/
		this.addSelectElemOverlay = function(toggle) {
			if(this.browser) {
				var selectElems = document.getElementsByTagName("select");
				for(var i=0; i<selectElems.length; i++) {
					selectElems[i].style.visibility = "hidden";
				}
			}	
		};
		
		/* Enable close links on the form */
		this.enableCloseLinks = function(anchorElems) {
			for (var i=0; i<anchorElems.length; i++) {
				if(anchorElems[i].className == "overlayClose") {
					anchorElems[i].onclick = this.removeOverlay;
				}
			}
		};
		
		/* Remove the iframe overlays for the select elements*/
		function removeSelectElemOverlay() { 
			   var selectElems = document.getElementsByTagName("select"); 
			   for(var i=0; i<selectElems.length; i++) { 
			      selectElems[i].style.visibility = "visible"; 
			   } 
			} 
		
		/* Determine the absolute position for an element on the page*/
		this.getAbsolutePosition = function(element) {
			var r = { x: element.offsetLeft, y: element.offsetTop };
			if (element.offsetParent) {
				var tmp = this.getAbsolutePosition(element.offsetParent);
				r.x += tmp.x;
				r.y += tmp.y;
			}
			return r;
		};
		
		/* Determine the height needed for the overlay on the page */
		this.adjustHeightOverlay = function() {
			return Math.max(document.body.clientHeight, document.documentElement.clientHeight, document.body.offsetHeight, document.documentElement.offsetHeight) + "px";
		};
		
		/* Check for older versions of Internet Explorer */
		function checkForInternetExplorer () {
			if(navigator.appVersion.indexOf("MSIE")!=-1) {
				return  parseFloat(navigator.appVersion.split("MSIE")[1])>=6 ? true : false;
			}
			else {
				return  false;
			}
		}
		
		return true;
}
