// Script by: Chris Williams //
//  - Pure Form Solutions -  //
// www.PureFormSolutions.com //


// Global Variables //
	var _autoSaveFlag = false, _target, _length = 0;
	var _op = "";
	var _msg1, _msg2, _msg3, _msg4, _msg5, _msg6, _msg7, _msg8, _msg9, _msg10, _msg11, _msg12;
	var _isNav, _isIE;
	var _currentResource, _htmlMode = false, _RTEIDs = new Array();

	_isNav = (navigator.appName == "Netscape");
	_isIE = (navigator.appName == "Microsoft Internet Explorer");

// AutoSave methods //
	function autoSaveToggleOn() {
		_autoSaveFlag = true;
	}

	function autoSaveToggleOff() {
		_autoSaveFlag = false;
	}

	window.onload = function() {
		document.onclick = function(_evt) {
			_evt = (_evt) ? _evt : event;
			_target = (_evt.target) ? _evt.target.href : _evt.srcElement.href;

			try {
				_length = _target.length;
			} catch (_e) {
				_length = 0;
			}

			if ((_autoSaveFlag) && (_length > 0)) {
				if (confirm("Document has changed, discard changes?")) {
					if (!document.all) {
						window.routeEvent(_e);
					}
					return true;
				} else {
					return false;
				}
			}
		}
	}

// Change bg on nav bullets //
	function changeBulletBG(_navID,_color) {
		document.getElementById(_navID).style.backgroundColor = "#" + _color;
	}

// Set RTE ID into an Array //
	function setRTEID(_pos,_id) {
		_RTEIDs[_pos] = _id;
	}

// Resize Photo Divs //
	function setResizePhotoDivs(_numPhotos) {
		window.onload = function() {
			var _i, _height, _ypos = new Array();

			var _queryString = window.location.search;
			var _regExp = /ypos=(\d+)/;

			if (_regExp.test(_queryString)) {
				_ypos = _regExp.exec(_queryString);
				_ypos = parseInt(_ypos[1]);

				if (_ypos > 0) {
					window.scroll(0,_ypos);
				}
			}

			// Resize div's //
			for (_i=0;_i<_numPhotos;_i++) {
				_height = parseInt(document.getElementById("photoDiv_" + _i).offsetHeight - 79);
				if (_height < 130) {
					_height = 130;
				}
				resizeRTE(_RTEIDs[_i],_height);
			}
		}
	}

// Resize RTE's, Gallery only
	function resizeRTE(_id,_height) {
		// Leave this logic to account for a gallery item that has no RTE [like when deleting a gallery item].
		// That way it wont freak out when it doesn't find it.
		if (document.getElementById("div" + _id)) {
			document.getElementById("div" + _id).style.height = _height;
			document.getElementById(_id).style.height = _height;
		}
	}

// Load Image, changes gallery photo source //
	function loadPhoto(_elementID) {
		document.getElementById("galleryPhoto").src = "uploads/images/" + _elementID + "_full.jpg";
	}

// EC Main site only: Checks to see if terms checkbox is checked //
	function checkTermsState() {
		if (document.getElementById("termsCheckBox").checked) {
			return true;
		} else {
			alert(_msg12);
			return false;
		}
	}

// Sets element back to default value //
	function setDefault(_self,_elementID) {
		if (confirm("Are You Sure You Want to Restore This Element to Its Default Settings?")) {
			window.location.href = _self + "?op=defaultWPElement&eid=" + _elementID + "&ypos=" + getY();
		}
	}

// Clears _elementID's value //
	function clearElement(_elementID) {
		document.getElementById(_elementID).value = "";
	}

// Jump to uploadForm and highlight it //
	function showWPUploadForm() {
		document.getElementById("uploadTable").style.borderColor = "#ff0000";
		window.location.href = "#uploadForm";
	}

// Reset WP preferences conf //
	function defaultWPConf(_self) {
		if (confirm("Are You Sure You Want to Restore Website Preferences to Default Settings?")) {
			window.location.href = _self + "?op=defaultWP&ypos=" + getY();
		}
	}

// Validate hex color //
	function isHexColor(_hex) {
		if ((_hex.length == 3) || (_hex.length == 6)) {
			var _regExp = /^([0-9a-f]{1,2}){3}$/i;
			return _regExp.test(_hex);
		} else {
			return false;
		}
	}

// Verifies C.S. form //
	function verifyCS(_elements,_emailID) {
		var _email;
		_emailID = "cs_" + _emailID;
		_email = document.getElementById(_emailID).value;

		if (!iseMail(_email)) {
			alert("Please enter a valid Email Address.");
			document.getElementById(_emailID).focus();
			return false;
		} else {
			return returnVerify(_elements);
		}
	}

// Validate WP form //
	function verifyWP() {
		if (!isHexColor(document.getElementById("a_color").value)) {
			alert("Please enter a valid 'Main Link Color' hex #");
			document.getElementById("a_color").focus();
		} else if (!isHexColor(document.getElementById("a_hover_color").value)) {
			alert("Please enter a valid 'Mouseover Link Color' hex #");
			document.getElementById("a_hover_color").focus();
		} else if (!isHexColor(document.getElementById("footer_color").value)) {
			alert("Please enter a valid 'Area Below the Footer' hex #");
			document.getElementById("footer_color").focus();
		} else {
			setYpos();
			verify("f_masthead|b_masthead|page_title","_updateWPForm");
		}
	}

// Validate DWP form //
	function verifyDWP() {
		if (!isHexColor(document.getElementById("d_a_color").value)) {
			alert("Please enter a valid 'Default Main Link Color' hex #");
			document.getElementById("d_a_color").focus();
		} else if (!isHexColor(document.getElementById("d_a_hover_color").value)) {
			alert("Please enter a valid 'Default Mouseover Link Color' hex #");
			document.getElementById("d_a_hover_color").focus();
		} else if (!isHexColor(document.getElementById("d_footer_color").value)) {
			alert("Please enter a valid 'Default Area Below the Footer' hex #");
			document.getElementById("d_footer_color").focus();
		} else if (!isHexColor(document.getElementById("a_color").value)) {
			alert("Please enter a valid 'Main Link Color' hex #");
			document.getElementById("a_color").focus();
		} else if (!isHexColor(document.getElementById("a_hover_color").value)) {
			alert("Please enter a valid 'Mouseover Link Color' hex #");
			document.getElementById("a_hover_color").focus();
		} else if (!isHexColor(document.getElementById("footer_color").value)) {
			alert("Please enter a valid 'Area Below the Footer' hex #");
			document.getElementById("footer_color").focus();
		} else {
			setYpos();
			verify("d_f_masthead|d_b_masthead|f_masthead|b_masthead|d_title|page_title","_updateWPForm");
		}
	}

// Updates color on web preferences page //
	function updateColor(_elementID) {
		_hex = document.getElementById(_elementID).value;
		if (isHexColor(_hex)) {
			document.getElementById(_elementID + "_span").style.backgroundColor = "#" + _hex;
			document.getElementById(_elementID + "_span").innerHTML = "";
		} else {
			document.getElementById(_elementID + "_span").style.backgroundColor = "#cdcdcd";
			document.getElementById(_elementID + "_span").innerHTML = "<div align=\"center\" style=\"color: #ff0000;\"><img src=\"images/spacer.png\" style=\"width: 1px; height: 3px;\" /><br /><b>" + _hex + "</b> is an invalid hex #</div>";
		}
	}

// Updates Weblink and Maillink buttons //
	function updateHREF() {
		var _status;
		_status = document.getElementById("href_checkbox").checked;

		if (_status) {
			document.getElementById("webBtn").disabled = false;
			document.getElementById("webBtn").className = "form_button";
			document.getElementById("mailBtn").disabled = false;
			document.getElementById("mailBtn").className = "form_button";
		} else {
			document.getElementById("webBtn").disabled = true;
			document.getElementById("webBtn").className = "textBarInactive";
			document.getElementById("mailBtn").disabled = true;
			document.getElementById("mailBtn").className = "textBarInactive";
		}
	}

// Updates the availablility of the caption textarea //
	function updateCaption() {
		var _status;
		_status = document.getElementById("caption_checkbox").checked;

		if (_status) {
			document.getElementById("caption").disabled = false;
			document.getElementById("caption").focus();
		} else {
			document.getElementById("caption").disabled = true;
		}
	}

