/**
 * @author David Rogozan <ferenczy@volny.cz>
 * @require prototype.js, scriptaculous.js
 */


function SavePostcardMessage() {
	var url = AjaxUrl + '&postcard=' + $('message').getValue() + '&add_program=' + ($('add_prog').getValue() == 'on' ? 1 : 0);
	new Ajax.Request( url, {
		method: 'post'
	});

	return false;
}

function myProgram( id ) {
	showAjaxLoader(id);
	var url = AjaxUrl + '&show_id=' + id;
	 // alert(url);
	new Ajax.Request( url, {
		method: 'post',
		onSuccess: loadRemoteResponse.bind(),
		//onLoading: showAjaxLoader(),
		onComplete: hideAjaxLoader(id)
	});
}


function loadRemoteResponse( transport ) {
	var json = transport.responseText.evalJSON( true );
	if( typeof( json ) == 'object' ) {
		var data = json['entries'];
	}

	var elem = $('button_prog_' + data[0]['id']);

	switch (data[0]['status']) {
		case '0':
			elem.removeClassName('active');
			elem.onClick = 'myProgramAdd(' + data[0]['id'] + '); return false';
			elem.update(Lang == 'cs' ? 'Přidat do mého programu' : 'Add to my program');
			updateMyProgramCounter(data[0]['count']);
			break;

		case '1':
			elem.addClassName('active');
			elem.onClick = 'myProgramRemove(' + data[0]['id'] + '); return false';
			elem.update(Lang == 'cs' ? 'Odstranit z mého programu' : 'Remove from my program');
			updateMyProgramCounter(data[0]['count']);
			break;

		default:
			alert('Došlo k chybě. Zkuste to prosím později.');
	} // switch
} // loadRemoteResponse()


function showAjaxLoader(id) {
	$('ajax_loader_' + id).toggle();
	$('button_prog_' + id).toggle();
} // function showAjaxLoader()


function hideAjaxLoader(id) {
	setTimeout('hideAjaxLoaderNow(' + id + ')', 500);
}

function hideAjaxLoaderNow(id) {
	$('button_prog_' + id).toggle();
	$('ajax_loader_' + id).toggle();
} // function hideAjaxLoaderNow()


function myProgramRemove( id ) {
	showAjaxLoader(id);
	var url = AjaxUrl + '&show_id=' + id;
	 // alert(url);
	new Ajax.Request( url, {
		method: 'post',
		onSuccess: loadRemoveRemoteResponse.bind(),
		onComplete: hideAjaxLoader(id)
	});
} // function myProgramRemove()


function loadRemoveRemoteResponse( transport ) {
	var json = transport.responseText.evalJSON( true );
	if( typeof( json ) == 'object' ) {
		var data = json['entries'];
	}
	else {
		return false;
	}

	updateMyProgramCounter(data[0]['count']);
	var elem = $('my_program_item_' + data[0]['id']);
	elem.remove();

	if (data[0]['empty_day']) {
		$('my_program_day_' + data[0]['empty_day']).remove();
	}
	if (data[0]['empty'] == '1') {
		$('myprog_list').replace(data[0]['empty_msg']);
	}
} // loadRemoveRemoteResponse()

function updateMyProgramCounter(count) {
	$('myprogram_counter').update(count);
} // function updateMyProgramCounter()
