var $DOM = YAHOO.util.Dom;
var $EVENT = YAHOO.util.Event;

var keys = null;
var contentl = null;
var contentr = null;
var selected = null;

var turn = 1;
var spin = null;

function isIE() {
	
	var ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
	
	if (ie7) {
		return true;
	} else {
		return false;	
	}

}

function init() {
	// console.log('init');	
}

/*
function hideKey(key, hide) {
	$EVENT.removeListener(tasters, 'click');
	
	currentSelection = key;
	key.className = 'taster-selected';
	var myAnim = new YAHOO.util.Anim(key, { height: { to: detailHeight } }, 1, YAHOO.util.easeBoth);
	myAnim.animate();
	
	var visible = function() { hide.className = 'taster-detail'; $EVENT.on(tasters, 'click', handleClick); } 
	var myAnim = new YAHOO.util.Anim(hide, { height: { to: 0 } }, 1, YAHOO.util.easeBoth);
	myAnim.onComplete.subscribe(visible);
	myAnim.animate();
}

function showKey(key) {
	$EVENT.removeListener(tasters, 'click');
	key.className = 'taster-selected';
	var enable = function() { $EVENT.on(tasters, 'click', handleClick); } 
	var myAnim = new YAHOO.util.Anim(key, { height: { to: detailHeight } }, 1, YAHOO.util.easeBoth);
	myAnim.onComplete.subscribe(enable);
	myAnim.animate();
	$EVENT.removeListener(tasters, 'click');
}
*/

function handleClick(e) {


    clearInterval(spin);
	var target = $EVENT.getTarget(e);

	// ignore links
	if ('a' == target.nodeName.toLowerCase()) {
		return;
	}
	
	if ('h2' == target.nodeName.toLowerCase()) {
		var target = $DOM.getAncestorBy(target, function(el){
		return $DOM.hasClass(el, 'accordion-key');
		});
	}
		
	if (selected != target) {
		
		var key = 'accordion-content-' + target.id.substring(14);
		var show = $DOM.get(key, 'div');
		var key = 'accordion-content-' + selected.id.substring(14);
        var hide = $DOM.get(key, 'div');
		//get the selected one 
		var key = 'accordion-key-' + selected.id.substring(14);
        var hided = $DOM.get(key, 'div');
		
		var key = 'accordion-key-' + target.id.substring(14);
        var showd = $DOM.get(key, 'div');
		
		//console.log(showd);
		
		turn = target.id.substring(14);
		
		if(turn == 3){
		
		turn = 0;
		
		}
		
		//console.log(turn);

		$EVENT.removeListener(keys, 'click');
		
		var enable = function() { $EVENT.on(keys, 'click', handleClick); } 
		
		var hideStyle = function() {
		
			hide.style.visibility = 'hidden';
		
		}
		var showStyle = function() {
			
			show.style.visibility = 'visible';
			
		}
		
		var hideSelectedStyle = function() {
			
			$DOM.removeClass(hided,'selected');
			
		}
		
		var showSelectedStyle = function() {
			
			$DOM.addClass(showd,'selected');
			
		}
		
		var showAnim = new YAHOO.util.Anim(show, { height: { to: 254 } }, 0.8, YAHOO.util.Easing.easeBoth);
		showAnim.onStart.subscribe(showStyle);
		showAnim.onStart.subscribe(hideSelectedStyle);
		showAnim.onStart.subscribe(showSelectedStyle);
		showAnim.onComplete.subscribe(enable);
		
		var hideAnim = new YAHOO.util.Anim(hide, { height: { to: 0 } }, 0.8, YAHOO.util.Easing.easeBoth);
		hideAnim.onComplete.subscribe(hideStyle);
		
		
		
		hideAnim.animate();
		showAnim.animate();
		
		selected = target;

	}
	
}

function handleStop(e) {
clearInterval(spin);	
}

function timer(){
	
	
	spin = setInterval(function(){
	//console.log("123");
	
	//console.log(keys[1].id);
	//console.log(keys[2].id);
	//console.log(keys[0].id);
	
		var key = 'accordion-content-' + keys[turn].id.substring(14);
		var show = $DOM.get(key, 'div');
		var key = 'accordion-key-' + keys[turn].id.substring(14);
		var showd = $DOM.get(key, 'div');
		var key = 'accordion-content-' + selected.id.substring(14);
		var hide = $DOM.get(key, 'div');
		var key = 'accordion-key-' + selected.id.substring(14);
		var hided = $DOM.get(key, 'div');

        //console.log(turn);
		
		var hideStyle = function() {
		
			hide.style.visibility = 'hidden';
			$DOM.removeClass(hided,'selected');
		
		}
		
		var hideStyleSelected = function() {
		
			$DOM.removeClass(hided,'selected');
		
		}
		var showStyle = function() {
			
			show.style.visibility = 'visible';
		    
			
		}
		
		var showStyleSelected = function() {
			
			$DOM.addClass(showd,'selected');
	
		}
		
		
		
		var showAnim = new YAHOO.util.Anim(show, { height: { to: 254 } }, 0.8, YAHOO.util.Easing.easeBoth);
		showAnim.onStart.subscribe(showStyle);
		showAnim.onStart.subscribe(hideStyleSelected);

		
		var hideAnim = new YAHOO.util.Anim(hide, { height: { to: 0 } }, 0.8, YAHOO.util.Easing.easeBoth);
		hideAnim.onComplete.subscribe(hideStyle);
		hideAnim.onStart.subscribe(showStyleSelected);
		
		hideAnim.animate();
		showAnim.animate();
		
		selected = $DOM.get(keys[turn].id, 'div');
		
        if(turn == keys.length-1){
		turn = 0;
		}else{
		turn = turn+1; 	
		}
		
		
		
		//console.log(selected);
		//console.log(turn);
		//console.log(keys.length);
		
								}, 5000);


}

function handleMoveout(e) {
//console.log("moved out ");
timer();
}

$EVENT.onDOMReady(function(){						 
	
	selected = $DOM.get('accordion-key-1', 'div');	
	keys = $DOM.getElementsByClassName('accordion-key', 'div');
	contentl = $DOM.getElementsByClassName('accordion-content', 'div');
	
	if(contentl != null){
	timer();
	
	}
	
	if (keys) {
		$EVENT.on(keys, 'mousedown', handleClick);
		$EVENT.on(contentl, 'mouseover', handleStop);
		$EVENT.on(contentr, 'mouseover', handleStop);
		$EVENT.on(contentl, 'mouseout', handleMoveout);
		$EVENT.on(contentr, 'mouseout', handleMoveout);
	}
	
});
