// ZSite CMS
// JavaScript domain name string validator
// domain name can contain aphanumeric characters, dots, _-
// every single domain can be 63 characters length
// (c) Zagorodnikov Anton 2007
// DNS is described in RFC 1101, RFC 1183, RFC 1637

function zsite_validate_domainname(text)
{
    if(text.length < 1)
    {
	zsite_validation_error = "empty_string";
	return false;
    }
    
    //now break into subdomains, if any
    var singledomains = Array();
    var count = 0;
    var dotposition = text.search("[\.]");
    while(dotposition > 0)
    {
	singledomains[count] = text.substr(0,dotposition);
	count = count + 1;
	text = text.substr(dotposition+1,text.length);
	dotposition = text.search("[\.]");
    }
    //get the last domain
    singledomains[count] = text;
    count = count + 1;
    
    if(count == 1)
    {
	    zsite_validation_error = ZLOCALE("domain name must contain dot");
	    return false;	    
    }
    
    //check every subdomain
    var i = 0;
    for(i = 0; i < count; i++)
    {
	if(singledomains[i].length > 63)
	{
	    zsite_validation_error = ZLOCALE("single domain name cannot be more than 63 character length (RFC 1101, RFC 1183, RFC 1637)");
	    return false;	    
	}
	if(singledomains[i].search("[^A-Za-z0-9_\-]") > 0)
	{
	    zsite_validation_error = ZLOCALE("domain name contains illegal characters (RFC 1101, RFC 1183, RFC 1637)");
	    return false;	    
	}
    }
    
    return true;
}
