function LocationsMap() {
		
		map = this;
		
		// switch the image of location map
		map.switchImage = function(ele, idx) {
			image = $('img', map);
			src = '/brightpoint-public-theme/images/files/map-' + idx + '.gif';
			$(image).attr('src', src);
		};
		
		// reset image to default when mouse out
		$('.homepage_callouts_locations_body', map).hover(
			function() { /* nothing on rollover */ },
			function() {
				ele = $('img', this);
				map.switchImage(ele, 0);
				
				// update 'Select a Location' text to nothing
				if ( ! $('.homepage_callouts_locations_options', map).is(":visible") ) {
					$('.homepage_callouts_locations_head span', map).html('');
				}
			}
		);
		
		// switch map image when mouse over each map area
		$('.homepage_callouts_locations_body area', map).hover(
			function() {
				idx = $(this).index();
				map.switchImage(this, (idx + 1));
				
				// update 'Select a Location' text from <div> name
				text = $('.homepage_callouts_locations_options_list', map).eq(idx).attr('name');
				$('.homepage_callouts_locations_head span', map).html( text );
			
			},
			function() { /* nothing on rollout */ }
		);
		
		// show relative list when map area is clicked
		$('.homepage_callouts_locations_body area', map).click(function() {
			$('.homepage_callouts_locations_options', map).show();
			
			// target and show relative list (area 2 -> list 2)
			idx = $(this).index();
			list = $('.homepage_callouts_locations_options_list', map).eq(idx);
			$(list).show();
		});
		
		// close list when first <li> of that list is clicked
		$('.homepage_callouts_locations_options_list li:first-child', map).click(function() {
			$('.homepage_callouts_locations_options', map).hide();
			$('.homepage_callouts_locations_options_list', map).hide();
		});
		
		// hide all the list
		$('.homepage_callouts_locations_options_list', map).hide();
		
	};
	
	
	$(window).load(function() {
		$('.homepage_callouts_locations').each(function() {
			LocationsMap.call( this );
		});
	});
