/*
	Clear Input Info text: functions for clearing and replacing default text in <input> elements.
	Just add a class name 'labeled' to input fields that need to be defaulted. Value is in a title attribute.

	Treba modifikacija - da pusti Google Autofill da popuni polja, ako ume. Zato je bolja ona tehnika koju su oni drugi predložili...
*/

/* Cross-browser event handling, by Scott Andrew */

function addEvent(element, eventType, lamdaFunction, useCapture)
{
    if (element.addEventListener)
	{
        element.addEventListener(eventType, lamdaFunction, useCapture);
        return true;
    }
	else if (element.attachEvent)
	{
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        return r;
    }
	else
	{
        return false;
    }
}

addEvent(window, 'load', InitLabeler, false);

function InitLabeler()
{
    var formInputs = document.getElementsByTagName('input');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];

        if (theInput.type == 'text' && theInput.className.match(/\blabeled\b/))
		{
            /* Add event handlers */
            addEvent(theInput, 'focus', eClearDefault, false);
            addEvent(theInput, 'blur', eReplaceDefault, false);

            /* The current value is in 'title' attribute */
			ReplaceDefault(theInput)
        }
    }

	/* the same for textarea */

    var formInputs = document.getElementsByTagName('textarea');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];

        if (theInput.className.match(/\blabeled\b/))
		{
            /* Add event handlers */
            addEvent(theInput, 'focus', eClearDefault, false);
            addEvent(theInput, 'blur', eReplaceDefault, false);

            /* The current value is in 'title' attribute */
			ReplaceDefault(theInput)
        }
    }

}

function ReplaceAll()
{
    var formInputs = document.getElementsByTagName('input');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];

        if (theInput.type == 'text' && theInput.className.match(/\blabeled\b/))
		{
			ReplaceDefault(theInput)
        }
    }

	/* the same for textarea */

    var formInputs = document.getElementsByTagName('textarea');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];

        if (theInput.className.match(/\blabeled\b/))
		{
			ReplaceDefault(theInput)
        }
    }
}

function ClearAll()
{
    var formInputs = document.getElementsByTagName('input');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];

        if (theInput.type == 'text' && theInput.className.match(/\blabeled\b/))
		{
			ClearDefault(theInput);
        }
    }

	/* the same for textarea */

    var formInputs = document.getElementsByTagName('textarea');
    for (var i = 0; i < formInputs.length; i++) {
        var theInput = formInputs[i];

        if (theInput.className.match(/\blabeled\b/))
		{
			ClearDefault(theInput);
        }
    }
}

function ClearDefault(obj)
{
    if (obj.type == 'text' && obj.value == obj.title) { obj.value = ''; return; }

	/* then it's a textarea */

	if (document.all) { /* ie */	if (obj.innerHtml == obj.title) { obj.innerHtml = ''; }	}
	else { /* ff */				    if (obj.innerHTML == obj.title) { obj.innerHTML = ''; }	}
}

function ReplaceDefault(obj)
{
	if (obj.type == 'text' && obj.value == '' && obj.title) { obj.value = obj.title; }

	/* then it's a textarea */

	if (document.all) { /* ie */	if (obj.innerHtml == '' && obj.title) { obj.innerHtml = obj.title; }	}
	else { /* ff */				  	if (obj.innerHTML == '' && obj.title) { obj.innerHTML = obj.title; }	}
}

/* events onfocus and onblur */

function eClearDefault(e)
{
    var target = window.event ? window.event.srcElement : (e ? e.target : null);
    if (target) ClearDefault(target);
}

function eReplaceDefault(e)
{
    var target = window.event ? window.event.srcElement : (e ? e.target : null);
    if (target) ReplaceDefault(target)
}
