//==========================================
//=                                        =
//= (c) 2010 by SteGaSoft,Stephan Gaertner =
//= www.stegasoft.de, diesundas.de         =
//=                                        =
//==========================================

// dah = 3 * di(t)
// Pause zwischen zwei Symbolen = 1 * di(t)
// Pause zwischen Buchstaben eines Wortes = 1 * dah
// Pause zwischen Wörtern = 7 * di(t)

var min_pause = 16;
var min_press = 10;
var min_space = 7*min_press;

var m_timer;
var p_timer;
var parse_timer = setInterval("parse_mcode()",1);

var presstime=0;
var pause=0;

var started = false;
var click_started = false;
var spacer_set = false;

var code_array = new Array();
var k=0;

var img_path = "http://www.diesundas.de/js/";


var Code2ABC = new Array();
Code2ABC[0] = new Object;
Code2ABC[0][".-"] = "A";
Code2ABC[0]["-..."] = "B";
Code2ABC[0]["-.-."] = "C";
Code2ABC[0]["-.."] = "D";
Code2ABC[0]["."] = "E";
Code2ABC[0]["..-."] = "F";
Code2ABC[0]["--."] = "G";
Code2ABC[0]["...."] = "H";
Code2ABC[0][".."] = "I";
Code2ABC[0][".---"] = "J";
Code2ABC[0]["-.-"] = "K";
Code2ABC[0][".-.."] = "L";
Code2ABC[0]["--"] = "M";
Code2ABC[0]["-."] = "N";
Code2ABC[0]["---"] = "O";
Code2ABC[0][".--."] = "P";
Code2ABC[0]["--.-"] = "Q";
Code2ABC[0][".-."] = "R";
Code2ABC[0]["..."] = "S";
Code2ABC[0]["-"] = "T";
Code2ABC[0]["..-"] = "U";
Code2ABC[0]["...-"] = "V";
Code2ABC[0][".--"] = "W";
Code2ABC[0]["-..-"] = "X";
Code2ABC[0]["-.--"] = "Y";
Code2ABC[0]["--.."] = "Z";

Code2ABC[0]["-----"] = "0";
Code2ABC[0][".----"] = "1";
Code2ABC[0]["..---"] = "2";
Code2ABC[0]["...--"] = "3";
Code2ABC[0]["....-"] = "4";
Code2ABC[0]["....."] = "5";
Code2ABC[0]["-...."] = "6";
Code2ABC[0]["--..."] = "7";
Code2ABC[0]["---.."] = "8";
Code2ABC[0]["----."] = "9";


function m_down() {
  document.images.morseapp.src = img_path+"ma-down.png";

  if(click_started==false) {
    presstime = 0;
    m_timer = setInterval("m_count()",1);
  }
  click_started = true;
  clearInterval(p_timer);

  pause=0;

}

function m_up() {
  clearInterval(m_timer);
  if(presstime>min_press)
    code_array[k] = 1;
  else
    code_array[k] = 0;
  k++;

  click_started = false;
  pause = 0;
  p_timer = setInterval("p_count()",1);
  document.images.morseapp.src = img_path+"ma-up.png";
}


function m_count() {
 presstime++;
}

function p_count() {
 pause++;
}


function parse_mcode() {
  var zeichen = "";

  if ((pause > min_pause) && (code_array.length>0)) {
    for (var i=0;i<code_array.length;i++) {
      if(code_array[i]==0)
        zeichen = zeichen + ".";
      else if(code_array[i]==1)
        zeichen = zeichen + "-";
    }
    code_array = new Array();
    k=0;
    var sgs=0;
    if(Code2ABC[0][zeichen] != undefined) {
      document.getElementById("anzeige").innerHTML += Code2ABC[0][zeichen] + "";
    }
    spacer_set = false;
  }
  else {
    if((spacer_set == false) && (pause>min_space)){
      spacer_set = true;
      document.getElementById("anzeige").innerHTML += " ";
    }
  }

}


var code = '<img src="'+img_path+'ma-up.png" width="300" height="98" border="0" alt="Morse-Apparat" usemap="#ImMap1" name="morseapp" /><br />' +
           'gemorster Text:<div id="anzeige" style="width:290px; height:50px; padding:5px; border:solid 1px #7F7F7F;background-color:#EFEFEF;overflow:auto;"></div>'+
           '<input type="button" name="btn" value="Leeren" onclick="document.getElementById(\'anzeige\').innerHTML=\'\'" style="margin-top:5px;">'+
           '<map name="ImMap1">'+
           '<area shape=rect coords="231,22,285,58" onmousedown="m_down()" onmouseup="m_up()" style="cursor:pointer;">'+
           '<area shape=default nohref>'+
           '</map>';


document.write(code);
