/**
 * Transition effects for Main News
 * author: Alex Vigdor     copyright 2007 ABCNews Internet Ventures
 **/
 
var tsPane = new Pane("topstories-widget");
tsPane.addMouseOver(function(){tsPane.engage();});
tsPane.addMouseOut(function(){tsPane.disengage();});
tsPane.addEngage(pauseMn);
tsPane.addDisengage(resumeMn);

var plPane = new Pane("topstories-playlist");
plPane.addYScrollbar();
plPane.setMaxAge(100000);
plPane.setAutoReload(true);
plPane.addMouseOver(function(){plPane.engage();});
plPane.addMouseDown(function(){plPane.engage()});
plPane.addMouseWheel(function(){plPane.engage()});
plPane.addMouseOut(function(){plPane.disengage()});
plPane.addEngage(pauseMn);
plPane.addDisengage(resumeMn);

function pauseMn(){
	if(typeof mainNewsPlaylist !='undefined'){
		if(plPane.engaged || tsPane.engaged){
			mainNewsPlaylist.pause();
		}
		//tsPane.cancelAnimation();
	}
};

function resumeMn(){
	if(typeof mainNewsPlaylist !='undefined'){
		if(!plPane.engaged && !tsPane.engaged){
			mainNewsPlaylist.resume();
		}
	} 
};

var mainNewsItemTimeout;
var mainNewsItemMouseover = function(id){
	var sid = id;
	if(typeof mainNewsPlaylist !='undefined'){
		var func = function(){
			mainNewsItemTimeout = null;
			mainNewsPlaylist.gotoItem('mainNews'+sid,mnDropAnim);
			sid=null;
		}
		mainNewsItemTimeout = window.setTimeout(func,310);
	}
}
var mainNewsItemMouseout = function(evt){
	if(mainNewsItemTimeout != null){
		window.clearTimeout(mainNewsItemTimeout);
	}
}
var playlistControlProducer = function() { return document.getElementById(mainNewsPlaylist.currentItem.id); };


var gotoMainNewsStory = function(e){
	var button = (e != null ? (e.which ? e.which : e.button) : 1);
	if(button==1){
		var nl = tsPane.content.getElementsByTagName('a');
		if(nl.length > 0){
			var a = nl.item(0);
			var follow = true;
			if(typeof a.onclick == 'function'){
				if(!a.onclick()){
					follow=false;
				}
			}
			if(follow){
				window.location.href = a.getAttribute('href');
			}
		}
	}
}



// ASV addeded 10/16/2007 slide animations

var slideScrollSeq = plPane.makeYScrollSequence(playlistControlProducer);
slideScrollSeq.duration=600;
slideScrollSeq.ease = Easing['easeBothStrong']

var tsControlFo = new Sequence();
tsControlFo.duration=150;
tsControlFo.start=.99;
tsControlFo.end=.618;
tsControlFo.min=.1;
tsControlFo.init=function(){
	setOpacity(document.getElementById('topstories-controls'),.99);
}
tsControlFo.handler=function(val){
	setOpacity(document.getElementById('topstories-controls'),val);
}
tsControlFo.callback=function(){
	setOpacity(document.getElementById('topstories-controls'),.618);
}

var tsControlFi = new Sequence();
tsControlFi.duration=300;
tsControlFi.start=.618;
tsControlFi.end=.99;
tsControlFi.min=.1;
tsControlFi.init=function(){
	setOpacity(document.getElementById('topstories-controls'),.618);
}
tsControlFi.handler=function(val){
	setOpacity(document.getElementById('topstories-controls'),val);
}
tsControlFi.callback=function(){
	setOpacity(document.getElementById('topstories-controls'),.99);
}

var mnLeftAnim = new Animation();
mnLeftAnim.frameinterval = 5;

//old moving left
var mnLeftOldSlide = new Sequence();
mnLeftOldSlide.start = 0;
mnLeftOldSlide.end = -330;
mnLeftOldSlide.duration = 600;
mnLeftOldSlide.min=0.5;
mnLeftOldSlide.ease = Easing['easeBothStrong'];
mnLeftOldSlide.init = function(){
	setOpacity(tsPane.oldContent,1);
}
mnLeftOldSlide.callback = function(){
	tsPane.oldContent.style.left = "-330px";
};
mnLeftOldSlide.handler = function(val){
	val = Math.round(val);
	tsPane.oldContent.style.left = val+"px";
	return val;
};
mnLeftAnim.addSequence(0,mnLeftOldSlide);

//new moving left
var mnLeftSlide = new Sequence();
mnLeftSlide.start = 330;
mnLeftSlide.end = 0;
mnLeftSlide.duration = 600;
mnLeftSlide.min=0.5;
mnLeftSlide.ease = Easing['easeBothStrong'];
mnLeftSlide.init = function(){
	if(tsPane.content){
		setOpacity(tsPane.content,1);
		tsPane.content.style.left="330px";
	}	
	if(tsPane.content && tsPane.content.parentNode != tsPane.viewport){
		tsPane.viewport.appendChild(tsPane.content);
	};
	mnRelatedTweak();
};
mnLeftSlide.handler = function(val){
	val = Math.round(val);
	tsPane.content.style.left = val+"px";
	return val;
};
mnLeftSlide.callback = function(){
	tsPane.content.style.left = "0px";
}
//mnLeftAnim.addSequence(0,tsControlFo);
mnLeftAnim.addSequence(0,mnLeftSlide);
mnLeftAnim.addSequence(0,slideScrollSeq);
//mnLeftAnim.addSequence(500,tsControlFi);

