/**
 * Überblog-specific javascript
 */

/**
 * Komment textarea ellenőrzése beküldéskor. 
 * Return true esetén a form elküldődik, return false esetén nem.
 */
function commentFormCheckOnSubmit() {
	if (document.getElementById('szoveg').value.length == 0) {
		document.getElementById('alertSpacer').innerHTML = 'Nem ártana írni valamit&hellip;';
		return false;
	}
	else if (document.getElementById('szoveg').value.length > 4500) {
		document.getElementById('alertSpacer').innerHTML = 'Hozzászólásod max. 4500 karakteres lehet. A tiéd ' + document.getElementById('szoveg').value.length + ' karakter. Fogd rövidebbre.';
		return false;
	}
	else if (document.getElementById('vendeg_nev').value.length == 0 &&
		document.getElementById('quick_username').value.length == 0 &&
		document.getElementById('quick_pw').value.length == 0) {
		document.getElementById('alertSpacer').innerHTML = 'Neved?';
		return false;
	}
	else {
		document.getElementById('alertSpacer').innerHTML = 'Feldolgozás&hellip;';
		return true;
	}
}

/**
 * Stuff a kommentoldalon a kommentek közti ugráláshoz
 */
var backlink = document.createElement("a");
var backlink2 = document.createTextNode("Hol is tartottam?");
backlink.appendChild(backlink2);
	
function hivatkozas(hova, honnan) {
	backlink.href = "javascript: backlink.parentNode.removeChild(backlink.parentNode.lastChild); document.location = '#" + honnan + "'; document.refresh;";
	document.getElementById(hova).appendChild(backlink);
}

/**
 * Komment spam filter
 * Három input mező: az első kettő szorzata a harmadik. A getkomment.php megnézi hogy stimmelnek-e a számok.
 * Ha a spammer nem tud javascriptet futtatni, akkor bukta.
 */
function spamFilter() {
	var a = Math.floor(Math.random()*1000) + 1; // +1 hogy ne lehessen 0
	var b = Math.floor(Math.random()*1000) + 1;
	var c = a*b;
	
	var randa = document.createElement("input");
	var randb = document.createElement("input");
	var randc = document.createElement("input");
	
	randa.setAttribute("name", "randa");
	randb.setAttribute("name", "randb");
	randc.setAttribute("name", "randc");
	
	randa.setAttribute("type", "hidden");
	randb.setAttribute("type", "hidden");
	randc.setAttribute("type", "hidden");

	randa.setAttribute("value", a);
	randb.setAttribute("value", b);
	randc.setAttribute("value", c);
	
	document.getElementById("kommentform").appendChild(randa);
	document.getElementById("kommentform").appendChild(randb);
	document.getElementById("kommentform").appendChild(randc);
	
}

/* statgep.hu kod */
function statgep() {
	var statmachine_w = screen.width; var statmachine_h = screen.height; var statmachine_bp = screen.colorDepth;
		var statmachine_ref = encodeURIComponent ? encodeURIComponent(document.referrer) : escape(document.referrer);
		var statmachine_param = "?sw=" + statmachine_w + "&sh=" + statmachine_h + "&ref=" + statmachine_ref + "&bpp=" + statmachine_bp;
		
		document.write("<img src=\"http://statgep.hu/stat/haszprusuberblog/log.sx" + statmachine_param + "\" />");
}



/* komment valaszlink */
function valasz(sorszam, k_id) {
	$('kommentform').scrollTo();
	$('szoveg').value += '#' + sorszam + ', ';
	setFocus('szoveg');
	$('k' + k_id).addClassName('foranswer');
//	document.refresh;
}

/**
 * keresesi opciok megmutatasa
 */
var search_options_hidden = true;
function show_search_options() {
	if (search_options_hidden) {
		search_options_hidden = false;
		$j('#search_options').show('slow');
		$j('#blog_search_close2').show();
		/*
		setClass(document.getElementById('search_options'), 'displayblock opacity0'); 
		opacity('search_options', 0, 100, 500);
		setClass(document.getElementById('blog_search_close2'), 'displayinline opacity0'); 
		opacity('blog_search_close2', 0, 100, 500);
		*/
	}
}

function hide_search_options() {
	if (! search_options_hidden) {
		search_options_hidden = true;
		$j('#search_options').hide('slow');
		$j('#blog_search_close2').hide();
		/*
		setClass(document.getElementById('search_options'), 'displaynone opacity0');
		opacity('search_options', 100, 0, 1);
		setClass(document.getElementById('blog_search_close2'), 'displaynone opacity0'); 
		opacity('blog_search_close2', 100, 0, 1);
		*/
	}
}

/**
 * bejelentkezesi opciok megmutatasa
 */
var login_options_hidden = true;
function show_login_options() {
	if (login_options_hidden) {
		login_options_hidden = false;
		setClass(document.getElementById('login_options'), 'displayblock opacity0');
		opacity('login_options', 0, 100, 500);
	}
}

/**
 * rss menu megmutatasa
 */
var menu_rss_hidden = true;
function show_menu_rss() {
	if (menu_rss_hidden) {
		menu_rss_hidden = false;
		setClass(document.getElementById('rss_box'), 'box displayblock opacity0');
		opacity('rss_box', 0, 100, 150);
	}
}



/**
 * blog ajax search
 * requires: prototype.js
 */

var blogSearchTimer = null;			// varunk kicsit kereses elott
var blogLastSearch = null;			// az utolso keresostring
var blogLastSearchTarget = null;	// miben kerestunk legutobb
var blogOriginalContent = null;		// az eredeti div tartalom amit lecserelt a kereses

function blogSearchComplete() {
	$('blog_search_status').innerHTML = 'Találatok: ' + blogLastSearch + '…';
	opacity('content', 20, 100, 950);
}

