// create tld list with some default values 
tlds = new Array('cz', 'com', 'eu', 'net', 'org', 'info', 'name', 'tv', 'biz', 'in', 'mobi');
lastDomain = "";

ajaxArray=[];


function PurgeChars(domainName) {
    if (domainName.length == 0) { return domainName; }
    domainName = domainName.toLowerCase();  
    domainName = domainName.replace(/[^.a-zA-Z0-9-]+/g, "");
    domainName = domainName.substring(0,63);
    return domainName;
}


function DomainBox(rowID){
	// hledana domena
	var curDomain = document.getElementById('domainName_' + rowID).value;
	
	// kam vypsat vysledek
    var resultCol = document.getElementById('domainCheck_'+rowID);
    
    // zrusime stara vyhledavani
    if(ajaxArray[rowID]){
        ajaxArray[rowID].abort();
    }
    
    // nejprve vlozime zakladni box
    var content = '';

    content = '<span class="text_orange bold">Ověřuji...</span>';
    resultCol.innerHTML=content;  
    
    var myRequest = new ajaxObject('http://www.angel-hosting.cz/domainCheck.php');
    ajaxArray[rowID] = myRequest;
    
    myRequest.callback = function(responseText, responseStatus, responseXML){
    	// vypsani vysledku
        DomainBoxResult('domainCheck_'+rowID, responseText);
    }

	// update hledani    
    myRequest.update('main=domaincheck&system=1&domaincheck=1&pricelist=true&domainName='+curDomain);
}

function CheckChange(domainName, rowID){
	// ziskame aktualni domenu
	var curDomain = document.getElementById('domainName_' + rowID).value;

	// pokud se domeny shoduji, zahajime hledani (ochrana proti psani)
    if(domainName == curDomain){
        // ok, zobrazime
        DomainBox(rowID);
    }else{
        return false;
    }    
}



function DomainBoxResult(box, result){
	/*
    var resdata = result.split(/\:/);
    var domain = resdata[0];
    var status = resdata[1];
    var price = resdata[2];
    */
    var status = result;
    
    // vnitrek    
    element = document.getElementById(box);
    element.className = "";
    var content = "";

    if(status == "1"){
        content += '<span class="text_green bold">Volná</span>';
    }else{
        content += '<span class="text_red bold">Obsazená</span>';
    }
    element.innerHTML=content;
}


function FormatCheck(domainName){
	var arr = new Array(
	'.com','.net','.org','.biz','.coop','.info','.museum','.name',
	'.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag',
	'.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw',
	'.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm',
	'.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc',
	'.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr',
	'.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz',
	'.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm',
	'.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm',
	'.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm',
	'.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq',
	'.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki',
	'.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li',
	'.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg',
	'.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt',
	'.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng',
	'.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf',
	'.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py',
	'.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg',
	'.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv',
	'.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn',
	'.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um',
	'.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws',
	'.wf','.ye','.yt','.yu','.za','.zm','.zw');

	var mai = domainName;
	var val = true;

	var dot = mai.lastIndexOf(".");
	var dname = mai.substring(0,dot);
	var ext = mai.substring(dot,mai.length);
	//alert(ext);
		
	if(dot>2 && dot<57)
	{
		for(var i=0; i<arr.length; i++)
		{
		  if(ext == arr[i])
		  {
	 		val = true;
			break;
		  }	
		  else
		  {
	 		val = false;
		  }
		}
		if(val == false)
		{
	  		 //alert("Your domain extension "+ext+" is not correct");
			 return false;
		}
		else
		{
			for(var j=0; j<dname.length; j++)
			{
			  var dh = dname.charAt(j);
			  var hh = dh.charCodeAt(0);
			  if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45 || hh==46)
			  {
				 if((j==0 || j==dname.length-1) && hh == 45)	
		  		 {
		 	  		 //alert("Domain name should not begin are end with '-'");
				      return false;
		 		 }
			  }
			else	{
		  		 //alert("Your domain name should not have special characters");
				 return false;
			  }
			}
		}
	}
	else
	{
	 //alert("Your Domain name is too short/long");
	 return false;
	}	

	return true;
}



function Search(rowID){
	// ziskame vypsanou domenu
    var curDomain = document.getElementById('domainName_' + rowID).value;

    // pokud je nazev domeny prazdny, tak nehledame
    if(curDomain == ""){return true;}

    if(!FormatCheck(curDomain)){
    	document.getElementById('domainCheck_'+rowID).innerHTML = "Nezkontrolováno";
    	return true;
    }
    
    // pokud je nazev domeny shodny s poslednim hledanim, tak nehledame
    if(curDomain != lastDomain){
        lastDomain = curDomain;
        // spustime hledani
        setTimeout('CheckChange("'+curDomain+'", "'+rowID+'")', 500);
    }  
}