function setResponseAndSubmit(responseText, formName)
{
	document.getElementById("response").value = responseText;
	if (formName)
	{
		submitForm(formName);
	}
}

// Edit form - date selection
function datePickedStart(calendar, date)
{
	calendarDatePicked(calendar, date, 'startdate');
}
function datePickedEnd(calendar, date)
{
	calendarDatePicked(calendar, date, 'enddate');
}
function datePickedRsvp(calendar, date)
{
	calendarDatePicked(calendar, date, 'rsvp_enddate');
}

function calendarDatePicked(calendar, date, elementnamebase)
{
	//console.log('calendarDatePicked(', calendar, date, ')');
	
	// Beware that this function is called even if the end-user only
	// changed the month/year.  In order to determine if a date was
	// clicked you can use the dateClicked property of the calendar:
	if (calendar.dateClicked) 
	{
		// OK, a date was clicked, redirect to /yyyy/mm/dd/index.php
		var y = calendar.date.getFullYear();
		var m = calendar.date.getMonth();     // integer, 0..11
		var d = calendar.date.getDate();      // integer, 1..31
		//console.log(y, m, d);
		
		calendar.callCloseHandler();
		
		setDate(y, m, d, elementnamebase);
		if (elementnamebase == 'startdate')
		{
			setDate(y, m, d, 'enddate');
		}
	}
}

function setDateFromText(ymd, elementnamebase)
{
	//console.log("setDateFromText(", ymd, elementnamebase, ")");
	
	ymdx = ymd.split("/");
	//console.log(ymdx);
	
	y = Number(ymdx[0]);
	m = Number(ymdx[1])-1;
	d = Number(ymdx[2]);
	
	setDate(y, m, d, elementnamebase);
}

function setDate(y, m, d, elementnamebase)
{
	//console.log("setDate(", y, m, d, elementnamebase, ")");
	
	document.getElementById(elementnamebase+'y').value = y;
	document.getElementById(elementnamebase+'m').value = (m+1);
	document.getElementById(elementnamebase+'d').value = d;
	
	year = y;
	month = m+1;
	day = d;
	
	if (month < 10)
	{
		month = '0'+month;
	}
	
	if (day < 10)
	{
		day = '0'+day;
	}
	
	dateOutput = year+'-'+month+'-'+day;
	
	document.getElementById(elementnamebase+'Output').innerHTML = dateOutput;
}

function resetDateStart()
{
	resetDate("startdate");
}
function resetDateEnd()
{
	resetDate("enddate");
}
function resetDateRsvp()
{
	resetDate("rsvp_enddate");
}

function resetDate(elementnamebase)
{
	document.getElementById(elementnamebase+'y').value = '';
	document.getElementById(elementnamebase+'m').value = '';
	document.getElementById(elementnamebase+'d').value = '';
	document.getElementById(elementnamebase+'hr').selectedIndex = 0;
	document.getElementById(elementnamebase+'min').selectedIndex = 0;
	document.getElementById(elementnamebase+'Output').innerHTML = '';
}

// Search form - calendar selections
var selectedCalendarItems = [ ];

function selectDay(y, m, d)
{
	//console.log('selectDay(', y, m, d, ')');
	
	unselectAll();
	
	dayId = 'day'+y.toString()+pad((m+1).toString(), 2, '0', STR_PAD_LEFT)+pad(d.toString(), 2, '0', STR_PAD_LEFT);
	//console.log(dayId);
	
	selectedCalendarItems.push(dayId);
	
	document.getElementById(dayId).className = 'Selected';
	
	document.getElementById('y').value = y;
	document.getElementById('m').value = Number(m)+1;
	document.getElementById('d').value = d;
	document.getElementById('w').value = '';
	document.getElementById('wks').value = '';
	document.getElementById('r').value = '';
}

function selectWeek(y, w)
{
	unselectAll();
	
	elementId = "week"+w;
	selectedCalendarItems.push(elementId);
	
	document.getElementById(elementId).className = 'Selected';

	document.getElementById('y').value = y;
	document.getElementById('m').value = '';
	document.getElementById('d').value = '';
	document.getElementById('w').value = w;
	document.getElementById('wks').value = '';
	document.getElementById('r').value = '';
}

