/**
 * @author Daniel Murray <dan AT gravy.org.uk>
 * @copyright 2009 Gravy (UK) Ltd.
 */

var urlPrefix = '';

	var emailFilter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var numericFilter = /^[0-9\(\)\-\ ]*$/; 
	var ukPostCodeFilter = /^[A-Za-z]{1,2}[0-9A-Za-z]{1,2}[ ]?[0-9]{0,1}[A-Za-z]{2}$/;
	var ukDateFilter = /^(?:(?:0?[1-9]|1\d|2[0-8])(\/|-)(?:0?[1-9]|1[0-2]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:31(\/|-)(?:0?[13578]|1[02]))|(?:(?:29|30)(\/|-)(?:0?[1,3-9]|1[0-2])))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(29(\/|-)0?2)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/;
		
	var expandableMenu = function( ulParent ) {
		
		// hide all sub's
		// attach to top-level to expand that below and hide others
		$('.'+ulParent+' li ul').hide();
		
		//alert('Len:'+$('.'+ulParent+' li a').length);
		
		// 		console.log('UL children length: '+ $('ul', $(this)).length);
		
		$('.'+ulParent+' > li').each(function() {


			if( ( $('a', $(this)).length > 0) &&
				( $('ul', $(this)).length > 0 ) ) {

					if( $('.viewall', $(this).children('ul') ).length <= 0 ) {
						
						var anchor=$(this).children('a:eq(0)');
						
						var viewAllAnchor = $('<li><a class="view-all-unwrapped view-all" href="'+anchor.attr('href')+'"><span class="viewall-inner">View all in&nbsp;'+anchor.html()+'</span></a></li>' );
						//$(this).children('a:eq(0)').clone(); //$('a', $(this) ).clone();
						//viewAllAnchor.addClass('view-all');
						//viewAllAnchor.addClass('view-all-unwrapped');
						//viewAllAnchor.html('<span class="viewall-inner">View all in '+viewAllAnchor.html() );
						viewAllAnchor.appendTo( $('ul',$(this) ) );
						
						//$('.view-all-unwrapped')
					}
				
				
				

				
				$('a', $(this)).click( function() {

					var destinationUl = $('ul',$(this).parents('li:eq(0)'));
					
					if( (destinationUl.length > 0 ) &&
						( !$(this).parents('li:eq(0)').hasClass('open') ) ){
						
						// hide all.
						$('.'+ulParent+' li ul').each( function(){
							if( $(this).css('display')=='block' ) {
								$(this).slideToggle('fast');
							}
						});
							
						$('.open').removeClass('open');
						
						destinationUl.slideToggle('fast', function() {
								
						});
						$(this).parents('li:eq(0)').addClass('open');
						
						
					}
					
					return false;
							
				});
			}
		});
		
		$('.'+ulParent+' > li > ul > li > a').each(function() {
			$(this).unbind('click');
		});
		
		$('.view-all').each(function(){
			$(this).unbind('click');
		});
		//$('.'+ulParent+' li a').click( function() {
			
		//});
		
		
	}
	
	
	$(document).ready( function() {

		expandableMenu('expandable');
		
		$('#global-reg-field').val('Enter your email');
		$('#global-reg-field').css('color','#cccccc');
		
		$('#global-reg-field').focus( function() { 
			
			toggleInputHelper( $(this) );
		});
		
		$('#global-reg-field').blur( function() { 
			
			toggleInputHelper( $(this) );
		});
		
		$('#global-reg-submit').click( function() {
		
			if( ($('#global-reg-field').val()!='') &&
				( emailFilter.test( $('#global-reg-field').val() ) ) ) {
			
				$.ajax({
					url:urlPrefix+'/ajax/user_register.php',
					data:'email='+$('#global-reg-field').val()+'&ua='+escape(navigator.userAgent),
					type:'post',
					success: function() {
						$('#register-warning').removeClass('register-warning-red');
						$('#register-warning').addClass('register-warning-green');
						showWarning( 'register-warning', 'Thanks, your registration was successful.', 1500);
					},
					error: function(){
						$('#register-warning').removeClass('register-warning-green');
						$('#register-warning').addClass('register-warning-red');
						showWarning( 'register-warning', '<strong>Error completing registration</strong>.', 1500);
					}
				})
					
			}
			else {
				$('#register-warning').removeClass('register-warning-green');
						$('#register-warning').addClass('register-warning-red');
				showWarning( 'register-warning', 'Enter a valid email address to register with.', 1500);
			} 
			return false;
		});
		
	});
	
	

var contactForm = function() {


	if( ($('#email').val()!='') &&
		( emailFilter.test( $('#email').val() ) ) ) {


		$.ajax({
			type:'post',
			url:'/ajax/contact.php',
			data: $('#contact').serialize(),
			beforeSend: function() {
				$('.vote-loading').show();
			},
			complete: function() {
				$('.vote-loading').hide();
			},
			success: function() {
				showWarning('notifications','Thanks for your feedback!',2500);
			},
			error:function( event ) {
				if (!event.responseText) {
					showWarning('notifications', 'There was a problem processing your form, please check you have completed all the fields and try again.', 2500);
				}
				else {
					showWarning('notifications', event.responseText, 3000);
				}
			}
		});
	
	
	}
	else {
		if(typeof(showWarning)=='function') {
			showWarning('notifications','Make sure you\'ve entered a valid email address.',2500);
		}
	}
	
}

var toggleInputHelper = function( el ) {
		if( !el.data('prompt') ) {
			el.data('prompt',el.val())
			el.css('color','#000');
			el.val('');
		}
		else {
			if (el.val()=='') {
				el.val(el.data('prompt'));
				el.data('prompt', '')
				el.css('color', '#ccc');
			}
		}
	}
	

