// JavaScript Document

function  checkAllDay ()
{	
 	if (document.getElementById("allDayCheckBox").checked == false) {
		document.getElementById("differntTimesCheckbox").style.display = 'block';
		document.getElementById("timesDiv").style.display = 'block';
	} else {
		document.getElementById("differntTimesCheckbox").style.display = 'none';
		document.getElementById("timesDiv").style.display = 'none';
	}
}

function addEventRow (tableName, numberOfColumns, rowFormat)
{
	var eventDatesTable = document.getElementById(tableName);
	var tableRows = eventDatesTable.rows;
	var newRowIndex = tableRows.length;
	var oldRowIndex = tableRows.length - 1;
	
	tableRows[oldRowIndex].cells[numberOfColumns].innerHTML = 
			'<input type="button" class="addEventButton" id="removeEvent' + oldRowIndex + '" value="-" onclick="javascript:removeRow(' + oldRowIndex + ',\''+ tableName +'\','+ numberOfColumns +',\''+ rowFormat +'\')">'
	eventTableRow = eventDatesTable.insertRow(newRowIndex);
	eventTableRow.innerHTML = getNewRow(newRowIndex, tableName, numberOfColumns, rowFormat);
}

function removeRow(rowIndex, tableName, numberOfColumns, rowFormat)
{
	var eventsDatesTable = document.getElementById(tableName);
	eventsDatesTable.deleteRow(rowIndex);
	var tableRows = eventsDatesTable.rows;
	numRows = tableRows.length;
	
	for(i = rowIndex ; i < numRows - 1 ; i++) {
		tableRows[i].cells[numberOfColumns].innerHTML = '<input type="button" id="removeEvent' + i + '" value="-" onclick="javascript:removeRow(' + rowIndex + ',\''+ tableName + '\','+ numberOfColumns +',\'' + rowFormat + '\')">';
	}
	tableRows[numRows - 1].cells[numberOfColumns] = 
		'<input type="button" id="addButton" value="+" onclick="javascript:addEventRow(\''+ tableName +'\','+ numberOfColumns +',\''+ rowFormat +'\');"/>';
}

function getNewRow(newRowIndex, tableName, numberOfColumns, rowFormat)
{
	switch(rowFormat) {
		case 'yearly' :
			htmlString = getNewYearlyRowHtml(newRowIndex, tableName, numberOfColumns, rowFormat);
			break;
		case 'monthly' :
			htmlString = getNewMonthlyRowHtml(newRowIndex, tableName, numberOfColumns, rowFormat);
			break;
		case 'none' :
			htmlString = getNewRowHtml(newRowIndex, tableName, numberOfColumns, rowFormat);
		default:
			break;
	}
	return htmlString;
}

function getTimeSelectHtmlString(selectString, newTimeIndex)
{
	htmlString = '<select name="'+ selectString +'Hour'+ newTimeIndex +'" id="'+ selectString +'Hour'+ newTimeIndex +'" disabled="disabled" class="eventCalendarSelect">';
	htmlString += '<option selected="selected" value="0">--</option>';
	var number = 0;
	for(i = 1 ; i <= 12 ; i++) {
		if(i <= 9) {
			number = '0' + i;	
		} else {
			number = i;
		}
		htmlString += '<option value="'+ i +'">'
			+ number
			+'</option>'
	}
	htmlString += '</select>';
	
	htmlString += '<select name="'+ selectString +'Min'+ newTimeIndex +'" id="'+ selectString +'Min'+ newTimeIndex +'" disabled="disabled" class="eventCalendarSelect">';
	htmlString += '<option selected="selected" value="0">--</option>';

	for (i = 0 ; i < 60 ; i += 15) {
		if (i <= 9) {
			number = '0' + i;	
		} else {
			number = i;
		}
		htmlString += '<option value="'+ i +'">'
			+ number
			+'</option>'
	}
	htmlString += '</select>';

	htmlString += '<select name="'+ selectString +'Meridian'+ newTimeIndex +'" id="'+ selectString +'Meridian'+ newTimeIndex +'" disabled="disabled" class="eventCalendarSelect">'
				+ '<option value="AM">AM</option>'
				+ '<option selected="selected" value="PM">PM</option>'
	htmlString += '</select></td>';
	
	return htmlString;
}

