/**
 *
 * Author: Michael Kinkaid
 * Version 1
 * 
 * Wee Custom Moo Image Rotator.
 *
 **/
var imageArray = new Array();
var linkArray = new Array();
var loadedImage = new Array();
var pointer = null;
var zIndex = 2;
var mkIntervalId;
var count = 0;
var onLoadCalled = 0;


window.addEvent('unload', function(e){
		window.clearInterval(mkIntervalId);
		mkIntervalId = null;
	});

Window.addEvent('domready', function(){
	mkIntervalId = null;
	requestImages = new Ajax('getImageRotatorData.asp', {
		method: 'post',
		data: 'name=michael',
		onComplete: loadedImageInfo.bind(this),
		evalScripts: false
	}).request();
});


function loadedImageInfo(Response){	
	var imageJSON = Json.evaluate(Response);
	
	for(var i=0; i< imageJSON.images.length; i++){
		imageArray[i] = imageJSON.images[i].src;
		linkArray[i] = imageJSON.images[i].link;
	}
	
	$("lnk1").addEvent('click', function(){loadImage(1, imageArray[0]);});
	$("lnk2").addEvent('click', function(){loadImage(2, imageArray[1]);});
	$("lnk3").addEvent('click', function(){loadImage(3, imageArray[2]);});
	
	//Start her up!
	callLoadImage();
}


function callLoadImage(){

	if(count >= 3){
		count = 0;
	}
	
	var linkId = count+1;
	loadImage(linkId, imageArray[count]);
}

function setTimer(){
	if((mkIntervalId == null)){
		mkIntervalId = setInterval("callLoadImage()", 6000);
	}

}

function loadImage(lnkNum, src){
	if(mkIntervalId != null){
		window.clearInterval(mkIntervalId);
		mkIntervalId = null;
	}
	
	var lnkRef = "lnk" + lnkNum;
	
	count = lnkNum - 1;
	var thisLink = linkArray[count];
	
	$("lnk1").className = "mkd-lnk-img";
	$("lnk2").className = "mkd-lnk-img";
	$("lnk3").className = "mkd-lnk-img";
	$(lnkRef).className = "mkd-lnk-active";

	var imageIsLoaded = false;
	
	for(var i=0; i<loadedImage.length;i++){
		if(loadedImage[i] == src){
			imageIsLoaded = true;			
		}
	}
	
	if(imageIsLoaded == true){		
		var newId = lnkRef + "_img";
		var currentImage = $(newId);
		
		// Fade in new (current) image
		var opacityIn = new Fx.Style(currentImage, 'opacity', {duration:500, onComplete:function(){}});
		opacityIn.start(0, 1);
		
		// Fade out old image
		if(pointer != null) {
			var fadeOutOld = new Fx.Style(pointer, 'opacity', {duration:500, onComplete:function(){
					pointer = currentImage;
					setTimer();						
				}
			});
			fadeOutOld.start(1, 0);
		}
		else{
			
		}	
		
		count++;				
	}
	else{
		
		var newId = lnkRef + "_img";
		var fullPath = "images/imageRotator/img/" + src;
		new Asset.image(fullPath, {
			id: newId,
			title:"Welcome to T-Shirt Monster!", 
			onload: function(){
				if(onLoadCalled == 0){
					onLoadCalled = 1;
					loadedImage.push(src);
					
					this.setStyles({
						'position': 'absolute',
						'z-index': zIndex,
						'opacity':0,
						'cursor':'pointer'
					});
					
					//add event here
					this.addEvent('click', function(){window.location=thisLink});
	
					
					this.inject($('mkd-img-container'));
					
					var currentImage = this;
					
					// Fade out old image
					if(pointer != null) {
						var fadeOutOld = new Fx.Style(pointer, 'opacity', {duration:500, onComplete:function(){}});			
						fadeOutOld.start(1, 0);
					}
					
					// Fade in new (current) image
					var opacityIn = new Fx.Style(currentImage, 'opacity', {duration:500, onComplete:function(){
							if(mkIntervalId == null){
								pointer = currentImage;
								zIndex++;
								count++;							
								setTimer();
								onLoadCalled = 0;
							}							
						}
					});
					
					opacityIn.start(0, 1);
				}									
			}
		});	
	}
}