/***
 *  [ Function Name Label ]
 *  @use:
 *   var oFunctionName = new FunctionName({	
 *		//objects shared props
 *	});
 *
 *	@functions:
 *	oFunctionName.aaaaaaaaaaa()
 */
var RDSImageViewer = function(){ /*  */ };
RDSImageViewer.prototype = {
	
	init: function(){
		var htOptions    = this.htOptions    = this.getOptionSet( arguments[0] );
		var elViewerImage = this.elViewerImage = htOptions.elViewerImage;
		var elTHumbnails  = this.elTHumbnails  = htOptions.elTHumbnails;
		
		if( elViewerImage == null || elTHumbnails == null ){ throw new Error(); return false; };
		
//		this.makePreloadImage();
		this.attachClickEvent();
	},
	
	attachClickEvent: function(){
		var self = this;
		$( this.elTHumbnails ).click( function( e ){
			self.catchEventBubble( e )
			return false;
		});
	},
	
	catchEventBubble: function( e ){
		switch( e.target.tagName.toLowerCase() ){
			case 'img':
				var __element = e.target;
				while( __element.tagName.toLowerCase() != 'a' ){ __element = __element.parentNode; };
				this.changeViewerImage( __element );
				break;
			case 'a':
				this.changeViewerImage( e.target );
				break;
		}
	},
	
	changeViewerImage: function( elAnchor ){
		this.elViewerImage.src = elAnchor.href;
	},
	
	getOptionSet: function( htArguments ){
		var __option = {
			elViewerImage: null,
			elTHumbnails:  null
		};
		if( typeof htArguments === undefined ) htArguments = new Object;
		for( var x in htArguments ) __option[x] = htArguments[x];
		return __option;
	}

};