function initializekatalogDragZone(v) {
    v.dragZone = new Ext.dd.DragZone(v.getEl(), {
				ddGroup:v.dropzone_group,
        getDragData: function(e) { 
        	  var itemcls=v.ItemClass;           	 		
            var sourceEl = e.getTarget(v.itemSelector, 10);
            var sourceEl_dummy = e.getTarget("div."+itemcls, 10);
            if (sourceEl) {
                d = sourceEl_dummy.cloneNode(true);
                d.id = Ext.id(); 
	              v.dragData = {
                    sourceEl: sourceEl_dummy,
                    sourceEloriginal: sourceEl,
                    repairXY: Ext.fly(sourceEl_dummy).getXY(),
                    ddel: d,
                    katalogData: v.getRecord(sourceEl).data
                }
                return v.dragData;
            }
        },

        getRepairXY: function() {
            return this.dragData.repairXY;
        }
    });
    
    v.dropZone = new Ext.dd.DropZone(v.getEl(), {
				ddGroup:v.dropzone_group,
        getTargetFromEvent: function(e) {   
        	  var itemcls=v.ItemClass;          	     	
            return e.getTarget("."+itemcls);
        },

        onNodeEnter : function(target, dd, e, data){ 
        	var node=Ext.get(target);
        	var itemcls=v.ItemClass;     
           Ext.fly(target).addClass(itemcls+"-hover");
        },

        onNodeOut : function(target, dd, e, data){ 
        	var itemcls=v.ItemClass;     
            Ext.fly(target).removeClass(itemcls+"-hover");
        },

        onNodeOver : function(target, dd, e, data){ 
            return Ext.dd.DropZone.prototype.dropAllowed;
        },

    onNodeDrop : function(target, dd, e, data){
		   	var targetEl=Ext.get(target).dom.getElementsByClassName("Katalog_moveicon");
		    var targetrecord=v.getRecord(targetEl[0]);
		    var targetId = targetrecord.data.id;	
				var targetPoradie = targetrecord.data.poradie;	
		    var sourceId = data.katalogData.id;
				var sourcePoradie = data.katalogData.poradie;	
				Ext.get(data.sourceEl).insertBefore(target);
				Ext.get("katalog-view").mask();
				Ext.Ajax.request({
													waitMsg: "Vymazávam",
													url:v.moveUrl,
													params: {
														targetId:targetId,
														targetPoradie:targetPoradie,
														sourceId:sourceId,
														sourcePoradie:sourcePoradie												
														},
													callback: function(options,success,response)
															{	Ext.get("katalog-view").unmask();
																AjaxvalidateJson(response.responseText);
																v.store.load();
																//menuupdate();
																
															}
													});		
		    return true;
		        }
    });
}

function deletebutton(id,poid){	
						var deleteurl=Ext.getCmp("katalogView_"+poid).deleteUrl;
												Ext.MessageBox.confirm("Otázka","Naozaj si prajete vymazať tento záznam?", function(btn){
												if(btn=="yes"){								
													Ext.Ajax.request({
													waitMsg: "Vymazávam",
													url:deleteurl,
													params: {id:id},
													callback: function(options,success,response)
															{	
																AjaxvalidateJson(response.responseText);
																Ext.getCmp("katalogView_"+poid).store.load();																
																menuupdate(poid);
															}
													});
												}});
}

function editbutton(poid,id,poradie,baselocation,type){	
	drawurl=Ext.getCmp("katalogView_"+poid).drawUrl;
	editurl=Ext.getCmp("katalogView_"+poid).editUrl;
	recorddata=Ext.getCmp("katalogView_"+poid).store.getById(id);
						DrawTiny(poid,baselocation,drawurl,recorddata,editurl,type,"false");												
}

function editbutton_tiny(poid,data,poradie,baselocation,type){
	recorddata=data;
	drawurl=Ext.getCmp("katalogView_"+poid).drawUrl;
	editurl=Ext.getCmp("katalogView_"+poid).editUrl;
	DrawTiny(poid,baselocation,drawurl,recorddata,editurl,type,"true");												
}

