DIYWidgetModule = function() {

	var self = this;
	var moduleId = null;
	var sandbox = null;
	var data = null;
	var processorUrl = null;
	var tabPanel = null;
	var seeAllTab = null;
	
	var elementClassesConstants = {
		"VISIBLE":"element-visible",
		"HIDDEN":"element-hidden",
		"GROUP1":"tstm_image_group_0",
		"GROUP2":"tstm_image_group_1",
		"GROUP3":"tstm_image_group_2"
	};
	
	var redirectPageTo = {
		"TESTIMONIALS": "/testimonials/Testimonials.php"
	};

	this.init = function(moduleId_p, data_p, sandbox_p) {
		//set vars
		self = this;
		moduleId = moduleId_p;
		sandbox = sandbox_p;
		data = data_p;
		processorUrl = "";
		tabPanel = sandbox.get("TabbedPanels1");
		seeAllTab = sandbox.get("seeAllTab");
		//add an event listener for "See All" tab
		sandbox.addListener(seeAllTab, "click", seeAllTabClick, self, true);
		//call the library that generates the tab panel
		createTabPanel();
		//replace loading images for the real ones
		showTestimonialImages();
	};

	var seeAllTabClick = function(e,obj){
		location.href = redirectPageTo.TESTIMONIALS;
	};
	
	var createTabPanel = function() {
		sandbox.createTabPanel(tabPanel);
	};
	
	var showTestimonialImages = function(){
		var g1 = sandbox.getElementsByClassName(elementClassesConstants.GROUP1);
		handleOnReadyImages(g1[0],g1[1]);
		var g2 = sandbox.getElementsByClassName(elementClassesConstants.GROUP2);
		handleOnReadyImages(g2[0],g2[1]);
		var g3 = sandbox.getElementsByClassName(elementClassesConstants.GROUP3);
		handleOnReadyImages(g3[0],g3[1]);		
	};

	var handleOnReadyImages = function(imageToHide,imageToShow) {
		try{
			if (!imageToShow.complete) {
				setTimeout(function(){handleOnReadyImages(imageToHide,imageToShow)},500);
			} else {
				sandbox.replaceClass(imageToHide,elementClassesConstants.VISIBLE,elementClassesConstants.HIDDEN);
				sandbox.replaceClass(imageToShow,elementClassesConstants.HIDDEN,elementClassesConstants.VISIBLE);
			}
		}
		catch(e){
			sandbox.replaceClass(imageToHide,elementClassesConstants.VISIBLE,elementClassesConstants.HIDDEN);
			sandbox.replaceClass(imageToShow,elementClassesConstants.HIDDEN,elementClassesConstants.VISIBLE);
		}
	};
	
}
