var percenta = {"percenta": [
    {"key" : "25", "value" : "štvrť dna"},
    {"key" : "50", "value" : "pol dňa"},
    {"key" : "100", "value" : "celý deň"}
 ]};


function getFunctions(f,name){
    return $.ajax({
      url: "/include/zsc_ajax.php",
      data: {'action' : 'getFunctions', 'funkcia' : f, 'name' : name},
      async: false,
      success: function(res){

      }
    }).responseText;


}

function zscMenoInputCallback(item) {
	//alert(obj.val);
    
}

function pridajPrechod(datum, text, cas){

    var newRow =    '<tr></tr>';
    var deleteImg = '<img src="http://img.siov.cmsromboid.sk/images/zsc/remove.png" class="iconLink"/>';
            
    $('#prechod tr:last').after(newRow);
    var newRowEl = $('#prechod tr:last');
    var rowContent ='<td><input type="text" name="prechodDatum[]" value="'+ datum +'" class="prechodDatum"/></td>' +             
                    '<td><input type="text" name="prechodCas[]" value="'+ cas +'"/></td>' +
                    '<td><input type="text" name="prechodText[]" value="'+ text +'"/></td>' + 
                    '<td class="actions"></td>';    
                    
    
    newRowEl.append(rowContent);
    deleteImg = newRowEl.children('.actions').append(deleteImg);
    deleteImg.click( function() {
        newRowEl.fadeOut('slow', function() {
            newRowEl.remove();
            });
    })
    

    newRowEl.find('.prechodDatum').datepicker({ dateFormat: 'dd.mm.yy',
         });     

}

function pridajDenTsc(){

    var newRow =    '<tr class="rowEl"></tr>';
    var deleteImg = '<img src="http://img.siov.cmsromboid.sk/images/zsc/remove.png" class="iconLink"/>';
            
    $('.rowEl:last').after(newRow);
    var newRowEl = $('.rowEl:last');
    //var newRowEl = $('#tscTable tr').eq(1);
        
 
 
     var rowContent = '<td><input type="text" name="datum[]" value="" class="prechodDatum inputSingle input70"/></td>'+
            '<td><table border="0"><tr><td>Odchod</td>'+
            '<td><input type="text" name="odchodMiesto[]" value="" /></td>'+
            '<td><input type="text" name="odchodCas[]" value="" class="input35"/></td></tr><tr>'+
            '<td>Príchod</td><td><input type="text" name="prichodMiesto[]" value="" /></td>'+
            '<td><input type="text" name="prichodCas[]" value="" class="input35"/></td></tr></table>'+
            '</td><td><input type="text" name="prostriedok[]" value=""  class="input35 inputSingle"/></td>'+
            '<td><input type="text" name="vzdialenost[]" value=""  class="input35 inputSingle"/></td><td>'+
            '<table border="0"><tr><td><input type="text" name="zaciatokVykonu[]" value="" class="input35"/></td></tr>'+
            '<tr><td><input type="text" name="koniecVykonu[]" value="" class="input35"/></td></tr></table></td>'+
            '<td><input type="text" name="cestovne[]" value="" class="input35 inputSingle"/></td>'+
            '<td><input type="text" name="stravne[]" value="" class="input35 inputSingle"/></td>'+
            '<td><input type="text" name="noclazne[]" value="" class="input35 inputSingle"/></td>'+
            '<td><input type="text" name="nutneVydavky[]" value="" class="input35 inputSingle"/></td>'+
            '<td><input type="text" name="spolu[]" value="" class="input35 inputSingle"/></td>'+
            '<td><input type="text" name="upravene[]" value="" class="input35 inputSingle"/></td>'+
            '<td class="actions"></td>'
    
    newRowEl.append(rowContent);

    deleteImg = newRowEl.children('.actions').append(deleteImg);
    deleteImg.click( function() {
        newRowEl.fadeOut('slow', function() {
            newRowEl.remove();
            });
    })
    

    newRowEl.find('.prechodDatum').datepicker({ dateFormat: 'dd.mm.yy',
         });     

}


