
var pollForm = null;
var pollResults = null;

jQuery(document).ready(function($){

	var poll = $('#poll');
	pollForm = poll.find('form');
	pollResults = $('div#poll-results');

//-- Results

	if(areThereResults())//If there are results
	{
		var results = parseResults(['eyes','neck','hand','face','body']);//Get results	
		
		for(x in results)//for each result
		{
			var result = $('<div></div>')//Crete element to hold the result
							.attr({
								'class': 'result hasFloat'	
							})
							.appendTo(pollResults);
							
			$('<span></span>')//Create a label for the result
				.attr({
					'class':'label'	
				})
				.text(x)
				.appendTo(result);				
							
			var marker = $('<div></div>')//create marker to hold the result bar and percentage number
						.attr({
							'class': 'marker'	
						})
						.appendTo(result);
						
			$('<span></span>')//Create the percentage bar for the result
				.attr({
					'class':'bar'	
				})
				.css({
					width: (Math.round(results[x]) + '%')	
				})
				.appendTo(marker);
				
			$('<span></span>')//Create percentage number
				.attr({
					'class':'count'	
				})
				.css({
					left: (Math.round(results[x]) + '%')	
				})
				.text(((results[x] == 0) ? 0 : results[x].toFixed(2)) + '%')
				.appendTo(marker);
						
		}
	}


	
//--	Form submission script	
	pollForm.submit(function($e){
		
		var $f = $(this);
		
		var error = new Array();
		
		if($f.find('input[name="CAT_Custom_184200"]:checked').length == 0)error.push('You must select an answer.');//Make sure the question has beeen answered
		
		if(error.length > 0)//If the question has not been answered
		{
			displayError(error);
			$e.preventDefault();
			
		} else {
			
		//-- Display loader
			$f
				.find('.progress')
				.css({
					width: poll.innerWidth(),
					height: poll.innerHeight(),
					display: 'block'	
				});
				
		//-- Login anonymous user
			if(!isLoggedIn())//If user is not logged in
			{
				$e.preventDefault();
				BCAnonymousLogin({
					url: loginUrl,
					username: 'anonymous',
					password: 'password',
					success: function(e){
						$('#login-status').removeClass('loggedin-0').addClass('loggedin-1');
						$f.submit();	
					}
				});	
			} else {
				//-- Set item name
				setItemName();	
			}
		}	
	});

});


function displayError(errors)
{
	var $error = pollForm.find('.error');
	if($error.length == 0)
	{
		$error = jQuery('<div class="error"></div>').css({
			'display':'none'
		}).prependTo(pollForm);
	}
	
	$error.html('');
	
	for(var i = 0; i < errors.length; i++)
	{
		jQuery('<p>' + errors[i] + '</p>').appendTo($error);			
	}
	
	$error.stop().fadeIn('fast',function(){
		//jQuery(window).scrollTop(jQuery(this).position().top - 50);	
	});
}


function setItemName()
{
	var today = new Date();
	
	switch(today.getDate())
	{
		case 1: var day = '1st'; break;
		case 2: var day = '2nd'; break;	
		case 3: var day = '3rd'; break;
		default: var day = today.getDate() + 'th';
	}
	
	var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
	
	var dateStr = day + ' of ' + months[today.getMonth()] + ' , ' + today.getFullYear() + ' at ' + today.getHours() + ':' + today.getMinutes();
	
	jQuery('<input />')
		.attr({
			name: 'ItemName',
			type: 'text'	
		})
		.val(dateStr)
		.css({
			display: 'none'	
		})
		.appendTo(pollForm);
		
}

function areThereResults()
{
	return(pollResults.length == 1 && pollResults.find('li').length > 0);		
}


function parseResults(oArray)
{
	if(!areThereResults())return;
//-- Create array to hold the count of items
	var answers = new Array();
	for(var	i = 0, x = oArray.length; i < x; i++)//Assign array associate values
	{
		answers[jQuery.trim(oArray[i].toLowerCase())] = 0;	
	}
	
//-- Count answers
	pollResults
		.find('li')
		.each(function(){
			var rel = jQuery.trim(jQuery(this).text().toLowerCase());
			if(typeof answers[rel] == 'undefined')throw new Error('The keys in the answer array do not match.');
			answers[rel]++;
		});
	
	var total = pollResults.find('li').length;
	
	for(x in answers)
	{
		answers[x] = (answers[x] * 100) / total;	
	}
	
	return answers;
	
}
