var g_names = []; //'myip';
var g_names_idx = 0;

var g_tlds = ['com', 'net', 'org'];
var g_tlds_idx = 0;


var g_do_req_num = 10;
var g_delimiter = "&nbsp;";

var g_do_req = new Array(g_do_req_num);

//containers for each antiviurs result
var g_do_container0 = new Array(g_do_req_num);
var g_do_container1 = new Array(g_do_req_num);
var g_do_container2 = new Array(g_do_req_num);
var g_do_container3 = new Array(g_do_req_num);
for (i = 0; i < g_do_container0.length; i++) {
	g_do_container0[i] = 0;
	g_do_container1[i] = 0;
	g_do_container2[i] = 0;
	g_do_container3[i] = 0;
}




function do_loadXMLDoc(rid, url, func) {
	//alert("request:"+rid);
    if (window.XMLHttpRequest) {
		//alert("XMLHttpRequest OK");
        g_do_req[rid] = new XMLHttpRequest();
        g_do_req[rid] .onreadystatechange =function () {
			func(rid);
		}
        g_do_req[rid] .open("GET", url, true);
        g_do_req[rid] .send(null);
    } else if (window.ActiveXObject) {
		//alert("ActiveXObject OK");
        g_do_req[rid]  = new ActiveXObject("Microsoft.XMLHTTP");
        if (g_do_req[rid] ) {
            g_do_req[rid] .onreadystatechange =function () {
			  func(rid);
		    }
            g_do_req[rid] .open("GET", url, true);
            g_do_req[rid] .send();
        }
    } else {
		alert("Cannot send request, maybe you need Firefox");
	}
}


String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function do_process_req(rid) {   

	if (g_do_req[rid].readyState == 4) {
		if (g_do_req[rid].status == 200) {
			var mytext=g_do_req[rid].responseText;

			////registrar;created;expires;
			var res = mytext.split("|");

			/*
			//registered?
			if (res[0] == 'no') {
				g_do_container0[rid].innerHTML = "<font color=green>Available</font>";
			} else if (res[0] == 'yes') {
				g_do_container0[rid].innerHTML = "<font color=red>Taken</font>";
			} else {
				g_do_container0[rid].innerHTML = res[0];
			}
			*/
			//g_do_container2[rid].innerHTML = mytext;

			if (res.length > 1) g_do_container0[rid].innerHTML = res[1];  //registrar
			if (res.length > 2) {
				g_do_container1[rid].innerHTML = res[2];  //created
				//set registered? 
				//if not filled by dnchk2.js, fill it here
				if (res[2].trim() != '' && g_do_container3[rid].innerHTML == '') {
					g_do_container3[rid].innerHTML = 
						(window.location.host.search(/myip.cn/i) == -1)?
							"<font color=red>Taken</font>":"<font color=red>已注册</font>";	
				}
			}
			if (res.length > 3) g_do_container2[rid].innerHTML = res[3];  //expires
		


			g_do_container0[rid]=0;
			g_do_container1[rid]=0;
			g_do_container2[rid]=0;
			//g_do_container3[rid]=0;
		} else {
			g_do_container0[rid].innerHTML = "E";

			g_do_container0[rid]=0;
			g_do_container1[rid]=0;
			g_do_container2[rid]=0;
			//g_do_container3[rid]=0;
		}
		do_query();
	}  
}



function do_query()
{
	var rid = -1;
	var id = 0;
	var nid = 0;
	var tld = 'com';

	for (i = 0; i < g_do_container1.length; i++) {
		if (g_do_container1[i] == 0) {
			rid = i;
			break;
		}
	}

	if(rid == -1){ 
		//alert("Please wait, too many requests");
		return;
	} else {
	
		if (g_tlds_idx >= g_tlds.length) {
			g_names_idx++;
			g_tlds_idx = 0;
		}
		id = g_tlds_idx;
		g_tlds_idx++;

		if (g_names_idx >= g_names.length) {
			return false;
		}
		nid = g_names_idx;


		tld = g_tlds[id];
		name = g_names[nid];
		

		var res_id =  'dn_result_'+nid+'_'+id+'_0';
		g_do_container0[rid] = document.getElementById(res_id);
		if (g_do_container0[rid] == null) alert("Internal error, no container0");

		res_id =  'dn_result_'+nid+'_'+id+'_1';
		g_do_container1[rid] = document.getElementById(res_id);
		if (g_do_container1[rid] == null) alert("Internal error, no container1");

		res_id =  'dn_result_'+nid+'_'+id+'_2';
		g_do_container2[rid] = document.getElementById(res_id);
		if (g_do_container2[rid] == null) alert("Internal error, no container2");

		//registered?
		res_id =  'dnchk2_result_'+nid+'_'+id+'_0';
		g_do_container3[rid] = document.getElementById(res_id);
		if (g_do_container3[rid] == null) alert("Internal error, no container3");
		

		g_do_container0[rid].innerHTML="<img border=0 src=\"/images/spinner.gif\">";

		//g_do_container_stat[rid].innerHTML="<b><font color=\"red\">0</font>/"+g_kv_max+"&nbsp;(0%)</b>";
		
		var url = '/dnquery.php?tld=' + tld + '&name=' + name;
		//send request
		do_loadXMLDoc(rid, url, do_process_req);    
    }
}





// Add the indexOf function for IE (the mozilla implementation)
if (!Array.prototype.indexOf)
{
    Array.prototype.indexOf = function(elt /*, from*/)
    {
	var len = this.length;

	var from = Number(arguments[1]) || 0;
	from = (from < 0) ? Math.ceil(from) : Math.floor(from);
	if (from < 0)
	    from += len;

	for (; from < len; from++)
	{
	    if (from in this && this[from] === elt)
		return from;
	}
	return -1;
    };
}





function selectall(form, name) {
    //var currentform = window.document.form2;
    for (i = 0; i < form.elements.length;i++) {
        if (form.elements[i].name.indexOf(name) != -1){
            if(form.elements[i].checked == false && form.elements[i].disabled == false){
                form.elements[i].checked = true;
	        if(form.elements[i].onclick)
	          form.elements[i].onclick('selectall');
            }
        }
    }
}

function unselectall(form, name) {
    //var currentform = window.document.form2;
    for (i = 0; i < form.elements.length;i++) {
        if (form.elements[i].name.indexOf(name) != -1){
            if(form.elements[i].checked == true){
                form.elements[i].checked = false;
	        if(form.elements[i].onclick)
	          form.elements[i].onclick('unselectall');
            }
        }
    }
}

function selectOnly(form, name, tldArray, doSelect)
{
    for (i = 0; i < form.elements.length;i++)
    {
        if(form.elements[i].name.indexOf(name) != -1)
        {
            if(tldArray.indexOf(form.elements[i].value) != -1 && doSelect)
            {
                form.elements[i].checked = true;
            } 
	    else if(tldArray.indexOf(form.elements[i].value) != -1 && !doSelect) 
            {
                form.elements[i].checked = false;
            } 
	    else if(tldArray.indexOf(form.elements[i].value) == -1 && doSelect) 
            {
                form.elements[i].checked = false;
            } 
        }
    }
}




