var doc = document;
var glRated = false;

// ########## FAVORITES ########################################################################################### 

function saveFavorite(gameId){
	// set loading gif
	doc.getElementById('added2Favorite').style.display = 'none';
	doc.getElementById('add2Favorite').style.display = 'none';
	doc.getElementById('adding2Favorite').style.display = 'block';
	var objFavRequest = new Ajax.Request('/HTTPRequest/Favorite/' + gameId, {method: 'get', onComplete: FavoriteInserted});
}

function FavoriteInserted(objFavRequest){
	if(objFavRequest.responseText == 1){
		doc.getElementById('adding2Favorite').style.display = 'none';
		doc.getElementById('added2Favorite').style.display = 'block';
		//doc.getElementById('add2Favorite').style.display = 'none';
	} else {
	}
}

function addGamingPoints(gameID){
	var objGPRequest = new Ajax.Request('/HTTPRequest/Gaming/'+gameID+'/', {method: 'get', onComplete: GamingPointsInserted});
}

function GamingPointsInserted(objGPRequest){
	if(objGPRequest.responseText == 1){
	} else {
	}
}

function bl_taf(){
	objTAF 	= doc.getElementById('ftaf');
	objTAFL = doc.getElementById('tafl');
	objTAF.style.display = objTAF.style.display == 'none' ? 'block' : 'none';
	objTAFL.className = objTAF.style.display == 'block' ? 'HeadLinkActive' : 'HeadLink';
}

// ########## COMMENT SECTION ###########################################################################################

// Common functions

function reportComment(commentId, reportingUser){
	var objCommentsReportRequest = new Ajax.Request('/HTTPGameRequest/Report/' + Math.random(), 
																								{method: 'post', 
																								parameters: 'commentId=' + commentId + '&reportingUser=' + reportingUser, 
																								onComplete: reportedComment});
}

function reportedComment(objCommentsReportRequest){
	//alert(objCommentsReportRequest.responseText);
}

function praiseComment(commentId, praisingUser, praisedUser){
	var objCommentsPraiseRequest = new Ajax.Request('/HTTPGameRequest/Praise/' + Math.random(), 
																								{method: 'post', 
																								parameters: 'commentId=' + commentId + '&praisingUser=' + praisingUser + '&praisedUser=' + praisedUser, 
																								onComplete: praisedComment});
}

function praisedComment(objCommentsReportRequest){
	//alert(objCommentsPraiseRequest.responseText);
}

//******
// Reload/Get Comments to given link/game
//******
function getCommentsToGame(gameLinkName, page){
	var objCommentsRequest = new Ajax.Request('/HTTPGameRequest/Comments/' + gameLinkName + '/' + page + '/' + Math.random(), {method: 'get', onComplete: setCommentsToGame});
}

function setCommentsToGame(objCommentsRequest){
	doc.getElementById('comments').innerHTML = objCommentsRequest.responseText;
}

function editComment(commentId, state){
	doc.getElementById('cshow_' + commentId).style.display = state == 1 ? 'block' : 'none';
	doc.getElementById('cedit_' + commentId).style.display = state == 1 ? 'none' : 'block';
}

function showDeleteRequest(commentId, state){
	doc.getElementById('deleteComment_' + commentId).style.display = state ? 'block' : 'none';
}

function deleteComment(commentId, gameLinkName){
	var objCommentsDeleteRequest = new Ajax.Request('/HTTPGameRequest/Delete/' + commentId + '/' + gameLinkName + '/' + Math.random(), {method: 'get', onComplete: ReloadCommentsAfterDeleting});
}

function ReloadCommentsAfterDeleting(objCommentsDeleteRequest){
	getCommentsToGame(objCommentsDeleteRequest.responseText, 1);
}

// Addsection #################################################

function writeNewComment(){
	doc.getElementById('writeComment').style.display = 'block';
}

function checkCommentStatus(){
	if(doc.getElementById('parent_message').value.length > 10){
		doc.getElementById('cerror').style.display = 'none';
		return true;
	} else {
		doc.getElementById('cerror').style.display = 'block';
		return false;
	}
	
}

function addComment(linkname){
	if(checkCommentStatus()){
		doc.getElementById('csb').disabled = true;
		var objCommentsAddRequest = new Ajax.Request('/HTTPGameRequest/Add/' + Math.random(), 
																								{method: 'post', 
																								parameters: 'linkname=' + linkname + '&message=' + escape(doc.getElementById('parent_message').value), 
																								onComplete: ReloadCommentsAfterAdding});
	}
}

function ReloadCommentsAfterAdding(objCommentsAddRequest){
	if(objCommentsAddRequest.responseText != 'error'){
		doc.getElementById('parent_message').value = '';
		doc.getElementById('writeComment').style.display = 'none';
		getCommentsToGame(objCommentsAddRequest.responseText, 1);
		doc.getElementById('csb').disabled = false;
	}
}

// Replysection #################################################

function replyComment(commentId, state){
	doc.getElementById('replyComment_' + commentId).style.display = state ? 'block' : 'none';
}

function addReplyComment(commentId, linkname){
	var objCommentsAddRequest = new Ajax.Request('/HTTPGameRequest/Add/' + Math.random(), 
																								{method: 'post', 
																								parameters: 'parentId=' + commentId + '&linkname=' + linkname + '&message=' + escape(doc.getElementById('replyField_' + commentId).value), 
																								onComplete: ReloadCommentsAfterAdding});
}

