function showDiv(wdiv) {
	document.getElementById(wdiv).style.display = "block";	
}

function hideDiv(wdiv) {
	document.getElementById(wdiv).style.display = "none";
}

function makeVisible(wdiv) {
	document.getElementById(wdiv).style.visibility = "visible";	
}

function makeHidden(wdiv) {
	document.getElementById(wdiv).style.visibility = "hidden";	
}

function getObjectById(wdiv) {
	var divObj = document.getElementById(wdiv);
	return divObj;
}

function addSubscriberSubmit() {
	//show the working span and image
	makeVisible('addSubscriberWorking');
	//status message object
	var statusmessage = document.getElementById('addSubscriberMessage');
	//hide the status message
	statusmessage.style.display = "none";
	//reset the status message HTML
	statusmessage.innerHTML = '';
	
	//the first name
	var fname = getObjectById('addFname');
	//the last name
	var lname = getObjectById('addLname');
	//the email address
	var email = getObjectById('addEmail');
	//register or not status
	var register = getObjectById('addRegister');
	
	if (register.checked == true) { register.value = "Y"; }
	else { register.value = "N"; };
	
	url = mailinglistPluginURL + '/wpMailinglistAdmin.php?mailinglistMethod=addSubscriber';
	what = 'addSubscriberSubmitResponse(req.responseXML);';
	
	var myPostString = 'fname=' + fname.value + '&lname=' + lname.value + '&email=' + email.value + '&register=' + register.value + '';
	DoCallback(myPostString);
}

function addSubscriberSubmitResponse(responseXML) {
	//hide the working span and image
	makeHidden('addSubscriberWorking');
	
	//status message object
	var statusmessage = document.getElementById('addSubscriberMessage');
	//reset the inner HTML of the status message
	statusmessage.innerHTML = '';
	
	if (responseXML.getElementsByTagName('true')[0].firstChild.data == 1) {
		//reset all the field values
		document.getElementById('addFname').value = '';
		document.getElementById('addLname').value = '';
		document.getElementById('addEmail').value = '';
		document.getElementById('addRegister').checked = false;
		
		//hide the add subscriber div
		hideDiv('addSubscriber');
		
		//give the admin a success message
		alert('Subscriber successfully added!');
		
		//the first name
		var fname = responseXML.getElementsByTagName('fname')[0].firstChild.data;
		//the last name
		var lname = responseXML.getElementsByTagName('lname')[0].firstChild.data;
		//the email address
		var email = responseXML.getElementsByTagName('email')[0].firstChild.data;
		//the date subscribed
		var datesubscribed = responseXML.getElementsByTagName('datesubscribed')[0].firstChild.data;
		//the registered status
		var registeredstatus = responseXML.getElementsByTagName('registeredstatus')[0].firstChild.data;
		
		//table object
		var subscribersTable = getObjectById('subscribersTable');
		//insert a new row
		var newRow = subscribersTable.insertRow(0);
		var newCell0 = newRow.insertCell(0);
		var newCell1 = newRow.insertCell(1);
		newCell1.innerHTML = fname;
		var newCell2 = newRow.insertCell(2);
		newCell2.innerHTML = lname;
		var newCell3 = newRow.insertCell(3);
		newCell3.innerHTML = email;
		var newCell4 = newRow.insertCell(4);
		newCell4.innerHTML = datesubscribed;
		var newCell5 = newRow.insertCell(5);
		newCell5.innerHTML = registeredstatus;
		
	} else {
		//make the status message visible
		statusmessage.style.display = "block";
		statusmessage.innerHTML += '<br/>';
		var errorcount = responseXML.getElementsByTagName('errorcount')[0].firstChild.data;
	
		for (var e = 0; e < errorcount; e++)
		{
			statusmessage.innerHTML += '&raquo;&nbsp;' + responseXML.getElementsByTagName('error' + e)[0].firstChild.data + '<br/>';
		}
	}
}
	
