/*
 * Edit In Place
 * http://josephscott.org/code/js/eip/
 * Version 0.3.3
 * License http://josephscott.org/code/js/eip/license.txt (Eliminat)
 */

Form.InlineHints = function(form, hints) {
    this.form = $(form);
	this.hints = {};

    this.onFocusEL	= this.onFocus.bindAsEventListener(this);
    this.onBlurEL	= this.onBlur.bindAsEventListener(this);
    this.setInputsEL	= this.setInputs.bindAsEventListener(this);
    this.resetInputsEL	= this.resetInputs.bindAsEventListener(this)
	
	this.addHints(hints);
    Event.observe(this.form, 'reset', this.setInputsEL);
    Event.observe(this.form, 'submit', this.resetInputsEL);
};

Form.InlineHints.prototype = {
	addHints:
	function(hints) {
		for (var name in hints) {
			this.hints[name] = hints[name];
			var i = this.form[name];
			Event.observe(i, 'focus', this.onFocusEL);
			Event.observe(i, 'blur', this.onBlurEL);
		}
		this.setInputs();
	},

	removeHints:
	function(names) {
		for (var i = 0; i < names.length; i++) {
			delete(this.hints[names[i]]);
		}
	},

    onFocus:
    function(e) {
		var i = Event.element(e);
		var hint = this.hints[i.name].replace(/[\r\n]/g, '');
		var value = i.value.replace(/[\r\n]/g, '');
		if (value == hint.substr(0, value.length)) {
			i.style.color = '#000';
			i.value	= '';
		}
    },
	
    onBlur:
    function(e)	{
		var i = Event.element(e);
		if (i.value	== '') {
			i.style.color =	'#808080';
			i.value	= this.hints[i.name];
		}
    },
	
    setInputs:
    function() {
		for (var name in this.hints) {
			var i = this.form[name];
			var hint = this.hints[i.name].replace(/[\r\n]/g, '');
			var value = i.value.replace(/[\r\n]/g, '');
			if (value == '' || value == hint.substr(0, value.length)) {
				i.style.color = '#808080';
				i.value = this.hints[name];
			}
			else {
				i.style.color = '#000';
			}
		}
    },
	
    resetInputs:
    function() {
		for (var name in this.hints) {
			var i = this.form[name];
			var hint = this.hints[i.name].replace(/[\r\n]/g, '');
			var value = i.value.replace(/[\r\n]/g, '');
			if (value == hint.substr(0, value.length)) {
				i.style.color = '#000';
				i.value = '';
			}
		}
    }
};

// http://you.gotfoo.org/using-scriptaculous-to-toggle-a-div/
// http://you.gotfoo.org/using-scriptaculous-to-toggle-a-div-ii/

function setDiv(id){
    cookieValue = readCookie(id);   
    if (cookieValue == 'Appear') {
        new Effect.SlideDown(id);
        setCookie(id,'Appear',1) ;
    }else if (cookieValue == 'Fade') {
        new Effect.SlideUp(id);   
        setCookie(id,'Fade',1) ;
    }else{
        new Effect.SlideUp(id);
        setCookie(id,'Fade',1) ;
    }
}

function divToggle(id){
    cookieValue = readCookie(id);
    if (cookieValue == 'Fade') {
        new Effect.SlideDown(id);
        setCookie(id,'Appear',1) ;
    }else if (cookieValue == 'Appear') {
        new Effect.SlideUp(id);   
        setCookie(id,'Fade',1) ;
    }
}
 
function setCookie(name,value,days) {
   if (days) {
     var date = new Date();
     date.setTime(date.getTime()+(days*24*60*60*1000));
     var expires = ";expires="+date.toGMTString();
   } else {
     expires = "";
   }
   document.cookie = name+"="+value+expires+";path=/";
  }
 
function readCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

