function insertTag(element,tag) {
	var f;
	f = MM_findObj(element);
	f.value = f.value + tag;
}

function insertAtCaret (element, txt) {
	var el;
	el = MM_findObj(element);
  	if (el.currRange) {
    	el.currRange.text = el.currRange.text.charAt(el.currRange.text.length - 1) != ' ' ? txt : txt + ' ';
    	el.currRange.select();
  	}
  	else
    	insertAtEnd(el, txt);
}

function insertAtEnd (el, txt) {
  	el.value += txt;
  	setCaretToEnd (el);
}

function storeCaret (editEl) {
  	if (editEl.createTextRange)
    	editEl.currRange = document.selection.createRange().duplicate();
}

function setCaretToEnd (el) {
  	if (el.createTextRange) {
    	var v = el.value;
    	var r = el.createTextRange();
    	r.moveStart('character', v.length);
    	r.select();
  	}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function validateForm() {
  	var fval,i,j,c,p,q,fname,type,errors='',args=validateForm.arguments;
	for (i=0; i<(args.length-2); i+=3) { 
	  	type=args[i+1]
		fname=args[i+2]; 
		val=MM_findObj(args[i]);
		if (val[val.selectedIndex]) fval=val[val.selectedIndex].value;
		else fval=val.value;
	    if (val) {
			if (type=="email") {
				p=fval.indexOf('@');
				q=fval.indexOf('.');
				if (p<1 || p==(fval.length-1) || q==-1) {
					if (!errors) val.focus();
					errors+= '"'+fname+'" must contain a valid email address.\n';
				}
			}
			else if (type=="radio") {
				c=0;
				for (j=0; j<val.length; j++) {
					if (val[j].checked) c=1;
				}
				if (!c) {
					if (!errors) val[0].focus();
	      			errors += '"'+fname+'" is required.\n';
				}
			}
			else if (!fval) {
				if (!errors) val.focus();
	      		errors += '"'+fname+'" is required.\n';
			}
	  	} 
	}
	if (errors) {
		alert('Please correct the following and submit the form again:\n\n'+errors);
		return false;
	}
	return true;
}