function getDateSelectHtmlString(selectString, newDateIndex, includeDay, includeMonth, includeYear)
{
	var htmlString = '';
	if (includeDay == 1) {
		htmlString += '<select name="'+ selectString +'Day' + newDateIndex + '" id="'+ selectString +'Day' + newDateIndex + '" class="eventCalendarSelect">'
			+ '<option value="none" selected="selected" >(Day)</option>' ;
		var i = 0;
		for (i = 1 ; i <= 31 ; i++ ) {
			htmlString += '<option value="' + i + '">' + i + '</option>';
		}
		htmlString += '</select>';
	}
	
	if (includeMonth == 1) {
		htmlString += '<select name="'+ selectString +'Month' + newDateIndex + '" id="'+ selectString +'Month' + newDateIndex + '" class="eventCalendarSelect">'
			+ '<option value="none" selected="selected">(Month)</option>';
		var i = 0;
		for (i = 1 ; i <= 12 ; i++ ) {
			htmlString += '<option value="' + i + '">' + i + '</option>';
		}
		htmlString += '</select>';
	}
	
	if (includeYear == 1) {
		htmlString += '<select name="'+ selectString +'Year' + newDateIndex + '" id="'+ selectString +'Year' + newDateIndex + '" class="eventCalendarSelect">';
		var i = 0;
		for (i = 2006 ; i < 2016 ; i++ ) {
			htmlString += '<option value="' + i + '">' + i + '</option>';
		}		
		htmlString += '</select>';	
	}
	return htmlString;
}

function getNewRowHtml(newRowIndex, tableName, numberOfColumns, rowFormat)
{
	var htmlString = '<td>'
		+'<input class="dateInput" name="eventStartDate'
		+ newRowIndex
		+'" ' 
		+ 'id="eventStartDate'
		+ newRowIndex
		+ '" value=""/>';
	if (document.getElementById('adminMode').value == 'yes') {
		htmlString += ' <img src="images/cal.gif" id="date_button_from' + newRowIndex + '" alt="Date selector" style="cursor: pointer;">';		
	} else {
		htmlString += ' <img src="admin/images/cal.gif" id="date_button_from' + newRowIndex + '" alt="Date selector" style="cursor: pointer;">';	
	}
	htmlString +=  '</td><td>'
		+'<input class="dateInput" name="eventEndDate'
		+ newRowIndex
		+ '" '
		+ 'id="eventEndDate'
		+ newRowIndex
		+ '" value=""/>';
	if (document.getElementById('adminMode').value == 'yes') {
		htmlString += ' <img src="images/cal.gif" id="date_button_to' + newRowIndex + '" alt="Date selector" style="cursor: pointer;">';
	} else {
		htmlString += ' <img src="admin/images/cal.gif" id="date_button_to' + newRowIndex + '" alt="Date selector" style="cursor: pointer;">';
	}
	htmlString +=  '</td><td class="eventAllDay">'
		+ '<input name="eventAllDayBox'+ newRowIndex +'" id="eventAllDayBox'+ newRowIndex +'" type="checkbox" checked="checked" onclick="javascript: clickAllDayBox(' + newRowIndex +')"/>';
	htmlString += '</td><td>';
	htmlString += getTimeSelectHtmlString('eventStartTime', newRowIndex);
	
	htmlString += '</td><td>'
			   + getTimeSelectHtmlString('eventEndTime', newRowIndex);
			   
			   
	htmlString += '</td><td class="eventExclude">'
			   + '<input type="checkbox" name="eventExclude'+ newRowIndex +'"/></td>';
	htmlString += '<td class="eventAddEvent">'
			+ '<input type="button" id="addButton" class="addEventButton" value="+" onclick="javascript:addEventRow(\'eventDatesTable\', 6, \'none\');"/>'
		+ '</td>';
			   
	return htmlString;
}

