//<!--
jQuery(document).ready(function(){
	$('.btn-print').click(function(){
		window.print();
		return false;
	});
	
	$('.results-comments_all-link').click(function(){
		$('.results-comments_hidden').slideToggle();
		return false;
	});

	$('a.fancybox_inline').fancybox({
		'autoDimensions': true,
		'height': 'auto',
		'width': 'auto',
		'showCloseButton': false,
		'titleShow': false,
		'hideOnContentClick': false,
		'scrolling': 'no',
		'transitionIn': 'none',
		'transitionOut': 'none',
		'margin': 0,
		'padding': 0
	});
	$('#lisa_bio .close').click(function(){
		$.fancybox.close();
		return false;
	});
	
	// Open YouTube Fancybox
	$('a.youtube').click(function() {
		$.fancybox({
			'padding': 0,
			'autoScale': false,
			'transitionIn': 'none',
			'transitionOut': 'none',
			'title': this.title,
			'width': 640,
			'height': 385,
			'href': this.href.replace(new RegExp('watch\\?v=', 'i'), 'v/'),
			'type': 'swf',
			'swf': {
				'wmode': 'transparent',
				'allowfullscreen': 'true'
			}
		});
		
		return false;
	});
	
	//<iframe class="youtube-player" type="text/html" width="502" height="314" src="http://www.youtube.com/embed/<?php echo $optin_video_youtube_id; ?>?enablejsapi=1&version=3&hl=en&fs=1&rel=0&egm=0&showinfo=0&hd=0&loop=0&autoplay=1&wmode=transparent" frameborder="0" title="YouTube video player"></iframe>
	// Open YouTube Fancybox
	$('a.youtube-iframe').click(function() {
		$.fancybox({
			'padding': 0,
			'autoScale': false,
			'transitionIn': 'none',
			'transitionOut': 'none',
			'title': this.title,
			'width': 640,
			'height': 385,
			'href': this.href.replace(new RegExp('watch\\?v=', 'i'), 'embed/') +'?enablejsapi=1&version=3&hl=en&fs=1&rel=0&egm=0&showinfo=0&hd=0&loop=0&autoplay=1&wmode=transparent',
			'type': 'iframe'
		});
		
		return false;
	});

	$('.opt-in-box a').fancybox({
		'autoDimensions': true,
		'height': 'auto',
		'width': 'auto',
		'showCloseButton': false,
		'titleShow': false,
		'hideOnContentClick': false,
		'scrolling': 'no',
		'transitionIn': 'none',
		'transitionOut': 'none',
		'margin': 0,
		'padding': 0
	});
	$('#optin_popup .close').click(function(){
		$.fancybox.close();
		return false;
	});
	
	$('#optin_thank-you_popup').fancybox({
		'autoDimensions': true,
		'height': 'auto',
		'width': 'auto',
		'showCloseButton': false,
		'titleShow': false,
		'hideOnContentClick': true,
		'scrolling': 'no',
		'transitionIn': 'none',
		'transitionOut': 'none',
		'margin': 0,
		'padding': 0
	});
	$('#optin_thank-you_popup .close').click(function(){
		$.fancybox.close();
		return false;
	});
	
	setup_optin_form();
});

/** 
 * Record page hit for analytics.
 * 
 * USAGE:
	$('.analytics_click').click(function(event)
	{
		record_page_hit( $(this).attr('rel') );
		return true;
	});
 */
function record_page_hit( page )
{
	if ( page.length > 0 )
	{
		var analytics_base_page = base_url +'analytics/';
		// Change iframe src to make a faux page hit with some relevance
		$('#iframe_analytics').attr('src', analytics_base_page + page);
	}
}

