var lifestyle = function(){}

lifestyle.showListing = function(id, preview) {

	var jsonObject = {task: 'lifestyle_listing', id: id, preview: preview}
	popup.show(jsonObject);
	
}

lifestyle.showReviews = function(id) {
	
	var jsonObject = {task: 'lifestyle_reviews', id: id}
	popup.show(jsonObject);
	
}

lifestyle.reviewLogin = function(id) {
	
	login.defaultLoginCallback = function(data) {
		if (data == "") {
			login.redrawMenuLoggedIn();
			lifestyle.showReviews(id);
		} else
			popup.displayCallback(data);
	}
	popup.onClosePopup.subscribe(function() {login.defaultLoginCallback = login.closeOnTrue;});
	login.getLogin();

}

lifestyle.submitReview = function() {
	
	var postObj = {task: 'saveLifestyleReview', id: $('id').value, review: $('review').value}
	new Ajax('../ajax/popup.ajax.php', {method: 'post', data: postObj, onComplete: popup.displayCallback}).request();
	
}

lifestyle.moreReviews = function() {
	
	var postObj = {task: 'moreReviews', id: $('id').value, currentReview: $('currentReview').value, maxReviews: $('maxReviews').value}
	new Ajax('../ajax/popup.ajax.php', {method: 'post', data: postObj, onComplete: lifestyle.populateReviews}).request();
	
}

lifestyle.giveHighFive = function() {
	
	new Ajax('../ajax/popup.ajax.php', {method: 'post', data: {task: 'giveHighFive', id: $('id').value}, onComplete: popup.displayCallback}).request();
	
}

lifestyle.populateReviews = function(data) {
	
	document.getElementById('reviews').innerHTML = data;
	
}

function selectType(grub) {
		document.getElementById('listing_activity_id').disabled = (grub == "1");
}

function nextReview() {
	
	var currentReview = document.getElementById('currentReview').value;
	var maxReviews = document.getElementById('maxReviews').value;
	var id = document.getElementById('id').value;
	var getString = 'task=getReviews&id='+id+'&current='+currentReview+'&max='+maxReviews;
	
	var postObj = {task: 'getReviews', id: id, current: currentReview, max: maxReviews}
	
	new Ajax('../ajax/lifestyle.ajax.php', {method: 'post', data: postObj, onComplete: populateReviews}).request();
	
}

function nextPage(type) {
	
	if (type != 'adventure' && type != 'grub' && type != 'gear')
		return false;
	
	var country = document.getElementById('country').value;
	var state = document.getElementById('state').value;
	var region = document.getElementById('region').value;
	var activity = document.getElementById('activity').value;
	var currentPage= document.getElementById(type+'_page').value;
	var nextPage = Number(currentPage) + 1;
	
	var postObj = {task: 'newPage', type: type, page: nextPage, country: country, state: state, region: region, activity: activity}
	
	new Ajax("../ajax/lifestyle.ajax.php", {method: 'post', data: postObj, onComplete: populateNextPage}).request();
	
}

function prevPage(type) {
	
	if (type != 'adventure' && type != 'grub' && type != 'gear')
		return false;
	
	var country = document.getElementById('country').value;
	var state = document.getElementById('state').value;
	var region = document.getElementById('region').value;
	var activity = document.getElementById('activity').value;
	var currentPage= document.getElementById(type+'_page').value;
	var prevPage = Number(currentPage) - 1;
	
	var postObj = {task: 'newPage', type: type, page: prevPage, country: country, state: state, region: region, activity: activity}
	
	new Ajax("../ajax/lifestyle.ajax.php", {method: 'post', data: postObj, onComplete: populatePrevPage}).request();
	
}

function updateResults() {
	
	var country = document.getElementById('country').value;
	var state = document.getElementById('state').value;
	var region = document.getElementById('region').value;
	var activity = document.getElementById('activity').value;
	
	var postObj = {task: 'search', country: country, state: state, region: region, activity: activity}
	
	new Ajax("../ajax/lifestyle.ajax.php", {method: 'post', data: postObj, onComplete: populateResults}).request();
	
}

function updateActivities() {
	
	var country = document.getElementById('country').value;
	var state = document.getElementById('state').value;
	var region = document.getElementById('region').value;
	
	var postObj = {task: 'getActivities', country: country, state: state, region: region}
	
	new Ajax("../ajax/lifestyle.ajax.php", {method: 'post', data: postObj, onComplete: populateActivities}).request();
	
}

function selectCountry(country) {
	
	var postObj = {task: 'getStates', country: country}
	
	new Ajax("../ajax/lifestyle.ajax.php", {method: 'post', data: postObj, onComplete: populateStates}).request();
	clear('region');
	clear('state');
	clear('activity');
	updateActivities();
	updateResults();
	
}