function getNewMonthlyRowHtml(newRowIndex, tableName, numberOfColumns, rowFormat)
{
	var htmlString = '<td>';
	
	htmlString += getDateSelectHtmlString('monthly', newRowIndex, 1, 0, 0);
	
	htmlString += '</td><td>';
	
 	htmlString += '<input name="monthlyAllDayBox'+ newRowIndex +'" id="monthlyAllDayBox'+ newRowIndex +'" type="checkbox" checked="checked" onclick="javascript: clickMonthlyAllDayBox(' + newRowIndex +')"/>'
		+ '</td><td>';
	
	htmlString += getTimeSelectHtmlString('monthlyStart', newRowIndex);
	
	htmlString += '</td><td>';
	
	htmlString += getTimeSelectHtmlString('monthlyEnd', newRowIndex);
	
	htmlString += '</td><td>';
	
	htmlString += '<input type="button" id="addButton" value="+" onclick="javascript:addEventRow(\''+ tableName +'\','+ numberOfColumns +',\''+ rowFormat +'\');"/></td>';
	return htmlString;
}

function getNewYearlyRowHtml(newRowIndex, tableName, numberOfColumns, rowFormat)
{
	var htmlString = '<td>';
	
	htmlString += getDateSelectHtmlString('yearly', newRowIndex, 1, 0, 0);
		
	htmlString +=  '</td><td>';
	
	htmlString += getDateSelectHtmlString('yearly', newRowIndex, 0, 1, 0);
	
	
	htmlString += '</td><td>';
	
	htmlString += '<input name="yearlyAllDayBox'+ newRowIndex +'" id="yearlyAllDayBox'+ newRowIndex +'" type="checkbox" checked="checked" onclick="javascript: clickYearlyAllDayBox(' + newRowIndex +')"/>'
		+ '</td><td>';
	
	htmlString += getTimeSelectHtmlString('yearlyStart', newRowIndex);
	
	htmlString += '</td><td>';
	
	htmlString += getTimeSelectHtmlString('yearlyEnd', newRowIndex);

	htmlString +='</td>'
				+ '<td><input type="button" class="addEventButton" id="addButton" value="+" onclick="javascript:addEventRow(\''+ tableName +'\','+ numberOfColumns +',\''+ rowFormat +'\');"/></td>';
	
	return htmlString;
}


function clickAllDayBox(eventDateNumber)
{
	if(document.getElementById('eventAllDayBox' + eventDateNumber).checked == false) {
		document.getElementById('eventStartTimeHour' + eventDateNumber).disabled = false;
		document.getElementById('eventEndTimeHour' + eventDateNumber).disabled = false;
		document.getElementById('eventStartTimeMin' + eventDateNumber).disabled = false;
		document.getElementById('eventEndTimeMin' + eventDateNumber).disabled = false;
		document.getElementById('eventStartTimeMeridian' + eventDateNumber).disabled = false;
		document.getElementById('eventEndTimeMeridian' + eventDateNumber).disabled = false;
	} else {
		document.getElementById('eventStartTimeHour' + eventDateNumber).disabled = true;
		document.getElementById('eventEndTimeHour' + eventDateNumber).disabled = true;
		document.getElementById('eventStartTimeMin' + eventDateNumber).disabled = true;
		document.getElementById('eventEndTimeMin' + eventDateNumber).disabled = true;
		document.getElementById('eventStartTimeMeridian' + eventDateNumber).disabled = true;
		document.getElementById('eventEndTimeMeridian' + eventDateNumber).disabled = true;
	}
}

function onRepeat()
{
	var repeatSelect = document.getElementById("repeatSelect");
	switch (repeatSelect.options[repeatSelect.selectedIndex].text) {
		case 'Weekly' :
			onWeekly();
			break;
		case 'Monthly' :
			onMonthly();
			break;
		case 'Yearly' :
			onYearly();
			break;
		case 'None' :
			onNone();
		default:
			break;
		
	}
}

function onNone ()
{
	document.getElementById("eventCalenderAddEventForm").style.display = "block";
	document.getElementById("weeklyDiv").style.display = "none";
	document.getElementById("yearlyDiv").style.display = "none";
	document.getElementById("monthlyDiv").style.display = "none";
}

function onWeekly ()
{	
	document.getElementById("eventCalenderAddEventForm").style.display = "none";
	document.getElementById("yearlyDiv").style.display = "none";
	document.getElementById("monthlyDiv").style.display = "none";
	document.getElementById("weeklyDiv").style.display = "block";
}

