var g_regionsContollerObject = {};
(function () {
	var regionsController = function(){};
	regionsController.prototype = {
		filterOptionElementIdArray: ['regions-all-pubs-option', 'regions-gpg-pubs-option'],
		filterHash: { },
		updateFilter: function( targetElement ) {
			this.filterHash[targetElement.id] = targetElement.checked ? true : false;
		},
		updateFilterHandler: function( e, contextObject ) {
			var targetElement = YAHOO.util.Event.getTarget( e );
			contextObject.updateFilter( targetElement );
			//if( !document.getElementById( 'vision-maps' ) ) {
				contextObject.redirect( document.location.href.replace( /\?.*$/, '' ) + 
							'?filter=' + contextObject.getFilterString( ) + '&enhanced=1' );
			//} 
		},
		getFilterString: function( ) {
			var filterString = '';
			for( var filterIdString in this.filterHash ) {
				if( this.filterHash[filterIdString] === true ) {
					filterString += ( filterString.length ? '|' : '' ) + filterIdString;
				}
			}
			return filterString;
		},
		redirect: function( url ) {
			document.location.href = url;
		},
		redirectHandler: function( e, contextObject ) {
			var targetElement = YAHOO.util.Event.getTarget( e );
			contextObject.redirect( targetElement.href + '?filter=' + contextObject.getFilterString( ) + '&enhanced=1' );	
			YAHOO.util.Event.stopEvent( e );
			return false;
		},
		init: function() {
			if( document.location.href.toString().match( /REGIONS\/?$/ ) ) {
				document.getElementById( 'regions-all-pubs-option' ).checked = false;
			}
			for( var i = 0; i < this.filterOptionElementIdArray.length; i++ ) {
				var filterOptionElement = document.getElementById( this.filterOptionElementIdArray[i] );
				if( filterOptionElement ) {
					this.updateFilter( document.getElementById( this.filterOptionElementIdArray[i] ) );
				}
			}
			YAHOO.util.Event.addListener( this.filterOptionElementIdArray, 'click', this.updateFilterHandler, this );
			var aToZLinks = YAHOO.util.Dom.getElementsByClassName( 'atoz-link', 'A' );
			if( aToZLinks.length > 0 ) {
				YAHOO.util.Event.addListener( aToZLinks, 'click', this.redirectHandler, this );
			}
		}
	};

	g_regionsContollerObject = new regionsController();
	YAHOO.util.Event.onDOMReady( g_regionsContollerObject.init, {}, g_regionsContollerObject );
})();

