function changeFont(fontSize)
{
	var myElem = document.getElementById("body");
	document.getElementsByTagName("body")[0].style.fontSize = fontSize;
	document.cookie = "font-size="+fontSize;
}

function getBasePath()
{
	var header = document.getElementById('header');
	if (header != null)
	{
		var anchors = header.getElementsByTagName('a');
		if (anchors.length > 0)
		{
			var href = "" + anchors[0].href;
			return href.replace(/\/[^/]+$/, '/');
		}
	}
	return '/';
}

function addFontSwitchOption(fontsize, alt, img_filename, img_width, img_height)
{
	var ul = document.getElementById("fontSwitcher");
	if (!ul)
	{
		var container = document.getElementById('searchContainer');
		if (container)
		{
			var ul = document.createElement("ul");
			ul.id = 'fontSwitcher';
			container.appendChild(ul);
		}
	}
	if (ul)
	{
		var li = document.createElement("li");
		var a = document.createElement("a");
		var img = document.createElement("img");
		img.src = getBasePath() + "images/" + img_filename;
		img.width = img_width;
		img.height = img_height;
		img.alt = alt;
		a.title = alt;
		a.href = 'javascript:changeFont("' + fontsize + '");';
		a.appendChild(img);
		li.appendChild(a);
		ul.appendChild(li);
		var wnd = window;
		addEvent(a, 'mouseover', function(evt)
			{
				wnd.status = alt;
				return true;
			});
		addEvent(a, 'mouseout', function(evt)
			{
				wnd.status = '';
			});
	}
}

function restoreFontSize()
{
	addFontSwitchOption('11px', 'Small Font', 'font_small.gif', 12, 12);
	addFontSwitchOption('12px', 'Medium Font', 'font_medium.gif', 14, 14);
	addFontSwitchOption('14px', 'Large Font', 'font_large.gif', 17, 18);
	if (getCookie("font-size"))
	{
		changeFont(getCookie("font-size"));
	}
}

addEvent(document, 'DOMContentLoaded', function()
	{
		var elements = getElementsByClassName(document, '*', 'status_tip');
		for (var i = 0; i < elements.length; ++i)
		{
			if (elements[i].title)
			{
				addEvent(elements[i], 'mouseover', function(evt)
					{
						window.status = this.title;
						return true;
					});
				addEvent(elements[i], 'mouseout', function(evt)
					{
						window.status = '';
						return true;
					});
			}
		}
	});
	
function doSlideshow(evt)
{
	
	var parts = this.href.split('/');
	
	for (var i = 0; i < parts.length; ++i)
	{
		if (parts[i] == 'images')
		{
			break;
		}
	}
	
	var url = this.href;
	if (i < parts.length)
	{
		url = getBaseURL() + 'slideshow.php?image=';
		for (var j = i+1; j < parts.length; ++j)
		{
			if (j > i+1) url += "/";
			url += parts[j];
		}
	}
	
	if (showPopup(url, 'slideshow', 600, 400, true, true, true))
	{
		return doPreventDefault(evt);
	}
	
}

addEvent(document, 'DOMContentLoaded', function()
	{
		function setSlideshow(link)
		{
			if (getBasePath() == '/')
			{
				addEvent(link, 'click', doSlideshow);
			}
			else
			{
				link.target = '_blank';
			}
		}
		var uls = getElementsByClassName(document, 'ul', 'images');
		for (var i = 0; i < uls.length; ++i)
		{
			var links = uls[i].getElementsByTagName('a');
			for (var j = 0; j < links.length; ++j)
			{
				setSlideshow(links[j]);
			}
		}
		var anchors = getElementsByClassName(document, 'a', 'image');
		for (var i = 0; i < anchors.length; ++i)
		{
			setSlideshow(anchors[j]);
		}
	});
	
function onAnalyticsLink(evt)
{
	if (this && this.href)
	{
		doAnalytics(this.href);
	}
}

addEvent(document, 'DOMContentLoaded', function()
	{
		var anchors = document.getElementsByTagName("a");
		for (var i = 0; i < anchors.length; ++i)
		{
			var anchor = anchors[i];
			if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
			{
				anchor.target = "_blank";
			}
			if (anchor.href.substring(anchor.href.length-4) == '.pdf')
			{
				addEvent(anchor, 'click', onAnalyticsLink);
			}
		} 
	});

addEvent(document, 'DOMContentLoaded', function()
	{
		var frm = document.getElementById('contact_form');
		if (frm && frm.elements['preferred_response'])
		{
			var field_names = [ 'email', 'phone', 'fax' ];
			var doUpdate = function(update_asterisk_only)
				{
					var selected_field_name = frm.elements['preferred_response'].value.toLowerCase();
					var retVal = true;
					for (var i = 0; i < field_names.length; ++i)
					{
						var element = frm.elements[field_names[i]];
						if (element)
						{
							if (!update_asterisk_only)
							{
								var org_handler = eval("validate_contact_form_"+field_names[i]);
								if (!org_handler || org_handler(element))
								{
									if (selected_field_name == field_names[i] && element.value.length < 1)
									{
										var field_display_name;
										switch (selected_field_name)
										{
											case 'email':
												field_display_name = 'email address';
												break;
											case 'phone':
												field_display_name = 'phone number';
												break;
											case 'fax':
												field_display_name = 'fax number';
												break;
											default:
												field_display_name = selected_field_name;
												break;
										}
										qf_errorHandler(element, '\n - Please specify your '+field_display_name+'.');
										retVal = false;
									}
								}
							}
							var lbl = element.parentNode.parentNode.getElementsByTagName("label")[0];
							var reqd = lbl.getElementsByTagName("span")[0];
							if (!reqd)
							{
								reqd = document.createElement("span");
								reqd.className = "required";
								reqd.style.display = 'none';
								reqd.appendChild(document.createTextNode('*'));
								lbl.insertBefore(reqd, lbl.childNodes.item(0));
							}
							reqd.style.display = (selected_field_name == field_names[i]) ? '' : 'none';
						}
					}
					return retVal;
				};
			var onSubmit = function(evt)
				{
					if (doUpdate(false))
					{
						return true;
					}
					else
					{
						doPreventDefault(evt);
						return false;
					}
				};
			var onChange = function(evt)
			{
				doUpdate(false);
			}
			var onBlur = function(evt)
			{
				doUpdate(false);
			}
			addEvent(frm, 'submit', onSubmit);
			addEvent(frm.elements['preferred_response'], 'change', onChange);
			addEvent(frm.elements['preferred_response'], 'blur', onBlur);
			addEvent(frm.elements['preferred_response'], 'keyup', onBlur);
			for (var i = 0; i < field_names.length; ++i)
			{
				addEvent(frm.elements[field_names[i]], 'change', onChange);
				addEvent(frm.elements[field_names[i]], 'blur', onBlur);
			}
			doUpdate(true);
		}
	});
