function mySetActive(object)  
{
  try
  {
    object.setActive();
  }
  catch(ex)
  {
    object.focus();
  }
}

function arrayContains( haystack, needle) {
	var len = haystack.length;
	for (var i = 0; i < len; ++i) {
		if (haystack[i] === needle) return true;
	}
	return false;
}

function showGallery(imageRoot, imgs, addLinks) {
	if (!addLinks) { var addLinks = false; }
	var err = '';
	for (var index in imgs) {
		try {
			var src = imgs[index][0];
			var caption = imgs[index][1];
		} catch (ex) {
			var image = imgs[index];
			for (var thing in image) {
				alert(thing + ':' + image[thing]);
			}
			err += 'Problem: ' + ex + '\n';
		}
		
		var imageSrc = imageRoot + src + '.jpg';
		document.writeln(
			'<span class="thumbnail" onMouseOver="showImage(\'' + imageSrc + '\',\'' + caption + '\', ' + addLinks + ');">' +
			'<img src="/images/' + imageRoot + '/thumbnails/' + src + '.jpg" alt=""></span>');
		loadImage(imageSrc);
	}
	
	sanitize('image');
	
	if (err.length != 0) {
		alert(err);
	}
}

function showBeforeAndAfter(imageRoot, imgs) {
	var err = '';
	for (var index in imgs) {
		try {
			var src = imgs[index][0];
			var caption = imgs[index][1];
		} catch (ex) {
			var image = imgs[index];
			for (var thing in image) {
				alert(thing + ':' + image[thing]);
			}
			err += 'Problem: ' + ex + '\n';
		}
		
		document.writeln(
			'<span class="thumbnail" onMouseOver="showBAImage(\'' + imageRoot + '\',\'' + src + '\',\'' + caption + '\');">' +
			'<img src="/images/' + imageRoot + '/after/thumbnails/' + src + 'a.jpg" alt=""></span>');

		loadImage(getBeforeSrc(imageRoot, src));
		loadImage(getAfterSrc(imageRoot, src));
	}
	
	sanitize('before');
	sanitize('after');
	
	if (err.length != 0) {
		alert(err);
	}
}

function loadImage( src ) {
	var image = new Image(1,1); 
	image.src = src; 
	return image;
}

/** This code is just for galleries under the "Gallery" page */
var imageToShow = new Image(1,1);
var metalworkImages = ['09/amenity/graves-m05.jpg',
					   '09/amenity/haydock01.jpg',
					   '09/amenity/kowalsky01.jpg',
					   '09/amenity/lachaya01.jpg',
					   '09/amenity/ross01.jpg',
					   '09/amenity/tollefson01.jpg',
					   '09/amenity/farm11.jpg'];

function showImage(src, caption, addLinks, width, height) {
	imageToShow = loadImage('/images/' + src);
	var imageTag = document.getElementById('image');
	
	if (addLinks) {
		/*
		var url = '<a href="metalwork.cfm">';
		caption = caption.replace('metalwork', url + 'metalwork</a>');
		caption = caption.replace('Metalwork', url + 'Metalwork</a>');
		*/
		if (caption.indexOf('metalwork') >= 0 || caption.indexOf('Metalwork') >= 0 || arrayContains(metalworkImages, src)) {
			caption += '<br><br>See Additional Examples of our <a href="metalwork.cfm">Custom Metal Work</a>';
		}
	}
	document.getElementById('caption').innerHTML = caption;
	document.getElementById('print_caption').innerHTML = caption;
	
	if (imageToShow.complete) {
		imageTag.src = imageToShow.src;
		sanitize('image');
	} else {
		//imageTag.src = '/images/loading.gif';
		
		showLoadedImage();
	}
}

function showLoadedImage() {
	var imageTag = document.getElementById('image');
	if (imageToShow.complete) {
		imageTag.src = imageToShow.src;
		sanitize('image');
	} else {
		setTimeout('showLoadedImage()', 100);
	}
}

/** This code is just for galleries under the "Before and After" page */

function getBeforeSrc(imageRoot, src) {
	return '/images/' + imageRoot + '/before/bw/' + src + 'b.jpg';
}
function getAfterSrc(imageRoot, src) {
	return '/images/' + imageRoot + '/after/' + src + 'a.jpg';
}

var beforeImage = new Image(1,1);
var afterImage = new Image(1,1);

function showBAImage(imageRoot, src, caption) {
	
	beforeImage = loadImage(getBeforeSrc(imageRoot, src));
	afterImage = loadImage(getAfterSrc(imageRoot, src));
	var beforeImageTag = document.getElementById('before');
	var afterImageTag = document.getElementById('after');
	
	document.getElementById('caption').innerHTML = caption;
	document.getElementById('print_caption').innerHTML = caption;
	
	if (beforeImage.complete && afterImage.complete) {
		beforeImageTag.src = beforeImage.src;
		afterImageTag.src = afterImage.src;
		sanitize('before');
		sanitize('after');
	} else {
		//beforeImageTag.src = '/images/loading.gif';
		//afterImageTag.src = '/images/loading.gif';
		
		showLoadedBAImage();
	}
}

