// JavaScript Document
function alertDelete(url, msg) {
	
	if (window.confirm(msg)) {
		location = url;
	}
}


function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}


// check if an item is in an array
function inArray(v, a) {
	for (i=0;i<a.length;i++) {
		if (a[i]==v) {
			return true;
		}
	}
	
	return false;
}



// delete from array
function spliceArray(v, a) {
	
	for (i=0;i<a.length;i++) {
		if (a[i]==v) {
			
			a.splice(i, 1);
			
		}
	}
		
		return a;
}

// array to string
function implode(divider, array) {
	
	var r = '';
	
	for(var i=0;i<array.length;i++) {
		
		r += array[i]+divider;
		
	}
	
	r = trim(r, divider);
	return r;
	
}

// string to array
function explode(divider, str) {
	
	var r=str.split(divider);
	
	return r;
	
}

// trim string
function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

/*

Mailing List functions

*/

// are all the items in the search in the mailing list by default?
var selectAllForMailingList = false;
// which items are not in the mailing list?
var notInMailingListArray = Array();
// which items are in the mailing list?
var inMailingListArray = Array();

function printEmail(email, totalEmails, currentEmail) {
	
	document.getElementById('mailoutProgress').innerHTML = 'Sending to '+email+'<br />'+currentEmail+' of '+totalEmails;
	if (totalEmails == currentEmail) {
		document.getElementById('finishBtn').className = '';
		document.getElementById('mailoutStatus').innerHTML = 'All Done';
	}
	
}

// select all users for email
function userSelectAll(mailoutTotal) {
	
	if (!selectAllForMailingList) {
		var i = 1;
		while(document.getElementById('emailList'+i)) {
			
			document.getElementById('emailList'+i).checked = true;
			i++;
			
		}
		
		selectAllForMailingList = true;
		
		// update mailout span display with all items in the list 
		document.getElementById('mailoutTotal').innerHTML = mailoutTotal;
		
		// update mail btn to hidden
		document.getElementById('mailBtn').className = "";
		
		// update btn text
		document.getElementById('selectAllBtn').innerHTML = "Deselect all from mailing list";
		
		// clear mailing list arrays
		inMailingListArray = Array();
		notInMailingListArray = Array();
		
	} else {
		
		var i = 1;
		while(document.getElementById('emailList'+i)) {
			
			document.getElementById('emailList'+i).checked = false;
			i++;
			
		}
		
		selectAllForMailingList = false;
		
		// update mailout span display with no items in the list 
		document.getElementById('mailoutTotal').innerHTML = 0;
		
		// update mail btn to hidden
		document.getElementById('mailBtn').className = "hidden";
		
		// clear mailing list arrays
		inMailingListArray = Array();
		notInMailingListArray = Array();
		
		// update btn text
		document.getElementById('selectAllBtn').innerHTML = "Select all for mailing list";
		
	}
	
	createCookie('selectAllForMailingList', selectAllForMailingList, 365);
	createCookie('inMailingList', '', 365);
	createCookie('notInMailingList', '', 365);
	
}

function userSelectItem(item_id, pos) {
	
	// is this item in the mailing list?
	var inList = inArray(item_id, inMailingListArray);
	// is this item specifically not in the mailing list?
	var notInList = inArray(item_id, notInMailingListArray);
	// what is the current ,mailing list count?
	c = document.getElementById('mailoutTotal').innerHTML;
	// has the item been checked
	check = document.getElementById('emailList'+pos).checked;
	
	
	// remove from mailing list if it is selected
	if (inList) {
		spliceArray(item_id, inMailingListArray);
		c = c-1;
	}
	
	// add to mailing list if it is selected
	if (notInList) {
		spliceArray(item_id, notInMailingListArray);
		c++;
	}
	
	if (selectAllForMailingList && !check) {
		notInMailingListArray.push(item_id);
		c = c-1;
	}
	
	if (!selectAllForMailingList && check) {
		inMailingListArray.push(item_id);
		c++;
	}
	
	
	// set cookies with results
	createCookie('notInMailingList', implode(',',notInMailingListArray), 365);
	createCookie('inMailingList', implode(',',inMailingListArray), 365);
	createCookie('selectAllForMailingList', selectAllForMailingList, 365);
	
	document.getElementById('mailoutTotal').innerHTML = c;
	
	if (c > 0) {
		
		// update mail btn to hidden
		document.getElementById('mailBtn').className = "";
		
	} else {
	
		// update mail btn to hidden
		document.getElementById('mailBtn').className = "hidden";
	
	}
	
}