function buildTooltip(c) {
    $(c).focus(function() {
        var elt = $(this).parent().find("div");
        var hoverText = $(this).attr("alt");

        if (parseInt(elt.css("left")) > 0) {
            elt.animate({opacity: "show", left: "-=10px"}, "fast");
        } else {
            elt.animate({opacity: "show", left: "+=10px"}, "fast");
        }
        elt.html('<div class="cmxTooltipTop">' + hoverText + '</div><div class="cmxTooltipBottom">&nbsp;</div>');
    });
    $(c).blur(function() {
        var elt = $(this).parent().find("div");

        if (parseInt(elt.css("left")) > 0) {
            elt.animate({opacity: "hide", left: "+=10px"}, "fast");
        } else {
            elt.animate({opacity: "hide", left: "-=10px"}, "fast");
        }
    });
}

function layoutForms() {
    // Hide forms
    $('form.cmxform').hide().end();
    
    // Processing
    $('form.cmxform').find('li label').not('.nocmx').each(function(i) {
        var labelContent = this.innerHTML;
        var labelWidth = document.defaultView.getComputedStyle(this, '').getPropertyValue('width');
        var labelSpan = document.createElement('span');
        labelSpan.style.display = 'block';
        labelSpan.style.width = labelWidth;
        labelSpan.innerHTML = labelContent;
        this.style.display = '-moz-inline-box';
        this.innerHTML = null;
        this.appendChild(labelSpan);
    }).end();

    // Show forms
    $('form.cmxform').show().end();
}

function initForms() {
    if ($.browser.mozilla) layoutForms();

    $(".cmxform li").append('<div class="cmxTooltip"></div>');
    buildTooltip(".cmxform input");
    buildTooltip(".cmxform select");
    buildTooltip(".cmxform textarea");
}

$(document).ready(function () {
    initForms();
});
