
  function disableEnter() {
    if ((event.which && event.which==13) || (event.keyCode && event.keyCode==13)) {
      
      return true;
    } else {
      return false;
    }
  }
  
  function createContent( div, content )
  {
    document.getElementById(div).innerHTML = "" + content + "";
  }
  
  function showDiv( div ) {
    var ele = document.getElementById( div );
    ele.style.display = "block";
  }
  
  function hideDiv( div ) {
    var ele = document.getElementById( div );
    ele.style.display = "none";
  }
  
  function hideDivByName( div ) {
    var divs = document.getElementsByTagName('div');
    for (var i = 0; i < divs.length; i++){                      
      var divname = divs[i].id; 
      if(divname.indexOf(div) >= 0) { 
        var ele = document.getElementById( divname );
        ele.style.display = "none";
      }
    }
  }
  
  function showDivByName( div ) {
    var divs = document.getElementsByTagName('div');
    for (var i = 0; i < divs.length; i++){                      
      var divname = divs[i].id; 
      if(divname.indexOf(div) >= 0) { 
        var ele = document.getElementById( divname );
        ele.style.display = "block";
      }
    }
  }
  
  function fixInput( inputField ) {
  
    var myRequest = new Request({url: 'http://virle/fi/notice/strip'});
    var oEditor = FCKeditorAPI.GetInstance (inputField);
    var val = oEditor.GetHTML(true);
   
    var req = new Request({
          method: 'post',
          url: '/fi/notice/strip',
          data: { 'content' : val },
          onRequest: function() {  },
          onComplete: function(response) { oEditor.SetHTML (response);  }
        }).send();
   
  }
  
  var serviceFee = 18.00;
  
  /**
   * @return boolean
   */
  function isChargeable() {
	var chargeableEl = $('laskutus_laskutetaanKytkin');
	if (chargeableEl) {
      return chargeableEl.get('checked');
	}
	else {
	  return true;
	}
  }
  
  function changeChargeable(isChargeable) {
	if (isChargeable) {
	  var value = stringToFloat($('hinnoittelu_laskettuHintaTeksti').get('value'));
	  if ($('hinnoittelu_palvelumaksuKytkin').get('checked')) {
		value += serviceFee;
	  }
	}
	else {
	  var value = 0.00;
	}
	$('hinnoittelu_ilmoituksenHintaTeksti').set('value', floatToString(value));
	var vatPercent = getVatPercent();
	$('hinnoittelu_ilmoituksenAlvHintaTeksti').set('value', floatToString(value * vatPercent));
  }
  
  /**
   * @param isChecked
   * @return
   */
  function setServiceFee(isChecked) {
	  var delta = isChecked ? serviceFee : -serviceFee;
	  if (!isChargeable()) {
		delta = 0;
	  }
	  var inputElementName = 'hinnoittelu_ilmoituksenHintaTeksti';
	  var inputElement = $(inputElementName);
	  var value = stringToFloat(inputElement.get('value'));
	  if (!isChargeable()) {
		value = 0;
	  }
	  if (!isNaN(value)) {
	    inputElement.value = floatToString(value + delta);
	    setInfoPrices(inputElementName);
	  }
  }
  
  /**
   * @param inputName
   * @return
   */
  function setInfoPrices(inputName) {
	  var inputElement = $(inputName);
	  var inputValue = stringToFloat(inputElement.get('value'));
	  if (!isChargeable()) {
		inputValue = 0;
	  }
	  var vatPercent = getVatPercent();
	  if (!isNaN(inputValue)) {
	    switch (inputName) {
	      case 'hinnoittelu_ilmoituksenHintaTeksti':
	        var inputElement = $('hinnoittelu_ilmoituksenAlvHintaTeksti');
	        inputElement.set('value', floatToString(inputValue * vatPercent));
	        break;
	      case 'hinnoittelu_ilmoituksenAlvHintaTeksti':
		      var inputElement = $('hinnoittelu_ilmoituksenHintaTeksti');
		      inputElement.set('value', floatToString(inputValue / vatPercent));
    		  break;
	    }
	  }
  }
  
  /**
   * @return float vat percent
   */
  function getVatPercent() {
	var journalNumber = $('lehti_ensimmainenNumero').getSelected().get('value');
	if (vatPercents.has(journalNumber)) {
	  var vatPercent = vatPercents.get(journalNumber);
	}
	else {
	  var vatPercent = (vatPercents.getValues())[0];
	}
	return ("1."+vatPercent).toFloat();
  }
  
  /**
   * @param string value
   * @return float
   */
  function stringToFloat(value) {
	value = value.replace('.', ''); // remove thousands separators 
	value = value.replace(',', '.');  // replace decimal points
	value = parseFloat(value);
	return value;
  }
  
  /**
   * @param float value
   * @return string
   */
  function floatToString(value) {
	  value = Math.round(value * 100) / 100; // round to two decimals
	  value = '' + value;               // convert to string
	  value = value.split('.'); // split from decimal point
	  if (!$defined(value[1])) {
		value[1] = '00';
	  }
	  while (value[1].length < 2) {
		value[1] += '0';
	  }
	  return value[0] + ',' + value[1];
  }

  /**
   * Toggle elements in array elementIds. If isChecked is true, elements are displayed.
   * Otherwise elements are hidden.
   * 
   * @param Array elementIds
   * @param boolean isChecked
   */
  function toggleElements(elementIds, isChecked) {
	var displayValue = isChecked ? '' : 'none';
	// var classValue = isChecked ? 'required' : 'conditional';
    elementIds.each(function (item, index) {
	  var el = $(item + '-label');
	  // el.getFirst().set('class', classValue);
	  do {
	    el.setStyle('display', displayValue);
	    el = el.getNext();
	  } while (el && el.get('tag') == 'dd');
	});
  }

