var $jq = jQuery.noConflict();

previousText = 'Previous';
nextText = 'Next';
effectSpeed = 1000;
effectDelay = 500;
leftActive = 'scroll_left_active.gif';
rightActive='scroll_right_active.gif';
leftInactive = 'scroll_left_inactive.gif';
rightInactive = 'scroll_right_inactive.gif';

leftTimer = new Array();
leftTimerRunning = new Array();
rightTimer = new Array();
rightTimerRunning = new Array();
itemWidth = new Array();
itemCount = new Array();
insideWidth = new Array();
outsideWidth = new Array();
outsideOffset = new Array();
insideOffset = new Array();
scrollPosition = new Array();
itemsToDisplay = new Array();
maxItemsDisplayed = new Array();


function checkLeftImage (scrollerIndex) {
	if (scrollPosition[scrollerIndex] > 0) {
		$jq('.scrollerLeft img', $jq('#scroller_'+scrollerIndex)).attr({src:leftActive,alt:previousText, title:previousText}).css('cursor','pointer');
	} else {
		$jq('.scrollerLeft img', $jq('#scroller_'+scrollerIndex)).attr({src:leftInactive,alt:'',title:''}).css('cursor','default');
	}
}


function checkRightImage (scrollerIndex) {
	if (itemsToDisplay[scrollerIndex] > (maxItemsDisplayed[scrollerIndex] + scrollPosition[scrollerIndex])) {
		$jq('.scrollerRight img', $jq('#scroller_'+scrollerIndex)).attr({src:rightActive,alt:nextText,title:nextText}).css('cursor','pointer');
	} else {
		$jq('.scrollerRight img', $jq('#scroller_'+scrollerIndex)).attr({src:rightInactive,alt:'',title:''}).css('cursor','default');
	}
}


function moveLeft (scrollerIndex) {
	stopRight(scrollerIndex);
	if (scrollPosition[scrollerIndex] > 0) {
		scrollPosition[scrollerIndex]--;
		$jq('.scrollerOutside', $jq('#scroller_'+scrollerIndex)).scrollTo('-='+itemWidth[scrollerIndex],effectSpeed,{axis:"x", onAfter:function(){
			checkLeftImage (scrollerIndex)
			checkRightImage (scrollerIndex)
			leftTimer[scrollerIndex] = setTimeout("moveLeft(scrollerIndex)",effectDelay)
			if(leftTimerRunning[scrollerIndex]==0) {
				clearTimeout(leftTimer[scrollerIndex])
			}
		}});
	} else {
		stopLeft(scrollerIndex);
	}
}


function moveRight (scrollerIndex) {
	stopLeft(scrollerIndex);
	if (itemsToDisplay[scrollerIndex] > (maxItemsDisplayed[scrollerIndex] + scrollPosition[scrollerIndex])) {
		scrollPosition[scrollerIndex]++
		$jq('.scrollerOutside', $jq('#scroller_'+scrollerIndex)).scrollTo('+='+itemWidth[scrollerIndex],effectSpeed,{axis:"x", onAfter:function(){
			checkLeftImage (scrollerIndex)
			checkRightImage (scrollerIndex)
			rightTimer[scrollerIndex] = setTimeout("moveRight(scrollerIndex)",effectDelay)
			if(rightTimerRunning[scrollerIndex]==0) {
				clearTimeout(rightTimer[scrollerIndex])
			}
		}});
	} else {
		stopRight(scrollerIndex);
	}
}



function stopLeft (scrollerIndex) {
	leftTimerRunning[scrollerIndex] = 0
}

function stopRight (scrollerIndex) {
	rightTimerRunning[scrollerIndex] = 0
}

function getScrollerIndex(scrollerImage) {
	return $jq(scrollerImage).parents('.scroller').attr('id').split('_')[1];
}