// Strips \n from the footer RTE //
	function clearNewLines(_rteID) {
		var _data, _regExp;
		if (document.all) {
			_data = frames[_rteID].document.body.innerHTML;
		} else {
			_data = document.getElementById(_rteID).contentWindow.document.body.innerHTML;
		}
		updateRTEs();
	}

// RICH TEXT EDITOR HYPERLINK HANDLER POPUP WINDOW FUNCTIONS //
	function rteHLH(_type,_rteID) {
		var _oRTE, _rng = "", _selection, _x, _y;

		if (document.getElementById("htmlSRCSwitch|" + _rteID).checked) {
			_rng = 1;
		} else {
			if (_rteID != false) {
				if (document.all) {
					_oRTE = frames[_rteID];
					_selection = _oRTE.document.selection; 
					if (_selection != null) {
						_rng = _selection.createRange();
					}
					_rng = _rng.text
				} else {
					_oRTE = document.getElementById(_rteID).contentWindow;
					_selection = _oRTE.getSelection();
					_rng = _selection.getRangeAt(_selection.rangeCount - 1).cloneRange();
				}
			} else {
				_rng = 1;
			}
		}

		if (_rng != "") {
			var _height, _width, _rand, _url, _rteHLHWin;
			if (_type == "http") {
				_height = 382;
				_width = 293;
			} else if (_type == "mailto") {
				_height = 248;
				_width = 293;
			}
			_x = ((screen.width / 2) - (_width / 2));
			_y = ((screen.height / 2) - (_height / 2));

			_url = "rtehlh.php?type=" + _type + "&rteid=" + _rteID;
			_rteHLHWin = window.open(_url,"rteHLH_" + _type,"height=0,width=0,toolbar=0,menubar=0,statusbar=0,scrollbars=0,location=0,directories=0,resizable=0");
			_rteHLHWin.focus();
			_rteHLHWin.resizeTo(_width,_height);
			_rteHLHWin.moveTo(_x,_y);
		} else {
			alert("Please select some text.");
		}
	}

	function updateFiles(_value,_self,_type,_rteID) {
		var _href;
		_href = document.getElementById("href").value;

		window.location.href = _self + "?type=" + _type + "&passed_gid=" + _value + "&href=" + _href + "&radioID=type_local" + "&rteid=" + _rteID;
	}

	function buildLink(_type,_elementID) {
		var _radioType_global, _radioType_local_href, _currentResource;
		if (document.getElementById("type_global")) {
			_radioType_global = document.getElementById("type_global").checked;
		}
		if (document.getElementById("type_local_href")) {
			_radioType_local_href = document.getElementById("type_local_href").checked;
		}

		if (_radioType_local_href) {
			_currentResource = document.getElementById("local_href").value;
		} else if (_radioType_global) {
			_currentResource = validUrl(document.getElementById("href").value);
		} else if (_type == "mailto") {
			_currentResource = document.getElementById("email").value;
			if (!iseMail(_currentResource)) {
				alert("Please enter a valid email address.");
				_currentResource = "";
				document.getElementById("email").focus();
			}
		} else {
			_currentResource = document.getElementById("filelist").value;
		}

		// Yet another firefox fix //
		if (_currentResource == "No files have been uploaded.") {
			_currentResource = "";
		}

		if (_currentResource != "") {
			if ((!_radioType_global) && (_type == "http")) {
				if (_radioType_local_href) {
					if (_currentResource.indexOf("|") != -1) {
						var _idArray = new Array();
						var _pid, _detailID, _idType;
						_idArray = _currentResource.split("|");
						_pid = _idArray[0];
						_detailID = _idArray[1];
						_idType = _idArray[2];
						_currentResource = (_pid + "&" + _idType + "=" + _detailID);
					}
					_currentResource = "index.php?pid=" + _currentResource;
				} else {
					_currentResource = "uploads/files/" + _currentResource;
				}
			} else if (_type == "mailto") {
				_currentResource = "mailto:" + _currentResource;
			}

			if ((_elementID == false) || (_elementID == "false")) {
				opener.document.getElementById("href").value = _currentResource;
			} else {
				opener.formatText(_elementID,"createlink",_currentResource);
			}
			this.close();
		}
	}

	function toggleFileFields(_radioID,_self) {
		if (_radioID == "type_global") {
			document.getElementById("href").disabled = false;
			document.getElementById("filelist").disabled = true;
			document.getElementById("filegroups").disabled = true;
			document.getElementById("local_href").disabled = true;
		} else if (_radioID == "type_local_href") {
			document.getElementById("local_href").disabled = false;
			document.getElementById("href").disabled = true;
			document.getElementById("filelist").disabled = true;
			document.getElementById("filegroups").disabled = true;
		} else {
			document.getElementById("href").disabled = true;
			document.getElementById("filelist").disabled = false;
			document.getElementById("filegroups").disabled = false;
			document.getElementById("local_href").disabled = true;
		}
	}
// / LINK POPUP WINDOW FUNCTIONS //

// Check Link HREF //
	function checkLinkHREF(_formID,_enableElements) {
		var _href = document.getElementById("href").value;
		var _isLink = document.getElementById("href_checkbox").checked;

		if ((_href == "") && (_isLink)) {
			alert(_msg9);
		} else {
			if ((_enableElements == "true") || (_enableElements == true)) {
				enableElements(_formID);
			}
			document.getElementById(_formID).submit();
		}
	}

// Returns a valid URL //
	function validUrl(_url) {
		if (_url.indexOf(" ") == 0) {
			_url = "";
		} else {
			if ((_url == "http://") || (_url == "")) {
				_url = "";
			} else if (_url.indexOf("http://") == -1) {
				if (_url.indexOf("www") == 0) {
					_url = "http://" + _url;
				} else if (_url.indexOf(".") == -1) {
					_url = "";
				}
			}
		}
		return _url;
	}

// Add new page externalLink() handler //
	function externalLink(_byPass) {
		var _radioStatus;

		_radioStatus = document.getElementById("externallink").checked;

		if (_radioStatus || _byPass) {
			document.getElementById("externallink").checked = true;
			document.getElementById("here").checked = true;
			document.getElementById("new").disabled = true;
			document.getElementById("here").disabled = true;
		} else {
			document.getElementById("new").disabled = false;
			document.getElementById("here").disabled = false;
		}
	}

// Set op //
	function setOp(_arg) {
		_op = _arg;
	}

// toggles radios on page type select page //
	function toggleRadio(_elementID) {
		document.getElementById(_elementID).checked = true;
		externalLink();
	}

// Sets width of input [file] fields //
	function setElementWidth(_elementID) {
		if (_isNav) {
			document.getElementById(_elementID).style.width = 135;
		} else if (_isIE) {
			document.getElementById(_elementID).style.width = 135;
		}
	}

// Tells user they are out of calendar range //
	function dateOutOfRange() {
		alert(_msg6);
	}

// Sends user a msg about their usage problem //
	function usageMsg() {
		alert(_msg5);
	}

// Called by toggle functions //
	function submitToggle(_formID) {
		enableElements(_formID);
		setYpos();
		if (document.getElementById("submitbtn")) {
			document.getElementById("submitbtn").disabled = true;
		}
		updateRTEs();
		submitForm(_formID);
	}

// Toggle Active Form Elements //
	function toggleActive(_elementID,_btnID,_formID) {
		var _state = document.getElementById(_btnID).value;

		if (_state == "EDIT") {
			document.getElementById(_elementID).disabled = false;
			document.getElementById(_elementID).className = "textBarActive";
			document.getElementById(_btnID).value = "SAVE";
		} else {
			if (_elementID == "address") {
				if (iseMail(document.getElementById(_elementID).value)) {
					submitToggle(_formID);
				} else {
					alert("Please enter a valid email address.");
				}
			} else {
				submitToggle(_formID);
			}
		}
	}

// Check if the HTML button in checked, if so, uncheck it [Firefox fix] //
	function checkHTMLChecked(_htmlToggleID) {
		// This is mainly useful when the user clicks "Edit" then refreshes in Firefox //
		with (document.getElementById(_htmlToggleID)) {
			if (defaultChecked != true) {
				if (checked) {
					click();
				}
			} else {
				// Do to the checkbox what the browser was SUPPOSED to do
				checked = true;
			}
			// Disable it because the browser has not ... GRRR!
			disabled = true;
		}
	}

