//Functions
function checkDate(date) 
	{
	
	// Regular expression used to check if date is in correct format dd/mm/yyyy
	var pattern = new RegExp([0-3][0-9]/0|1[0-9]/19|20[0-9]);
	if(date.value.match(pattern))
		{
			
			return true;
		}
	else
		{
			return false;
		}
		
	}
	
function popIn(width, height, source, id)
	{
		var thisWidth = width;
		var thisHeight = height;
		var thisId = id;
		
		//Window dimensions
		var windowHeight = window.getHeight();
		var windowWidth = window.getWidth();
		var scrollTop = window.getScrollTop();
		
		//position
		var top = (windowHeight/2) - (thisHeight/2);
		var left = (windowWidth/2) - (thisWidth/2);
		
		//Create Div
		var poc = new Element('div', {
					    'styles': {
						'display': 'block',
						'position': 'absolute',
						'top': eval(top),
						'left': eval(left),
						'z-index': '100',
						'width': eval(thisWidth),
						'height': eval(thisHeight),
						'padding': '0px 0px',
						'visibility': 'hidden'
					    },
					   'class': 'overlay',
					   'id': thisId
   				 });
		
		//Insert into page
		poc.injectTop(document.body);
		
		var url = "popin.php"
		var data = Object.toQueryString({id: id, source: source});
		//get form
		new Ajax(url, {
			method: 'get',
			data: data,
			update: $(thisId),
			evalScripts: true,
			onComplete: function(){
					//resize to fit form
					var childheight = parseInt($(thisId+"_child").getStyle('height'));
					$(thisId).setStyle('height', childheight+50);
					repositionOverlay(thisId);
					//$(id).setStyle('visibility', 'visible');
					var fadein = new Fx.Style(thisId, 'opacity', {duration: 500, wait: false});
					fadein.start(0,1);
									    
				}
		}).request();
	}
		
function closeOverlay(element)
	{
		$(element.id).remove();
	}
	
function repositionOverlay(element)
	{
		//Element dimensions
		var height = parseInt($(element).getStyle('height'));
		var width = parseInt($(element).getStyle('width'));
		
		//Window dimensions
		var windowHeight = window.getHeight();
		var windowWidth = window.getWidth();
		var scrollTop = window.getScrollTop();
		
		//New position
		var top = (windowHeight/2) - (height/2) + scrollTop;
		var left = (windowWidth/2) - (width/2);
		
		$(element).setStyle('top', top);
		$(element).setStyle('left', left);
	}

function submitForm(form)
	{
					
		var req = false;
		var dateError = false;
		var errorMessage = "";
		
		//Check fields
		var required = $$('form#'+form.id+' .required');
		required.each(function(element) {
					     
				$(element).setStyle("background-color", "#FFF");
				if($(element).value == "")
				{
					$(element).setStyle("background-color", "#f2c0c0");
					req = true;
				}
			});
		
		//Check date fields
		if($$('form#'+form.id+' .date'))
		{
			var dates = $$('form#'+form.id+' .date');
			dates.each(function(element) {
						     
					if($(element).value != "" && checkDate($(element)) == false)
					{
						dateError = true;
					}
					else
					{
						dateError = false;
					}
				});
		}
		
		//Error messaeges
		if(req == true)
			{
				errorMessage = "Please complete the required fields highlighted in red";
				if(dateError == true)
				{
					errorMessage += " and make sure your date(s) are in the correct format";
				}
				alert(errorMessage);
				return false;
			}
		else if(req == false && dateError == true)
			{
				alert("Please make sure your date(s) are in the correct format");
			}
		else if(req == false)
			{
				return true;
			}
	}
	
	