function showLoadedBAImage() {
	var beforeTag = document.getElementById('before');
	var afterTag = document.getElementById('after');
	
	if (beforeImage.complete && afterImage.complete) {
		/*
		try {
		beforeTag.style.height = beforeImage.naturalHeight + 'px';
		beforeTag.style.width = beforeImage.naturalWidth + 'px';
		afterTag.style.height = afterImage.naturalHeight + 'px';
		afterTag.style.width = afterImage.naturalWidth + 'px';
		alert(afterImage.naturalWidth + 'x' + afterImage.naturalHeight);
		} catch (ex) {
			var str = '';
			for (var index in beforeImage) {
				str += index + ':' + beforeImage[index] + '<br>';
			}
			alert(str); 
			document.getElementById('caption').innerHTML = str;
		}
		*/
		beforeTag.src = beforeImage.src;
		afterTag.src = afterImage.src;
		sanitize('before');
		sanitize('after');
	} else {
		setTimeout('showLoadedBAImage()', 100);
	}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

var homeImage = null;
function homeSanitize( imageId ) {
	homeImage = loadImage(document.getElementById(imageId).src);
	homeSanitize2();
}

function homeSanitize2() {
	var i = document.getElementById('sanitize_me');
	
	if (i != null && i.complete && (i.readyState == undefined || i.readyState == 'complete')) {
		if (i.clientWidth < i.clientHeight) {
			i.parentNode.parentNode.style.textAlign = 'center';
		} else {
			i.parentNode.parentNode.style.textAlign = 'left';
		}
	} else {
		setTimeout('homeSanitize2()', 1);
	}
}

var img = [];

function sanitize( imageId )
{
	var tmpImg = document.getElementById(imageId);
	img[tmpImg.src] = tmpImg;
	sanitize2(tmpImg.src);
}

function sanitize2( index ) {
	
	var i = img[index];
	if (i.complete && (i.readyState == undefined || i.readyState == 'complete') && i.clientWidth != 0 && i.clientHeight != 0) {
		if (i.clientWidth < i.clientHeight) {
			i.parentNode.style.textAlign = 'center';
		} else {
			i.parentNode.style.textAlign = 'left';
		}
	} else {
		setTimeout('sanitize2(\'' + index + '\')', 10);
	}
}

function solveCap() {
	var a = document.getElementById('firstNumber').value;
	var b = document.getElementById('secondNumber').value;
	var op = document.getElementById('operation').value;
	
	var solution = 0;
	if (op == '+') { solution = parseInt(a) + parseInt(b); }
	else if (op == '-') { solution = parseInt(a) - parseInt(b); }
	else { solution = parseInt(a) * parseInt(b); }
	
	document.getElementById('cap').value = solution;
	return true;
}

function validateForm() {
  var form = document.contact_form;
  var preferredContactValue = "";
  for (i = 0; i < form.preferredContact.length; ++i) {
      if (form.preferredContact[i].checked) {
          preferredContactValue = form.preferredContact.value;
          break;
      }
  }
  var newsletterValue = "";
  for (i = 0; i < form.newsletter.length; ++i) {
      if (form.newsletter[i].checked) {
          newsletterValue = form.newsletter.value;
          break;
      }
  }
  if (form.name.value == "") {
    alert("Please enter your Name.");
	form.name.focus();
	return false;
  } else if (form.phone.value == "") {
	alert("Please enter your phone number.");
	form.phone.focus();
	return false;
  } else if (form.email.value == "") {
	alert("Please enter your Email Address.");
	form.email.focus();
	return false;
  } else if ((form.email.value.indexOf("@") == -1) || (form.email.value.indexOf(".") == -1)) {
	alert("Please enter your full Email Address.");
	form.email.focus();
	return false;
  } else if (form.city.value == "") {
	alert("Please enter your city.");
	form.city.focus();
	return false;
  } else if (form.state.value == "") {
	alert("Please enter your state.");
	form.state.focus();
	return false;
  } else if (form.howheard.value == "") {
	alert("Please tell us how you heard about Yardscapes.");
	form.howheard.focus();
	return false;
  } else if (preferredContactValue == "") {
	  alert("Please tell us how you prefer to be contacted.");
	  return false;
  } else if (newsletterValue == "") {
	  alert("Please let us know if you would like to receive our newsletter.");
	  return false;
  } else {
	return true;
  }
}