$jq(document).ready(function() {
	
	
	$jq('.scroller').each(function(index) {
		$jq(this).attr('id','scroller_'+index);
		itemWidth[index] = $jq('.scrollerItem', $jq(this)).outerWidth();
		itemCount[index] = $jq('.scrollerItem', $jq(this)).length;
		insideWidth[index] = itemCount[index]*itemWidth[index];
		outsideWidth[index] = $jq('.scrollerOutside', $jq(this)).innerWidth();
		$jq('.scrollerInside', $jq(this)).css('width', insideWidth[index]);
		outsideOffset[index] = $jq('.scrollerOutside', $jq(this)).offset().left;
		insideOffset[index] = $jq('.scrollerInside', $jq(this)).offset().left;
		scrollPosition[index] = Math.round((outsideOffset[index] - insideOffset[index])/itemWidth[index]);
		itemsToDisplay[index] = insideWidth[index]/itemWidth[index];
		maxItemsDisplayed[index] = outsideWidth[index]/itemWidth[index];
		leftTimerRunning[index] = 0;
		rightTimerRunning[index] = 0;
		checkLeftImage (index);
		checkRightImage (index);
	});
	
	$jq('.scrollerRight img').click(function() {
		scrollerIndex = getScrollerIndex(this);
		stopLeft (scrollerIndex);
		if(rightTimerRunning[scrollerIndex] == 0) {
			rightTimerRunning[scrollerIndex] = 1
			moveRight (scrollerIndex);
		}
	});
	$jq('.scrollerLeft img').click(function() {
		scrollerIndex = getScrollerIndex(this);
		stopRight (scrollerIndex);
		if(leftTimerRunning[scrollerIndex] == 0) {
			leftTimerRunning[scrollerIndex] = 1
			moveLeft (scrollerIndex);
		}
	});
	$jq('.scrollerRight img').mouseout(function() {
		scrollerIndex = getScrollerIndex(this);
		stopRight (scrollerIndex);
	});
	$jq('.scrollerLeft img').mouseout(function() {
		scrollerIndex = getScrollerIndex(this);
		stopLeft (scrollerIndex);
	});	

	
});

/*****************************/
/* mike - extra blogscroller */
/*****************************/

scrollleftActive = 'scroll_left_active_small.gif';
scrollrightActive='scroll_right_active_small.gif';
scrollleftInactive = 'scroll_left_inactive_small.gif';
scrollrightInactive = 'scroll_right_inactive_small.gif';

blogleftTimer = new Array();
blogleftTimerRunning = new Array();
blogRightTimer = new Array();
blogRightTimerRunning = new Array();
blogitemWidth = new Array();
blogitemCount = new Array();
blogInsideWidth = new Array();
blogoutsideWidth = new Array();
blogoutsideOffset = new Array();
bloginsideOffset = new Array();
blogscrollPosition = new Array();
blogitemsToDisplay = new Array();
blogmaxItemsDisplayed = new Array();


function blogcheckLeftImage (blogscrollerIndex) {
	if (blogscrollPosition[blogscrollerIndex] > 0) {
		$jq('.blogscrollerLeft img', $jq('#blogscroller_'+blogscrollerIndex)).attr({src:scrollleftActive,alt:previousText, title:previousText}).css('cursor','pointer');
	} else {
		$jq('.blogscrollerLeft img', $jq('#blogscroller_'+blogscrollerIndex)).attr({src:scrollleftInactive,alt:'',title:''}).css('cursor','default');
	}
}


function blogcheckRightImage (blogscrollerIndex) {
	if (blogitemsToDisplay[blogscrollerIndex] > (blogmaxItemsDisplayed[blogscrollerIndex] + blogscrollPosition[blogscrollerIndex])) {
		$jq('.blogscrollerRight img', $jq('#blogscroller_'+blogscrollerIndex)).attr({src:scrollrightActive,alt:nextText,title:nextText}).css('cursor','pointer');
	} else {
		$jq('.blogscrollerRight img', $jq('#blogscroller_'+blogscrollerIndex)).attr({src:scrollrightInactive,alt:'',title:''}).css('cursor','default');
	}
}


function blogmoveLeft (blogscrollerIndex) {
	stopRight(blogscrollerIndex);
	if (blogscrollPosition[blogscrollerIndex] > 0) {
		blogscrollPosition[blogscrollerIndex]--;
		$jq('.blogscrollerOutside', $jq('#blogscroller_'+blogscrollerIndex)).scrollTo('-='+blogitemWidth[blogscrollerIndex],effectSpeed,{axis:"x", onAfter:function(){
			blogcheckLeftImage (blogscrollerIndex)
			blogcheckRightImage (blogscrollerIndex)
			blogleftTimer[blogscrollerIndex] = setTimeout("blogmoveLeft(blogscrollerIndex)",effectDelay)
			if(blogleftTimerRunning[blogscrollerIndex]==0) {
				clearTimeout(blogleftTimer[blogscrollerIndex])
			}
		}});
	} else {
		blogstopLeft(blogscrollerIndex);
	}
}


