// JavaScript Document

var currentSlide = 1;
var nextSlide = 2;
var totalSlides = 4;

var slideTimer = 7; // Seconds
var transSpeed = 5; 
var stopSlideShow = false;

var focusSlideShowDataFile = 'focus_ss.xml';
var focusSlideShowData = false;
var ssXHR = false;


function initSlideShow() {

	loadSlideShowData();
	
}

function loadSlideShowData() {
	
	if (window.XMLHttpRequest) {
		ssXHR = new XMLHttpRequest();
	} else {
		if (window.ActiveXObject) {
			try {
				ssXHR = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	
	if (ssXHR) {
				
		ssXHR.onreadystatechange = setSlideShowData; 						
		ssXHR.open("GET", focusSlideShowDataFile , true);
		ssXHR.send(null);
		
	} else {	
		// alert("Sorry, but I couldn't create an XMLHttpRequest");
	}
	
	
}

function setSlideShowData() {

	if (ssXHR.readyState == 4) {
		
		// jsMSG.innerHTML += "ssXHR.readyState: " + ssXHR.readyState + "<br />";
		// jsMSG.innerHTML += "ssXHR.status: " + ssXHR.status + "<br />";
		
		if (ssXHR.status == 200) {
			
			if (ssXHR.responseXML) {
				
				focusSlideShowData = ssXHR.responseXML.getElementsByTagName("slide");
				totalSlides = focusSlideShowData.length;
				// alert('Data Found, ' + totalSlides + ' slides found!');				
				
				createSlides();
				
			}
			
			
			
		} else {
			
			// alert("There was a problem with the request " + ssXHR.status);
		
		}
		
	} 
	
}


function createSlides() {
	
	var ssData = focusSlideShowData;
	
	var focusThumbs = document.createElement('div');
	focusThumbs.id = 'focusThumbs';
	
		var thumbTable = document.createElement('table');
		thumbTable.id = 'thumbTable';
		
			var thumbTbody = document.createElement('tbody');
			thumbTbody.id = 'thumbTbody';
			thumbTable.appendChild(thumbTbody);
			
		focusThumbs.appendChild(thumbTable);
	
	document.getElementById('focusContainer').appendChild(focusThumbs);
	
	for (var i=0; i<ssData.length; i++) {
	
		buildSlideHTML(ssData[i]);
		
	}
	
	startSlideShow();
	
}

function buildSlideHTML(thisSlide) {
	
	var slideNum = thisSlide.getElementsByTagName('order')[0].getAttribute('value');
	// alert('Building Slide #' +  slideNum);
	
	var prodID = thisSlide.getElementsByTagName('prodID')[0].getAttribute('value');
	var mfrID = thisSlide.getElementsByTagName('mfrID')[0].getAttribute('value');
	var mfrName = thisSlide.getElementsByTagName('mfrName')[0].getAttribute('value');
	
	var slideHolder = document.createElement("div");
	slideHolder.id = "slide" + slideNum;
	slideHolder.style.display = 'none';
	slideHolder.className = "focusContent";
	
		var slideTitle = document.createElement('div');
		slideTitle.className = "slideTitle";
	
			var slideH1 = document.createElement('h1');
			slideH1.innerHTML = thisSlide.getElementsByTagName('title')[0].getAttribute('value');
			slideTitle.appendChild(slideH1);
			
			var mfrLogo = document.createElement('div');
			mfrLogo.className = 'mfrLogo';
				
				var mfrLogoLink = document.createElement('a');
				mfrLogoLink.href = 'view-product-group.php?grp=1&amp;mfr='+mfrID;
				
					var logoIMG = new Image();
					logoIMG.src = thisSlide.getElementsByTagName('mfrLogo')[0].getAttribute('value');
					logoIMG.alt = thisSlide.getElementsByTagName('mfrLogo')[0].getAttribute('alt');
					mfrLogoLink.appendChild(logoIMG);
				
				mfrLogo.appendChild(mfrLogoLink);
				
			slideTitle.appendChild(mfrLogo);
			
			
			
			
		slideHolder.appendChild(slideTitle);
		
		var divClear = document.createElement('div');
		divClear.className = 'clearBoth';
		slideHolder.appendChild(divClear);
		
		var slideContent = document.createElement('div');
		
			var slideIMG = document.createElement('div');
			slideIMG.className = 'slideIMG';
				
				var prodIMG = new Image();
				prodIMG.src = thisSlide.getElementsByTagName('prodImage')[0].getAttribute('value');
			    prodIMG.alt = thisSlide.getElementsByTagName('prodImage')[0].getAttribute('alt');
				slideIMG.appendChild(prodIMG);
			
			slideContent.appendChild(slideIMG);
			
			var slideInfo = document.createElement('div');
			slideInfo.className = 'slideInfo';
			
				var prodName = document.createElement('h2');
				prodName.innerHTML = '<a href="view-product.php?id='+prodID+'">'+ getElementValue(thisSlide, 'prodTitle') + '</a>'; 
				prodName.className = 'prodName';
				slideInfo.appendChild(prodName);
				
				var prodHLdiv = document.createElement('div');
				prodHLdiv.className = 'prodHighlights';
				
					var prodHLs = document.createElement('ul');
					var highlights = thisSlide.getElementsByTagName('highlight');
					for (var i=0; i<highlights.length; i++) {
						
						var thisHL = document.createElement('li');
						thisHL.innerHTML = highlights[i].getAttribute('value');
						prodHLs.appendChild(thisHL);
						
					}
					
					prodHLdiv.appendChild(prodHLs);
					
				slideInfo.appendChild(prodHLdiv);
				
				
				
				
				var slideLinks = document.createElement('div');				
				slideLinks.className = 'slideLinks';								
				var prodLink = '<a href="view-product.php?id='+prodID+'">View This Product</a>';
				var mfrLink = '<a href="view-product-group.php?grp=1&amp;mfr='+mfrID+'">View All '+mfrName+' Products</a>';
				slideLinks.innerHTML = prodLink + '&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;' + mfrLink;				
				slideInfo.appendChild(slideLinks);

			slideContent.appendChild(slideInfo);
		
		
		slideHolder.appendChild(slideContent);
	
	document.getElementById('focusContainer').appendChild(slideHolder);
	
	// SLIDE THUMB CREATION
	
	var thumbTable = document.getElementById('thumbTbody');
	
		var thisThumbRow = document.createElement('tr');
			var thisThumbCol = document.createElement('td');
			
				var thisThumbLink = document.createElement('a');
				thisThumbLink.id = 'slideThumb'+slideNum;
				thisThumbLink.href = 'javascript: return false;';
				thisThumbLink.rel = slideNum;
				thisThumbLink.href = "";
				thisThumbLink.onclick = userChosenSlide;
				
					var thisThumbIMG = new Image();
					thisThumbIMG.src = getElementValue(thisSlide, 'prodThumb');
					thisThumbIMG.alt = "slide"+slideNum;
					thisThumbLink.appendChild(thisThumbIMG);
				
				thisThumbCol.appendChild(thisThumbLink);
				
		thisThumbRow.appendChild(thisThumbCol);
		
	thumbTable.appendChild(thisThumbRow);
	
	
	function getElementValue(data, elemName) {
	
		return data.getElementsByTagName(elemName)[0].getAttribute('value');
		
	}
	
	
	
}


function loadThisSlide(slideNum) {
	
	// var thisSlide = document.getElementById('slide'+slideNum);
	
	if(stopSlideShow != true) {
		
		currentSlide = slideNum;
		
		var allDivs = document.getElementsByTagName('div');
		var slideList;
		
	//	for (i=0; i<allDivs.length; i++) {
	//		if(allDivs[i].hasAttribute('id')) {			
	//			if(allDivs[i].id.indexOf('slide') == 0) {
	//				alert('slide found, ' + allDivs[i].id);	
	//			}
	//		}
	//		
	//		
	//	}
		
		// alert (allDivs.length);
		
		var thisSlide = document.getElementById('slide'+slideNum);
		changeOpacity(0, 'slide'+slideNum);
		thisSlide.style.display = 'block';
		
		ssFadeIn('slide'+slideNum, 100);
		
		if(slideNum + 1 <= totalSlides) {
			nextSlide = slideNum + 1;			
		} else {
			nextSlide = 1;	
		}
		
		
		var thisSlideThumb = document.getElementById('slideThumb'+slideNum).parentNode;
		thisSlideThumb.className = 'currentSlide';
		
		// document.write(nextSlide + ' ');
		setTimeout("rotateSlide()", slideTimer*1000);
		
	
	}
	
	return false;
	
}


function startSlideShow() {
	
	currentSlide = 1;
	loadThisSlide(1);	
	
}

function rotateSlide() {

	if(stopSlideShow != true) {
		ssFadeOut('slide'+currentSlide, 0);
		var currentSlideThumbTD = document.getElementById('slideThumb'+currentSlide).parentNode;
		currentSlideThumbTD.className = '';
		setTimeout("loadThisSlide(nextSlide)", transSpeed*101);
	}
}


function changeOpacity(opacity, id) {
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function ssFadeIn(id, opacLimit) {	
	var timer = 0;
	var thisObj = document.getElementById(id);
	thisObj.zIndex = 2;			
	for(i = 0; i <= opacLimit; i++) {		
		setTimeout("changeOpacity(" + i + ",'" + id + "')",(timer * transSpeed));
		timer++;
		if (i == opacLimit) {		
			
		}
	}			
}


function ssFadeOut(id, opacLimit) {
	var timer = 0;
	var thisObj = document.getElementById(id);
	thisObj.zIndex = 1;
	for(i=0; i <= 100; i++) {		
		setTimeout("changeOpacity(" + (100-i) + ",'" + id + "')",(timer * transSpeed));
		timer++;				
		if (i == opacLimit) {		
			
			setTimeout('document.getElementById("'+id+'").style.display = "none"', 100 * transSpeed);							
		}
	}			
}



function userChosenSlide(e) {
	
	if (!e) { e = window.event;} 	
	if (e.target) { var evtObj = e.target} else {  var evtObj = e.srcElement;}
		
	changeSlide(evtObj.parentNode.rel);
	stopSlideShow = true;
	
	return false;
}


function changeSlide(slideNum) {
	
	document.getElementById('slide'+currentSlide).style.display = "none";
	var currentSlideThumbTD = document.getElementById('slideThumb'+currentSlide).parentNode;
	currentSlideThumbTD.className = '';
	
	document.getElementById('slide'+slideNum).style.display = "block";
	currentSlide = slideNum;
	changeOpacity(100, 'slide'+slideNum);
	var thisSlideThumbTD = document.getElementById('slideThumb'+slideNum).parentNode;
	thisSlideThumbTD.className = 'currentSlide';

	stopSlideShow = true;
}



function addThisNode(thisObj, thisID) {			
	if(thisID != null) {
		var objToAppend = document.getElementById(thisID);
		objToAppend.appendChild(thisObj);
		// jsMSG.innerHTML += "<span class='blue'>" + thisID + " | appended with: " + thisObj.id + "</span><br />";
	}		
}