/* Shared JavaScript library for Blue Coast */

/* 
  Usage: AutoclearField.setup(element, "Default Text");
*/
var AutoclearField = {
	setup: function(field, defaultText) {
		var field = $(field);
		field.value = defaultText;
		field.defaultText = defaultText;  
		field.observe('focus', AutoclearField.onFocus);
		field.observe('blur', AutoclearField.onBlur);
	},
	
	onFocus: function(event) {
		var field = event.element();
		if (!field.edited) {
			field.edited = true; 
			field.clear(); 
		}
	}, 
	
	onBlur: function(event) {
		var field = event.element();
		if (!field.present()) {
			field.edited = false; 
			field.value = field.defaultText; 
		}		
	}
};

var Cookie = {
	// expires is in days
	set: function(name, value, expires, path, domain, secure) {
		var today = new Date();
		if (expires) expires = expires * 1000 * 60 * 60 * 24;
		var expiresDate = new Date(today.getTime() + expires);

		document.cookie = name + "=" + encodeURIComponent(value) +
		( expires ? "; expires=" + expiresDate.toGMTString() : "" ) + 
		( path    ? "; path=" + path : "" ) + 
		( domain  ? "; domain=" + domain : "" ) +
		( secure  ? "; secure" : "" );
	}, 
	
	remove: function(name, path, domain) {
		document.cookie = name + "=" +
		( path   ? "; path=" + path : "" ) +
		( domain ? "; domain=" + domain : "" ) +
		"; expires=Thu, 01-Jan-1970 00:00:01 GMT";
	},
	
	// Returns value of named cookie.  Returns null if cookie can't be found. 
	get: function(name) {
	    var allcookies = document.cookie;

	    if (allcookies == "") return null;

	    var cookies = allcookies.split('; ');
	    var cookie = null;
	    for(var i = 0; i < cookies.length; i++) {
	        if (cookies[i].substring(0, name.length+1) == (name + "=")) {
	            cookie = cookies[i];
	            break;
	        }
	    }
	
	    if (cookie == null) return null;
		
		return decodeURIComponent(cookie.substring(name.length+1));
	}
};