function pridajSiovPracovnika(meno,uloha,organizacia,pracovisko){
    var ulohaCombo = getFunctions(uloha,'siovUloha[]');
    var newRow =    '<tr></tr>';
    var deleteImg = '<img src="http://img.siov.cmsromboid.sk/images/zsc/user_delete.png" class="iconLink"/>';
            
    $('#siovPracovnik tr:last').after(newRow);
    var newRowEl = $('#siovPracovnik tr:last');
    var rowContent = '<td><input type="text" name="siovMeno[]" value="'+ meno +'" class="zscMenoInput"/></td>' +
                    '<td>' + ulohaCombo + '</td>' +
                    '<td><input type="text" name="siovOrganizacia[]" value="'+ organizacia +'"/></td>' +
                    '<td><input type="text" name="siovPracovisko[]" value="'+ pracovisko +'"/></td>' +
                    '<td class="actions"></td>';    
    
    newRowEl.append(rowContent);
    deleteImg = newRowEl.children('.actions').append(deleteImg);
    deleteImg.click( function() {
        newRowEl.fadeOut('slow', function() {
            newRowEl.remove();
            });
    })
    
    zscMenoInput = newRowEl.children('.zscMenoInput');

    newRowEl.find('.zscMenoInput').jsonSuggest(
	function(text, wildCard, caseSensitive, notCharacter) {		

        var d;
                    
        $.ajax({url: "/include/zsc_ajax.php",
                      data: { "str": text, "action" : "siovPracovnik" },
                      async: false,
                      success: function(json){
                        d = json ;
                      }
                    });
        return d;

	}, 
    {ajaxResults:true, onSelect:zscMenoInputCallback});      
}

function pridajExternehoPracovnika(meno, uloha, organizacia){
    var ulohaCombo = getFunctions(uloha,'externyUloha[]');
    var newRow =    '<tr></tr>';
    var deleteImg = '<img src="http://img.siov.cmsromboid.sk/images/zsc/user_delete.png" class="iconLink"/>';
                    
    $('#externyPracovnik tr:last').after(newRow);
    var newRowEl = $('#externyPracovnik tr:last');
    var rowContent = '<td><input type="text" name="externyMeno[]" value="'+ meno +'"/></td>' +
                    '<td>' + ulohaCombo + '</td>' +
                    '<td><input type="text" name="externyOrganizacia[]" value="'+ organizacia +'"/></td>' +
                    '<td class="actions"></td>';    
    
    newRowEl.append(rowContent);
    deleteImg = newRowEl.children('.actions').append(deleteImg);
    deleteImg.click( function() {
        
    newRowEl.fadeOut('slow', function() {
        newRowEl.remove();
        });
    })
}


function pridajUbytovanieHromadne(cnt, timestamp){
    
    for(var ii = 0; ii < Math.min(cnt, 20); ii++){
        
        var myDate = new Date(timestamp * 1000 + ii *24*60*60*1000);
        
        var mesiac = new String(myDate.getMonth() + 1);//leden je 0
        var den = new String(myDate.getDate());  
        var rok = myDate.getFullYear();      
        
        if(mesiac.length == 1){
            mesiac =  '0' + mesiac;
        }
            
        if(den.length == 1){
            den =  '0' + den;
        }
        
        var tmp = den + '.' + mesiac + '.' + rok;
        
        pridajUbytovanie(tmp,'100','1','1','1');
    }
}



function pridajUbytovanie(datum, percent, r, o, v){
    r = (r == 1 ? 'checked="checked"' : '');
    o = (o == 1 ? 'checked="checked"' : '');
    v = (v == 1 ? 'checked="checked"' : '');
    percent = initComboBox('ubytovaniePercentDna[]',percenta.percenta,percent);
    var newRow =    '<tr></tr>';
    var deleteImg = '<img src="http://img.siov.cmsromboid.sk/images/zsc/remove.png" class="iconLink"/>';
                    
    $('#ubytovanie tr:last').after(newRow);
    var newRowEl = $('#ubytovanie tr:last');
    var rowContent = '<td><input type="text" name="ubytovanieDatum[]" value="'+ datum +'" id="calUbytovanie'+idr+'"/></td>' +
                    '<td>'+ percent +'</td>' +
                    '<td>ranajky <input type="checkbox" name="ubytovanieRanajky'+idr+'" '+ r +'/>' +
                    'obed <input type="checkbox" name="ubytovanieObed'+idr+'" '+ o +'/>' +
                    'vecera <input type="checkbox" name="ubytovanieVecera'+idr+'" '+ v +'/><input type="hidden" name="idr[]" value="'+idr+'"/></td>'+
					'<td class="actions"></td>'; 
                    
    
    newRowEl.append(rowContent);
    deleteImg = newRowEl.children('.actions').append(deleteImg);
    deleteImg.click( function() {
        
    newRowEl.fadeOut('slow', function() {
        newRowEl.remove();
        });
    })
	
    $('#calUbytovanie'+idr).datepicker({ dateFormat: 'dd.mm.yy',
         });
    
	idr ++;
}

