// JavaScript Document
	/**
	 * 
	 * @param {Object} form
	 * @param {Object} task
	 * @param {Object} id
	 */
	function doTask( url, container, form ) {
		
		// if url is present, do validation
		if (url && form) {		
			// loop through form elements and prepare an array of objects for passing to server
			var str = new Array();
			for(i=0; i<form.elements.length; i++)
			{
				postvar = {
					name : form.elements[i].name,
					value : form.elements[i].value,
					id : form.elements[i].id
				}
				str[i] = postvar;
			}
			// execute Ajax request to server
            var a=new Ajax(url,{
                method:"post",
				data:{"elements":Json.toString(str)},
                onComplete: function(response){
                    var resp=Json.evaluate(response);
                    $(container).setHTML(resp.msg);
                }
            }).request();
		} else if (url && !form) {
			// execute Ajax request to server
            var a=new Ajax(url,{
                method:"post",
                onComplete: function(response){
                    var resp=Json.evaluate(response);
                    $(container).setHTML(resp.msg);
                }
            }).request();			
		}
	}

	function tableOrdering( order, dir, task ) {
		var form = document.adminForm;
	     
		form.order.value     = order;
		form.order_dir.value    = dir;
	
		document.adminForm.submit( task );
	}
	
	
	function displayDiv (divname, spanname, showtext, hidetext) { 
		var div = document.getElementById(divname);
		var span = document.getElementById(spanname);
	
		if (div.style.display == "none")	{
			div.style.display = "";
			span.innerHTML = hidetext;
		} else {
			div.style.display = "none";
			span.innerHTML = showtext;
		}
	}
	

	function getElementsByClass(searchClass,node,tag) {
		 var classElements = new Array();
		 if ( node == null )
		 	node = document;
		 if ( tag == null )
		 	tag = '*';
		 var els = node.getElementsByTagName(tag);
		 var elsLen = els.length;
		 var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
		 for (i = 0, j = 0; i < elsLen; i++) {
		 	if ( pattern.test(els[i].className) ) {
		 		classElements[j] = els[i];
		 		j++;
		 	}
		 }
		 return classElements;
		}
	
	function switchDisplayDiv( prefix, newSuffix ){
		var newName = prefix + newSuffix;
		var currentSuffixDiv = document.getElementById('currentSuffix');
		var currentSuffix = currentSuffixDiv.innerHTML;	
		var oldName = prefix + currentSuffix;
		var newDiv = document.getElementById(newName);
		var oldDiv = document.getElementById(oldName);
	
		currentSuffixDiv.innerHTML = newSuffix;
		newDiv.style.display = "";
		oldDiv.style.display = "none";
	}
	
	function submitForm(form, task, id) {   
		// do field validation
			if (task == "validatefields") {
					if (!form.accept.checked) { 
						alert("You must accept our terms to submit this form.");
					}
					else if (form.question1.value == form.question2.value) { 
						alert("You must select two different questions.");
					}
					else if (form.answer1.value == form.answer2.value) { 
						alert("You must submit two different answers.");
					}
					else if (!form.answer1.value || !form.answer2.value) { 
						alert("You complete the entire form.");
					}
					else {
						form.task.value = task;
						form.id.value = id;
						form.submit();
					}
			} 
			else if (task == "processticket") {
					if (!form.subject.value || form.subject.value == " ") { 
						alert("Invalid Subject.");
					}
					else if (!form.description.value || form.description.value == " ") { 
						alert("Invalid Description.");
					}
					else {
						form.task.value = task;
						form.id.value = id;
						form.submit();
					}
			} 
			else {
				form.task.value = task;
				form.id.value = id;
				form.submit();
			}
	}