var myAdmin = {
		
	keyPressed: null,
	
	init: function(){
		//$.jGrowl('Init');

		$(".datepicker").datepicker({
			dateFormat: 'yy-mm-dd 12:00:00'
		});
		
		myAdmin.myTabs.init();
		myAdmin.colorbox.init();
		
		$(".ajax_href").unbind("click");
		$(".ajax_href").click(function(){ 
			myAdmin.commitAjax($(this).attr("href"));
			return false;
	    });

		$(".formAjax").unbind("submit");
		$(".formAjax").submit(function(){ 
			
			var formParent = $(this).parent();
			
			$(this).ajaxSubmit({ 
		        //target:        '#output2',   // target element(s) to be updated with server response 
		        //beforeSubmit:  function(formData, jqForm, options) { } ,  // pre-submit callback
				type:			'post',
				iframe:			true,
		        success:       function(responseText, statusText, xhr, $form){   // post-submit callback 
				
					try {
						var obj = jQuery.parseJSON(responseText);
						
						// je to JSON
						if(typeof(obj.error) != 'undefined') {
							$.jGrowl(obj.error);
						} else {
							if (obj.ajaxType == "redir"){
								location = obj.redirUrl;
								return false;
							} else if (obj.ajaxType == "refresh"){
								location.reload(true);
								return false;
							}							//alert("formAjax nepodporuje JSON pro navratove hodnoty");
							$.jGrowl("a"+obj);
						}
					} catch(e) {
						// neni to JSON
						formParent.html(responseText);
						$.jGrowl("AJAX executed");
						myAdmin.init();
					}
	         
	        	}
		 
		    }); 
			return false;
	    });
		
	},
	commitAjax: function(url) {
		$.ajax({ 
			url:			url,
			type:			'get',
			success:       function(responseText, statusText, xhr){   // post-submit callback 

				try {
					var obj = jQuery.parseJSON(responseText);

					// je to JSON
					if(typeof(obj.error) != 'undefined') {
						$.jGrowl(obj.error);
					} else {
						if(obj.ajaxType == "redir"){
							$.jGrowl("Načítám");
							window.location = obj.redirUrl;
						} else {
							$.jGrowl("Načítám");
							window.location.reload(true);
						}							//alert("formAjax nepodporuje JSON pro navratove hodnoty");
						return true;
					}
				} catch(e) {
					// neni to JSON
					$.jGrowl("Nesprávná komunikace se serverem");
					$.jGrowl(responseText);
				}

			}
		});
		return false;
	},
	/**
	 * tlacitko formulare na onclick prida do formulare hidden se svym priznakem (kvuli ajaxFormu, on odesilal vse, tlacitka ktera se nestiskla)
	 */
	formAjax_click: function(el, event){
		var toappend = '<input type="hidden" name="formData[X_formEvents]['+event+']" value="1" class="formData_eventSelector" />';
		$(".formData_eventSelector").remove();
		$(el).parents("form").append(toappend);
		return true;
	},
	keyDown: function(e) {
	   var keyId = (window.event) ? event.keyCode : e.keyCode;
	   myAdmin.keyPressed = keyId;
	},
	keyUp: function(e) {
		   var keyId = (window.event) ? event.keyCode : e.keyCode;

		   myAdmin.keyPressed = null;
		   
		   //alert(KeyID);
		   if(keyId==113) {
			   $(".insiteAdminToggler").toggle();
		   }
		   
		   //alert(keyId)
		   if(keyId==115) {
			   if($(".PA").hasClass("showArea")) {
				   $(".PA").removeClass("showArea");
			   } else {
				   $(".PA").addClass("showArea");
			   }
		   }
			   
		},
	/**
	 *	Funkce vrati 
	 */
	parseHashVars: function(){
	   var vars = window.location.hash;
	   var result = [];
	   if(vars.length > 0){
	      if(vars.charAt(0) == '#')
	         vars = vars.substr(1);
	      vars = vars.split('&');
	      var count = vars.length;
	      for(var i = 0; i < count; i++){
	         var v = vars[i];
	         if(v.indexOf('=') > 0){
	            var keyValue = v.split('=');
	            result[keyValue[0]] = keyValue[1];
	            //document.write(keyValue[0] + ': ' + keyValue[1] + '<br/>');
	         }
	      }
	   }
	   return result;
	}
}

