function isValidEmailAddress(emailAddress)
{
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	return pattern.test(emailAddress);
}


var commentoptions = { 
        success: function(responseText, statusText) {
			  if (responseText.status == 'ok') 
			  {
				  // $('#response').text(responseText.msg).show();
			  	  $('#comment').val("");
			  	  $('#email').val("");
			  	  $('#name').val("");
				  alert(responseText.msg);	
			  } else {
				 // $('#response').text(responseText.msg).show();
				  alert(responseText.msg);	
			  }
			},
        dataType: 'json' 
    };

$(document).ready(function() {

	$("a[href*=http://]").click(function(){
		    var url = $(this).attr('href');
		    if (url.lastIndexOf('?') != -1) {
		      url = url.substr(0, url.lastIndexOf('?'));
		    }
		    pageTracker._trackPageview('/outgoing/'+ url);
//		    console.log(pageTracker);
//		    alert(pageTracker);
	 });
	 
	if ($('#enter-content').length > 0) {
	    var curPage = '\"' + window.location + '\"';;
		if(curPage.indexOf("fb/1") > 0)
		{
			getFbUserInfo();
		}
	}
 	
   $('#comment-form').submit(function() 
    {
	      $(this).ajaxSubmit(commentoptions);
	      return false; 
    });    

  $('#next').click(function() {
    $('#prev').css('display', 'block');
    
    var curPage = $('.show').attr('id');    
    $('#'+curPage).addClass('hidden');
    $('#'+curPage).removeClass('show');
    curPage++;
    $('#'+curPage).removeClass('hidden');
    $('#'+curPage).addClass('show');
    curPage++;
    if ($('#'+curPage).length == 0) {
      $('#next').css('display', 'none');
    }    
  });
  
  $('#prev').click(function() {
    $('#next').css('display', 'block');

    var curPage = $('.show').attr('id');
    $('#'+curPage).addClass('hidden');
    $('#'+curPage).removeClass('show');
    curPage--;
    $('#'+curPage).removeClass('hidden');
    $('#'+curPage).addClass('show');
    curPage--;
    if ($('#'+curPage).length == 0) {
      $('#prev').css('display', 'none');
    }    
  });
  
  // photo upload
  $('#upload-submit').click(function(){
    var result = true;
    var exts = new Array(2)
    exts[0] = 'mov';
    exts[1] = 'flv';
    exts[2] = 'mpg';
    exts[3] = 'mpeg';
    exts[4] = 'avi';
    exts[5] = 'wmv';
    exts[6] = 'asf';
    
    var message = '';
    var name = $('#upload-image').val().toString().toLowerCase();
    
    if (name.length > 4) {
      //var ext = name.substring(name.length - 3);
      var ext = name.substring(name.lastIndexOf('.') + 1);
      var strExts = exts.toString();
      if (strExts.search(ext) == -1) {
         message = 'Invalid video format.\n\nPlease Try again. Thank you.';
      }
    } else {
       message = 'Invalid video format.\n\nPlease Try again. Thank you.';
    }
    
    if (message.length > 0) {
      alert (message);
      result = false;
    }
    
    if (!$('#agree-term').is(':checked')) {
      $('div.tip').show();
      result = false;
    }
    
    return result;
  });

});


function logoutFBUser()
{
	$('#comment-options-php').html('<div class="row"><label for="name">Comment using </label><input type="button" id="btn-connect" class="btn-connect" onclick="commentFBConnect()" /><br><br>  <label for="name"> or</label> <br></div><div class="row"><label for="name">your name :</label><input type="text" class="text" id="name" name="name" /></div><div class="row"><label for="email">your email :</label><input type="text" class="text" id="email" name="email" /></div>');
	$('#logged-user-php').text('');
			
	FB.Connect.logout(); 
	return false;
}

function showFacebookConnect()
{
	FB.ensureInit(function(){
		FB.Connect.requireSession(function(){
    			showFacebookPermissions();
		}, function() {
			showFacebookPermissions();
		});
	});
	return false;
}

function showFacebookConnectX()
{
	window.location.href= "/contest/enter/fb/0";
}

function commentFBConnect()
{
	FB.Connect.requireSession(function() {
		commentFBConnect2();
	}, function() {
		commentFBConnect2();
	});
}

function commentFBConnect2()
{
	//hack the improper size of the dialog
        setTimeout('$(".fb_connect_dialog_iframe").height(400);', 500);
	FB.Connect.showPermissionDialog("email,offline_access,publish_stream", function(perms) {
		var uid;
		if(FB.Facebook.apiClient.get_session())
		{
			uid = FB.Facebook.apiClient.get_session().uid ;
		}
		
		FB.Facebook.apiClient.users_getInfo(uid, ["first_name","last_name", "pic_square", "contact_email"], function(result, ex) 
												{
		                                          if(result && result.length > 0) {
														if(result[0].pic_square != null && result[0].pic_square.length > 0 && 
															result[0].first_name != null && result[0].first_name.length > 0 && 
															result[0].last_name != null && result[0].last_name.length > 0)
														{
															$('#last').val(result[0].last_name);
															$('#comment-options-php').text('');
															
															if(result[0].contact_email != null && result[0].contact_email.length > 0)
															{
																$('#logged-user-php').html('<div class="row" style="margin-left:130px;width:400px;"><div class="avatar"><img src="'+result[0].pic_square+'" /></div><div style="margin:25px 0px 0px 0px"><label for="name" style="margin:-10px 0px 0px 0px; text-align:left">'+result[0].first_name+' '+result[0].last_name+'</label><label for="name" style="margin:-5px 40px 0px 0px; text-align:left">'+result[0].contact_email+'</label></div></div><div style="width:100px; margin:-65px 0px 65px 20px"><input type="button" class="btn-logout" onclick="logoutFBUser()" /></div>');
															}else
															{
																$('#logged-user-php').html('<div class="row" style="margin-left:130px;width:400px;"><div class="avatar"><img src="'+result[0].pic_square+'" /></div><div style="margin:25px 0px 0px 0px"><label for="name" style="text-align:left">'+result[0].first_name+' '+result[0].last_name+'</label></div></div><div style="width:100px; margin:-65px 0px 65px 20px"><input type="button" class="btn-logout" onclick="logoutFBUser()" /></div>');
															}
														}
													}
												});		
		        
	 });
}

