$(document).ready(function(){
	try{
		$('.button-form-edit').ajaxFormify({
			url: '/declaration/update',
			formContainer: $('#unit-edit-declaration'),
			fieldmap: {
				//map format is "selector for field on page" : "selector for field in form"
				'.first_name' : '#first_name',
				'.last_name' : '#last_name',
				'.email' : '#email',
				'.address1' : '#address1',
				'.address2' : '#address2',
				'.town' : '#town',
				'.region' : '#region',
				'.postcode' : '#postcode',
				'.age': '#age',
				'.declaration-content' : '#declaration',
				'.declaration_id' : '#declaration_id'	
			},
			cancel: '#link-form-cancel'
		});
	}catch(e){}
	
	try{
		$('#form-declaration-insert').submit(function(){

			var errors = new Array();
			
			if(!$('#first_name').val() || !$('#last_name').val() || !$('#address1').val() || !$('#address2').val() ||
			!$('#town').val() || !$('#postcode').val() || !$('#email_address').val() || !$('#age').val())
			{
				errors.push('Please make sure you fill out every field');
			}

			if($('#word-count').hasClass('too-many-words')){
				errors.push('Your declaration has too many words, please shorten it');
			}

			if( !$('#accept_terms_and_conditions').attr('checked') ){
				errors.push('You must agree to the terms and conditions to enter this competition');
			};
			if(errors.length){
				alert(errors.join('\n'));
				return false;
			};
		});
	}catch(e){}
	
	try{
		var word_limit = 150;
		
		function truncate_description(e){
			
			var description = $('#declaration').val();
//			description = description.replace(/\n/g, " ");

			var word_array = description.match(/[\w]+[ |\n|\r]*/g);
			if(!word_array.length){
				word_array = new Array();
			}

			if(word_array.length){
				word_array = word_array.slice(0, word_limit);
				$('#declaration').val(word_array.join(''));
			}
			return false;
		}
		
		function calculate_word_count(){
			var description = $('#declaration').val();
//			description = description.replace(/\n/g, " ");

			var word_array = description.match(/[\w]+[ |\n|\r]*/g);
			if(!word_array || !word_array.length){
				word_array = new Array();
			}

			var words_left = Math.max(word_limit - word_array.length, 0);
			
			if(word_limit - word_array.length < 0){
				$('#word-count').html( (word_array.length - word_limit) + ' words too many');
				$('#word-count').addClass('too-many-words');
			}else{
				$('#word-count').removeClass('too-many-words');
				$('#word-count').html(words_left + ' words remaining');
			}
			
		}
		
		$('#declaration').keyup(calculate_word_count);
		$('#declaration').change(calculate_word_count);	
		//$('#declaration').blur(truncate_description);	
	}catch(e){}
	
	try{
		$(".rating").stars({
			cancelShow: false,
			inputType: "select",
			callback: function(ui, type, value) {
				if( pageTracker ) {
					var data = value.split('-');
					var id = data[0];
					var rating = data[1];
					pageTracker._trackEvent('Rating', 'Voted', id, rating );
				}
				$.get("/ajax/vote/", {rate: value}, function(json) {
					if(json == 'success'){
						ui.setCaption('<strong>Thanks for rating!</strong>');
					}else{
						ui.setCaption('<strong>Vote again tomorrow!</strong>');
					}
					ui.disable();
					ui.getCaptionElement().closest('.rating-wrapper').find('.average-rating').fadeIn();
					ui.getCaptionElement().delay(2500).fadeOut('slow');
				});
			}
		});

		$(".average-rating").hide();
		$(".rating").hover( function() {
			$(this).parent().find('.hint').show()
		}, function() {
			$(this).parent().find('.hint').fadeOut()
		});

	}catch(e){}
	
	try{
		$.Lightbox.construct({
			show_linkback:	false,
			show_info: true,
			show_extended_info: false,
			files: {
				js: {
					colorBlend: '/assets/scripts/lightbox/jquery.color.packed.js',
					lightbox: '/assets/scripts/lightbox/jquery.lightbox.packed.js'
				},
				css:{
					lightbox:'/assets/styles/lightbox/jquery.lightbox.css'
				},
				images :{
					prev: 	'/assets/images/lightbox/prev.gif',
					next: 	'/assets/images/lightbox/next.gif',
					blank: 	'/assets/images/lightbox/blank.gif',
					loading: 	'/assets/images/lightbox/loading.gif'
				}

			}
		});
	}catch(e){}
});