$(function() { 
  $('#build_form').ajaxForm({
    dataType: 'json',
    beforeSubmit: buildSite,
    success: buildSiteReturn
  }); 
  
//  $('input.numOnly').validation({ type: 'int' });

  $('#submitBuildForm').click(
    function() {
      $('#build_form').submit();
    });
});

function buildSite() {
  $('#buildFormFields').hide();
  $('#buildingSpinner').show();
}

function buildSiteReturn(obj) {
  $('#buildingSpinner').hide();
  if(obj['error'] >= 1) {
    if(obj['error'] == 3 || obj['error'] == 4) {
      $('#password').val('');
      $('#passwordVerify').val('');
    }

    if(obj['error'] == 6) {
      $('#buildEmailCheck').show();
    }
    else {
      $('#buildFormFields').show();
      $('#errorMessage').html(obj['errorTxt']).show();
    }
  }
  else {
    document.location.href = obj['url'] + '?wizard=1';
  }
}

function goToFamster() {
  location.href = document.getElementById('websiteUrl').innerHTML;
}

function returnToBuildForm() {
  $('#buildEmailCheck').hide();
  $('#buildFormFields').show();
}

function sendPassword() {
  $('#buildEmailCheck').css('cursor', 'wait');
  doRequest('/ajax/sendPassword.json',
            'sendPasswordReturn',
            'email=' + escape(document.build_form.email.value));
}

function sendPasswordReturn(obj) {
  $('#buildEmailCheck').hide().css('cursor', 'default');
  $('#buildSendPassword').show();
}

function checkAvailName() {
  var websiteName = $('#websiteName').val();
  if(!websiteName) {
    $('#websiteNameNotEntered').show();
  }
  else if(/[^\w]/.test(websiteName)) {
    $('#websiteNameInvalidChars').show();    
  }
  else {
    $('#websiteNameNotEntered').hide();
    doRequest('/ajax/checkAvailName.json',
              'checkAvailNameReturn',
              'websiteName=' + escape(websiteName));
  }
}

function checkAvailNameReturn(obj) {
  if(obj['avail'] == 1) {
    $('#websiteNameIsNotAvail').hide();
    $('#websiteNameIsAvail').show();
  }
  else {
    $('#websiteNameIsAvail').hide();
    $('#websiteNameAlts').html(obj['alts']);
    $('#websiteNameIsNotAvail').show();
  }
}

function websiteNameEdit(v) {
  $('#websiteNameIsNotAvail').hide();
  $('#websiteNameIsAvail').hide();
  $('#websiteNameNotEntered').hide();
  $('#websiteNameInvalidChars').hide();
  if (/[^\w]/.test(v.value) || v.value.length > 50) {
    v.value = v.value.substring(0, (v.value.length - 1));
  }
}

function checkkeyWebsiteName(v) {
  if (/[^\w\-\.]/.test(v.value) || v.value.length > 50) {
    v.value = v.value.substring(0, (v.value.length - 1));
  }
}
