/*
 *
 * Star rating functions
 * GCE-2.6.9
 *
 */

var submitStarRating = function( articleId, userId, rating, element ) {
	try {
		var meta = { userId:userId, articleId:articleId, sectionId:null, publicationId:null };
		QualificationPluginAjax.submitStarRating( meta, rating, 
			{
				callback : function(rating) {
					submitStarRatingCallBack( rating, element );
				},
				exceptionHandler : submitStarRatingException
			}
		);
	} catch( ex ) {
		// JavaScript exception
	}
	return false;
}

var submitStarRatingException = function( errorString, exception ) {
	alert( errorString + "\n" + exception.javaClassName );
}

var submitStarRatingCallBack = function( rating, element ) {
	if ( rating != null ) {
		var currentRating = YAHOO.util.Dom.getPreviousSiblingBy( element.parentNode , 
			function( el ) { 
				if( el.className == "current-rating" ) { 
					return true;
				}
				return false;
			}
		);
		currentRating.style.width = ( rating.totalAverage * 14 ) + "px";
	}
}

/*
 *
 * Favorite functions
 * GCE-2.6.9
 *
 */

var submitFavorite = function( articleId, userId, element ) {
	try {
		
		if(element.tagName.toLowerCase() === "a" && element.className.indexOf("voted") > -1) {
			alert('Sie haben dieses Blog bereits als Favorit markiert.');
		} else {
			var meta = { userId:userId, articleId:articleId, sectionId:null, publicationId:null };
		QualificationPluginAjax.submitFavorite( meta , 
			{
				callback : function( rating ) {
					submitFavoriteCallBack( rating, element );
				},
				exceptionHandler : submitFavoriteException
			}
		);
		}
		
		
	} catch( ex ) {
		// JavaScript exception
	}
	return false;
}

var submitFavoriteCallBack = function( success, element ) {
	if ( success != null ) {
		if( success == true ) {
			if(element.tagName.toLowerCase() === "a" && element.className.indexOf("btn_i_like") > -1) {
				element.className = element.className + " voted";
			} else {
				element.parentNode.innerHTML = "You like";
			}
		}
	}
}

var submitFavoriteException = function( errorString, exception ) {
	alert( errorString + "\n" + exception.javaClassName );
}

/*
 *
 * Flagging functions
 * GCE-2.6.9
 *
 */

var submitFlagging = function( articleId, userId, element ) {
	try {
		var meta = { userId:userId, articleId:articleId, sectionId:null, publicationId:null };
		QualificationPluginAjax.submitFlagging( meta , 
			{
				callback : function( rating ) {
					submitFlaggingCallBack( rating, element );
				},
				exceptionHandler : submitFlaggingException
			}
		);
	} catch( ex ) {
		// JavaScript exception
	}
	return false;
}

var submitFlaggingCallBack = function( flag, element ) {
	if ( flag != null ) {
		element.parentNode.innerHTML = "Flagged!";
	}
}

var submitFlaggingException = function( errorString, exception ) {
	alert( errorString + "\n" + exception.javaClassName );
}