function selectState(state) {
	
	var postObj = {task: 'getRegions', state: state}
	
	clear('region');
	clear('activity');
	new Ajax("../ajax/lifestyle.ajax.php", {method: 'post', data: postObj, onComplete: populateRegions}).request();
	updateActivities();
	updateResults();
	
}

function selectRegion(region) {
	
	updateActivities();
	updateResults();
	
}

function populateResults(data) {
	
	var obj = eval(data);
	var gearString = (obj.gear.total == 0) ? "No results" : "";
	var grubString = (obj.grub.total == 0) ? "No results" : "";
	var adventureString = (obj.adventure.total == 0) ? "No results" : "";
	
	for (i = 0; i < obj.gear.data.length; i++) {
		var current = obj.gear.data[i];
		gearString += '<a href="javascript:lifestyle.showListing('+current.id+',false);"><div class="listing-short"><b>'+current.businessName+'</b><br/>('+current.city+', '+current.state+')<br/><strong>'+current.discountText+'</strong></div></a>';
	}
	
	for (i = 0; i < obj.grub.data.length; i++) {
		var current = obj.grub.data[i];
		grubString += '<a href="javascript:lifestyle.showListing('+current.id+',false);"><div class="listing-short"><b>'+current.businessName+'</b><br/>('+current.city+', '+current.state+')<br/><strong>'+current.discountText+'</strong></div></a>';
	}
	
	for (i = 0; i < obj.adventure.data.length; i++) {
		var current = obj.adventure.data[i];
		adventureString += '<a href="?a=viewadv&id='+current.adventureID+'"><div class="listing-short"><b>'+current.businessName+'</b><br/>('+current.city+', '+current.state+')<br/><strong>'+current.discountText+'</strong></div></a>';
	}
	
	//document.getElementById('load').innerHTML = data;
	
	//Set next links if applicable
	var maxResults = document.getElementById('max_results').value;
	document.getElementById("gear_next").style.display = (obj.gear.total > Number(maxResults)) ? 'inline' : 'none';
	document.getElementById("grub_next").style.display = (obj.grub.total > Number(maxResults)) ? 'inline' : 'none';
	document.getElementById("adventure_next").style.display = (obj.adventure.total > Number(maxResults)) ? 'inline' : 'none';
		
	//Hide all prev links
	document.getElementById("gear_prev").style.display = 'none';
	document.getElementById("grub_prev").style.display = 'none';
	document.getElementById("adventure_prev").style.display = 'none';
	
	//Reset all page numbers
	document.getElementById('gear_page').value = 0;
	document.getElementById('grub_page').value = 0;
	document.getElementById('adventure_page').value = 0;
	
	//Set totals
	document.getElementById('gear_total').innerHTML = obj.gear.total;
	document.getElementById('grub_total').innerHTML = obj.grub.total;
	document.getElementById('adventure_total').innerHTML = obj.adventure.total;
	
	//Populate columns
	document.getElementById('gear_column').innerHTML = gearString;
	document.getElementById('grub_column').innerHTML = grubString;
	document.getElementById('adventure_column').innerHTML = adventureString;
	
}

function populateNextPage(data) {

	var obj = eval(data);
	var returnString = "";
	var contentID = obj.type+"_column";
	for (i = 0; i < obj.data.length; i++) {
		var current = obj.data[i];
		if (obj.type == "adventure")
			returnString += '<a href="?a=viewadv&id='+current.id+'"><div class="listing-short"><b>'+current.businessName+'</b><br/>('+current.city+', '+current.state+')<br/><strong>'+current.discountText+'</strong></div></a>';
		else
			returnString += '<a href="javascript:lifestyle.showListing('+current.id+',false);"><div class="listing-short"><b>'+current.businessName+'</b><br/>('+current.city+', '+current.state+')<br/><strong>'+current.discountText+'</strong></div></a>';
	}
	
	var currentPage = document.getElementById(obj.type+"_page").value;
	var newPage = Number(currentPage) + 1;
	
	//Fix navigation links
	var maxResults = document.getElementById('max_results').value;
	var totalResults = document.getElementById(obj.type+"_total").innerHTML;
	if ((Number(newPage) + 1) * Number(maxResults) >= Number(totalResults))
		document.getElementById(obj.type+"_next").style.display = 'none';
	if (newPage > 0)
		document.getElementById(obj.type+"_prev").style.display = 'inline';
	
	document.getElementById(contentID).innerHTML = returnString;
	document.getElementById(obj.type+"_page").value = newPage;
	
}