function pridajUbytovanieReal(datum, percent, r, o, v, ubytovanieNaNoc){
    r = (r == 1 ? 'checked="checked"' : '');
    o = (o == 1 ? 'checked="checked"' : '');
    v = (v == 1 ? 'checked="checked"' : '');
    percent = initComboBox('ubytovaniePercentDna[]',percenta.percenta,percent);
    var newRow =    '<tr></tr>';
    var deleteImg = '<img src="http://img.siov.cmsromboid.sk/images/zsc/remove.png" class="iconLink"/>';
                    
    $('#ubytovanie tr:last').after(newRow);
    var newRowEl = $('#ubytovanie tr:last');
    var rowContent = '<td><input type="text" name="ubytovanieDatum[]" value="'+ datum +'" id="calUbytovanie'+idr+'"/></td>' +
                    '<td>'+ percent +'</td>' +
                    '<td><input type="text" name="ubytovanieNaNoc[]" value="'+ ubytovanieNaNoc +'" /></td>' +
                    '<td>ranajky <input type="checkbox" name="ubytovanieRanajky'+idr+'" '+ r +'/>' +
                    'obed <input type="checkbox" name="ubytovanieObed'+idr+'" '+ o +'/>' +
                    'vecera <input type="checkbox" name="ubytovanieVecera'+idr+'" '+ v +'/><input type="hidden" name="idr[]" value="'+idr+'"/></td>'+
					'<td class="actions"></td>'; 
                    
    
    newRowEl.append(rowContent);
    deleteImg = newRowEl.children('.actions').append(deleteImg);
    deleteImg.click( function() {
        
    newRowEl.fadeOut('slow', function() {
        newRowEl.remove();
        });
    })
	
    $('#calUbytovanie'+idr).datepicker({ dateFormat: 'dd.mm.yy',
         });
    
	idr ++;
}

$.extend($.ui.dialog.prototype, { 
        'addbutton': function(buttonName, func) {	
                var buttons = this.element.dialog('option', 'buttons'); 
                buttons[buttonName] = func; 
                this.element.dialog('option', 'buttons', buttons); 
        } 
}); 

$.extend($.ui.dialog.prototype, { 
        'removebutton': function(buttonName) {	
                var buttons = this.element.dialog('option', 'buttons'); 
                delete buttons[buttonName]; 
                this.element.dialog('option', 'buttons', buttons); 
        } 
}); 

function vyuctovanieDialog(idNavrh, action){
    $('#vyuctovanieDialog').dialog('open');
    
    $.ajax({
      url: "/include/zsc_ajax.php?action="+action,
      data:{'action': 'ucastniciVyuctovanie','idNavrh':idNavrh},
      success: function(res){
        $('#ucastnikSelect').empty();
        $('#vyuctovanieDialog').dialog('option', 'buttons',{});
        if(jQuery.trim(res) == ""){
            $('#ucastnikSelect').append("<strong>K tomuto návrhu neexistujú žiadne návrhy na devízové vybavenie</strong>");
            $( '#vyuctovanieDialog' ).dialog( "option", "buttons", { "Zatvoriť": function() { $(this).dialog("close"); } } );
        }
        else{
            $('#ucastnikSelect').append("pridať vyúčtovanie k pracovníkovi: <br/><br/>" + res);
            $( '#vyuctovanieDialog' ).dialog( "option", "buttons", { "OK": function() {
                    window.location.href = "?action="+action+"&idNavrh=" +idNavrh+ "&idPracovnik=" + $('#ucastnik').val(); 
                } 
            });
        }
      }
    });
}


function initComboBox(name, options, key)
{
    out = "";
    out += "<select name = '"+name+"' id='"+name+"'>";
    for (i = 0; i < options.length; i++)
    {
        selected = options[i].key == key ? "selected='selected'" : "";
        out += "<option value='" + options[i].key + "' "+selected+">" + options[i].value + "</option>";
    }
    out += "</select>";
    return out;
}

function pridajVydavok(suma, text){
    var newRow =    '<tr></tr>';
    var deleteImg = '<img src="http://img.siov.cmsromboid.sk/images/zsc/remove.png" class="iconLink"/>';
                    
    $('#vydavky tr:last').after(newRow);
    var newRowEl = $('#vydavky tr:last');
    var rowContent = '<td><input type="text" name="vydavokSuma[]" value="'+ suma +'"/></td>' +
                     '<td><input type="text" name="vydavokText[]" value="'+ text +'"/></td>' +
					'<td class="actions"></td>'; 
                    
    
    newRowEl.append(rowContent);
    deleteImg = newRowEl.children('.actions').append(deleteImg);
    deleteImg.click( function() {
        
    newRowEl.fadeOut('slow', function() {
        newRowEl.remove();
        });
    })

}

