﻿
/* usage
* alert("My world is biiiiiiiiiiiiig".wordWrap(10, "\n+", true));
* alert("My world is biiiiiiiiiiiiig".wordWrap(10, "\n>", false));
*/
String.prototype.wordWrap = function(m, b, c){
	var i, j, s, r = this.split("\n");
	if(m > 0) for(i in r){
		for(s = r[i], r[i] = ""; s.length > m;
			j = c ? m : (j = s.substr(0, m).match(/\S*$/)).input.length - j[0].length
			|| j.input.length + (j = s.substr(m).match(/^\S*/)).input.length + j[0].length,
			r[i] += s.substr(0, j) + ((s = s.substr(j)).length ? b : "")
		);
		r[i] += s;
	}
	return r.join("\n");
};




// var URL = window.location.protocol + '//' + window.location.host + '/classes/Domaincheck.class.php';
var URL = window.location.protocol + '//' + window.location.host + '/ajax.php';
var TLDs = new Array('de', 'com', 'eu', 'net', 'org', 'info', 'biz', 'at', 'ch');
var domainliste = new Object();
var firstdiv = false;
var seconddiv = false;
    
function GetDomainData(){
    ClearErrorList();
    $("#derror").hide();
    var sld = "";
    var tld = "";
    if($("#f_domain")){
    	sld = $("#f_domain").val();
    	if(sld == ''){ return; }
    	if($("#f_tld")){ tld = $("#f_tld").val(); }
    	if(tld == ''){
            sld = sld.split('.');
            if( sld.length == 2 ){
                tld = sld[1];
                sld = sld[0];
            } else {
                sld = sld.join('.');
            }
    	}
    } else { 
    	return; 
    }
    $("#dinfo").ajaxStart(function(){
        $(this).show("slow");
    	$("#domainCheckHelp").hide();
    });
    $("#dinfo").ajaxStop(function(){ 
        $(this).hide("slow"); 
        if ( $("#domainCheckResult1").css("display") == 'none' && $("#domainCheckResult2").css("display") == 'none') {
            $("#domainCheckHelp").show();
        }
    });
    if(sld != '' && tld != ''){
        var domain = sld + '.' + tld;
        if (domainliste[domain] != 1) {
            domainliste[domain] = 1;
            $.getJSON(URL + "?domain=" + encodeURIComponent(domain) + "&tld=" + encodeURIComponent(tld),  renderDomain );
        }
    }
    if(sld != ''){
        for (var i = 0; i < TLDs.length; i++) {
            if (TLDs[i] == tld) continue;
            var domain = sld + '.' + TLDs[i];
            if (domain == 'extend' || domain == 'toJSONString') continue;
            if (domainliste[domain] == 1) continue;
            domainliste[domain] = 1;
            $.getJSON(URL + "?domain=" + encodeURIComponent(domain) + "&tld=" + encodeURIComponent(tld),  renderDomain );
        }
    }
}

function renderDomain( result ) {
    if( result.length < 1 ){ return; }
    if (result.error[0].code > 0 && $("#derror")){ $("#derror").show(); }
    for (var tldindex in result.domaincheck) {
        if (tldindex == 'extend' || tldindex == 'toJSONString') continue;
		var make_checkbox = true;
        switch (result.domaincheck[tldindex].info) {
          case "free":
            var out = ' ist frei.';
            var out2 = '';
            var cssclass = 'domainCheckFree';
            if (result.tld == tldindex) {
                var div = 'dtpl';  
                var checked = true;
                if (seconddiv) $("div#domainCheckResult1 hr").show();
                firstdiv = true;
            } else {
                var div = 'dtpl2';
                var checked = false;
                if (firstdiv) $("div#domainCheckResult1 hr").show();
                seconddiv = true;
            }
            var maindiv = 'domainCheckResult1';
            var checkbox = 'f_domaincheck1[]';
            $("#domainCheckResult1").show();
          break;
          case "registered":
            var out = ' ist bereits registriert.';
            //var out2 = 'Bitte aktivieren Sie das Kästchen, wenn diese Domain Ihnen gehört und Sie die Domain zu WIZMO umziehen möchten.';
            var out2 = '';
            var cssclass = 'domainCheckRegistered';
            var div = "dtpl3";
            var checked = false;
            var maindiv = 'domainCheckResult2';
            var checkbox = 'f_domaincheck2[]';
            $("#domainCheckResult2").show();
          break;
          case "error":
            var out = ' - Es ist ein Fehler aufgetreten, bitte wiederholen Sie die Prüfung zu einem späteren Zeitpunkt.';
            var out2 = '';
            var cssclass = 'domainCheckError';
            if (result.tld == tldindex) {
                var div = 'dtpl';
            } else {
                var div = 'dtpl2';
            }
            var checked = false;
            var maindiv = 'domainCheckResult1';
            var checkbox = 'f_domaincheck3[]';
            $("#domainCheckResult1").show();
            make_checkbox = false;
          break;
          case "check_later":
            var out = ' - Bitte wiederholen Sie die Prüfung zu einem späteren Zeitpunkt.';
            var out2 = '';
            var cssclass = 'domainCheckError';
            if (result.tld == tldindex) {
                var div = 'dtpl';
            } else {
                var div = 'dtpl2';
            }
            var checked = false;
            var maindiv = 'domainCheckResult1';
            var checkbox = 'f_domaincheck3[]';
            $("#domainCheckResult1").show();
            make_checkbox = false;
          break;
        } // end switch
        
        // Daten einfuegen
        $('#'+maindiv+' #'+div).before(	
        	'<div class="checkResult">' +
    			'<input id="' + checkbox + '" name="' + checkbox + '" class="checkbox" type="checkbox" value="' + result.domaincheck[tldindex].domain + '"' + ( !make_checkbox ? ' disabled="disabled" ' : ' ' ) + '/>' + 
    			'<span class="bold">' + result.domaincheck[tldindex].domain.wordWrap(30,"\n",true) + '</span>' + 
    			'<span class="' + cssclass + '">' + out + ( out2 != '' ? '<br />' + out2 : '' ) + '</span>' + 
    		'</div>'
		);
    }
}

