/********** DOMREADY ***************************************************/
	jQuery.noConflict();

	jQuery(document).ready(function($) {
		$('a[href$="#"]').click(function() { return false; });
		// Links to external addresses
		fSetExtLinks();

		if ($('#contactForm')[0]) { $('#contactForm').submit(fInputCheck); }
	});

/********** FUNCTIONS **************************************************/

	function fSetExtLinks() {
		var oHyperlinks = jQuery('a[class*="popup"]');
		oHyperlinks.each(function() {
			jQuery(this).attr('title', jQuery(this).attr('title') + ' (opent in popup)');
			jQuery(this).click(fOpenPopup);
		});
	}

	function fOpenPopup() {
		var oNewWindow = window.open(jQuery(this).attr('href'));

		if (window.focus) {
			oNewWindow.focus();
		}

		return false;
	}

	function fInputCheck() {
	 var iErrorCnt = 0;
		var sFormName = jQuery(this).attr('id');

		var oReqFields = jQuery('#' + sFormName + ' .required');
		var oField;
		//for (iField = 0; iField < aReqFields.length; iField++) {
		oReqFields.each(function() {
			oField = jQuery(this);
			//oField = jQuery('#' + aReqFields[iField].attr('id'));

			var reEmail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;

			switch (oField.attr('type')) {
				case "text": case "textarea": case "password":
					// Just check whether or not the field has a value
					if (oField.attr('value') == "") {
						oField.addClass("invalid");
						iErrorCnt++;
					} else {
						if (oField.hasClass('email')) {
							if (!reEmail.test(oField.attr('value'))) {
								oField.addClass('invalid');
								iErrorCnt++;
							} else {
								oField.removeClass('invalid');
							}
						} else {
							oField.removeClass("invalid");
						}
					}
					break;

				case "radio": case "checkbox":
					// Retrieve the whole group of fields which share the same name
					var oFieldGroup = jQuery('#' + sFormName + ' input[name="' + oField.attr('name') + '"]');

					// Iterate through all of the fields and make sure at least one choice has been made
					var bChecked = false;
					//for (iField = 0; iField < oFieldGroup.length; iField++) {
					oFieldGroup.each(function() {
						oField = $(this);
						if (oField.attr('checked')) {
							bChecked = true;
							return;
						}
					});

					// Provide feedback for the user on both success and fail
					if (!bChecked) {
						oField.parent().css('border', '1px solid #930707');
						iErrorCnt++;
					} else {
						oField.parent().css('border-color', '#ffffff');
					}
					break;

				case "select":
					// Combo-box, TO-DO
					break;
			}
		});

		// If more than one password field was on the page, make sure they contain the same values
		var oPassFields = jQuery('#' + sFormName + ' input[type="password"]');
		if (oPassFields.length == 2) {
			if (oPassFields.eq(0).attr('value') != oPassFields.eq(1).attr('value')) {
				oPassFields.addClass('invalid');
				iErrorCnt++;
			} else {
				if (oPassFields.eq(0).attr('value') == '') {
					oPassFields.addClass('invalid');
					iErrorCnt++;
				} else {
					oPassFields.removeClass('invalid');
				}
			}
		}

		if (iErrorCnt == 0) {
			//if (jQuery('jsVal')) { jQuery('#jsVal').addClass('hide'); }
			return true;
		} else {
			//if (jQuery('jsVal')) { jQuery('#jsVal').removeClass('hide'); }
			return false;
		}
	}