function onMonthly ()
{
	document.getElementById("eventCalenderAddEventForm").style.display = "none";
	document.getElementById("yearlyDiv").style.display = "none";
	document.getElementById("monthlyDiv").style.display = "block";
	document.getElementById("weeklyDiv").style.display = "none";
}

function onYearly ()
{
	document.getElementById("eventCalenderAddEventForm").style.display = "none";
	document.getElementById("yearlyDiv").style.display = "block";
	document.getElementById("monthlyDiv").style.display = "none";
	document.getElementById("weeklyDiv").style.display = "none";
}

function clickYearlyAllDayBox(eventDateNumber)
{
	if(document.getElementById('yearlyAllDayBox' + eventDateNumber).checked == false) {
		document.getElementById('yearlyStartHour' + eventDateNumber).disabled = false;
		document.getElementById('yearlyStartMin' + eventDateNumber).disabled = false;
		document.getElementById('yearlyStartMeridian' + eventDateNumber).disabled = false;

		document.getElementById('yearlyEndHour' + eventDateNumber).disabled = false;
		document.getElementById('yearlyEndMin' + eventDateNumber).disabled = false;
		document.getElementById('yearlyEndMeridian' + eventDateNumber).disabled = false;
	} else {
		document.getElementById('yearlyStartHour' + eventDateNumber).disabled = true;
		document.getElementById('yearlyStartMin' + eventDateNumber).disabled = true;
		document.getElementById('yearlyStartMeridian' + eventDateNumber).disabled = true;

		document.getElementById('yearlyEndHour' + eventDateNumber).disabled = true;
		document.getElementById('yearlyEndMin' + eventDateNumber).disabled = true;
		document.getElementById('yearlyEndMeridian' + eventDateNumber).disabled = true;
	}
}

function clickMonthlyAllDayBox(eventDateNumber)
{
	if (document.getElementById('monthlyAllDayBox' + eventDateNumber).checked == false) {
		document.getElementById('monthlyStartHour' + eventDateNumber).disabled = false;
		document.getElementById('monthlyStartMin' + eventDateNumber).disabled = false;
		document.getElementById('monthlyStartMeridian' + eventDateNumber).disabled = false;

		document.getElementById('monthlyEndHour' + eventDateNumber).disabled = false;
		document.getElementById('monthlyEndMin' + eventDateNumber).disabled = false;
		document.getElementById('monthlyEndMeridian' + eventDateNumber).disabled = false;
	} else {
		document.getElementById('monthlyStartHour' + eventDateNumber).disabled = true;
		document.getElementById('monthlyStartMin' + eventDateNumber).disabled = true;
		document.getElementById('monthlyStartMeridian' + eventDateNumber).disabled = true;

		document.getElementById('monthlyEndHour' + eventDateNumber).disabled = true;
		document.getElementById('monthlyEndMin' + eventDateNumber).disabled = true;
		document.getElementById('monthlyEndMeridian' + eventDateNumber).disabled = true;
	}
}

function clickWeeklySameForAllBox()
{
	if (document.getElementById('sameForAll').checked == false) {
		document.getElementById('allDayMon').disabled = false;
		document.getElementById('allDayTues').disabled = false;
		document.getElementById('allDayWed').disabled = false;
		document.getElementById('allDayThur').disabled = false;
		document.getElementById('allDayFri').disabled = false;
		document.getElementById('allDaySat').disabled = false;
		document.getElementById('allDaySun').disabled = false;
		
		document.getElementById('allDayStartHour').disabled = true;
		document.getElementById('allDayStartMin').disabled = true;
		document.getElementById('allDayStartMeridian').disabled = true;
		
		document.getElementById('allDayEndHour').disabled = true;
		document.getElementById('allDayEndMin').disabled = true;
		document.getElementById('allDayEndMeridian').disabled = true;
		
		document.getElementById('allDayAll').disabled = true;
	} else {
		document.getElementById('allDayMon').disabled = true;
		document.getElementById('allDayTues').disabled = true;
		document.getElementById('allDayWed').disabled = true;
		document.getElementById('allDayThur').disabled = true;
		document.getElementById('allDayFri').disabled = true;
		document.getElementById('allDaySat').disabled = true;
		document.getElementById('allDaySun').disabled = true;
		
		document.getElementById('allDayStartHour').disabled = false;
		document.getElementById('allDayStartMin').disabled = false;
		document.getElementById('allDayStartMeridian').disabled = false;
		
		document.getElementById('allDayEndHour').disabled = false;
		document.getElementById('allDayEndMin').disabled = false;
		document.getElementById('allDayEndMeridian').disabled = false;
		
		document.getElementById('allDayAll').disabled = false;
	}
}

