function copyToList(fromList,toList)
{
  if (toList.options.length > 0 && toList.options[0].value == 'temp')
  {
    toList.options.length = 0;
  }
  var sel = false;
  for (i=0;i<fromList.options.length;i++)
  {
    var current = fromList.options[i];
    if (current.selected)
    {
      sel = true;
      if (current.value == 'temp')
      {
        alert ('You cannot move this text!');
        return;
      }
      txt = current.text;
      val = current.value;
	  if(val != 0) {
      	toList.options[toList.length] = new Option(txt,val);
      	fromList.options[i] = null;
      	i--;
	  }
    }
  }
  if (!sel) alert ('You haven\'t selected any options!');
}

function addOccurrence() {
	var month = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec");
	var occ_list = document.forms[0].elements['r_occ_list[]'];
	var occ_date = month[document.forms[0].r_month_occ.value] + " " + document.forms[0].r_day_occ.value + ", " + document.forms[0].r_year_occ.value;
	var occ_date_value = document.forms[0].r_month_occ.value + "-" + document.forms[0].r_day_occ.value + "-" + document.forms[0].r_year_occ.value;

	var day = document.forms[0].r_day_occ;
	for(i = 0; i < day.options.length; i++) {
		if(day.options[i].selected && i != day.options.length-1) {	
			day.options[i+1].selected = true;
			break;
		}
		else if(day.options[i].selected && i == day.options.length-1) {
			day.options[0].selected = true;
		}
	}
	
	for(i = 0; i < occ_list.options.length; i++) {
		if(occ_list.options[i].value == occ_date_value) {
			alert("The occurrence, " + occ_date + ", already exists.");	
			return;
		}
	}
	occ_list.options[occ_list.length] = new Option(occ_date, occ_date_value);
}

function removeOccurrences() {
	var occ_list = document.forms[0].elements['r_occ_list[]'];
	for(i = 0; i < occ_list.options.length; i++) {
		var current = occ_list.options[i];
		if(current.selected)
		{
			occ_list.options[i] = null;
			i--;
		}	
	}
}

function add(selectedSponsors)
{
	var otherSponsor = document.forms[0].other_sponsor;
	var text = otherSponsor.value;
	if(text == '') return;
	selectedSponsors.options[selectedSponsors.length] = new Option(text, text);
	otherSponsor.value = '';
}
function populate()
{
	var box = document.forms[0].sponsor_ID;
	var number = box.options[box.selectedIndex].value;
	if (!number) return;
	var list = store[number];
	var box2 = document.forms[0].elements['sponsor_list'];
	box2.options.length = 0;
	var boxSelected = document.forms[0].elements['sponsor_selected[]'];
	for(i=0;i<list.length;i+=2)
	{	
		box2.options[i/2] = new Option(list[i],list[i+1]);
	}
	for(i=0;i<boxSelected.options.length;i++)
		for(j=0;j<box2.options.length;j++)
			if(box2.options[j].text == boxSelected.options[i].text)	
				box2.options[j] = null;
	
}
function allSelect(List)
{
  if (List.length && List.options[0].value == 'temp') return;
  for (i=0;i<List.length;i++)
  {
     List.options[i].selected = true;
  }
}

function SwitchMenu(obj, state){
	if(document.getElementById){
		var el = document.getElementById(obj);
		if ( state == "on" ){
			el.style.display = "block";
		}	
		else {
			el.style.display = "none";
		}
	}
}

function SwitchMenu2(obj, state){
	if(document.getElementById){
		var el = document.getElementById(obj);
		if ( state == "on" ){
			el.style.display = "block";
		}	
		else {
			el.style.display = "none";
		}
	}
}

function confirmDelete() {
	return confirm("Are you sure you want to DELETE this event?");
}


// ===========================================================
// 						xmlhttpPost
// ===========================================================
function xmlHttpPost(strURL, strSubmit, strResultFunc) {

    var xmlHttpReq = false;
        
    // Mozilla/Safari
    if (window.XMLHttpRequest) {
    	xmlHttpReq = new XMLHttpRequest();
        xmlHttpReq.overrideMimeType('text/xml');
    }
    // IE
    else if (window.ActiveXObject) {
         xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 
		'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
        	if(strResultFunc != "")
        		eval(strResultFunc + 'xmlHttpReq.responseText);');
        }
    }
	xmlHttpReq.send(strSubmit);
}

////////////////////////////////////////////////////////////////////////////////
////////////////////////// OCCURRENCE TABLE FUNCTIONS ////////////////////////// 
////////////////////////////////////////////////////////////////////////////////