/*
 *
 * Copyright (c) 2006-2010 Sam Collett (http://www.texotela.co.uk)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * 
 * Version 1.2
 * Demo: http://www.texotela.co.uk/code/jquery/numeric/
 *
 */
(function($) {
/*
 * Allows only valid characters to be entered into input boxes.
 * Note: does not validate that the final text is a valid number
 * (that could be done by another script, or server-side)
 *
 * @name     numeric
 * @param    decimal      Decimal separator (e.g. '.' or ',' - default is '.'). Pass false for integers
 * @param    callback     A function that runs if the number is not valid (fires onblur)
 * @author   Sam Collett (http://www.texotela.co.uk)
 * @example  $(".numeric").numeric();
 * @example  $(".numeric").numeric(",");
 * @example  $(".numeric").numeric(null, callback);
 *
 */
$.fn.numeric = function(decimal, callback)
{
	decimal = (decimal === false) ? "" : decimal || ".";
	callback = typeof callback == "function" ? callback : function(){};
	return this.data("numeric.decimal", decimal).data("numeric.callback", callback).keypress($.fn.numeric.keypress).blur($.fn.numeric.blur);
}

$.fn.numeric.keypress = function(e)
{
	var decimal = $.data(this, "numeric.decimal");
	var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
	// allow enter/return key (only when in an input box)
	if(key == 13 && this.nodeName.toLowerCase() == "input")
	{
		return true;
	}
	else if(key == 13)
	{
		return false;
	}
	var allow = false;
	// allow Ctrl+A
	if((e.ctrlKey && key == 97 /* firefox */) || (e.ctrlKey && key == 65) /* opera */) return true;
	// allow Ctrl+X (cut)
	if((e.ctrlKey && key == 120 /* firefox */) || (e.ctrlKey && key == 88) /* opera */) return true;
	// allow Ctrl+C (copy)
	if((e.ctrlKey && key == 99 /* firefox */) || (e.ctrlKey && key == 67) /* opera */) return true;
	// allow Ctrl+Z (undo)
	if((e.ctrlKey && key == 122 /* firefox */) || (e.ctrlKey && key == 90) /* opera */) return true;
	// allow or deny Ctrl+V (paste), Shift+Ins
	if((e.ctrlKey && key == 118 /* firefox */) || (e.ctrlKey && key == 86) /* opera */
	|| (e.shiftKey && key == 45)) return true;
	// if a number was not pressed
	if(key < 48 || key > 57)
	{
		/* '-' only allowed at start */
		if(key == 45 && this.value.length == 0) return true;
		/* only one decimal separator allowed */
		if(decimal && key == decimal.charCodeAt(0) && this.value.indexOf(decimal) != -1)
		{
			allow = false;
		}
		// check for other keys that have special purposes
		if(
			key != 8 /* backspace */ &&
			key != 9 /* tab */ &&
			key != 13 /* enter */ &&
			key != 35 /* end */ &&
			key != 36 /* home */ &&
			key != 37 /* left */ &&
			key != 39 /* right */ &&
			key != 46 /* del */
		)
		{
			allow = false;
		}
		else
		{
			// for detecting special keys (listed above)
			// IE does not support 'charCode' and ignores them in keypress anyway
			if(typeof e.charCode != "undefined")
			{
				// special keys have 'keyCode' and 'which' the same (e.g. backspace)
				if(e.keyCode == e.which && e.which != 0)
				{
					allow = true;
					// . and delete share the same code, don't allow . (will be set to true later if it is the decimal point)
					if(e.which == 46) allow = false;
				}
				// or keyCode != 0 and 'charCode'/'which' = 0
				else if(e.keyCode != 0 && e.charCode == 0 && e.which == 0)
				{
					allow = true;
				}
			}
		}
		// if key pressed is the decimal and it is not already in the field
		if(decimal && key == decimal.charCodeAt(0))
		{
			if(this.value.indexOf(decimal) == -1)
			{
				allow = true;
			}
			else
			{
				allow = false;
			}
		}
	}
	else
	{
		allow = true;
	}
	return allow;
}

$.fn.numeric.blur = function()
{
	var decimal = $.data(this, "numeric.decimal");
	var callback = $.data(this, "numeric.callback");
	var val = $(this).val();
	if(val != "")
	{
		var re = new RegExp("^\\d+$|\\d*" + decimal + "\\d+");
		if(!re.exec(val))
		{
			callback.apply(this);
		}
	}
}

$.fn.removeNumeric = function()
{
	return this.data("numeric.decimal", null).data("numeric.callback", null).unbind("keypress", $.fn.numeric.keypress).unbind("blur", $.fn.numeric.blur);
}

})(jQuery);