//old moving right
var mnRightAnim = new Animation();
mnRightAnim.frameinterval = 5;

var mnRightOldSlide = new Sequence();
mnRightOldSlide.start = 0;
mnRightOldSlide.end = 330;
mnRightOldSlide.duration = 600;
mnRightOldSlide.min=0.5;
mnRightOldSlide.ease = Easing['easeBothStrong'];
mnRightOldSlide.init = function(){
	setOpacity(tsPane.oldContent,1);
}
mnRightOldSlide.callback = function(){
	tsPane.oldContent.style.left = "330px";
};
mnRightOldSlide.handler = function(val){
	val = Math.round(val);
	tsPane.oldContent.style.left = val+"px";
	return val;
};
mnRightAnim.addSequence(0,mnRightOldSlide);

//new moving Right
var mnRightSlide = new Sequence();
mnRightSlide.start = -330;
mnRightSlide.end = 0;
mnRightSlide.duration = 600;
mnRightSlide.min=0.5;
mnRightSlide.ease = Easing['easeBothStrong'];
mnRightSlide.init = function(){
	if(tsPane.content){
		setOpacity(tsPane.content,1);
		tsPane.content.style.left="-330px";
	}	
	if(tsPane.content && tsPane.content.parentNode != tsPane.viewport){
		tsPane.viewport.appendChild(tsPane.content);
	};
	mnRelatedTweak();
};
mnRightSlide.handler = function(val){
	val = Math.round(val);
	tsPane.content.style.left = val+"px";
	return val;
};
mnRightSlide.callback = function(){
	tsPane.content.style.left = "0px";
}
//mnRightAnim.addSequence(0,tsControlFo);
mnRightAnim.addSequence(0,mnRightSlide);
mnRightAnim.addSequence(0,slideScrollSeq);
//mnRightAnim.addSequence(500,tsControlFi);

var defaultScrollSeq = plPane.makeYScrollSequence(playlistControlProducer);
defaultScrollSeq.duration=1200;
defaultScrollSeq.ease = Easing['easeBothStrong']

var mnDefaultAnim = new Animation();

//old moving left
var mnDefaultOldSlide = new Sequence();
mnDefaultOldSlide.start = 0;
mnDefaultOldSlide.end = -330;
mnDefaultOldSlide.duration = 1200;
mnDefaultOldSlide.min=0.5;
mnDefaultOldSlide.ease = Easing['easeBothStrong'];
mnDefaultOldSlide.init = function(){
	setOpacity(tsPane.oldContent,1);
}
mnDefaultOldSlide.callback = function(){
	tsPane.oldContent.style.left = "-330px";
};
mnDefaultOldSlide.handler = function(val){
	val = Math.round(val);
	tsPane.oldContent.style.left = val+"px";
	return val;
};
mnDefaultAnim.addSequence(0,mnDefaultOldSlide);

//new moving left
var mnDefaultSlide = new Sequence();
mnDefaultSlide.start = 330;
mnDefaultSlide.end = 0;
mnDefaultSlide.duration = 1200;
mnDefaultSlide.min=0.5;
mnDefaultSlide.ease = Easing['easeBothStrong'];
mnDefaultSlide.init = function(){
	if(tsPane.content){
		setOpacity(tsPane.content,1);
		tsPane.content.style.left="330px";
	}	
	if(tsPane.content && tsPane.content.parentNode != tsPane.viewport){
		tsPane.viewport.appendChild(tsPane.content);
	};
	mnRelatedTweak();
};
mnDefaultSlide.handler = function(val){
	val = Math.round(val);
	tsPane.content.style.left = val+"px";
	return val;
};
mnDefaultSlide.callback = function(){
	tsPane.content.style.left = "0px";
}
//mnDefaultAnim.addSequence(0,tsControlFo);
mnDefaultAnim.addSequence(0,mnDefaultSlide);
mnDefaultAnim.addSequence(0,defaultScrollSeq);
//mnDefaultAnim.addSequence(1100,tsControlFi);

var mnQuickAnim = new Animation();
var mnQSeq = new Sequence();
mnQSeq.init=function(){
 if(tsPane.content && tsPane.content.parentNode != tsPane.viewport){
		tsPane.viewport.appendChild(tsPane.content);
 }
 mnRelatedTweak();
}
mnQuickAnim.addSequence(0,mnQSeq);

var mnDropAnim = new Animation();
var dxpane = getPane("topstories-widget").makeCrossFadeSequence();
dxpane.duration=600;
dxpane.min=.03;
dxpane.ease = Easing['easeOut'];
var dxinit = dxpane.init;
dxpane.init = function(){
	dxinit();
	mnRelatedTweak();
};
//these transitions happen onmouseover
mnDropAnim.addSequence(0,dxpane);
mnDropAnim.addSequence(0,slideScrollSeq);

//function to show/hide related list items based on visibility
function mnRelatedTweak(){
	if(tsPane.content){
		var rel = getElementsWithAttribute(tsPane.content,'class','related');
		if(rel.length > 0){
			rel[0].style.visibility="visible";
			var nl = rel[0].getElementsByTagName('li');
			var i;
			var pos;
			var height;
			for(i=0;i<nl.length;i++){
				pos = calcPosition(nl[i],"Top",tsPane.content);
				height = nl[i].offsetHeight;
				if((pos+height)>tsPane.viewport.offsetHeight){
					if(i==0){
						// hide related area altogether if no items will be visible
						rel[0].style.visibility="hidden";
						return;
					}
					nl[i].style.visibility="hidden"
				}
				else{
					nl[i].style.visibility="visible"
				}
			}
		}
	}
}