// Toggle RTE Active Form Elements //
	function toggleRTEActive(_rteID,_i,_btnID,_formID) {
		var _boldID = "|" + _i + "|boldBtn";
		var _italicID = "|" + _i + "|italicBtn";
		var _underlineID = "|" + _i + "|underlineBtn";
		var _webID = "|" + _i + "|webBtn";
		var _mailID = "|" + _i + "|mailBtn";
		var _htmlToggleID = "htmlSRCSwitch|" + _rteID;
		var _state = document.getElementById(_btnID).value;
		var _html = document.getElementById("hdn" + _rteID).value;

		if (_state == "Edit Text") {
			// Show buttons
			document.getElementById(_boldID).disabled = false;
			document.getElementById(_italicID).disabled = false;
			document.getElementById(_underlineID).disabled = false;
			document.getElementById(_webID).disabled = false;
			document.getElementById(_mailID).disabled = false;
			document.getElementById(_htmlToggleID).disabled = false;

			document.getElementById(_boldID).className = "form_button";
			document.getElementById(_italicID).className = "form_button";
			document.getElementById(_underlineID).className = "form_button";
			document.getElementById(_webID).className = "form_button";
			document.getElementById(_mailID).className = "form_button";
			document.getElementById(_htmlToggleID).className = "textBarActive";

			// Enable RTE
			if (document.getElementById("htmlSRCSwitch|" + _rteID).defaultChecked) {
				document.getElementById(_rteID).disabled = false;
				document.getElementById(_rteID).style.backgroundColor = "#ffffff";
				document.getElementById(_rteID).style.color = "#000000";
			} else {
				enableDesignMode(_rteID,_html,false,true);
			}
			document.getElementById(_btnID).value = "Save Text";
		} else {
			if (_rteID == "sspt") {
				if (document.getElementById("htmlSRCSwitch|paragraph").checked) {
					document.getElementById("filter|s|paragraph").value = "false";
				} else {
					document.getElementById("filter|s|paragraph").value = "true";
				}
			} else if (_rteID == "paragraph") {
				if (document.getElementById("htmlSRCSwitch|sspt").checked) {
					document.getElementById("filter|p|sspt").value = "false";
				} else {
					document.getElementById("filter|p|sspt").value = "true";
				}
			}
			setYpos();
			submitToggle(_formID);
		}
	}


// Toggle Active Gallery Form Elements //
	function toggleGalleryActive(_elementID,_btnID,_formID) {
		var _titleID = "|" + _elementID + "|title";
		var _rteID = "|" + _elementID + "[desc]";
		var _boldID = "|" + _elementID + "|boldBtn";
		var _italicID = "|" + _elementID + "|italicBtn";
		var _underlineID = "|" + _elementID + "|underlineBtn";
		var _webID = "|" + _elementID + "|webBtn";
		var _mailID = "|" + _elementID + "|mailBtn";
		var _html = document.getElementById("hdn" + _rteID).value;
		var _state = document.getElementById(_btnID).value;
		var _htmlToggleID = "htmlSRCSwitch|" + _rteID;

		if ((_op == "modPhotoForm") || (_op == "addPhotoForm")) {
			alert(_msg1);
		} else if (_op == "remImageConf") {
			alert(_msg4);
		} else {
			if (_state == "Edit Gallery Text") {
				// Show buttons
				document.getElementById(_boldID).disabled = false;
				document.getElementById(_italicID).disabled = false;
				document.getElementById(_underlineID).disabled = false;
				document.getElementById(_webID).disabled = false;
				document.getElementById(_mailID).disabled = false;
				document.getElementById(_htmlToggleID).disabled = false;

				document.getElementById(_boldID).className = "form_button";
				document.getElementById(_italicID).className = "form_button";
				document.getElementById(_underlineID).className = "form_button";
				document.getElementById(_webID).className = "form_button";
				document.getElementById(_mailID).className = "form_button";
          	     document.getElementById(_htmlToggleID).className = "textBarActive";

				// Enable RTE
				if (document.getElementById("htmlSRCSwitch|" + _rteID).defaultChecked) {
					document.getElementById(_rteID).disabled = false;
					document.getElementById(_rteID).style.backgroundColor = "#ffffff";
					document.getElementById(_rteID).style.color = "#000000";
				} else {
					enableDesignMode(_rteID,_html,false,true);
				}

				// Enable Title bar
				document.getElementById(_titleID).disabled = false;
				document.getElementById(_titleID).className = "textBarActive";
				document.getElementById(_btnID).value = "Save Gallery Text";
			} else {
				setYpos();
				submitToggle(_formID);
			}
		}
	}

// Toggle Upload form radios //
	function toggleUploadRadios(_value) {
		if (_value != "") {
			document.getElementById("group_new").checked = true;
		} else if (document.getElementById("group_old")) {
			document.getElementById("group_old").checked = true;
		}
	}

// Builds generic preview for the Email Management Page //
	function buildGenericeMail(_eID,_preview_title,_tldn) {
		var _value;

		_value = document.getElementById(_eID).value;
		document.getElementById(_eID + "_preview_title").innerHTML = "<u>" + _preview_title + " Preview:</u><br />\n"
		document.getElementById(_eID + "_preview").innerHTML = _value;

		if (_tldn != undefined) {
			document.getElementById(_eID + "_preview").innerHTML += "@" + _tldn;
		}
		if (_value == "") {
			document.getElementById(_eID + "_preview_title").innerHTML = "";
			document.getElementById(_eID + "_preview").innerHTML = "";
		}
	}

// Toggles FWD Field //
	function toggleFWDField(_checkBoxID,_inputID) {
		var _status;
		_status = document.getElementById(_checkBoxID).checked;

		_inputID = document.getElementById(_inputID);

		if (_status) {
			_inputID.disabled = false;
			_inputID.className = "textBarActive";
			_inputID.focus();
		} else {
			_inputID.style.borderColor = "#797979";
			_inputID.disabled = true;
			_inputID.className = "textBarInactive";
		}
	}

// Checks New eMail stuff //
	function checkNeweMail() {
		var _eMail, _fwdStatus, _fwdInput, _return = true, _i, _letter, _verify, _validchars;
		_validchars = "abcdefghijklmnopqrstuvwxyz0123456789+-._"
		_verify = "email_prefix";
		_fwdStatus = document.getElementById("fwd").checked;

		_eMail = document.getElementById("email_prefix").value;

		if (_eMail != "") {
			for (_i=0;_i<_eMail.length;_i++) {
				_letter = _eMail.charAt(_i).toLowerCase();
				if (_validchars.indexOf(_letter) == -1) {
					alert("The Email is invalid!");
					document.getElementById("email_prefix").focus();
					_return = false;
					break;
				}
			}
		}

		_fwdInput = document.getElementById("fwd_input").value;

		if ((_fwdInput != "") && (_fwdStatus)) {
			if (!iseMail(_fwdInput)) {
				_return = false;
				alert("The FWD is invalid!");
			}
		} else if ((_fwdInput == "") && (_fwdStatus)) {
			_verify += "|fwd_input";
		}

		if (_return) {
			verify(_verify,"_MEAform");
		}
	}

// Submit handler for uploadFileForm //
	function verifyUF() {
		var _newGroup, _args;

		document.getElementById("group_new_input").style.borderColor = "#797979";
		_newGroup = document.getElementById("group_new").checked;
		_args = "title|file"

		if (_newGroup) {
			_args += "|group_new_input";
		}
		verify(_args,"_uploadFileForm");
	}

// See if the states are selected //
	function verifyAP(_args) {
		var _mailingState, _billingState;
		_mailingState = document.getElementById("mailing_state").value;
		_billingState = document.getElementById("billing_state").value;

		if ((_mailingState == "no_state") || (_billingState == "no_state")) {
			alert("You must select a State!");
		} else {
			verify(_args,"_APform");
		}
	}

// Builds mailing address for Account Profile page //
	function buildBillingAddress() {
		var _line1, _line2, _city, _state, _zip, _preview;
		_line1 = document.getElementById("billing_address_line_1").value;
		_line2 = document.getElementById("billing_address_line_2").value;
		_city = document.getElementById("billing_city").value;
		_state = document.getElementById("billing_state").value;
		_zip = document.getElementById("billing_zip").value;

		if (_state == "no_state") {
			_state = "";
		}

		_preview = _line1 + "<br />\n";
		if (_line2) {
			_preview += _line2 + "<br />\n";
		}

		if (_city) {
			_preview += _city + ", ";
		}

		_preview += _state + " " + _zip;

		document.getElementById("billing_address_preview_title").innerHTML = "<u>Billing Address Preview</u><br />\n";
		document.getElementById("billing_address_preview").innerHTML = _preview;
		if ((_line1 == "") && (_line2 == "") && (_city == "") && (_state == "") && (_zip == "")) {
			document.getElementById("billing_address_preview_title").innerHTML = "";
			document.getElementById("billing_address_preview").innerHTML = "";
		}
	}

