/* For Header Gallery */
function startGallery() {
	var myGallery = new gallery($('myGallery'), {
		timed: true,
		showArrows: false,
		showCarousel: false,
		embedLinks: false,
		delay: 8000
	});
}

/* For page galleries */
function startLargeGallery() {
	pageGallery(true, true);
}

function startLargeSlideShow() {
	pageGallery(false, false);
}

function pageGallery(shouldShowCarousel, shouldShowInfoPane) {
	document.getElementById('large_gallery').style.display = '';
	var myGallery = new gallery($('large_gallery'), {
		timed: true,
		delay: 5000,
		showArrows: true,
		showCarousel: shouldShowCarousel,
		showInfopane: shouldShowInfoPane,
		embedLinks: false
	});
}

/************* FORM VALIDATION ***********************/

function validateForm(form) {
	var errorMessage = "";
	var inputArray = form.getElementsByTagName('input');
	for(var i=0; i < inputArray.length; i++) {
		if(inputArray[i].alt == 'zip') {
			if(!checkZip(inputArray[i].value)) errorMessage += 'Enter a valid zip code for ' + inputArray[i].name + '\n';
		} else if(inputArray[i].alt == 'email') {
			if(!checkEmail(inputArray[i].value)) errorMessage += 'Enter a valid email address for ' + inputArray[i].name + '\n';
		} else if(inputArray[i].alt == 'phone') {
			if(!checkPhone(inputArray[i].value)) errorMessage += 'Enter a valid 10 digit phone number for ' + inputArray[i].name + '\n';		
		} else if(inputArray[i].alt == 'req') {
			if(!checkRequiredField(inputArray[i].value)) errorMessage += 'Enter valid input for ' + inputArray[i].name + '\n';	
		}
	}

	var textAreaArray = form.getElementsByTagName('textarea');
	for(var j=0; j < textAreaArray.length; j++) {		
		if(textAreaArray[j].alt == 'req') {
			if(!checkRequiredField(textAreaArray[j].value)) errorMessage += 'Enter valid input for ' + textAreaArray[j].name + '\n';	
		}
	}

	if(errorMessage != "") {
		alert(errorMessage);
		return false;
	}
	return true;
}

function checkPhone(phone) {
	var numCount = 0;
	if(phone == null || phone == "") return false;
	for(var i=0; i < phone.length; i++)	 {
		if(!isNaN(phone.charAt(i))) {
			numCount++;
		}
	}
	return numCount == 10;
}

function checkZip(zip) {
	return checkRequiredField(zip) && !isNaN(zip) && zip.length == 5;
}

function checkEmail(email) {
	return checkRequiredField(email) && (email.indexOf(".") > 2) && (email.indexOf("@") > 0);
}

function checkRequiredField(field) {
	return !(field == null || field == "");
}

/************* END FORM VALIDATION ***********************/


function showDynamicDiv(menuItem, elementId) {
	//the function wrapper pattern below is needed to work around a jquery/mootools conflict
  (function($){ 
			$(".dynamicDivMenuItemSelected").attr('class','dynamicDivMenuItem');
		  menuItem.setAttribute("class", "dynamicDivMenuItemSelected");
		
			var showFunc = function() {
				$("#" + elementId).show(1000);
				$("#" + elementId).attr('class', 'shown');
			};
		
			if ($(".shown").length > 0) {
		  	$(".shown").hide("fast", showFunc);
		  }
			else {
				showFunc();
			}
	})(jQuery);		
	
}


function textBoxOnBlur(elementRefId) {
 //5754578787, it should be 575-457-8787

 var elementRef = document.getElementById(elementRefId);
 var elementValue = elementRef.value;

 // Remove all "(", ")", "-", and spaces...
 elementValue = elementValue.replace(/\(/g, '');
 elementValue = elementValue.replace(/\)/g, '');
 elementValue = elementValue.replace(/\-/g, '');
 elementValue = elementValue.replace(/\s+/g, '')

 if ( elementValue.length < 10 ) {
  alert('The phone number needs to be 10 digits');
  elementRef.select();
  elementRef.focus();
  return;
 }

 elementRef.value = (elementValue.substr(0, 3) + '-' + elementValue.substr(3, 3) + '-' + elementValue.substr(6, 4));
}
