var curHash = document.location.hash;
var tabs = new Object();
var pages = [];
var mapCon = new Object();

function showPage(pages_id, page) {
	var list = $(pages_id + '-list');
	if (list) {
		list.innerHTML = '<img class="ajax-loader" src="/img/ajax-loader-small.gif" alt="Loading..." />';
		new Ajax.Updater(list.id, '/svc.php', {
			parameters: {
				action: 'page_get_list',
				main_id: pages_id,
				pos: page
			}
		});
	}
	var content = $(pages_id + '-content');
	content.innerHTML = '<div class="ajax-loader"><img class="ajax-loader" src="/img/ajax-loader.gif" alt="Loading..." /></div>';
	new Ajax.Updater(content.id, '/svc.php', {
		parameters: {
			action: 'page_get_content',
			main_id: pages_id,
			pos: page
		}
	});
}

function updatePage(pages_id) {
	var page = 1;
	var id = '';
	if (document.location.hash != '') {
		var hs = document.location.hash.substring(1);
		id = hs.substring(0, hs.lastIndexOf('-'));
		if (id == pages_id) {
			page = hs.substring(hs.lastIndexOf('-') + 1);
		}
	}
	var content = $(pages_id + '-content');
	if (id == pages_id || (content != null && content.innerHTML == '')) {
		showPage(pages_id, page);
	}
}

function setHitsLang(pages_id, lang) {
	new Ajax.Request('/svc.php', {
		parameters: {
			action: 'set_hits_lang',
			lang: lang
		},
		onSuccess: function(transport){
			document.location.reload(true);
		}
	});
}

function setTopMusicLang(lang) {
	new Ajax.Request('/svc.php', {
		parameters: {
			action: 'set_top_music_lang',
			lang: lang
		},
		onSuccess: function(transport){
			document.location.reload(true);
		}
	});
}

function checkTab(unique) {
	if (document.location.hash != '' && tabs[unique] != null) {
		var newTab = $(unique + '_tab_' + document.location.hash.substring(1));
		if (newTab != null && tabs[unique] != newTab) {
			tabs[unique].activeTab.removeClassName('active');
			tabs[unique].activeTab = newTab;
			tabs[unique].activeTab.addClassName('active');
			tabs[unique].activeCnt.removeClassName('active');
			tabs[unique].activeCnt = $(unique + '_cnt_' + document.location.hash.substring(1));
			tabs[unique].activeCnt.addClassName('active');
		}
	}
}

function showTab(anchor, parent, content) {
	anchor = $(anchor);
	parent = $(parent);
	content = $(content);
	anchor.blur();
	if (anchor.hasClassName('active')) {
		return;
	}
	if (!parent) {
		parent = anchor.up('.tabs');
	}
	parent.down('.active').removeClassName('active');
	anchor.addClassName('active');
	parent.down('.content>.active').removeClassName('active');
	content.addClassName('active');
}

function stateChanged(elem, id, no_mat) {
	var val = elem.options[elem.selectedIndex].value;
	new Ajax.Request('/svc.php', {
		parameters: {
			action: 'get_regions',
			state: val,
			no_matter: no_mat
		},
		onSuccess: function(transport){
			var select = $(id);
			while (select.selectedIndex >= 0) {
				select.remove(select.selectedIndex);
			}
			var options = transport.responseXML.documentElement.getElementsByTagName('option');
			for (i=0; i<options.length; i++) {
				var opt = options[i];
				var o = document.createElement('option');
				o.value = opt.attributes[0].nodeValue;
				o.text = opt.childNodes[0].nodeValue;
				if (Prototype.Browser.IE) {
					select.add(o);
				} else {
					select.add(o, null);
				}
			}
		}
	});
}

function checkName(type) {
	var val = $(type + '_id').value;
	if (val == '') {
		$(type + '_free').hide();
		$(type + '_exists').hide();
		return;
	}
	new Ajax.Request('/svc.php', {
		postBody: 'action=check_username&username=' + encodeURIComponent(val),
		onSuccess: function(transport) {
			$(type + '_free').hide();
			$(type + '_exists').hide();
			if (transport.responseText == '1') {
				$(type + '_free').show();
			} else {
				$(type + '_exists').show();
			}
		}
	});
}

