﻿(function(Application) {
	function ToolbarLayerOpener() {
		this.init();
	}
	
	ToolbarLayerOpener.prototype = {
		init: function() {
			//window.onerror = null;
			var me = this;
			
			this.layer_mapping = {
		        "siteidlayer": "ctl00_lnkContentLayer7",
		        "contact": "ctl00_lnkContentLayer2",
		        "downloads": "ctl00_lnkContentLayer5",
		        "index": "ctl00_lnkContentLayer6"
		    };
		    
		    this.seen_hash = this.get_hash();
		    this.open_layer(this.get_hash());
		    
		    setInterval(function() {
		    	me.check_hash();
		    }, 500);
			
			for (var key in this.layer_mapping) {
				// nested function to create closure context
				(function(key, layer_mapping) {
					var id = layer_mapping[key];
					var button = document.getElementById(id);
					var popupBehavior = button.PopupButtonBehavior._popupBehavior;
					var hidden_handler = function() {
						if (me.get_hash() == key) {
							me.set_hash("");
						}
					};
					//popupBehavior.add_hidden(hidden_handler);
					
					var shown_handler = function() {
						if (me.get_hash() != key) {
							me.set_hash(key);
						}
					};
					//popupBehavior.add_shown(shown_handler);
				})(key, this.layer_mapping);
			}
	   	},
	   	
		check_hash: function() {
			var hash = this.get_hash();
	    	if (hash != this.seen_hash && this.layer_mapping[hash]) {
	    		this.open_layer(hash);
	    	}
	    	
	    	this.seen_hash = hash;
		},
		
		get_hash: function() {
			return window.location.hash.substring(1).toLowerCase();
		},
		
		open_layer: function(hash) {
			if (this.layer_mapping[hash]) {
	            document.getElementById(this.layer_mapping[hash]).PopupButtonBehavior.showPopup();
	        }
	        
	        //this.set_hash("");
		},
		
		set_hash: function(hash) {
			this.seen_hash = hash;
			window.location.hash = hash;
		}
	};
	    
    Application.add_load(function() {
    	var tlo = new ToolbarLayerOpener();
    });

})(Sys.Application); 
