var dc_mod_path = '/';
var img_path = '/templates/utropic-slate/media/images/';
/*
	tld_arr is defined in check.conf.php file
*/
var tld_check_arr = new Array(0);
var domain_arr = new Array(0);
var cart_arr = new Array(0);
var xmlHttp = null;
var tld_arr = ['com','net','org','info','biz','name','fm','am','tv','md','la','cc','us','ws','bz','de','ac','be','gs','io','it','jp','ms','nl','nu','ru','se','sh','tc','tk','vg','cn','com.cn','net.cn','org.cn','co.uk','me.uk','org.uk','sc','com.sc','net.sc','org.sc','in','com.in','firm.in','gen.in','ind.in','net.in','org.in','tw','club.tw','com.tw','ebiz.tw','game.tw','idv.tw','org.tw','sg','com.sg','pl','biz.pl','com.pl','info.pl','net.pl','org.pl','ag','com.ag','net.ag','org.ag','at','co.at','or.at','vc','ca','com.vc','eu','fr','net.vc','org.vc','es','com.es','nom.es','org.es'];
//
var send_count = 0;
var t = '';
// -----------------------------------------------------------------------------------------------------------------------------------
function request_tlds(id, show_checked)
{
	var str = '';
	var i = 0, limit = 7, cnst = 7;
	var tr = document.getElementById(id);
	str += '<table border="0" cellspacing="7" cellpadding="7" id="c_tlds" style="width: 100%;"><tr>';
	for (i = 0; i < tld_arr.length; i++)
	{
		str += '<td><a href="#add-tld" onclick="add_tld(this);" id="tld_' + tld_arr[i] + '">' + tld_arr[i] + '</a></td>';
		if (i == (limit - 1)) { str += '</tr><tr>'; limit += cnst; }
	}
	str += '</tr></table>';
	tr.innerHTML = str;
	if (show_checked) show_selected();
	if (xmlHttp != null) xmlHttp.abort();
	
}
// -----------------------------------------------------------------------------------------------------------------------------------
function show_selected()
{
	for (i = 0; i < tld_check_arr.length; i++)
	{
		var obj = document.getElementById('tld_' + tld_check_arr[i])
		obj.style.color = '#ff0000';
		obj.style.backgroundColor = '#ffffcc';
	}
}
// -----------------------------------------------------------------------------------------------------------------------------------
function debugT()
{
	var str = '';
	for (i = 0; i < tld_check_arr.length; i++)
	{
		str += tld_check_arr[i] + ', ';
	}
	alert(str);
}
function debugD()
{
	var str = '';
	for (i = 0; i < domain_arr.length; i++)
	{
		str += domain_arr[i] + ', ';
	}
	alert(str);
}
function debugC()
{
	var str = '';
	for (i = 0; i < cart_arr.length; i++)
	{
		str += cart_arr[i] + ', ';
	}
	alert(str);
}
// -----------------------------------------------------------------------------------------------------------------------------------
function add_tld(obj)
{
	pos = tld_check_arr.get_pos_in_array(obj.innerHTML, tld_check_arr);
	if (pos == -1)
	{
		// add
		tld_check_arr.push(obj.innerHTML);
		obj.style.color = '#ff0000';
		obj.style.backgroundColor = '#ffffcc';
	}
	else
	{
		// remove
		tld_check_arr.splice(pos, 1);
		obj.style.color = '#777';
		obj.style.backgroundColor = '#fff';
	}
	obj.blur();
}
// -----------------------------------------------------------------------------------------------------------------------------------
function add_all_tlds()
{
	
        var obj;
	for (i = 0; i < tld_arr.length; i++)
	{
		// only if it has not been added already
		if (tld_check_arr.get_pos_in_array(tld_arr[i], tld_check_arr) == -1)
		{
			obj = document.getElementById('tld_' + tld_arr[i]);
			tld_check_arr.push(obj.innerHTML);
			obj.style.color = '#ff0000';
			obj.style.backgroundColor = '#ffffcc';
		}
	}

}
// -----------------------------------------------------------------------------------------------------------------------------------
function remove_all_tlds()
{
	var obj;
	for (i = 0; i < tld_arr.length; i++)
	{
		// remove if in array
		pos = tld_check_arr.get_pos_in_array(tld_arr[i], tld_check_arr);
		if (pos != -1)
		{
			obj = document.getElementById('tld_' + tld_arr[i]);
			tld_check_arr.splice(pos, 1);
			obj.style.color = '#777';
			obj.style.backgroundColor = '#fff';
		}
	}
}
// -----------------------------------------------------------------------------------------------------------------------------------
function do_check(txt_id, tr_id, dom_id)
{
	if (xmlHttp != null) return;
	var domain = document.getElementById(txt_id);
	var tr = document.getElementById(tr_id);
	//var tr_d = document.getElementById(dom_id + '_wrap');
	var vl = document.getElementById('various_links');
	if (domain.value != '')
	{
		var val = domain.value.toLowerCase();
		if (domain_arr.get_pos_in_array(val, domain_arr) == -1)
		{
			domain_arr.push(val);
		}
	}
	if (domain_arr.length == 0)
	{
		alert('You haven\'t added a domain to check.');
		return;
	}
	if (tld_check_arr.length == 0)
	{
		alert('You haven\'t added any TLDs to check.');
		return;
	}
	// get tr height so when changing innerHTML it will stay the same
	// post
	height = tr.offsetHeight;
	tr.style.height = height + 'px';
	tr.innerHTML = '<img src="' + img_path + 'ajax-loader.gif" alt="Loading" id="async_loader" style="margin-top: 20px;" />';
	tr.innerHTML += '<p id="progress_info" style="margin-top: 5px;"></p>';
	tr.innerHTML += '<div id="progress_bar_wrap" style="border: 1px #ccc solid; padding: 2px; margin: 5px 5px 5px 130px; _margin: 5px; width: 200px; text-align: left;"><div id="progress_bar" style="background-color: #000033; width: 0px; height: 15px;"></div></div>';
	// hide domains block
	//tr_d.style.display = 'none';
	// set new link
	vl.innerHTML = '<a href="#abort" onclick="abort_request();this.blur();">Abort request</a>';
	// build tlds' post var (t is global)
	t = ''; // in case check has already run once !!
	for (i = 0; i < tld_check_arr.length; i++)
	{
		t += tld_check_arr[i] + ':';
	}
	t = t.substring(0, t.length - 1);
	// foreach domain do a lookup
	// start request
	async_send('tlds=' + t + '&domain=' + domain_arr[send_count], tr, vl);
}
// -----------------------------------------------------------------------------------------------------------------------------------
function async_send(post_vars, tr, vl)
{
	try
	{
		var pb = document.getElementById('progress_bar');
		document.getElementById('progress_info').innerHTML = 'Looking up <b>' + domain_arr[send_count] + '</b>. Please wait...';
		pb.style.width = ((200/domain_arr.length) + pb.offsetWidth) + 'px';
		xmlHttp = init_ajax();
		xmlHttp.onreadystatechange = function()
		{
			if(xmlHttp.readyState == 4)
			{
				var str = xmlHttp.responseText;
				xmlHttp.close;
				xmlHttp = null;
				tr.innerHTML += str;
				tr.style.height = 'auto';
				/*if (document.getElementById('box_input').style.display != 'none')
				{
					document.getElementById('box_input').style.display = 'none';
				}*/
				// recurse...
				send_count++;
				if (send_count >= domain_arr.length)
				{
					end_async(tr, vl);
				}
				else
				{
					async_send('tlds=' + t + '&domain=' + domain_arr[send_count], tr, vl);
				}
			}
		}
		xmlHttp.open("POST", dc_mod_path + "precheck.php", true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.send(post_vars);
	}
	catch (e)
	{
		// write error
		tr.innerHTML = '';
		alert(e.Message);
	}
}
// -----------------------------------------------------------------------------------------------------------------------------------
function end_async(tr, vl)
{
	document.getElementById('async_loader').style.display = 'none';
	vl.innerHTML = '<a href="#check-all" onclick="abort_request();this.blur();">Return</a>';
	document.getElementById('progress_info').innerHTML = '';
	document.getElementById('progress_bar_wrap').style.display = 'none';
}
// -----------------------------------------------------------------------------------------------------------------------------------
function abort_request()
{
	if (xmlHttp != null) xmlHttp.abort();
	send_count = 0; // critical!!
	var bi = document.getElementById('box_input');
	request_tlds('tlds', true);
	rebuild_domain_array('s_domains');
	document.getElementById('various_links').innerHTML = '<a href="#check-all" onclick="remove_all_tlds();this.blur();">Clear Selected TLDs</a>&nbsp;|&nbsp;<a href="#check-all" onclick="clear_domains(\'s_domains\');this.blur();">Clear Domains</a>';
	if (bi.style.display == 'none') bi.style.display = 'block';
	if (cart_arr.length == 0) clear_dom_cart();
}
// -----------------------------------------------------------------------------------------------------------------------------------
function sh_domain_list(id)
{
	var tr = document.getElementById(id);
	if (tr.style.display == 'none')
	{
		tr.style.display = 'block';
		document.images['dom_arr'].src = img_path + 'cart_arrow_down.gif';
	}
	else
	{
		tr.style.display = 'none';
		document.images['dom_arr'].src = img_path + 'cart_arrow.gif';
	}
}
// -----------------------------------------------------------------------------------------------------------------------------------
function add_domain(tr_id, txt_id, obj)
{
	if (xmlHttp != null) return;
	var domain = document.getElementById(txt_id);
	var tr = document.getElementById(tr_id);
	if (domain.value != '')
	{
		var d_count = document.getElementById('s_domains_count');
		var val = domain.value.toLowerCase();
		if (domain_arr.get_pos_in_array(val, domain_arr) == -1)
		{	
			//domain_arr.push(val);
			//tr.innerHTML += '<span><a href="#delete-domain" onclick="remove_domain(\'' + val + '\',\'' + tr_id + '\');"><img src="' + img_path + 'del_domain.gif" alt="delete" /></a>' + val + '</span><br />';
			//d_count.innerHTML = 'Currently added domains: ' + domain_arr.length;
			//
			animate_dom_txt(domain, tr, d_count, val, tr_id);
		}
		domain.value = '';
		obj.blur();
		domain.focus();
	}
}
function actual_domain_add()
{
}
// -----------------------------------------------------------------------------------------------------------------------------------
function animate_dom_txt(obj, tr, d_count, val, tr_id)
{
	var div = document.getElementById('anim_dom_txt');
	var top = obj.offsetTop + 4;
	var left = obj.offsetLeft + 3;
	div.innerHTML = obj.value;
	div.style.top = top + 'px';
	div.style.left = left + 'px';
	div.style.display = 'block';
	//
	fx_dom_txt.start({'top': top + 50 + 'px'});
	dtt = setTimeout(function () { shut_anim(div, dtt, tr, d_count, val); }, 700);
}
// -----------------------------------------------------------------------------------------------------------------------------------
function shut_anim(div, dtt, tr, d_count, val, tr_id)
{
	div.style.display = 'none';
	domain_arr.push(val);
	tr.innerHTML += '<span><a href="#delete-domain" onclick="remove_domain(\'' + val + '\',\'' + tr_id + '\');"><img src="' + img_path + 'del_domain.gif" alt="delete" /></a>' + val + '</span><br />';
	d_count.innerHTML = 'Currently added domains: ' + domain_arr.length;
	fx_span_domain_flash.start({'font-size': '13px', 'color': '#ff0000'});
	clearTimeout(dtt);
	dttt = setTimeout(function () { shut_flash(dttt); }, 200);
}
// -----------------------------------------------------------------------------------------------------------------------------------
function shut_flash(dtt)
{
	fx_span_domain_flash.start({'font-size': '11px','color': '#4c4c4c'});
	clearTimeout(dtt);
}
// -----------------------------------------------------------------------------------------------------------------------------------
function clear_domains(tr_id)
{
	domain_arr = new Array(0)
	rebuild_domain_array(tr_id);
}
// -----------------------------------------------------------------------------------------------------------------------------------
function remove_domain(name, tr_id)
{
	pos = domain_arr.get_pos_in_array(name, domain_arr);
	if (pos != -1)
	{
		domain_arr.splice(pos, 1);
		rebuild_domain_array(tr_id);
	}
}
// -----------------------------------------------------------------------------------------------------------------------------------
function rebuild_domain_array(tr_id)
{
	var tr = document.getElementById(tr_id);
	//var box = document.getElementById(tr_id + '_wrap');
	var str = '';
	for (var i = 0; i < domain_arr.length; i++)
	{
		str += '<span><a href="#delete-domain" onclick="remove_domain(\'' + domain_arr[i] + '\',\'' + tr_id + '\');"><img src="' + img_path + 'del_domain.gif" alt="delete" /></a>' + domain_arr[i] + '</span><br />';
	}
	tr.innerHTML = str;
	document.getElementById('s_domains_count').innerHTML = 'Currently added domains: ' + domain_arr.length;
}
// -----------------------------------------------------------------------------------------------------------------------------------
function add_to_cart(val, id, obj)
{
	var pos = cart_arr.get_pos_in_array(val, cart_arr);
	if (pos != -1) return;
	cart_arr.push(val);
	var str = '';
	str += '<ul id="dom_cart_list">';
	for (var i = 0; i < cart_arr.length; i++)
	{
		str += '<li id="' + cart_arr[i] + '"><img src="' + img_path + 'tiny_arrow.gif" style="margin-right: 15px;" />' + cart_arr[i] + '<a href="#delete" onclick="delete_from_cart(\'' + cart_arr[i] + '\');"><img src="' + img_path + 'del_domain.gif" style="margin-left: 20px;" /></a></li><br />';
	}
	str += '</ul>';
	str += '<div><a href="#checkout" onclick="checkout();" class="check_button" style="float: right; margin-right: 5px;">Checkout</a><a href="#clear-cart" class="check_button" onclick="clear_dom_cart();" style="float: right;">Clear</a></div><br class="clearfloat" />';
	document.getElementById('dom_cart_box').innerHTML = str;
	var box = document.getElementById('dom_cart_box_wrap');
	document.getElementById('s_cart_count').innerHTML = 'Your Workspace: ' + cart_arr.length + ' item(s)';
	// do domain added display
	var td = document.getElementById('td_' + id);
	td.style.color = '#ccc';
	obj.innerHTML = 'Added';
	obj.style.background = 'url(' + img_path + 'check_btn_bg_inactive.gif) no-repeat;';
}
// -----------------------------------------------------------------------------------------------------------------------------------
function sh_cart_list(id)
{
	var tr = document.getElementById(id);
	if (tr.style.display == 'none')
	{
		tr.style.display = 'block';
		document.images['cart_arr'].src = img_path + 'cart_arrow_down.gif';
	}
	else
	{
		tr.style.display = 'none';
		document.images['cart_arr'].src = img_path + 'cart_arrow.gif';
	}
}
// -----------------------------------------------------------------------------------------------------------------------------------
function delete_from_cart(dom)
{
		pos = cart_arr.get_pos_in_array(dom, cart_arr);
		if (pos != -1)
		{
			cart_arr.splice(pos, 1);
			rebuild_cart_array('dom_cart_box');
			// revert added display
			var id = dom.replace('.', '_');
			var td = document.getElementById('td_' + id);
			var btn = document.getElementById('btn_' + id);
			td.style.color = '#4c4c4c';
			btn.innerHTML = 'Add';
			btn.style.background = 'url(' + img_path + 'check_btn_bg.gif) no-repeat;';
		}
}
// -----------------------------------------------------------------------------------------------------------------------------------
function rebuild_cart_array(tr_id)
{
	var tr = document.getElementById(tr_id);
	var box = document.getElementById(tr_id + '_wrap');
	var str = '';
	if (cart_arr.length != 0)
	{
		str += '<ul id="dom_cart_list">';
		for (var i = 0; i < cart_arr.length; i++)
		{
			str += '<li id="' + cart_arr[i] + '"><img src="' + img_path + 'tiny_arrow.gif" style="margin-right: 15px;" />' + cart_arr[i] + '<a href="#delete" onclick="delete_from_cart(\'' + cart_arr[i] + '\');"><img src="' + img_path + 'del_domain.gif" style="margin-left: 20px;" /></a></li><br />';
		}
		str += '</ul>';
		str += '<div><a href="/checkout/" class="check_button" style="float: right; margin-right: 5px;">Checkout</a><a href="#clear-cart" class="check_button" onclick="clear_dom_cart();" style="float: right;">Clear</a></div><br class="clearfloat" />';
	}
	//if (cart_arr.length != 0) box.style.display = 'block'; else box.style.display = 'none';
	tr.innerHTML = str;
	document.getElementById('s_cart_count').innerHTML = 'Your Workspace: ' + cart_arr.length + ' item(s)';
}
// -----------------------------------------------------------------------------------------------------------------------------------
function clear_dom_cart()
{
	for (var i = 0; i < cart_arr.length; i++)
	{
		var id = cart_arr[i].replace('.', '_');
		var td = document.getElementById('td_' + id);
		var btn = document.getElementById('btn_' + id);
		td.style.color = '#4c4c4c';
		btn.innerHTML = 'Add';

		btn.style.background = 'url(' + img_path + 'check_btn_bg.gif) no-repeat;';
	}
	cart_arr = new Array(0);
	document.getElementById('dom_cart_box').innerHTML = '';
	//document.getElementById('dom_cart_box_wrap').style.display = 'none';
	document.getElementById('s_cart_count').innerHTML = 'Your Workspace: ' + cart_arr.length + ' item(s)';
}
// -----------------------------------------------------------------------------------------------------------------------------------
function do_whois(dom)
{
	window.open('http://www.utropicmedia.net/viewitem.php?uid=sc&action=whoislookup&domain=' + dom,'viewer','width=475,height=380,status=yes,scrollbars=1,resizable=1');
}
// -----------------------------------------------------------------------------------------------------------------------------------
function init_ajax()
{
	ro = false;
	if(window.XMLHttpRequest) {
		try {
			ro = new XMLHttpRequest();
		} catch(e) {
			ro = false;
		}
	} else if(window.ActiveXObject) {
		try {
			ro = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				ro = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				ro = false;
			}
		}
	}
	return ro;
}
// -----------------------------------------------------------------------------------------------------------------------------------
function checkout()
{
	var el = null;
	var form = null;
	var cart = document.getElementById('dom_cart_box');
	//
	form = document.createElement('form');
	form.setAttribute('action', 'http://www.utropicmedia.net/cart.php');
	form.setAttribute('method', 'post');
	form.setAttribute('name', 'myform');
	cart.appendChild(form);
	//
	el = document.createElement('input');
	el.name = 'action';
	el.value = 'update';
	el.type = 'hidden';
	form.appendChild(el);
	//
	el = document.createElement('input');
	el.name = 'rtype';
	el.value = 'register';
	el.type = 'hidden';
	form.appendChild(el);
	//
	el = document.createElement('input');
	el.name = 'subaction';
	el.value = '';
	el.type = 'hidden';
	form.appendChild(el);
	//
	el = document.createElement('input');
	el.name = 'ca';
	el.value = 'processdomains';
	el.type = 'hidden';
	form.appendChild(el);
	//
	el = document.createElement('input');
	el.name = 'hwplan';
	el.value = '';
	el.type = 'hidden';
	form.appendChild(el);
	//
	el = document.createElement('input');
	el.name = 'dsplan';
	el.value = '';
	el.type = 'hidden';
	form.appendChild(el);
	//
	el = document.createElement('input');
	el.name = 'numdomains';
	el.value = cart_arr.length;
	el.type = 'hidden';
	form.appendChild(el);
	//
	for (i = 0; i < cart_arr.length; i++)
	{
		el = document.createElement('input');
		el.name = 'check' + (i + 1);
		el.value = cart_arr[i].toString();
		el.type = 'hidden';
		//el.checked = 'checked';
		//el.style.display = 'none';
		form.appendChild(el);
	}
	form.submit();
}
// -----------------------------------------------------------------------------------------------------------------------------------
// substitute for indexof....
Array.prototype.get_pos_in_array = function (str, arr)
{
	var len = arr.length;
	for (var i = 0; i < arr.length; i++)
	{
		if (arr[i] === str) return i;
	}
	return -1;
}