function flashFormField(id, color, color2) {
	if (!color) {
		var color = '#d0d0d0';
	}
	if (!color2) {
		var color2 = '';
	}

	$(id).style.backgroundColor=color;
	setTimeout("$('"+id+"').style.backgroundColor='"+color2+"'", 300);
	setTimeout("$('"+id+"').style.backgroundColor='"+color+"'", 600);
	setTimeout("$('"+id+"').style.backgroundColor='"+color2+"'", 900);
	setTimeout("$('"+id+"').style.backgroundColor=''", 1200);
}

/* Web Service Helper */
function callWebService(service, method, params, callback) {
	try {
		url = '/xsjson?service='+service+'&method='+method;
		new ajax(url, {method: 'post', postBody: params, onComplete: callback});
	} catch (e) {
		alert(e);
	}
}

/* Search Box Enhancements */
var SiteSearch = {
	addSearch: function() {
		//Event.observe('search', 'submit', SiteSearch.checkSearch);
	},

	checkSearch: function(event) {
		if ($('searchfield').value) {
			return true;
		} else {
			Event.stop(event);

			SiteSearch.alertError();
			$('searchfield').focus();

			return false;
		}
	},

	alertError: function() {
		flashFormField('searchfield');
	}
}

if ($('search')) {
	//Event.observe(window, 'load', SiteSearch.addSearch, false);
}

/* Form Enhancements */
var enhancedEditor = false;
var skipCheck = false;

var EnhancedForms = {
	addCheck: function() {
		var forms = $('content').getElementsByTagName('form');
		for (i=0;i<forms.length;i++) {
			//Event.observe(forms[i], 'submit', EnhancedForms.checkForm);
		}

		var skip = document.getElementsByClassName('skipcheck');
		for (i=0;i<skip.length;i++) {
			//Event.observe(skip[i], 'click', EnhancedForms.skipCheck);
		}
	},

	addEditor: function(elementid, type) {
		enhancedEditor = true;

		if (type == "full") {
			var b1 = "bold,italic,formatselect,separator,bullist,numlist,link,unlink,image,separator,geneone_emoticons";
			var b2 = "indent,outdent,separator,forecolor,separator,sub,sup,separator,hr,separator,undo,redo,code";
			var b3 = "";
			var plugins = "autosave,geneone_emoticons";
		} else if (type == "blog") {
			var b1 = "bold,italic,formatselect,separator,bullist,numlist,link,unlink,image,geneone_page,separator,geneone_emoticons,separator,indent,outdent,separator,undo,redo,code";
			var b2 = "";
			var b3 = "";
			var plugins = "autosave,geneone_emoticons,geneone_page";
		} else {
			var b1 = "bold,italic,forecolor,formatselect,separator,bullist,numlist,link,unlink,image,media,geneone_emoticons,separator,indent,outdent,separator,undo,redo,code,separator,fullscreen,preview";
			var b2 = "";
			var b3 = "";
			var plugins = "autosave,geneone_emoticons,media,fullscreen,advimage";
		}

		tinyMCE.init({
			mode : "exact",
			elements : elementid,
			theme : "advanced",
			width: '100%',
			plugins : plugins,
			theme_advanced_buttons1 : b1,
			theme_advanced_buttons2 : b2,
			theme_advanced_buttons3 : b3,
			theme_advanced_blockformats : "p,h3,h4,pre,address",
			theme_advanced_toolbar_location : "top",
			theme_advanced_toolbar_align : "left",
			accessibility_warnings : true,
			entity_encoding : "raw",
			browsers : "msie,gecko,safari,opera",
			content_css : ui['styles'] + 'editor.css',
			convert_urls : true,
			relative_urls : false,
			button_tile_map : true
		});

		// Make label clickable
		var labels = document.getElementsByTagName("label");
		for (i=0;i<labels.length;i++) {
			if (labels[i].getAttribute("for") == elementid) {
				labels[i].onclick = function() { window.setTimeout("tinyMCE.execCommand(\"mceStartTyping\");tinyMCE.selectedInstance.contentWindow.focus();", 100); }
			}
		}
	},

	checkForm: function(event) {
		if (skipCheck) {
			return true;
		}

		if (enhancedEditor) {
			/* Copies TinyMCE content to proper form field if required */
			tinyMCE.triggerSave();
		}

		var form = Event.element(event);
		var fields = Form.getElements(form);
		var errors = 0;

		/* Check required fields are filled in */
		for (i=0;i<fields.length;i++) {
			if (Element.hasClassName(fields[i], "required") && fields[i].value == '') {
				Element.addClassName(fields[i], "missing");

				/* Assign an automatic ID for the element */
				if (!fields[i].id) {
					if (!this.autoId) {
						this.autoId = 1;
					}

					fields[i].id = 'autoid'+this.autoId;

					this.autoId++;
				}

				flashFormField(fields[i].id, '#F5DBD7', '#fff');

				errors++;
			} else {
				Element.removeClassName(fields[i], "missing");
			}
		}

		if (errors > 0) {
			alert('Error: '+errors+' required fields were not filled in. Please fill them in and then submit the form again.');
			Event.stop(event);
			return false;
		} else {
			return true;
		}
	},

	fixForms: function() {
		if (typeof(tinyMCE) != "undefined" && $('formobjcontent')) {
			var tabEditor = function (e) {
				e = e ? e : window.event;
				if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) {
					var i = tinyMCE.selectedInstance;
					if(typeof i ==  'undefined') {
						return true;
					}

					tinyMCE.execCommand("mceStartTyping");
					this.blur();
					i.contentWindow.focus();
					e.returnValue = false;
					return false;
				}
			}

			if (tinyMCE.isMSIE) {
				var previousElement = $('formobjcontent').parentNode.previousSibling.previousSibling.getElementsByTagName('input')[0];

				if (previousElement) {
					previousElement.onkeydown = tabEditor;
				}
			} else {
				if ($('formobjcontent').parentNode.previousSibling.previousSibling.previousSibling) {
					var previousElement = $('formobjcontent').parentNode.previousSibling.previousSibling.previousSibling.previousSibling.getElementsByTagName('input')[0];
				}

				if (previousElement) {
					previousElement.onkeypress = tabEditor;
				}
			}
		}
	},

	skipCheck: function() {
		skipCheck = true;
	}
}

//Event.observe(window, 'load', EnhancedForms.init, false);
//Event.observe(window, 'load', EnhancedForms.addCheck, false);
//Event.observe(window, 'load', EnhancedForms.fixForms, false);
