var MDSK = {}
MDSK.Slideshow = Class.create();
MDSK.Slideshow.DefaultOptions = {
  duration: 0.6,
  seconds_per_slide: 3.0,
  numOfSlides: 0,
  pause_on_mouseover: false, // TODO: pause_on_mouseover
  onChange: function() {}
}
Object.extend(MDSK.Slideshow.prototype, {
  initialize: function(container, slide_selector, options) {
	var me = this;  
    this.options = Object.extend(Object.extend({},MDSK.Slideshow.DefaultOptions), options || {});
    this.container = $(container);
	this.slides = Selector.findChildElements(this.container, [slide_selector]);
    this.currentSlide = 0;
    this.paused = false;
    var self = this;
    var Found=false
    this.slides.each(function(slide, idx) {
      if (idx > 0) Element.hide(slide);
      if (self.options.pause_on_mouseover) {
        // Event.observe(slide, 'mouseover', self.pause.bind(self))
        // Event.observe(slide, 'mouseout', self.unpause.bind(self))
      }
    })
    this.slides[0].style.display = "block";
   	this.numOfSlides = this.slides.length;
	this.start();
    this.options.onChange(this);
  },
  
  forward: function() {
    var newSlideIdx = this.currentSlide+1;
    if (newSlideIdx >= this.slides.length) newSlideIdx = 0;
	
	//var currNum = newSlideIdx+1;
	//var num1 = document.getElementById("numDisp");	
	//num1.src = null;
	//num1.src = "" + currNum + ".jpg";

    this.transition(newSlideIdx);
  },
  
  backward: function() {
    var newSlideIdx = this.currentSlide-1;
    if (newSlideIdx < 0) newSlideIdx = this.slides.length-1;
	
	var currNum = newSlideIdx+1;
	var num1 = document.getElementById("numDisp");	
	num1.src = null;
	num1.src = "" + currNum + ".jpg";

    this.transition(newSlideIdx);
  },
  
  jumpToSlide: function(idx) {
    if (idx < 0 || idx >= this.slides.length) return false;
    this.stop();
    this.transition(idx);
	/* ------------------new code ---------------*/
	for (i = 0; i < this.slides.length; i++)
	{
		var nam = document.getElementById("showStyle"+i);
		if(idx == i)
		{
			nam.style.backgroundColor = "#B9B9B9";
		}
		else
		{
			nam.style.backgroundColor = "#FFFFFF";
		}
	}
	/*--------------------------end gere ----------------------*/
	
	/*-----------------
		var idxDup = idx + 1;
		playPauseBtn = document.getElementById('playPauseButton');
		var btnGet = "button_" + idxDup;
		var overBtn = "images_new/button_" + idxDup + "_down.jpg";
		var bttn = document.getElementById(btnGet);
		bttn.onmouseout = function() {
			bttn.src = overBtn;		
		}
		bttn.onmouseover = function() {
			bttn.src = overBtn;		
		}
		for(var j = 1; j < 4; j++)
			{
				if(j != idxDup)
				{
					var nam1 = document.getElementById("button_"+j);
					nam1.onmouseout = function() {
					nam1.src = "images_new/button_" + j + ".jpg";
					nam1.onmouseover = function() {
					nam1.src = "images_new/button_" + j + "_over.jpg";
					}
				}
			}
				
		playPauseBtn.src = null;
    	playPauseBtn.src = "images_new/button_play.jpg";
		togl = "false";
	
	-----------------*/
  },
  
  start: function() {
    if (this.interval) return;
    this.interval = setInterval(this.forward.bind(this), this.options.seconds_per_slide * 1000);
    this.container.addClassName('playing');
  },
  
  stop: function() {
    if (!this.interval) return;
    clearInterval(this.interval);
    this.interval = null;
    this.container.removeClassName('playing');
  },
  
  pausePlay: function() {
    if (this.interval)  this.stop();
    else                this.start();
    },
	
  rndm : function(min, max){
		return Math.floor(Math.random() * (max - min + 1) + min);
	},			
	
  /* ========== */
  
  transition: function(newSlideIdx) {
    var oldSlideIdx = this.currentSlide;
    if (newSlideIdx == oldSlideIdx) return;
    if (this.fadeIn && this.fadeIn.state != 'finished') this.fadeIn.cancel();
    if (this.fadeOut && this.fadeOut.state != 'finished') {
      this.fadeOut.cancel(); Element.hide(this.fadeOut.element);
    }
    this.fadeOut = new Effect.Fade(this.slides[oldSlideIdx], {duration: this.options.duration});
    this.fadeIn = new Effect.Appear(this.slides[newSlideIdx], {duration: this.options.duration});
    this.currentSlide = newSlideIdx;
    this.options.onChange(this);
	/* ------------------new code ---------------*/
	for (i = 0; i < this.slides.length; i++)
	{
		var nam = document.getElementById("showStyle"+i);
		if(this.currentSlide == i)
		{
			nam.style.backgroundColor = "#B9B9B9";
		}
		else
		{
			nam.style.backgroundColor = "#FFFFFF";
		}
	}
	/*--------------------------end gere ----------------------*/
  } 
});

function writeSlides(numOfSlides)
{
	var compNum = numOfSlides - 1;
	for (i = 0; i < numOfSlides; i++)
	{
		var k = numOfSlides;
		var j = k - i;
		var l = j - 1;
		document.write("<div id=\"showStyle"+l+"\"><a name=\"target\" href=\"javascript:slideshow.jumpToSlide("+l+"); pauseAlways();\" id=\"slideAnchors\">&nbsp;&nbsp;"+j+"&nbsp;&nbsp;<\/a><\/div>");
		if(i != compNum)
		{
			document.write("<div id=\"dividerLine\"><\/div>");	
		}
	} 
}
 
var playPauseBtn = null;
var togl = null;
function btnController()
{
	playPauseBtn = document.getElementById('playPauseButton');
    togl = "false";
	toggle();
}
function toggle()
{
   		if(togl == "false")
	    {
	        playPauseBtn.src = null;
	        playPauseBtn.src = "/vgn/images/beacon/pause.jpg";
			playPauseBtn.alt = "pause";
	        togl = "true";
	    }
	    else
	    {
	        playPauseBtn.src = null;
	        playPauseBtn.src = "/vgn/images/beacon/play.jpg";
			playPauseBtn.alt = "play";
	        togl = "false";
	    }     
}

function pauseAlways()
{	
		playPauseBtn.src = null;
    	playPauseBtn.src = "/vgn/images/beacon/play.jpg";
		playPauseBtn.alt = "play";
		togl = "false";		
}