function updateReplyComment(commentId, gameLinkName){
	var objCommentsAddRequest = new Ajax.Request('/HTTPGameRequest/Update/' + Math.random(), 
																								{method: 'post', 
																								parameters: 'gameLinkName=' + gameLinkName + '&commentId=' + commentId + '&editCommentValue=' + escape(doc.getElementById('editReply_' + commentId).value), 
																								onComplete: ReloadCommentsAfterAdding});
}

function updateComment(commentId, gameLinkName){
	var objCommentsUpdateRequest = new Ajax.Request('/HTTPGameRequest/Update/' + Math.random(), 
																										{method: 'post', 
																										parameters: 'gameLinkName=' + gameLinkName + '&commentId=' + commentId + '&editCommentValue=' + escape(doc.getElementById('ceditvalue_' + commentId).value), 
																										onComplete: ReloadCommentsAfterUpdate});
}

function ReloadCommentsAfterUpdate(objCommentsUpdateRequest){
	if(objCommentsUpdateRequest.responseText){
		getCommentsToGame(objCommentsUpdateRequest.responseText, 1);
	}
}
// ########## COMMENT SECTION END ########################################################################################

// ########## RATING SECTION ########################################################################################

function rateGame(gameId, rating, userIsLoggedIn){
	if(userIsLoggedIn == ''){
		doc.getElementById('rating_main_container').style.display = 'none';
		doc.getElementById('rating_sub_container').style.display = 'block';
		return;
	}
	var objRatingRequest = new Ajax.Request('/HTTPGameRequest/Rating/' + Math.random(), 
																											{method: 'post', 
																											parameters: 'gameId=' + gameId + '&rating=' + rating, 
																											onComplete: getGameRating});
}

function getGameRating(objRatingRequest){
	arrRating = objRatingRequest.responseText.split("@");
	p_entries = arrRating[0];
	p_pos = arrRating[3];
	p_neg = arrRating[4];
	p_pospx = arrRating[5];
	p_negpx = arrRating[6];
	p_crating = arrRating[7];
	
	dstr = objRatingRequest.responseText + '\n';
	dstr = dstr + 'p_entries = ' + p_entries + '\n';
	dstr = dstr + 'p_pos = ' + p_pos + '\n';
	dstr = dstr + 'p_neg = ' + p_neg + '\n';
	dstr = dstr + 'p_pospx = ' + p_pospx + '\n';
	dstr = dstr + 'p_negpx = ' + p_negpx + '\n';
	dstr = dstr + 'p_crating = ' + p_crating + '\n';
	//alert(dstr);
	
	doc.getElementById('rating_num').innerHTML = p_entries;
	doc.getElementById('rating_pos_bar').style.width = p_pospx + 'px';
	doc.getElementById('rating_neg_bar').style.width = p_negpx + 'px';
	doc.getElementById('rating_pos_num').innerHTML = p_pos > 0 ? p_pos + '%' : '';
	doc.getElementById('rating_neg_num').innerHTML = p_neg > 0 ? p_neg + '%' : '';
	
	if(p_pos > 0 && p_neg > 0){
		doc.getElementById('rating_pos_bar').style.borderRightWidth = '1px';
	}

	if(doc.getElementById('rating_no_entry').style.display == 'block'){
		doc.getElementById('rating_no_entry').style.display = 'none';
		doc.getElementById('rating_has_entry').style.display = 'block';
	}
	
	if(p_crating == 1){
		doc.getElementById('rating_pos_select').style.display = 'none';
		doc.getElementById('rating_pos_deselect').style.display = 'block';
		doc.getElementById('rating_neg_select').style.display = 'block';
		doc.getElementById('rating_neg_deselect').style.display = 'none';
	} else if(p_crating == 2){
		doc.getElementById('rating_pos_select').style.display = 'block';
		doc.getElementById('rating_pos_deselect').style.display = 'none';
		doc.getElementById('rating_neg_select').style.display = 'none';
		doc.getElementById('rating_neg_deselect').style.display = 'block';
	}
	
}

function setRatingStatus(){
	
}


// ########## RATING SECTION END ########################################################################################

function setFullScreen(gameLink){
	//alert('setFullScreen to ' + gameLink);
}

function loadgame(gameID){
		var gameRespond = new Ajax.Request('/HTTPAjaxRequest/get_game/'+gameID, {method: 'get', onComplete: set_game_from_ajax});
}

function set_game_from_ajax(gameRespond){
	rootElement = document.getElementById('game_container');
	if (rootElement){
		rootElement.innerHTML = gameRespond.responseText;
	}
}



// ########## STATISTIC SECTION END ###########################################################################################

//function closeGameAdvLayer(){
//	//doc.getElementById('gameAdvLayer').style.display = 'none';
//	//doc.getElementById('gameContent').style.display = 'block';
//	//window.clearInterval();
//}
//
//var t2Start = 5;
//function showAdvTime(){
//	//doc.getElementById('gameAdvLayerAdds').innerHTML = t2Start >= 0 ? t2Start-- : 0;
//	//if(t2Start >= 5) window.clearInterval();
//}

//function preloader() {
//	setInterval('flashtest()', 100); 
//}
//
//function flashtest() {
//	doc.getElementById('flPercentLoaded').innerHTML = doc.getElementById('flashObject1').PercentLoaded() + '%';
//	doc.getElementById('barpic').width = doc.flGame.PercentLoaded()*1.77;
//	if(doc.getElementById('flashObject1').PercentLoaded() >= 100) {
//		doc.getElementById('flPercentLoaded').innerHTML = '<img src="/stdimages/hook.gif">';
//	}
//}
//preloader();