var placeholderEmulate = function() {

	_om = this;

	this.hasClass = function(node, name)
	{
		if (name && node.hasAttribute('class')) {
		
			var classes = node.getAttribute('class').split(' ');
			for (var i in classes)
				if (classes[i] == name)
					return true;

			return false;
		}
		else
			return false;
	};

	this.addClass = function(node, name) {

		if (!node) return false;

		if (node.hasAttribute('class')) {
			if (this.hasClass(node, name))
				return true;
			else {
			
			
				var classes = node.getAttribute('class').split(' ');
					classes.push(name);

				for (var i = 0; i < classes.length; i++)
					if (classes[i] == '')
						classes.splice(i, 1);

				if (classes.length > 0) {
					node.setAttribute('class', classes.join(' '));
					return true;
				}
				else {
					node.removeAttribute('class');
					return false;
				}
			}
		}
		else {
			node.setAttribute('class', name);
			return true;
		}
	};

	this.removeClass = function(node, name) {
		if (node.hasAttribute('class')) {
			if (!this.hasClass(node, name))
				return true;
			else {
				var classes = node.getAttribute('class').split(' ');

				for (var i = 0; i < classes.length; i++)
					if (classes[i] == name || classes[i] == '')
						classes.splice(i, 1);

				if (classes.length == 0)
					node.removeAttribute('class');
				else
					node.setAttribute('class', classes.join(' '));

				return true;
			}
		}
		else
			return true;
	};

	this.checkCompatibility = function() {
		var hasPlaceholder = 'placeholder' in document.createElement('input');
		return (!hasPlaceholder) ? false : true;
	};

	this.init = function() {
		
		if (!this.checkCompatibility)
			return true;
		else {

			var nodes = document.getElementsByTagName('input');

			for (var i=0; i < nodes.length; i++) {

				if (nodes[i].value == '') {
					this.addClass(nodes[i], 'placeholder');
					nodes[i].value = nodes[i].getAttribute('placeholder');
				}

				nodes[i].onfocus = function() {
					_om.removeClass(this, 'placeholder');
					if (this.value == this.getAttribute('placeholder'))
						this.value = '';
				}

				nodes[i].onblur = function() {
					if (this.value == '') {
						this.value = this.getAttribute('placeholder');
						_om.addClass(this, 'placeholder');
					}
				}
			}
		}
	}
}


window.onload = function()
{
	var _placeholderEmulate = new placeholderEmulate();
	_placeholderEmulate.init();
}