function selectMonth(y, m)
{
	unselectAll();
	
	elementId = "monthSelect";
	selectedCalendarItems.push(elementId);
	
	document.getElementById(elementId).className = 'Selected';
	
	document.getElementById('y').value = y;
	document.getElementById('m').value = Number(m)+1;
	document.getElementById('d').value = '';
	document.getElementById('w').value = '';
	document.getElementById('wks').value = '';
	document.getElementById('r').value = '';
}

function selectAll()
{
	for (var z in selectedCalendarItems)
	{
		elementId = selectedCalendarItems[z];
		if (document.getElementById(elementId))
		{
			document.getElementById(elementId).className = 'Selected';
		}
	}
}

function unselectDates()
{
	unselectAll();
	
	document.getElementById('y').value = '';
	document.getElementById('m').value = '';
	document.getElementById('d').value = '';
	document.getElementById('w').value = '';
	document.getElementById('wks').value = '';
	document.getElementById('r').value = '';
}

function unselectAll()
{
	for (var z in selectedCalendarItems)
	{
		elementId = selectedCalendarItems[z];
		if (document.getElementById(elementId))
		{
			document.getElementById(elementId).className = 'NotSelected';
		}
	}
	
	selectedCalendarItems = [ ];
}

// ================================================================================================

function setRSVP(eventid, rsvp)
{
	window.location.href = "?action=rsvp&eventid=" + eventid + "&response=" + rsvp;
}

function rsvplimit(el)
{
	if(!el.checked)
	{
		document.getElementById("rsvp_limit").value = "";
	}
}

function checklimit(el)
{
	document.getElementById("flaglimit").checked = true;
}

function goto(url)
{
	window.location.href = url;
	return false;
}

function checkLate(value)
{
	document.getElementById("enddatehr").selectedIndex = 0;
	document.getElementById("enddatemin").selectedIndex = 0;
}

function uncheckLate()
{
	document.getElementById("tilllate").checked = false;
}

function validateform()
{
	var error = new Array();
	var today = new Date();
	var startdate = new Date();
	var enddate = new Date();
	var rsvpdate = new Date();
	var errorid = 0;
	
	startdated = document.getElementById("startdated");
	startdatem = document.getElementById("startdatem");
	startdatey = document.getElementById("startdatey");
	
	enddated = document.getElementById("enddated");
	enddatem = document.getElementById("enddatem");
	enddatey = document.getElementById("enddatey");
	
	rsvp_enddated = document.getElementById("rsvp_enddated");
	rsvp_enddatem = document.getElementById("rsvp_enddatem");
	rsvp_enddatey = document.getElementById("rsvp_enddatey");
	
	// To make sure start date is added
	if(startdated.selectedIndex == 0 || startdatem.selectedIndex == 0 || startdatey.selectedIndex == 0){
		error[errorid] = 1;
		errorid++;
	}
	
	// to check it end date is not earlier than start date
	if(enddated.selectedIndex != 0 || enddatem.selectedIndex != 0 || enddatey.selectedIndex != 0){
		startdate.setFullYear(startdatey.options[startdatey.selectedIndex].value, (startdatem.options[startdatem.selectedIndex].value-1), startdated.options[startdated.selectedIndex].value);
		
		enddate.setFullYear(enddatey.options[enddatey.selectedIndex].value, (enddatem.options[enddatem.selectedIndex].value-1), enddated.options[enddated.selectedIndex].value);
	
		if(startdate > enddate){
			error[errorid] = 2;
			errorid++;
		}
	}
	
	// to check if rsvp date is bfore start date
	if(rsvp_enddated.selectedIndex != 0 || rsvp_enddatem.selectedIndex != 0 || rsvp_enddatey.selectedIndex != 0)
	{
		rsvpdate.setFullYear(rsvp_enddatey.options[enddatey.selectedIndex].value, (rsvp_enddatem.options[rsvp_enddatem.selectedIndex].value-1), rsvp_enddated.options[rsvp_enddated.selectedIndex].value);
		
		if(startdate < rsvpdate){
			error[errorid] = 3;
			errorid++;
		}
	}
	
	
	name = document.getElementById("name");
	if(name.value==""){
		error[errorid] = 4;
		errorid++;
	}
	
	category = document.getElementById("categoryid");
	if(category.selectedIndex==0){
		error[errorid] = 5;
		errorid++;
	}
	
	country = document.getElementById("location-country");
	if(country.selectedIndex==0){
		error[errorid] = 6;
		errorid++;
	}

	if(errorid > 0)
	{
		errorMessage(error);
		//alert("erro"+errorid);
		return false;
	}
	return true;
}

