function carousel()
	{
		var self=this;
		var centerX = 265;
		var centerY = 300;
		var radiusX = 170;
		var radiusY = 40;
		var stepcount = 0;
		this.Citems = new Array();
		var index = 0;
		this.Cimage= new Array();
		var Cdetails = new Array();
		var Dindex = 0;
		var anglecount = 342;
		this.direction = 1;
		this.first=1;
		this.PrimaryAnimationTimer = 0;
		this.PrimaryInterval = 25;
		this.AnimationTimer = 0;
		this.currentdetail = 0;
		this.clicking = 0;
		if(navigator.appName=="Microsoft Internet Explorer")
			{
				var ver = (navigator.appVersion).substr(0,1);
				if(ver != "9")
					{
						this.angleincrement = 12;
						this.step = 6;
						this.PrimaryInterval = 5000;
					}
			}
		else
			{
				this.angleincrement = 6;
				this.step = 12;
			}
		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].onmousedown = function()
								{
									this.style.backgroundPosition="0px 0px";
								}
							divs[i].onmouseup = function()
								{
									this.style.backgroundPosition="0px -65px";
								}
							divs[i].onclick = function()
								{
									self.reading=1;
									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].onmousedown = function()
								{
									this.style.backgroundPosition="0px 0px";
								}
							divs[i].onmouseup = function()
								{
									this.style.backgroundPosition="0px -65px";
								}
							divs[i].onclick = function()
								{
									self.reading=1;
									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")
					{
						divs[i].onclick = function()
							{
								clearTimeout(self.PrimaryAnimationTimer);
							self.PrimaryAnimationTimer=setTimeout(function(){self.animate(self.currentangleincrement);},14000);
							}

						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 = "";
							}
						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.Citems[index][7].height = (parseInt(self.Citems[index][5].offsetHeight));
								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.drawImage(self.Cimage[this.index],0,0,(parseInt(self.Citems[this.index][0].offsetWidth)),(parseInt(self.Citems[this.index][0].offsetHeight)));

								ctx.restore();
				var gradient = ctx.createLinearGradient(0, 0, 0, (parseInt(self.Citems[this.index][5].offsetHeight)));
								gradient.addColorStop(0, "transparent");
							//gradient.addColorStop(1, "rgba(255, 255, 255, .7)");
								gradient.addColorStop(1, "transparent");
								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][0].offsetHeight)) + "px";
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 += 72;
						if(anglecount >= 360){anglecount-= 360;}
						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 = "400px";}
										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;
												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";
												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.height = (parseInt(self.Citems[i][5].offsetheight))+"px";

								self.Citems[i][7].style.left="2px";
								self.Citems[i][7].style.top=(parseInt(self.Citems[i][5].offsetHeight)+4)+"px";
							}
						stepcount++;
						self.AnimationTimer=setTimeout(function(){self.animate(x);},(10*(stepcount*1.5)));
					}
				else
					{
						self.AnimationTimer = 0;
						stepcount=0;
			if (self.direction){self.currentangleincrement = -(self.angleincrement)}else{self.currentangleincrement = self.angleincrement;}
						if (self.first)
							{
								self.PrimaryInterval = 25;
								self.first=0;
							}
						else
							{
								if(self.reading)
									{
										self.PrimaryInterval = 14000;
										self.reading=0;
									}
								else
									{
										self.PrimaryInterval = 6000;
									}
							}
					self.PrimaryAnimationTimer=setTimeout(function(){self.animate(self.currentangleincrement);},self.PrimaryInterval);
					}			 
			}
	}

