var ajax_call_url_prefix = './';
var ajax_on_destroy = null;

function debug(text) {
	$('div_debug').innerHTML = $('div_debug').innerHTML + text + '<br>';
}

/*
	SORTABLE
*/
function readyClick(event) {
	var div = $('div_timeorder');
	var divs = '';
	for (var i = 0; i < div.childNodes.length; i++) {
		if (div.childNodes[i].tagName.toLowerCase() == 'div') {
			divs = divs + div.childNodes[i].id.substring(2) + ',';
		}
	}
	new Ajax.Request(
		ajax_call_url_prefix + 'check.php',
		{
			method: 'get',
			parameters: 'order=' + divs.substring(0, divs.length-1),
			onComplete: ajaxCheck
		}
	);
	Sortable.destroy('div_timeorder');
	Event.element(event).disabled = true;
}

function ajaxCheck(originalRequest) {
	var good_order = JSON.parse(originalRequest.responseText); 
	var div_goodorder = $('div_goodorder');
	for (var i = 0; i < good_order.length; i++) {
		var div = $('p_' + good_order[i].famous_people_id);
		if (good_order[i].is_good) {
			Element.addClassName(div, 'good');
		}
		else {
			Element.addClassName(div, 'bad');
		}
		
		
		new_div = div.cloneNode(true);
		div_goodorder.appendChild(new_div);
		new Insertion.Bottom(new_div, '<br/>' + good_order[i].birth + ' - ' + good_order[i].died);
	}
	
	$('div_goodorder_container').style.display = 'block';
}

/*
	DOUBLE COMBO
*/
function clearOptions(select) {
	//this works for IE but not for FFX
	select.options.innerHTML = '';

	if (select.options.length > 0) {
		//this works for FFX but not for IE
		while(select.options.length > 0) {
			select.remove(0);
		}
	}
}

function addOption(select, text, value, selected) {
	var new_option = document.createElement('option');
	new_option.text = text;
	new_option.value = value;

	
	try {
		select.add(new_option, null); // standards compliant; doesn't work in IE
	}
	catch (e) {
		select.add(new_option); // IE only
	}

}

function setOption(select, id) {
	try {
		select[id].selected = true;
	}
	catch (e) {
		select[id].selected = true;
	}
}

function populateCities() {
	var sel_county = $('sel_county');
	if (sel_county.value == 0) {
		var varos_id = $('varos_id');
		clearOptions(varos_id);
		addOption(varos_id, '- Mind -', 0);
		varos_id.disabled = true;
	}
	else {
		var varos_id = $('varos_id');
		clearOptions(varos_id);
		addOption(varos_id, 'Letöltés folyamatban ...', 0);
		varos_id.disabled = true;
		new Ajax.Request(
			ajax_call_url_prefix + 'showcities.php',
			{
				method: 'get',
				parameters: 'county=' + sel_county.value,
				onComplete: ajaxAddCities
			}
		);
	}
}

function populateCitiesInit(cityid) {
	var sel_county = $('sel_county');
	if (sel_county.value == 0) {
		var varos_id = $('varos_id');
		clearOptions(varos_id);
		addOption(varos_id, '- Mind -', 0);
		varos_id.disabled = true;
	}
	else {
		var varos_id = $('varos_id');
		clearOptions(varos_id);
		addOption(varos_id, 'Letöltés folyamatban ...', 0);
		varos_id.disabled = true;
		new Ajax.Request(
			ajax_call_url_prefix + 'showcities.php',
			{
				method: 'get',
				parameters: 'county=' + sel_county.value + '&cityid=' + cityid,
				onComplete: ajaxAddCities
			}
		);
	}
}


function ajaxAddCities(originalRequest) {
	var varos_id = $('varos_id');
	var cityid = 0;
	clearOptions(varos_id);
	var cities = JSON.parse(originalRequest.responseText); 
	addOption(varos_id, '- Mind -', '0');
	for (var i = 0; i < cities.length; i++) {
		if(cities[i].city_id>100000) {
			cityid = cities[i].city_id-100000;
			addOption(varos_id, cities[i].name, cityid, 'true');
		}
		else addOption(varos_id, cities[i].name, cities[i].city_id);
	}
	if(cityid!=0)
	{
		for (var i=0; (i < varos_id.length); i++) {

            if (varos_id.options[i].value == cityid) {

                found = true;
                 varos_id.options[i].selected = true;
            }
        }
  }
	varos_id.disabled = false;
  
}

