var curency = "CHF";
var total_doms = 0;

var wdms_tlds   = new Array();
var wdms_doms   = new Array();
var wdms_ids    = new Array();
var wdms_failer = new Array();
var daten_verarbeiter = 'normal';

var xmlHttpArr = new Array(); // Variable für den HTTP-Request
var xmlDataArr = new Array(); // Parallel Datenablegen zum Request
var url = "/domain_check.php?js_version=1&domain=";
//var url = "/index.php?src=reqister_captcha&post_file=/domain_check.php&js_version=1&domain=";
var do_update_preise = false;

// Funktion zur Erzeugung eines xmlHTTP-Objektes
function getXmlHttpObject(){
    var xmlHttp = null;
    // für Firefox
    try{
        xmlHttp = new XMLHttpRequest();
    }
    catch(e){
        // für IE
        try{
            xmlHttp = new ActiveXObject("msxml2.XMLHTTP");
        }
        catch(e){
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;
}

// Funktion zur Ausgabe der Ergebnisse
function showResult( go_too )
{
    daten_verarbeiter = go_too;

    xmlHttpArr = new Array(); // xmlHttpRequest- Objektarray "löschen"
    var i = 0;

    for(i = 0; i < wdms_tlds.length;i++)
    {
        var xmlHttpObj = getXmlHttpObject(); // holen eines xmlHTTP-Objekts
    
        if(xmlHttpObj == null){ // Falls kein Objekt erzeugt werden konnte...
            alert("Ihr Browser unters&uuml;tzt leider kein AJAX");
            return;
        }
        if(typeof(xmlHttpArr[i]) != 'undefined')
        {
            // falls ein Request läuft
            if(xmlHttpArr[i].request != null){
               xmlHttpArr[i].request.transport.abort(); // den Request abbrechen
               xmlHttpArr[i].request = null; // und zurück setzen
            }
        }

        var ddata = new Array(wdms_doms[i], wdms_tlds[i], i);
        var param = wdms_doms[i] + "." + wdms_tlds[i]; //+'&pl='+i;
        xmlHttpObj.onreadystatechange = parseResult; // Überprüfen des Request-Status und Erzeugen der Ausgabe (Callback-Funktion)
        xmlHttpObj.open("GET", url + param, true); // Öffnen einer asynchronen Übertragung
       
        //xmlHttpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlHttpObj.send(''); // senden des Requests
        xmlHttpArr.push(xmlHttpObj);
        xmlDataArr.push(ddata);
    }
}

function check_again( )
{
    for(i in wdms_failer)
    {

        var xmlHttpObj = getXmlHttpObject(); // holen eines xmlHTTP-Objekts
    
        if(typeof(xmlHttpArr[i]) != 'undefined')
        {
            // falls ein Request läuft
            if(xmlHttpArr[i].request != null){
               xmlHttpArr[i].request.transport.abort(); // den Request abbrechen
               xmlHttpArr[i].request = null; // und zurück setzen
            }
        }

        var ddata = new Array(wdms_doms[i], wdms_tlds[i], i);
        var param = wdms_doms[i] + "." + wdms_tlds[i]; //+'&pl='+i;
        xmlHttpObj.onreadystatechange = parseResult; // Überprüfen des Request-Status und Erzeugen der Ausgabe (Callback-Funktion)
        xmlHttpObj.open("GET", url + param, true); // Öffnen einer asynchronen Übertragung
       
        //xmlHttpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        xmlHttpObj.send(''); // senden des Requests
        xmlHttpArr.push(xmlHttpObj);
        xmlDataArr.push(ddata);
    }
}

function set_update_preise()
{
 do_update_preise = true;

 if (daten_verarbeiter=='genrator') {
  buid_lists_genrator();
  update_price_genrator();

 } else {
  update_price_check();
 }
}

function check_wdms_check()
{
 do_update_preise = false;
 window.setTimeout("set_update_preise()", 2000);

 showResult('normal');
}

function check_wdms_genrator()
{
 do_update_preise = false;
 window.setTimeout("set_update_preise()", 4000);

 showResult('genrator');
}



function runden(aaa)
{
 return Math.round(aaa*100)/100;
}

function zahl2stellig(zzz)
{
 var minmoeg = 1/0.05; 
 var erg="0,00";
 var sss;
 var ks;   // Kommastelle
 if( zzz==0 || isNaN(zzz) )
 {
  return erg;
 }

 if(zzz > 0)
 {
  zzz=runden(zzz*minmoeg)/minmoeg;
  sss=String(zzz+0.00000001); // um auch mindestens 2 NAchkommastellen zu haben
  sss=sss.replace(/\./,",");  // Punkt gegen Komma tauschen
  ks= sss.split(",");

  if (ks[0].length==0)
   ks[0] = '00';
   
  ks[1] = ks[1].substring(0, 2);

  erg= ks[0] + "," + ks[1];

 } else {
  return zzz; 
 } // wenn negativ
 
 return erg;
}

function update_price_transfer()
{
 var ttotal  = 0;
 var i = 0;

 for (i=0 ; i<total_doms ; i++)
 {
   var preis    = parseFloat(document.getElementById('preis_' + i).value.replace(curency + " ",""));
   var transfer = parseFloat(document.getElementById('transfer_' + i).value.replace(curency + " ",""));
    
   if (document.getElementById('order_' + i).checked)
   {
    var total = transfer;
    document.getElementById('total_' + i).value = curency + " " + zahl2stellig(total);
    ttotal = ttotal + total;
   } else {
    document.getElementById('total_' + i).value = "";
   }	
 }
 
 document.getElementById('ttotal').value = curency + " " + zahl2stellig(ttotal);
}

function update_price_genrator()
{
 var ttotal  = 0;
 
 for (i=0 ; i<wdms_ids.length ; i++)
 {
   var preis    = parseFloat(document.getElementById('preis_' + wdms_ids[i]).value.replace(curency + " ",""));
   var setup    = parseFloat(document.getElementById('setup_' + wdms_ids[i]).value.replace(curency + " ",""));
   var laufzeit = parseFloat(document.getElementById('laufzeit_' + wdms_ids[i]).value.replace(curency + " ",""));
    
   if (document.getElementById('order_' + wdms_ids[i]).checked)
   {
    var total = setup + (preis*laufzeit);
    document.getElementById('total_' + wdms_ids[i]).value = curency + " " + zahl2stellig(total);
    ttotal = ttotal + total;
   } else {
    document.getElementById('total_' + wdms_ids[i]).value = "";
   }	
 }

 document.getElementById('ttotal').value = curency + " " + zahl2stellig(ttotal);
}



function update_wdms_genrator( cur_tld_id, response )
{ 
 var oob = document.getElementById('order_'    + wdms_ids[cur_tld_id]);
 var sob = document.getElementById('status_'   + wdms_ids[cur_tld_id]);
 var lob = document.getElementById('laufzeit_' + wdms_ids[cur_tld_id]);
  oob.style.display = "block";
 if (response == 'available')
 {  
  sob.style.backgroundColor='#04FF56';
  sob.innerHTML = 'frei';
  document.getElementById('dom'+wdms_ids[cur_tld_id]).style.display='';
  document.getElementById('dom2check'+wdms_ids[cur_tld_id]).style.display='none';

 } else if (response == 'failer') {
  sob.style.backgroundColor='#FF3737';
  sob.innerHTML = '<a onclick=\'alert(\"Sie haben einen Domainnamen eingegeben, der ungültige Zeichen für diese TLD enthält.\\nVermutlich unterschützt diese TLD keine IDN Domains (Domains mit Buchstaben wie ä ü ö.)\")\' style="cursor: pointer;">fehler</a>';
  oob.checked   = false;
  oob.disabled  = true;
  lob.disabled  = true;
  if (wdms_failer[cur_tld_id] != true)
  {
   wdms_failer[cur_tld_id] = true;
   window.clearTimeout(check_again_timeout);
   check_again_timeout = window.setTimeout("check_again()", 3500);
  }

 } else {
  sob.style.backgroundColor='#FF3737';
  sob.innerHTML = 'belegt'; 
  oob.checked   = false;
  oob.disabled  = true;
  lob.disabled  = true;
 }
}

function buid_lists_genrator()
{
 var vergebene = new Array();
 var to_check  = new Array();
  
 for(i in wdms_ids)
 {
  var stat = document.getElementById('status_' + wdms_ids[i]).innerHTML;
  
  if (stat=='frei')
  {
   document.getElementById('dom'+wdms_ids[i]).style.display=''; 

  } else if (stat=='belegt') {
   document.getElementById('dom'+wdms_ids[i]).style.display='none';
   vergebene[vergebene.length] = i;

  } else {
   document.getElementById('dom'+wdms_ids[i]).style.display='none';
   to_check[to_check.length] = i;
  }
  
  var to_check_html = '';
  if (to_check.length>0)
  {
   var style = 'tr1'; 
   to_check_html = to_check_html + '<br><br><h3>Domains die noch bearbeitet werden</h3><table border="0" cellpadding="2" cellspacing="0" width="540"><tr class="tr2"><td align="left" style="border: 1px solid #000000;"><b>Domain</b></td><td align="left" style="border: 1px solid #000000; width: 60px;">&nbsp;</td></tr>';

   for(i in to_check)
   {
    to_check_html = to_check_html + '<tr class="'+style+'" id="dom2check'+wdms_ids[i]+'"><td align="left" style="border: 1px solid #000000; border-top: none;">'+wdms_doms[i]+'.'+wdms_tlds[i]+'</td><td align="center" style="border-bottom: 1px solid #000000; border-right: 1px solid #000000;"><img src="http://www.movetec.ch/templates/movetec/ger/images/wait_kreis.gif" border="0" /></td></tr>';

    style=(style=='tr2')?'tr1':'tr2';
   }

   to_check_html = to_check_html + '</table>';
  }
  document.getElementById('tbl_work').innerHTML=to_check_html; delete to_check_html;

  var vergebene_html = '';
  if (vergebene.length>0)
  {
   var style = 'tr1'; 
   vergebene_html = vergebene_html + '<br><br><h3>Vergeben Domains</h3><table border="0" cellpadding="2" cellspacing="0" width="540"><tr class="tr2"><td align="left" style="border: 1px solid #000000;"><b>Domain</b></td><td align="left" style="border: 1px solid #000000; width: 60px;">&nbsp;</td></tr>';

   for(i in vergebene)
   {
    vergebene_html = vergebene_html + '<tr class="'+style+'"><td align="left" style="border: 1px solid #000000; border-top: none;">'+wdms_doms[i]+'.'+wdms_tlds[i]+'</td><td align="center" style="border-bottom: 1px solid #000000; border-right: 1px solid #000000; background-color: #FF3737;">vergeben</td></tr>';

    style=(style=='tr2')?'tr1':'tr2';
   }

   vergebene_html = vergebene_html + '</table>';
  }
  document.getElementById('order_' + wdms_ids[i]).style.display = 'block';
  document.getElementById('tbl_ass').innerHTML=vergebene_html; delete vergebene_html;
 }
}

function own_tlds_check_genrator()
{
  if (document.getElementById('groups_X').checked==true)
   document.getElementById('own_tlds').style.display='inline';
  else
   document.getElementById('own_tlds').style.display='none';
}

function start_it_genrator()
{
 for (i in wdms_ids)
  document.getElementById('dom'+wdms_ids[i]).style.display='none';

 buid_lists_genrator();
 check_wdms_genrator();
}

function selectWert(sObj) {
 with (sObj) return options[selectedIndex].value;
}

function update_price_check()
{
 var ttotal  = 0;
 var i = 0;

 for (i=0 ; i<wdms_ids.length ; i++)
 {
   var preis    = parseFloat(document.getElementById('preis_' + wdms_ids[i]).value.replace(curency + " ",""));
   var setup    = parseFloat(document.getElementById('setup_' + wdms_ids[i]).value.replace(curency + " ",""));
   var laufzeit = parseFloat(document.getElementById('laufzeit_' + wdms_ids[i]).value.replace(curency + " ",""));
    
   if (document.getElementById('order_' + wdms_ids[i]).checked)
   {
    var total = setup + (preis*laufzeit);
    document.getElementById('total_' + wdms_ids[i]).value = curency + " " + zahl2stellig(total);
    ttotal = ttotal + total;
   } else {
    document.getElementById('total_' + wdms_ids[i]).value = "";
   }	
 }
 if(document.getElementById('ttotal') == null ||document.getElementById('ttotal') == undefined)
 {
	return false;
 }
 document.getElementById('ttotal').value = curency + " " + zahl2stellig(ttotal);
}

var update_timeout = null;
var check_again_timeout = null; 
var stats_cache = new Array();


function parseResult()
{
     var i = 0 ;


     for(i = 0; i < xmlHttpArr.length;i++)
     {  // xmlDataArr: 0 Domain, 1 tld, 2 id 
        var tmp_html = document.getElementById('status_'+wdms_ids[xmlDataArr[i][2]]).innerHTML;
        if (xmlHttpArr[i].readyState == 4 && (tmp_html.indexOf('wait_kreis')>0 || tmp_html.indexOf('fehler')>0))
        {
          if (daten_verarbeiter=='genrator') {
           update_wdms_genrator(xmlDataArr[i][2], xmlHttpArr[i].responseText);
          } else {
           update_wdms_check(xmlDataArr[i][2], xmlHttpArr[i].responseText);
          }
        }
     }

     last_ready=xmlHttpArr.length;
     
     if (do_update_preise==true)
      if (daten_verarbeiter=='genrator') {
       //if (!update_timeout)
       window.clearTimeout(update_timeout);
       update_timeout = window.setTimeout("set_update_preise()", 1500);
      } else {
       window.clearTimeout(update_timeout);
       update_timeout = window.setTimeout("update_price_check()", 1500);
      }
}

function update_wdms_check( cur_tld_id, response )
{
 var oob = document.getElementById('order_'  + wdms_ids[cur_tld_id]);
 var sob = document.getElementById('status_' + wdms_ids[cur_tld_id]);
 var lob = document.getElementById('laufzeit_' + wdms_ids[cur_tld_id]);
 oob.style.display = "block";
 if (response == 'available')
 {
  sob.style.backgroundColor='#04FF56';
  sob.innerHTML = 'frei';
 } else if (response == 'failer') {
  sob.style.backgroundColor='#FF3737';
  sob.innerHTML = '<a onclick=\'alert(\"Sie haben einen Domainnamen eingegeben, der ungültige Zeichen für diese TLD enthält.\\nVermutlich unterschützt diese TLD keine IDN Domains (Domains mit Buchstaben wie ä ü ö.)\")\' style="cursor: pointer;">fehler</a>';
  oob.checked   = false;
  oob.disabled  = true;
  lob.disabled  = true;
  if (wdms_failer[cur_tld_id] != true)
  {
   wdms_failer[cur_tld_id] = true;
   window.clearTimeout(check_again_timeout);
   check_again_timeout = window.setTimeout("check_again()", 3500);
  }

 } else {
  sob.style.backgroundColor='#FF3737';
  sob.innerHTML = 'belegt';
  oob.checked   = false;
  oob.disabled  = true;
  lob.disabled  = true;
 }
}

function EingabenUeberpruefen()
{
    var Fehlermeldung = "";
 
    if(document.kontakt_form.name.value == "")
    {
        Fehlermeldung += "Bitte geben Sie Ihren Namen an!\n";
    }
 
    if(document.kontakt_form.email.value == "")
    {
        Fehlermeldung += "Bitte geben Sie Ihre E-Mail Adresse an!\n";
    }
 
    if(document.kontakt_form.text.value == "")
    {
        Fehlermeldung += "Bitte geben Sie eine Nachricht ein!\n";
    }
	
    if(Fehlermeldung)
    {
        alert(Fehlermeldung);
 
        return false;
    }
    else
    {
        return true;
    }
}