// Global variables
var min_day_page = 65788;
var due_date = {};
var regvals = '';
var reghost = 'forums.familyeducation.com';
var subdomain = window.location.href.split("/")[2].split(".")[0];
if(subdomain.length > 0) {
  switch(subdomain) {
    case 'dev':
    case 'cert':
      reghost = subdomain + '.' + reghost;
      break;
  }
}

$(document).ready(function(){
  var maxDays = 7*42;
  var start = new Date();
  // Today - 42 weeks
  start.setDate(start.getDate()-maxDays);
  var end = new Date();
  // Today + 42 weeks
  end.setDate(end.getDate()+maxDays);
  
  $("#registerId").dialog({
    autoOpen: false,
    modal: true,
    height: 625,
    width: 870,
    draggable: false,
    resizable: false,
    zIndex: 10001,
    close: function(){
      var rurl = get_redirect_url();
      if(rurl.length > 0) {
        window.location = rurl;
      }
      else {
        if(! is_empty(window.due_date)) {
          if($('.duehead').length) {
            $('.duehead').replaceWith('<h3 class="dueerror">You have selected an invalid date. Please try again.</h3>');
          }
          else if($('.co-duedate p:first').length){
            $('.co-duedate p:first').replaceWith('<h3 class="dueerror">You have selected an invalid date. Please try again.</h3>');
          }
          else {}
        }
      }
    }
  });

  $("#loginId").dialog({
    autoOpen: false,
    modal: true,
    height: 285,
    width: 430,
    draggable: false,
    resizable: false,
    zIndex: 10001
  });
  
  try {
    $('#year').numericOptions({from:start.getFullYear(),to:end.getFullYear(),startLabel:['Year','']});
    var letters = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
    $('#month').numericOptions({from:1,to:12,labels:letters,startLabel:['Month','']});
    $('#date').numericOptions({valuePadding:2,startLabel:['Day','']});
    $('#due-year').numericOptions({from:start.getFullYear(),to:end.getFullYear(),startLabel:['Year','']});
    $('#due-month').numericOptions({from:1,to:12,labels:letters,startLabel:['Month','']});
    $('#due-date').numericOptions({valuePadding:2,startLabel:['Day','']});
  
    $('#registerform').find('input[name=submit]').click(function() {
      regvals = $('#registerform').serialize();
      due_date = parse_params(regvals);
      var pregnancy = new Pregnancy();    
      pregnancy.setDueDate(window.due_date.year, window.due_date.month, window.due_date.date);
      var current_day_id = pregnancy.getCurrentDayId();
      if(current_day_id > 0) {
        // Read the FEN cookie
        var cval = $.cookie('FeRegU');
        try {
          if (cval.indexOf('&') > -1) {
            showProfile();  
          }
          else {
            showRegistersubmit();
          }
        }
        catch(Exception) {
          showRegistersubmit();
        }
      }
      else {
        if($('.duehead').length) {
          $('.duehead').replaceWith('<h3 class="dueerror">You have selected an invalid date. Please try again.</h3>');
        }
        else if($('.co-duedate p:first').length){
          if(!$('.co-duedate h3.dueerror').length) {
            $('.co-duedate p:first').replaceWith('<h3 class="dueerror">You have selected an invalid date. Please try again.</h3>');
          }
        }
        else {}
      }
    });
    
    $('#logout').click(function(e) {
      $("#logoutwindow").html('<iframe id="logoutwin" style="display:none;" width="0" height="0" frameBorder="0" scrolling="no" /></iframe>');
      try {
    	  $("#logoutwin").attr("src",pageTracker._getLinkerUrl("http://" + reghost + "/pregnancy-day-by-day/logout?rurl="+encodeURI(location.href))).load(function(){location.reload();});
      }
      catch(e) {
    	  var loadUrl = "http://" + reghost + "/pregnancy-day-by-day/logout?rurl="+encodeURI(location.href);
    	  $("#logoutwin").attr("src",loadUrl).load(function(){location.reload();});
      }
      return false;
    });
  }
  catch(Exception) {}
});

function is_empty(ob){
  for(var i in ob){ 
    return false;
  }
  return true;
}

function get_redirect_url() {
  var pregnancy = new Pregnancy();
  // Check cookie first
  var data = cookie_value('FeRegU');
  if(data !== false && data !== null) {
    // Due date hasn't been set
    if(data.due_date == undefined) {
      if(regvals.length < 1) {
        regvals = $('#registerform').serialize();
        window.due_date = parse_params(regvals);
      }
      else {
        //return window.location.href.replace(/#.*/, '');
        window.due_date = parse_params(regvals);
      }
    }
    else {
      var arrDateParts = data.due_date.split("-");
      window.due_date = {
        year: arrDateParts[0],
        month: arrDateParts[1],
        date: arrDateParts[2]  
      };
    }
  }
  else {
    if(regvals.length < 1) {
      regvals = $('#registerform').serialize();
    }
    window.due_date = parse_params(regvals);
  }
  
  pregnancy.setDueDate(window.due_date.year, window.due_date.month, window.due_date.date);
  var current_day_id = pregnancy.getCurrentDayId();
  if(current_day_id > 0) {
    return window.location.protocol + '//' + window.location.host + '/page/' + current_day_id + '.html';
  }
  
  return '';  
}