function blogSearchRefreshTimeout() {
	if (blogLastSearch != $F('search') && $F('search') != '') {
		if (blogSearchTimer)
			window.clearTimeout(blogSearchTimer);
		blogSearchTimer = window.setTimeout("blogSearchRefresh()", 1250);
	}
}

function blogSearchRefresh() {
	var type; // miben keresunk
	var target; // melyik php vegzi a keresest
	
	if (blogSearchTimer)
		window.clearTimeout(blogSearchTimer);
	
	if ($('search_comments').checked) {
		target = '/search_comments_ajax.php';
		type = 'comments';
	}
	else if ($('search_user').checked) {
		target = '/search_users_ajax.php';
		type = 'users';
	}
	else if ($('search_links').checked) {
		target = '/search_links_ajax.php';
		type = 'links';
	}
	else if ($('search_gallery').checked) {
		target = '/gallery.php';
		type = 'gallery';
	}
	else {
		target = '/search_ajax.php';
		type = 'posts';
	}
	
	if ((blogLastSearch != $F('search') || blogLastSearchTarget != target) && $F('search') != '') {
		if ($F('search').length < 3 && type != 'users') {
			$('blog_search_status').innerHTML = 'A keresés legalább 3 betű…';
		}
		else {
			if (blogLastSearch == null)
				saveOriginalContent();
			
			if (type == 'users' || type == 'links' || $F('search').length > 10 || type == 'gallery')
				opacity('content', 100, 20, 200); // atomgyors animacio
			else if ($F('search').length > 6)
				opacity('content', 100, 20, 400); // gyors animacio
			else
				opacity('content', 100, 20, 850); // lassu animacio
			
			new Ajax.Request(target, {
				method: 'get',
				parameters: { search: $F('search'), ajax: '1' },
				onLoading: function() {
					$('blog_search_status').setStyle({'background': 'url(/pix/sys/loading555555.gif) top right no-repeat'});
				},
				onSuccess: function(transport) {
					$('content').update(transport.responseText);
					$('blog_search_status').setStyle({'background': ''});
					blogSearchComplete();
				}
			});
			blogLastSearch = $F('search');
			blogLastSearchTarget = target;
			$('blog_search_status').innerHTML = 'Keresés: ' + blogLastSearch + '…';
		}
	}
}

function blogSearchExit() {
	if (blogOriginalContent) {
		restoreOriginalContent();
		blogSearchTimer = null;
		blogLastSearch = null;
	}
	if (! search_options_hidden)
		hide_search_options();
}

/**
 * a blog aktualisan megjelenitett tartalmainak elmentese
 */
function saveOriginalContent() {
	blogOriginalContent = $('content').innerHTML;
}

/**
 * blog eredeti tartalmanak visszaallitasa
 */
function restoreOriginalContent() {
	if (blogOriginalContent)
		$('content').innerHTML = blogOriginalContent;
	blogOriginalContent = null;
}

/**
 * a blog tartalmi reszenek lecserelese ajaxszal valami masra
 */
function replaceContent(newURL, animationSpeed) {
	blogOriginalContent = $('content').innerHTML;
	replaceElement('content', newURL, animationSpeed);
	window.location.hash = '#header';
}

/**
 * Adott ID-ju elem lecserelese ujra, animacioval
 * @param eID: az adott html elem id-je
 */
function replaceElement(eID, newURL, animationSpeed) {
	opacity(eID, 100, 20, animationSpeed);
	new Ajax.Updater(
		eID,
		newURL,
		{
			method: 'get',
			onComplete: function() { opacity(eID, 20, 100, animationSpeed) },
			evalScripts: true
		}
	);
}


/**
 * uj link bekuldese a linkbarra
 */
function blogGetLinkbar() {
	opacity('linkbar', 100, 20, 50);
	
	new Ajax.Updater(
		'linkbar',
		'/ajax/getlinkbar_ajax.php',
		{
			method: 'get',
			onComplete: function() { opacity('linkbar', 20, 100, 500) },
			parameters: { lb_url: $F('lb_url'), lb_cim: $F('lb_cim'), lb_szoveg: $F('lb_szoveg') }
		}
	);
	restoreOriginalContent();
}



/**
 * kedvencekbe felvetel vagy onnan torles
 * @param action: set/delete
 */
function blogMark(_key, _id, elementID) {
	var elem = $(elementID);
	
	if (elem.innerHTML == 'Bejegyzés megjelölése')
		action = 'set';
	else
		action = 'delete';
	
	new Ajax.Request('/getmark.php', {
		method: 'get',
		parameters: { key: _key, id: _id, marking: action, ajax: '1' },
		onLoading: function() {
			elem.removeClassName('off');
			elem.removeClassName('on');
			elem.addClassName('loading');
			if (action == 'delete') {
				elem.update('Töröljük a kedvencekből… pill…');
			}
			else {
				elem.update('Felvesszük a kedvencekbe… pill…');
			}
		},
		onSuccess: function(transport) {
			elem.removeClassName('loading');
			if (transport.responseText.match(/success/)) {
				if (action == 'set') {
					elem.addClassName('on');
					elem.update('Megjelölés törlése');
				}
				else {
					elem.addClassName('off');
					elem.update('Bejegyzés megjelölése');
				}
			}
			else
				elem.update(transport.responseText).setStyle({ background: '#a00' });
		}
	});
}



/**
 * user meghivasa egy trusted posthoz
 */
function blogInviteUserToPost() {
	
	new Ajax.Updater(
		'invite_user',
		'/ajax/get_user_invite_to_post.php',
		{
			method: 'get',
			onComplete: function() { },
			insertion: Insertion.Bottom,
			parameters: { invited_user_name: $F('invited_user_name'), b_id: $F('b_id') }
		}
	);
}