function lostPassword() {
	$('lostpwd_ok').hide();
	$('lostpwd_fail').hide();
	$('lostpwd_activate_first').hide();
	new Ajax.Request('/svc.php', {
		postBody: 'action=lost_password&username=' + encodeURIComponent($('uname').value) + '&email=' + encodeURIComponent($('email').value),
		onSuccess: function(transport) {
			if (transport.responseText == '1') {
				$('lostpwd_ok').show();
			} else if (transport.responseText == '0') {
				$('lostpwd_fail').show();
			} else if (transport.responseText == '2') {
				$('lostpwd_activate_first').show();
			}
		}
	});
}

function addBookmark(site) {
	site = (site == '' ? window.location : site);
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(document.title, site, '');
	} else if(window.external) { // IE Favorite
		window.external.AddFavorite(site, document.title);
	} else if(window.opera && window.print) { // Opera Hotlist
		return true;
	}
}

function openRadio(command, zone) {
	var wnd = window.open('/radio.php?zone=' + zone + (command != '' ? '&action=' + command : ''), 'MKMBRadio', 'menubar=0,toolbar=0,location=0,status=0,resizable=0,scrollbars=0,width=548,height=335');
}

function openHelpWH(helpText, w, h) {
	var wnd = window.open('', 'MKMBHelp', 'menubar=0,toolbar=0,location=0,status=0,resizable=0,scrollbars=0,width=' + w + ',height=' + h);
	wnd.document.open();
	wnd.document.write('<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' +
		'<html xmlns="http://www.w3.org/1999/xhtml"><head><title>MKMB Pomoc</title></head><body style="margin: 5px; padding: 0px; font: 11px Arial, Verdana, sans-serif;">' + helpText + '</body></html>');
	wnd.document.close();
}

function openHelp(helpText) {
	openHelpWH(helpText, 250, 200);
}

function toggleConcerts(link, add) {
	link.blur();
	if (add) {
		$('add-concert-link').hide();
		$(link).up('.pages').down('.list').hide();
		$(link).up('.pages').down('.content').hide();
		$('add-concert').show();
	} else {
		$('add-concert').hide();
		$(link).up('.pages').down('.list').show();
		$(link).up('.pages').down('.content').show();
		$('add-concert-link').show();
	}
}

function copyConcert(where, id, bandname, place, concert_date, region, town, bands, tickets, header, save) {
	where = $(where);
	where.down('#add-concert-title').innerHTML = header;
	if (bandname != null) {
		where.down('#add-concert-bandname').value = bandname;
		$('row-bandname').show();
	} else {
		$('row-bandname').hide();
	}
	where.down('#add-concert-place').value = place;
	where.down('#add-concert-date').value = concert_date;
	selectTag = where.down('#add-concert-region');
	for (i=0; i<selectTag.length; i++) {
		if (selectTag.options[i].text == region) {
			selectTag.options[i].selected=true;
			break;
		}
    }
	where.down('#add-concert-town').value = town;
	where.down('#add-concert-bands').value = bands;
	where.down('#add-concert-tickets').value = tickets;
	where.down('#add-concert-btn').value = save;
	where.down('#add-concert-id').value = id;
}

function resetConcert(where, header, add) {
	where = $(where);
	where.down('#add-concert-title').innerHTML = header;
	where.down('#add-concert-bandname').value = '';
	$('row-bandname').show();
	where.down('#add-concert-place').value = '';
	where.down('#add-concert-date').value = '';
	selectTag = where.down('#add-concert-region');
	for (i=0; i<selectTag.length; i++) {
		if (selectTag.options[i].selected) {
			selectTag.options[i].selected=false;
		}
    }
	where.down('#add-concert-town').value = '';
	where.down('#add-concert-bands').value = '';
	where.down('#add-concert-tickets').value = '';
	where.down('#add-concert-btn').value = add;
	where.down('#add-concert-id').value = '0';
}

