var tabberOptions = {
	manualStartup: true,
	onClick: function(args) {
		if (args.tabber.id == 'itemstabber') {
			for (var i=0; i<3; i++) {
				if ($('buttons_' + i)) {
					if (i == args.index) {
						$('buttons_' + i).show();
					} else {
						$('buttons_' + i).hide();
					}
				}
			}
		}
	}
};

var EDU = function(){
	
	return {

		_temp: 				'',
		NO_BUTTON: 			0,
		OK_BUTTON: 			1,
		STORE_BUTTON: 		2,
		YES_NO_BUTTON: 		3,
		OK_CANCEL_BUTTON: 	4,
		TRASH_BUTTON: 		5,
		
		MESSAGE_LOGIN_TEXT_FOR_AJAX:	'#login', /* zachować zgodność z php app_constants -> MESSAGE_LOGIN_TEXT_FOR_AJAX */
		
		/**
		 * Wyświetla okienko z powiadomieniem (patrz: _components/notification.tpl)
		 */
		notify: function(msg, autoclose, button, loading, onclick1, onclick2) {
			if (loading === true) {
				msg += '<div><img src="/mods/cms/public/images/loading.gif" alt="Loading..."/></div>';
			}

			if (button == EDU.OK_BUTTON) {
				msg += '<div><span class="button"><button type="button" id="notify_button_1" class="button" onclick="Effect.Fade(\'notification\', { queue: \'end\', duration: 0.2});return false;"><img src="/mods/cms/public/images/icons/tick.png" alt="Ok" />Ok</button></span></div>';
			} else if (button == EDU.STORE_BUTTON) {
				msg += '<div><span class="button"><button type="button" id="notify_button_1" class="button" onclick="Effect.Fade(\'notification\', { queue: \'end\', duration: 0.2});return false;"><img src="/mods/cms/public/images/icons/16-arrow-left.png" alt="Kontynuuj zakupy" />Kontynuuj zakupy</button></span><span class="button"><button type="button" id="notify_button_1" class="button" onclick="window.location=\'/store/basket/checkout\'"><img src="/mods/cms/public/images/icons/16-arrow-right.png" alt="Zakończ zakupy" />Zakończ zakupy</button></span></div>';
			} else if (button == EDU.YES_NO_BUTTON) {
				msg += '<div><span class="button"><button type="button" id="notify_button_1" class="button" onclick="' + onclick1 + '"><img src="/mods/cms/public/images/icons/tick.png" alt="Tak" />Tak</button></span><span class="button"><button type="button" id="notify_button_1" class="button" onclick="Effect.Fade(\'notification\', { queue: \'end\', duration: 0.2});return false;"><img src="/mods/cms/public/images/icons/cross.png" alt="Nie" />Nie</button></span></div>';
			} else if (button == EDU.OK_CANCEL_BUTTON) {
				msg += '<div><span class="button"><button type="button" id="notify_button_1" class="button" onclick="' + onclick1 + '"><img src="/mods/cms/public/images/icons/tick.png" alt="Ok" />Ok</button></span><span class="button"><button type="button" id="notify_button_1" class="button" onclick="Effect.Fade(\'notification\', { queue: \'end\', duration: 0.2});return false;"><img src="/mods/cms/public/images/icons/cross.png" alt="Anuluj" />Anuluj</button></span></div>';
			} else if (button == EDU.TRASH_BUTTON) {
				msg += '<div><span class="button"><button type="submit" id="notify_button_1" class="button" onclick="' + onclick1 + '"><img src="/mods/cms/public/images/icons/tick.png" alt="Przywróć" />Przywróć</button></span><span class="button"><button type="button" id="notify_button_3" class="button" onclick="Effect.Fade(\'notification\', { queue: \'end\', duration: 0.2});return false;"><img src="/mods/cms/public/images/icons/cross.png" alt="Anuluj" />Anuluj</button></span></div>';
			}
			
			
			
			$('notification').update(msg);
			new Effect.Appear('notification', { duration: 0.2 });
			
			if (autoclose !== false) {
				new Effect.Fade('notification', { queue: 'end', duration: 0.5, delay: 1 });
			}
		},
		
		
		notifyHide: function() {
			new Effect.Fade('notification', { duration: 0.2});
		},
		
		
		toogle: function(id, duration, notifyStyle, actionShow, actionHide) {
			if (duration == null) {
				duration = 0.5;
			}
			if ($(id).getStyle('display') != 'none') {
				if (notifyStyle == null) {
					Effect.BlindUp(id, { duration: duration });
				} else {
					Effect.Fade(id, { duration: duration });
				}
				if (actionHide != null) {
					eval(actionHide);
				}
			} else {
				if (notifyStyle == null) {
					Effect.BlindDown(id, { duration: duration });
				} else if (notifyStyle == true) {
					Effect.Appear(id, { duration: duration });
				}
				if (actionShow != null) {
					eval(actionShow);
				}
			}
			return false;
		},
		
		
		showAjaxLoginForm: function(id, value) {
			if ((id != null && $(id).innerHTML == EDU.MESSAGE_LOGIN_TEXT_FOR_AJAX) 
				|| (value != undefined && value == EDU.MESSAGE_LOGIN_TEXT_FOR_AJAX)
				) {
				EDU.toogle('login_div', null, true, '$(\'login\').focus();', null);
				if (id != null) {
					$(id).innerHTML = '';
				}
			}
		},
		
		
		/**
		 * Obsługuje formularz filtrowania grida
		 */
		filterGrid: function(form, url) {
			var filter;
			var re = /\/filterstr\/_filterstr_/;
			
			if ($F('filterstr') != '') {
				filter = '/filterstr/' + $F('filterstr');
			} else {
				filter = '';
			}
			
			if (url.match(re)) {
				url = url.replace(re, filter);
			}
				
			window.location = url;
		},
		
		
		/**
		 * Obsługuje grupowanie w gridzie
		 */
		groupGrid: function(group, url) {
			var re = /\/group\/_group_/;
			
			if (group != '') {
				group = '/group/' + group;
			}
			
			if (url.match(re)) {
				url = url.replace(re, group);
			} else {
				url += group;
			}
			
			window.location = url;
		},
		
		
		mail: function(from_email, from_name, to_email, subject, content)
		{
			var url	= '/default/mail/mail/';
		
			var ajax = new Ajax.Request(
				url, 
				{
					method: 'post',
					parameters: {
						mail_from_email: 	from_email,
						mail_from_name:		from_name,
						mail_to_email:		to_email,
						mail_subject:		subject,
						mail_content:		content
					},
					onSuccess: EDU.mail_success
				}
			);
		},
		
		
		mail_success: function(originalRequest)
		{
			//alert(originalRequest.responseText);
		},
		
		
		formReadonlyElements: function(theform)
		{
			for (i = 0; i < theform.length; i++) {
				var formElement = theform.elements[i];
				if (true) {
					formElement.readonly = true;
					formElement.className += ' disabled';
				}
			}
		},
		
		
		/**
		 * Inicjalizacja sortabli
		 */		
		initSortables: function(objectId, module, controller, baseId, baseType) {
			var that = this;

			if($(objectId) == null) {
				return;
			}
   			Sortable.create(objectId, {
   				onUpdate: function(container) {
   					// wyłączone automatyczne zapisywanie
   					//that.reorder(objectId, module, controller, baseId, baseType);
   				}
   			});	
		},


		/**
		 * Zapisuje kolejność elementów po zmianie przez drag'n'drop
		 */
		reorder: function(sortableId, module, controller, baseId, baseName) {
			EDU.notify('Zapisywanie...', false, EDU.NO_BUTTON, true);
			var order = Sortable.serialize(sortableId);
			
			new Ajax.Request(
				'/' + module + '/' + controller + '/reorder',
				{
					method:		'post',
					parameters: '/?' + order + '&baseId=' + baseId + '&baseName=' + baseName,
					onSuccess: function() {
												EDU.notifyHide();
											}					
				}
			);
		},
		
		
		initEditablesMediaDesc: function(baseId, baseName) {
			//document.observe("dom:loaded", function() {
				$$("ul#media li span.description").each(function(e) {
					makeEditable(e, "/cms/media/describe/", baseName, baseId, 'dodaj opis');
				});
				//$('desc_' + 
			//})			
		},
		
		
        initEditablesModel: function() {
			document.observe("dom:loaded", function() {
				$$("#model_list span.description").each(function(e) {
					makeEditable(e, "/store/product-model/rename/id/", 0, null, null, true);
				});
			})			
		},
		
        initEditablesDeliveryWeightCost: function() {
			document.observe("dom:loaded", function() {
				$$("#delivery_weight_table span.weight_cost").each(function(e) {
					makeEditable(e, "/store/product-delivery/change-value/value/cost/id/", 0, null, null, true);
				});
			})			
		},	
		
        initEditablesDeliveryWeightStart: function() {
			document.observe("dom:loaded", function() {
				$$("#delivery_weight_table span.weight_start").each(function(e) {
					makeEditable(e, "/store/product-delivery/change-value/value/start/id/", 0, null, null, true);
				});
			})			
		},	
		
        initEditablesDeliveryWeightStop: function() {
			document.observe("dom:loaded", function() {
				$$("#delivery_weight_table span.weight_stop").each(function(e) {
					makeEditable(e, "/store/product-delivery/change-value/value/stop/id/", 0, null, null, true);
				});
			})			
		},	
		
		
        initEditablesExcelArea: function() {
			document.observe("dom:loaded", function() {
				$$("#tabber_excel span.excel_element").each(function(e) {
					makeEditable(e, "#", 0, null, null, true);
				});
			})			
		},													
		
		
        initEditablesGroup: function() {
			document.observe("dom:loaded", function() {
				$$("#group_list span.description").each(function(e) {
					makeEditable(e, "/cms/user-group/edit/id/", 0);
				});
			})			
		},
		
		
		initEditablesArea: function() {
			document.observe("dom:loaded", function() {
				$$("#area_list span.description").each(function(e) {
					makeEditable(e, "/cms/user-area/edit/id/", 0);
				});
			})			
		},			
		
        checkAllValues: function(elementId)
    	{
    		values = $(elementId).getElementsByTagName("input");
    		for (var j = 0; j < values.length; j++) {
    			if (values[j].type == 'checkbox') {
    				values[j].checked = true;
    				values[j].onclick();
    			}
    		}
    	},
    	
    	uncheckAllValues: function(elementId)
    	{
    		values = $(elementId).getElementsByTagName("input");
    		for (var j = 0; j < values.length; j++) {
    			if (values[j].type == 'checkbox') {
    				values[j].checked = false;
    				values[j].onclick();
    			}
    		}
    	},
		
		productSearchLink: function(formId, site)
    	{		
			var req = mint.Request();

		    req.OnSuccess = function() {
		        window.location.href = '/cms/site/' + site + this.responseText;
		    }			
			
			req.SendForm(formId, '/cms/page/make-friendly-link/');		
		},
		
		loginDialog: function()
		{
            Dialog.info($('login_div').innerHTML, {className: "alphacube", width:270, height:210, showProgress: true}); 

		}/*,
		
		login_success: function(originalRequest)
		{
			if(originalRequest.responseText) $('alogin').value='sss';
		}*/
	};
}();