// Builds generic preview for Account Profile page //
	function buildGeneric(_eID,_preview_title) {
		var _value;
		_value = document.getElementById(_eID).value;
		document.getElementById(_eID + "_preview_title").innerHTML = "<u>" + _preview_title + " Preview:</u><br />\n"
		document.getElementById(_eID + "_preview").innerHTML = _value;
		if (_value == "") {
			document.getElementById(_eID + "_preview_title").innerHTML = "";
			document.getElementById(_eID + "_preview").innerHTML = "";
		}
	}

// Builds mailing address for Account Profile page //
	function buildMailingAddress() {
		var _line1, _line2, _city, _state, _zip, _preview;
		_line1 = document.getElementById("mailing_address_line_1").value;
		_line2 = document.getElementById("mailing_address_line_2").value;
		_city = document.getElementById("mailing_city").value;
		_state = document.getElementById("mailing_state").value;
		_zip = document.getElementById("mailing_zip").value;

		if (_state == "no_state") {
			_state = "";
		}

		_preview = _line1 + "<br />\n";
		if (_line2) {
			_preview += _line2 + "<br />\n";
		}

		if (_city) {
			_preview += _city + ", ";
		}

		_preview += _state + " " + _zip;

		document.getElementById("mailing_address_preview_title").innerHTML = "<u>Mailing Address Preview</u><br />\n";
		document.getElementById("mailing_address_preview").innerHTML = _preview;
		if ((_line1 == "") && (_line2 == "") && (_city == "") && (_state == "") && (_zip == "")) {
			document.getElementById("mailing_address_preview_title").innerHTML = "";
			document.getElementById("mailing_address_preview").innerHTML = "";
		}

		matchAddresses();
	}

// Builds name for Account Profile page //
	function buildName() {
		var _first, _mi, _last;
		_first = document.getElementById("first_name").value;
		_mi = document.getElementById("mi").value;
		_last = document.getElementById("last_name").value;

		document.getElementById("name_preview_title").innerHTML = "<u>Name Preview:</u><br />\n";
		document.getElementById("name_preview").innerHTML = _first + "&nbsp;" + _mi + " " + _last;
		if ((_first == "") && (_mi == "") && (_last == "")) {
			document.getElementById("name_preview_title").innerHTML = "";
			document.getElementById("name_preview").innerHTML = "";
		}
	}

// Matches fields in mailing & billing fields //
	function matchAddresses() {
		if (document.getElementById("mailingequalsbilling").checked == true) {
			// Disable the ablility to edit these fields //
			document.getElementById("billing_address_line_1").disabled = true;
			document.getElementById("billing_address_line_2").disabled = true;
			document.getElementById("billing_city").disabled = true;
			document.getElementById("billing_state").disabled = true;
			document.getElementById("billing_zip").disabled = true;

			// Now match them //
			document.getElementById("billing_address_line_1").value = document.getElementById("mailing_address_line_1").value;
			document.getElementById("billing_address_line_2").value = document.getElementById("mailing_address_line_2").value;
			document.getElementById("billing_city").value = document.getElementById("mailing_city").value;
			document.getElementById("billing_state").value = document.getElementById("mailing_state").value;
			document.getElementById("billing_zip").value = document.getElementById("mailing_zip").value;

			// Run preview //
			buildBillingAddress();
		} else {
			// Re-enable these fields //
			document.getElementById("billing_address_line_1").disabled = false;
			document.getElementById("billing_address_line_2").disabled = false;
			document.getElementById("billing_city").disabled = false;
			document.getElementById("billing_state").disabled = false;
			document.getElementById("billing_zip").disabled = false;
		}
	}

// Builds date url and send it //
	function buildDate(_self,_pid,_cid) {
		var _month, _year;
		_month = document.getElementById("quick_month").value;
		_year = document.getElementById("quick_year").value;

		window.location = _self + "?pid=" + _pid + "&cid=" + _cid + "&year=" + _year + "&month=" + _month;
	}

// eMail validator //
	function iseMail(_email) {
		if (_email.length == 0) {  
			return false;
		}
		if (!allValidChars(_email)) {
			return false;
		}
		if (_email.indexOf("@") < 1) {
			return false;
		} else if (_email.lastIndexOf(".") <= _email.indexOf("@")) {
			return false;
		} else if (_email.indexOf("@") == _email.length) {
			return false;
		}

		return true;
	}

// Called by iseMail() //
	function allValidChars(_email) {
		var _parsed = true;
		var _validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
		for (var _i=0; _i<_email.length;_i++) {
			var _letter = _email.charAt(_i).toLowerCase();
			if (_validchars.indexOf(_letter) != -1) {
				continue;
			}
			_parsed = false;
			break;
		}
		return _parsed;
	}

// Enable Elements //
	function enableElements(_formID) {
		var _i, _j;
		var _allForms = document.forms.length;
		var _allElements;
		for (_i=0;_i<_allForms;_i++) {
			_allElements = document.forms[_i].elements.length;
			for (_j=0;_j<_allElements;_j++) {
				document.forms[_i].elements[_j].disabled = false;
			}
		}
	}

// Form submitter //
	function submitForm(_formID) {
		document.getElementById(_formID).submit();
	}

// Build HREF //
	function buildHREF(_href) {
		window.location = _href + "&ypos=" + getY();
	}

// Set form element with id = ypos to current Y axis //
	function setYpos() {
		try {
			var _num_forms = document.forms.length;

			for (var _i=0;_i<_num_forms;_i++) {
				try {
					document.forms[_i].elements["ypos"].value = getY();
				} catch (_e) {
					// NO ypos in this form //
				}
			}
		} catch (e) {
			// oh well //
		}
	}

// Get Y scroll amount of page //
	function getY() {
		if (document.body.scrollTop != undefined) {
			var _ieBox = (document.compatMode != "CSS1Compat");
			var _cont = (_ieBox) ? document.body : document.documentElement;
			return _cont.scrollTop;
		} else {
			return window.pageYOffset;
		}
	}

// submit search form //
	function submitSearchForm() {
		if (document.getElementById("query").value != "") {
			document.getElementById("searchform").submit();
		}
	}

// form verification //
	function verify(_verify,_passedFormID) {
		var _submitform = true;
		_verify = _verify.split("|");

		for (var _i=0;_i<_verify.length;_i++) {
			document.getElementById(_verify[_i]).style.borderColor = "#797979";

			if (document.getElementById(_verify[_i]).value == "") {
				_submitform = false;
				document.getElementById(_verify[_i]).style.borderColor = "#ff0000";
			}
		}

		if (!_passedFormID) {
			_formID = (_formID) ? _formID : "form";
		} else {
			_formID = _passedFormID;
		}

		if (_submitform == true) {
			if (_formID == "_APform") {
				enableElements(_formID);
			}
			if (!document.getElementById(_formID)) {
				alert("Form ID is invalid.\n\nverify(_verify,_passedFormID);");
			}

			document.getElementById(_formID).submit();
			if (document.getElementById("submitbtn")) {
				document.getElementById("submitbtn").disabled = true;
			}
		} else {
			if (_formID == "_APform") {
				// Disable the ablility to edit these fields //
				document.getElementById("billing_address_line_1").disabled = true;
				document.getElementById("billing_address_line_2").disabled = true;
				document.getElementById("billing_city").disabled = true;
				document.getElementById("billing_state").disabled = true;
				document.getElementById("billing_zip").disabled = true;
			}
			alert(_msg3);
		}
	}

// RETURN!! form verification //
	function returnVerify(_verify) {
		var _submitform = true;
		_verify = _verify.split("|");

		for (var _i=0;_i<_verify.length;_i++) {
			document.getElementById(_verify[_i]).style.borderColor = "#797979";

			if (document.getElementById(_verify[_i]).value == "") {
				_submitform = false;
				document.getElementById(_verify[_i]).style.borderColor = "#ff0000";
			}
		}

		if (_submitform == true) {
			return true;
		} else {
			alert(_msg8);
			return false;
		}
	}// Script by: Chris Williams //
//  - Pure Form Solutions -  //
// www.PureFormSolutions.com //