function initcombos(countyid, cityid) {
	var sel_county = $('sel_county');
	setOption(sel_county,countyid);
	populateCitiesInit(cityid);
} 

/*
	AJAX HINT
*/

var hint_ajax_request = null;
var hinted_object = null;
var hint_timer = null;

function cancelRequest() {
	if (hint_ajax_request) {
		hint_ajax_request.transport.abort();
		hint_ajax_request = null;
	}
	
}

function getHint(e) {
	element = Event.element(e);
	if (element.tagName.toLowerCase() != 'a') {
		return;
	}
	cancelRequest();
	hinted_object = element;
	hinted_object.style.cursor = 'wait';
	if (hint_timer) {
		clearTimeout(hint_timer);
	}
	hint_timer = setTimeout(timerGetHint, 500);
}

function timerGetHint() {
	if (! hinted_object) {
		return;
	}
	
	hint_ajax_request = new Ajax.Request(
		ajax_call_url_prefix + 'gethint.php',
		{
			method: 'get',
			parameters: 'id=' + hinted_object.id.substring(3),
			onComplete: ajaxGetHint
		}
	);
}

function hideHint(e) {
	element = Event.element(e);
	if (element.tagName.toLowerCase() != 'a') {
		return;
	}
	cancelRequest();
	hinted_object.style.cursor = '';
	hinted_object = null;
	var div_hint = $('div_hint');
	div_hint.style.display = 'none';
	
}

function ajaxGetHint(originalRequest) {
	var div_hint = $('div_hint');
	div_hint.innerHTML = originalRequest.responseText;
	var pos = Position.cumulativeOffset(hinted_object);
	div_hint.style.left = pos[0] + 'px';
	div_hint.style.top = (pos[1] + hinted_object.offsetHeight) + 'px';
	div_hint.style.display = 'block';
	hinted_object.style.cursor = '';
}

/*
	CHAT
*/

var last_message_id = -1;
var simple_chat_timer = null;
var simple_chat_ajax_request = null;

function sendMessage() {
	new Ajax.Request(
		ajax_call_url_prefix + 'addmessage.php',
		{
			method: 'post',
			parameters: 'nick_name=' + $('nick_name').value + '&message=' + $('inp_message').value,
			onComplete: ajaxMessageAdded
		}
	);
	$('inp_message').value = '';
	$('inp_message').focus();
	checkSend();
}

function ajaxMessageAdded(originalRequest) {
	doNothing();
}

function doNothing() {}

function getMessages() {
	$('img_chat_updating').style.visibility = 'visible';
	simple_chat_ajax_request = new Ajax.Request(
		ajax_call_url_prefix + 'getmessages.php',
		{
			method: 'get',
			parameters: 'lmid=' + last_message_id,
			onComplete: ajaxGetMessages
		}
	);	
	simple_chat_timer = setTimeout(getMessages, 3000);
	simple_chat_ajax_request = null;
}
function ajaxGetMessages(originalRequest) {
	$('img_chat_updating').style.visibility = 'hidden';
	var req = JSON.parse(originalRequest.responseText); 
	
	last_message_id = req.last_id;
	var div_messages = $('div_messages');
	var last_message = null;

	
	for (var i = 0; i < req.messages.length; i++) {
		div = document.createElement('div');
		div.innerHTML = 
			'<strong>' +
			req.messages[i].nick_name +
			'</strong> (' +
			req.messages[i].message_time + 
			') <br/>' +
			req.messages[i].message;
			
		div_messages.appendChild(div);
		last_message = div;
	}
	
	if (last_message) {
		div_messages.scrollTo(0, last_message.offsetHeight + lastMessage.offsetTop);
	}
}

function checkSend() {
	$('btn_send').disabled = $('nick_name').value == '' || $('inp_message').value == '';
}

function keyPressMessage(e) {
	if (e.keyCode == Event.KEY_RETURN) {
		sendMessage();
	}
}

function destroySimpleChat() {
	if (simple_chat_timer) {
		clearTimeout(simple_chat_timer);
		simple_chat_timer = null;
	}
	if (simple_chat_ajax_request) {
		simple_chat_ajax_request.abort();
	}
}