function ClearList(maindiv) {
    ClearErrorList();
    switch (maindiv) {
        case 'domainCheckResult1':
            var checkbox = 'f_domaincheck1[]';
            break;
        case 'domainCheckResult2':
            var checkbox = 'f_domaincheck2[]';
            break;
    }
    for (var i = 0; i < document.getElementsByName(checkbox).length; i++) {
        var ischecked = document.getElementsByName(checkbox)[i].checked;
        var domain = document.getElementsByName(checkbox)[i].value;
        var parent = document.getElementsByName(checkbox)[i].parentNode;
        
        if (parent.style.display == 'none') continue;
        //alert(i + ' ' + ischecked);
        
        if (!ischecked) {
            $(parent).hide();
            domainliste[domain] = 0; 
            document.getElementsByName(checkbox)[i].value = '';
            //alert(domain + ' ' + domainliste[domain]);
        }
    }
    // pruefen ob noch Domains da sind
    var isda = false;
    for (var i = 0; i < document.getElementsByName(checkbox).length; i++) {
        var ischecked = document.getElementsByName(checkbox)[i].checked;
        var parent = document.getElementsByName(checkbox)[i].parentNode;
        if (parent.style.display == 'none') continue;
        if (ischecked) {
            isda = true;
        }
    }
    if (!isda) { $("#"+maindiv).hide(); }
    if ( $("#domainCheckResult1").css("display") == 'none' && $("#domainCheckResult2").css("display") == 'none') {
        $("#domainCheckHelp").show();
    }
}

function ClearErrorList() {
    var checkbox = 'f_domaincheck3[]';
    for (var i = 0; i < document.getElementsByName(checkbox).length; i++) {
        var domain = document.getElementsByName(checkbox)[i].value;
        var parent = document.getElementsByName(checkbox)[i].parentNode;
        if (parent.style.display == 'none') continue;
        $(parent).hide();
        domainliste[domain] = 0; 
        document.getElementsByName(checkbox)[i].value = '';
    }
}

function OrderDomains(){
    var checkbox = 'f_domaincheck1[]';
    // pruefen ob noch Domains da sind
    for (var i = 0; i < document.getElementsByName(checkbox).length; i++) {
        var ischecked = document.getElementsByName(checkbox)[i].checked;
        var parent = document.getElementsByName(checkbox)[i].parentNode;
        if (parent.style.display == 'none') continue;
        if (ischecked) { return true; }
    }
    var checkbox = 'f_domaincheck2[]';
    // pruefen ob noch Domains da sind
    for (var i = 0; i < document.getElementsByName(checkbox).length; i++) {
        var ischecked = document.getElementsByName(checkbox)[i].checked;
        var parent = document.getElementsByName(checkbox)[i].parentNode;
        if (parent.style.display == 'none') continue;
        if (ischecked) {
            return true;
        }
    }
    alert("Sie haben keine Domains ausgewählt. \nBitte setzen Sie einen Haken bei den Domains, die Sie bestellen möchten.");
    return false;
}

function NoSubmit() {
    alert('hallo');
    return false;    
}