// Utility script by Bernie Zimmermann
// Copyright 2006

// Form preparation code based on example at http://snook.ca/

var BERNZILLA = new Object();

BERNZILLA.prepareCommentForm = function()
{
	// load cookie info and set default values for form fields
	var cform = document.getElementById('comments_form');
	if (cform)
	{
		// set up the form field settings
		this.prepareField({field:'name',text:'',record:true,clear:false});
		this.prepareField({field:'email',text:'',record:true,clear:false});
		this.prepareField({field:'website',text:'http://',record:true,clear:false});
	
		// handle storage of data on form submit
		cform.onsubmit = function()
		{
			var els = this.getElementsByTagName("*");
			for(var i=0, j=els.length; i < j; i++)
			{
				if(els[i].chipsAhoy)
				{
					if(els[i].value == els[i].noValue) els[i].value = '';
					if(els[i].record) BERNZILLA.remember(els[i]);
				}
			}
		}
	}
}

BERNZILLA.prepareField = function(options)
{
	var opt = {
		field: '',
		text: '',
		record: false,	/* record value to a cookie on submit */
		clear: false,	/* clear field on focus */
		restore: true	/* restore field on blur */
	};

	for (property in options) opt[property] = options[property];

	var el = document.getElementById(opt.field);
	if(el) // make sure field exists
	{
		if (opt.record) el.value = this.getCookie("bernzilla" + opt.field);
		el.chipsAhoy = 1;
		el.noValue = opt.text;
		el.record = opt.record;
		if (!el.value) el.value = opt.text;
		if (opt.clear) { el.onfocus = function() { if (this.value == this.noValue) { this.value = ''; } }; };
		if (opt.restore) { el.onblur = function() { if (this.value == '') { this.value = this.noValue; } }; };
	}
}

// Cookie code 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.

BERNZILLA.setCookie = function (name, value, expires)
{
    var domain = 'bernzilla.com';
    var curCookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((domain) ? "; domain=" + domain : "") + "; path=/";
    document.cookie = curCookie;
}

BERNZILLA.getCookie = function(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));
}

BERNZILLA.remember = function(fld)
{
    var now = new Date();
    var base = new Date(0);
    var skew = base.getTime();
    if (skew > 0) now.setTime(now.getTime() - skew);
    now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
    this.setCookie('bernzilla' + fld.id, fld.value, now);
}