//<![CDATA[
var already_submitted = false;
  
var error_msg = new Object();
error_msg['internal_error']    = new String('Es ist ein interner Fehler aufgetreten. Bitte versuchen Sie die Aktion erneut.');
error_msg['js_error']          = new String('Es ist ein Javascript Fehler aufgetreten. Bitte laden Sie die Seite neu.');

function step_disable(step) {
  var table = document.getElementById('step_'+step);
  var div_disable = document.getElementById('step_disable_'+step);

  div_disable.style.width = (table.offsetWidth+1)+'px';
  div_disable.style.height = table.offsetHeight+'px';
  div_disable.style.visibility = "visible";
}

function step_enable(step) {
  var div_disable = document.getElementById('step_disable_'+step);
  div_disable.style.visibility = "hidden";
}

function step_disable_all_next(step_name) {
  var start = 99;
  for (var i=0;i<steps.length;i++) {
    if (step_name == steps[i]) start = i+1;
    if (i >= start) step_disable(i);
  }
}

function step_enable_next(step_name) {
  for (var i=0;i<steps.length;i++) {
    if (step_name == steps[i]) {
      step_enable(i+1);
      return;
    }
  }
}

function base_checked(obj) {
  if (obj.checked == true) {
    step_enable(1);
    step_enable(2);
    step_enable(3);
  } else {
    step_disable(1);
    step_disable(2);
    step_disable(3);
  }
  show_price();
  return true;
}


  function show_price() {
    
    var mail2sms_el        = document.getElementById('mail2sms');
    var freesms_el         = document.getElementById('freesms');
    var subaccounts_el     = document.getElementById('subaccounts');
    var subaccounts_optional_el = document.getElementById('subaccounts_optional');
    var subacc_el          = document.getElementById('form_product_choice').subacc;
    var mehrwert_el        = document.getElementById('mehrwert');
    var smsbox_el          = document.getElementById('smsbox');
    var offers_el          = document.getElementById('optional_offers');
    var offers_freesms_el  = document.getElementById('optional_freesms');
    var offers_mail2sms_el = document.getElementById('optional_mail2sms');
    var offers_subaccounts_el = document.getElementById('optional_subaccounts');
    var offers_mehrwert_el = document.getElementById('optional_mehrwert');
    var offers_smsbox_el   = document.getElementById('optional_smsbox');
    
    var mail2sms_price_el  = document.getElementById('mail2sms_price');
    var freesms_price_el   = document.getElementById('freesms_price');
    var price_base_fee     = parseFloat(document.getElementById('price_base_fee').value || 0);
    var price_monthly_fee  = parseFloat(document.getElementById('price_monthly_fee').value || 0);
    var softstorno         = parseFloat(document.getElementById('price_soft_storno').value || 0);
    
    var mail2sms           = parseFloat(mail2sms_price_el.value || 0);
    var freesms            = parseFloat(freesms_price_el.value || 0);
    var aktion             = parseFloat(price_base_fee * (-1));
    
    var offers = 0;
    if (mail2sms_el.checked == true) {
      offers_mail2sms_el.style.display = '';
      offers = 1;
    } else {
      mail2sms = 0;
      offers_mail2sms_el.style.display = 'none';
    }
    
    if (freesms_el.checked == true) {
      offers_freesms_el.style.display = ''; 
      offers = 1;
    } else {
      freesms = 0;
      offers_freesms_el.style.display = 'none';
    }

    var price_subacc     = 0;
    if (subaccounts_el.checked == true) {
      show_subaccountlist(subaccounts_el);
      var checked_value = show_subacc_offers(0);
      if (checked_value>0) {
        offers = 1;
        price_subacc = parseFloat(document.getElementById('price_subacc_'+checked_value).value || 0);
      }
    } else { 
      show_subacc_offers(1);
    }
    
    if(subaccounts_optional_el.checked == true) {
      offers = 1;
      offers_subaccounts_el.style.display = '';
    } else {
      offers_subaccounts_el.style.display = 'none';
    }

    if (mehrwert_el.checked == true) {
      offers_mehrwert_el.style.display = ''; offers = 1;
    } else { 
      offers_mehrwert_el.style.display = 'none';
    }    

    if (smsbox_el.checked == true) {
      offers_smsbox_el.style.display = ''; offers = 1;
    } else { 
      offers_smsbox_el.style.display = 'none';
    }    
    
    if (offers >0) {
      offers_el.style.display = '';
    } else {
      offers_el.style.display = 'none';
    }
    
    var sum                = (price_base_fee + price_monthly_fee +  mail2sms + freesms + price_subacc);
    var aktion_sum         = (softstorno + aktion);
    var sum_total          = sum + aktion_sum;
    //var tax_sum          = sum_total * 0.2;    
    
    document.getElementById('sum_view').innerHTML       = new String(sum.toFixed(2)) + " EUR";
    //document.getElementById('tax_sum_view').innerHTML   = new String(tax_sum.toFixed(2)) + " EUR";
    document.getElementById('aktion_sum_view').innerHTML   = new String(aktion_sum.toFixed(2)) + " EUR";
    document.getElementById('sum_total_view').innerHTML = new String(sum_total.toFixed(2)) + " EUR";

  }
  
  function show_subacc_offers(hide) {
    var subacc_el          = document.getElementById('form_product_choice').subacc;
    var checked_value      = 0;
    for (var i=0; i<subacc_el.length; i++) {
      var offers_subacc_el = document.getElementById('optional_subacc_'+subacc_el[i].value);
      if (subacc_el[i].checked && !hide) {
        checked_value = subacc_el[i].value;
        offers_subacc_el.style.display = '';
      } else {
        offers_subacc_el.style.display = 'none';
      }
    }
    return checked_value;
  }     
   
  function set_error_classes(error_elements,error_msgs) {
    var errors_amount = error_elements.length;
    if (errors_amount > 0) {
      for (var i=0;i < errors_amount;i++) {
        var element_name = error_elements[i];
        if (document.getElementById(element_name)) {
          if (document.getElementById(element_name).type == "checkbox") {
            if (document.getElementById(element_name+'_area')) {
              document.getElementById(element_name+'_area').className = "errorfield_area";
            }
          } 
          document.getElementById(element_name).className = "errorfield";
          document.getElementById(element_name).title     = unescape(error_msgs[i]);
        }
      }
      return true;
    } else {
      return false;
    }
  }
  
  function reset_error_class(obj) {
    if (obj.type =="checkbox") {
      if (document.getElementById(obj.id+'_area')) {
        document.getElementById(obj.id+'_area').className = '';
      }
    }
    obj.className='errorfield_placeholder';
  }
  
  function toggle_layer_display (name,type) {
    var option_el = document.getElementById(name);
    if (type=='display') {
      // Type Display
      if (option_el.style.display != 'none') {
        option_el.style.display = 'none';
        if (name == 'box_tech_optional') reset_optional_tech();
        if (name == 'box_business_optional') reset_optional_business();
      } else {
        option_el.style.display = '';
      }
    } else {
      // Type Visiblity
      if (option_el.style.visibility == 'visible') {
        option_el.style.visibility = 'hidden';
        if (name == 'box_tech_optional') reset_optional_tech();
        if (name == 'box_business_optional') reset_optional_business();
      } else {
        option_el.style.visibility = 'visible';
      }
    }
  }
  
  function do_submit(formname) {
    document.getElementById(formname).submit();
    return false;
  }
  function do_submit_once(formname) {
    if (already_submitted) {
      return false;
    } else {
      already_submitted = true;
      document.getElementById(formname).submit();
      return false;
    }
  }
  
  function backtothefuture (formname) {
    document.getElementById(formname).submit();
    return false;
  }
  
  function reset_optional_tech() {
    //document.getElementById('tech_position').value = '';
    document.getElementById('tech_first_name').value = '';
    document.getElementById('tech_last_name').value = '';
    document.getElementById('tech_email').value = '';
    //document.getElementById('tech_email2').value = '';
    document.getElementById('tech_msisdn1').value = '';
    //document.getElementById('tech_msisdn2').value = '';
    document.getElementById('tech_fax').value = '';
    return true;
  }
  function reset_optional_business() {
    //document.getElementById('business_position').value = '';
    document.getElementById('business_first_name').value = '';
    document.getElementById('business_last_name').value = '';
    document.getElementById('business_email').value = '';
    document.getElementById('business_email2').value = '';
    document.getElementById('business_msisdn1').value = '';
    //document.getElementById('business_msisdn2').value = '';
    document.getElementById('business_fax').value = '';
    return true;
  }  
  
  var bank_values = new Array();
  var bank_fields = new Array();
  
  function show_box_no_debit_info (param) {
    var obj   = document.getElementById('box_no_debit_info');
    
      if (obj.style.display == '') {
        obj.style.display = 'none';
      } else {
        var coords = getPosition(document.getElementById('box_no_debit_position'));
        obj.style.left = coords[0]+'px';
        obj.style.top  = coords[1]+'px';
        obj.style.display = '';
      }
  }
  
  function set_no_debit_info (param) {
    bank_fields[0] = document.getElementById('bank_name');
    bank_fields[1] = document.getElementById('bank_blz');
    bank_fields[2] = document.getElementById('bank_account_id');
    bank_fields[3] = document.getElementById('bank_bic');
    bank_fields[4] = document.getElementById('bank_iban');
    var obj   = document.getElementById('box_no_debit_info');
    var chkbx = document.getElementById('bank_accept_debit');
    
    if (param > 0) {
      // disable bank debit
      chkbx.checked  = false;
      step_disable(1);
      step_disable(2);
      for (var i=0; i < 5;i++) {
        bank_values[i] = bank_fields[i].value;
        bank_fields[i].value = '';
      }
    } else {
      // enable bank debit
      step_enable(1);
      step_enable(2);
      chkbx.checked  = true;
      var filled = 0;
      for (var i=0; i < 5;i++) {
        if (bank_fields[i].value.length >0) filled = 1;
      }
      if (bank_values.length > 0 && filled == 0) {
        for (var i=0; i < 5;i++) {
          bank_fields[i].value = bank_values[i];
        }
      }
    }
    
    obj.style.display = 'none';
    return false;
  }        
  
  function no_debit_info_check_before_submit() {
    bank_fields[0] = document.getElementById('bank_name');
    bank_fields[1] = document.getElementById('bank_blz');
	  bank_fields[2] = document.getElementById('bank_account_id');
    bank_fields[3] = document.getElementById('bank_bic');
	  bank_fields[4] = document.getElementById('bank_iban');
		var filled = 0;
		for (var i=0; i < 5;i++) {
		  if (bank_fields[i].value.length >0) filled = 1;
    }
		if (document.getElementById('bank_accept_debit').checked == true && filled < 1) {
		  show_box_no_debit_info(1);
		  return true;
		}
		return false;
  }

  function charge_choice_click (obj) {
    var bankdaten_box = document.getElementById('bankdaten_box');
    if (obj.value == 1) {
      bankdaten_box.style.display='none';
      document.getElementById('bank_name').value='';
      document.getElementById('bank_blz').value='';
      document.getElementById('bank_account_id').value='';
      document.getElementById('bank_bic').value='';
      document.getElementById('bank_iban').value='';
      step_disable(1);
      document.getElementById('bank_accept_debit').checked = false;
      step_disable(2);
      document.getElementById('bank_confirm_business').checked = false;
    } else {
      bankdaten_box.style.display='';
    }
  }
  
