$(document).ready(function () {
   $('.nav_bar_link').unbind('click').click(function() {
      var page = $(this).attr('page');
      if (page == 'logout') {
         $.get('includes/logout.php', function() {
            $('html').scrollTop(0);
            location.replace(returnURL);
         });
         return false;
      }
      loadContent($(this));
      return false;
   });

   $('#language img').click(function() {
      $.get('includes/changelang.php', {'lang': $(this).attr('locale')}, function() {
         location.replace(returnURL);
      });
   });

   $("#call_to_action").find('[page]').click(function() {
      loadContent($(this));
      return false;
   });

   loadContent($('#'+currentPage), scroll);
});

function loadContent(trigger, scroll)
{
   if (scroll == undefined || scroll == true) {
      scroll = $('#nav_bar');
   }

   var page = $(trigger).attr('page');
   if (page != currentPage) {
      lowlight(currentPage);
   }
   currentPage = page;
   highlight(page);

   var args = {};
   if (trigger.attr('args')) {
      arguments = trigger.attr('args').split(';');
      for (var arg in arguments) {
         pair = arguments[arg].split('=');
         args[pair[0]] = pair[1];
      }
   }

   url = "pages/" + page + ".php";

   try {
      var pageTracker = _gat._getTracker("UA-285233-4");
      pageTracker._trackPageview(url);
   } catch(err) {
   }

   $.get(url, {args: args}, function(result) {
      $("#content_holder").html(result);

      // Photogallery is a special case
      $('#aboutphotos').each(function() {
         new PhotoGallery($("#aboutphotos").first(), 640, 320, [ "img/gallery/about_1.jpg", "img/gallery/about_2.jpg" ]);
      });

      $("#content_holder").find('[page]').click(function() {
         loadContent($(this));
         return false;
      });

      $("#content_holder").find('[func]').click(function() {
         eval($(this).attr('func')+'(this)');
         return false;
      });

      $("#content_holder").find('.faq_question').click(function() {
         $(this).next('.faq_answer').toggle();
      });

      if (scroll != false) {
         $('html,body').animate({scrollTop: $(scroll).offset().top}, 750);
      }

      setTimeout( function() {
         $("#content_holder").find('input:first').focus();
      } , 500);
   });
   return false;
}

function highlight(id) {
   var button = $('#'+id);
   button.toggleClass('nav_bar_link_selected',true);
   button.toggleClass('nav_bar_link_down',false);
}

function lowlight(id) {
   var button = $('#'+id);
   button.toggleClass('nav_bar_link_selected',false);
   button.toggleClass('nav_bar_link_down',true);
}

function trial_register()
{
   var form = $('#trial_form');

   // Check the fields
   var ok = true;
   $('.error_text').html('');
   form.find('input').removeClass('error');

   var company = form.find('[name=company]');
   var fname = form.find('[name=fname]');
   var lname = form.find('[name=lname]');
   var telno = form.find('[name=telno]');
   var email = form.find('[name=email]');
   if (company.val() == '') {
      company.addClass('error');
      company.parent().next().html('Company name needs to be filled in');
      ok = false;
   }
   if (fname.val() == '') {
      fname.addClass('error');
      fname.parent().next().html('First name needs to be filled in');
      ok = false;
   }
   if (lname.val() == '') {
      lname.addClass('error');
      lname.parent().next().html('Last name needs to be filled in');
      ok = false;
   }
   if (telno.val() == '') {
      telno.addClass('error');
      telno.parent().next().html('Telephone number needs to be filled in');
      ok = false;
   }
   if (email.val() == '') {
      email.addClass('error');
      email.parent().next().html(_('support.email.empty'));
      ok = false;
   } else {
      var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
      if (!filter.test(email.val())) {
         email.addClass('error');
         email.parent().next().html(_('support.email.invalid'));
         ok = false;
      }
   }
   var password = form.find('[name=password]');
   if (password.val() == '') {
      password.addClass('error');
      password.parent().next().html(_('support.password.empty'));
      ok = false;
   }
   var confirm = form.find('[name=confirm]');
   if (confirm.val() == '') {
      confirm.addClass('error');
      confirm.parent().next().html(_('support.password.empty'));
      ok = false;
   }
   if (password.val() != confirm.val()) {
      password.addClass('error');
      confirm.addClass('error');
      confirm.parent().next().html(_('support.password.thesame'));
      ok = false;
   }
   if (ok) {
      $.post('includes/trial_register.php', {'company': company.val(), 'email': email.val(), 'password': password.val(), 'notes': 'Name: ' + fname.val() + ' '  + lname.val() + '; Telno: ' + telno.val() }, function(status) {
         if (status == true) {
            alert('Thank you for registering. Please remember your e-mail address and password as these give you access to the business edition of Casper. You are now automatically logged in.');
            $('html').scrollTop(0);
            location.replace(returnURL);
         } else {
            alert(status);
         }
      });
   }

   return false;
}

