jQuery.cookie = function (key, value, options) {
    
    // key and at least value given, set cookie...
    if (arguments.length > 1 && String(value) !== "[object Object]") {
        options = jQuery.extend({}, options);

        if (value === null || value === undefined) {
            options.expires = -1;
        }

        if (typeof options.expires === 'number') {
            var days = options.expires, t = options.expires = new Date();
            t.setDate(t.getDate() + days);
        }
        
        value = String(value);
        
        return (document.cookie = [
            encodeURIComponent(key), '=',
            options.raw ? value : encodeURIComponent(value),
            options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
            options.path ? '; path=' + options.path : '',
            options.domain ? '; domain=' + options.domain : '',
            options.secure ? '; secure' : ''
        ].join(''));
    }

    // key and possibly options given, get cookie...
    options = value || {};
    var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
    return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};

$(function() {
	var html = $('html')[0];
	if (html) {
		$(html).removeClass('no-js').addClass('js');
	}
	(function Retadresoj() {
		var retadresoj = $("span.retadreso");
		$(retadresoj).each( function() {
			var m = $(this).text().match('“([^“”]+)”[ \n\t\r]+.+e[ \n\t\r]+“([^“”]+)”');
			if (m.length == 3) {
				var adreso = m[1]+"@"+m[2];
				$(this).html('<a href="mailto:' + adreso + '">' + adreso + '</a>');
			}
		});
	})();
	//(function ElstarigiSerchvortojn() {
	//	var enhavo = $('#enhavo');
	//	if (enhavo[0]) {
	//		var article = enhavo[0];
	//		var tagName = 'mark';
	//		if (article.nodeName.toLowerCase() !== 'article') {
	//			tagName = 'em';
	//		}
	//		$(article).highlightSearchTerms({
	//			className: "SERCHATA",
	//			tagName: tagName
	//		});
	//	}
	//})();
	var orig_flankmenuo;
	if (html && $(html).hasClass('moderna') && !$(html).hasClass('ie8')) {
		var KontroliFlankmenuon = function() {
			if (typeof orig_flankmenuo == 'undefined') {
				if ($(html).hasClass('flankmenuo')) {
					orig_flankmenuo = true;
				} else {
					orig_flankmenuo = false;
				}
			}
			var nav = $('body > nav, body > .nav');
			if (nav[0]) {
				if (orig_flankmenuo === true) {
					var width = $(html).width();
					if (width < 470) {
						$(html).removeClass('flankmenuo');
					} else {
						$(html).addClass('flankmenuo');
					}
				}
			}
		};
		$(window).bind('resize', KontroliFlankmenuon);
		KontroliFlankmenuon();
		var agordilo = $('#allaagordilo')[0];
		if (agordilo) {
			var agordokuketo = $.cookie('agordoj');
			if (!agordokuketo) {
				agordokuketo = 'f0,t1';
			}
			var agordoj = {};
			var agordaro = agordokuketo.split(',');
			$(agordaro).each( function() {
				var v = this.split('');
				agordoj[v[0]] = v[1];
			});
			var KonserviAgordojn = function() {
				var agordaro = [];
				$.each(agordoj, function(litero, valoro) {
					agordaro.push(litero + valoro);
				})
				var agordo = agordaro.join(',');
				$.cookie('agordoj', agordo, { expires: 10000, path: '/'});
			};
			$(agordilo).bind('click', function() {
				if ($(agordilo).hasClass('malfermita')) {
					return;
				}
				$(agordilo).addClass('malfermita');
				var div = $('<div class="agordilo"><div><h1>Agordi la aranĝon de la paĝoj</h1><p>Ĉi tie vi povas adapti al viaj propraj preferoj kelkajn detalojn de la aranĝo de la paĝoj en la TTT-ejo de Bertilo.</p><div class="elektilo"><label><input type="checkbox" name="flankmenuo" value="1"/> Uzi flankmenuon (en paĝoj kun menuo)</label></div><div class="elektilo"><label><input type="checkbox" name="tiparoj" value="1"/> Uzi specialajn tiparojn</label></div><div><button>Fermi</button></div><small>La elektoj estos daŭre konservataj nur se kuketoj funkcias en via TTT-legilo.</small></div></div>').appendTo('body');
				var inputs = div.find('input');
				$(inputs).each( function() {
					var litero = this.name.substring(0, 1);
					if ($(html).hasClass(this.name)) {
						this.checked = true;
					} else {
						this.checked = false;
					}
					$(this).bind('change', function() {
						if (this.checked) {
							$(html).addClass(this.name);
							agordoj[litero] = 1;
						} else {
							$(html).removeClass(this.name);
							agordoj[litero] = 0;
						}
						KonserviAgordojn();
					});
				});
				var button = div.find('button')[0];
				if (button) {
					$(button).bind('click', function() {
						$(agordilo).removeClass('malfermita');
						$(button).unbind('click');
						$(div).remove();
					});
				}
				this.blur();
				return false;
			});
		}
	}
});

