$('.FP_uniForm').ready(function(){
    $('.FP_uniForm .fText input, .FP_uniForm .fTextarea textarea, .FP_uniForm .fSelect select').hover(function(){
        FP_uniForm_addClassName($(this), 'hover');
    })
    $('.FP_uniForm .fText input, .FP_uniForm .fTextarea textarea, .FP_uniForm .fSelect select').mouseout(function(){
        FP_uniForm_removeClassName($(this), 'hover');
    })
    $('.FP_uniForm .fText input, .FP_uniForm .fTextarea textarea, .FP_uniForm .fSelect select').focus(function(){
        FP_uniForm_addClassName($(this), 'focus');
    })
    $('.FP_uniForm .fText input, .FP_uniForm .fTextarea textarea, .FP_uniForm .fSelect select').blur(function(){
        FP_uniForm_removeClassName($(this), 'focus');
    })
    function FP_uniForm_addClassName(object, className){
        var actualClassName = object.attr('class');
        var newClassName = actualClassName + ' ' + className;
        object.attr('class', newClassName);
    }
    function FP_uniForm_removeClassName(object, className){
        var actualClassName = object.attr('class');
        actualClassName = actualClassName.split(' ');
        var newClassName = new Array();
        for (var a = 0; a < actualClassName.length; a++) {
            if (actualClassName[a] != '' && actualClassName[a] != className) {
                newClassName.push(actualClassName[a]);
            }
        }
        newClassName = newClassName.join(' ');
        object.attr('class', newClassName);
    }
    // float element
    $('.FP_uniForm .isFloat').keyup(function(){
        $(this).val(FP_uniForm_floatReplace($(this).val()));
    })
    // int element
    $('.FP_uniForm .isInteger').keyup(function(){
        $(this).val(FP_uniForm_intReplace($(this).val()));
    })
    // date element
    $('.FP_uniForm .isDate').ready(function(){
		var objects = $('.FP_uniForm .isDate');
		if (objects.length > 0) {
			// imports
			$("head").append('<script type="text/javascript" src="/js/FP_uniForm/ui.core.js"></script>');
			$("head").append('<script type="text/javascript" src="/js/FP_uniForm/ui.datepicker.js"></script>');
			$("head").append('<link href="/css/FP_uniForm/jquery-ui-custom.css" rel="stylesheet" media="Screen" type="text/css"/>');
			DATEPickerArrayOpener = new Array();
			$('.FP_uniForm .isDate').before('<div class="FP_uniForm_calendarButton"><span class="icon"></span><div class="datepicker"></div></div>');
			$('.FP_uniForm .FP_uniForm_calendarButton .icon').click(function(){
				DATEPickerArrayOpener.push(FP_dateShowPicker(this));
			})
			$('.FP_uniForm .FP_uniForm_calendarButton .datepicker').hover(function(){
			}, function(){
				FP_dateHidePicker(this);
			})
			$('.FP_uniForm .isDate').focus(function(){
				var obj = $(this).parent();
				var objID = obj.attr('id');
				DATEPickerArrayOpener.push(FP_dateShowPicker($('#' + objID + ' .FP_uniForm_calendarButton .icon')));
			})
			$('.FP_uniForm .isDate').blur(function(){
				var obj = $(this).parent();
				var objID = obj.attr('id');
				setTimeout("FP_dateHidePicker($('#" + objID + " .FP_uniForm_calendarButton .icon'));", 200);
			})
		}
    })
})
// float functions
function FP_uniForm_floatReplace(value){
    var value = value.split('', 255);
    var newValue = new Array();
    jQuery.each(value, function(){
        if (this != '0' && this != '1' && this != '2' && this != '3' && this != '4' && this != '5' && this != '6' && this != '7' && this != '8' && this != '9' && this != '.' && this != ',') {
            return ''
        }
        else {
            newValue.push(this);
        }
    });
    return newValue.join('');
}

// int functions
function FP_uniForm_intReplace(value){
    var value = value.split('', 255);
    var newValue = new Array();
    jQuery.each(value, function(){
        if (this != '0' && this != '1' && this != '2' && this != '3' && this != '4' && this != '5' && this != '6' && this != '7' && this != '8' && this != '9') {
            return ''
        }
        else {
            newValue.push(this);
        }
    });
    return newValue.join('');
}

// datepicker functions
function FP_dateHidePicker(object){
    var obj = $(object).parent().parent();
    var objID = obj.attr('id');
    $('#' + objID + " .datepicker").datepicker('destroy');
    DATEPickerArrayOpener.pop();
}

function FP_dateShowPicker(object){
    var obj = $(object).parent().parent();
    var objID = obj.attr('id');
    var value = $('#' + objID + ' input').val();
    value = value.split('-', 3);
    value = new Date(value[0], value[1] - 1, value[2]);
    $('#' + objID + " .datepicker").attr('rel', objID);
    $('#' + objID + " .datepicker").datepicker({
        dateFormat: 'dd.mm.yy',
        dayNamesMin: ['Ne', 'Po', 'Ut', 'St', 'Št', 'Pia', 'So'],
        monthNames: ['Január', 'Február', 'Marec', 'Apríl', 'Máj', 'Jún', 'Júl', 'August', 'September', 'Október', 'November', 'December'],
        defaultDate: value,
        showAnim: 'fold',
        firstDay: 1,
        onSelect: function(dateText){
            $('#' + objID + ' input').val(dateText);
            FP_dateHidePicker(object);
        }
    });
    jQuery.each(DATEPickerArrayOpener, function(){
        this.datepicker('destroy');
        DATEPickerArrayOpener.pop();
    })
    return $('#' + objID + " .datepicker");
}