function pagecopy(copyformurl,copypageurl,poid,baselocation,drawurl,x,editurl,type,tiny,id){
	var w = new Ext.Window({
		id:"Copy_win_"+poid,
		 autoShow: false,
		 width: 294,
		 height:160,
		 title: "Nová položka",
     autoScroll:true,
     modal:true,
     resizable:false
	});
	w.show();
	w.setPagePosition((screen.width/2-147),50);
	w.load({url:copyformurl,params:{"type":type},scripts:true, callback:function(w){
		var sub_copy=new Ext.Button({
		width:65,
		text:"Vytvoriť"
		,listeners:{click:function()
			{
					var options={
					url: copypageurl,
					type: "POST",
					data: {},
					clearForm: false,
					resetForm: false,
						success: function(responseText,statusText){
						AjaxvalidateJson(responseText);
						Ext.getCmp("Copy_win_"+poid).close();
						response=Ext.util.JSON.decode(responseText);	
						Ext.getCmp("katalogView_"+poid).store.load({
							callback: function()
									{ menuupdate(poid);	
										var recorddata=Ext.getCmp("katalogView_"+poid).store.getById(response.new_katalogid);
										DrawTiny(poid,baselocation,drawurl,recorddata,editurl,type,tiny);}
							});
										
						
						}
					};
					$("#frm_pagecopy_"+poid).ajaxSubmit(options);
			}
		}
		});	
		sub_copy.render("frm_pagecopy_submit_"+poid);
		
		}});
}

function addbutton(poid,baselocation,type,id){	
	drawurl=Ext.getCmp("katalogView_"+poid).drawUrl;
	editurl=Ext.getCmp("katalogView_"+poid).editUrl;
	copyformurl=Ext.getCmp("katalogView_"+poid).pagecopyformUrl;
	copypageurl=Ext.getCmp("katalogView_"+poid).pagecopyUrl;
	pagecopy(copyformurl,copypageurl,poid,baselocation,drawurl,{},editurl,type,"false",id);
}

function DrawTiny(poid,baselocation,drawurl,recorddata,editurl,type,tiny){
	var w = new Ext.Window({
			id:"Katalog_win_"+poid,
		 autoShow: false,
		 width: 1000,
		 height:644,
		 title: "HTML Editor",
     autoScroll:true,
     modal:true,
     resizable:false,
     listeners:{beforeclose:function(){tinyMCE.execCommand("mceRemoveControl",false,"tinymce_"+poid);menuupdate(poid);}}
	});
	w.show("body");
	w.setPagePosition((screen.width/2-500),50);
	w.load({url:drawurl,params:{"id":recorddata.id,"tiny":tiny},scripts:true, callback:function(w){TinyInit(poid,baselocation,editurl,recorddata,type,tiny);
	var imgch=new Ext.Button({
		width:65,
		text:"Vybrať",
		listeners:{click:function(){DrawImagechooser(poid,baselocation,tiny);}}
		});	
	imgch.render("Katalog_editor_img_chooser");
		
		}});
}

function extimgchooser(field_name, url, type, win){
	win.SetUrl=function(url,width,height,caption){
   win.document.forms[0].elements[field_name].value = url;
   if(caption){
    win.document.forms[0].elements["alt"].value=caption;
    win.document.forms[0].elements["title"].value=caption;
   }
  }
		ich = new ImageChooser({
				width:950,
				height:400,
				field_name:field_name,
				win:win,
				basefold: win.tinyMCE.settings.baselocation,
				url:win.tinyMCE.settings.baselocation+'fd.php?act=files',
				dirurl:win.tinyMCE.settings.baselocation+'fd.php?act=dirlist',
				uploadurl:win.tinyMCE.settings.baselocation+'fd.php?act=uploadfile',
				deleteurl:win.tinyMCE.settings.baselocation+'fd.php?act=deletefile',
				deldirurl:win.tinyMCE.settings.baselocation+'fd.php?act=deldir',
				newdirurl:win.tinyMCE.settings.baselocation+'fd.php?act=newdir',
				renamedirurl:win.tinyMCE.settings.baselocation+'fd.php?act=renamedir',				
				caller:this		
			});
			ich.show(win.tinyMCE.activeEditor.container,function(data,rootel,iswin){iswin.win.SetUrl(Ext.getCmp("katalogView_"+win.tinyMCE.settings.poid).systemlocation+win.tinyMCE.settings.baselocation+data,0,0,'');});	

}