// Global Variables //
	var _autoSaveFlag = false, _target, _length = 0;
	var _op = "";
	var _msg1, _msg2, _msg3, _msg4, _msg5, _msg6, _msg7, _msg8, _msg9, _msg10, _msg11, _msg12;
	var _isNav, _isIE;
	var _currentResource, _htmlMode = false, _RTEIDs = new Array();

	_isNav = (navigator.appName == "Netscape");
	_isIE = (navigator.appName == "Microsoft Internet Explorer");

// AutoSave methods //
	function autoSaveToggleOn() {
		_autoSaveFlag = true;
	}

	function autoSaveToggleOff() {
		_autoSaveFlag = false;
	}

	window.onload = function() {
		document.onclick = function(_evt) {
			_evt = (_evt) ? _evt : event;
			_target = (_evt.target) ? _evt.target.href : _evt.srcElement.href;

			try {
				_length = _target.length;
			} catch (_e) {
				_length = 0;
			}

			if ((_autoSaveFlag) && (_length > 0)) {
				if (confirm("Document has changed, discard changes?")) {
					if (!document.all) {
						window.routeEvent(_e);
					}
					return true;
				} else {
					return false;
				}
			}
		}
	}

// Change bg on nav bullets //
	function changeBulletBG(_navID,_color) {
		document.getElementById(_navID).style.backgroundColor = "#" + _color;
	}

// Set RTE ID into an Array //
	function setRTEID(_pos,_id) {
		_RTEIDs[_pos] = _id;
	}

// Resize Photo Divs //
	function setResizePhotoDivs(_numPhotos) {
		window.onload = function() {
			var _i, _height, _ypos = new Array();

			var _queryString = window.location.search;
			var _regExp = /ypos=(\d+)/;

			if (_regExp.test(_queryString)) {
				_ypos = _regExp.exec(_queryString);
				_ypos = parseInt(_ypos[1]);

				if (_ypos > 0) {
					window.scroll(0,_ypos);
				}
			}

			// Resize div's //
			for (_i=0;_i<_numPhotos;_i++) {
				_height = parseInt(document.getElementById("photoDiv_" + _i).offsetHeight - 79);
				if (_height < 130) {
					_height = 130;
				}
				resizeRTE(_RTEIDs[_i],_height);
			}
		}
	}

// Resize RTE's, Gallery only
	function resizeRTE(_id,_height) {
		// Leave this logic to account for a gallery item that has no RTE [like when deleting a gallery item].
		// That way it wont freak out when it doesn't find it.
		if (document.getElementById("div" + _id)) {
			document.getElementById("div" + _id).style.height = _height;
			document.getElementById(_id).style.height = _height;
		}
	}

// Load Image, changes gallery photo source //
	function loadPhoto(_elementID) {
		document.getElementById("galleryPhoto").src = "uploads/images/" + _elementID + "_full.jpg";
	}

// EC Main site only: Checks to see if terms checkbox is checked //
	function checkTermsState() {
		if (document.getElementById("termsCheckBox").checked) {
			return true;
		} else {
			alert(_msg12);
			return false;
		}
	}

// Sets element back to default value //
	function setDefault(_self,_elementID) {
		if (confirm("Are You Sure You Want to Restore This Element to Its Default Settings?")) {
			window.location.href = _self + "?op=defaultWPElement&eid=" + _elementID + "&ypos=" + getY();
		}
	}

// Clears _elementID's value //
	function clearElement(_elementID) {
		document.getElementById(_elementID).value = "";
	}

// Jump to uploadForm and highlight it //
	function showWPUploadForm() {
		document.getElementById("uploadTable").style.borderColor = "#ff0000";
		window.location.href = "#uploadForm";
	}

// Reset WP preferences conf //
	function defaultWPConf(_self) {
		if (confirm("Are You Sure You Want to Restore Website Preferences to Default Settings?")) {
			window.location.href = _self + "?op=defaultWP&ypos=" + getY();
		}
	}

// Validate hex color //
	function isHexColor(_hex) {
		if ((_hex.length == 3) || (_hex.length == 6)) {
			var _regExp = /^([0-9a-f]{1,2}){3}$/i;
			return _regExp.test(_hex);
		} else {
			return false;
		}
	}

// Verifies C.S. form //
	function verifyCS(_elements,_emailID) {
		var _email;
		_emailID = "cs_" + _emailID;
		_email = document.getElementById(_emailID).value;

		if (!iseMail(_email)) {
			alert("Please enter a valid Email Address.");
			document.getElementById(_emailID).focus();
			return false;
		} else {
			return returnVerify(_elements);
		}
	}

// Validate WP form //
	function verifyWP() {
		if (!isHexColor(document.getElementById("a_color").value)) {
			alert("Please enter a valid 'Main Link Color' hex #");
			document.getElementById("a_color").focus();
		} else if (!isHexColor(document.getElementById("a_hover_color").value)) {
			alert("Please enter a valid 'Mouseover Link Color' hex #");
			document.getElementById("a_hover_color").focus();
		} else if (!isHexColor(document.getElementById("footer_color").value)) {
			alert("Please enter a valid 'Area Below the Footer' hex #");
			document.getElementById("footer_color").focus();
		} else {
			setYpos();
			verify("f_masthead|b_masthead|page_title","_updateWPForm");
		}
	}

// Validate DWP form //
	function verifyDWP() {
		if (!isHexColor(document.getElementById("d_a_color").value)) {
			alert("Please enter a valid 'Default Main Link Color' hex #");
			document.getElementById("d_a_color").focus();
		} else if (!isHexColor(document.getElementById("d_a_hover_color").value)) {
			alert("Please enter a valid 'Default Mouseover Link Color' hex #");
			document.getElementById("d_a_hover_color").focus();
		} else if (!isHexColor(document.getElementById("d_footer_color").value)) {
			alert("Please enter a valid 'Default Area Below the Footer' hex #");
			document.getElementById("d_footer_color").focus();
		} else if (!isHexColor(document.getElementById("a_color").value)) {
			alert("Please enter a valid 'Main Link Color' hex #");
			document.getElementById("a_color").focus();
		} else if (!isHexColor(document.getElementById("a_hover_color").value)) {
			alert("Please enter a valid 'Mouseover Link Color' hex #");
			document.getElementById("a_hover_color").focus();
		} else if (!isHexColor(document.getElementById("footer_color").value)) {
			alert("Please enter a valid 'Area Below the Footer' hex #");
			document.getElementById("footer_color").focus();
		} else {
			setYpos();
			verify("d_f_masthead|d_b_masthead|f_masthead|b_masthead|d_title|page_title","_updateWPForm");
		}
	}

// Updates color on web preferences page //
	function updateColor(_elementID) {
		_hex = document.getElementById(_elementID).value;
		if (isHexColor(_hex)) {
			document.getElementById(_elementID + "_span").style.backgroundColor = "#" + _hex;
			document.getElementById(_elementID + "_span").innerHTML = "";
		} else {
			document.getElementById(_elementID + "_span").style.backgroundColor = "#cdcdcd";
			document.getElementById(_elementID + "_span").innerHTML = "<div align=\"center\" style=\"color: #ff0000;\"><img src=\"images/spacer.png\" style=\"width: 1px; height: 3px;\" /><br /><b>" + _hex + "</b> is an invalid hex #</div>";
		}
	}

// Updates Weblink and Maillink buttons //
	function updateHREF() {
		var _status;
		_status = document.getElementById("href_checkbox").checked;

		if (_status) {
			document.getElementById("webBtn").disabled = false;
			document.getElementById("webBtn").className = "form_button";
			document.getElementById("mailBtn").disabled = false;
			document.getElementById("mailBtn").className = "form_button";
		} else {
			document.getElementById("webBtn").disabled = true;
			document.getElementById("webBtn").className = "textBarInactive";
			document.getElementById("mailBtn").disabled = true;
			document.getElementById("mailBtn").className = "textBarInactive";
		}
	}

// Updates the availablility of the caption textarea //
	function updateCaption() {
		var _status;
		_status = document.getElementById("caption_checkbox").checked;

		if (_status) {
			document.getElementById("caption").disabled = false;
			document.getElementById("caption").focus();
		} else {
			document.getElementById("caption").disabled = true;
		}
	}

// Strips \n from the footer RTE //
	function clearNewLines(_rteID) {
		var _data, _regExp;
		if (document.all) {
			_data = frames[_rteID].document.body.innerHTML;
		} else {
			_data = document.getElementById(_rteID).contentWindow.document.body.innerHTML;
		}
		updateRTEs();
	}