function blogmoveRight (blogscrollerIndex) {
	stopLeft(blogscrollerIndex);
	if (blogitemsToDisplay[blogscrollerIndex] > (blogmaxItemsDisplayed[blogscrollerIndex] + blogscrollPosition[blogscrollerIndex])) {
		blogscrollPosition[blogscrollerIndex]++
		$jq('.blogscrollerOutside', $jq('#blogscroller_'+blogscrollerIndex)).scrollTo('+='+blogitemWidth[blogscrollerIndex],effectSpeed,{axis:"x", onAfter:function(){
			blogcheckLeftImage (blogscrollerIndex)
			blogcheckRightImage (blogscrollerIndex)
			blogRightTimer[blogscrollerIndex] = setTimeout("blogmoveRight(blogscrollerIndex)",effectDelay)
			if(blogRightTimerRunning[blogscrollerIndex]==0) {
				clearTimeout(blogRightTimer[blogscrollerIndex])
			}
		}});
	} else {
		blogstopRight(blogscrollerIndex);
	}
}



function blogstopLeft (blogscrollerIndex) {
	blogleftTimerRunning[blogscrollerIndex] = 0
}

function blogstopRight (blogscrollerIndex) {
	blogRightTimerRunning[blogscrollerIndex] = 0
}

function getblogscrollerIndex(blogscrollerImage) {
	return $jq(blogscrollerImage).parents('.blogscroller').attr('id').split('_')[1];
}


$jq(document).ready(function() {
	
	
	$jq('.blogscroller').each(function(index) {
		$jq(this).attr('id','blogscroller_'+index);
		blogitemWidth[index] = $jq('.blogscrollerItem', $jq(this)).outerWidth();
		blogitemCount[index] = $jq('.blogscrollerItem', $jq(this)).length;
		blogInsideWidth[index] = blogitemCount[index]*blogitemWidth[index];
		blogoutsideWidth[index] = $jq('.blogscrollerOutside', $jq(this)).innerWidth();
		$jq('.blogscrollerInside', $jq(this)).css('width', blogInsideWidth[index]);
		blogoutsideOffset[index] = $jq('.blogscrollerOutside', $jq(this)).offset().left;
		bloginsideOffset[index] = $jq('.blogscrollerInside', $jq(this)).offset().left;
		blogscrollPosition[index] = Math.round((blogoutsideOffset[index] - bloginsideOffset[index])/blogitemWidth[index]);
		blogitemsToDisplay[index] = blogInsideWidth[index]/blogitemWidth[index];
		blogmaxItemsDisplayed[index] = blogoutsideWidth[index]/blogitemWidth[index];
		blogleftTimerRunning[index] = 0;
		blogRightTimerRunning[index] = 0;
		blogcheckLeftImage (index);
		blogcheckRightImage (index);
	});
	
	$jq('.blogscrollerRight img').click(function() {
		blogscrollerIndex = getblogscrollerIndex(this);
		blogstopLeft (blogscrollerIndex);
		if(blogRightTimerRunning[blogscrollerIndex] == 0) {
			//blogRightTimerRunning[blogscrollerIndex] = 1
			blogmoveRight (blogscrollerIndex);
		}
	});
	$jq('.blogscrollerLeft img').click(function() {
		blogscrollerIndex = getblogscrollerIndex(this);
		blogstopRight (blogscrollerIndex);
		if(blogleftTimerRunning[blogscrollerIndex] == 0) {
			//blogleftTimerRunning[blogscrollerIndex] = 1
			blogmoveLeft (blogscrollerIndex);
		}
	});
	$jq('.blogscrollerRight img').mouseout(function() {
		blogscrollerIndex = getblogscrollerIndex(this);
		blogstopRight (blogscrollerIndex);
	});
	$jq('.blogscrollerLeft img').mouseout(function() {
		blogscrollerIndex = getblogscrollerIndex(this);
		blogstopLeft (blogscrollerIndex);
	});	

	
});