function w3Register()
{
  i_websiteFree = 0;
}

w3Register.setWebsiteFree = function(s_json)
{
  this.i_websiteFree = s_json.evalJSON();
}

w3Register.getLogAccessFormElements = function()
{
  return new Array('log_access_method', 'log_access_host', 'log_access_path', 'log_access_username', 'log_access_password');
}

w3Register.getAccountFormElements = function()
{
  return new Array('account_holder', 'account_bank', 'account_code', 'account_number');
}

w3Register.getAddressFormElements = function()
{
  return new Array('address_title', 'address_firstname', 'address_lastname', 'address_company', 'address_company_org', 'address_street', 'address_zip', 'address_city', 'address_mail');
}


w3Register.setProfessional = function(b_professional)
{
  var o_professionalUnlimited = $('w3s-professional-unlimited');

  var o_formBlockAddressSwitch = $('w3s-address-switch');
  var o_formBlockAddress = $('w3s-address-form');
  var o_formBlockAccountSwitch = $('w3s-account-switch');
  var o_formBlockAccount = $('w3s-account-form');
  var o_formBlockDataAcquisition = $('w3s-data-acquisition');
  var o_formBlockLogAccess = $('w3s-log-access-form');

  var o_form = $('website_domain').form;
  var o_piLimit = o_form.elements['website[pi_limit]'];
  var o_limitRadio = o_form.elements['website[limit_radio]'];
  var o_unlimited = o_form.elements['website[unlimited]'];
  var o_product = o_form.elements['website[product]'];
  var o_addressSwitch = o_form.elements['address[different]'];
  var o_accountSwitch = o_form.elements['account[usage]'];
  var o_logSwitch = o_form.elements['website[log]'];

  for (var i_index = 0; i_index < o_limitRadio.length; ++i_index)
  {
//    o_limitRadio[i_index].hide();
    o_limitRadio[i_index].checked = false;
  }

  if (b_professional)
  {
	$('website_domain').form.elements['website[unlimited]'].checked = true
    o_professionalUnlimited.show();

    o_formBlockAddressSwitch.show();
    if (o_addressSwitch.checked == true)
    {
      o_formBlockAddress.show();
      this.setAddressFormElementsDisabled(o_form, false);
    }
    else
    {
      //o_formBlockAddress.hide();
      this.setAddressFormElementsDisabled(o_form, true);
    }

    o_accountSwitch.disabled = false;
    o_formBlockAccountSwitch.show();
    if (o_accountSwitch.checked == true)
    {
      o_formBlockAccount.show();
      this.setAccountFormElementsDisabled(o_form, false);
    }
    else
    {
      //o_formBlockAccount.hide();
      this.setAccountFormElementsDisabled(o_form, true);
    }

    o_logSwitch.disabled = false;
    o_formBlockDataAcquisition.show();
    this.switchLogAccessForm(o_logSwitch);

    o_unlimited.checked = true;
    o_piLimit.value = '0';
    
    $('w3s-account-form').show();
    this.setAccountFormElementsDisabled(o_form, false);
    o_accountSwitch.checked = true;
  }
  else
  {
    o_professionalUnlimited.checked = false;
    o_professionalUnlimited.hide();

    o_accountSwitch.checked = false; 

    o_formBlockAddressSwitch.hide();
    o_formBlockAddress.hide();
    o_formBlockAccountSwitch.hide();
    o_formBlockAccount.hide();
    o_formBlockDataAcquisition.hide();
    o_formBlockLogAccess.hide();
    this.setAddressFormElementsDisabled(o_form, true);
    this.setAccountFormElementsDisabled(o_form, true);
    this.setLogAccessFormElementsDisabled(o_form, true);
    o_logSwitch.disabled = true;
//    o_accountSwitch.disabled = true;

    o_unlimited.checked = false;
    o_piLimit.value = this.i_websiteFree;
    


  }
}