// RICH TEXT EDITOR HYPERLINK HANDLER POPUP WINDOW FUNCTIONS //
	function rteHLH(_type,_rteID) {
		var _oRTE, _rng = "", _selection, _x, _y;

		if (document.getElementById("htmlSRCSwitch|" + _rteID).checked) {
			_rng = 1;
		} else {
			if (_rteID != false) {
				if (document.all) {
					_oRTE = frames[_rteID];
					_selection = _oRTE.document.selection; 
					if (_selection != null) {
						_rng = _selection.createRange();
					}
					_rng = _rng.text
				} else {
					_oRTE = document.getElementById(_rteID).contentWindow;
					_selection = _oRTE.getSelection();
					_rng = _selection.getRangeAt(_selection.rangeCount - 1).cloneRange();
				}
			} else {
				_rng = 1;
			}
		}

		if (_rng != "") {
			var _height, _width, _rand, _url, _rteHLHWin;
			if (_type == "http") {
				_height = 382;
				_width = 293;
			} else if (_type == "mailto") {
				_height = 248;
				_width = 293;
			}
			_x = ((screen.width / 2) - (_width / 2));
			_y = ((screen.height / 2) - (_height / 2));

			_url = "rtehlh.php?type=" + _type + "&rteid=" + _rteID;
			_rteHLHWin = window.open(_url,"rteHLH_" + _type,"height=0,width=0,toolbar=0,menubar=0,statusbar=0,scrollbars=0,location=0,directories=0,resizable=0");
			_rteHLHWin.focus();
			_rteHLHWin.resizeTo(_width,_height);
			_rteHLHWin.moveTo(_x,_y);
		} else {
			alert("Please select some text.");
		}
	}

	function updateFiles(_value,_self,_type,_rteID) {
		var _href;
		_href = document.getElementById("href").value;

		window.location.href = _self + "?type=" + _type + "&passed_gid=" + _value + "&href=" + _href + "&radioID=type_local" + "&rteid=" + _rteID;
	}

	function buildLink(_type,_elementID) {
		var _radioType_global, _radioType_local_href, _currentResource;
		if (document.getElementById("type_global")) {
			_radioType_global = document.getElementById("type_global").checked;
		}
		if (document.getElementById("type_local_href")) {
			_radioType_local_href = document.getElementById("type_local_href").checked;
		}

		if (_radioType_local_href) {
			_currentResource = document.getElementById("local_href").value;
		} else if (_radioType_global) {
			_currentResource = validUrl(document.getElementById("href").value);
		} else if (_type == "mailto") {
			_currentResource = document.getElementById("email").value;
			if (!iseMail(_currentResource)) {
				alert("Please enter a valid email address.");
				_currentResource = "";
				document.getElementById("email").focus();
			}
		} else {
			_currentResource = document.getElementById("filelist").value;
		}

		// Yet another firefox fix //
		if (_currentResource == "No files have been uploaded.") {
			_currentResource = "";
		}

		if (_currentResource != "") {
			if ((!_radioType_global) && (_type == "http")) {
				if (_radioType_local_href) {
					if (_currentResource.indexOf("|") != -1) {
						var _idArray = new Array();
						var _pid, _detailID, _idType;
						_idArray = _currentResource.split("|");
						_pid = _idArray[0];
						_detailID = _idArray[1];
						_idType = _idArray[2];
						_currentResource = (_pid + "&" + _idType + "=" + _detailID);
					}
					_currentResource = "index.php?pid=" + _currentResource;
				} else {
					_currentResource = "uploads/files/" + _currentResource;
				}
			} else if (_type == "mailto") {
				_currentResource = "mailto:" + _currentResource;
			}

			if ((_elementID == false) || (_elementID == "false")) {
				opener.document.getElementById("href").value = _currentResource;
			} else {
				opener.formatText(_elementID,"createlink",_currentResource);
			}
			this.close();
		}
	}

	function toggleFileFields(_radioID,_self) {
		if (_radioID == "type_global") {
			document.getElementById("href").disabled = false;
			document.getElementById("filelist").disabled = true;
			document.getElementById("filegroups").disabled = true;
			document.getElementById("local_href").disabled = true;
		} else if (_radioID == "type_local_href") {
			document.getElementById("local_href").disabled = false;
			document.getElementById("href").disabled = true;
			document.getElementById("filelist").disabled = true;
			document.getElementById("filegroups").disabled = true;
		} else {
			document.getElementById("href").disabled = true;
			document.getElementById("filelist").disabled = false;
			document.getElementById("filegroups").disabled = false;
			document.getElementById("local_href").disabled = true;
		}
	}
// / LINK POPUP WINDOW FUNCTIONS //

// Check Link HREF //
	function checkLinkHREF(_formID,_enableElements) {
		var _href = document.getElementById("href").value;
		var _isLink = document.getElementById("href_checkbox").checked;

		if ((_href == "") && (_isLink)) {
			alert(_msg9);
		} else {
			if ((_enableElements == "true") || (_enableElements == true)) {
				enableElements(_formID);
			}
			document.getElementById(_formID).submit();
		}
	}

// Returns a valid URL //
	function validUrl(_url) {
		if (_url.indexOf(" ") == 0) {
			_url = "";
		} else {
			if ((_url == "http://") || (_url == "")) {
				_url = "";
			} else if (_url.indexOf("http://") == -1) {
				if (_url.indexOf("www") == 0) {
					_url = "http://" + _url;
				} else if (_url.indexOf(".") == -1) {
					_url = "";
				}
			}
		}
		return _url;
	}

// Add new page externalLink() handler //
	function externalLink(_byPass) {
		var _radioStatus;

		_radioStatus = document.getElementById("externallink").checked;

		if (_radioStatus || _byPass) {
			document.getElementById("externallink").checked = true;
			document.getElementById("here").checked = true;
			document.getElementById("new").disabled = true;
			document.getElementById("here").disabled = true;
		} else {
			document.getElementById("new").disabled = false;
			document.getElementById("here").disabled = false;
		}
	}

// Set op //
	function setOp(_arg) {
		_op = _arg;
	}

// toggles radios on page type select page //
	function toggleRadio(_elementID) {
		document.getElementById(_elementID).checked = true;
		externalLink();
	}

// Sets width of input [file] fields //
	function setElementWidth(_elementID) {
		if (_isNav) {
			document.getElementById(_elementID).style.width = 135;
		} else if (_isIE) {
			document.getElementById(_elementID).style.width = 135;
		}
	}

// Tells user they are out of calendar range //
	function dateOutOfRange() {
		alert(_msg6);
	}

// Sends user a msg about their usage problem //
	function usageMsg() {
		alert(_msg5);
	}

// Called by toggle functions //
	function submitToggle(_formID) {
		enableElements(_formID);
		setYpos();
		if (document.getElementById("submitbtn")) {
			document.getElementById("submitbtn").disabled = true;
		}
		updateRTEs();
		submitForm(_formID);
	}

// Toggle Active Form Elements //
	function toggleActive(_elementID,_btnID,_formID) {
		var _state = document.getElementById(_btnID).value;

		if (_state == "EDIT") {
			document.getElementById(_elementID).disabled = false;
			document.getElementById(_elementID).className = "textBarActive";
			document.getElementById(_btnID).value = "SAVE";
		} else {
			if (_elementID == "address") {
				if (iseMail(document.getElementById(_elementID).value)) {
					submitToggle(_formID);
				} else {
					alert("Please enter a valid email address.");
				}
			} else {
				submitToggle(_formID);
			}
		}
	}

// Check if the HTML button in checked, if so, uncheck it [Firefox fix] //
	function checkHTMLChecked(_htmlToggleID) {
		// This is mainly useful when the user clicks "Edit" then refreshes in Firefox //
		with (document.getElementById(_htmlToggleID)) {
			if (defaultChecked != true) {
				if (checked) {
					click();
				}
			} else {
				// Do to the checkbox what the browser was SUPPOSED to do
				checked = true;
			}
			// Disable it because the browser has not ... GRRR!
			disabled = true;
		}
	}

