function initLightboxTriggers(){
	// for each lite_litebox occurence
	$(".lite_litebox").each(
		function(){
			$(this).aslLiteLightbox({});
		}
	);
}

function initIndexImageRotators(){
			
	aslImageRotators = {
		_imageRotators: [],
		_currentImageRotatorIndex: -1
	}

	// for each index_work_thumbnails occurence
	$(".index_work_thumbnails").each(
		function(){
			// create an aslImageRotator instance
			aslImageRotators._imageRotators.push($(this).children().aslImageRotator({viewportWidth:230, viewportHeight:110, scrollIn:true, scrollOut:true, fadeIn:false, transitionDuration:1000, onComplete:onIndexImageRotationComplete}));
		}
	);
	
	setTimeout(rotateNextIndexImage, 2000);
}
		
function onIndexImageRotationComplete(e){
	setTimeout(rotateNextIndexImage, 2000);
}
		
function rotateNextIndexImage(){
	if(aslImageRotators._currentImageRotatorIndex == aslImageRotators._imageRotators.length - 1){
		aslImageRotators._currentImageRotatorIndex = 0;
	}
	else{
		aslImageRotators._currentImageRotatorIndex++;	
	}
	aslImageRotators._imageRotators[aslImageRotators._currentImageRotatorIndex].showNextItem();
}

function loadIndexTweet(){
	$.getJSON("http://search.twitter.com/search.json?from=andylemay&callback=?", 
		function(data){
			onIndexTweetLoadComplete(data);
		}
	);
}


function drawAvailabilityModule(pData){
	
	var i;
	var __canvas = Raphael("availability", 240, 70);
	var __verticalLineDist = Math.round(239 / (pData.length - 1));
	for(i = 0; i < pData.length; i++){
		var __pathString = "M" + Math.round(((__verticalLineDist * i))).toString() + " 0L" + Math.round(((__verticalLineDist * i))).toString() + " 50";
		if(i > 0 && i < pData.length - 1){
			var __verticalPath = __canvas.path(__pathString);
			__verticalPath.attr("stroke", "#fff");
			__verticalPath.attr("stroke-width", "2");
			__verticalPath.attr("stroke-opacity", ".5");
			var __label = __canvas.text(Math.round(((__verticalLineDist * i))), 55, pData[i].monthLabel);
			__label.attr("fill", "#fff");
			__label.attr("fill-opacity", ".5");
		}
		var __circle = __canvas.circle(Math.round(((__verticalLineDist * i))), Math.round((1 - pData[i].value) * 50), 4);
		__circle.attr("fill", "#fff");
		__circle.attr("fill-opacity", "1");
		__circle.attr("stroke-opacity", "0");
		
		if(i > 0){
			var __path = __canvas.path("M" + Math.round(((__verticalLineDist * (i - 1)))).toString() +" " + Math.round((1 - pData[i-1].value) * 50).toString() + "L" + Math.round(((__verticalLineDist * i))).toString() + " " + Math.round((1 - pData[i].value) * 50).toString());
			__path.attr("stroke", "#fff");
			__path.attr("stroke-width", "2");
			__path.attr("stroke-opacity", "1");
		}
	}
	
	var __baseline = __canvas.path("M0 40L239 40");
	__baseline.attr("stroke", "#fff");
	__baseline.attr("stroke-width", "2");
	__baseline.attr("stroke-opacity", ".5");


}

function findInString(pString, pPattern){
	var __indexes = [];
	var __position = pString.indexOf(pPattern);
	while(__position > -1) {
		__indexes.push(__position);
	    __position = pString.indexOf(pPattern, __position + 1);
	}
	return __indexes;
}

/**
*   Handlers
*/

function onIndexTweetLoadComplete(data){
	
	var __date, __dateString, i;
	
	var __targetTweet = {
		text:"According to Twitter, I haven't said anything recently!",
		rawDate:""	
	};
	
	
	if(data.results.length > 0){
	
		__targetTweet.text = data.results[0].text;
		__targetTweet.rawDate = data.results[0].created_at;
		
		// loop through tweets to see if we can find one that doesn't start with @
		// surprisingly, there's no way to do this with the current Twitter search API
		for(i = 0; i < data.results.length; i++){
	
			if(data.results[i].text.charAt(0) != "@"){
				__targetTweet.text = data.results[i].text;
				__targetTweet.rawDate = data.results[i].created_at;
				break;
			}
		}
	}
	
	if(__targetTweet.rawDate != ""){
		__date = new Date(__targetTweet.rawDate);
		__dateString = __date.toDateString() + " - " + __date.toLocaleTimeString();
	}
	else{
		__dateString = "";
	}
	
	// let's turn any links in the post content into actual hrefs
	var __hrefPositions = findInString(__targetTweet.text, "http://");
	
	if(__hrefPositions.length > 0){
		for(i = 0; i < __hrefPositions.length; i++){
			
		}
	}
	
	$("#portrait_tweet_content_msg").html(__targetTweet.text);
	$("#portrait_tweet_content_date").html(__dateString);
	
	
}

function onIndexSocialPresenceItemMouseOver(e){
	$(this).parent().find('.index_social_presences_item_background').stop(true, false).animate({opacity:'.5'}, 50);
}

function onIndexSocialPresenceItemMouseOut(e){
	$(this).parent().find('.index_social_presences_item_background').stop(true, false).animate({opacity:'.25'}, 50);
}

function onIndexPortraitClick(e){
	window.open("http://www.twitter.com/andylemay", '_blank');
}

function onIndexPortraitMouseOver(e){
	$('#portrait_tweet').stop(true, false).animate({opacity:'1'});
}

function onIndexPortraitMouseOut(e){
	$('#portrait_tweet').stop(true, false).animate({opacity:'0'});
}
