/* --------------------------------------------------
CHI Overhead Doors Scripts
Author:    Lance E. Leonard for Habanero
Version:   09 Nov 2005
-------------------------------------------------- */

/* Global Constants
-------------------------------------------------- */
var imagesPath = '/images';
var defDoorPreviewImage = 'def.jpg';


/* Global Variables
-------------------------------------------------- */
var images = new Array;
var bannerSlides = new Array;
var curSlide = 0;
var errorMsg = "";
var doors = new Array();


/* initProductNav
-------------------------------------------------- */
function initProductNav() {
	var nav = document.getElementById("productNav");	
	var aLinks = nav.getElementsByTagName("A");
	
	for (i=0; i<aLinks.length; i++) {
		if ((aLinks[i].id != null) && (aLinks[i].id != "")) {
			aLinks[i].onmouseover = togglePreview2;
			aLinks[i].onmouseout = togglePreview2;
		}
	}
	
	//preload images
	preload('2240','/doors/');preload('2250','/doors/');preload('2284','/doors/');preload('2296','/doors/');preload('3295','/doors/');preload('4216','/doors/');preload('2700','/doors/');preload('4285','/doors/');preload('5216','/doors/');preload('5240','/doors/');preload('5250','/doors/');preload('5283','/doors/');preload('5300','/doors/');preload('5400','/doors/');preload('5500','/doors/');
}


/* togglePreview
-------------------------------------------------- */
function togglePreview(e) {
	var el = e.target != null ? e.target : e.srcElement;
	var img = document.getElementById("imgPreview");
	var id = el.id.substring(4);
	var def = imagesPath + '/doors/' + defDoorPreviewImage;
	img.src = img.src.indexOf(def) > 0 ? images[id].src : def;
}


/* togglePreview2
-------------------------------------------------- */
function togglePreview2(e) {
	if (e != null) return togglePreview(e);
	if (window.event != null) return togglePreview(window.event);
}


/* preload
-------------------------------------------------- */
function preload(id,extraPath) {
	images[id] = new Image();
	images[id].src = imagesPath + extraPath + id + '.jpg';
}


/* initSlideShowNav
-------------------------------------------------- */
function initSlideShowNav() {
/*
	var ssn = document.getElementById('slideshowNav');
	ssn.style.display = 'block';
	
	var pb = document.getElementById('previousLink');
	pb.onclick = prevSlide;
	var nb = document.getElementById('nextLink');
	nb.onclick = nextSlide;
*/

	bannerSlides = slideList.split(',');
	for (i=0; i < bannerSlides.length; i++) {
		preload(bannerSlides[i],'/banners/');
	}
	
	var nav = document.getElementById('thumbnails');
	var a = nav.getElementsByTagName('A');
	for (i=0; i < a.length; i++) {
		a[i].onclick = swapSlide;
	}
	
	var img = document.getElementById('slide');
	img.src = images[bannerSlides[0]].src;
	var text = document.getElementById('slideCaption');
	text.innerHTML = doors[bannerSlides[0]];
}


/* prevSlide
-------------------------------------------------- */
function prevSlide() {
	var img = document.getElementById('slide');
	curSlide = (curSlide == 0) ? bannerSlides.length - 1 : curSlide - 1;
	img.src = images[bannerSlides[curSlide]].src;
	return false;
}


/* nextSlide
-------------------------------------------------- */
function nextSlide() {
	var img = document.getElementById('slide');
	curSlide = (curSlide == bannerSlides.length - 1) ? 0: curSlide + 1;
	img.src = images[bannerSlides[curSlide]].src;
	return false;
}


/* swapImage
-------------------------------------------------- */
function swapSlide2(e) {
	var el = e.target != null ? e.target : e.srcElement;
	var id = el.id.substring(5);

	var img = document.getElementById('slide');
	img.src = images[id].src;
	
	var text = document.getElementById('slideCaption');
	text.innerHTML = doors[id];
	
	return false;
}


/* swapImage
-------------------------------------------------- */
function swapSlide(e) {
	if (e != null) return swapSlide2(e);
	if (window.event != null) return swapSlide2(window.event);
}


/* initDealerLocator
-------------------------------------------------- */
function initDealerLocator() {
	var pb = document.getElementById('btnLookup');
	pb.onclick = updateDealers;
}


/* locateDealers
-------------------------------------------------- */
function validateZip(id) {
	var retVal = true;
	
	hideErrors();
	
	if (!validateNotEmpty(id)) {
		var zipErrorMsg = "<p>Please provide a valid zip code.</p>";
		errorMsg += zipErrorMsg;
		showFieldError('txtZipCode',zipErrorMsg);
		retVal = false;
	}
	
	return retVal;
}
function validateNotEmpty(id) {
	var el = document.getElementById(id);

	if (!el) return false;
	
	return el.value != "" ? true : false;
}

function hideErrors() {
		//hide field errors
		var a = document.getElementsByTagName('SPAN');
		for (i = 0; i < a.length; i++ ) {
			if (a[i].className.indexOf('fieldError') >= 0) {
				a[i].style.display = "none";
				a[i].innerHTML = "";
			}
		}
		return false;
}

function getRequest() {
	var xmlhttp=false;

/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
	
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
		    xmlhttp = false;
		}
	}
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	
	return xmlhttp;
}		

function updateDealers() {
	if (!validateZip('txtZipCode')) return false;

	zip = document.getElementById('txtZipCode').value;

	document.getElementById('dealerList').innerHTML = "<p style=\"color: #c00; font-size: .9em;\">Finding locations near " + zip + ".  Please wait...</p>";
	
	var req = getRequest();

	req.open("GET","/utilities/locator.aspx?zip=" + zip,true);
	req.onreadystatechange=function() {
		if (req.readyState==4) {
			document.getElementById('dealerList').innerHTML = req.responseText;
		}
	}
	req.send(null)
	
	var el = document.getElementById('dealerList');
	if (el) {
		el.style.display = 'block';				
	}
	
	return false;
}

function showFieldError(id,msg) {
	var el = document.getElementById(id + '_Error');
	
	if (el) {
		el.style.display = 'block';
		el.innerHTML = msg;
	}
}
