/**
 * EZrating
 * main js
 *
 * (c) Timo Besenreuther
 *     EZdesign.de
 *
 * Created:  2009-03-12
 * Modified: 2009-03-12
 */


var contenido;

$(document).ready(function() {
	
	/**
	 * tabs
	 */
	
	var showTab = function(link, tabid) {
		$('#ezrating_box > div').hide();
		$('#'+tabid).show();
		var li = link.blur().parent().parent();
		li.parent().find('li.active').removeClass('active');
		li.addClass('active');
		return false;
	}
	
	$('#ezrating_tab_rate').click(function() {
		showTab($(this), 'ezrating_form');
		return false;
	});
	
	$('#ezrating_tab_view').click(function() {
		showTab($(this), 'ezrating_ratings');
		return false;
	});
	
	$('#ezrating_tab_overall').click(function() {
		showTab($(this), 'ezrating_overall');
		return false;
	});
	
	
	/**
	 * backend
	 */
	
	contenido = $('#ezrating_contenido').val();
	if (typeof(contenido) != 'undefined' && contenido != 'undefined' && contenido != '') {
		ezRatingManipulateRatingPage();
	} else {
		contenido = false;
	}
	
	
	/**
	 * own rating
	 */
	
	$('#ezrating_form div.ezrating_stars_base a').each(function(pi) {
		var i = pi;
		$(this).css('marginLeft', (17*pi)+'px').mouseover(function() {
			var p = $('#ezrating_ownrating_mask');
			if (!p.hasClass('ezrating_locked') && !p.hasClass('ezrating_sent')) {
				p.css('width', ((i+1)*20)+'%');
				$('#ezrating_form').data('ezrating', i+1);
			}
		}).click(function() {
			$(this).blur();
			var p = $('#ezrating_ownrating_mask');
			if (!p.hasClass('ezrating_sent')) {
				p.css('width', ((i+1)*20)+'%').addClass('ezrating_locked');
				$('#ezrating_form').data('ezrating', i+1);
			}
			return false;
		});
	});
	
	
	$('#ezrating_submit').click(function() {
		$('#ezrating_error').remove();
		var postData = {
			idart: $('#ezrating_idart').val(),
			client: $('#ezrating_client').val(),
			lang: $('#ezrating_lang').val(),
			name: $('#ezrating_form_name').val(),
			rating: $('#ezrating_form').data('ezrating'),
			comment: $('#ezrating_form_comment').val()
				.replace(/\n/g, '<br />')
				.replace(/ä/g, '&auml;')
				.replace(/ö/g, '&ouml;')
				.replace(/ü/g, '&uuml;')
				.replace(/Ä/g, '&Auml;')
				.replace(/Ö/g, '&Ouml;')
				.replace(/Ü/g, '&Uuml;')
				.replace(/ß/g, '&szlig;'),
			module: 'ezrating',
			'class': 'ezrating',
			method: 'ajaxRate'
		};
		if (postData.name.length < 2) {
			ezRatingError('Bitte geben Sie Ihren Namen an.');
			return false;
		} else if (typeof(postData.rating) == 'undefined' || postData.rating == 'undefined' || postData.rating == '') {
			ezRatingError('Bitte geben Sie eine Wertung ab. Klicken Sie dazu auf den entsprechenden Stern.');
			return false;
		}
		$(this).attr('disabled', 'disabled');
		$('#ezrating_ownrating_base').addClass('ezrating_sent').find('a').remove();
		// escape texts
		var postName = postData.name;
		postData.name = escape(postData.name);
		var postComment = postData.comment;
		postData.comment = escape(postData.comment);
		$.post('includes/ezajax/ezajax.php', postData, function(data, textStatus) {
			if (textStatus != 'success' || data != 'success') {
				if (data == 'iperror') {
					ezRatingError('Sie haben bereits eine Bewertung für dieses Produkt abgegeben.');
					return false;
				}
				ezRatingError('Leider ist ein Fehler aufgetreten. Versuchen Sie es später erneut.');
			} else {
				// success
				$('#ezrating_rating_tanku').show();
				$('#ezrating_form_name').replaceWith(postName);
				$('#ezrating_form_comment').replaceWith(postComment);
				$('#ezrating_submit').parent().parent().remove();
			}
		}, 'text');
	});
	
	
	
	/**
	 * show all ratings
	 */
	
	$('#ezrating').data('ezrating_page', 0);
	$('#ezrating_showall').click(ezRatingUpdateRatings);
});


/**
 * show ratings
 */

function ezRatingUpdateRatings() {
	var page = $('#ezrating').data('ezrating_page');
	var postData = {
		idart: $('#ezrating_idart').val(),
		client: $('#ezrating_client').val(),
		lang: $('#ezrating_lang').val(),
		'page': page,
		module: 'ezrating',
		'class': 'ezrating',
		method: 'ajaxGetRatings'
	};
	if (contenido != false) {
		postData.contenido = contenido;
	}
	$.post('includes/ezajax/ezajax.php', postData, function(data, textStatus) {
		if (textStatus != 'success') {
			ezRatingError('Leider ist ein Fehler aufgetreten. Versuchen Sie es später erneut.');
		} else {
			// success
			$('#ezrating_ratings').html(data);
			ezRatingManipulateRatingPage();
		}
	}, 'html');
	return false;
}


/**
 * manipulate rating page
 */

function ezRatingManipulateRatingPage() {
	$('#ezrating_prevpage').click(function() {
		// prev page
		var page = parseInt($('#ezrating').data('ezrating_page'));
		if (page == 0) {
			$(this).hide();
		} else {
			$('#ezrating').data('ezrating_page', page-1);
			ezRatingUpdateRatings();
		}
		return false;
	});
	$('#ezrating_nextpage').click(function() {
		// next page
		var page = parseInt($('#ezrating').data('ezrating_page'));
		$('#ezrating').data('ezrating_page', page+1);
		ezRatingUpdateRatings();
		return false;
	});
}


/**
 * errors
 */

function ezRatingError(text) {
	$('#ezrating_error').remove();
	$('#ezrating_form').prepend($(document.createElement('div')).attr('id', 'ezrating_error').html(text));
}


/**
 * admin: delete
 */

function ezRatingDelete(id) {
	var postData = {
		'delete': id,
		idart: $('#ezrating_idart').val(),
		client: $('#ezrating_client').val(),
		lang: $('#ezrating_lang').val(),
		'contenido': contenido,
		module: 'ezrating',
		'class': 'ezrating',
		method: 'ajaxDelete'
	};
	$.post('includes/ezajax/ezajax.php', postData, function(data, textStatus) {
		if (textStatus != 'success' || data != 'success') {
			alert('Es ist ein Fehler aufgetreten, der Datensatz konnte wahrscheinlich nicht gelöscht werden.');
		} else {
			ezRatingUpdateRatings();
		}
	}, 'text');
	return false;
}
