

window.addEvent('domready', function() {


	// Sexy External Links
	$$('a').each(function(link){
		if(link.getProperty('rel')=="external") link.setProperty('target','_blank');
	});



	// Add Required check to form elements...
	$$('.required input','.required textarea','.required select').each(function(el){
		el.title = el.title ? el.title : "*";
		el.addEvent('blur',function(evt) {
			required(el.id);
		});
	});


	// Add File Upload check to form elements...
	$$('.file_upload').each(function(el){
		el.addEvent('change',function(evt) {
			checkfile(el);
		});
	});


	// Confirms Zip Code, State and Country match (only US)...
	$$('.address .zip input','.address .state input','.address .country input').each(function(el){
		el.addEvent('blur', function() {
			var b = el.id.replace(/zip/,'').replace(/state/,'').replace(/country/,'');
			setState(b+'zip',b+'state',b+'country');
		});
	});
	
	


});


	function safeMail(a,b,c)
	{
		document.write('<a href="mailto:'+a+'@'+b+'.'+c+'">'+a+'@'+b+'.'+c+'</a>');
	}

	function hideNext(obj,num)
	{
		if(!num) num=1;
		var parent = obj.getParent();
		x=0;
		while(x<num){
			x++;
			parent = parent.getNext();
			parent.toggleClass('hide');
		}
		return false;
	}



	/*
	*
	*
	*	Takes Two Address Field groups and makes them the same...
	*
	*
	*/
	function makeAddressesTheSame(id1,id2,empty,toggle)
	{
		$$('input','textarea').each(function(el){
			if( el.id.test(id1) )
			{
				var change_id = el.id.replace(id1,id2);
				if( $(change_id) && !empty ) $(change_id).value = el.value; 
				if( $(change_id) && empty ) $(change_id).value = '';
			}
		});
		if(!empty && toggle && $(toggle))
		{
			$(toggle).setStyle('display','none');
		}
		if(empty && toggle && $(toggle))
		{
			$(toggle).setStyle('display','block');
		}
	}


	/*
	*
	*
	*	Check FILE UPLOAD fields
	*
	*
	*/
	function checkfile(el)
	{
		var error_container = el.getPrevious().getPrevious().getFirst();
		var message_container = el.getPrevious().getPrevious().getFirst().getNext();
		if(el.value && error_container.getTag() == "em" && message_container.getTag() == "i" )
		{
			var file = '';
			if(el.value.lastIndexOf('/')) file = el.value.substring( el.value.lastIndexOf('/') );
			if(file.lastIndexOf('\\')) file = file.substring( file.lastIndexOf('\\') );

			var suffix = file.substring( file.lastIndexOf('.')+1 );
			
			if(el.className.indexOf('['))
			{
				var suffixes = el.className.substring( el.className.indexOf('[')+1 );
				suffixes = suffixes.substring( 0, suffixes.indexOf(']') );
				if(suffixes.indexOf(',')) var check_suffix = suffixes.split(',');
				else check_suffix[0] = suffixes;
			}
						
			if( suffixes && check_suffix && !check_suffix.contains(suffix) )
			{
				var message = 'The selected file, "'+file+'", is unsafe to upload. The file should end with one of the following: '+suffixes.replace(/,/g,', ')+' (all lower case).';
				el.value = '';
				message_container.setHTML('');			
				error_container.setHTML(message);			
			} 
			else
			{
				var message = 'The selected file "'+file+'" is safe to upload!';
				message_container.setHTML(message);			
				error_container.setHTML('');			
			}			
			
		}
	}


	/*
	*
	*
	*	Check required fields
	*
	*
	*/
	function required(id)
	{
		var message = null;
		if( !$(id).value ) message = $(id).title.length>0 ? $(id).title : 'This is required';		
		formError(id,message);
	}


	/*
	*
	*
	*	Display Error Message
	*
	*
	*/
	function formError(id,message)
	{

		var container = $(id).getPrevious().getPrevious().getFirst();
		var use_container = container && container.getTag()=="em";

		if( message )
		{
			if(use_container) container.setHTML(message);
			$(id).addClass('input-error').removeClass('input-ok');
			return;
		}
		else
		{
			$(id).removeClass('input-error').addClass('input-ok');
			return;
		}

	}