w3Register.askUnlimited = function(o_checkbox, s_question)
{
  if (!o_checkbox.checked)
  {
    if (confirm(s_question))
    {
      this.setUnlimited(o_checkbox);
    }
    else
    {
      o_checkbox.checked = true;
    }
  }
  else
  {
    this.setUnlimited(o_checkbox);
	
  }
}

w3Register.setUnlimited = function(o_checkbox)
{
  var o_form = o_checkbox.form;
  var o_limitRadio = o_form.elements['website[limit_radio]'];

  var o_piLimit = o_form.elements['website[pi_limit]'];

  if (o_checkbox.checked)
  {
    for (var i_index = 0; i_index < o_limitRadio.length; ++i_index)
    {
      o_limitRadio[i_index].hide();
      o_limitRadio[i_index].checked = false;
    }
    o_piLimit.value = '0';
  }
  else
  {
    for (var i_index = 0; i_index < o_limitRadio.length; ++i_index)
    {
      o_limitRadio[i_index].show();
      o_limitRadio[i_index].checked = false;
    }
    o_piLimit.value = '';
  }
}

w3Register.setLimit = function(o_radio)
{
  $('website_pi_limit').value = o_radio.value;
}

w3Register.initLimit = function()
{
  var o_piLimit = $('website_pi_limit');
  var i_piLimit = parseInt(o_piLimit.value);

 if (i_piLimit == this.i_websiteFree)
  {
    this.setProfessional(false);
  }
  else if (i_piLimit == 0)
  {
    this.setProfessional(true);
  } 
  else if (o_piLimit.value == '')
  {
    if ($('website_product_professional').checked == true)
    {
      this.setProfessional(true);
      var o_unlimited = o_piLimit.form.elements['website[unlimited]'];
//      o_unlimited.checked = false;
      this.setUnlimited(o_unlimited);
    }
  }
  else
  {
    this.setProfessional(true);

    var o_unlimited = o_piLimit.form.elements['website[unlimited]'];
    o_unlimited.checked = false;
    this.setUnlimited(o_unlimited);

    o_piLimit.value = i_piLimit;
    var o_limitRadio = o_piLimit.form.elements['website[limit_radio]'];
    for (var i_index = 0; i_index < o_limitRadio.length; ++i_index)
    {
      if (o_limitRadio[i_index].value == o_piLimit.value)
      {
        o_limitRadio[i_index].checked = true;
      }
    }
  }
}

w3Register.switchLogAccessForm = function(o_checkbox)
{
  var o_formBlock = $('w3s-log-access-form');
  if (o_checkbox.checked)
  {
    this.setLogAccessFormElementsDisabled(o_checkbox.form, false);
    o_formBlock.show();
  }
  else
  {
    o_formBlock.hide();
    this.setLogAccessFormElementsDisabled(o_checkbox.form, true);
  }
}

w3Register.switchAddressForm = function(o_checkbox)
{
  var o_formBlock = $('w3s-address-form');
  if (o_checkbox.checked)
  {
    this.setAddressFormElementsDisabled(o_checkbox.form, false);
    o_formBlock.show();
  }
  else
  {
    o_formBlock.hide();
    this.setAddressFormElementsDisabled(o_checkbox.form, true);
  }
}

w3Register.switchAccountForm = function(o_checkbox)
{
  var o_formBlock = $('w3s-account-form');
  if (o_checkbox.checked)
  {
    this.setAccountFormElementsDisabled(o_checkbox.form, false);
    o_formBlock.show();
  }
  else
  {
    //o_formBlock.hide();
    this.setAccountFormElementsDisabled(o_checkbox.form, true);
  }
}

w3Register.updateAddressForm = function(o_select)
{
  if (o_select.value == 0)
  {
    this.clearAddressForm();
    //this.setAddressFormElementsReadonly(o_select.form, false);
  }
  else
  {
    //this.setAddressFormElementsReadonly(o_select.form, true);
    this.fillAddressForm(this.a_addressList[o_select.value]);
  }
}

