/*	-- -- -- -- -- -- --	form handling javascript	-- -- -- -- -- -- --	File Contents:	Functions to deal with various forms.	*//*	FUNCTION: checkform	Form input validation, courtesy Christian Heilmann	http://onlinetools.org/articles/unobtrusivejavascript/chapter5.html*/function checkform(of){// Test if DOM is available and there is an element called required	if(!document.getElementById || !document.createTextNode){return;}	if(!document.getElementById('required')){return;}// Define error messages and split the required fields	var errorID='error-message';	var errorClass='error'	var errorMsg='Please make sure that you\'ve filled in the highlighted fields above, and that you have entered a valid email address. Thanks!';	var reqfields=document.getElementById('required').value.split(',');// Cleanup old mess	// if there is an old errormessage field, delete it	if(document.getElementById(errorID))	{		var em=document.getElementById(errorID);		em.parentNode.removeChild(em);	}	// remove old classes from the required fields	for(var i=0;i<reqfields.length;i++)	{		var f=document.getElementById(reqfields[i]);		if(!f){continue;}		f.className='';	}// loop over required fields	for(var i=0;i<reqfields.length;i++)	{// check if required field is there		var f=document.getElementById(reqfields[i]);		if(!f){continue;}// test if the required field has an error, // according to its type		switch(f.type.toLowerCase())		{			case 'text':				if(f.value=='' && f.id!='email'){cf_adderr(f)}							// email is a special field and needs checking				if(f.id=='email' && !cf_isEmailAddr(f.value)){cf_adderr(f)}										break;			case 'textarea':				if(f.value==''){cf_adderr(f)}										break;			case 'checkbox':				if(!f.checked){cf_adderr(f)}										break;			case 'select-one':				if(!f.selectedIndex && f.selectedIndex==0){cf_adderr(f)}										break;		}	}	return !document.getElementById(errorID);	/* Tool methods */	function cf_adderr(o)	{		// colourize the error fields		o.className=errorClass;	// Check if there is no error message		if(!document.getElementById(errorID))		{		// create errormessage and insert before submit button			var em=document.createElement('span');			em.id=errorID;			em.appendChild(document.createTextNode(errorMsg))			// find the submit button 			for(var i=0;i<of.getElementsByTagName('input').length;i++)			{				if(/submit/i.test(of.getElementsByTagName('input')[i].type))				{					var sb=of.getElementsByTagName('input')[i];					break;				}			}			if(sb)			{				sb.parentNode.appendChild(em,sb);			}			} 	}	function cf_isEmailAddr(str) 	{		// edited to add + sign recognition (GMail)		return str.match(/^[\w-\+]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);	}}/*	REMEMBER ME FUNCTIONS	Functions below adapted from MT default installation*/// Copyright (c) 1996-1997 Athenia Associates.// http://www.webreference.com/js/// License is granted if and only if this entire// copyright notice is included. By Tomer Shiran.function setCookie (name, value, expires, path, domain, secure) {    var curCookie = name + "=" + escape(value) + (expires ? "; expires=" + expires : "") +        (path ? "; path=" + path : "") + (domain ? "; domain=" + domain : "") + (secure ? "secure" : "");    document.cookie = curCookie;}function getCookie (name) {    var prefix = name + '=';    var c = document.cookie;    var nullstring = '';    var cookieStartIndex = c.indexOf(prefix);    if (cookieStartIndex == -1)        return nullstring;    var cookieEndIndex = c.indexOf(";", cookieStartIndex + prefix.length);    if (cookieEndIndex == -1)        cookieEndIndex = c.length;    return unescape(c.substring(cookieStartIndex + prefix.length, cookieEndIndex));}function deleteCookie (name, path, domain) {    if (getCookie(name))        document.cookie = name + "=" + ((path) ? "; path=" + path : "") +            ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";}function fixDate (date) {    var base = new Date(0);    var skew = base.getTime();    if (skew > 0)        date.setTime(date.getTime() - skew);}function rememberMe (f) {    var now = new Date();    fixDate(now);    now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);    now = now.toGMTString();    if (f.author != undefined)       setCookie('mtcmtauth', f.author.value, now, '/', '', '');    if (f.email != undefined)       setCookie('mtcmtmail', f.email.value, now, '/', '', '');    if (f.url != undefined)       setCookie('mtcmthome', f.url.value, now, '/', '', '');}function forgetMe (f) {    deleteCookie('mtcmtmail', '/', '');    deleteCookie('mtcmthome', '/', '');    deleteCookie('mtcmtauth', '/', '');    f.email.value = '';    f.author.value = '';    f.url.value = '';}function hideDocumentElement(id) {    var el = document.getElementById(id);    if (el) el.style.display = 'none';}function showDocumentElement(id) {    var el = document.getElementById(id);    if (el) el.style.display = 'block';}var commenter_name;window.onload = function() {	var f = document.getElementById("comments_form");    if (f) {        if ((f.email != undefined) &&            (mtcmtmail = getCookie("mtcmtmail")))            f.email.value = mtcmtmail;        if ((f.author != undefined) &&            (mtcmtauth = getCookie("mtcmtauth")))            f.author.value = mtcmtauth;        if (f.url != undefined &&             (mtcmthome = getCookie("mtcmthome")))            f.url.value = mtcmthome;        if (f["bakecookie"]) {            if (mtcmtauth || mtcmthome) {                f.bakecookie.checked = true;            } else {                f.bakecookie.checked = false;            }        }    }}