// TO USE: 
// For Add/Remove button in speaker page - displaySpeakerButton([speaker_id]) where actual image button goes
// For Speaker Checkbox list - php loop through speakers in drupal in page, create elements as such:
// <input type='checkbox' name='speaker[]' id='[speaker_id]' value='[whatever you want to show up in email and speakerlist]' onclick='manageSpeakerList([speaker_id], this);'>


var speakerCookie = new Hash.Cookie('speakerCookie', {path: '/', duration: 3600});

function getSpeakerLinks(){
	var speakerLinks = "";
	speakerIDs = getSpeakerIDArray();
	for(var i=0; i < speakerIDs.length; i++) {
		speakerLinks += "<a href=" + "\"http://www.apbspeakers.com/themes/DefaultView/Site/index.aspx?SPEAKERID=" + speakerIDs[i] + "\">" + document.getElementById(speakerIDs[i]).value + "</a>" + "<br>" + "\n";
	}	
	return speakerLinks;
}

function getSpeakerIDArray() {

	speakerIDs = speakerCookie.get('speakerList');
	
	if (!speakerIDs) {
		speakerIDs = new Array();
	}
	
	return speakerIDs;
}

function setSpeakerIDArray(speakerIDs) {

	speakerCookie.extend({
		'speakerList': speakerIDs
	});

}

function hasSpeakerInList(speakerID) {
	
	speakerIDs = getSpeakerIDArray();

	if (speakerIDs && speakerIDs.contains(speakerID)) {
		return 1;
	} else {
		return 0;
	}
}

function addSpeakerToList(speakerID) {

	if (isNaN(speakerID)) {
		return 0;
	}
	
	speakerIDs = getSpeakerIDArray();
	speakerIDs.include(speakerID);
	setSpeakerIDArray(speakerIDs);
}

function removeSpeakerFromList(speakerID) {

	if (isNaN(speakerID)) {
		return 0;
	}

	speakerIDs = getSpeakerIDArray();
	speakerIDs.remove(speakerID);
	setSpeakerIDArray(speakerIDs);	
}

function checkSpeakerList(element) {

	if (element) {
		selectedSpeakers = element;
	} else {
		if (document.forms[1]) {
			selectedSpeakers = document.forms[1].elements['speaker[]'];
		} else {
			return 0;
		}
	}

	for (i=0;i<selectedSpeakers.length;++ i) {
		var id = parseInt(selectedSpeakers[i].id);
		if (hasSpeakerInList(id)) {
			document.getElementById(id).checked=true;
		}
	}
}

function clearSpeakerList() {

	speakerIDs = new Array();
	setSpeakerIDArray(speakerIDs);
	checkSpeakerList();
	displaySpeakers();
}

function getSpeakerButton(speakerID) {
	 // mootools create element syntax:
	 // http://cssgallery.info/a-beginners-mootools-select-and-create-elements/
         el = new Element('button', {'class':'speakerButton'});
	 el.appendText(hasSpeakerInList(speakerID) ? 'You Added' : 'Add');
         // only way to make a dynamic onclick event in IE:
	 el.onclick = function () { manageSpeakerList(speakerID, this) };
	 return el;
}

function displaySpeakerButton(speakerID) {
	 $APB('speakerButtonHolder').appendChild(getSpeakerButton(speakerID));
}

function displayContactLink() {

	speakerIDs = getSpeakerIDArray();
	if (speakerIDs.length > 0) {
		// document.write html for checkout link
	}

}

function manageSpeakerList(speakerID, element) {
	
	if (!hasSpeakerInList(speakerID)) {
		addSpeakerToList(speakerID);
		if (element.type == 'checkbox') {
			element.checked=true;

		} else {
		  element.parentNode.replaceChild(getSpeakerButton(speakerID),
						  element); 
		}
		//if (element.type == 'image') {
		//    element.src = getSpeakerButton(speakerID); 
		//}
	
	} else {
		removeSpeakerFromList(speakerID);
		if (element.type == 'checkbox') {
			element.checked=false;

		} else {
		  element.parentNode.replaceChild(getSpeakerButton(speakerID),
						  element); 
		}

		//if (element.type == 'image') {
		//    element.src = getSpeakerButton(speakerID); 
		//}
	}	

	checkSpeakerList();
	displaySpeakers();
}

function displaySpeakers(element) {
	
	if (element) {
		speakerListDivID = element;
	} else {
		speakerListDivID = document.getElementById('currentSpeakerList');
	}

	if (speakerListDivID == undefined) {
		return 0;
	}

	html = '';
	speakerIDs = getSpeakerIDArray();
	for (i=0;i<speakerIDs.length;++ i) {
		var id = parseInt(speakerIDs[i]);
		html = html + "<img src='/files/images/remove.png' onClick='manageSpeakerList(" + id + ", document.getElementById(" + id + "));'>" + document.getElementById(id).value + "<br>";
	} 

	speakerListDivID.innerHTML = html;

}

function getSpeakerIDList() {

	speakerIDs = getSpeakerIDArray();
	speakerList = speakerIDs.join();
	return speakerList;
}


