var ajax = new sack();

// --------------------------------------------------
// AJAX EXECUTE/LOADING/COMPLETE/ETC ----------------
function gExecuteAJAX (file, vars, wCompleted) {
	gIVW_ajax ();

	if (wCompleted == undefined) wCompleted = "whenCompleted";

	ajax.setVar ("var", "data");
	ajax.requestFile = file;
	ajax.method = "POST";
	ajax.element = 'waiting';
	ajax.onLoading = whenLoading;
	ajax.onLoaded = whenLoaded;
	ajax.onInteractive = whenInteractive;
	ajax.onCompletion = eval (wCompleted);
	ajax.runAJAX(vars);
	
//	TESTS
//	whenLoading ();
//	var set_int = window.setInterval (function () { ajax.runAJAX (vars); clearInterval (set_int); }, 2500);
}

function whenLoading () { overlay_show (); }
function whenLoaded () { }		// data sent
function whenInteractive () { }	// getting data
function whenCompleted () {
	if ($('waiting').innerHTML.indexOf ("OK") != -1) {
		refresh_data ($('OK').title);
		$('waiting').style.backgroundImage = 'url(images/icon_alert2.gif)';
	} 
	else if ($('waiting').innerHTML.indexOf ("ALLRDY_RATED") != -1) {
		var id = $('ALLRDY_RATED').title;
		$('info_' + id).className = 'allrdy_rated';
		$('waiting').style.backgroundImage = 'url(images/icon_alert.gif)';
	}
	else if ($('waiting').innerHTML.indexOf ("OWN_SPRUCH") != -1) {
		var id = $('OWN_SPRUCH').title;
		$('info_' + id).className = 'allrdy_rated';
		$('ownspr_' + id).innerHTML = 'Eigener Spruch';
		$('waiting').style.backgroundImage = 'url(images/icon_alert.gif)';
	}
	else $('waiting').style.backgroundImage = 'url(images/loading.gif)';


	var set_int = window.setInterval (function () {
		overlay_hide ();
		clearInterval (set_int);
	}, 3500);
}

// --------------------------------------------------
// RATING -------------------------------------------
function rate (el, div_id, spruch_id, new_rating) {
	el.blur ();
	rate_state = 'allrdy_rated';

	var div_id		= "div_id=" + div_id;
	var spruch_id 	= "&spruch_id=" + spruch_id;
	var new_rating	= "&new_rating=" + new_rating;
	var vars = div_id + spruch_id + new_rating;

	change_section = false;
	gExecuteAJAX ("includes/sprueche_rate.php", vars);
}
// --------------------------------------------------
// REFRESH DATA (after voting) ----------------------
function refresh_data (ids) {	
	var rings = 0;
	var data = ids.split ('_');

	if (data[1].indexOf ('.') == -1) rings = Number (data[1]);
	else {
		var ganz = Number (data[1].substr (0, data[1].indexOf ('.')));
		var rest = Number (data[1]) - ganz;
		rest = rest < 0.5 ? 0 : 0.5;
		rings = ganz + rest;
	}

	var votes = Number ($('votes_' + data[0]).innerHTML);
	$('votes_' + data[0]).innerHTML = ++votes;
	$('spruch_' + data[0]).style.backgroundImage = 'url(images/rating/ring_' + rings + '.gif)';
	$('info_' + data[0]).className = 'allrdy_rated';
}
// --------------------------------------------------
// SHOW/HIDE 'BEWERTUNGS'-LABELS --------------------
var rate_state = 'not_rated';

