// 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 (_rteID != false) {
			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;
				}
			}
		} 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")) {
				window.opener.document.getElementById("href").value = _currentResource;
			} else {
				window.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 = "You must choose the source of the image you are adding, or hit cancel before proceeding with editing text.";
	_msg2 = "You have not saved text you are currently editing.\nDiscard changes?";
	_msg3 = "Please fill out all required fields!\nThe fields with a red border need to be filled ...";
	_msg4 = "You must make a decision on deleting this image, hit cancel before proceeding with editing text.";
	_msg5 = "Like it says, you've used too much space on the system. Fix it and you can try again.";
	_msg6 = "The date you requested is out of the Calendar's range. The closest valid date has been displayed for you.";
	_msg7 = "\nA URL Must contain the prefix \"http://\"";
	_msg8 = "Fields with a red border are required!";
	_msg9 = "The image link has not been setup. Either click the \"Web Link\" or \"Mail Link\" buttons and set the the link accordingly, or uncheck the checkbox.";
	_msg10 = "Please finish adding or editing the image to this page. Either hit cancel or finish adding / editing the image.";
	_msg11 = "Are you sure you want to hide the HTML source, by doing so the markup will be filtered and any additions made may be lost. Click \"OK\" to proceed and hide the HTML, or \"Cancel\" to continue displaying the HTML.";
	_msg12 = "In order to subscribe you must first agree to the Evative Terms of Use Agreement.";
