
var bookmark = {
	home: '/ajax/util/konyvjelzoim',
	clickprefix: '/clicktrack/Fejléc/Könyvjelző',
	loaded: false,

	// bookmark betoltes, 1 page loadkor csak 1x fut! 
	load: function ()
	{
		if (bookmark.loaded) {
			return;
		}
		$.ajax({
			type: 'GET',
			url: bookmark.home + '/load_ajax',
			dataType: 'json',

			beforeSend: function (response) {
				$('#ajaxloading').toggle();
			},

			success: function (response) {
				$('#ajaxloading').toggle();
				if (response.cnt) {
					var data = response.data;

					// groupok
					for (var group_enc in data) {
						var groupdata = data[group_enc].items;
						// itemek
						for (j = 0; j < groupdata.length; j++) {
							bookmark.insertNewElement(group_enc, data[group_enc].name, groupdata[j].id, groupdata[j].url, groupdata[j].title, 'append', groupdata[j].id ? 0 : 1);
						}
					}
				}
				// bookmark betoltve
				bookmark.loaded = true;

				if (response.message) {
					bookmark.show_message(response.message);
				}
				bookmark.clicktrack('Betöltés');
			}
		});
		$('#hp_kj_ossztorl a').click(function() {
			// van-e a usernek
			var items = $('#hp_kj_lista').find('li');

			if (!items.length) {
				bookmark.show_message('Nincsen törölhető könyvjelzője!');
		
			} else {
				var deleteall = confirm('Biztosan minden könyvjelzőjét törölni szeretné?');
				if (deleteall) {
					bookmark._delete('delete_all', 0, '');
					bookmark.clicktrack('Összes törlése');
				}
			}
			this.blur();
			return false;
		});
	},

	// selected sort csuk be
	closeedit: function(obj)
	{
		$(obj).parents('li').find('a').show().end().find('input[type="text"]').hide().end().find('.hp_kj_gombok a[class*="hp_kj_group1"]').css("display", "block");
		$(obj).parents('li').find('a').show().end().find('input[type="text"]').hide().end().find('.hp_kj_gombok a[class*="hp_kj_group2"]').css("display", "none");
		$(obj).parents('li').removeClass('selected');
	},

	// esemenyt bindel egy ujonnan beszurt <LI>-n belul levo <DIV>-re (ezen belul az <A> gombokra es input mezore)
	bind: function(buttonsdiv)
	{
		var div = $('#' + buttonsdiv);
		// szerkesztes 
		div.find('a[class*="hp_kj_gomb01"]').click(function(e) {
			// megkeressuk a kinyitott inputokat
			$('#hp_kj_lista').find('a[class*="hp_kj_gomb03"]:visible').each(function () {
				bookmark.closeedit(this);
			});
			$(this).parents('li').find('a').hide().end().find('input[type="text"]').show().end().find('.hp_kj_gombok a[class*="hp_kj_group1"]').css("display", "none");
			$(this).parents('li').find('a').hide().end().find('input[type="text"]').show().end().find('.hp_kj_gombok a[class*="hp_kj_group2"]').css("display", "block");

			$(this).parents('li').addClass('selected');
		});
		// delete 
		div.find('a[class*="hp_kj_gomb02"]').click(function(e) {
			var id = $(this).parents('li').find('input[type="hidden"]').attr('value');
			bookmark._delete('delete', id, buttonsdiv);
		});
		// pipa 
		div.find('a[class*="hp_kj_gomb03"]').click(function(e) {
			bookmark.closeedit(this);
		})
		// input keypress es bind esemenyek 
		div.parent().find('input[type="text"]').keypress(function (e) {
			// enterre mentes
			if (e.which == 13) {
				this.blur();
			}
		}).blur(function (e) { 
			bookmark.modify(this);
		});
	},

	// bookmark szoveg modositasa
	modify: function (obj)
	{
		if (!bookmark.loaded) {
			return;
		}
		post = {
			'id': $(obj).next().attr('value'),
			'title': obj.value
		};
		$.ajax({
			type: 'POST',
			url: bookmark.home + '/save_ajax',
			dataType: 'json',
			data: $.param(post),
			success: function (response) {
				// konyvjelzo modositas (input elotti A tag) (nincs / mert a href azzal kezdodik)
				bookmark.clicktrack('Módosítás' + $(obj).prev().attr('href'));
				if (response.message) {
					bookmark.show_message(response.message);
				}
			}
		});
		if ($(obj)) {
			$(obj).prev().text(obj.value);
			bookmark.closeedit(obj);
		}
	},

	serviceDelete: function(extra)
	{
		extra = extra || {};
		bookmark._delete('delete', 0, false, true, {'service': extra.service, 'service_id': extra.service_id, 'callback': extra.callback});
	},

	// egy vagy teljes bookmark torles (azert van az action h. sima link veletlenul se torolhessen teljes bookmarkot 0-s id-val)
	_delete: function (action, id, buttonsdiv, force, extra)
	{
		force = force || false;
		extra = extra || {};
		buttonsdiv = buttonsdiv || false;
		extra.callback = extra.callback || '';

		if (!bookmark.loaded && !force) {
			return;
		}

		post = {
			'action': action,
			'id': id,
			'service': extra.service,
			'service_id[]': extra.service_id
		};
		$.ajax({
			type: 'POST',
			url: bookmark.home + '/delete_ajax',
			dataType: 'json',
			data: $.param(post),
			success: function (response) {
				if (extra.service_id && typeof(extra.callback) == 'function') {
					extra.callback(response);
				} else if (extra.service_id && typeof(extra.callback) == 'string' && extra.callback != '') {
					var cbFunc = window[extra.callback];
					cbFunc(response);
				} else {
					// 1 bookmark torlese
					if (action == 'delete') {
						if (buttonsdiv) {
							var div = $('#' + buttonsdiv)
							var linum = div.parents('ul').find('li').length;
							// ha az utolso LI-t toroljuk (fentebb) akkor a GROUP DIV-et kell eltavolitani
							if (linum == 1) {
								div.parents('ul').parent().remove();
							} else {
								div.parents('li').remove();
							}
							// div utani A -tag href (nincs / mert a href azzal kezdodik)
							bookmark.clicktrack('Törlés' + div.next().attr('href'));
						}
	
					// osszes torlese
					} else {
						$('#hp_kj_lista').text('');
					}
	
					if (response.message && !force) {
						bookmark.show_message(response.message);
					}
				}
			}
		});
	},

	// uj bookmark mentese
	save: function (url, title, urlclick, force, extra)
	{
		force = force || false;
	
		if (!bookmark.loaded && !force) {
			return;
		}

		extra = extra || {};

		// csak az elso resze
		title = title.split('/');
		title = title[0];

		post = {
			'url': url,
			'title': title,
			'service': extra.service,
			'service_id': extra.service_id
		};
		$.ajax({
			type: 'POST',
			url: bookmark.home + '/save_ajax',
			dataType: 'json',
			data: $.param(post),
			success: function (response) {
				if (extra.service_id && typeof(extra.callback) == 'function') {
					extra.callback(response);
				} else if (extra.service_id && typeof(extra.callback) == 'string' && extra.callback != '') {
					var cbFunc = window[extra.callback];
					cbFunc(response);
				} else {
					if (response.status == 'insert_ok' && !extra.service_id) {
						bookmark.insertNewElement(response.group.encode, response.group.name, response.id, urlclick, title, 'prepend');
	
						bookmark.clicktrack('Hozzáadás' + urlclick);
					}
					if (response.message) {
						bookmark.show_message(response.message);
					}
				}
			}
		});
	},

	// uzenet megjelenitese
	show_message: function (message)
	{
		$('#hp_kj_alert').text(message);
		$('#hp_kj_alert').fadeIn('slow');
		setTimeout("$('#hp_kj_alert').fadeOut('slow');", (message.length * 100));
	},

	insertNewElement: function (group_id, group, id, url, title, where, disabled)
	{
		// container id
		var container_id = 'bm_' + group_id;

		disabled = disabled || 0;

		// ha meg nincs ilyen UL
		if (!$('#' + container_id).length) {
			$('#hp_kj_lista').append (
				'<div id="' + container_id + '">' +
				'<h6>' + group + '</h6>' + 
				'<ul>' +
				'</ul>' +
				'</div>'
			);
			where = 'append';
		}
		var container = $('#' + container_id);
		var buttons_id = 'hp_kj_buttons_' + id;
		var content =
			'<li>' + 
				'<div id="' + buttons_id + '" class="hp_kj_gombok">' + 
					// nem rakunk ki gombokat
					(disabled ? '' : 
						'<a class="hp_kj_gomb01 hp_kj_group1"><span>X</span></a>' + 
						'<a class="hp_kj_gomb02 hp_kj_group1"><span>E</span></a>' + 
						'<a class="hp_kj_gomb03 hp_kj_group2" style="display: none;"><span>O</span></a>'
					) + 
				'</div>' + 
				// a :text tipus, erre az a-ra prev()-el hivatkozik! (ha modosulna a style!)
				'<a href="' + url + '" onclick="' + "bookmark.clicktrack('Linkek" + url + "');" + '">' + title + '</a>' + 
				'<input type="text" name="title[' + id + ']" value="' + title + '" />' + 
				// a :text tipus, erre a hiddenre next()-el hivatkozik! (ha modosulna a style!)
				'<input type="hidden" name="id[' + id + ']" value="' + id + '" />' + 
			'</li>';
	
		// a group vegere vagy elejere szurja-e be (loadnal a vegere, uj mentes-nel az elejere)
		if (where == 'append') {
			var tmp = container.find('ul').append(content);
		} else {
			var tmp = container.find('ul').prepend(content);
		}
		// "fix" nem modosithato / torolheto bookmark
		if (!disabled) {
			// buta IE6-osnak :hover
			if ($.browser.msie) {
				$('#' + buttons_id).parent().mouseover(function() {
					$(this).addClass('hover');
					if ($(this).hasClass("hp_kj_olvasott")) {
						$(this).css("background-color", "#EEF1DA");
					}
				}).mouseout(function() {
					$(this).removeClass('hover');
				});
			}		
			// esemeny bind a gombokra
			bookmark.bind(buttons_id);
		}
	},

	clicktrack: function (param)
	{
		// global.audit(bookmark.clickprefix + '/' + param);
		// amig nincs global.audit() figyeljuk h. letezik-e az audit function (develen ne irjon js hibat)
		if (typeof(audit) == 'function') {
			audit(bookmark.clickprefix + '/' + param);
		}
	}
}

$(document).ready(function () {
	// le-fel nyitas
	$('#hp_kj_cim').click(function() {
		// nyitas / zaras
		if ($('#hp_kj_belso').css('display') == 'block') {
			bookmark.clicktrack('Zárás');
		} else {
			bookmark.clicktrack('Nyitás');
		}

		bookmark.load();

		$('.hp_konyvjelzoim h5').toggleClass("hp_kj_be");
		$('#hp_kj_belso').toggle();
		this.blur();
		return false;
	});

	// documenten kattintas figyelese (ha nem a bookmarkra nyom csukodjon be)
	$(document).click(function(e) {
		var event = $(e.target);
		// ha nyitva van a bookmark
		if ($('#hp_kj_belso').css('display') == 'block') {
			// es ha a szulok kozott nincs a konyvjelzo
			if (!event.parents('.hp_konyvjelzoim').length) {
				// akkor zarjuk be
				$('#hp_kj_cim').click();
			}
		}
	});

	// buta IE6-osnak :hover
});

