var dialogRef;


function ShowDialog(dialog,p) {

  var param;
  
  if(p === undefined) {
    param = "__ajax__=true&";
  } else {
    param = "__ajax__=true&" + unescape(p);
  } 
  
  $.ajax({
    type:"post", 
    url:'/dialog/' + dialog,
    data:param,
    success:function(data){
  		JsonCallback(data,"");
    }
  })  
}

function UpdateDialog(dialog,param,reopen,formId) {
  if(!(reopen === undefined) && reopen == 'true') {
    CloseDialog();  
  }
  
  var formData = "";
  if(formId === "undefined") {
  } else {
    formData = $("form#" + formId).serialize();
    formData += "&";
  }
  
  param = formData + param;
  param = escape(param);
  
  ShowDialog(dialog,param);
}

         
function CloseDialog() {
  $(dialogRef).dialog("destroy").remove();
}
          

function ExecScript(scriptName,formId,param,conf) {
  
  if(conf === undefined) {
    conf = "";
  }
  
  if(conf != "") {
    var odpoved = confirm(conf);
  	
  	if(!odpoved) {
  		return false;
  	}
  }
  
	var formData = "";
	if(formId != "") {
		formData = $("form#" + formId).serialize();
		formData += "&";
	}
	
	var p = "__ajax__=true&" + formData + param;
	
	
	$.ajax(
	{
	    type: "POST",
	    url: "/script/" + scriptName,
	    data: p,
		  success: function(msg) {
			JsonCallback(msg,"");
		}
	}
  )	
}

function ExecScriptWithCallback(scriptName,formId,param,conf,callback) {

  if(conf === undefined) {
    conf = "";
  }

  if(conf != "") {
    var odpoved = confirm(conf);

  	if(!odpoved) {
  		return false;
  	}
  }

	var formData = "";
	if(formId != "") {
		formData = $("form#" + formId).serialize();
		formData += "&";
	}

	var p = "__ajax__=true&" + formData + param;


	$.ajax(
	{
	    type: "POST",
	    url: "/script/" + scriptName,
	    data: p,
		  success: function(msg) {
			JsonCallback(msg,callback);
		}
	}
  )
}

function UpdateWidget(widgetName,params,form,func) {
  
  if(form === undefined) {
    form = 'update';
  }

	var p = $("form." + form).serialize();
	
	if(p != "") {
		p += "&";
	}
	
	p += "__ajax__=true&_update=true&" + params;  

  
  if(widgetName.indexOf('#') > 0) {
    var temp = new Array();
    temp = widgetName.split('#');
    widgetName = temp[0];
    if(params.length>0) {
      p += '&';
    }
    p += '_wid=' + temp[1];
  }
    
	$.ajax(
	{   
	    type: "POST",
	    url: "/widget/" + widgetName,
	    data: p,
	    success: function(msg) {
			 JsonCallback(msg,func);
	    }
	}
  )
}

function AddWidget(selector,widgetName,params,callback) {
  $(selector).addClass(widgetName).addClass('widget');

  var p = "__ajax__=true&_update=true&" + params;  
  
  if(widgetName.indexOf('#') > 0) {
    var temp = new Array();
    temp = widgetName.split('#');
    widgetName = temp[0];
    if(params.length>0) {
      p += '&';
    }
    p += '_wid=' + temp[1];
  }
    
	$.ajax(
	{   
	    type: "POST",
	    url: "/widget/" + widgetName,
	    data: p,
	    success: function(msg) {
			 JsonCallback(msg,callback);
	    }
	}
  )
}

/*
function UpdateWidgetCallback(widgetName,params,func) {
	var p = $("form.update").serialize();
	if(p != "") {
		p += "&";
	}
	
	p += "__ajax__=true&" + params;

	$.ajax(
	{
	    type: "POST",
	    url: "/ajax/widget/" + widgetName,
	    data: p,
	    success: function(msg) {
			JsonCallback(msg,func);
	    }
	}
  )  
}
*/

var ifr = false;
function CreateIfr() {
  if(!ifr) {
    var iframe = '<iframe style="display: none;" id="ifr" onload="UploadCallback()" name="ifr"><html><body></body></html></iframe>';
    $('body').append(iframe);
    ifr = true;
  }
}