function sfader()
{
	var self = this;
	var divarray = new Array();
	var dsimgarray = new Array();
	var simgarray = new Array();
	var contentarray = new Array();
	var clickarray = new Array();
	var divsindex = 0;
	var contentindex = 0;
	var step = 0;
	this.SwitchTimer=0;
	this.AnimationTimer=0;
	this.current = 1;
	this.autorun = 1;
	this.first=1;
	this.nomouseover=0;
	var divs = document.getElementById("panelcontainer").getElementsByTagName("div");
	for(var i=0;i<divs.length;i++)
		{
			if(divs[i].className == "infopanel")
				{
					divs[i].index = divsindex;
					divs[i].onclick = function()
						{
							self.nomouseover = 1;
							if(self.SwitchTimer)
								{
									clearTimeout(self.SwitchTimer);
									self.SwitchTimer=0;
									step=0;
								}
							if(self.AnimationTimer)
								{
									clearTimeout(self.AnimationTimer);
									self.AnimationTimer=0;
								}
							if(self.current != this.index)
								{
									self.SwitchImg(this.index);
								}
						}
					imgs = divs[i].getElementsByTagName("img");
					for(var ii=0;ii<imgs.length;ii++)
						{
							if(imgs[ii].className == "infodsimg")
								{
									dsimgarray[divsindex] = imgs[ii];
								}
							if(imgs[ii].className == "infosimg")
								{
									simgarray[divsindex] = imgs[ii];
								}
						}							
					divsindex++;
				}
			if(divs[i].className == "panel")
				{
					divs[i].index = divsindex;
					divs[i].onmouseout = function()
						{
							self.hideclick();
						}
					divs[i].onmouseover = function()
						{
							self.hideclick();
							if(!self.nomouseover)
								{
									if(self.current != this.index)
										{
											self.SwitchImg(this.index);
										}
									else
										{
											if(self.SwitchTimer)
												{
													clearTimeout(self.SwitchTimer);
													self.SwitchTimer=0;
													step=0;
												}
											if(self.AnimationTimer)
												{
													clearTimeout(self.AnimationTimer);
													self.AnimationTimer=0;
												}
								self.SwitchTimer = setTimeout(function(){self.autorun=1;self.SwitchImg('auto');},50000);
										}
								}
							else
								{
									if(self.current != this.index)
										{
											self.showclick(this.index);
										}
								}
						}
					divs[i].onclick = function()
						{
							self.hideclick();
							self.nomouseover=1;
							if(self.current != this.index)
								{
									self.SwitchImg(this.index);
								}
							else
								{
									if(self.SwitchTimer)
										{
											clearTimeout(self.SwitchTimer);
											self.SwitchTimer=0;
											step=0;
										}
									if(self.AnimationTimer)
										{
											clearTimeout(self.AnimationTimer);
											self.AnimationTimer=0;
										}
						self.SwitchTimer = setTimeout(function(){self.autorun=1;self.SwitchImg('auto');},50000);
								}
						}
					imgs = divs[i].getElementsByTagName("img");
					for(var ii=0;ii<imgs.length;ii++)
						{
							if(imgs[ii].className == "dsimg")
								{
									dsimgarray[divsindex] = imgs[ii];
								}
							if(imgs[ii].className == "simg")
								{
									simgarray[divsindex] = imgs[ii];
								}
							if(imgs[ii].className == "clickhere")
								{
									clickarray[divsindex] = imgs[ii];
								}
						}							
					divsindex++;
				}
			if(divs[i].className == "contentpanel")
				{
					contentarray[contentindex] = divs[i];
					contentindex++;
				}
		}
	self.SwitchTimer=setTimeout(function(){self.SwitchImg('auto');},50);

	this.showclick = function(x)
		{
			self.hideclick();
			clickarray[x].style.display="block";
		}

	this.hideclick = function()
		{
			for(var i =2;i<clickarray.length;i++)
				{
					clickarray[i].style.display="none";
				}
		}

	this.SwitchImg = function(x)
		{
			if(self.SwitchTimer)
				{
					clearTimeout(self.SwitchTimer);
					self.SwitchTimer=0;
					step=0;
				}
			if(self.AnimationTimer)
				{
					clearTimeout(self.AnimationTimer);
					self.AnimationTimer=0;
				}
			for(var i=0;i<simgarray.length;i++)
				{
					simgarray[i].style.opacity = 0;
					simgarray[i].style.filter="alpha(opacity=0)";
					contentarray[i].style.display = "none";
				}
			
			if(x != "auto")
				{
					self.current = x;
					self.autorun = 0;
					if(x > 1)
						{
							self.SwitchTimer = setTimeout(function(){self.autorun=1;self.SwitchImg('auto');},500000);
						}
				}
			else
				{
					self.current++;
					if(self.current == simgarray.length)
						{
							self.current = 2;
						}
				}
			contentarray[self.current].style.display = "block";
			self.animate();
		}
	this.animate = function()
		{
			if(step>100)
				{
					self.AnimationTimer=0;
					step=0;
					if(!self.current)
						{
							if(!window.c){window.c=new carousel();}
						}
					if(self.autorun)
						{
							if(self.first)
								{
									timedelay = 6000;
									self.first = 0;
								}
							else
								{
									timedelay = 3000;
								}
							self.SwitchTimer=setTimeout(function(){self.SwitchImg('auto');},timedelay);
						}
				}
			else
				{
					simgarray[self.current].style.opacity = (step*.01);
					simgarray[self.current].style.filter="alpha(opacity="+step+")";
					step +=5;
					self.AnimationTimer=setTimeout(function(){self.animate();},50);
				}
		}
	
}

function beginanimation()
{
	var self=this;
	this.dimmer = document.getElementById("dimmer");
	this.logo = document.getElementById("modal");
	var step = 100;
	this.AnimationTimer = 0;
	self.AnimationTimer=setTimeout(function(){self.animatelogo();},2000);
	this.animatelogo = function()
		{
			if(step<0)
				{
					self.AnimationTimer=0;
					self.logo.style.display="none";
					step=100;
					self.animatedimmer();
				}
			else
				{
					self.logo.style.opacity = (step*.01);
					self.logo.style.filter="alpha(opacity="+step+")";
					step -= 2;
					self.AnimationTimer=setTimeout(function(){self.animatelogo();},25);
				}
		}
	this.animatedimmer = function()
		{
			if(step<0)
				{
					self.AnimationTimer=0;
					self.dimmer.style.display="none";
					window.f = new sfader();
					if(location.pathname == "/contact"){window.f.nomouseover = 1;window.f.SwitchImg(1);}
				}
			else
				{
					self.dimmer.style.opacity = (step*.01);
					self.dimmer.style.filter="alpha(opacity="+step+")";
					step -= 10;
					self.AnimationTimer=setTimeout(function(){self.animatedimmer();},25);
				}
		}
}