myAdmin.myTabs = {
	init: function() {
		if($(".tabbed").children(".tabs").find("a[href='"+window.location.hash+"']").length>0) {
			// v URL mame platnou hash zalozky, zobrazime ji tedy
			myAdmin.myTabs.activateTab(window.location.hash);
		} else {
			// chybi v URL hash zalozky, zobrazime prvni
			$(".tabbed").each(function(){ // tohle musime udelat, aby se zalozka zmenila v kazdem .tabbed na strance nezavisle (druhy parametr metody)
				myAdmin.myTabs.activateTab($(this).find(".tabs li a").first().attr("href"), $(this));
			});
		}
		$(".tabbed").children(".tabs").find("a").click(function(){
			myAdmin.myTabs.activateTab($(this).attr("href"), $(this).parents(".tabbed").first());
			return false;
		});
	},
	/**
	 * selector je hodne dulezity pro vice formularu na strance, aby se mezi sebou nebili
	 */
	activateTab: function(id, selector) {
		if(selector == undefined) {
			selector = ".tabbed";
		}
		$(selector).children(".tabs").find("li").removeClass("active");
		$(selector).children(".tabs").find("a[href='"+id+"']").parents("li").first().addClass("active");
		$(selector).children(".tab").hide();
		$(selector).children(id).show();
		if(!$.colorbox.element().hasClass("resizeBlock")) {
			setTimeout("$.colorbox.resize();",100);
		}
	}
}

myAdmin.colorbox = {
	init: function(){
		// image colorbox
		$(".cbox_image").colorbox({
			photo:true,
			maxWidth:"90%",
			maxHeight:"90%",
			speed:100,
			current:"{current} / {total}",
			previous:"Předchozí",
			next:"Další",
			close:"Zavřít"
		});
		
		// dialog colorbox, content colorbox
		$(".cbox_dialog, .cbox_content").colorbox({
			innerWidth:"800px",
			innerHeight:"520px",
			maxHeight:"90%",
			speed:100,
			onComplete:function(){
				if($("#colorbox").find(".do_ckeditor").length>0) {
					$.colorbox.element().addClass("resizeBlock");
				} else {
					setTimeout("$.colorbox.resize();",100);
				}
				myAdmin.init();
				myAdmin.colorbox.addMinimizeBtn();
			}
		});

		// mazaci dialog colorbox
		$(".cbox_remove_dialog").colorbox({
			innerWidth:"500px",
			innerHeight:"200px",
			maxHeight:"90%",
			speed:0,
			onComplete:function(){
				setTimeout("$.colorbox.resize();",10);
				myAdmin.init();
				myAdmin.colorbox.addMinimizeBtn();
			}
		});
		
	},
	addMinimizeBtn: function() {
		$("#cboxMin").remove();
		$("#cboxContent").append('<div id="cboxMin">Minimize</div>');
		$("#cboxMin").unbind("click");
		$("#cboxMin").click(function(){
			$("#cboxOverlay").hide();
			$("#colorbox").hide();
			$("#cboxMin2").remove();
			$("body").append('<div id="cboxMin2"><span id="cboxMin2_text">Obnovit boxík <span id="cboxMin2_label"></span></span></div>');
			$("#cboxMin2_label").html($("#cboxTitle").html());
			$("#cboxMin2").unbind("click");
			$("#cboxMin2").click(function(){
				$("#cboxOverlay").show();
				$("#colorbox").show();
				$("#cboxMin2").remove();
			});
		});
	}
}

/**
 * PA = page Areas, je to sortable pro itemy
 */
