var completed = true;

$(document).ready(function(){
	init();
	//register some events
	$('.survey_previous_page_button').each(function(){
		$(this).bind('click', nextPage);
	});
	$('.survey_next_page_button').each(function(){
		$(this).bind('click', previousPage);
	});
	$(window).bind('beforeunload', function() {
		if (!completed){
			return 'Any changes you made to the survey will be lost !';
		}
	});
	
});


function init(){
	//get the total number of pages
	window['pages'] 			= $('.survey_page');
	window['pages_count']		= window['pages'].length;
	//get the current page
	window['current_page'] 		= getCurrentPageIndex();
	drawProgressBar();
	window['progress_boxes'] 	= $('.survey_progress_bar_box');
	handleNavigation(); //this also handles showing the progress bar's current box
}

function nextPage(){
	$(window['pages'][window['current_page']-1]).removeClass('hidden');
	$(window['pages'][window['current_page']]).addClass('hidden');
	handleNavigation();
}

function previousPage(){
	$(window['pages'][window['current_page']+1]).removeClass('hidden');
	$(window['pages'][window['current_page']]).addClass('hidden');
	handleNavigation();
}

function getCurrentPageIndex(){
	var current_page = false;
	$.each(window['pages'],function(index,value){
		if (!$(value).hasClass('hidden')){
			current_page = index;
		}
	});
	return current_page;
}

function isFirstPage(){
	return (window['current_page'] === 0);
}

function isLastPage(){
	return (window['current_page'] === window['pages_count']-1);
}

function handleNavigation(){
	window['current_page'] = getCurrentPageIndex();
	//set a page id on the body element
	$('body').attr('id','survey_body_'+(window['current_page']+1));
	if (isFirstPage()){
			disableButton('previous',true);
		//hide the nav if there's only one page
		if (window['pages_count'] === 1) {
			$('.survey_page_navigation').hide();
		} else {
			disableButton('next',false);
		}
		//hide submit button
		$('#survey_submit_container').hide();
	}
	if (isLastPage()){
		disableButton('next',true);
		disableButton('previous',false);
		$('#survey_submit_container').show();
	}
	if (!isFirstPage() && !isLastPage()){
		disableButton('next',false);
		disableButton('previous',false);
		$('#survey_submit_container').hide();
	}
	handleProgressBar();
}

function disableButton(name_var,state)
{
	var final_attr = (state === true) ? 'disabled' : false;
	$('.survey_'+name_var+'_page_button').each(function(){
		$(this).attr('disabled',final_attr);
	});
}

function drawProgressBar()
{
	// only draw the progress bar if we have multiple pages
	var container = $('#survey_progress_bar_container');
	if (window['pages_count'] > 1) {
		// container.append('<p>Survey progress:</p>');
		for(var i = 1; i <= window['pages_count']; i++){
			//create boxes for the progress bar, for now I'll use spans
			container.append('<span class="survey_progress_bar_box">&nbsp;</span>');
		}
		//set the width
		var width = Math.floor(100/window['pages_count']);
		$('span','#survey_progress_bar_container').css('width', (width-1)+'%');
	
		//this was building percentages. was changed to display page numbers
	
		// for(var j=0; j < 5; j++){
		// 	var align = 'center'; //default
		// 	if (j == 0){
		// 		align = 'left';
		// 	} else if (j == 4) {
		// 		align = 'right';
		// 	}
		// 	var left = j*25-1;
		// 	left = (left < 0) ? 0 : left;
		// 	// container.append('<div class="progress_bar_percentages" style="width:20%; text-align:'+align+';">'+(j*25)+'%'+'</div>');
		// 	container.append('<div class="progress_bar_percentages" style="left:'+left+'%;">'+(j*25)+'%'+'</div>');
		// }
	
		for(var j=1; j <= window['pages_count']; j++){
			// var left = j*25-1;
			// left = (left < 0) ? 0 : left;
			var label_width = (width-1)+'%';
			// container.append('<div class="progress_bar_percentages" style="width:20%; text-align:'+align+';">'+(j*25)+'%'+'</div>');
			container.append('<div class="progress_bar_percentages" style="width:'+label_width+'; float:left;">'+j+'</div>');
		}
	} else {
		container.hide();
	}
}

function handleProgressBar()
{
	//set the active box
	$(window['progress_boxes'][window['current_page']]).removeClass().addClass('survey_progress_bar_box_active');
	
	if (window['current_page'] > 0){
		//look for previous visited pages and set a different class
		for(var i = 0; i < window['current_page']; i++){
			$(window['progress_boxes'][i]).removeClass().addClass('survey_progress_bar_box_visited');
		}
		//look for next pages, gray them out
		for(var j = window['pages_count']; j > window['current_page']; j--){
			$(window['progress_boxes'][j]).removeClass().addClass('survey_progress_bar_box');
		}
	} else {
		$(window['progress_boxes']).removeClass().addClass('survey_progress_bar_box');
		$(window['progress_boxes'][0]).removeClass().addClass('survey_progress_bar_box_active');
	}
}
