window.onload = function () {
  postProcessHTML();
}
/****************************************************************
 * Postprocess html to:
 * 1. Generate compact form labels
 ***************************************************************/
function postProcessHTML() {
	var divs = document.getElementsByTagName('div');

	for (var i=0;i<divs.length;i++) {
		switch(divs[i].className) {
			case 'compactlabel':
				if(isEmpty(divs[i].getElementsByTagName('input')[0].value)){
					divs[i].getElementsByTagName('label')[0].className="";
				}

				divs[i].getElementsByTagName('input')[0].onfocus=toggleLabel('hide',divs[i].getElementsByTagName('label')[0],divs[i].getElementsByTagName('input')[0]);
				divs[i].getElementsByTagName('label')[0].onclick=toggleLabel('hide',divs[i].getElementsByTagName('label')[0],divs[i].getElementsByTagName('input')[0]);
				divs[i].getElementsByTagName('input')[0].onblur=toggleLabel('show',divs[i].getElementsByTagName('label')[0],divs[i].getElementsByTagName('input')[0]);
			break;
		}
	}
}

function toggleLabel(state,labelElement,inputElement) {
	if(state=='show') {
		var returnFunction = function () {
			if(isEmpty(inputElement.value)){
				labelElement.className="";
			}
		}
	} else {
		var returnFunction = function () {labelElement.className="hide";}
	}
  return returnFunction;
}

function isEmpty(inputStr) {
	return (null == inputStr || "" == inputStr);
}