function clickWeeklyAllDayBox(checkBox, timeString)
{
	if (document.getElementById(checkBox).checked == false) {
		document.getElementById(timeString + 'StartHour').disabled = false;
		document.getElementById(timeString + 'StartMin').disabled = false;
		document.getElementById(timeString + 'StartMeridian').disabled = false;
		
		document.getElementById(timeString + 'EndHour').disabled = false;
		document.getElementById(timeString + 'EndMin').disabled = false;
		document.getElementById(timeString + 'EndMeridian').disabled = false;

	} else {
		document.getElementById(timeString + 'StartHour').disabled = true;
		document.getElementById(timeString + 'StartMin').disabled = true;
		document.getElementById(timeString + 'StartMeridian').disabled = true;
		
		document.getElementById(timeString + 'EndHour').disabled = true;
		document.getElementById(timeString + 'EndMin').disabled = true;
		document.getElementById(timeString + 'EndMeridian').disabled = true;

	}
}


function getStartDate()
{
	var daySelect = document.getElementById("fromDay");
	day = daySelect.options[daySelect.selectedIndex].text;

	var monthSelect = document.getElementById("fromMonth");
	month = monthSelect.options[monthSelect.selectedIndex].text - 1;

	var yearSelect = document.getElementById("fromYear");
	year = yearSelect.options[yearSelect.selectedIndex].text;
	
	var startDate = new Date();
	
	startDate.setFullYear(year, month, day);
	return startDate;
}

function getEndDate()
{
	var daySelect = document.getElementById("toDay");
	day = daySelect.options[daySelect.selectedIndex].text;

	var monthSelect = document.getElementById("toMonth");
	month = monthSelect.options[monthSelect.selectedIndex].text - 1;

	var yearSelect = document.getElementById("toYear");
	year = yearSelect.options[yearSelect.selectedIndex].text;
	
	var endDate = new Date();
	endDate.setFullYear(year, month, day);

	return endDate;
}

function getNumDays(startDay, endDay)
{
	var count = 0;
	var theDate = endDay;
	
	do {
		count++;
		theDate.setDate(theDate.getDate()+1);
	} while (theDate < startDay) 
	
	return count--;
}

function getDateString(theDate)
{
	var dateString = '';
	var theMonth = monthArray[theDate.getMonth()];
	dateString = weekday[theDate.getDay()]
		+ ' '
		+ monthArray[theDate.getMonth()]
		+ ' '
		+ theDate.getDate()
		+ ' '
		+ theDate.getFullYear();
	return dateString;
}


function toggleShortDesc()
{
	if (document.getElementById('useShort').checked == true) {
		document.getElementById('shortDesc').style.display = '';
	} else {
		document.getElementById('shortDesc').style.display = 'none';		
	}
}


function clickAddRow()
{
	table = document.getElementById('addImageTable');
	numRows = document.getElementById('numImages').value;
	tableRow = table.insertRow(-1);
	numRows++;
	tableRow.innerHTML = '<td>Image</td>'	
					+	'<td><input type="file" name="storyImage_'+ numRows +'" id="storyImage_'+ numRows +'"></td>'	
					+	'<td><input type="button" value="+" onclick="clickAddRow()"></td>';
	document.getElementById('numImages').value = numRows;
}

function clickDelete(id, name)
{
	document.getElementById('actionObject').value = id;
	document.getElementById('actionAction').value = 'deleteEvent';
	document.getElementById('actionForm').submit();
}

function clickEdit(id)
{
	document.getElementById('actionObject').value = id;
	document.getElementById('actionAction').value = 'editEvent';
	document.getElementById('actionForm').submit();
}

function clickEditPending(id)
{
	
    document.getElementById('objectID').value = id;
    document.getElementById('action').value = 'editPendingEvent';
    document.getElementById('verifyForm').submit();
}