/*  function set_no_debit_info (param) {
    bank_fields[0] = document.getElementById('bank_name');
    bank_fields[1] = document.getElementById('bank_blz');
    bank_fields[2] = document.getElementById('bank_account_id');
    bank_fields[3] = document.getElementById('bank_bic');
    bank_fields[4] = document.getElementById('bank_iban');
    var obj   = document.getElementById('box_no_debit_info');
    var chkbx = document.getElementById('bank_accept_debit');
    
    if (chkbx.checked == false || param > 0) {
      if (obj.style.display == '') {
        obj.style.display = 'none';
      } else {
        var coords = getPosition(document.getElementById('box_no_debit_position'));
        obj.style.left = coords[0]+'px';
        obj.style.top  = coords[1]+'px';
        obj.style.display = '';
        if (param > 0) chkbx.checked = false;
        var filled = 0;
        for (var i=0; i < 5;i++) {
          if (bank_fields[i].value.length >0) filled = 1;
        }
        if (filled > 0) {
          for (var i=0; i < 5;i++) {
            bank_values[i] = bank_fields[i].value;
            bank_fields[i].value = '';
          }
        }
      }
    }
    if (chkbx.checked == true) {
      var filled = 0;
      for (var i=0; i < 5;i++) {
        if (bank_fields[i].value.length >0) filled = 1;
      }
      if (bank_values.length > 0 && filled == 0) {
        for (var i=0; i < 5;i++) {
          bank_fields[i].value = bank_values[i];
        }
      }
    }
  }
*/  
  function hide_box_no_dbit_info () {
    document.getElementById('box_no_debit_info').style.display = 'none';
  }
  
  function getPosition (obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
      curleft = obj.offsetLeft;
      curtop = obj.offsetTop;
      while (obj = obj.offsetParent) {
        curleft += obj.offsetLeft;
        curtop += obj.offsetTop;
      }
    }
    return [curleft,curtop];
  }

  function print_page() {
    window.print();
    return true;
  }
  
  function show_subaccountlist(subobj) {
    var obj = document.getElementById('subaccountlist');
    if (subobj.checked == false) {
      obj.style.display = 'none';
    } else {
      obj.style.display = '';
    }
  }
  
  function show_uid_info(thisobj,init) {
    thisobj        = document.getElementById('billing_country');
    var obj        = document.getElementById('box_billing_vatid_missing');
    var objdisable = document.getElementById('box_billing_vatid_missing_disable');
    
    var objcompany   = document.getElementById('billing_company_type');
    var company_type = objcompany.options[objcompany.selectedIndex].value;
    var objuid        = document.getElementById('box_billing_vatid');
    var objuid2        = document.getElementById('box_billing_vatid2');
    var objuiddisable = document.getElementById('box_billing_vatid_disable');
    var objuiddisable2 = document.getElementById('box_billing_vatid_disable2');
    
    
    /* don't show uid in austria */
    var billing_country = document.getElementById("billing_country").value;
    if(billing_country == 'at' || billing_country == 'ch') {
        document.getElementById('billing_vatid_missing').checked = false;
        document.getElementById('uid_block').style.visibility = "hidden";
        return;    	
    }
    document.getElementById('uid_block').style.visibility = "visible";
    
    if (company_type == 2 || company_type == 3 || company_type == 4 
    || document.getElementById('billing_vatid_missing').checked == true
    || billing_country == 'at') {
      objuiddisable.style.width      = (objuid.offsetWidth+1)+'px';
      objuiddisable.style.height     = objuid.offsetHeight+'px';
      objuiddisable.style.visibility = "visible";
      objuiddisable2.style.width      = (objuid2.offsetWidth+1)+'px';
      objuiddisable2.style.height     = objuid2.offsetHeight+'px';
      objuiddisable2.style.visibility = "visible";      
    } else {
      objuiddisable.style.visibility = "hidden";
      objuiddisable2.style.visibility = "hidden";
    }

    
    if ((document.getElementById('billing_vatid_missing').checked == true 
    || thisobj.options[thisobj.selectedIndex].value != 'at') && (company_type != 2 && company_type != 3 && company_type != 4 )) {
      document.getElementById('box_no_uid_question').style.display = '';
    } else {
      document.getElementById('box_no_uid_question').style.display = 'none';
    }
    
    
    //if (thisobj.options[thisobj.selectedIndex].value != 'at' || document.getElementById('billing_vatid').className == 'errorfield') {
    if ((company_type != 2 && company_type != 3 && company_type != 4 ) || document.getElementById('billing_vatid').className == 'errorfield') {
      //obj.style.display = '';
      objdisable.style.visibility = "hidden";
      //document.getElementById('box_no_uid_question').style.display = '';
    } else {
      if (document.getElementById('billing_vatid_missing').checked == true && init > 0) {
        return false;
      } else {
        //obj.style.display = 'none';
        objdisable.style.width      = (obj.offsetWidth+1)+'px';
        objdisable.style.height     = obj.offsetHeight+'px';
        objdisable.style.visibility = "visible";
        //document.getElementById('box_no_uid_question').style.display = 'none';
        document.getElementById('billing_vatid_missing').checked = false;
      }
    }
  }

//]]>