function nextTip() {
	new Ajax.Request('/svc.php', {
		parameters: {
			action: 'get_tip'
		},
		onSuccess: function(transport) {
			$('tip-of-the-day').innerHTML = transport.responseText;
		}
	});
}

function nextMusicNews(zoneName) {
	new Ajax.Request('/svc.php', {
		parameters: {
			action: 'get_news',
			zone: zoneName
		},
		onSuccess: function(transport) {
			$('music-news-current').innerHTML = transport.responseText;
		}
	});
}

function stayUpToDate() {
	setInterval('stayUpToDateInternal();', 250);
}

function stayUpToDateInternal() {
	if (curHash != document.location.hash) {
		curHash = document.location.hash;
		for (id in tabs) {
			if (id.startsWith('id_')) {
				checkTab(id);
			}
		}
		for (var i = 0; i < pages.length; i++) {
			updatePage(pages[i]);
		}
	}
}

// using when autologging
function forumLogin(id, pwd) {
	new Ajax.Request('/forum_login.php', {
		parameters: {
			userid: id,
			password: pwd
		}
	});
}

// using with real-time logging
function sendForumLoginForm() {
	var frame = $('forum_login_frame');
	frame.contentDocument.getElementById('forum_login_nick').value = $('username').value;
	frame.contentDocument.getElementById('forum_login_pwd').value = $('login_pwd').value;
	frame.contentDocument.getElementById('forum_login_form').submit();
	
	// this will buy som time, till forum will login
	// on my PC it takes cca 1 second
	var dummy = new String('asdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasd');
	for (i = 0; i < 300000; i++) {
		dummy2 = dummy.indexOf('asdf');
	}
}

function exBandChange(select) {
	$('ch_ex').checked = true;
	$('ch_new').checked = false;
	var val = $(select).value;
	new Ajax.Request('/svc.php', {
		parameters: {
			action: 'get_extern_band_info',
			id: val
		},
		onSuccess: function(transport) {
			var parts = transport.responseText.split('|', 2);
			$('genre_id').innerHTML = parts[0];
			$('url_id').innerHTML = '<a href="' + parts[1] + '" target="_blank">' + parts[1] + '</a>';
		}
	});
}

function inputFocus(id, word) {
	id = $(id);
	if (id.value == word) {
		id.value = '';
	}
}

function inputBlur(id, word) {
	id = $(id);
	if (id.value == '') {
		id.value = word;
	}
}

function inputSubmit(form) {
	form = $(form);
	for (i=0; i<form.length; i++) {
		elem = form.elements[i];
		if (elem.onfocus != undefined) {
			elem.onfocus();
		}
	}
}

function nextMediaSupport(zoneName) {
	new Ajax.Request('/svc.php', {
		parameters: {
			action: 'get_support',
			zone: zoneName
		},
		onSuccess: function(transport) {
			$('media-support-id').innerHTML = transport.responseText;
		}
	});
}

function initMCE(stylesheet) {
	tinyMCE.init({
		mode: "textareas",
		editor_selector : "mceEditor",
		theme: "advanced",
		plugins: "paste",
		debug: false,

		encoding: "xml",
		entity_encoding : "numeric",
		invalid_elements : "script,meta,link,body,html,head",

		theme_advanced_blockformats: "p,h2,h3,h4",
		theme_advanced_buttons1: "formatselect,separator,bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,undo,redo,image",
		theme_advanced_buttons2: "",
		theme_advanced_buttons3: "",
		theme_advanced_buttons4: "",
		theme_advanced_toolbar_location: "top",
		theme_advanced_toolbar_align: "left",
		theme_advanced_path_location : "bottom",
		theme_advanced_resizing : false,

		remove_linebreaks: true,
		remove_trailing_nbsp: true,
		relative_urls: false,
		content_css : stylesheet,

		paste_use_dialog: false,
		paste_auto_cleanup_on_paste: true,
		paste_convert_headers_to_strong: false,
		paste_strip_class_attributes: "all",
		paste_remove_spans: true,
		paste_remove_styles: true
	});
}