function DrawImagechooser(poid,baselocation,tiny){
	var sysloc=Ext.getCmp("katalogView_"+poid).systemlocation;
	baselocation=sysloc+baselocation;
							chooser=new ImageChooser({
								url:baselocation+"fd.php?act=files",
								dirurl:baselocation+"fd.php?act=dirlist",
								uploadurl:baselocation+"fd.php?act=uploadfile",
								deleteurl:baselocation+"fd.php?act=deletefile",
								deldirurl:baselocation+"fd.php?act=deldir",
								newdirurl:baselocation+"fd.php?act=newdir",
								renamedirurl:baselocation+"fd.php?act=renamedir",
								basefold:baselocation,
								callback:function(){console.log("a");},
								width:950,
								height:480,
								caller:this});
							chooser.show(this,function(a,b,c)
								{ var imag=Ext.get("Katalog_editor_img");
									var input_url=Ext.get("Katalog_editor_img_url");
									imag.dom.src=baselocation+a;
									input_url.dom.value=a;
								});
}

function TinyInit(poid,baselocation,editurl,recorddata,type,tiny){
tinyMCE.init({
								mode: "exact",
								poid:poid,
								element_format : "html",
								elements: "tinymce_"+poid,
								theme: "advanced",
								language: "sk",
								skin: "o2k7",
								theme_advanced_toolbar_location: "top",
								theme_advanced_toolbar_align: "left",
								valid_elements : "@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|"
+ "onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|"
+ "onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|"
+ "name|href|target|title|class|onfocus|onblur],b/strong,i/em,strike,u,"
+ "#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|"
+ "src|border|alt=|title|hspace|vspace|width|height|align|style],-sub,-sup,"
+ "-blockquote,-table[border=0|cellspacing|cellpadding|width|frame|rules|"
+ "height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|"
+ "height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,"
+ "#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor"
+ "|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,"
+ "-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face"
+ "|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],"
+ "object[classid|width|height|codebase|*],param[name|value|_value],embed[type|width"
+ "|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,"
+ "button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|"
+ "valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],"
+ "input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value],"
+ "kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],"
+ "q[cite],samp,select[disabled|multiple|name|size],small,"
+ "textarea[cols|rows|disabled|name|readonly],tt,var,big",
								extended_valid_elements : "a[name|href|target|title|onclick|class],img[class|src|alt|title|hspace|vspace|width|height|align|style|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style],div[class|id|style|name]",
								force_p_newlines : false,
								force_br_newlines : true,
								forced_root_block : '',
								convert_newlines_to_brs : false,
								baselocation: baselocation,
								content_css : baselocation+"userdata/layout/style.css",
								class_filter : function(cls,rule){
									if(cls.substring(0,5)!='html_') {
										return false;
									} else return cls;
								},
	//							bramus_cssextras_classesstring : "li::ul[smallList,bigList];img::self[floatLeft,floatRight]",
		//						bramus_cssextras_idsstring : "p::self[introText]",
								plugins : "bramus_cssextras,advhr,advimage,advlink,autosave,contextmenu,inlinepopups,insertdatetime,layer,media,nonbreaking,pagebreak,paste,print,safari,save,searchreplace,style,table,template,visualchars",
								theme_advanced_buttons1_add_before : "save,separator,print,separator,pastetext,pasteword,selectall,separator,search,replace",
								theme_advanced_buttons3_add_before : "template,styleprops,separator,tablecontrols,separator",
								theme_advanced_buttons3_add : "bramus_cssextras_classes,bramus_cssextras_ids",
								theme_advanced_buttons2_add : "advhr,separator,insertdate,inserttime,separator,insertlayer,moveforward,movebackward,absolute,separator,media,separator,nonbreaking,separator,visualchars,separator,cancel,",
								plugin_insertdate_dateFormat : "%d.%m.%Y",
								plugin_insertdate_timeFormat : "%H:%M:%S",
								file_browser_callback : "extimgchooser",
								pagebreak_separator : "<!-- my page break -->",
								paste_create_paragraphs : false,
								paste_create_linebreaks : false,
								paste_use_dialog : true,
								height : 600,
								
								media_use_script: false,
								
								paste_auto_cleanup_on_paste : false,
								paste_convert_middot_lists : false,
								paste_unindented_list_class : "unindentedList",
								paste_convert_headers_to_strong : true,
								paste_insert_word_content_callback : "convertWord",
								save_enablewhendirty : false, 
								file_browser_callback : "extimgchooser",
								save_onsavecallback : function(){
									if (recorddata.id==undefined)recorddata.id="";
									var options={
													url: editurl,
													type: "POST",
													data: {id:recorddata.id,stpoid: poid,type: type,tiny:tiny},
													clearForm: false,
													resetForm: false,
													success: function(responseText,statusText){														
														tinyMCE.execCommand("mceRemoveControl",false,"tinymce_"+poid);
														Ext.getCmp("Katalog_win_"+poid).close();	
														if (Ext.thisType==0){Ext.getCmp("katalogView_"+poid).store.load();}
														if (tiny=="true")
																{
																var img=Ext.get("Katalog_tiny_image");
																res=Ext.util.JSON.decode(responseText);
																if (img)img.dom.src=baselocation+res.img;
																$("#Katalog_tiny_tiny_html_div").html(res.html);
																}
																else
																{
																/*DOROBIT CALLBACK*/
																}
														}
												};
									$("#frm_tinymce_"+poid).ajaxSubmit(options);
								}
						});
}