w3Register.clearAddressForm = function()
{
  var a_elements = this.getAddressFormElements();
  for(var i_index = 0; i_index < a_elements.length; ++i_index)
  {
    if ($(a_elements[i_index]))
    {
      $(a_elements[i_index]).value = '';
    }
  }
}

w3Register.fillAddressForm = function(a_formValues)
{
  var a_elements = this.getAddressFormElements();
  for(var i_index = 0; i_index < a_elements.length; ++i_index)
  {
    if ($(a_elements[i_index]))
    {
      $(a_elements[i_index]).value = a_formValues[a_elements[i_index].replace('address_', '')];
    }
  }
}

w3Register.updateAccountForm = function(o_select)
{
  if (o_select.value == 0)
  {
    this.clearAccountForm();
    //this.setAccountFormElementsReadonly(o_select.form, false);
  }
  else
  {
    //this.setAccountFormElementsReadonly(o_select.form, true);
    this.fillAccountForm(this.a_accountList[o_select.value]);
  }
}

w3Register.clearAccountForm = function()
{
  var a_elements = this.getAccountFormElements();
  for(var i_index = 0; i_index < a_elements.length; ++i_index)
  {
    if ($(a_elements[i_index]))
    {
      $(a_elements[i_index]).value = '';
    }
  }
}

w3Register.fillAccountForm = function(a_formValues)
{
  var a_elements = this.getAccountFormElements();
  for(var i_index = 0; i_index < a_elements.length; ++i_index)
  {
    if ($(a_elements[i_index]))
    {
      $(a_elements[i_index]).value = a_formValues[a_elements[i_index].replace('account_', '')];
    }
  }
}

w3Register.setLogAccessFormElementsDisabled = function(o_form, b_state)
{
  var a_elements = this.getLogAccessFormElements();
  this.setFormElementsDisabled(o_form, b_state, a_elements);
}

w3Register.setAddressFormElementsDisabled = function(o_form, b_state)
{
  var a_elements = this.getAddressFormElements();
  this.setFormElementsDisabled(o_form, b_state, a_elements);
}

w3Register.setAccountFormElementsDisabled = function(o_form, b_state)
{
  var a_elements = this.getAccountFormElements();
  this.setFormElementsDisabled(o_form, b_state, a_elements);
}

w3Register.setFormElementsDisabled = function(o_form, b_state, a_elements)
{
  for(var i_index = 0; i_index < a_elements.length; ++i_index)
  {
    if ($(a_elements[i_index]))
    {
      $(a_elements[i_index]).disabled = b_state;
    }
  }
}

w3Register.setAddressFormElementsReadonly = function(o_form, b_state)
{
  var a_elements = this.getAddressFormElements();
  this.setFormElementsReadonly(o_form, b_state, a_elements);
}

w3Register.setAccountFormElementsReadonly = function(o_form, b_state)
{
  var a_elements = this.getAccountFormElements();
  this.setFormElementsReadonly(o_form, b_state, a_elements);
}

w3Register.setFormElementsReadonly = function(o_form, b_state, a_elements)
{
  for(var i_index = 0; i_index < a_elements.length; ++i_index)
  {
    if ($(a_elements[i_index]))
    {
      $(a_elements[i_index]).readOnly = b_state;
    }
  }
}

w3Register.resetStep1 = function()
{
  document.registerStep1.reset();
}

w3Register.resetStep2 = function()
{
  document.registerStep2.reset();

  this.initStep2();

  var o_addressSelect = $('address_id');
  if (o_addressSelect)
  {
    this.updateAddressForm(o_addressSelect);
  }
  var o_accountSelect = $('account_id');
  if (o_accountSelect)
  {
    this.updateAccountForm(o_accountSelect);
  }
}

w3Register.initStep2 = function()
{
  this.initLimit();
  this.switchLogAccessForm($('website_log'));
}

w3Register.useMailAsUsername = function () {
	if ($('user_username').value.length == 0) {
		$('user_username').value = $('address_mail').value;
	}
}