function changeAgendaCountry(countryid, lang)
{
	ajaxAgenda.startRequest(countryid, lang);
}


// ajax "class"
var ajaxAgenda = 
{
	type: false,
	bizid: false,
	handleSuccess: function(o)
	{
		// o.responseText
		// o.responseXML
		//console.log(o.responseText);
		this.processResult(o);
	},
	handleFailure: function(o)
	{
		// o.responseText
		// o.responseXML
	},
	processResult: function(o)
	{
		//console.log("prefix=", this.prefix);
		try
		{
			var html = o.responseText;
		}
		catch (e)
		{
			// Error in JSON data!
			alert("eeeeeeee");
		}
		
		holder = document.getElementById('agendaholder');
		holder.innerHTML = html;
		
	},
	startRequest: function(countryid, lang)
	{
		YAHOO.util.Connect.asyncRequest('GET', '/ajax/agenda-listing.php?countryid=' + countryid + '&lang=' + lang, ajaxAgendaCallback);
	}
};


var ajaxAgendaCallback = {
	success: ajaxAgenda.handleSuccess,
	failure: ajaxAgenda.handleFailure,
	scope: ajaxAgenda
};



// Select Organiser

function selectOrganiser(listingid)
{
	if(listingid)
	{
		ajaxOrganiser.startRequest(listingid);
	}
}

// ajax "class"
var ajaxOrganiser = 
{
	handleSuccess: function(o)
	{
		this.processResult(o);
	},
	handleFailure: function(o)
	{
	},
	processResult: function(o)
	{
		try
		{
			var listing = YAHOO.lang.JSON.parse(o.responseText);
			
		}
		catch (e)
		{
			// Error in JSON data!
			alert("error");
		}
		
		//if (listing)
		//{
			document.getElementById('address1').value = listing['translations']['native']['address1'];
			document.getElementById('address2').value = listing['translations']['native']['address2'];
			document.getElementById('unit').value     = listing['translations']['native']['unit'];
			document.getElementById('suburb').value   = listing['translations']['native']['suburb'];
			document.getElementById('postcode').value = listing['translations']['native']['postcode'];
			document.getElementById('enquiryphone').value = listing['contact_tel'];
			document.getElementById('enquiryemail').value = listing['contact_email'];
			document.getElementById('websiteurl').value   = listing['contact_url'];
			
			
			document.getElementById('location-country').value = listing['countryid'];
			//document.getElementById('location-country')[listing['countryid']].selected = true;
			changeCountry('location');
			placeMarker();
			/*document.getElementById('location-state')[listing['stateid']].selected = true;
			changeState('location');
			document.getElementById('location-city')[listing['cityid']].selected = true;*/
			
			/*document.getElementById('location-country').selectedIndex = listing['countryid'];
			document.getElementById('location-state').selectedIndex   = listing['stateid'];
			document.getElementById('location-city').selectedIndex    = listing['cityid'];
			*/
			
			
			/*changeMapLocation(listing['countryid'], listing['stateid'], listing['cityid']);*/
			
		//}
		//holder = document.getElementById('agendaholder');
		//holder.innerHTML = html;
		
	},
	startRequest: function(listingid)
	{
		YAHOO.util.Connect.asyncRequest('GET', '/ajax/directory-getlisting.php?listingid=' + listingid, ajaxOrganiserCallback);
	}
};

var ajaxOrganiserCallback = {
	success: ajaxOrganiser.handleSuccess,
	failure: ajaxOrganiser.handleFailure,
	scope: ajaxOrganiser
};

function deselectListings()
{
	var listings = document.getElementById("listingids[]");
	for (var i=0; i < listings.length; i++)
	{
		listings.options[i].selected = false;
	}
}