function register()
{
   var form = $('#register_form');

   // Check the fields
   var ok = true;
   $('.error_text').html('');
   form.find('input').removeClass('error');

   var email = form.find('[name=email]');
   if (email.val() == '') {
      email.addClass('error');
      email.parent().next().html(_('support.email.empty'));
      ok = false;
   } else {
      var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
      if (!filter.test(email.val())) {
         email.addClass('error');
         email.parent().next().html(_('support.email.invalid'));
         ok = false;
      }
   }
   var password = form.find('[name=password]');
   if (password.val() == '') {
      password.addClass('error');
      password.parent().next().html(_('support.password.empty'));
      ok = false;
   }
   var confirm = form.find('[name=confirm]');
   if (confirm.val() == '') {
      confirm.addClass('error');
      confirm.parent().next().html(_('support.password.empty'));
      ok = false;
   }
   if (password.val() != confirm.val()) {
      password.addClass('error');
      confirm.addClass('error');
      confirm.parent().next().html(_('support.password.thesame'));
      ok = false;
   }
   if (form.find('[name=accept]:checked').length == 0) {
      form.find('[name=accept]').parent().parent().next().html(_('support.register.accept'));
      ok = false;
   }
   if (ok) {
      $.post('includes/register.php', {'email': email.val(), 'password': password.val()}, function(status) {
         if (status == 1) {
            $('html').scrollTop(0);
            location.replace(returnURL);
            alert(_('support.registration.ready').replace('<email>', email.val()));
         } else if (status != 2)
            alert(status);
         else
            location.replace(returnURL);
      });
   }
   return false;
}

function login()
{
   var form = $('#login_form');

   // Check the fields
   var ok = true;
   $('.error_text').html('');
   form.find('input').removeClass('error');
   var email = form.find('[name=email]');
   if (email.val() == '') {
      email.addClass('error');
      email.parent().next().html(_('support.email.empty'));
      ok = false;
   }
   var password = form.find('[name=password]');
   if (password.val() == '') {
      password.addClass('error');
      password.parent().next().html(_('support.password.empty'));
      ok = false;
   }
   var remember = false;
   if (form.find('[name=remember]:checked').length > 0) {
      remember = true;
   }
   if (ok) {
      $.post('includes/login.php', {'email': email.val(), 'password': password.val(), 'remember': remember}, function(status) {
         if (status == true) {
            $('html').scrollTop(0);
            location.replace(returnURL);
         } else {
            alert(status);
         }
      });
   }
   return false;
}

function pay()
{
   var form = $('#payment_form');
   // Check the fields
   var ok = true;
   $('.error_text').html('');
   form.find('input').removeClass('error');
   var period = form.find('[name=period]');
   if (period.val() == '') {
      period.parent().next().html(_('support.pay.selectperiod'));
      ok = false;
   }
   var currency = form.find('[name=currency]');
   var method = form.find('[name=method]');
   if (method.val() == '') {
      method.parent().next().html(_('support.pay.selectmethod'));
      ok = false;
   }
   if (currency.val() == 'GBP' && method.val() == 'IDEAL') {
      method.parent().next().html(_('support.pay.invalidmethod'));
      ok = false;
   }
   var coupon = form.find('[name=coupon]');
   if (ok) {
      $.post('includes/pay.php', {'period': period.val(), 'currency': currency.val(), 'method': method.val(),
                                  'coupon': coupon.val()}, function(result) {
         if (result == 'INVALIDCOUPON') {
            coupon.parent().next().html(_('support.pay.invalidcoupon'));
         } else {
            var args = result.split('-');
            var purchaseID = args[0];
            var amount = args[1];
            var button_id = args[2];
            if (method.val() == 'IDEAL') {
               $('#idealpayment [name=purchaseID]').val(purchaseID);
               $('#idealpayment [name=amount]').val(amount);
               $('#idealpayment [name=itemPrice1]').val(amount);
               $('#idealpayment [name=itemQuantity1]').val(1);
               $('#idealpayment [name=itemNumber1]').val(button_id);
               $('#idealpayment').submit();
            } else {
               $('#paypalpayment [name=custom]').val(purchaseID);
               $('#paypalpayment [name=hosted_button_id]').val(button_id);
               $('#paypalpayment').submit();
            }
         }
      });
   }
   return false;
}

