// function that URL escapes a string
function encode(uri)
{
  if (encodeURIComponent)
  {
    return encodeURIComponent(uri);
  }
  if (escape)
  {
    return escape(uri);
  }
}

// function that XML escape a string
function XMLencode(string) {
	string = string.replace(/&/g,'&amp;');
	string = string.replace(/</g,'&lt;');
	string = string.replace(/>/g,'&gt;');
	string = string.replace(/'/g,'&apos;');
	string = string.replace(/"/g,'&quot;');
	return string;
}

function sefEncode(string) {
	string = string.toLowerCase();
	string = string.replace(/ÄŤ/g,'c');
	string = string.replace(/Ĺˇ/g,'s');
	string = string.replace(/Ĺľ/g,'z');
	string = string.replace(/Ä‡/g,'c');
	string = string.replace(/Ä‘/g,'d');
	string = string.replace(/ /g,'_');
	string = string.replace(/\./g,'_');
	string = string.replace(/[^A-Za-z0-9 _]/g,'');
	return string;
}

function showLoading() {
	$.blockUI({ message: '<div style="text-align:center;"><img src="'+_template_dir+'/images/loading.gif"></div>',
							css: { border: 'none', backgroundColor: '', color: '' },
							fadeOut: 0});
}

function showError(data) {
	var html = '';
	$('.error_msg div', data).each(
		function(i) {
			html = html + '<div>'  + $(this).html() + '</div';
		});
	$("#input_error_all").html('<div class="msg_error">'+((html != undefined) ? html : "Operacija NI uspela")+'</div>').fadeIn(500);;
	setTimeout('$("#input_error_all").fadeOut(1500);',2500);		
	//$("#input_error_all").html('<div class="msg_ok">'+((html != undefined) ? html : "Operacija uspela")+'</div>').fadeIn(500);
	//$("#input_error_all").prepend('<div class="form_error" id="error">'+html+'<br /></div>');
	/*html = '<div id="dialog_errors">' + html + '</div>';
	$(html).dialog({
						title:'Napaka',
						buttons:{OK: function(){formClose('errors');}},
						draggable:false,
						height:200,
						width:300,
						modal:true,
						resizable:false,
						overlay:{backgroundColor: '#000', opacity:'0.5'}
						});
*/
}

// --- html function --- //
function htmlModal(url) {
	showLoading();
	$.get(url, function(data){
		$.unblockUI({fadeOut: 0});
		if($('.error_msg',data).size() > 0) {
			showError(data);
		}
		else {
			var form = $('form',data);
			var width = form.attr('width')
			var height = form.attr('height')
			var form_html = $('html',data);
			var gumbi = {};
			$('button',data).each(
				function(i) {
			    var caption = $(this).attr('text');
			    var click = $(this).attr('click');
					var button = {};
					button[caption] = function(){eval(click);};
					$.extend(gumbi,button);
			});
			$(form_html.text()).dialog({
				buttons:gumbi,
				draggable:true,
				height:height,
				width:width,
				cache: false,
				modal:true,
				resizable:false,
				overlay:{backgroundColor: '#000', opacity:'0.5'},
				close: function(event, ui) {
					$('#dialog_'+form_name).dialog('destroy');
					$('#dialog_'+form_name).remove();
				}
				});
			$(".form_date").datepicker({
	            showOn: 'button', 
	            buttonImage: _template_dir + '/images/calendar.png', 
	            buttonImageOnly: true,
	            dateFormat: 'dd.mm.yy'
	            });
			var form_name = form.attr('name');
			var input_form = $('#'+form_name);
			//$('.form_date').datepicker({changeFirstDay: false});
			$('.form_date').mask("99.99.9999");
            $('.form_time').mask("99:99");  
			$('#'+form_name).append('<input type="hidden" name="form_name" value="'+form_name+'"');
			if(height == 0)
				$('#dialog_'+ form_name).data('height.dialog', input_form.height() + 85);
			// popravimo sirino vsebine
			// popravimo Ĺˇirino vsebine
			$('#dialog_'+ form_name).css('width',(width-20));
			// postavimo fokus na prvi element v formi
			$("input[type='text'], textarea, select",input_form).eq(0).focus();
			// klicemo funkcijo, ce je deklarirana
			if(isset('dialogShown')) {
				if($.isFunction(dialogShown)) {
				  dialogShown();
				}
			}
		}
	});
}

function formClose(name) {
	$('#dialog_'+name).dialog('destroy');
	$('#dialog_'+name).remove();
	
	$.unblockUI({fadeOut: 0});
}

function htmlLoad(url, obj) {
	obj.load(url);
}

// --- forms function --- //
function formSave(form_name) {
	if(isset('dialogSave')) {
		if($.isFunction(dialogSave)) {
		  dialogSave();
		}
	}
	$('#'+form_name).ajaxSubmit({success:formSaveComplete, dataType:'xml'});
}

function formSaveComplete(data, textStatus) {
		//console.dirxml(data);
		if(textStatus == "success") {
			var form = $(data).find('form');
			if(form.attr('action') == 'OK') {
				if(form.attr('callback')) {
					eval(form.attr('callback'));
				}
				else {
					formClose(form.attr('name'));
					
				$("#input_error_all").html('<div class="msg_ok">'+"Operacija uspela"+'</div>').fadeIn(500);
				setTimeout('$("#input_error_all").fadeOut(1500);',2500);
	
				}
			msgbox('Operacija uspela!', 3);
		}
		else if(form.attr('action') == 'ERROR') {
			var input_form = $('#' + form.attr('name'));
			$(".form_error",input_form).each(function() {
				$(this).remove();
			});
			$('error',data).each(function () {
				input_form.prepend('<div id="form_errors" class="form_error">'+$(this).text()+'</div>');
			});
		  $("div[id^='input_']").each(function () {
				$("#error", this).remove()
			});
			$(form).find('field_error').each(function(){
			  $("#input_"+$(this).attr('name')).prepend('<div class="form_error" id="error">'+$(this).text()+'</div>');
			  //$("#input_error_all").prepend('<div class="form_error" id="error">'+$(this).text()+'<br /></div>');
			});
			//$('#dialog_'+ form.attr('name')).data('height.dialog', input_form.height() + i);
			//$('#dialog_content').data('height.dialog', input_form.height() + i);
		}
	}
}

