function Player(json){
	this.Name = null;
	this.CSSID = "rotator";
	this.SlideData = "promotion";
	this.Speed = 5;
	this.Duration = .5;
	this.Canvas = "";
	this.Controls = "";
	this.PlayButton = "";
	this.PlayButtonText = "&nbsp;";
	this.PauseButton = "";
	this.PauseButtonText = "&nbsp;";
	this.UnselectedButton = "";
	this.SelectedButton = "";
	this.Slides = [];
	this.CurrentSlide = -1;
	this.Interval = null;

	this.ShowSlide = function(slideNum){
		if(document.getElementById(this.Name +"Button"+ this.CurrentSlide)){document.getElementById(this.Name +"Button"+ this.CurrentSlide).setAttribute("style", this.UnselectedButton);}
		this.CurrentSlide = slideNum;
		document.getElementById(this.Name +"Button"+ this.CurrentSlide).setAttribute("style", this.SelectedButton);
		var _slide = this.Slides[this.CurrentSlide];
		var _html = "";
		var oA = document.getElementById(this.Name+"_A");
		var oB = document.getElementById(this.Name+"_B");
		if(oA.style.opacity == 0){
			oA.innerHTML = _slide.innerHTML;
			oA.style.backgroundImage = _slide.style.backgroundImage;
			oA.style.zIndex = 10;
			oB.style.zIndex = 5;
			oA.style.opacity = 1;
			oB.style.opacity = 0;
		}else{
			oB.innerHTML = _slide.innerHTML;
			oB.style.backgroundImage = _slide.style.backgroundImage;
			oB.style.zIndex = 10;
			oA.style.zIndex = 5;
			oB.style.opacity = 1;
			oA.style.opacity = 0;
		}
	}

	this.Next = function(){
		var slideNum = this.CurrentSlide + 1;
		if(slideNum >= this.Slides.length){
			slideNum = 0;
		}
		this.ShowSlide(slideNum);
	}

	this.Play = function(){
		this.Next();
		this.Interval = window.setInterval(this.Name+'.Next()', this.Speed * 1000);
		var o = document.getElementById(this.Name+"Play");
		o.innerHTML = this.PauseButtonText;
		o.setAttribute("style", this.PlayButton);
	}

	this.Pause = function(){
		window.clearInterval(this.Interval);
		this.Interval = null;
		var o = document.getElementById(this.Name+"Play");
		o.innerHTML = this.PlayButtonText;
		o.setAttribute("style", this.PauseButton);
	}

	this.PausePlay = function(){
		if(this.Interval == null){
			this.Play();
		}else{
			this.Pause();
		}
	}

	this.Init = function(){
		var divs = document.getElementsByTagName("div");
		for(var i = 0, ii = divs.length; i < ii; i++){
			if(divs[i].className == this.SlideData){
				this.Slides[this.Slides.length] = divs[i];
				divs[i].style.display = "none";
			}
		}

		var html = "<div id=\""+ this.Name +"_A\" style=\"position:absolute;width:100%;height:100%;z-index:10;transition:opacity "+ this.Duration +"s ease-in-out;-moz-transition:opacity "+ this.Duration +"s ease-in-out;-webkit-transition:opacity "+ this.Duration +"s ease-in-out;\"> </div>";
		html += "<div id=\""+ this.Name +"_B\" style=\"position:absolute;width:100%;height:100%;z-index:5;transition:opacity "+ this.Duration +"s ease-in-out;-moz-transition:opacity "+ this.Duration +"s ease-in-out;-webkit-transition:opacity "+ this.Duration +"s ease-in-out;\"> </div>";
		html += "<div id=\""+ this.Name +"Controls\" style=\"position:absolute;bottom:0px;width:100%;text-align:center;z-index:20;"+ this.Controls +"\">";
		html += "<div id=\""+ this.Name +"Play\" onclick=\""+ this.Name +".PausePlay(); return false;\" style=\""+ this.PlayButton +"\" class=\""+ this.Name +"Button\">"+ this.PauseButtonText +"</div>";
		for(var i = 0; i < this.Slides.length; i++){
			html += "<div id=\""+ this.Name +"Button"+ i +"\" class=\""+ this.Name +"Button\" onclick=\""+ this.Name +".Pause();"+ this.Name +".ShowSlide("+ i +"); return false;\" style=\""+ this.UnselectedButton +"\">&nbsp;</div>";
		}
		html += "</div>";

    var canvas = document.getElementById(this.CSSID);
		if(canvas != null){
		  if(canvas.style.postion != "absolute"){canvas.style.position = "relative";}
		  canvas.style.overflow = "hidden";
		  canvas.setAttribute("style", this.Canvas);
		  canvas.innerHTML = html;
    }else{
      document.open();
		  document.write("<div id=\""+ this.CSSID +"\" style=\"position:relative;overflow:hidden;"+ this.Canvas +"\"\">"+ html +"</div>");
		  document.close();
    }
		this.Play();
	}

	if(json != undefined){
		this.Name = json.Name;
		this.CSSID = json.CSSID || this.CSSID;
		this.SlideData = json.SlideData || this.SlideData;
		this.Speed = json.Speed || this.Speed;
		this.Duration = json.Duration || this.Duration;
		this.Canvas = json.Canvas;
		this.Controls = json.Controls;
		this.PlayButton = json.PlayButton;
		this.PlayButtonText = json.PlayButtonText || this.PlayButtonText;
		this.PauseButton = json.PauseButton;
 		this.PauseButtonText = json.PauseButtonText || this.PauseButtonText;
		this.UnselectedButton = json.UnselectedButton;
		this.SelectedButton = json.SelectedButton;
		this.Init();
	}
}