function newpassword()
{
   var form = $('#lp_form');

   // Check the fields
   var ok = true;
   form.find('.error_text').html('');
   form.find('input').removeClass('error');
   var email = form.find('[name=email]');
   if (email.val() == '') {
      email.addClass('error');
      email.parent().next().html(_('support.email.empty'));
      ok = false;
   } else {
      var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
      if (!filter.test(email.val())) {
         email.addClass('error');
         email.parent().next().html(_('support.email.invalid'));
         ok = false;
      }
   }
   if (ok) {
      $.post('includes/sendnewpassword.php', {'email': email.val()}, function(status) {
         alert(status);
         email.val('');
      });
   }
   return false;
}

function changepassword()
{
   var form = $('#cp_form');

   // Check the fields
   var ok = true;
   form.find('.error_text').html('');
   form.find('input').removeClass('error');
   var oldpassword = form.find('[name=oldpassword]');
   if (oldpassword.val() == '') {
      oldpassword.addClass('error');
      oldpassword.parent().next().html(_('support.email.empty'));
      ok = false;
   }
   var newpassword = form.find('[name=newpassword]');
   if (newpassword.val() == '') {
      newpassword.addClass('error');
      newpassword.parent().next().html(_('support.password.empty'));
      ok = false;
   }
   var newpassword2 = form.find('[name=newpassword2]');
   if (newpassword2.val() == '') {
      newpassword2.addClass('error');
      newpassword2.parent().next().html(_('support.password.empty'));
      ok = false;
   }
   if (newpassword.val() != newpassword2.val()) {
      newpassword.addClass('error');
      newpassword2.addClass('error');
      newpassword2.parent().next().html(_('support.password.thesame'));
      ok = false;
   }

   if (ok) {
      $.post('includes/changepassword.php', {'oldpassword': oldpassword.val(), 'newpassword': newpassword.val()}, function(status) {
         alert(status);
         oldpassword.val('');
         newpassword.val('');
         newpassword2.val('');
      });
   }
   return false;
}

function contactus()
{
   var form = $('#cu_form');

   // Check the fields
   var ok = true;
   form.find('.error_text').html('');
   form.find('input,textarea').removeClass('error');
   var name = form.find('[name=name]');
   if (name.val() == '') {
      name.addClass('error');
      name.parent().next().html(_('support.contact_us.name.empty'));
      ok = false;
   }
   var email = form.find('[name=email]');
   if (email.val() == '') {
      email.addClass('error');
      email.parent().next().html(_('support.contact_us.email.empty'));
      ok = false;
   }
   var subject = form.find('[name=subject]');
   if (subject.val() == '') {
      subject.addClass('error');
      subject.parent().next().html(_('support.contact_us.subject.empty'));
      ok = false;
   }
   var message = form.find('[name=message]');
   if (message.val() == '') {
      message.addClass('error');
      message.parent().next().html(_('support.contact_us.message.empty'));
      ok = false;
   }

   if (ok) {
      $.post('includes/sendmessage.php', {'name': name.val(), 'email': email.val(), 'subject': subject.val(), 'message': message.val()}, function(status) {
         alert(status);
         name.val('');
         if (email.attr('type') != 'hidden') {
            email.val('');
         }
         subject.val('');
         message.val('');
      });
   }

   return false;
}

function save_news()
{
   var id = $('[name=id]').val();
   var news_date = $('[name=news_date]').val();
   var title = $('[name=title]').val();
   var content = $('[name=content]').val();
   $.post('includes/save_news.php', {'id': id, 'news_date': news_date, 'title': title, 'content': content}, function(status) {
      loadContent($('#news'), true);
   });
   return false;
}

function delete_news()
{
   var id = $('[name=id]').val();
   $.post('includes/delete_news.php', {'id': id}, function(status) {
      loadContent($('#news'), true);
   });
   return false;
}

