// Browser detection script originally created
// by Peter Paul Koch at http://www.quirksmode.org/

	var defaultFormArray = new Array();

	function getBrowserInfo()
	{
		agt = navigator.userAgent.toLowerCase();
		is_win = ((agt.indexOf("win") != -1) ||
			(agt.indexOf("16bit") != -1));
		is_mac = (agt.indexOf("mac") != -1);
		is_unix = (agt.indexOf("x11") != -1);
		if (checkIt('konqueror')) browser = "Konqueror";
		else if (checkIt('safari')) browser     = "Safari";
		else if (checkIt('omniweb')) browser    = "OmniWeb";
		else if (checkIt('opera')) browser      = "Opera";
		else if (checkIt('webtv')) browser      = "WebTV";
		else if (checkIt('icab')) browser       = "iCab";
		else if (checkIt('msie')) browser       = "Internet Explorer";
		else if (!checkIt('compatible')) browser = "Netscape Navigator or Firefox/Mozilla";
		else browser = "Unknown browser";

		return browser;
	}

	function checkIt(string)
	{
		browserDetectString = navigator.userAgent.toLowerCase();
		return browserDetectString.indexOf(string) + 1;
	}

	var is_mac = false;
	var is_unix = false;
	var is_win = false;
	var is_ie = false;
	var is_safari = false;
	browserType = getBrowserInfo();
	if (browserType == "Internet Explorer")
		is_ie = true;
	else if (browserType == "Safari")
		is_safari = true;

	function addEvent(obj, evType, fn)
	{       
		if (obj.addEventListener) {
			obj.addEventListener(evType, fn, true);
			return true; 
		} else if (obj.attachEvent) {
			var r = obj.attachEvent("on" + evType, fn);
			return r;
		} else {
			return false;
		}
	}

	function checkSearch()
	{
		if (!is_safari)
			return;
		searchObj = document.getElementById('s');
		if (searchObj) {
			searchObj.setAttribute('type', 'search');
			searchObj.setAttribute('autosave', 'chipin');
			searchObj.setAttribute('results', '10');
		}
	}

	function clearSearch(field)
	{
		if (field.value == "Search")
			field.value = "";
		else
			field.select();
	}

	function blurSearch(field)
	{
		if (field.value == "")
			field.value = "Search";
	}

	function checkImages()
	{
		if (!is_safari && ! is_ie)
			return;
		imgObjs = document.getElementsByTagName('img');
		for (i = 0; i < imgObjs.length; i++) {
			imgObj = imgObjs[i];
			idObj = imgObj.id;
			if (idObj.indexOf("image") != -1) {
				w = findWidth(imgObj);
				if (w > 400)
					imgObj.style.width = "400px";
			}
		}
	}

	function findWidth(obj)
	{		       
		if (obj.offsetWidth)
			return obj.offsetWidth;
		else if (obj.width)
			return obj.width;
		else if (obj.style.width)
			return obj.style.width;
	}

	function toggleDiv(objid)
	{
		obj = document.getElementById(objid);
		if (obj) {
			if (obj.style.display == "block")
				obj.style.display = "none";
			else
				obj.style.display = "block";
		}
	}

	function loadFormDefaults()
	{
		for (i = 0; i < defaultFormArray.length; i += 2) {
			formID = defaultFormArray[i];
			defaultInfo = defaultFormArray[i + 1];
			formE = document.getElementById(formID);
			formV = getFormValue(formE);
			if (formV == null)
				continue;
			if (formV.length == 0 || formV == defaultInfo) {
				setFormValue(formE, defaultInfo);
				formE.style.color = "#666";
			} else
				formE.style.color = "black";
		}
	}
	function setFormDefault(fieldID, defaultInfo)
	{
		defaultFormArray.push(fieldID);
		defaultFormArray.push(defaultInfo);
	}

	function addFormDefault(formE)
	{
		formID = formE.id;
		formV = getFormValue(formE);
		if (formV.length > 0)
			return;
		for (i = 0; i < defaultFormArray.length; i += 2) {
			if (formID == defaultFormArray[i]) {
				defaultInfo = defaultFormArray[i + 1];
				setFormValue(formE, defaultInfo);
				formE.style.color = "#666";
				break;
			}
		}
	}

	function hasFormDefault(formE)
	{
		formID = formE.id;
		formV = getFormValue(formE);
		for (i = 0; i < defaultFormArray.length; i += 2) {
			if (formID == defaultFormArray[i]) {
				defaultInfo = defaultFormArray[i + 1];
				if (formV == defaultInfo) {
					return true;
				}
			}
		}
		return false;
	}

	function clearFormDefault(formE)
	{
		if (hasFormDefault(formE)) {
			setFormValue(formE, "");
			formE.style.color = "black";
		}
	}

	function clearFormDefaults()
	{
		for (i = 0; i < defaultFormArray.length; i += 2) {
			formID = defaultFormArray[i];
			formE = document.getElementById(formID);
			formV = getFormValue(formE);
			defaultInfo = defaultFormArray[i + 1];
			inputClass = formE.className;
			if (inputClass &&
			inputClass.indexOf("nocleardefault") != -1)
				continue;
			if (formV == defaultInfo)
				setFormValue(formE, "");
		}
	}

	function getFormValue(formE)
	{
		if (formE) {
			if (formE.value)
				return formE.value;
			else
				return "";
		}
	}

	function setFormValue(formE, val)
	{
		formE.value = val;
	}

	function sendSimpleAJAXPOST(url, urlstring, target)
	{
		if (window.XMLHttpRequest) {
			req = new XMLHttpRequest();
			req.onreadystatechange = function() {
				receiveSimpleAJAX(target);
			};
			req.open("POST", url, true);
			req.setRequestHeader(
				'Content-Type',
				'application/x-www-form-urlencoded'
			);
			req.send(urlstring);
		} else if (window.ActiveXObject) {
			req = new ActiveXObject("Microsoft.XMLHTTP");
			if (req) {
				req.onreadystatechange = function() {
					receiveSimpleAJAX(target);
				};
				req.open("POST", url, true);
				req.setRequestHeader(
					'Content-Type',
					'application/x-www-form-urlencoded'
				);
				req.send(urlstring);
			}
		}
	}

	function receiveSimpleAJAX(target)
	{
		if (req.readyState == 4) {
			if (req.status == 200 || req.status == 304) {
				results = req.responseText;
				if (target)
					document.getElementById(target).
						innerHTML = results;
			} else {
				if (target)
					document.getElementById(target).
						innerHTML = "";
			}
		}
	}

	function encodeForAJAX(urlStr)
	{
		encodedHtml = escape(urlStr);
		encodedHtml = encodedHtml.replace(/\//g,"%2F");
		encodedHtml = encodedHtml.replace(/\?/g,"%3F");
		encodedHtml = encodedHtml.replace(/=/g,"%3D");
		encodedHtml = encodedHtml.replace(/&/g,"%26");
		encodedHtml = encodedHtml.replace(/@/g,"%40");
		return encodedHtml;
	}

	function validatePartnersForm()
	{
		$("#partnersform .rowError").remove();
		pn = $("#partnersform #partnername").val();
		if ($.trim(pn) == "") {
			$("#partnername").parent().parent().after('<tr class="rowError"><td></td><td><div class="formError">Enter a name.</div></td></tr>');
			return false;
		}
		pt = $("#partnersform #partnertitle").val();
		if ($.trim(pt) == "") {
			$("#partnertitle").parent().parent().after('<tr class="rowError"><td></td><td><div class="formError">Enter a title.</div></td></tr>');
			return false;
		}
		pe = $("#partnersform #partneremail").val();
		if ($.trim(pe) == "" || !isValidEmail(pe)) {
			$("#partneremail").parent().parent().after('<tr class="rowError"><td></td><td><div class="formError">Enter an email address.</div></td></tr>');
			return false;
		}
		pc = $("#partnersform #partnercompany").val();
		if ($.trim(pc) == "") {
			$("#partnercompany").parent().parent().after('<tr class="rowError"><td></td><td><div class="formError">Enter a company/organization.</div></td></tr>');
			return false;
		}
		return true;
	}

	function isValidEmail(email)
	{
		matches = email.match(/([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+/g);
		if (matches && matches.length == 1)
			return true;
		return false;
	}

	addEvent(window, 'load', checkSearch);
	addEvent(window, 'load', checkImages);
