// this file is required by __jcarousel.ext.dev.js (and later after replacement by jcarousel.ext.js)
function LoadImagePoll(iArticleId, iExtImageGalleryId, iImageId, sDataEncrypted) {
	var objNodeValuePositive 		= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_pos #poll_value');
	var objNodeValueNegative 		= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_neg #poll_value');
	var objNodeButtonPositiveOn 	= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_pos #poll_button_on');
	var objNodeButtonPositiveOff 	= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_pos #poll_button_off');
	var objNodeButtonNegativeOn 	= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_neg #poll_button_on');
	var objNodeButtonNegativeOff 	= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_neg #poll_button_off');
	var objNodeButtonPositive		= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_pos');
	var objNodeButtonNegative		= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_neg');

	if (iImageId > 43) {  // 1:= commercial; 2:= teaser view; 3:= todo: poll statistics; 42:= teaser view in image browser 43:= teaser view in image browser
		// show image poll layer
		$('#container_image_poll_' + iExtImageGalleryId).css('display','block');

		// get Data for current image and user if available
		var arrPollData = objImagePoll.getPollData(iArticleId,iImageId,sDataEncrypted);

		if (arrPollData.length >= 4){
			// include current image id into DOM
			$('#container_image_poll_' + iExtImageGalleryId + ' #input_image_id').val(iImageId);
			
			objNodeValuePositive.text(arrPollData[0]);
			objNodeValueNegative.text(arrPollData[1]);
			
			var iUserVote = arrPollData[3]*1;

			if (iUserVote >= 0) {
				if (objNodeButtonPositiveOn.hasClass('display_block')) {
					voteButtonOff(objNodeButtonPositiveOn,objNodeButtonPositiveOff,objNodeButtonNegativeOn,objNodeButtonNegativeOff);
				}
			}
			else {
				objNodeButtonPositive.css('background-image','none');
				objNodeButtonNegative.css('background-image','none');

				if (objNodeButtonPositiveOn.hasClass('display_none')) {
					voteButtonOn(objNodeButtonPositiveOn,objNodeButtonPositiveOff,objNodeButtonNegativeOn,objNodeButtonNegativeOff);
				}
			}
		}
	}
	else {

	// hide image poll layer
		$('#container_image_poll_' + iExtImageGalleryId).css('display','none');
	}
}


function imagePollVote(iExtImageGalleryId, iVote, blnErrorMsg, sDataEncrypted) {
	var blnUserLoggedIn = false;
	
	if (sDataEncrypted != -1) {
		blnUserLoggedIn = true;	
	}

	var sTextNotLoggedInRaffle			= 'Bitte loggen Sie sich ein!\n\nDie Teilnahme an diesem Gewinnspiel ist nur für eingeloggte User möglich, die sich vor dem 05.10.2011 registriert haben.';
	var sTextTooLateRegisterdRaffle 	= 'Es tut uns wirklich Leid!\n\nDie Teilnahme an diesem Gewinnspiel ist nur für User möglich, die sich vor dem 05.10.2011 registriert haben.';
	var sTextVotedAlready 				= 'Sie haben für dieses Bild bereits gestimmt.';

	/*if (!(typeof bImgPollRaffle != 'undefined' && bImgPollRaffle == true)) { // bImgPollRaffle is defined in articleImageBrowserImagePoll.cfc
		bImgPollRaffle = false;
	}*/
	bImgPollRaffle = true; // pcgh image poll without raffle is not yet available at pcgh
	
	if (bImgPollRaffle && !blnUserLoggedIn) {
		// only logged in users are allowd to participate at raffles
		alert(sTextNotLoggedInRaffle);

		return false;
	}
	else {
		var objNodeValuePositive 		= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_pos #poll_value');
		var objNodeValueNegative 		= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_neg #poll_value');
		var objNodeButtonPositiveOn 	= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_pos #poll_button_on');
		var objNodeButtonPositiveOff 	= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_pos #poll_button_off');
		var objNodeButtonNegativeOn 	= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_neg #poll_button_on');
		var objNodeButtonNegativeOff 	= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_neg #poll_button_off');
		var objNodeButtonPositive		= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_pos');
		var objNodeButtonNegative		= $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_neg');
		var objNodeImageId 				= $('#container_image_poll_' + iExtImageGalleryId + ' #input_image_id');

		if (iVote == 0 || iVote == 1) {
			if (iVote == 1) {
				var objNodeCounter = $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_pos #poll_value');
				var objNodeLoaderGif = $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_pos #loader_gif');
			}
			else {
				var objNodeCounter = $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_neg #poll_value');
				var objNodeLoaderGif = $('#container_image_poll_' + iExtImageGalleryId + ' #container_poll_action_neg #loader_gif');
			}
	
			if (objNodeCounter && objNodeImageId && objNodeLoaderGif && objImagePoll) {
				var iImageId = objNodeImageId.val();
				var sCaptcha = '';
				var blnCaptcherSet = false;
	
				if (!blnUserLoggedIn && !bImgPollRaffle) {
					var objNodeCaptcha = $('#container_captcha_' + iExtImageGalleryId + ' #captcha');
					
					// get Captcha if available
					if (objNodeCaptcha.val() != undefined) {
							blnCaptcherSet = true;
							sCaptcha = objNodeCaptcha.val();
					}
				}
	
				if (blnUserLoggedIn || objNodeCaptcha != undefined) {
					if (iImageId > 3) { // 1:= commercial; 2:= teaser view; 3:= poll statistics
						if (checkUserLoggedIn() || blnCaptcherSet) {
							// var sCaptcha = $('#container_captcha_' + iExtImageGalleryId + ' #captcha').val();
			
							var iCount = objNodeCounter.text();
							switchLoader(objNodeCounter,objNodeLoaderGif);
							
							// update db
							var iStatus = objImagePoll.updatePollData(objImagePoll.iArticleId,iImageId,iVote,sCaptcha,sDataEncrypted);

							if (iStatus > 0) {
								voteButtonOff(objNodeButtonPositiveOn,objNodeButtonPositiveOff,objNodeButtonNegativeOn,objNodeButtonNegativeOff);
		
								closeCaptcha(iExtImageGalleryId,iImageId);
								
								objNodeCounter.text(iCount*1+1);
							}
							else if (blnCaptcherSet) {
								closeCaptcha(iExtImageGalleryId,iImageId);
								
								imagePollVote(iExtImageGalleryId, iVote);
								
								$('#container_captcha_' + iExtImageGalleryId + ' #error_msg').css('display','block');
							}
							else if (iStatus == -10) {
								alert(sTextTooLateRegisterdRaffle);	
							}
							else {
								alert(sTextVotedAlready);	
							}
					
							switchLoader(objNodeCounter,objNodeLoaderGif);
						}
						else {
							alert('captcha check is not available at pcgameshardware.de'); 
						}
					}
			
					return true;
				}
				else {
					return false;	
				}
			}
		}
		else {
			return false;		
		}
	}
}

