var http_request = false;
var itvl = null;
var secval = 30;
function g(id)
{
	return document.getElementById(id);
}
function init_http_request()
{
	http_request=false;
	if (window.XMLHttpRequest)
	{
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType)
		{
			http_request.overrideMimeType('text/xml');
		}
	}
	else if (window.ActiveXObject)
	{
		try
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try 
			{
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
			}
		}
	}
}
function post_data(service, param, proc)
{
	init_http_request();
	if(!http_request)
	{
		alert('JavaScript/XMLHTTP is either disabled or not supported by your browser.');
		return false;
	}
	http_request.onreadystatechange = proc;
	http_request.open('POST', '/services/' + service, true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(param);
	return false;
}
function get_data(service, param, proc)
{
	init_http_request();
	if(!http_request)
	{
		alert('JavaScript/XMLHTTP is either disabled or not supported by your browser.');
		return false;
	}
	http_request.onreadystatechange = proc;
	http_request.open('GET', '/services/' + service + '?' + param, true);
	http_request.send(null);
	return false;
}
function set_param(p, n, v)
{
	if(p=='')
	{
		return n + '=' + escape(v) . replace(/\+/g, '%2B') . replace(/\"/g,'%22') . replace(/\'/g, '%27') . replace(/\//g,'%2F');
	}
	else
	{
		return p + '&' + n + '=' + escape(v) . replace(/\+/g, '%2B') . replace(/\"/g,'%22') . replace(/\'/g, '%27') . replace(/\//g,'%2F');
	}
}
function ns()
{
	window.status = '';
	return true;
}
function search(account)
{
	var q = document.getElementById('q');
	if(q.value == '' || q.value == 'keyword')
	{
		q.value = 'keyword';
		q.select();
		q.focus();
	}
	else if(account == '')
	{
		location.href = 'http://www.atom5.com/search?q=' + q.value;
	}
	else
	{
		location.href = 'http://' + account + '.atom5.com/search?q=' + q.value;
	}
}
function add_comment(account, em, pl, tag)
{
	var name = g('name').value;
	var email = g('email').value;
	var url = g('url').value;
	var text = g('text').value;
	var remember = 0;
	if(g('remember').checked)
	{
		remember = 1;
	}
	if(name == '' || text == '')
	{
		alert('Name and Comment text fields are all required.');
		return false;
	}
	if(email != '')
	{
		if(/^.+@.+\..{2,4}$/.test(email)==false)
		{
			alert('Please input a valid email address!');
			g('email').select();
			return false;
		}
	}
	if(text.length > 2000)
	{
		alert('The comments field accepts a maximum of 2000 characters');
		return false;
	}
	if(/<[^<]*>/g.test(text))
	{
		if(confirm('The HTML tags in your comments will be removed automatically, continue?')==false)
		{
			return false;
		}
	}
	if(url != '')
	{
		var ext = url;
		ext = ext.substr(0, 7);
		ext = ext.toLowerCase();
		if(ext != 'http://')
		{
			url = 'http://' + url;
		}
	}
	g('submit').disabled = true;
	g('submit').value = 'Please wait...';
	var param = set_param('', 'tag', tag);
	param = set_param(param, 'account', account);
	param = set_param(param, 'pl', pl);
	param = set_param(param, 'em', em);
	param = set_param(param, 'name', name);
	param = set_param(param, 'email', email);
	param = set_param(param, 'url', url);
	param = set_param(param, 'text', text);
	param = set_param(param, 'remember', remember);
	post_data('add_comment', param, proc_add_comment);
}
function another()
{
	if(secval < 2)
	{
		clearInterval(itvl);
		g('comment').innerHTML = '<p id="another">Thank you. Your comment has been posted!<br /><br />Click <a href="' + unescape(location.pathname) + '">here</a> if you want to post another comment.</p>';
	}
	else
	{
		secval = secval - 1;
		g('sec').innerHTML = secval;
	}
}
function proc_add_comment()
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			var xmldoc = http_request.responseXML;
			var code = xmldoc.getElementsByTagName('code').item(0).firstChild.nodeValue;
			var html = xmldoc.getElementsByTagName('html').item(0).firstChild.nodeValue;
			if(code == '0')
			{
				g('new_comment').innerHTML = html;
				g('new_comment').style.display = 'block';
				g('comment').innerHTML = '<p id="another">Thank you. Your comment has been posted!<br /><br />You can post another comment after <span id="sec">30</span> sec.</p>';
				itvl = setInterval('another()', 1000);
			}
			else if(code == '1')
			{
				g('submit').disabled = false;
				g('submit').value = 'Post';
				alert(html);
			}
			else
			{

			}
		}
		else
		{
			g('submit').disabled = false;
			g('submit').value = 'Post';
			alert('Service not available. Please try again later.');
		}
	}
}
function more_comments(id, count, total_page, page, tag)
{
	g('com_nav').innerHTML = '<li>Please wait...</li>';
	g('submit').disabled = true;
	var param = set_param('', 'id', id);
	param = set_param(param, 'count', count);
	param = set_param(param, 'total_page', total_page);
	param = set_param(param, 'page', page);
	param = set_param(param, 'tag', tag);
	get_data('more_comments', param, proc_more_comments);
	return false;
}
function proc_more_comments()
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			var xmldoc = http_request.responseXML;
			g('comments').innerHTML = xmldoc.getElementsByTagName('html').item(0).firstChild.nodeValue;
			g('com_info').innerHTML = xmldoc.getElementsByTagName('start').item(0).firstChild.nodeValue;
			g('submit').disabled = false;
			location.href = '#c';
		}
		else
		{
			g('submit').disabled = false;
			alert('Service not available. Please try again later.');
		}
	}
}
function show_album(cbo)
{
	var tag = cbo.options[cbo.selectedIndex].value;
	if(tag == '')
	{
		url = '/album/';
	}
	else
	{
		url = '/album/' + tag;
	}
	location.href = url;
}
function disable_btn(t)
{
	var btn = document.getElementsByName('button');
	for(var i = 0; i < btn.length; i++)
	{
		btn[i].disabled = t;
	}
}
function login()
{
	var account = g('account').value;
	var password = g('password').value;
	if(account == '' || password == '')
	{
		return;
	}
	disable_btn(true);
	var param = set_param('', 'account', account);
	param = set_param(param, 'password', password);
	param = set_param(param, 'remember', 1);
	init_http_request();
	if(!http_request)
	{
		alert('JavaScript/XMLHTTP is either disabled or not supported by your browser.');
		return;
	}
	http_request.onreadystatechange = proc_login;
	http_request.open('POST', '/admin/login', true);
	http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http_request.send(param);
}
function proc_login()
{
	if (http_request.readyState == 4) 
	{
		if (http_request.status == 200) 
		{
			var xmldoc = http_request.responseXML;
			var code = xmldoc.getElementsByTagName('code').item(0).firstChild.nodeValue;
			if(code == '0')
			{
				location.href = '/admin/posts';
			}
			else
			{
				alert('Invalid account name and/or password, please try again.');
				g('password').select();
			}
			disable_btn(false);
		}
		else
		{
			disable_btn(false);
			alert('Service not available. Please try again later.');
		}
	}
}
function signup()
{
	location.href = 'http://www.atom5.com/admin/register';
}
function check_abuse(frm)
{
	if(frm.name.value=='' || frm.email.value=='' || frm.url.value=='' || frm.abuse.value=='')
	{
		alert('Please fill in all required fields');
		return false;
	}
	disable_btn(true)
	return true;
}
function check_feedback(frm)
{
	if(frm.name.value=='' || frm.email.value=='' || frm.subject.value=='' || frm.message.value=='')
	{
		alert('Please fill in all required fields');
		return false;
	}
	disable_btn(true)
	return true;
}
function change_skin(skin)
{
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + 365);
	document.cookie = 'skin=' + escape(skin) + ';expires=' + exdate;
	g('skin').href = 'http://www.atom5.com/skin/' + skin + '/main.css';
	return false;
}