// Toggle RTE Active Form Elements //
	function toggleRTEActive(_rteID,_i,_btnID,_formID) {
		var _boldID = "|" + _i + "|boldBtn";
		var _italicID = "|" + _i + "|italicBtn";
		var _underlineID = "|" + _i + "|underlineBtn";
		var _webID = "|" + _i + "|webBtn";
		var _mailID = "|" + _i + "|mailBtn";
		var _htmlToggleID = "htmlSRCSwitch|" + _rteID;
		var _state = document.getElementById(_btnID).value;
		var _html = document.getElementById("hdn" + _rteID).value;

		if (_state == "Edit Text") {
			// Show buttons
			document.getElementById(_boldID).disabled = false;
			document.getElementById(_italicID).disabled = false;
			document.getElementById(_underlineID).disabled = false;
			document.getElementById(_webID).disabled = false;
			document.getElementById(_mailID).disabled = false;
			document.getElementById(_htmlToggleID).disabled = false;

			document.getElementById(_boldID).className = "form_button";
			document.getElementById(_italicID).className = "form_button";
			document.getElementById(_underlineID).className = "form_button";
			document.getElementById(_webID).className = "form_button";
			document.getElementById(_mailID).className = "form_button";
			document.getElementById(_htmlToggleID).className = "textBarActive";

			// Enable RTE
			if (document.getElementById("htmlSRCSwitch|" + _rteID).defaultChecked) {
				document.getElementById(_rteID).disabled = false;
				document.getElementById(_rteID).style.backgroundColor = "#ffffff";
				document.getElementById(_rteID).style.color = "#000000";
			} else {
				enableDesignMode(_rteID,_html,false,true);
			}
			document.getElementById(_btnID).value = "Save Text";
		} else {
			if (_rteID == "sspt") {
				if (document.getElementById("htmlSRCSwitch|paragraph").checked) {
					document.getElementById("filter|s|paragraph").value = "false";
				} else {
					document.getElementById("filter|s|paragraph").value = "true";
				}
			} else if (_rteID == "paragraph") {
				if (document.getElementById("htmlSRCSwitch|sspt").checked) {
					document.getElementById("filter|p|sspt").value = "false";
				} else {
					document.getElementById("filter|p|sspt").value = "true";
				}
			}
			setYpos();
			submitToggle(_formID);
		}
	}


// Toggle Active Gallery Form Elements //
	function toggleGalleryActive(_elementID,_btnID,_formID) {
		var _titleID = "|" + _elementID + "|title";
		var _rteID = "|" + _elementID + "[desc]";
		var _boldID = "|" + _elementID + "|boldBtn";
		var _italicID = "|" + _elementID + "|italicBtn";
		var _underlineID = "|" + _elementID + "|underlineBtn";
		var _webID = "|" + _elementID + "|webBtn";
		var _mailID = "|" + _elementID + "|mailBtn";
		var _html = document.getElementById("hdn" + _rteID).value;
		var _state = document.getElementById(_btnID).value;
		var _htmlToggleID = "htmlSRCSwitch|" + _rteID;

		if ((_op == "modPhotoForm") || (_op == "addPhotoForm")) {
			alert(_msg1);
		} else if (_op == "remImageConf") {
			alert(_msg4);
		} else {
			if (_state == "Edit Gallery Text") {
				// Show buttons
				document.getElementById(_boldID).disabled = false;
				document.getElementById(_italicID).disabled = false;
				document.getElementById(_underlineID).disabled = false;
				document.getElementById(_webID).disabled = false;
				document.getElementById(_mailID).disabled = false;
				document.getElementById(_htmlToggleID).disabled = false;

				document.getElementById(_boldID).className = "form_button";
				document.getElementById(_italicID).className = "form_button";
				document.getElementById(_underlineID).className = "form_button";
				document.getElementById(_webID).className = "form_button";
				document.getElementById(_mailID).className = "form_button";
          	     document.getElementById(_htmlToggleID).className = "textBarActive";

				// Enable RTE
				if (document.getElementById("htmlSRCSwitch|" + _rteID).defaultChecked) {
					document.getElementById(_rteID).disabled = false;
					document.getElementById(_rteID).style.backgroundColor = "#ffffff";
					document.getElementById(_rteID).style.color = "#000000";
				} else {
					enableDesignMode(_rteID,_html,false,true);
				}

				// Enable Title bar
				document.getElementById(_titleID).disabled = false;
				document.getElementById(_titleID).className = "textBarActive";
				document.getElementById(_btnID).value = "Save Gallery Text";
			} else {
				setYpos();
				submitToggle(_formID);
			}
		}
	}

// Toggle Upload form radios //
	function toggleUploadRadios(_value) {
		if (_value != "") {
			document.getElementById("group_new").checked = true;
		} else if (document.getElementById("group_old")) {
			document.getElementById("group_old").checked = true;
		}
	}

// Builds generic preview for the Email Management Page //
	function buildGenericeMail(_eID,_preview_title,_tldn) {
		var _value;

		_value = document.getElementById(_eID).value;
		document.getElementById(_eID + "_preview_title").innerHTML = "<u>" + _preview_title + " Preview:</u><br />\n"
		document.getElementById(_eID + "_preview").innerHTML = _value;

		if (_tldn != undefined) {
			document.getElementById(_eID + "_preview").innerHTML += "@" + _tldn;
		}
		if (_value == "") {
			document.getElementById(_eID + "_preview_title").innerHTML = "";
			document.getElementById(_eID + "_preview").innerHTML = "";
		}
	}

// Toggles FWD Field //
	function toggleFWDField(_checkBoxID,_inputID) {
		var _status;
		_status = document.getElementById(_checkBoxID).checked;

		_inputID = document.getElementById(_inputID);

		if (_status) {
			_inputID.disabled = false;
			_inputID.className = "textBarActive";
			_inputID.focus();
		} else {
			_inputID.style.borderColor = "#797979";
			_inputID.disabled = true;
			_inputID.className = "textBarInactive";
		}
	}

// Checks New eMail stuff //
	function checkNeweMail() {
		var _eMail, _fwdStatus, _fwdInput, _return = true, _i, _letter, _verify, _validchars;
		_validchars = "abcdefghijklmnopqrstuvwxyz0123456789+-._"
		_verify = "email_prefix";
		_fwdStatus = document.getElementById("fwd").checked;

		_eMail = document.getElementById("email_prefix").value;

		if (_eMail != "") {
			for (_i=0;_i<_eMail.length;_i++) {
				_letter = _eMail.charAt(_i).toLowerCase();
				if (_validchars.indexOf(_letter) == -1) {
					alert("The Email is invalid!");
					document.getElementById("email_prefix").focus();
					_return = false;
					break;
				}
			}
		}

		_fwdInput = document.getElementById("fwd_input").value;

		if ((_fwdInput != "") && (_fwdStatus)) {
			if (!iseMail(_fwdInput)) {
				_return = false;
				alert("The FWD is invalid!");
			}
		} else if ((_fwdInput == "") && (_fwdStatus)) {
			_verify += "|fwd_input";
		}

		if (_return) {
			verify(_verify,"_MEAform");
		}
	}

// Submit handler for uploadFileForm //
	function verifyUF() {
		var _newGroup, _args;

		document.getElementById("group_new_input").style.borderColor = "#797979";
		_newGroup = document.getElementById("group_new").checked;
		_args = "title|file"

		if (_newGroup) {
			_args += "|group_new_input";
		}
		verify(_args,"_uploadFileForm");
	}

// See if the states are selected //
	function verifyAP(_args) {
		var _mailingState, _billingState;
		_mailingState = document.getElementById("mailing_state").value;
		_billingState = document.getElementById("billing_state").value;

		if ((_mailingState == "no_state") || (_billingState == "no_state")) {
			alert("You must select a State!");
		} else {
			verify(_args,"_APform");
		}
	}

// Builds mailing address for Account Profile page //
	function buildBillingAddress() {
		var _line1, _line2, _city, _state, _zip, _preview;
		_line1 = document.getElementById("billing_address_line_1").value;
		_line2 = document.getElementById("billing_address_line_2").value;
		_city = document.getElementById("billing_city").value;
		_state = document.getElementById("billing_state").value;
		_zip = document.getElementById("billing_zip").value;

		if (_state == "no_state") {
			_state = "";
		}

		_preview = _line1 + "<br />\n";
		if (_line2) {
			_preview += _line2 + "<br />\n";
		}

		if (_city) {
			_preview += _city + ", ";
		}

		_preview += _state + " " + _zip;

		document.getElementById("billing_address_preview_title").innerHTML = "<u>Billing Address Preview</u><br />\n";
		document.getElementById("billing_address_preview").innerHTML = _preview;
		if ((_line1 == "") && (_line2 == "") && (_city == "") && (_state == "") && (_zip == "")) {
			document.getElementById("billing_address_preview_title").innerHTML = "";
			document.getElementById("billing_address_preview").innerHTML = "";
		}
	}