function checkUserLoggedIn() {
	if (objImagePoll.sDataEncrypted != -1) {
		return true;
	}

	return false;
}

/*function loadCaptcha(iExtImageGalleryId, iVote) {
		// get new generated captcha form and include it into webpage
		var sHtmlCaptchaLayer = objImagePoll.getCaptchaForm(iExtImageGalleryId, iVote);
		
		var sContainerImagePoll = $('#container_captcha_' + iExtImageGalleryId);
		$(sHtmlCaptchaLayer).draggable();
		$(sHtmlCaptchaLayer).appendTo(sContainerImagePoll);

		// display captcha layer
		$('#container_image_poll_' + iExtImageGalleryId).css('display','none');
		sContainerImagePoll.fadeIn('normal');
}*/

function closeCaptcha(iExtImageGalleryId,iImageId) {
	var sContainerCaptcha = $('#container_captcha_' + iExtImageGalleryId);

	sContainerCaptcha.css('display','none');
	
	// remove captcha layer from dom
	sContainerCaptcha.children().remove();
	
	if (iImageId > 3 || iImageId == null) {
		$('#container_image_poll_' + iExtImageGalleryId).fadeIn('normal');
	}
}

function switchLoader(objNode_1, objNode_2) {
	if (objNode_1.hasClass('display_block') || objNode_2.hasClass('display_none')) {
		objNode_1.removeClass('display_block');
		objNode_1.addClass('display_none');
		objNode_2.removeClass('display_none');
		objNode_2.addClass('display_block');
	}
	else {
		objNode_1.removeClass('display_none');
		objNode_1.addClass('display_block');
		objNode_2.removeClass('display_block');
		objNode_2.addClass('display_none');
	}
}

function voteButtonOn (objNode_1, objNode_2, objNode_3, objNode_4) {
	objNode_1.removeClass('display_none');
	objNode_1.addClass('display_block');
	objNode_2.removeClass('display_block');
	objNode_2.addClass('display_none');
	
	objNode_3.removeClass('display_none');
	objNode_3.addClass('display_block');
	objNode_4.removeClass('display_block');
	objNode_4.addClass('display_none');
}

function voteButtonOff (objNode_1, objNode_2, objNode_3, objNode_4) {
	objNode_1.removeClass('display_block');
	objNode_1.addClass('display_none');
	objNode_2.removeClass('display_none');
	objNode_2.addClass('display_block');
	
	objNode_3.removeClass('display_block');
	objNode_3.addClass('display_none');
	objNode_4.removeClass('display_none');
	objNode_4.addClass('display_block');
}

function showImagePollOverview(iArticleId,iPage) {
	if (document.getElementById('ImagePollBackgroundLayer') != null) {
		// user is navigation back- or forwards
		// so we remove node with old content
		var nodeDelete = document.getElementById('ImagePollContentLayer');
		
		if (nodeDelete != null) {
			document.getElementById('ImagePollBackgroundLayer').removeChild(nodeDelete);
		}
	}
	else {
		// first call of overview layer
		var backgroundLayer = document.createElement('div');
		backgroundLayer.setAttribute('id','ImagePollBackgroundLayer');
		document.getElementsByTagName('body')[0].appendChild(backgroundLayer);
	}

	var contentLayer = document.createElement('div');

	contentLayer.setAttribute('id','ImagePollContentLayer');
	contentLayer.style.width = '1000px';
	contentLayer.style.height = '700px';
	
	contentLayer.innerHTML  = objImagePoll.getImagePollStats(iArticleId,iPage);

	document.getElementById('ImagePollBackgroundLayer').appendChild(contentLayer);
}

function closeImagePollOverview() {
	var nodeDelete = document.getElementById('ImagePollBackgroundLayer');
	
	if (nodeDelete != null) {
		document.getElementsByTagName('body')[0].removeChild(nodeDelete);
	}
}