function navDropDown(id) 
	{
				
		switch(id)
		{
			case "about":
				var subcontent = "<ul><li><a href=\"presidents_welcome.php\">President's Welcome</a></li><li><a href=\"faqs.php\">FAQs</a></li><li><a href=\"costs.php\">Costs</a></li></ul>";
				break;
			case "join":
				var subcontent = "<ul><li><a href=\"#\">tables 1</a></li><li><a href=\"#\">tables 2</a></li><li><a href=\"#\">tables 3</a></li><li><a href=\"#\">tables 4</a></li></ul>";
				break;
			case "sponsors":
				var subcontent = "<ul><li><a href=\"#\">sponsors 1</a></li><li><a href=\"#\">sponsors 2</a></li><li><a href=\"#\">sponsors 3</a></li><li><a href=\"#\">sponsors 4</a></li></ul>";
				break;
			case "news":
				var subcontent = "<ul class=\"floatleft\"><li><a href=\"#\">news 1</a></li><li><a href=\"#\">news 2</a></li><li><a href=\"#\">news 3</a></li><li><a href=\"#\">news 4</a></li><li><a href=\"#\">news 5</a></li></ul>";
				subcontent += "<div class=\"menu_content\"><p class=\"title\">Latest news</p><p class=\"latest_news\">Lorem ipsum dolor sit amet, con sectetuer adipiscing elit...</p><p class=\"textright\"><a href=\"#\">read more&raquo;</a></p></div><br class=\clear\" />"
				break;
		}
		
		
		
		var coords = $(id).getCoordinates();
		var top = coords['top'] + coords['height'];
		var left = coords['left'];
		var right = coords['right'];
		
		
		var dropDown = new Element('div', {
					    'styles': {
						'display': 'block',
						'position': 'absolute',
						'top': '0',
						'left': '0',
						'z-index': '100',
						'padding': '15px 30px 0 30px',
						'visibility': 'hidden'
					    },
					    'events': {
						  'mouseenter': function(){
						
						  },
						  'mouseleave': function(){
							
							removeDropDownfromBox(id);
						  }
					    }, 
					   'class': 'dropdown',
					   'id': 'dd_'+id
   				 });
		
		dropDown.setHTML(subcontent);
		dropDown.injectTop(document.body);
		
		
		var dropDownPos = $('dd_'+id).getCoordinates();
		if((left+dropDownPos['width']) >= window.getWidth())
		{
			//reposition
			var ddleft = right - dropDownPos['width'];
			$('dd_'+id).setStyle('left',ddleft);
			$('dd_'+id).setStyle('top',top);
			$('dd_'+id).setStyle('visibility','visible');
		}
		else
		{
			$('dd_'+id).setStyle('left',left);
			$('dd_'+id).setStyle('top',top);
			$('dd_'+id).setStyle('visibility','visible');
		}
		
		
	}
		
function removeDropDownfromBox(id)
	{
		$('dd_'+id).remove();
		$E('li#'+id+' a').removeClass('on');
	}	
function removeDropDown(id,x,y)
	{	
		box = $('dd_'+id).getCoordinates();
		//$('mouse').setHTML('<p><strong>mouse:</strong><br />x: '+x+' y: '+y+'</p><p><strong>box:</strong><br/>left: '+box['left']+' right: '+box['right']+' top: '+box['top']+' bottom: '+box['bottom']+'</p><p><strong>scroll</strong>top: '+window.getScrollTop()+' left: '+window.getScrollLeft()+'</p>');
		
		
		if(x >= box['left'] && x <= box['right'] && y >= box['top'])
		{
			//do not remove box
		}
		else
		{
			//remove box
			$('dd_'+id).remove();	
			$E('li#'+id+' a').removeClass('on');
		}
		
	}	
	
function selectStory(story)
	{
		
		clearTimeout(timer);
		
		var scroll = new Fx.Scroll('scroll_container', {wait: false, duration: 500, transition: Fx.Transitions.Quad.easeInOut});
		scroll.toElement('story_'+story);
		
		var selected = $E('span.selected');
		selected.removeClass('selected');
		$('select_'+story).addClass('selected');
		
		timer = setTimeout('autoScrollNews()', 5000);
		
	}
function moveNews(direction)
	{
		if(direction == "next")
			{
				var selected = $E('span.selected');
				id = parseInt(selected.id.split("_")[1]) + 1;
				if(id != 6)
				{
					selectStory(id);
				}
			}
		else if(direction == "previous")
			{
				var selected = $E('span.selected');
				id = parseInt(selected.id.split("_")[1]) - 1;
				if(id != 0)
				{
					selectStory(id);
				}
			}

	}
function autoScrollNews()
	{
		var selected = $E('span.selected');
		id = parseInt(selected.id.split("_")[1]) + 1;
		if(id != 6)
		{
			selectStory(id);
		}
		else
		{
			selectStory(1);
		}
	}

	