function UploadImage(formId) {

  if($("#" + formId + " input#keywords").val()==""){
    alert('Nie sú zadané kľúčové slová.');
    return false;
  };

  if($("#" + formId + " input#zdroj").val()==""){
    alert('Nie je zdaný zdroj.');
    return false;
  };  
  
  if($("#" + formId + " input#popis").val()==""){
    alert('Nie je zadaný popis.');
    return false;
  };
  
  $("#" + formId).attr("target","ifr");

  CreateIfr();
}

function UploadVideo(formId) {

  if($("#" + formId + " input#nazov").val()==""){
    alert('Nie je zadaný názov.');
    return false;
  };
  
  $("#" + formId).attr("target","ifr");

  CreateIfr();
}

function UploadCallback() {
  var data = $("#ifr").contents().find("html body").html();  
  $("#ifr").contents().find("html body").html("");
  JsonCallback(data,"");
}



function JsonCallback(jsonstring,func) {
  	try {
		json = JSON.parse(jsonstring);
	} catch(err) {
	//	var w = window.open();
	//	$(w.window.document.body).html(jsonstring);
		return;
	}

	if(json.updatevalue == true) {
		var num = json.values.length;
		for(var i=0;i<num;i++) {
			w = json.values[i];
			$("form#" + w[0] + " " + "input#" + w[1]).attr("value",w[2]);
		}
	}
	
	
	if(json.update == true) {
		var num = json.widgets.length;
		for(var i=0;i<num;i++) {
			w = json.widgets[i];
			
			
			$(w[0]).html(w[1]);
		}
	}
	
	if(json.updateelement == true) {
    $("#" + json.updateelementid).html(json.updateelementhtml);
  }
	
	if(json.closedialog == true) {
		CloseDialog();
	}
	
	if(json.redirect == true) {
		window.location = json.url;
	}
	
	if(json.replace == true) {
		$("#" + json.replacetarget).html(json.replacecontent);
	}
	
	if(json.nextdialog != "") {
		CloseDialog();	
		ShowDialog(json.nextdialog,json.nextdialogparam);
  }
	
	if(json.updatewidget != "") {
		UpdateWidget(json.updatewidget,json.updateparam);
	}
	
	if(json.msg == true) {
		if(json.msgtarget != "") {
			$("#" + json.msgtarget).html(json.msgcontent);
		}
		else {
			alert(json.msgcontent);
		}
	}
	
	if(json.dialog == true) {	
	 if(dialogRef === undefined) {
		$('body').prepend('<div class="dialog" id="_dialog"></div>');
		dialogRef = $("#_dialog");
	 } else {
    CloseDialog();
   }
		$(dialogRef).dialog(
		{
			width: json.dialogwidth,
			height: json.dialogheight,
			resizable: json.dialogresizable,
			draggable: false,
			title:json.dialogtitle,
			modal:true,
			close:function(e,u){
				CloseDialog();
		  }
		}
		);
	
		$(dialogRef).html(json.dialogcontent);
	}
	
	if(func) {
    func();
  }
	
	return json.returnCode;

}

/*
function AjaxSubmit(action,formid) {
	var formData = $("form.serialize").serialize();
	var p = "__ajax__=true&" + formData;
	$.ajax(
	{
	    type: "POST",
	    url: action,
	    data: p,
		  success: function(msg) {
			result = JsonCallback(msg,"");
			if(result) {
				$("#" + formid).submit();
			}
		}
	}
  )	
}
*/

function SelectImage(imageId) {
	var target = $("input#target").attr("value");
	if(target != "undefined") {
		$("#" + target).attr("value",imageId);
		UpdateWidget('PicturePreview','obrazok_id=' + imageId);
	}
}

function Potvrd() {
	var odpoved = confirm("Naozaj chcete odstrániť túto položku?");
	
	if(odpoved) {
		return true;
	}
	
	return false;
	
}
function addToFavorites()
{
 var url = "http://www.ovolbach.sk";
 var title = "O Voľbách";
 if (document.all)
 {
 window.external.AddFavorite(url, title);
 return false;
 }
 else if (window.sidebar)
 {
 window.sidebar.addPanel( title, url, "");
 return false;
 }
 else if(window.opera && window.print)
 {
 return true;
 }
 else
 {
 alert("Prepáčte ale Váš prehliadač nepodporuje túto funkciu");
 return false;
 }
}