function showLabel (id, label_id) {
	if (!isOverlay) {
		var labels = new Array ({txt:'zum Einschlafen', mt:7}, {txt:'Notnagel', mt:12}, {txt:'gar nicht schlecht', mt:7}, {txt:'Voll aus<br />dem Leben', mt:7}, {txt:'Oberknaller', mt:12});
		
		rate_state = $('info_' + id).className;
		
		$('info_' + id).innerHTML = labels[label_id - 1]['txt'];
		$('info_' + id).style.marginTop = labels[label_id - 1]['mt'] + 'px';
		$('info_' + id).className = 'not_rated';
	}
}
function hideLabel (id) {
	$('info_' + id).innerHTML = 'Bewerten';
	$('info_' + id).style.marginTop = '12px';
	$('info_' + id).className = rate_state;
}
// --------------------------------------------------
// --------------------------------------------------
// --------------------------------------------------
// OVERLAY (init) -----------------------------------
function overlay_init () {
	$('content').innerHTML = '<div id="overlay"></div><div id="waiting"></div>' + $('content').innerHTML;
	Element.hide ('overlay');
	Element.hide ('waiting');

	$('waiting').innerHTML = '<p>Bitte warten...</p>';
}
// --------------------------------------------------
// OVERLAY (hide) -----------------------------------
var isOverlay = false;

function overlay_hide () {
	Element.hide ('overlay');
	Element.hide ('waiting');
	
	$('waiting').style.backgroundImage = 'url(images/loading.gif)';
	$('waiting').innerHTML = '<p>Bitte warten...</p>';
	
	isOverlay = false;
}
// OVERLAY (show) -----------------------------------
function overlay_show () {
	isOverlay = true;
	$('overlay').style.height = $('content').offsetHeight + 'px';
	new Effect.Appear ('overlay', {to:0.6, duration:0});
	Element.show ('waiting')
	
	var arrayPageSize = getPageSize ();
	var arrayPageScroll = getPageScroll ();
	var waitingTop = arrayPageScroll[1] + (arrayPageSize[3] / 8);
	$('waiting').style.marginTop = waitingTop + 'px';
}
// --------------------------------------------------
// SHOW REPORT - MISSBRAUCH MELDEN ------------------
function reportWin_show (spruch_id) {
	gIVW_ajax ();

	$('content').innerHTML = 	'<div id="report_box_outer">' +
									'<div id="report_box">' +
										'<h3>Dieser Spruch ist unangemessen!</h3>' +
										'<a id="x_btn" href="javascript:reportWin_hide()"><img src="images/sprueche/x_btn.gif" alt="Fenster schlie&szlig;en" /></a>' +
										'<div id="rta_box"><textarea id="report" name="report" rows="3" cols="10">Ich melde diesen Spruch, weil...</textarea></div>' +
										'<a id="send_btn" href="javascript:sendReport('+spruch_id+')"><img src="images/sprueche/spruch-melden_btn.gif" alt="Spruch melden" /></a>' +
									'</div>' +
								'</div>' +  $('content').innerHTML;

	$('overlay').style.height = $('content').offsetHeight + 'px';
	new Effect.Appear ('overlay', {to:0.6, duration:0});
	Element.show ('report_box_outer');
	
	var arrayPageSize = getPageSize ();
	var arrayPageScroll = getPageScroll ();
	var box_top = arrayPageScroll[1] + (arrayPageSize[3] / 20);
	$('report_box_outer').style.marginTop = box_top + 'px';
}
// --------------------------------------------------
// HIDE REPORT - MISSBRAUCH MELDEN ------------------
function reportWin_hide () {
	Element.hide ('overlay');
	Element.hide ('report_box_outer');
}
// --------------------------------------------------
// SEND REPORT - MISSBRAUCH MELDEN ------------------
function sendReport (spruch_id) {
	gIVW_ajax ();

	if ($('report').value != '' && $('report').value != 'Ich melde diesen Spruch, weil...') {
		reportWin_hide ();
		overlay_show ();
	
		var spruch_id 	= "spruch_id=" + spruch_id;
		var msg			= "&msg=" + $('report').value;
		var vars = spruch_id + msg;
	
		change_section = false;
		gExecuteAJAX ("includes/report_send.php", vars, 'report_whenCompleted');
	}
}

function report_whenCompleted () {
	$('waiting').style.backgroundImage = 'url(images/icon_alert2.gif)';

	var set_int = window.setInterval (function () {
		overlay_hide ();
		clearInterval (set_int);
	}, 4500);
}
// --------------------------------------------------