function populatePrevPage(data) {

	var obj = eval(data);
	var returnString = "";
	var contentID = obj.type+"_column";
	for (i = 0; i < obj.data.length; i++) {
		var current = obj.data[i];
		if (obj.type == "adventure")
			returnString += '<a href="?a=viewadv&id='+current.id+'"><div class="listing-short"><b>'+current.businessName+'</b><br/>('+current.city+', '+current.state+')<br/><strong>'+current.discountText+'</strong></div></a>';
		else
			returnString += '<a href="javascript:lifestyle.showListing('+current.id+',false);"><div class="listing-short"><b>'+current.businessName+'</b><br/>('+current.city+', '+current.state+')<br/><strong>'+current.discountText+'</strong></div></a>';
	}
	
	var currentPage = document.getElementById(obj.type+"_page").value;
	var newPage = Number(currentPage) - 1;
	
	//Fix navigation links
	var maxResults = document.getElementById('max_results').value;
	var totalResults = document.getElementById(obj.type+"_total").innerHTML;
	if (newPage - 1 < 0)
		document.getElementById(obj.type+"_prev").style.display = 'none';
	if ((Number(newPage) + 1) * Number(maxResults) < Number(totalResults))
		document.getElementById(obj.type+"_next").style.display = 'inline';
	
	document.getElementById(contentID).innerHTML = returnString;
	document.getElementById(obj.type+"_page").value = newPage;
	
}

function clear(field) {

	var defaultText = (field == "activity") ? "Activities" : ((field == "state") ? "States" : "Regions");
	var inject = '<option value="0">- All '+defaultText+'</option>';
	var changeFunction = (field == "activity") ? "updateResults();" : ((field == "state") ? "selectState();" : "selectRegion();");
	if (navigator.appName == "Microsoft Internet Explorer")
		document.getElementById(field+'_list').innerHTML = '<select name="'+field+'" id="'+field+'" onChange="'+changeFunction+'">'+inject+'</select>';
	else
	document.getElementById(field).innerHTML = inject;
	
}

function populateActivities(data) {
	
	var inject = '<option value="0">- All Activities</option>'+data;
	//IE Fix
	if (navigator.appName == "Microsoft Internet Explorer")
		document.getElementById('activity_list').innerHTML = '<select name="activity" id="activity" onChange="updateResults();">'+inject+'</select>';
	else
		document.getElementById('activity').innerHTML = inject;
	
}

function populateStates(data) {
	
	var inject = '<option value="0">- All States</option>'+data;
	//IE Fix
	if (navigator.appName == "Microsoft Internet Explorer")
		document.getElementById('state_list').innerHTML = '<select name="state" id="state" onChange="selectState(this.value);">'+inject+'</select>';
	else
		document.getElementById('state').innerHTML = inject;
	
}

function populateRegions(data) {
	
	var inject = '<option value="0">- All Regions</option>'+data;
	//IE Fix
	if (navigator.appName == "Microsoft Internet Explorer")
		document.getElementById('region_list').innerHTML = '<select name="region" id="region" onChange="selectRegion(this.value);">'+inject+'</select>';
	else
		document.getElementById('region').innerHTML = inject;
	
}

function getPartner(id, inAdmin) {
	
	var source = '../ajax/lifestyle.ajax.php';
	var fields = Array('partner_contact_first_name','partner_contact_last_name','partner_contact_position','partner_contact_email','partner_confirm_email','partner_contact_phone');
	if (inAdmin)
		for (i = 0; i < fields.length; i++)
			document.getElementById(fields[i]).disabled = (id != "none");
	if (id == "none")
		for (i = 0; i < fields.length; i++)
			document.getElementById(fields[i]).value = "";
	else
		new Ajax(source, {method: 'post', data: {task: 'getPartner', id: id}, onComplete: populatePartner}).request();
	
}

function enableContactFields() {
	
	var fields = Array('partner_contact_first_name','partner_contact_last_name','partner_contact_position','partner_contact_email','partner_contact_phone');
	for (i = 0; i < fields.length; i++)
		document.getElementById(fields[i]).disabled = false;
		
	return true;
	
}

function populatePartner(data) {
	
	var obj = eval(data);
	if (obj.success == "false")
		alert(obj.reason);
	else {
		fields = obj.data;
		document.getElementById('partner_contact_first_name').value = fields.firstname;
		document.getElementById('partner_contact_last_name').value = fields.lastname;
		document.getElementById('partner_contact_position').value = fields.position;
		document.getElementById('partner_contact_email').value = document.getElementById('partner_confirm_email').value = fields.email;
		document.getElementById('partner_contact_phone').value = fields.phone;
	}
	
}