/*
 * Flocasts Commonly Used jQuery Plugins
 *
 * Copyright (c) 2009 Thai Huynh
 * http://flocasts.org
 *
 */
$.fn.autoInput = function()
{
    var setDefault = function(el, defaultValue) {
        if (el.val() == defaultValue || el.val() == "") {
            el.val(defaultValue);
        }
    };

    return this.each(function() {
        var el = $(this);
        var defaultValue = el.attr('default');

        setDefault(el, defaultValue);

        el.focus(function() {
            if (el.val() == defaultValue) {
                el.val('');
            }
        });

        el.blur(function() {
            setDefault(el, defaultValue);
        });
    });
};

$.fn.autoCheckbox = function()
{
    var changeValue = function(el)
    {
        el = $(el)
        if (el.is(":checked")) {
            el.prev('input').val(1);
        }
        else {
            el.prev('input').val(0);
        }
    }

    return this.each(function() {
        var el = $(this);
        el.before('<input type="hidden" name="'+this.name+'"/>');
        el.click(function() {
            changeValue(el);
        });
        changeValue(el);
    });
}

$.fn.navigation = function()
{
	if ($.browser.msie) {
		$('.sub-nav').each(function() {
			var el = $(this);
			var width = el.width();
			var parent = el.parent('li');
			el.css('top', parent.height());
			el.css('left', parent.position().left);
			el.find('li').css('width', width);
		});
	}

    return this.each(function() {

        $(this).find('li').hover(function() {
            $(this).find('.sub-nav').addClass('over');
        },
        function() {
            $(this).find('.sub-nav').removeClass('over');
        });

    });
}

$.fn.floColorPicker = function(options)
{
    return this.each(function() {
        var el = $(this);
        el.ColorPicker({
            color: $('#'+$(el).attr('rel')).val(),
            onChange: function (hsb, hex, rgb) {
                $(el).css('backgroundColor', '#'+hex);
                $('#'+$(el).attr('rel')).val('#'+hex);

                if (options && options.onChange) {
                    options.onChange.apply(this, [hex, el.attr('rel')]);
                }
            }
        });
    });
}