function showFacebookPermissions()
{
	FB.Facebook.apiClient.users_hasAppPermission("email", function (e) {
		if(e)
		{
			//good to go
			//window.location = "/contest/enter/fb/1/id/" + FB.Connect.get_loggedInUser();
			var uid = FB.Facebook.apiClient.get_session().uid;
			FB.Facebook.apiClient.users_getInfo(uid, ["first_name","last_name", "contact_email"], function(result, ex) 
			{
				if(result && result.length > 0)
					voteNow(result[0].contact_email);
				else
					voteNow(uid);
			});
		}
		else
		{
			popupFBPermissions();
		}
	});
}


function popupFBPermissions()
{
	//hack the improper size of the dialog
	setTimeout('$(".fb_connect_dialog_iframe").attr("style", "height:210px");', 500);
	FB.Connect.showPermissionDialog("email", function(perms) {
		var uid = FB.Facebook.apiClient.get_session().uid;
	   	if (!perms)
		{
		   	voteNow(uid);
		
		}
		else
		{
			//good to go
			FB.Facebook.apiClient.users_getInfo(uid, ["first_name","last_name", "contact_email"], function(result, ex) 
			{
				if(result && result.length > 0)
					voteNow(result[0].contact_email);
				else
					voteNow(uid);
			});
		}
	});
}

function voteNow(userInfo)
{	
	$.post("/contest/vote", { id: VIDEO_ID, info: userInfo }, function(data) {
		$('#popupshell').hide();
		
		var result = data.result;
		if (result.indexOf('ap') >= 0)
			$('#popupemail').show();
		else if (result.indexOf('ok') >= 0)
			$('#popupthx').show();
		else
			$('#popupno').show();
	}, "json");	
}


function getFbUserInfo()
{
    FB_RequireFeatures(["XFBML"], function()
    {
	FB.ensureInit(function(){
	FB.Connect.requireSession(function() 
      {
        	var uid = FB.Facebook.apiClient.get_session().uid ;
		FB.Facebook.apiClient.users_getInfo(uid, ["first_name","last_name", "contact_email", "current_location", "pic_small"], function(result, ex) 
												{
		                                          if(result && result.length > 0) {
														if(result[0].contact_email != null && result[0].contact_email.length > 0)
														{
															$('#address').val(result[0].contact_email);
															$('#address').parents('.row').addClass('correct');
														}
														if(result[0].first_name != null && result[0].first_name.length > 0)
														{
															$('#first').val(result[0].first_name);
															$('#first').parents('.row').addClass('correct');
														}
														if(result[0].last_name != null && result[0].last_name.length > 0)
														{
															$('#last').val(result[0].last_name);
															$('#last').parents('.row').addClass('correct');
														}
														if(result[0].current_location != null)
														{
															if(result[0]["current_location"].city != null && result[0]["current_location"].city.length > 0)
															{
																$('#city').val(result[0]["current_location"].city);
																$('#city').parents('.row').addClass('correct');
															}
															if(result[0]["current_location"].state != null && result[0]["current_location"].state.length > 0)
															{
																if(result[0]["current_location"].state == 'Alberta')
																{
																	selectMe('province',1,1);
																}else if(result[0]["current_location"].state == 'British Columbia')
																{
																	selectMe('province',2,1);
																}else if(result[0]["current_location"].state == 'Manitoba')
																{
																	selectMe('province',3,1);
																}else if(result[0]["current_location"].state == 'New Brunswick')
																{
																	selectMe('province',4,1);
																}else if(result[0]["current_location"].state == 'Newfoundland and Labrador')
																{
																	selectMe('province',5,1);
																}else if(result[0]["current_location"].state == 'Nova Scotia')
																{
																	selectMe('province',6,1);
																}else if(result[0]["current_location"].state == 'Northwest Territories')
																{
																	selectMe('province',7,1);
																}else if(result[0]["current_location"].state == 'Nunavut')
																{
																	selectMe('province',8,1);
																}else if(result[0]["current_location"].state == 'Ontario')
																{
																	selectMe('province',9,1);
																}else if(result[0]["current_location"].state == 'Prince Edward Island')
																{
																	selectMe('province',10,1);
																}else if(result[0]["current_location"].state == 'Quebec')
																{
																	selectMe('province',11,1);
																}else if(result[0]["current_location"].state == 'Saskatchewan')
																{
																	selectMe('province',12,1);
																}else if(result[0]["current_location"].state == 'Yukon')
																{
																	selectMe('province',13,1);
																}
															}
															if(result[0]["current_location"].zip != null && result[0]["current_location"].zip.length > 0)
															{
																$('#code').val(result[0]["current_location"].zip);
																var zip = trim($('#code').val());
																var regEx = /[a-zA-Z][0-9][a-zA-Z](-| |)[0-9][a-zA-Z][0-9]$/;
																if(!regEx.test(zip)) $('#code').parents('.row').addClass('error');
																else $('#code').parents('.row').addClass('correct');
															}
														}
		                                          }                                    
		                                    }
		                              );
      }); });
    });
}
