HW.Modules.path = '../_script/modules/';
HW.Modules.load('ContentLoader')

HW.onLoaded(function() {
	HW.Map.init();
});

HW.Map = {
	popup:null,
	select:null,
	container:null,
	init:function() {
		this.container = $('mapContainer');
		if(!this.container) {
			return false;
		}
		if(!this.popup) {
			this.buildPopup();
		}
		if(!this.select) {
			this.buildSelect();
		}
		var obj = this;
		var areas = $$('mapArea',$('myRegions'),'area');
		for(var i=0,j=areas.length;i<j;i++) {
			HW.attachEvent(areas[i],'click',function(e){obj.recordClick(e);});
		}
	},
	recordClick:function(e) {
		var obj = this;
		e=e||window.event;
		o = e.srcElement||e.target;
		if(o.tagName == 'AREA') {
			var trg = o.href;
			this.updateSelect(trg);
		}
		else if(o.tagName == 'SELECT') {
			var trg = o.value;
		}
		if(trg) {
			var ht = $('hoverText');
			if(ht) {
				ht.innerHTML = trg.split('#')[1];
			}
			new HW.ContentLoader(this.popup,trg,function() {obj.showPopup();});
		}
		HW.preventDefault(e);
	},
	buildPopup:function() {
		var d = HW.createNode('div',this.container);
		d.className = 'ib_infoBoxOuter';
		this.popup = HW.createNode('div',d);
		this.popup.className = 'ib_infoBoxInner';
		var s = {display:'none'};
		HW.setStyle(this.popup.parentNode,s);
	},
	buildSelect:function() {
		var obj = this;
		var ul = $('stateList');
		if(ul) {
			this.select = HW.createNode('select',ul.parentNode);
			var lis = ul.getElementsByTagName('li');
			for(var i=0,j=lis.length;i<j;i++) {
				var a = lis[i].getElementsByTagName('a')[0];
				if(a) {
					var opt = HW.createNode('option',this.select);
					opt.value = a.href;
					opt.innerHTML = a.innerHTML;
				}
			}
			ul.parentNode.removeChild(ul);
			HW.attachEvent(this.select,'change',function(e){obj.recordClick(e);});
		}
	},
	showPopup:function() {
		var obj = this;
		var s = {display:'block'};
		HW.setStyle(this.popup.parentNode,s);
		var cls = $$('ib_closeBtn',this.popup,'a');
		for(var i=0,j=cls.length;i<j;i++) {
			HW.attachEvent(cls[i],'click',function(e){obj.closePopup(e)});
		}
	},
	closePopup:function(e) {
		var s = {display:'none'};
		HW.setStyle(this.popup.parentNode,s);
		HW.preventDefault(e);
	},
	updateSelect:function(href) {
		for(i=0,j=this.select.options.length;i<j;i++) {
			if(this.select.options[i].value == href) {
				this.select.selectedIndex = i;
				HW.log(this.select.options[i]);
			}
			else {
				HW.log(href+':'+this.select.options[i].value);
			}
		}
	}
}