myAdmin.pa = {
	init: function(parent){
		if(typeof(parent) == 'undefined') {
			alert("PA: Chybí id stránky!");
			return;
		}
		parent = parseInt(parent);
		var backgroundTmp;
		$(".PA").sortable( "destroy" );
		$(".PA").sortable({
			connectWith: ".PA",
			handle: '.PA_handle',
			cursor: 'move',
			opacity: 0.6,
			revert: 100,
			placeholder: 'PA_placeholder',
			forcePlaceholderSize: true,
			forceHelperSize: true,
			start: function(event, ui) {
				backgroundTmp = $(ui.helper).css("background-color");
				$(ui.helper).css("background-color", "white");
				$(".PA").each(function(){
					if($(this).css("min-height")=="0px") {
						$(".PA").css("min-height", "10px");
					}
				});
			},
			over: function(event, ui) {
				$(".PA").removeClass("PA_areaHover");
				$(this).addClass("PA_areaHover");
			},
			stop: function(event, ui) {
				$(".PA").removeClass("PA_areaHover");
				$(ui.item).css("background-color", backgroundTmp);
				var result = "parent="+parent;
				$(".PA").each(function(){
					result = result + "&" + $(this).sortable("serialize", {"key":"node["+$(this).attr("id").match(/\d+/)+"][]"});
				});
				// poslu ajaxem nove rozlozeni
				//$.jGrowl(result);
				$.ajax({ 
			        //beforeSubmit:  function(formData, jqForm, options) { } ,  // pre-submit callback
					url:			'/ajax/_mod:node/_handler:nodeTools/_case:saveOrder/?'+result,
					type:			'get',
			        success:		function(responseText, statusText, xhr, $form){   // post-submit callback 
					
										try {
											var obj = jQuery.parseJSON(responseText);
											
											// je to JSON
											if(typeof(obj.error) != 'undefined') {
												$.jGrowl("Chyba: "+obj.error);
											} else {
												$.jGrowl("Uloženo");
											}
										} catch(e) {
											$.jGrowl("Chybná odpověď serveru!");
											$.jGrowl(responseText);
										}
						         
						        	}
			    }); 				
			}
		});
		//$(".PA").disableSelection();
	}
}
/**
 * IS = item sortable, je to sortable pro subitemy
 * parent je ve tvaru "node_624", coz je id rodice!
 */
myAdmin.is = {
	init: function(parent){
		if(typeof(parent) == 'undefined') {
			alert("IS: Chybí id stránky!");
			return;
		}
		$("#"+parent).sortable( "destroy" );
		$("#"+parent).sortable({
			handle: '.IS_handle',
			cursor: 'move',
			opacity: 0.6,
			revert: 100,
			placeholder: 'IS_placeholder',
			forcePlaceholderSize: true,
			forceHelperSize: true,
			stop: function(event, ui) {
				var result = "parent="+parent.match(/\d+/);
				$("#"+parent).each(function(){
					result = result + "&" + $(this).sortable("serialize", {"key":"node[0][]"});
				});
				// poslu ajaxem nove rozlozeni
				//$.jGrowl(result);
				//return;
				$.ajax({ 
			        //beforeSubmit:  function(formData, jqForm, options) { } ,  // pre-submit callback
					url:			'/ajax/_mod:node/_handler:nodeTools/_case:saveOrder/?'+result,
					type:			'get',
			        success:		function(responseText, statusText, xhr, $form){   // post-submit callback 
					
										try {
											var obj = jQuery.parseJSON(responseText);
											
											// je to JSON
											if(typeof(obj.error) != 'undefined') {
												$.jGrowl("Chyba: "+obj.error);
											} else {
												$.jGrowl("Uloženo");
											}
										} catch(e) {
											$.jGrowl("Chybná odpověď serveru!");
											$.jGrowl(responseText);
										}
						         
						        	}
			    }); 				
			}
		});
		//$(".PA").disableSelection();
	}
}

$(document).ready(function(){
	myAdmin.init();
	document.onkeyup = myAdmin.keyUp;
	document.onkeydown = myAdmin.keyDown;
});