function kfm_for_tiny_mce(field_name, url, type, win){
  window.SetUrl=function(url,width,height,caption){
   win.document.forms[0].elements[field_name].value = url;
   if(caption){
    win.document.forms[0].elements["alt"].value=caption;
    win.document.forms[0].elements["title"].value=caption;
   }
  }
  window.open('../../../kfm/index.php?mode=selector&type='+type,'kfm','modal,width=800,height=600');
}

function menuexpand(){
	  $(".menuactive").parent().show();
		$(".menuactive").parent().parent().parent().show();	
		$(".menuactive").find("ul:first").show();
//		if ($(".menuactive").children("ul").length > 0){$(".menuactive").next(".menu_sep1").hide();}
//		if ($(".menu_ul2").children(".menuactive").length > 0){$(".menuactive").parent().parent().next().hide();}	
//		if ($(".menu_ul3").children(".menuactive").length > 0){$(".menuactive").parent().parent().parent().parent().next().hide();}	
}

function menuupdate(poid){
														var menuupdateurl=Ext.getCmp("katalogView_"+poid).updatemenuUrl;
														Ext.Ajax.request({
																url:menuupdateurl,
																callback: function(options,success,response)
																{
																	var ret=Ext.util.JSON.decode(response.responseText);
																	$("#katalog_stickerarea1_down").html(ret['Menu']);
																	$("#katalog_right_label").html(ret['PathTitle']);
																	$("#katalog_stickarea_path").html(ret['Path']);
																	$("#katalog_label").html(ret['KatalogTitle']);
																	$("#katalog_stickarea_path_uvod").html(ret['PathUvod']);																	
																	menuexpand();
																	Cufon.DOM.ready(function(){
																		var evl="cufonreplace_"+poid+"();";
																		eval(evl);
																	});
																}
														});	
}

function setactivetab(div,tab,url,id){
	$(".katalog_tab_div_active").removeClass("katalog_tab_div_active");
	$("#"+div).addClass("katalog_tab_div_active");
	$.ajax({
				type: "POST",
				timeout: 7000,
				data: {id:id,tab:tab},
				url: url,
				success: function(result){
					$("#katalog_tab").html(result);
				}
	});	
}

function tabedit(url,updateurl,tab,id){
	var w = new Ext.Window({
		id:"Tab_edit_win",
		 autoShow: false,
		 width: 500,
		 height:400,
		 title: "Editovať obsah záložky",
     autoScroll:true,
     modal:true,
     resizable:false,
     listeners:{close:function(){	
     		$.ajax({
				type: "POST",
				timeout: 7000,
				data: {id:id,tab:tab},
				url: updateurl,
				success: function(result){
					$("#katalog_tab").html(result);
				}
				});	
		}}
	});
	w.show();
	w.setPagePosition((screen.width/2-250),50);
	w.load({url:url,params:{},scripts:true, callback:function(w){
	}});
}

function winedit(url,id){
	var w = new Ext.Window({
		id:"Win_edit_win",
		 autoShow: false,
		 width: 500,
		 height:400,
		 title: "Editovať obsah",
     autoScroll:true,
     modal:true,
     resizable:false,
     listeners:{close:function(){	
			}}
	});
	w.show();
	w.setPagePosition((screen.width/2-250),50);
	w.load({url:url,params:{},scripts:true, callback:function(w){
	}});
}