function toggleSameAsLeft()
{
	if (document.getElementById('sameAsLeft').checked == true) {
		document.getElementById('verifyName').disabled = true;
		document.getElementById('verifyPhone').disabled = true;
		document.getElementById('verifyEmail').disabled = true;
		document.getElementById('verifyWebsite').disabled = true;
	} else {
		document.getElementById('verifyName').disabled = false;
		document.getElementById('verifyPhone').disabled = false;
		document.getElementById('verifyEmail').disabled = false;
		document.getElementById('verifyWebsite').disabled = false;
	}
}

function verifyAdminForm()
{	
	var error = '';
	if (document.getElementById('downtown').checked  == false && document.getElementById('southwest').checked == false && 
		document.getElementById('mn_parent').checked == false && document.getElementById('goodage').checked == false) {
		
		error += "- You must select a publication\n";
	}

	if (document.getElementById('title').value == '') {
		error += "- title\n";
	}
	
	if (document.getElementById('location').value == '') {
		error += "- location\n";
	}

/*	if(document.getElementById('address').value == '') {
		error += "- address\n";
	}
	
	if(document.getElementById('city').value == '') {
		error += "- city\n";
	} 
	
	if(document.getElementById('publishName').value == '') {
		error += "- contact name\n";
	}
	
	if(document.getElementById('publishPhone').value == '') {
		error += "- contact phone\n";
	}
	
	if(document.getElementById('publishEmail').value == '') {
		error += "- contact Email\n";
	}

	if(document.getElementById('sameAsLeft').checked == false) {
		if(document.getElementById('notPublishName').value == '') {
			error += "- verification name\n";
		}

		if(document.getElementById('notPublishPhone').value == '') {
			error += "- verification phone\n";
		}
		
		if(document.getElementById('notPublishEmail').value == '') {
			error += "- verification Email\n";
		}

	}
*/
	if (error != '') {
		error = "You must fill out all required fields!\n" + error;
		alert(error);
		return false;
	}
	return true;
}

function clickVerify(action, ids)
{
	var error = true;
	for (i = 0; i < ids.length; i++) {
		if (document.getElementById('item_' + ids[i]).checked == true) {
			error = false;
		}
	}
	
	if (error == true) {
		alert('Please select at least one event');
	} else {
		document.getElementById('action').value = action;
		document.getElementById('verifyForm').submit();
	}
}

function clickDeletePending()
{
	message = "Are you sure you want to delete selected events?";
	if (confirm(message)) {
		document.getElementById('action').value = 'deletePendingEvents';
		document.getElementById('verifyForm').submit();	
	}
}

function clickSelectImage()
{
	document.getElementById('everyThing').style.display = 'none';
	document.getElementById('selectImage').style.display = '';
}

function countCharacters()
{
	if (document.getElementById('description').value.length > 1250) {
		alert('1250 Characters limit!');
		document.getElementById('description').value = document.getElementById('description').value.substring(0, 1250);
	}
	return true;
}

function verifyForm()
{
	error = '';
	if (document.getElementById('downtown').checked  == false && document.getElementById('southwest').checked == false && 
		document.getElementById('mn_parent').checked == false && document.getElementById('goodage').checked == false ) {
		
		error += "- You must select a publication\n";
	}

	if (document.getElementById('title').value == '') {
		error += "- title\n";
	}

	if (document.getElementById('location').value == '') {
		error += "- location\n";
	}
/*	
	if (document.getElementById('address').value == '') {
		error += "- address\n";
	}
	
	if (document.getElementById('city').value == '') {
		error += "- city\n";
	}
	
	if (document.getElementById('publishName').value == '') {
		error += "- contact name\n";
	}
	
	if (document.getElementById('publishPhone').value == '') {
		error += "- contact phone\n";
	}
	
	if (document.getElementById('publishEmail').value == '') {
		error += "- contact Email\n";
	}
	
	if(document.getElementById('sameAsLeft').checked == false) {
			if (document.getElementById('verifyName').value == '') {
				error += "- verification name\n";
			}
			
			if (document.getElementById('verifyPhone').value == '') {
				error += "- verification phone\n";
			}
			
			if (document.getElementById('verifyEmail').value == '') {
				error += "- verification Email\n";
			}
	}
*/	
	if (error != '') {
		error = "You must fill out all required fields!\n" + error;
		alert(error);
		return false;
	}
	return true;
}

