
/**
 * Function used for attaching event handlers to elements.
 */
function addEvent(obj, evType, fn) {
    if(obj.addEventListener) { 
        obj.addEventListener(evType, fn, false); 
        return true;
    } else if(obj.attachEvent) {
        var r = obj.attachEvent("on"+evType, fn); 
        return r;
    }
    return false;
}

/**
 * Iterate through all the labels in the loginform, hide them, and assign the 
 * labels for attributes to their respective inputs. 
 */
function setInputs() {
    var form = document.getElementById("loginform");
	if(form) {
	    var labels = form.getElementsByTagName("label");
	    
	    for(var i=0;i<labels.length;i++) {
	        labels[i].style.display = "none";
	        var input = document.getElementById(labels[i].htmlFor);
	        input.value = labels[i].innerHTML;
	        var handler = new setInputEvent(input);
	        addEvent(input, "blur", handler.setInput);
	        addEvent(input, "focus", handler.unsetInput);
	    }
	}
}

function registerEvents() {
	setInputs();
	addEvent(document.getElementById("invoice"), "click", toggleForm);
}

function setInputEvent(input) {
    var originalValue = input.value;

    this.setInput=function(event) {
        var target = event.target || event.srcElement;
        if(target.value.length == 0) {
            target.value = originalValue;
        }
    }
    
    this.unsetInput=function(event) {
        var target = event.target || event.srcElement;
        if(target.value != originalValue) {
            return;
        }
        target.value = "";
    }
}

function toggleForm(event) {
	var target = event.target || event.srcElement;
	if(target.tagName != "INPUT") {
		return;
	}
	
	var form = document.getElementById("subform");
	
	if(target.id == "radio-1") {
		var inputs = form.getElementsByTagName("input");
 		for(var i=0; i<inputs.length; i++) {
 			inputs[i].value = "";
 		}		
		
		form.style.display = "none";
	} else {
		form.style.display = "block";
	}
}




addEvent(window, "load", registerEvents);
