function validate_email(field)
{
	with (field) {
		apos=value.indexOf("@");
		dotpos=value.lastIndexOf(".");
		
		if (apos<1||dotpos-apos<2) {
			return false;
		} else {
			return true;
		}
	}
}
var wdytya={}
wdytya.episodeMenu=
{
	hide_locked: false,
	show: function()
	{
		if (!Effect.Queues.get('episodeMenu').size())
		{
			Effect.Appear
			(
				'subMenu',
				{
					duration: 0.4,
					queue: {scope: 'episodeMenu', position: 'parallel',limit: 1}
				}
			);
		}
		return;
	},
	hide: function()
	{
		if (!Effect.Queues.get('episodeMenu').size())
		{
			(
				function()
				{
					if (!wdytya.episodeMenu.hide_locked)
					{
						Effect.Fade
						(
							'subMenu',
							{
								duration: 0.4,
								queue: {scope: 'episodeMenu', position: 'parallel', limit: 1}
							}
						);
					}
					return;
				}
			).delay(0.5);
		}
		return;
	},
	lockHide: function()
	{
		wdytya.episodeMenu.hide_locked=true;
	},
	unlockHide: function()
	{
		wdytya.episodeMenu.hide_locked=false;
		wdytya.episodeMenu.hide();
	},
	initObservers: function()
	{
		$('navEpisodes').observe
		(
			'mouseover',
			wdytya.episodeMenu.show
		);
		$('navEpisodes').observe
		(
			'mouseout',
			wdytya.episodeMenu.hide
		);
		$('subMenu').observe
		(
			'mouseover',
			wdytya.episodeMenu.lockHide
		);
		$('subMenu').observe
		(
			'mouseout',
			wdytya.episodeMenu.unlockHide
		);
		return;
	}
}
wdytya.navMenu=
{
	threshold: 720,
	element:{},
	init: function()
	{
		var $this=wdytya.navMenu;
		$this.element.root=$('navSlider');
		$this.element.connector=$('navSlider_connector');
		$this.element.horizontalline=$('navSlider_horizontalline');
		
		$this.element.root.setStyle('position:absolute;z-index:10;left:0px;top:112px;width:981px;height:40px;');
		$this.element.connector.setStyle('height:32px;width:4px;position:absolute;left:720px;top:0px;');
		$this.element.horizontalline.setStyle('position:absolute;top:0px;left:720px;height:2px;width:3px;');
		
		$('navHome')		.observe('mouseover',function(){wdytya.navMenu.move(38,0);});
		$('navEpisodes')	.observe('mouseover',function(){wdytya.navMenu.move(122,0);});
		$('navFamilyTree')	.observe('mouseover',function(){wdytya.navMenu.move(261,0);});
		$('navPhotos')		.observe('mouseover',function(){wdytya.navMenu.move(421,0);});
		$('navCompetition')	.observe('mouseover',function(){wdytya.navMenu.move(546,0);});
		$('navAbout')		.observe('mouseover',function(){wdytya.navMenu.move(642,0);});
		$('navForum')		.observe('mouseover',function(){wdytya.navMenu.move(715,0);});
		$('navTipsAdvice')	.observe('mouseover',function(){wdytya.navMenu.move(862,0);});
		return;
	},
	move: function(position,width)
	{
		var $this=wdytya.navMenu,horizontallinePosition=0,horizontallineWidth=0;
		var horizontallineCurrentPosition=parseInt($this.element.horizontalline.getStyle('left').gsub('px',''));
		var horizontallineCurrentWidth=parseInt($this.element.horizontalline.getStyle('width').gsub('px',''));
		var horizontallineAnimNum=1;
		var duration=
		{
			anim1:	0.5,
			anim2:	0.25,
			anim3:	0.25
		};
		
		//If left of threshold.
		if (position<$this.threshold)
		{
			horizontallinePosition=position;
			horizontallineWidth=($this.threshold-position);
		}
		//If right of threshold.
		else
		{
			horizontallinePosition=$this.threshold;
			horizontallineWidth=(position-$this.threshold);
		}
		
		//If current position is left of threshold and end position is right of threshold.
		if (horizontallineCurrentPosition<$this.threshold && position>$this.threshold)
		{
			horizontallineAnimNum=2;
		}
		//if current position is right of threshold and end position is left of threshold.
		else if (horizontallineCurrentPosition==$this.threshold
		&& horizontallineCurrentWidth>0
		&& horizontallineWidth!=horizontallineCurrentWidth)
		{
			horizontallineAnimNum=3;
		}
		if (horizontallineAnimNum==1)
		{
			//CONNECTOR EFFECT
			new Effect.Morph
			(
				$this.element.connector,
				{
					style:		'left:'+position+'px',
					queue:		{scope:'navMenu_connector'},
					duration:	duration.anim1,
					beforeStart: function()
					{
						Effect.Queues.get('navMenu_connector').each(function(effect){effect.cancel()});
					}
				}
			);
			//HORIZONTALLINE EFFECT
			new Effect.Morph
			(
				$this.element.horizontalline,
				{
					style:		'left:'+horizontallinePosition+'px;width:'+horizontallineWidth+'px',
					queue:		{scope:'navMenu_horizontalline'},
					duration:	duration.anim1,
					beforeStart: function()
					{
						Effect.Queues.get('navMenu_horizontalline').each(function(effect){effect.cancel()});
						return;
					}
				}
			);
		}
		else if (horizontallineAnimNum==2)
		{
			//CONNECTOR EFFECT A
			new Effect.Morph
			(
				$this.element.connector,
				{
					style:		'left:'+$this.threshold+'px',
					queue:		{scope:'navMenu_connector',position:'front'},
					duration:	duration.anim2,
					beforeStart: function()
					{
						Effect.Queues.get('navMenu_connector').each(function(effect){effect.cancel()});
					}
				}
			);
			//HORIZONTALLINE EFFECT A
			new Effect.Morph
			(
				$this.element.horizontalline,
				{
					style:		'left:'+$this.threshold+'px;width:3px',
					queue:		{scope:'navMenu_horizontalline',position:'front'},
					duration:	duration.anim2,
					beforeStart: function()
					{
						Effect.Queues.get('navMenu_horizontalline').each(function(effect){effect.cancel()});
					}
				}
			);
			//CONNECTOR EFFECT B
			new Effect.Morph
			(
				$this.element.connector,
				{
					style:		'left:'+position+'px',
					queue:		{scope:'navMenu_connector',position:'end'},
					duration:	duration.anim2
				}
			);
			//HORIZONTALLINE EFFECT B
			new Effect.Morph
			(
				$this.element.horizontalline,
				{
					style:		'left:'+horizontallinePosition+'px;width:'+horizontallineWidth+'px',
					queue:		{scope:'navMenu_horizontalline',position:'end'},
					duration:	duration.anim2
				}
			);
		}
		else if (horizontallineAnimNum==3)
		{
			//CONNECTOR EFFECT A
			new Effect.Morph
			(
				$this.element.connector,
				{
					style:		'left:'+$this.threshold+'px',
					queue:		{scope:'navMenu_connector',position:'front'},
					duration:	duration.anim3,
					beforeStart: function()
					{
						Effect.Queues.get('navMenu_connector').each(function(effect){effect.cancel()});
					}
				}
			);
			//HORIZONTALLINE EFFECT A
			new Effect.Morph
			(
				$this.element.horizontalline,
				{
					style:		'left:'+$this.threshold+'px;width:0px',
					queue:		{scope:'navMenu_horizontalline',position:'front'},
					duration:	duration.anim3,
					beforeStart: function()
					{
						Effect.Queues.get('navMenu_horizontalline').each(function(effect){effect.cancel()});
					}
				}
			);
			//CONNECTOR EFFECT B
			new Effect.Morph
			(
				$this.element.connector,
				{
					style:		'left:'+position+'px',
					queue:		{scope:'navMenu_connector',position:'end'},
					duration:	duration.anim3
				}
			);
			//HORIZONTALLINE EFFECT B
			new Effect.Morph
			(
				$this.element.horizontalline,
				{
					style:		'left:'+horizontallinePosition+'px;width:'+horizontallineWidth+'px',
					queue:		{scope:'navMenu_horizontalline',position:'end'},
					duration:	duration.anim3
				}
			);
		}
		return;
	}
}
wdytya.comment=
{
	rate: function(theElement,info)
	{
		$('commentRating').value=info.rating;
		//$('currentRating').setStyle('width:'+theWidth+'px');
		return true;
	},
	add: function()
	{
		$('form_submitComment').request
		(
			{
				parameters:	'action=comment',
				onComplete: function(theResponse)
				{
					if (theResponse.getHeader('X-AJAX-RESULT')==1)
					{
						alert('Thank you. Your comment has been submitted.');
						common.go(window.location);
					}
					else
					{
						if (theResponse.getHeader('X-AJAX-MESSAGE')!=undefined && (theResponse.getHeader('X-AJAX-MESSAGE')!=''))
						{
							alert(theResponse.getHeader('X-AJAX-MESSAGE'));
							var captcha=theResponse.getHeader('X-AJAX-NEWCAPTCHA');
							if (theResponse.getHeader('X-AJAX-NEWCAPTCHA')!=undefined)
							{
								$$('div.captchaImage')[0].update(theResponse.responseText);
							}
						}
						else
						{
							alert('There was a problem submitting your comment. Please try again later.');
						}
					}
					return;
				}
			}
		);
		return false;
	},
	agree: function(element,theID,thePage)
	{
		new Ajax.Request
		(
			'/whodoyouthinkyouare/ajax/'+thePage+'/',
			{
				parameters:
				{
					action:	'agree',
					id:		theID
				},
				onComplete: function(response)
				{
					element.replace(response.responseText);
					return;
				}
			}
		);
		return;
	},
	disagree: function(element,theID,thePage)
	{
		new Ajax.Request
		(
			'/whodoyouthinkyouare/ajax/'+thePage+'/',
			{
				parameters:
				{
					action:	'disagree',
					id:		theID
				},
				onComplete: function(response)
				{
					element.replace(response.responseText);
					return;
				}
			}
		);
		return;
	}
}
wdytya.carousel=
{
	buttonStateHandler: function(button,enabled)
	{
		if (button=='next-arrow')
		{
			$('next-arrow').src=enabled?'/whodoyouthinkyouare/media/images/icons/scrollingarrow_right.gif':'/whodoyouthinkyouare/media/images/icons/scrollingarrow_right.gif'
		}
		else
		{
			$('prev-arrow').src=enabled?'/whodoyouthinkyouare/media/images/icons/scrollingarrow_left.gif':'/whodoyouthinkyouare/media/images/icons/scrollingarrow_left.gif'
		}
		return;
	},
	animHandler: function(carouselID,status,direction)
	{
		var region=$(carouselID).down('.carousel-clip-region');
		if (status=='before')
		{
			Effect.Fade(region,{to:0.3,queue:{position:'end',scope:'carousel'},duration: 0.1});
		}
		if (status=='after')
		{
			Effect.Fade(region,{to:1,queue:{position:'end',scope:'carousel'},duration:0.1});
		}
		return;
	}
}
wdytya.login=
{
	validate: function()
	{
		new Ajax.Request
		(
			$('loginForm').action,
			{
				parameters:
				{
					username:	$F('username'),
					password:	wdytya.encode.base64(wdytya.encode.md5($F('password')))
				},
				onComplete: function(theResponse)
				{
					if (theResponse.getHeader('X-AJAX-RESULT')==1)
					{
						$('loginPanel').update('Login Successful. You may now upload photos. Would you like to <b><a href="javascript:void(0);" onclick="wdytya.login.destroy();">logout</a></b>?');
						new Effect.BlindDown('uploadPanel',{duration:1.5});
					}
					else
					{
						if (theResponse.getHeader('X-AJAX-MESSAGE')!=undefined && (theResponse.getHeader('X-AJAX-MESSAGE')!=''))
						{
							if (theResponse.getHeader('X-AJAX-FORWARD')!=undefined)
							{
								alert(theResponse.getHeader('X-AJAX-MESSAGE'));
								common.go('/whodoyouthinkyouare/register/?toggleMember=1');
							}
							else
							{
								alert(theResponse.getHeader('X-AJAX-MESSAGE'));
							}
						}
						else
						{
							alert('There was a problem submitting your comment. Please try again later.');
						}
					}
					return;
				}
			}
		);
		return;
	},
	destroy: function()
	{
		new Ajax.Request
		(
			'/whodoyouthinkyouare/ajax/photos/',
			{
				parameters:
				{
					action:		'logout'
				},
				onComplete: function()
				{
					alert('You have been logged out.');
					common.go(window.location);
				}
			}
		);
		return;
	},
	forgotPassword: function()
	{
		new Ajax.Request
		(
			'/whodoyouthinkyouare/ajax/forgotpassword/',
			{
				parameters:
				{
					email:		$F('email')
				},
				onComplete: function()
				{
					alert('Your new password has been emailed to you.');
					common.go(window.location);
				}
			}
		);
		return;
	}
}
wdytya.ancestrycomp=
{
	submit: function()
	{
		// $('competitionEntryForm').request
		// (
			// {
				// parameters:	'action=enterCompetition',
				// onComplete: function(theResponse)
				// {
					// if (theResponse.getHeader('X-AJAX-RESULT')==1)
					// {
						// alert('Thank you. Your entry has been submitted.');
						// common.go(window.location);
					// }
					// else
					// {
						// if (theResponse.getHeader('X-AJAX-MESSAGE')!=undefined && (theResponse.getHeader('X-AJAX-MESSAGE')!=''))
						// {
							// alert(theResponse.getHeader('X-AJAX-MESSAGE'));
							// var captcha=theResponse.getHeader('X-AJAX-NEWCAPTCHA');
							// if (theResponse.getHeader('X-AJAX-NEWCAPTCHA')!=undefined)
							// {
								// $$('div.captchaImage')[0].update(theResponse.responseText);
							// }
						// }
						// else
						// {
							// alert('There was a problem submitting your comment. Please try again later.');
						// }
					// }
					// return;
				// }
			// }
		// );
		// return false;	
	
		if (wdytya.ancestrycomp.validate())
		{
			$('competitionEntryForm').submit();
		}
		else
		{
			if (wdytya.ancestrycomp.errorMessage)alert(wdytya.ancestrycomp.errorMessage);
			if (wdytya.ancestrycomp.errorElement)wdytya.ancestrycomp.errorElement.focus();
			wdytya.ancestrycomp.resetValidation();
		}
	},
	errorMessage: false,
	errorElement: false,
	validate: function()
	{
		var theReturn=true;
		var firstname=$$('#compentry_firstname');
		var lastname=$$('#compentry_lastname');
		var email=$$('#compentry_email');
		var state=$$('#compentry_state');
		var postcode=$$('#compentry_postcode');
		var terms=$$('#compentry_termsConditions');
		
		if (document.competitionEntryForm.compentry_termsConditions.checked == false)
		{
			wdytya.ancestrycomp.errorMessage='Please accept the competition terms and conditions.';
			wdytya.ancestrycomp.errorElement=terms;
			theReturn=false;
		}
		if (document.competitionEntryForm.compentry_postcode.value=='' || document.competitionEntryForm.compentry_postcode.value==null)
		{
			wdytya.ancestrycomp.errorMessage='Please enter your postcode.';
			wdytya.ancestrycomp.errorElement=firstname;
			theReturn=false;
		}
		if (document.competitionEntryForm.compentry_state.value=='' || document.competitionEntryForm.compentry_state.value==null)
		{
			wdytya.ancestrycomp.errorMessage='Please enter a State.';
			wdytya.ancestrycomp.errorElement=state;
			theReturn=false;
		}
		if (validate_email(document.competitionEntryForm.compentry_email)==false)
		{
			wdytya.ancestrycomp.errorMessage='Please enter a valid email address.';
			wdytya.ancestrycomp.errorElement=email;
			theReturn=false;
		}
		if (document.competitionEntryForm.compentry_email.value=='' || document.competitionEntryForm.compentry_email.value==null)
		{
			wdytya.ancestrycomp.errorMessage='Please enter your email address.';
			wdytya.ancestrycomp.errorElement=email;
			theReturn=false;
		}
		if (document.competitionEntryForm.compentry_lastname.value=='' || document.competitionEntryForm.compentry_lastname.value==null)
		{
			wdytya.ancestrycomp.errorMessage='Please enter your lastname.';
			wdytya.ancestrycomp.errorElement=lastname;
			theReturn=false;
		}
		if (document.competitionEntryForm.compentry_firstname.value=='' || document.competitionEntryForm.compentry_firstname.value==null)
		{
			wdytya.ancestrycomp.errorMessage='Please enter your firstname.';
			wdytya.ancestrycomp.errorElement=firstname;
			theReturn=false;
		}
		return theReturn;
	},
	resetValidation: function()
	{
		wdytya.ancestrycomp.errorMessage=false;
		wdytya.ancestrycomp.errorElement=false;
		return;
	}
}
wdytya.photos=
{
	add: function()
	{
		var element=$('addMoreButton').up('li.row');
		element.insert
		(
			{
				before:
				[
					'<li class="row" style="display:none;">',
						'<label>Attach the image of your photo<em class="required">*</em></label>',
						'<input class="fileField" name="uploadfiles[]" type="file" />',
						'<input type="hidden" name="MAX_FILE_SIZE" value="2097152" />',
						'<div class="instructionsText">Click on the \'Browse\' button to locate the image on your computer</div>',
					'</li>',
					'<li class="row" style="display:none;">',
						'<label>Title of the photo<em class="required">*</em></label>',
						'<div class="elements">',
						'<input class="textField" name="photoTitle[]" type="text" />',
						'<div class="instructionsText">No more than X words</div>',
						'</div>',
					'</li>',
					'<li class="row" style="display:none;">',
						'<label>Description of the photo<em class="required">*</em></label>',
						'<textarea class="textareaField" name="photoDescription[]"></textarea>',
					'</li>'
				].join('')
			}
		);
		new Effect.Appear(element.previous());
		new Effect.Appear(element.previous(1));
		new Effect.Appear(element.previous(2));
		return;
	},
	submit: function()
	{
		if (wdytya.photos.validate())
		{
			$('uploadForm').submit();
		}
		else
		{
			if (wdytya.photos.errorMessage)alert(wdytya.photos.errorMessage);
			if (wdytya.photos.errorElement)wdytya.photos.errorElement.focus();
			wdytya.photos.resetValidation();
		}
	},
	errorMessage: false,
	errorElement: false,
	validate: function()
	{
		var theReturn=true;
		var uploads=$$('#uploadForm .fileField');
		var titles=$$('#uploadForm .textField');
		var descriptions=$$('#uploadForm .textareaField');
		for (var i=0; i<uploads.length; i++)
		{
			if (!$F(uploads[i]).empty())
			{
				if ($F(titles[i]).empty())
				{
					wdytya.photos.errorMessage='Title cannot be empty.';
					wdytya.photos.errorElement=titles[i];
					theReturn=false;
					break;
				}
				else if ($F(descriptions[i]).empty())
				{
					wdytya.photos.errorMessage='Description cannot be empty.';
					wdytya.photos.errorElement=descriptions[i];
					theReturn=false;
					break;
				}
			}
		}
//		for (var i=0; i<uploads.length; i++)
//		{
//			if ($F(uploads[i]).empty())
//			{
//				
//			}
//		}
		return theReturn;
	},
	resetValidation: function()
	{
		wdytya.photos.errorMessage=false;
		wdytya.photos.errorElement=false;
		return;
	}
}
wdytya.encode=
{
	md5: function(input)
	{
		var theReturn=false;
		if (typeof MD5=='function')
		{
			theReturn=MD5(input);
		}
		else
		{
			throw 'md5 class not found. Unable to encode data.';
		}
		return theReturn;
	},
	base64: function(input)
	{
		var theReturn=false;
		if (typeof base64=='object')
		{
			theReturn=base64.encode(input);
		}
		else
		{
			throw 'base64 class not found. Unable to encode data.';
		}
		return theReturn;
	}
}
wdytya.popup=
{
	handwriting: function()
	{
		window.open('http://clk.atdmt.com/AUS/go/sbsspanc0050000022aus/direct/01/','HandwritingHelp','width=812,height=140,resizable=0,scrollbars=0');
		return;
	}
}
wdytya.video=
{
	player:		false,
	isReady:	false,
	xml:		false,
	swfObject:	false,
	ready: function()
	{
		this.isReady=true;
		this.player=$('video_player');
		this.player.loadVideoXML(this.xml,false);
		var element=('celebrityAbstract') || ('celebrityShortBio') || false;
		if (element)
		{
			new Effect.BlindDown(element,{duration:1.5});
		}
		return;
	},
	get: function(options)
	{
		this.xml=options.xml || '/whodoyouthinkyouare/data/';
		this.swfObject=new SWFObject("/whodoyouthinkyouare/media/flash/inline_video_player_loader.swf", "video_player", options.width, options.height, "8", "#000000");
		this.swfObject.addParam("wmode", "opaque");
		this.swfObject.addParam("allowFullScreen", "true");
		this.swfObject.addParam("allowScriptAccess", "always");
		this.swfObject.addVariable("nielsenChannel", "WhoDoYouThinkYouAre");
		this.swfObject.addVariable('launchURL', window.location.href);	
		this.swfObject.addVariable('playerBasePath', '/whodoyouthinkyouare/media/flash/');
		this.swfObject.write(options.id);
		return;
	},
	load: function(path,id)
	{
		if (!path)path='/whodoyouthinkyouare/data/';
		this.xml=path+'?action=load&id='+id;
		this.player.loadVideoXML(this.xml,false);
	}
}
function onVideoPlayerReady()
{
	wdytya.video.ready();
	return;
}
Event.observe(window,'load',wdytya.episodeMenu.initObservers);
Event.observe(window,'load',wdytya.navMenu.init);
Event.observe
(
	window,
	'load',
	function()
	{
		if (typeof _sbsRegistration=='object')
		{
			_sbsRegistration.credentialsRequestLocation='/whodoyouthinkyouare/ajax/register/';
		}
		return;
	}
);
Starbox.prototype.onClick=Starbox.prototype.onClick.wrap
(
	function(originalFunction,event)
	{
		var element = Event.element(event);
		if (!element.rating || !this.options.onRate) return;
		this.options.total=1;
		this.average=element.rating;
		if (this.options.lockOnRate)
		{
			this.disable();
			this.buttons.invoke('setStyle',{cursor:'auto'});
		}
		var info=
		{
			identity:	this.identity,
			rating:		element.rating,
			average:	this.average,
			max:		this.options.max,
			total:		this.options.total
		};
		this.options.onRate(this.element, info);
	}
);
if (console==undefined)var console={debug:Prototype.emptyFunction()};
//document.observe('dom:loaded',wdytya.episodeMenu.initObservers);