function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

function addEvent(obj, evType, fn){ 
	if(obj.addEventListener){ 
		obj.addEventListener(evType, fn, false); 
		return true; 
	}else if(obj.attachEvent){ 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	}else{ 
		return false; 
	} 
}
addEvent(window, 'load', init);

function init(){
	//activateLinks();
	activateNumberLinks();
	switcher=setInterval('nextSlide(1)', 15000);
	imm=setInterval('immediateTab()', 1000);
}

function immediateTab(){
	var el=document.getElementById('passed').value;
	if((el!="") && (el!="undefined")){
	
		el=parseInt(el);
		jumpTo(el-1);	
	}
	clearInterval(imm);
}

function numberLinks(){
	var els=document.getElementById("promo-articles").getElementsByTagName("a");
	return els;
}

function activateNumberLinks(){
	var els=numberLinks();
	//var pause=document.getElementById("dash-pause");
	//var play=document.getElementById("dash-play");
	var slides=getElementsByClassName(document.getElementById("promo-excerpts"),"div","survey");
	//alert(slides);
	for(var i=0;i<els.length;i++){
		els[i].onclick=function(){
			var count=(this.id).split("-",2);
			count=(count[1]-1);
			clearClasses(els);
			
			stripClass(slides,"show");

			appendClass(slides[count], "show");
			
			this.className="on";
			//pause.className="hide";
			//play.className="show";
			
			clearInterval(switcher);
		}
	}
}

function jumpTo(slide){
	var els=numberLinks();
	var slides=getElementsByClassName(document.getElementById("promo-excerpts"),"div","survey");
	clearClasses(els);
	stripClass(slides,"show");
	appendClass(slides[slide], "show");
	els[slide].className="on";
}

function activateLinks(){
	var prev=document.getElementById("dash-prev");
	var pause=document.getElementById("dash-pause");
	var next=document.getElementById("dash-next");
	var play=document.getElementById("dash-play");
	
	prev.onclick=function(){
		prevSlide();
		pause.className="hide";
		play.className="show";
	}
	pause.onclick=function(){
		pauseSlide();
		pause.className="hide";
		play.className="show";
	}
	play.onclick=function(){
		playSlide();
		play.className="hide";
		pause.className="show";
	}
	next.onclick=function(){
		nextSlide(0);
		pause.className="hide";
		play.className="show";
	}
}

function clearClasses(els){
	for(i=0;i<els.length;i++){
		els[i].className="";
	}
}

function pauseSlide(){
	clearInterval(switcher);
}
function playSlide(){
	switcher=setInterval('nextSlide(1)', 6000);
}

function nextSlide(auto){
	var slides=getElementsByClassName(document.getElementById("promo-excerpts"),"div","survey");
	var numbers=numberLinks();
	var count=0;
	var next;
	var currentClass="";
	for(var i=0;i<slides.length;i++){
		currentClass="";
		currentClass=slides[i].className;
		if(currentClass.indexOf("show")!=-1){
			count=i;
		}
	}
	stripClass(slides,"show");
	//clearClasses(slides);
	
	//clearClasses(numbers);
	stripClass(numbers, "on");
	next=count+1;
	if(next==slides.length){
		next=0;
		//clearInterval(switcher);
	}
	//slides[next].className="show";
	appendClass(slides[next], "show");
	//numbers[next].className="on";
	appendClass(numbers[next], "on");
	if(auto==0){
		clearInterval(switcher);
	}
}

function prevSlide(){
	var slides=document.getElementById("dash-visual").getElementsByTagName("div");
	var numbers=numberLinks();
	var count=0;
	var next;
	var currentClass="";
	for(var i=0;i<slides.length;i++){
		currentClass="";
		currentClass=slides[i].className;
		if(currentClass.indexOf("show")!=-1){
			count=i;
		}
	}
	stripClass(slides,"show");
	//clearClasses(slides);
	clearClasses(numbers);
	next=count-1;
	if(next==-1){
		next=(slides.length-1);
	}
	//slides[next].className="show";
	appendClass(slides[next], "show");
	numbers[next].className="on";
	clearInterval(switcher);
}

function appendClass(el, classx){
	var currentClass=el.className;
	if(currentClass==""){
		el.className=classx;
	}else{
		el.className=currentClass+" "+classx;
	}
}

function stripClass(els, classx){
	var newClass;
	var classes;
	for(i=0;i<els.length;i++){
		newClass="";
		classes=els[i].className.split(" ");
		if(classes.length==1 && classes[0]==classx){
			newClass="";
		}else{
			for(p=0;p<classes.length;p++){
				if(classes[p]!=classx){
					newClass+=classes[p]+" ";
				}
			}
		}
		els[i].className=newClass;
	}
}
