function promoPlayer() {
	/* Constructor - initialize object properties */
	/* promoPlayer(paramater1, paramater2, paramater3 etc) */
	var numslides = arguments[0]; // total slide 4
	var duration = arguments[1]; // time for change slide 7000
	var currentslide = 1; //Set default value for current slide when page load
	var nextslide = 2; //Set default value for next slide when page load
	var previousslide = numslides; //Set default value for previous slide when page load.
	var timers = new Array(); // Create new object array play role like timmer.
	var listCaption = new Array(); // Create new object array play role like list caption of slide.
	
	/* function to handle hidden and show slide */
	fader = function(slideNumber,opacity) {
		/* cross-browser differences in opacity handling */
		var objImage=document.getElementById('slide'+slideNumber);
		var objCaption=document.getElementById('slide_caption'+slideNumber);
		if (objImage.style) {
			if (objImage.style.MozOpacity!=null) {  
				/* Mozilla opacity */
				objImage.style.MozOpacity = (opacity/100) - .001;
				objCaption.style.MozOpacity = (opacity/100) - .2;
			} else if (objImage.style.filter!=null) {
				/* IE's filter */
				objImage.style.filter = "alpha(opacity="+opacity+")";
				objCaption.style.filter = "alpha(opacity="+(opacity-20)+")";
			} else if (objImage.style.opacity!=null) {
				/* Other browser */
				objImage.style.opacity = (opacity/100) - .001;
				objCaption.style.opacity = (opacity/100) - .3;
			}
		}
	}
	
	/* function to handle fade up effect */
	crossfade = function(opacity) {
		if (opacity < 100) {
			/* Current slide still not fully faded ==> Increase opacity */
			fader(nextslide,opacity);
			//Setup style css for current slide
			if (opacity == 50) {
				document.getElementById('tab'+currentslide).className = "tab_layout";
				document.getElementById('tab'+nextslide).className = "tab_layout current";
			}
			fader(currentslide,100-opacity);
			/* Increase opacity */
			opacity += 10;
			timers.push(window.setTimeout("crossfade("+opacity+")",60)); // 60 is pause time when slide change it will make slide change look smooler
		} else {
			/* make sure for the previous image is fully - transparent */
			fader(currentslide,0);
			/* make sure the current image is on top of the previous one */
			document.getElementById('slide'+currentslide).style.zIndex = 0;
			document.getElementById('slide'+nextslide).style.zIndex = 1;
			document.getElementById('slide_caption'+currentslide).style.zIndex = 0;
			document.getElementById('slide_caption'+nextslide).style.zIndex = 98;
			
			/* current image is now previous image, setup again current slide value */
			currentslide=nextslide;
			nextslide+=1; // increase next slide
			if (nextslide>numslides) {
				/* reset next slide value if total slide is lesser than next slide */
				nextslide=1;
			}			
			/* and start the crossfade after a second's pause */
			opacity=0;
			timers.push(window.setTimeout("crossfade("+opacity+")", duration));
		}
	}
	
	/* function to change current slide based on tab mouse overs. Inherit mouse event from jquery*/
	$(".tab_layout").mouseenter(function() {
		clearTimers();
		nextslide = parseInt($(this).attr("id").slice(-1));
		// reset z-index for all slides
		for (var i = 1; i <= numslides; i++) {
			document.getElementById('slide'+i).style.zIndex = 0;
			document.getElementById('slide_caption'+i).style.zIndex = 0;
		}
		// set z-index to 1 for the new visible slide
		document.getElementById('slide'+nextslide).style.zIndex = 1;
		document.getElementById('slide_caption'+nextslide).style.zIndex = 98;
		// fade out all slides
		for (var i = 1; i <= numslides; i++) {
			fader(i,0);
		}
		//fade in new visible slide
		fader(nextslide,100);
		
		for (var i = 1; i <= numslides; i++) {
			document.getElementById('tab'+i).className = "tab_layout";
		}
		document.getElementById('tab'+nextslide).className = "tab_layout current";
		currentslide=nextslide;
		nextslide+=1;
		if (nextslide>numslides) {
			/* start over from first image if we cycled through all images in the list */
			nextslide=1;
		}
	});
	
	/* Mouse event for handle leave out pointer. Inherit mouse event from jquery*/
	$(".tab_layout").mouseleave(function(){
		timers.push(window.setTimeout("crossfade(0)", duration));
	});
	
	clearTimers = function() {
		for (var i = 0; i <timers.length; i++) {
			clearTimeout(timers[i]);
		}
		timers = [];
	}
	
	/* Public function to start the slideshow */
	this.startPromoslideshow = function() {
		for (var i = 1; i <= numslides; i++) {
			if (i == 1) {
				fader(i,100); //1: default slide
			} else {
				fader(i,0);
			}
		}
		document.getElementById('slide'+currentslide).style.zIndex = "1";
		document.getElementById('slide_caption'+currentslide).style.zIndex = "98";
		// Call crossfade event for decrease opacity of current image until it visible. Parameter start from 0 to 100
		timers.push(window.setTimeout("crossfade(0)",duration));
	}
	
	/* start the slideshow */
	this.startPromoslideshow();
}