function subscriberDelete(subscriberId)
{
	url = mailinglistPluginURL + '/wpMailinglistAdmin.php?mailinglistMethod=delete&amp;subscriberId=' + subscriberId + '';
	what = 'subscriberDeleteResponse(req.responseXML);';
	
	DoCallback('subscriberId=' + subscriberId);
}

function subscriberDeleteResponse(responseXML)
{
	if (responseXML.getElementsByTagName('true')[0].firstChild.data != 1)
	{
		alert("Subscriber could not be removed!");	
	}
	else
	{
		var subscriberId = responseXML.getElementsByTagName('subscriberId')[0].firstChild.data;
		document.getElementById('subscriberRow_' + subscriberId).style.display = "none";
	}
	
	document.getElementById('subscribersWorking').style.visibility = "hidden";
}

// Change <div> "display" style to BLOCK
// Makes a <div> element visible to the user
// Pass any <div> ID to this function
function showDiv(wdiv)
{
	document.getElementById(wdiv).style.display = "block";
}

// Change <div> "display" style to NONE
// Makes a <div> element invisible to the user
// Pass any <div> ID to this function
function hideDiv(wdiv)
{
	document.getElementById(wdiv).style.display = "none";
}
	
function confirmSubscriberDelete(subscriberId)
{
	document.getElementById('subscribersWorking').style.visibility = "visible";
	var message = "SUBSCRIBER DELETE\n\nAre you sure you wish to delete this subscriber?";
	var agree = confirm(message);
	
	if (agree)
	{
		subscriberDelete(subscriberId);
		return true;
	}
	else
	{
		document.getElementById('subscribersWorking').style.visibility = "hidden";
		return false;
	}
}

function submitSubscribersForm()
{
	document.getElementById('subscribersWorking').style.visibility = "visible";
	
	var counter = 0;
	var message = 'SUBSCRIBERS DELETION\n\n';
	message += 'Are you sure that you wish to delete the selected subscribers?\n\n';
	
	for (i = 0; i < document.subscribersForm.elements['subscribersList' + "[]"].length; i++)
	{
		if (document.subscribersForm.elements['subscribersList'+"[]"][i].checked == true)
		{
			//var subscribersValue = document.subscribersForm.elements['subscribersTitles' + "[]"][i].value;
			//message += '> ';
			//message += subscribersValue;
			//message += '\n';
			
			counter++;
		}
	}
	
	if (counter == 0) 
	{
		message = 'SUBSCRIBERS DELETION\n\nNo subscribers were selected!'; 
		alert(message);
		document.getElementById('subscribersWorking').style.visibility = "hidden";
		return false;
	}
	else 
	{
		var agree = confirm(message);
		if (agree) { return true; } else { document.getElementById('subscribersWorking').style.visibility = "hidden"; return false; };
	}
}

function checkAllBoxes(obj, formname, fieldname)
{		
	if(document.forms[formname].elements[fieldname+"[]"].length)
	{
		for (i = 0; i < document.forms[formname].elements[fieldname+"[]"].length; i++)
		{
			document.forms[formname].elements[fieldname+"[]"][i].checked = true;
		}
	}
	else
	{
		document.forms[formname].elements[fieldname+"[]"].checked = true;
	}
	
	document.getElementById('mainCheckLink').innerHTML = '<a href="javascript:unCheckAllBoxes(this,\'subscribersForm\',\'subscribersList\');" title="Uncheck all subscribers">Uncheck All</a>';
	document.getElementById('mainCheckLink').checked = true;
}

function unCheckAllBoxes(obj, formname, fieldname)
{
	if(document.forms[formname].elements[fieldname+"[]"].length)
	{
		for (i = 0; i < document.forms[formname].elements[fieldname+"[]"].length; i++)
		{
			document.forms[formname].elements[fieldname+"[]"][i].checked = false;
		}
	}
	else
	{
		document.forms[formname].elements[fieldname+"[]"].checked = false;
	}
	
	document.getElementById('mainCheckLink').innerHTML = '<a href="javascript:checkAllBoxes(this,\'subscribersForm\',\'subscribersList\');" title="Check all subscribers">Check All</a>';
}
