/**
 * 
 * Intersttial Class 
 * 
 * 
 * By Tom Stovall
 * 
 * Scans links on the page
 * adds an Interstatial panel that tells you 
 * you're leaving the current website
 * 
 * 
 */

Interstatial = {

	initialize: function() {
		
		var aMyLocation = document.location.href.split("/");
		var aMyDomain = aMyLocation[2].split(".");
		Interstatial.myDomain = aMyDomain[aMyDomain.length - 2]+"."+aMyDomain[aMyDomain.length - 1];
		$$("html a").each(function(e){
			
			var aURL = e.href.split("/");
			if (aURL[2] != undefined){
    			var aLinkDomain = aURL[2].split(".");
    			var linkDomain = aLinkDomain[aLinkDomain.length - 2]+"."+aLinkDomain[aLinkDomain.length - 1]
    			if ( linkDomain != Interstatial.myDomain){
    				e.iHREF = e.href;
    				e.href = '#';
    				e.target="_self";
    				e.observe("click", Interstatial.linkHandler.bind(e))			
    			}
		    }
			
		});
		
	},
		
	linkHandler: function(evt) {
		
		var bo = Interstatial.getBlackoutPanel();
		bo.show();
		var ip = Interstatial.getInterstatialPanel();
		ip.show();
		Interstatial.onScrollHandler();
		Interstatial.onResizeHandler();
		Element.observe(window, "scroll", Interstatial.onScrollHandler.bindAsEventListener(Interstatial));
		Element.observe(document.onresize ? document : window, "resize", Interstatial.onResizeHandler.bindAsEventListener(Interstatial));
		$("linkHolder").update("Click here to continue to <a href='"+this.iHREF+"' target='_blank' onclick='Interstatial.hideIS();'>"+this.iHREF+"</a><br><br>");
		
	},
	
	getInterstatialPanel: function(){
	    var scrollOffsets = document.viewport.getScrollOffsets();
        
		if ($("interstatial_panel") == undefined) {
			var newDiv = new Element("div", {
				"id": "interstatial_panel"}).setStyle({
					"position":"absolute", 
					"top": eval(20 + scrollOffsets.top)+"px",
					"left": "30%",
					"width": "40%",
					"background": "white", 
					"border": "2px solid black",
					"margin": "10px",
					"padding": "10px",
					"display": "none",
					"text-align": "center",
					"z-index": "99" });
			var newH2= new Element("h2").update("You are about to leave this website");
			var newDiv2 = new Element("div", {"id": "linkHolder"});
			newDiv.appendChild(newH2);
			newDiv.appendChild(newDiv2);
			document.body.appendChild(newDiv);
		}
	return $("interstatial_panel");
	},
	
	getBlackoutPanel: function(){
	    if ($("blackout_panel") == undefined){
	        var viewportDims = document.viewport.getDimensions();
	        var scrollOffsets = document.viewport.getScrollOffsets();
	        var blackoutPanel = new Element("div", {
				"id": "blackout_panel"}).setStyle({
				"position":"absolute", 
				"top": scrollOffsets.top +"px",
				"left": "0px",
				"background": "black", 
				"margin": "0px",
				"padding": "0px",
				"width": viewportDims.width + "px",
				"height": viewportDims.height + "px",
				"display": "none",
				"z-index": "10"	            
	        });
	        document.body.appendChild(blackoutPanel);
	        blackoutPanel.setOpacity(.5);
	        $("blackout_panel").observe("click", Interstatial.hideIS);
	    }
	    
	    return $("blackout_panel");
	},
	
	onScrollHandler: function(evt){
	    var scrollOffsets = document.viewport.getScrollOffsets();
	    var viewportDims = document.viewport.getDimensions();
        
        $("blackout_panel").setStyle({
                "top": scrollOffsets.top+"px",
                "width": viewportDims.width + "px",
                "height": viewportDims.height + "px"
        });
        $("interstatial_panel").setStyle({"top": eval(20 + scrollOffsets.top)+"px"});
	},
	
	onResizeHandler: function(evt){
	    var scrollOffsets = document.viewport.getScrollOffsets();
	    var viewportDims = document.viewport.getDimensions();
        $("interstatial_panel").setStyle({"top": eval(20 + scrollOffsets.top)+"px"});
        $("blackout_panel").setStyle({
                "top": scrollOffsets.top+"px",
                "width": viewportDims.width + "px",
                "height": viewportDims.height + "px"
        });
		
	},
	
	
	hideIS: function(){
		$("interstatial_panel").hide();
		$("blackout_panel").hide();
		Element.stopObserving(document, "scroll", Interstatial.onScrollHandler.bindAsEventListener(Interstatial));
		Element.stopObserving(document.onresize ? document : window, "resize", Interstatial.onResizeHandler.bindAsEventListener(Interstatial));
	}


}




document.observe("dom:loaded", Interstatial.initialize );