function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
} 


/**
 * find all selected comments in the table with comments and send delete request
 */
function deleteSelectedComments( table ) {
	var selectedComments = $("input[type='checkbox']:checked",table).map( function() {
			return $(this).val(); 
		} ).get().join('-');

	if( confirm( "Zmazať vybrané komentáre?" ) ) {
		ExecScript('deletecomments','','selected_comments='+selectedComments);	
	}

	return false;
}


/**
 * select all comments
 */
function selectAllComments( table ) {
	$("input[type='checkbox']",table).attr('checked', true);
}

/**
 * invert the selection of comments
 */
function invertSelectedComments( table ) {
	$("input[type='checkbox']",table).each( function() {
		if( $(this).is(':checked') ) {
			$(this).attr('checked', false);
		} else {
			$(this).attr('checked', true);
		}
	} );
}

/**
 * replace the nadavka form submit behavior with sending Ajax request
 */
function initNadavkaForm() {
	$(document).ready( function() {
		$("#nadavka-form").submit( function() {
			ExecScript('addnadavka', 'nadavka-form', '' );

			return false;
		} );
	} );
}


/**
 * replace the nadavka detail form submit behavior with sending Ajax request
 */
function initNadavkaDetailForm() {
	$(document).ready( function() {
		$("#nadavka-detail-form").submit( function() {
			ExecScript('updatenadavka', 'nadavka-detail-form', '' );

			return false;
		} );
	} );
}

function article_figure_image() {
	$(document).ready(function() {
		// some images need to wrap with a figrue 
		$("#text_clanku img.make-figure").each(function() {
			var $this = $(this);
			
			$this
				.wrap('<div class="image-figure"/>')
				.after('<div class="image-figure-caption">' + $this.attr('alt') + '</div>')
				.parent().width($this.width());

			if($this.hasClass('float-left')) {
				$this.removeClass('float-left').parent().addClass('float-left');
			} else if($this.hasClass('float-right')) {
				$this.removeClass('float-right').parent().addClass('float-right');
			}
		});
	});
	
}

function initImageUploadDialog(target) {
	$(document).ready(function() {
		var $form = $('#file_upload_form');
		var $widget = $form.find('.widget.MultiImageUpload');
		
		initUploadify('form-file_upload', {
			'folder'    : '/upload/uploadify/' + $("#upload_folder").val(),
			'fileExt'   : '*.jpg;*.jpeg',
			'fileDesc'  : 'Jpeg files',
			'multi'     : target != 'clanok',
			
			// disable current inputs
			'onOpen'    : function() {$form.find('input').attr('disabled', true).addClass('dsbl')},
			
			// store the filenames
			'onComplete': function(ev, id, file) {
				$form.append("<input type='hidden' name='files[]' value='" + file.name + "'>");
			},
			
			'onAllComplete': function(ev, data) { 
				// enable the inputs
				$form.find('input.dsbl').attr('disabled', false).removeClass('dsbl');
				
				// stretch the dialog
				if(data.filesUploaded > 2) {
					var $dialog = $("body > .ui-dialog");
					var width = 59 + data.filesUploaded * 177;
					if(width > 944) width = 944; 
					
					var dialog_width = $dialog.width();
					var dialog_left = $dialog.position().left;
					
					$dialog.css( {
						width: width + 'px',
						left: (dialog_left - (width - dialog_width) / 2) + 'px'
					} );
				}				

				UpdateWidget('MultiImageUpload', '', 'file-upload');
			}
		});
		
		$form.submit(function(ev) {
			ev.preventDefault();
			
			// check the inputs
			if($form.find('input[name="files[]"]').length == 0) {
				alert("Nie je vybraný obrázok");
				return;
			}
			
			ExecScript('savemultiupload', 'file_upload_form');
		});
	})
}

function initUploadify(id, options) {
	var settings = {
		'uploader'  : '/vendor/uploadify/uploadify.swf',
		'script'    : '/vendor/uploadify/uploadify.php',
		'cancelImg' : '/vendor/uploadify/cancel.png',
		'folder'    : '/upload/uploadify',
		'auto'      : true
	};
	
	if(options) {
		$.extend(settings, options);
	}
	
	$(document).ready(function() {
		$('#'+id).uploadify(settings);
	});
}


