var GeenSite = {
	loginFormObserve: function() {
		if($('email') && $('password')) {
			$('email').observe('focus', function() {
				if($('email').getValue() === 'email') {
					$('email').clear();
				}
			});

			$('email').observe('blur', function() {
				if(!$('email').present()) {
					$('email').setValue('email');
				}
			});

			if(!$('email').present()) {
				$('email').setValue('email');
			}

			if(!$('password').present()) {
				$('password').replace(GeenSite.passwordInputReplace(true));
			}
		}
	},
	passwordInputReplace: function(asText) {
		if(asText) {
			var element = new Element('input', { type: 'text', 'id': 'password', name: 'password', value: 'password' });
		}
		else {
			var element = new Element('input', { type: 'password', 'id': 'password', name: 'password' });
		}

		element.observe('focus', function() {
			if($('password').getValue() === 'password') {
				$('password').replace(GeenSite.passwordInputReplace(false));
			}
		});

		element.observe('blur', function() {
			if(!$('password').present()) {
				$('password').replace(GeenSite.passwordInputReplace(true));
			}
		});

		return element;
	},
	highlightSearch: function() { // work for Google and Yahoo
		var referrer = document.referrer ? document.referrer : '';
		var index = referrer.indexOf('?');

		if(index !== -1) {
			var query = referrer.substr(index + 1);
			var queryArgs = query.split('&');

			for(var i = 0, c = queryArgs.size(); i < c; i++) {
				var parts = queryArgs[i].split('=');

				if(parts.size() == 2 && (parts[0] == 'q' || parts[0] == 'p')) { // q= for Google, p= for Yahoo
					var string = unescape(parts[1].replace(/\+/g,' '));
					var words = string.split(/\s+/);

					for(var i = 0, c = words.size(); i < c; i++) {
						GeenSite.highlightWord(document.body, words[i]);
					}
				}
			}
		}
	},
	highlightWord: function(node, word) {
		if(node.nodeType == 3) { // highlight word if node is a text node
			var tempNodeVal = node.nodeValue.toLowerCase();
			var tempWordVal = word.toLowerCase();
			var index = tempNodeVal.indexOf(tempWordVal);

			if(index != -1) {
				var parent = node.parentNode;
				var nodeValue = node.nodeValue;
				Element.remove(node);
				var span = parent.appendChild(new Element('span').addClassName('searched').update(nodeValue.substr(index, word.length)));
				span.insert({
					before: nodeValue.substr(0, index),
					after: nodeValue.substr(index + word.length)
				});
			}
		}

		if(node.hasChildNodes) { // iterate into the node childNodes
			for(var i = 0, c = node.childNodes.length; i < c; i++) {
				GeenSite.highlightWord(node.childNodes[i], word);
			}
		}
	}
};

document.observe('dom:loaded', function(event) {
	GeenSite.loginFormObserve();
	//GeenSite.highlightSearch();
});
