window.carouselcount=0;

function carousel()
	{
		var self=this;
		var centerX = 295;
		var centerY = 190;
		var radiusX = 170;
		var radiusY = 50;
		var stepcount = 0;
		this.Citems = new Array();
		var index = 0;
		this.Cimage= new Array();
		var Cdetails = new Array();
		var Dindex = 0;
		var anglecount = 315;
		this.direction = 1;
		this.PrimaryAnimationTimer = 0;
		this.PrimaryInterval = 5000;
		this.AnimationTimer = 0;
		this.currentdetail = 0;
		this.clicking = 0;
		if(navigator.appName=="Microsoft Internet Explorer")
			{
				var ua = navigator.userAgent;
    				var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    				if (re.exec(ua) != null)
      				rv = parseFloat( RegExp.$1 );
				if(rv < 9)
					{
						this.angleincrement = 45;
						this.step = 1;
						this.PrimaryInterval = 5000;
						this.ieadapt = 1;
					}
				else
					{
						this.ieadapt = 0;
						this.angleincrement = 5;
						this.step = 9;
					}
			}
		else
			{
				this.ieadapt = 0;
				this.angleincrement = 5;
				this.step = 9;
			}
		this.currentangleincrement = this.angleincrement;
		stepcount = this.step;
		var divs = document.getElementById('carousel').getElementsByTagName('div');
		for(var i = 0; i < divs.length ; i++)
			{
				if(divs[i].className == "cdetail")
					{
						Cdetails[Dindex] = divs[i];
						Dindex++;
					}
				if(divs[i].className == "carouseldirectionleft")
						{
							divs[i].onclick = function()
								{
									self.direction=1;
									if(self.AnimationTimer)
										{
											if(!self.clicking)
												{
												self.clicking = setTimeout(function(){this.onclick;},500);
												}
										}
									else
										{
											self.clicking = 0;
											if(self.PrimaryAnimationTimer)
												{
													clearTimeout(self.PrimaryAnimationTimer);
													self.currentangleincrement = -(self.angleincrement);
													self.animate(self.currentangleincrement);
												}
										}
								}
						}
				if(divs[i].className == "carouseldirectionright")
						{
							divs[i].onclick = function()
								{
									self.direction=0;
									if(self.AnimationTimer)
										{
											if(!self.clicking)
												{
												this.clicking = setTimeout(function(){this.onclick;},500);
												}
										}
									else
										{
											self.clicking = 0;
											if(self.PrimaryAnimationTimer)
												{
													clearTimeout(self.PrimaryAnimationTimer);
													self.currentangleincrement = self.angleincrement;
													self.animate(self.currentangleincrement);
												}
										}
								}
						}
				if(divs[i].className == "citem")
					{
						self.Citems[index] = new Array();
						self.Citems[index][0] = divs[i];
						self.Citems[index][1] = anglecount;
						self.Citems[index][2] = checkZ(anglecount);
						self.Citems[index][3] = centerX + Math.round(Math.cos(anglecount * Math.PI/180) * radiusX);
						self.Citems[index][4] = centerY + Math.round(Math.sin(anglecount * Math.PI/180) * radiusY);
						Cimg = divs[i].getElementsByTagName('img');
						self.Citems[index][5] = Cimg[0];
						if (parseInt(self.Citems[index][5].width) > parseInt(self.Citems[index][5].height))
							{
								self.Citems[index][5].style.width = "172px";
								self.Citems[index][5].style.height = "auto";
							}
						else
							{
								self.Citems[index][5].style.height = "192px";
								self.Citems[index][5].style.width = "auto";
							}
						self.Citems[index][6] = self.Citems[index][5].offsetWidth;
						adjust = -(Math.round(Math.sin(anglecount * Math.PI/180)*25));
						newsize = (parseInt(self.Citems[index][6])) + adjust;
						self.Citems[index][5].style.width = newsize + "px";
	
						self.Citems[index][0].style.height = ((parseInt(self.Citems[index][5].offsetHeight))+4) + "px";
						self.Citems[index][0].style.width = ((parseInt(self.Citems[index][5].offsetWidth))+4) + "px";
						self.Citems[index][5].style.left="2px";
						self.Citems[index][5].style.bottom="0px";
						if(anglecount == 270)
							{
								self.Citems[index][5].style.opacity="1";
								self.Citems[index][5].style.filter = "alpha(opacity=100)";
							}
						CanvasObject = self.Citems[index][0].getElementsByTagName("canvas");
						if(CanvasObject[0].getContext)
							{
								self.Citems[index][7] = CanvasObject[0];
								self.Citems[index][7].style.top = (parseInt(self.Citems[index][0].offsetHeight)) + "px";
								self.Citems[index][7].style.left = "2px";	
								self.Citems[index][7].width = (parseInt(self.Citems[index][5].offsetWidth));
								self.Cimage[index] = new Image();
								self.Cimage[index].src= self.Citems[index][5].src;
								self.Cimage[index].index = index;
								self.Cimage[index].onload = function(){
								ctx = self.Citems[this.index][7].getContext("2d");
								ctx.save();
								ctx.translate(0, (parseInt(self.Citems[this.index][5].offsetHeight)));
								ctx.scale(1, -1);
	ctx.drawImage(self.Citems[this.index][5],0,0,(parseInt(self.Citems[this.index][5].offsetWidth)),(parseInt(self.Citems[this.index][5].offsetHeight)));
								ctx.restore();
				var gradient = ctx.createLinearGradient(0, 0, 0, (parseInt(self.Citems[this.index][5].offsetHeight)));
								gradient.addColorStop(1, "rgba(255, 255, 255, 1.0)");
							gradient.addColorStop(0, "rgba(255, 255, 255, .7)");
								ctx.fillStyle = gradient;
				ctx.rect(0, 0, (parseInt(self.Citems[this.index][5].offsetWidth)), (parseInt(self.Citems[this.index][5].offsetHeight))*2);
								ctx.fill();
								}
							}
						else
							{
								self.Citems[index][7] = new Image();
								self.Citems[index][7].src = self.Citems[index][5].src;
								self.Citems[index][0].appendChild(self.Citems[index][7]);
								self.Citems[index][7].style.position="absolute";
								self.Citems[index][7].style.top = (parseInt(self.Citems[index][0].offsetHeight)) + "px";
								self.Citems[index][7].style.left = "2px";
								self.Citems[index][7].style.width = (parseInt(self.Citems[index][5].offsetWidth)) + "px";
								self.Citems[index][7].style.height = (parseInt(self.Citems[index][5].offsetHeight)) + "px";
if(self.ieadapt){
self.Citems[index][7].style.filter = "flipv progid:DXImageTransform.Microsoft.Alpha(opacity='100', style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy='+(parseInt(self.Citems[i][5].offsetHeight))+')";}
							}
						self.Citems[index][8] = index;
						anglecount += 45;
						if(anglecount == 360){anglecount = 0;}
						index++;
					}
			}
		self.AnimationTimer=setTimeout(function(){self.animate(self.currentangleincrement);},25);
		function checkZ(a)
			{
				if(a >= 338 || a < 23){z = 3;}
				if(a >= 23 && a < 68){z = 2;}
				if(a >= 68 && a < 113){z = 1;}
				if(a >= 113 && a < 158){z = 2;}
				if(a >= 158 && a < 203){z = 3;}
				if(a >= 203 && a < 248){z = 4;}
				if(a >= 248 && a < 293){z = 5;}
				if(a >= 293 && a < 338){z = 4;}
				return z;
			}
		this.animate = function(x)
			{
				if(stepcount < self.step)
					{
						
						for(var i = 0; i < self.Citems.length; i++)
							{
								if(self.PrimaryAnimationTimer){clearTimeout(self.PrimaryAnimationTimer);}
								newangle = self.Citems[i][1] + x;
														
								if(newangle >= 360){newangle = 0}
								if(newangle < 0){newangle = 360 + newangle;}							
								self.Citems[i][1] = newangle;
								self.Citems[i][2] = checkZ(newangle);
								if(self.Citems[i][2] != 5)
									{
										if(self.Citems[i][2] == 4)
											{Cdetails[i].style.top = "100px";}
										Aadjust = 40 +( -(Math.round(Math.sin(newangle* Math.PI/180)*20)));
										OAadjust = Aadjust * .01;
										self.Citems[i][5].style.opacity=OAadjust;
										self.Citems[i][5].style.filter = "alpha(opacity="+Aadjust+")";
										if(self.Citems[i][7])
											{
												self.Citems[i][7].style.opacity=OAadjust;
if(self.ieadapt){
												self.Citems[i][7].style.filter = "flipv progid:DXImageTransform.Microsoft.Alpha(opacity='"+Aadjust+"', style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy='+(parseInt(self.Citems[i][5].offsetHeight))+')";}
											}
									}
								else
									{
										Cdetails[i].style.top = "0px";
										self.Citems[i][5].style.opacity="1";
										self.Citems[i][5].style.filter = "alpha(opacity=100)";
										if(self.Citems[i][7])
											{
												self.Citems[i][7].style.opacity="1";
if(self.ieadapt){
												self.Citems[i][7].style.filter = "flipv progid:DXImageTransform.Microsoft.Alpha(opacity='60', style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy='+(parseInt(self.Citems[i][5].offsetHeight))+')";}
											}

									}

								self.Citems[i][3] = centerX + Math.round(Math.cos(newangle * Math.PI/180) * radiusX);
								self.Citems[i][4] = centerY + Math.round(Math.sin(newangle * Math.PI/180) * radiusY);
								adjust = -(Math.round(Math.sin(newangle * Math.PI/180)*25));
								newsize = (parseInt(self.Citems[i][6])) + adjust;
								self.Citems[i][5].style.width = newsize + "px";
			
								self.Citems[i][0].style.height = ((parseInt(self.Citems[i][5].offsetHeight))+4) + "px";
								self.Citems[i][0].style.width = ((parseInt(self.Citems[i][5].offsetWidth))+4) + "px";
								self.Citems[i][5].style.left="2px";
								self.Citems[i][5].style.bottom="0px";

								self.Citems[i][0].style.bottom = (self.Citems[i][4]) + "px";
					self.Citems[i][0].style.left = (self.Citems[i][3]-(Math.round(self.Citems[i][0].offsetWidth/2))) + "px";
								self.Citems[i][0].style.zIndex = self.Citems[i][2];

								self.Citems[i][7].style.width = (parseInt(self.Citems[i][5].offsetWidth))+"px";
								self.Citems[i][7].style.left="2px";
								self.Citems[i][7].style.top=(parseInt(self.Citems[i][5].offsetHeight)+4)+"px";
							}
						stepcount++;
						if(self.ieadapt){intime=25;}else{intime=(10*(stepcount*1.5));}
						self.AnimationTimer=setTimeout(function(){self.animate(x);},intime);
					}
				else
					{
						self.AnimationTimer = 0;
						stepcount=0;
			if (self.direction){self.currentangleincrement = -(self.angleincrement)}else{self.currentangleincrement = self.angleincrement;}
						if (self.clicking){self.PrimaryInterval = 25;self.clicking=0;}else{self.PrimaryInterval = 3000;}
					self.PrimaryAnimationTimer=setTimeout(function(){self.animate(self.currentangleincrement);},self.PrimaryInterval);
					}			 
			}
	}