function setup_optin_form ()
{
	var form_selector = '#optin_form';
	
	// Set form elements
	var $form_ref = $( form_selector );
	var $form_response_ref = $form_ref.find('.feedback_box:first');//$form_ref.prev('.form_feedback');//$this.parent().find('.form_feedback');//$(this).closest('.result');//.feedback_box
	
	// Set form options; $.ajax options can be used here too.
	var options = { 
		target: $form_response_ref, // target element(s) to be updated with server response
		timeout: 30000, 
		dataType: 'json', 
		cache: false, 
		processData: false, 
		type: 'POST', 
		// Force the form to use an AJAX response on the backend.
		beforeSerialize: function( $form, options )
		{
			$form_ref.append('<input type="hidden" name="is_ajax" value="1" />');
		}, 
		// Before submission handler
		beforeSubmit: function( formData, jqForm, options )
		{
			if ( emailCheck($('#p-email').val()) !== true )
			{
				return false;
			}
			else if ( $('#p-name').val().length == 0 )
			{
				alert('Please enter your Name.');
				return false;
			}
			else if ( $('#p-zip').val().length == 0 )
			{
				alert('Please enter your Zip Code.');
				return false;
			}
			else
			{
				//$.cookies.set('email', $('input[name=email]').val());
				$form_response_ref.html('Sending...');
				$form_response_ref.show();
			}
		}, 
		// Success handler
		success: function successHandler( data, textStatus )
		{
			if ( data )
			{
				var success = (parseInt(data['return_code']) == 1 );
				
				if (success)
				{
					$form_ref.find('.clearFields').clearFields();
					
					var target = (window.parent) ? window.parent : window;
					
					// Fancybox 1.3
					if ( target.$.fancybox )
					{
						target.$.fancybox.close();
					}
					// Fancybox 1.2.1
					else if ( target.$.fn.fancybox )
					{
						target.$.fn.fancybox.close();
					}
					
					record_page_hit('opt-in/thank-you');
					$('#optin_thank-you_popup').trigger('click');
					
					//$form_ref.hide();
					//$('.iframe_sign_up').eq(0).trigger('click');
					//target.location.reload();
					//target.location.href = base_url +'realtors/sign-up';
					/*
					if ( $(target.$('#fancy_frame')).length > 0 )
					{
						target.$('#fancy_frame').attr('src', base_url +'realtors/sign-up_thank-you');
					}
					else
					{
						target.location.href = base_url +'realtors/sign-up_thank-you';
					}
					return;
					*/
				}
				else
				{
					$form_response_ref.addClass('feedback_box_error');
				}
				
				$form_response_ref.html(data['return_value']);
				$form_response_ref.show();//$form_response_ref.slideDown('fast');
			}
		}, 
		// Error handler
		error: function( XMLHttpRequest, textStatus, errorThrown )
		{
			$form_response_ref.html('There was an error with the request.<br />Javascript: '+ errorThrown +'<br />Application: '+ XMLHttpRequest.responseText);
			$form_response_ref.show();//$form_response_ref.slideDown('fast');
		}
	};
	
	// Bind functionality 
	$form_ref.ajaxForm(options);
	
	return;
}

// VALIDATION
function emailCheck (emailStr) 
{
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	
	if (matchArray==null) 
	{
	    alert("Email address seems incorrect (check @ and .'s)");
	    return false;
	}
	
	var user=matchArray[1];
	var domain=matchArray[2];
	
	if (user.match(userPat)==null) 
	{
	    alert("The username doesn't seem to be valid.");
	    return false;
	}
	
	var IPArray=domain.match(ipDomainPat);
	
	if (IPArray!=null) 
	{
	      for (var i=1;i<=4;i++) 
	      {
	        if (IPArray[i]>255) 
	        {
				alert("Destination IP address is invalid!");
				return false;
	        }
	    }
	    return true;
	}
	
	var domainArray=domain.match(domainPat);
	
	if (domainArray==null) 
	{
	    alert("The domain name doesn't seem to be valid.");
	    return false;
	}
	
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	
	if ((domArr[domArr.length-1] != "info") &&
	    (domArr[domArr.length-1] != "name") &&
	    (domArr[domArr.length-1] != "arpa") &&
	    (domArr[domArr.length-1] != "coop") &&
	    (domArr[domArr.length-1] != "aero")) 
	{
		if (domArr[domArr.length-1].length<2 ||
			domArr[domArr.length-1].length>3) 
		{
			alert("The address must end in a three-letter domain, or two letter country.");
			return false;
		}
	}
	
	if (len<2)
	{
	   var errStr="This address is missing a hostname!";
	   alert(errStr);
	   return false;
	}
	return true;
}