function announcementSwitch(id)
	{
		var rowcount = 0;	
		
		/*if($$('span.announcement_switcher_on'))
		{
			//Filter on style
			var on = $$('span.announcement_switcher_on');
			on.each(function(element) {
						
					
				element.removeClass('announcement_switcher_on');
				element.addClass('announcement_switcher');
				
			   });
		}
		
		$(id).removeClass('announcement_switcher');
		$(id).addClass('announcement_switcher_on');*/
		
		//change stories
		if(id == "all")
		{
			var rows = $$('table#announcements tr');
			rows.each(function(element) {
				if(window.ie)
				{
					element.setStyle('display','block');	
				}
				else
				{
					element.setStyle('display','table-row');		     
				}
				if(rowcount%2 == 0)
				{
					if(!element.hasClass('alternate'))
					{
						element.addClass('alternate')
					}
				}
				else
				{
					if(element.hasClass('alternate'))
					{
						element.removeClass('alternate')
					}
				}
				rowcount++;					
					
			 });
		}
		else
		{
			
			var rows = $$('table#announcements tr');
			rows.each(function(element) {
					 element.setStyle('display', 'none');
				 });
			var showrows = $$('table#announcements tr.'+id);
			showrows.each(function(element) {
				if(window.ie)
				{
					element.setStyle('display','block');	
				}
				else
				{
					element.setStyle('display','table-row');		     
				}
				if(rowcount%2 == 0)
				{
					if(!element.hasClass('alternate'))
					{
						element.addClass('alternate')
					}
				}
				else
				{
					if(element.hasClass('alternate'))
					{
						element.removeClass('alternate')
					}
				}
				rowcount++;
			});
		}
	}

		
//Attach Events
window.addEvent('domready', function() {
						 
	if($$('ul#nav li.dd'))
	{
		var links = $$('ul#nav li.dd');
		links.each(function(element) {
					  
			element.addEvent('mouseover', function(e) {
					navDropDown(element.id);
					element.getChildren()[0].addClass('on');
				});
			element.addEvent('mouseout', function(e) {
					var event = new Event(e);
					removeDropDown(element.id,event.page.x,event.page.y);
				});
		});
	}
	
	//News
	if($('previous_story'))
	    	{
			$('previous_story').addEvent('mouseup', function(){
					moveNews('previous');
				});	
		}
	if($('next_story'))
	    	{
			$('next_story').addEvent('mouseup', function(){
					moveNews('next');
				});	
		}
	if($$('span.story_selector'))
		{
			var storySelectors = $$('span.story_selector');
			storySelectors.each(function(element) {
					
					var story = element.id.split("_")[1];
					
					element.addEvent('click', function(){
						selectStory(story);
					});
			});
			
			
			
		}
		
	//postcode search on homepage
	if($('hp_postcode_search'))
	{
		$('hp_postcode_search').addEvent('submit', function(e) {
			/**
			 * Prevent the submit event
			 */
			new Event(e).stop();
		 
		 
		 	
			if($('postcode').value == "")
			{
				alert('Please enter a postcode');
			}
			else
			{
				/**
				 * This empties the log and shows the spinning indicator
				 */
				var log = $('search_results').empty().addClass('ajax-loading');
			 
				/**
				 * send takes care of encoding and returns the Ajax instance.
				 * onComplete removes the spinner from the log.
				 */
				this.send({
					update: log,
					onComplete: function() {
						log.removeClass('ajax-loading');
					}
				});
			}
		});
	}
	
	//postcode search on join
	if($('join_postcode_search'))
	{
		$('join_postcode_search').addEvent('submit', function(e) {
			/**
			 * Prevent the submit event
			 */
			new Event(e).stop();
		 
		 
		 	
			if($('postcode').value == "")
			{
				alert('Please enter a postcode');
			}
			else
			{
				/**
				 * This empties the log and shows the spinning indicator
				 */
				var log = $('search_results_join').empty().addClass('ajax-loading');
			 
				/**
				 * send takes care of encoding and returns the Ajax instance.
				 * onComplete removes the spinner from the log.
				 */
				this.send({
					update: log,
					onComplete: function() {
						log.removeClass('ajax-loading');
					}
				});
			}
		});
	}
	
	/* announcement switcher
	if($$('span.announcement_switcher'))
	{
		var annoucements = $$('span.announcement_switcher');
		annoucements.each(function(element) {
			element.addEvent('click', function(){
				annoucementSwitch(element.id);
			});
		});
	} */
	
	if($('SignatureText'))
	{
		var table = $('SignatureText').getParent().getParent().getParent();
		table.setAttribute('style','border: none;');
	}
	
	if($('news_banner'))
	{
		//move scroller to random story on page load
			var rnd = (Math.floor(Math.random()*5))+1;
			selectStory(rnd);
			
			timer = setTimeout('autoScrollNews()', 5000);
	}
	
	//Tool Tips
var Tips1 = new Tips($$('.tip'));
}); 
window.addEvent('resize', function() {
	if($$('div.overlay'))
		{
			var overlay = $$('div.overlay');
			overlay.each(function(element) {
				repositionOverlay(element);
			});
		}
});