function toggleDateControls(bln) {
	if(bln == true) {
		SwitchMenu('recur_sub', 'off');
		document.getElementById('r_checkbox').disabled = false;
		document.getElementById('btnNewRecurrence').value = "New Recurrence";
	}
	else {
		SwitchMenu('recur_sub', 'on');
		document.getElementById('r_checkbox').disabled = true;
		document.getElementById('btnNewRecurrence').value = "Cancel";
	}
	var span = document.getElementById('occTable');
	span.innerHTML = "";
	
	document.getElementById('r_checkbox').disabled = bln;
	document.getElementById('month').disabled = bln;
	document.getElementById('day').disabled = bln;
	document.getElementById('year').disabled = bln;
	
	document.getElementById('beg_hour').disabled = bln;
	document.getElementById('beg_minute').disabled = bln;
	document.getElementById('beg_moon1').disabled = bln;
	document.getElementById('beg_moon2').disabled = bln;
	
	document.getElementById('end_hour').disabled = bln;
	document.getElementById('end_minute').disabled = bln;
	document.getElementById('end_moon1').disabled = bln;
	document.getElementById('end_moon2').disabled = bln;		
}

var curToggle = false;
function newRecurrence() {
	toggleDateControls(curToggle);
	
	if (curToggle == false) {
		curToggle = true;
		document.getElementById('newRecurrenceCheck').value = 1;
	}
	else {
		curToggle = false;
		document.getElementById('newRecurrenceCheck').value = 0;
	}	
}

function newRecurrenceAnnual() {
	if(curToggle== true) {
		SwitchMenu('recur_sub', 'off');
		document.getElementById('btnNewRecurrence').value = "New Recurrence";
	}
	else {
		SwitchMenu('recur_sub', 'on');
		document.getElementById('btnNewRecurrence').value = "Cancel";
	}
	document.getElementById('r_checkbox').disabled = curToggle;
	var span = document.getElementById('occTable');
	span.innerHTML = "";
	
	if (curToggle == false) {
		curToggle = true;
		document.getElementById('newRecurrenceCheck').value = 1;
	}
	else {
		curToggle = false;
		document.getElementById('newRecurrenceCheck').value = 0;
	}	
}

function loadOccTable(id) {
	toggleDateControls(true);
	var strPost = "id="+id;
	document.getElementById('occTable').innerHTML = "<b>Loading...</b>";
	xmlHttpPost("remote/cal.occurrence.table.php", strPost, "fillOccTable(");	
}

function fillOccTable(html) {
	var span = document.getElementById('occTable');
	span.innerHTML = html;
}

function enableSave(btn) {
	var button = document.getElementById(btn);
	button.disabled = false;
}

// ***************************************************
//			 Update or Insert an occurrence
// ***************************************************
function saveOcc(id, eventID) {
	// Validate occurrence values
	var month = document.getElementById('month'+id).value; month++;
	var day = document.getElementById('day'+id).value;
	var year = document.getElementById('year'+id).value;
		
	var begHour = document.getElementById('beg_hour'+id).value;
	var begMinute = document.getElementById('beg_minute'+id).value;
	var begMoon = getRadioArrayValue('beg_moon'+id);		
	if(begMoon != 1 && begMoon != 2)
		begMoon = 0;	
	
	var endHour = document.getElementById('end_hour'+id).value;
	var endMinute = document.getElementById('end_minute'+id).value;
	var endMoon = getRadioArrayValue('end_moon'+id);				
	if(endMoon != 1 && endMoon != 2)
		endMoon = 0;
				
	endTimeCheck = 0;
	if(endHour == -1) endTimeCheck++;
	if(endMinute == -1) endTimeCheck++;
	if(endMoon == 0) endTimeCheck++;

	if(id == '_new' && (begHour == -1 || begMinute == -1 || begMoon == 0)) {	
		alert("The start time was not filled out properly.");
		return;
	}
	
	if(endTimeCheck < 3 && endTimeCheck > 0 && !(endHour == -1 && endMinute == -1 && endMoon != 0)) {
		alert("The end time was not filled out properly.");
		return;
	}	
	
	// Set up post variables
	if(id == '_new') strPost = "type=3&id="+eventID;
	else strPost = "type=1&id="+id;
		
	strPost += "&month="+month+"&day="+day+"&year="+year+
			   "&beghour="+begHour+"&begminute="+begMinute+"&begmoon="+begMoon+
			   "&endhour="+endHour+"&endminute="+endMinute+"&endmoon="+endMoon;
	
	// Determine if creating new occurrence
	var func = "";
	if(id == '_new') {
		document.getElementById('Save_new').value = "Creating...";
		func = "refreshTable('"+eventID+"',";
	}
	
	var button = document.getElementById('Save'+id);
	button.disabled = true;
	
	// POST
	xmlHttpPost("remote/cal.edit.occurrence.php",strPost,func);	
}

function refreshTable(id, html) {
	loadOccTable(id);	
}

// ********************************************
// Remove Selected occurrence
// ********************************************
function removeOcc(id) {
	if(confirm("Are you sure you want to remove this occurrence?")) {
		var strPost = "type=2"+"&id="+id;
	
		xmlHttpPost("remote/cal.edit.occurrence.php",strPost,"");
		
		var btnRemove = document.getElementById('Remove'+id);
		btnRemove.disabled = true;
	}
}
			
function debug(data) {
	alert(data);	
}
			
function getRadioArrayValue(groupName) {
    var retval = new Array();
    var nodeList = document.getElementsByTagName("input");
    for(var i = 0; i < nodeList.length; i++) {
        if(nodeList.item(i).name == groupName) 
        	if(nodeList.item(i).checked == true)
        		return nodeList.item(i).value;
    }
}