// Builds generic preview for Account Profile page //
	function buildGeneric(_eID,_preview_title) {
		var _value;
		_value = document.getElementById(_eID).value;
		document.getElementById(_eID + "_preview_title").innerHTML = "<u>" + _preview_title + " Preview:</u><br />\n"
		document.getElementById(_eID + "_preview").innerHTML = _value;
		if (_value == "") {
			document.getElementById(_eID + "_preview_title").innerHTML = "";
			document.getElementById(_eID + "_preview").innerHTML = "";
		}
	}

// Builds mailing address for Account Profile page //
	function buildMailingAddress() {
		var _line1, _line2, _city, _state, _zip, _preview;
		_line1 = document.getElementById("mailing_address_line_1").value;
		_line2 = document.getElementById("mailing_address_line_2").value;
		_city = document.getElementById("mailing_city").value;
		_state = document.getElementById("mailing_state").value;
		_zip = document.getElementById("mailing_zip").value;

		if (_state == "no_state") {
			_state = "";
		}

		_preview = _line1 + "<br />\n";
		if (_line2) {
			_preview += _line2 + "<br />\n";
		}

		if (_city) {
			_preview += _city + ", ";
		}

		_preview += _state + " " + _zip;

		document.getElementById("mailing_address_preview_title").innerHTML = "<u>Mailing Address Preview</u><br />\n";
		document.getElementById("mailing_address_preview").innerHTML = _preview;
		if ((_line1 == "") && (_line2 == "") && (_city == "") && (_state == "") && (_zip == "")) {
			document.getElementById("mailing_address_preview_title").innerHTML = "";
			document.getElementById("mailing_address_preview").innerHTML = "";
		}

		matchAddresses();
	}

// Builds name for Account Profile page //
	function buildName() {
		var _first, _mi, _last;
		_first = document.getElementById("first_name").value;
		_mi = document.getElementById("mi").value;
		_last = document.getElementById("last_name").value;

		document.getElementById("name_preview_title").innerHTML = "<u>Name Preview:</u><br />\n";
		document.getElementById("name_preview").innerHTML = _first + "&nbsp;" + _mi + " " + _last;
		if ((_first == "") && (_mi == "") && (_last == "")) {
			document.getElementById("name_preview_title").innerHTML = "";
			document.getElementById("name_preview").innerHTML = "";
		}
	}

// Matches fields in mailing & billing fields //
	function matchAddresses() {
		if (document.getElementById("mailingequalsbilling").checked == true) {
			// Disable the ablility to edit these fields //
			document.getElementById("billing_address_line_1").disabled = true;
			document.getElementById("billing_address_line_2").disabled = true;
			document.getElementById("billing_city").disabled = true;
			document.getElementById("billing_state").disabled = true;
			document.getElementById("billing_zip").disabled = true;

			// Now match them //
			document.getElementById("billing_address_line_1").value = document.getElementById("mailing_address_line_1").value;
			document.getElementById("billing_address_line_2").value = document.getElementById("mailing_address_line_2").value;
			document.getElementById("billing_city").value = document.getElementById("mailing_city").value;
			document.getElementById("billing_state").value = document.getElementById("mailing_state").value;
			document.getElementById("billing_zip").value = document.getElementById("mailing_zip").value;

			// Run preview //
			buildBillingAddress();
		} else {
			// Re-enable these fields //
			document.getElementById("billing_address_line_1").disabled = false;
			document.getElementById("billing_address_line_2").disabled = false;
			document.getElementById("billing_city").disabled = false;
			document.getElementById("billing_state").disabled = false;
			document.getElementById("billing_zip").disabled = false;
		}
	}

// Builds date url and send it //
	function buildDate(_self,_pid,_cid) {
		var _month, _year;
		_month = document.getElementById("quick_month").value;
		_year = document.getElementById("quick_year").value;

		window.location = _self + "?pid=" + _pid + "&cid=" + _cid + "&year=" + _year + "&month=" + _month;
	}

// eMail validator //
	function iseMail(_email) {
		if (_email.length == 0) {  
			return false;
		}
		if (!allValidChars(_email)) {
			return false;
		}
		if (_email.indexOf("@") < 1) {
			return false;
		} else if (_email.lastIndexOf(".") <= _email.indexOf("@")) {
			return false;
		} else if (_email.indexOf("@") == _email.length) {
			return false;
		}

		return true;
	}

// Called by iseMail() //
	function allValidChars(_email) {
		var _parsed = true;
		var _validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
		for (var _i=0; _i<_email.length;_i++) {
			var _letter = _email.charAt(_i).toLowerCase();
			if (_validchars.indexOf(_letter) != -1) {
				continue;
			}
			_parsed = false;
			break;
		}
		return _parsed;
	}

// Enable Elements //
	function enableElements(_formID) {
		var _i, _j;
		var _allForms = document.forms.length;
		var _allElements;
		for (_i=0;_i<_allForms;_i++) {
			_allElements = document.forms[_i].elements.length;
			for (_j=0;_j<_allElements;_j++) {
				document.forms[_i].elements[_j].disabled = false;
			}
		}
	}

// Form submitter //
	function submitForm(_formID) {
		document.getElementById(_formID).submit();
	}

// Build HREF //
	function buildHREF(_href) {
		window.location = _href + "&ypos=" + getY();
	}

// Set form element with id = ypos to current Y axis //
	function setYpos() {
		try {
			var _num_forms = document.forms.length;

			for (var _i=0;_i<_num_forms;_i++) {
				try {
					document.forms[_i].elements["ypos"].value = getY();
				} catch (_e) {
					// NO ypos in this form //
				}
			}
		} catch (e) {
			// oh well //
		}
	}

// Get Y scroll amount of page //
	function getY() {
		if (document.body.scrollTop != undefined) {
			var _ieBox = (document.compatMode != "CSS1Compat");
			var _cont = (_ieBox) ? document.body : document.documentElement;
			return _cont.scrollTop;
		} else {
			return window.pageYOffset;
		}
	}

// submit search form //
	function submitSearchForm() {
		if (document.getElementById("query").value != "") {
			document.getElementById("searchform").submit();
		}
	}

// form verification //
	function verify(_verify,_passedFormID) {
		var _submitform = true;
		_verify = _verify.split("|");

		for (var _i=0;_i<_verify.length;_i++) {
			document.getElementById(_verify[_i]).style.borderColor = "#797979";

			if (document.getElementById(_verify[_i]).value == "") {
				_submitform = false;
				document.getElementById(_verify[_i]).style.borderColor = "#ff0000";
			}
		}

		if (!_passedFormID) {
			_formID = (_formID) ? _formID : "form";
		} else {
			_formID = _passedFormID;
		}

		if (_submitform == true) {
			if (_formID == "_APform") {
				enableElements(_formID);
			}
			if (!document.getElementById(_formID)) {
				alert("Form ID is invalid.\n\nverify(_verify,_passedFormID);");
			}

			document.getElementById(_formID).submit();
			if (document.getElementById("submitbtn")) {
				document.getElementById("submitbtn").disabled = true;
			}
		} else {
			if (_formID == "_APform") {
				// Disable the ablility to edit these fields //
				document.getElementById("billing_address_line_1").disabled = true;
				document.getElementById("billing_address_line_2").disabled = true;
				document.getElementById("billing_city").disabled = true;
				document.getElementById("billing_state").disabled = true;
				document.getElementById("billing_zip").disabled = true;
			}
			alert(_msg3);
		}
	}

// RETURN!! form verification //
	function returnVerify(_verify) {
		var _submitform = true;
		_verify = _verify.split("|");

		for (var _i=0;_i<_verify.length;_i++) {
			document.getElementById(_verify[_i]).style.borderColor = "#797979";

			if (document.getElementById(_verify[_i]).value == "") {
				_submitform = false;
				document.getElementById(_verify[_i]).style.borderColor = "#ff0000";
			}
		}

		if (_submitform == true) {
			return true;
		} else {
			alert(_msg8);
			return false;
		}
	}

	_msg1 = "";
	_msg2 = "";
	_msg3 = "";
	_msg4 = "";
	_msg5 = "";
	_msg6 = "";
	_msg7 = "";
	_msg8 = "";
	_msg9 = "";
	_msg10 = "";
	_msg11 = "";
	_msg12 = "";