function showRegistersubmit() {
  $("#registerId").html('<iframe id="modalIframeId" width="830" height="570" marginWidth="0" marginHeight="0" frameBorder="0" scrolling="no" /></iframe>').dialog("open");
  //$("#modalIframeId").attr("src","http://forums.familyeducation.com/user/register/pregnancy-day-by-day?"+regvals+'&rurl='+encodeURI(get_redirect_url()));
  try {
	  $('#modalIframeId').attr('src', pageTracker._getLinkerUrl("http://" + reghost + "/user/register/pregnancy-day-by-day?"+regvals+'&rurl='+encodeURI(get_redirect_url())));
  }
  catch(e) {
	  $('#modalIframeId').attr('src', "http://" + reghost + "/user/register/pregnancy-day-by-day?"+regvals+'&rurl='+encodeURI(get_redirect_url()));
  }
  return false;
}

function showRegister(){
  $("#registerId").html('<iframe id="modalIframeId" width="830" height="570" marginWidth="0" marginHeight="0" frameBorder="0" scrolling="no" /></iframe>').dialog("open");
  try {
	  $("#modalIframeId").attr("src",pageTracker._getLinkerUrl("http://" + reghost + "/user/register/pregnancy-day-by-day?rurl="+encodeURI(location.href)));
  }
  catch(e) {
	  $("#modalIframeId").attr("src","http://" + reghost + "/user/register/pregnancy-day-by-day?rurl="+encodeURI(location.href));
  }
  return false;
}

function showRegisterinlogin(){
  $("#registerId").html('<iframe id="modalIframeId" width="830" height="570" marginWidth="0" marginHeight="0" frameBorder="0" scrolling="no" /></iframe>').dialog("open");
  try {
	  $("#modalIframeId").attr("src",pageTracker._getLinkerUrl("http://" + reghost + "/user/register/pregnancy-day-by-day?rurl="+encodeURI(location.href)));
  }
  catch(e) {
	  $("#modalIframeId").attr("src","http://" + reghost + "/user/register/pregnancy-day-by-day?rurl="+encodeURI(location.href));
  }
  $('#loginId').dialog('close');
  return false;
}

function showProfile() {
  $("#registerId").html('<iframe id="modalIframeId" width="830" height="570" marginWidth="0" marginHeight="0" frameBorder="0" scrolling="no" /></iframe>').dialog("open");
  if(regvals.length > 0) {
	try {  
		$("#modalIframeId").attr("src",pageTracker._getLinkerUrl("http://" + reghost + "/pregnancy-day-by-day/edit/profile?" + regvals + "&rurl="+encodeURI(get_redirect_url())));
	}
	catch(e) {
		$("#modalIframeId").attr("src", "http://" + reghost + "/pregnancy-day-by-day/edit/profile?" + regvals + "&rurl="+encodeURI(get_redirect_url()));
	}
  }
  else {
    try {
	  $("#modalIframeId").attr("src",pageTracker._getLinkerUrl("http://" + reghost + "/pregnancy-day-by-day/edit/profile?rurl="+encodeURI(get_redirect_url())));
    }
    catch(e) {
    	$("#modalIframeId").attr("src","http://" + reghost + "/pregnancy-day-by-day/edit/profile?rurl="+encodeURI(get_redirect_url()));
    }
  }
  return false;
}

function showLogin(){
  $("#loginId").html('<iframe id="modalIframeId2" width="395" height="200" marginWidth="0" marginHeight="0" frameBorder="0" scrolling="no" /></iframe><div id="login-content">Not registered for FamilyEducation.com?  <span id="login-signup"><a href="http://' + reghost + '/user/register/pregnancy-day-by-day?rurl='+encodeURI(location.href)+'" onclick="return showRegisterinlogin()">Sign up now.</a></span><div> ').dialog("open");
  try {
	  $("#modalIframeId2").attr("src",pageTracker._getLinkerUrl("http://" + reghost + "/pregnancy-day-by-day/login?rurl="+encodeURI(location.href)));
  }
  catch(e) {
	  $("#modalIframeId2").attr("src","http://" + reghost + "/pregnancy-day-by-day/login?rurl="+encodeURI(location.href));
  }
  
  // Bind a load event handler to the iframe
  $("#modalIframeId2").load(function(){
    // Check the current hash
    if(window.location.hash.substring(1) == 'done') {
      // Close the dialog
      $('#loginId').dialog('close');
      // Reload page
      window.location = window.location.href.replace( /#.*/, "");
    }
  });
  return false;
}

var Pregnancy = function(){
  this.min_day_page = 65788;
  this.due_date = '';  
  this.curr_day_id = 0;
  this.days_to_go = 0;
  this.days_past = 0;
  this.curr_day_id = 0;
  var tdate = new Date();
  tdate.setHours(0);
  tdate.setMinutes(0);
  tdate.setSeconds(0);
  tdate.setMilliseconds(0);
  this.today = Math.round(tdate.getTime()/1000.0);
}
Pregnancy.prototype.setDueDate = function(year, month, day) {
  this.due_date = new Date(year, month-1, day);
  var due_date_int = this.due_date.getTime()/1000.0;
  this.days_to_go = parseInt((due_date_int - this.today)/86400);
  this.days_past = 280 - this.days_to_go;
  if(this.days_to_go == 280) {
    this.curr_day_id = this.min_day_page;
  }
  else if(this.days_to_go > 0 && this.days_to_go < 280) {
    this.curr_day_id = this.min_day_page + this.days_past - 1;
  }
  else {
    this.curr_day_id = 0;
  }
}
Pregnancy.prototype.getDueDate = function() {
  return this.due_date;
}
Pregnancy.prototype.getDaysToGo = function() {
  return this.days_to_go; 
}
Pregnancy.prototype.getCurrentDayId = function() {
  return this.curr_day_id;
}

