var FmnRefineResultsForm = function() {

	return {
		bootStrap : function() {
			if ($('fmn-results-refine-category')) $('fmn-results-refine-category').observe('change', FmnRefineResultsForm.submitCategoryForm);
		},
		
		submitCategoryForm : function(event) {
			var el = event.element();
			var url = el.options[el.selectedIndex].value;
			if (url) window.location = url; 
		}
	}
}();


var FmnSearchForm = function() {

	return {
	
		clearFmnSearchFieldBusiness : function(event) {
			var element = event.element();
			// note - if you change this default value, be sure to change them in the searchBar view too
			if (element.value == 'e.g. florists')
				element.clear();
		},

		clearFmnSearchFieldCategory : function(event) {
			var element = event.element();
			// note - if you change this default value, be sure to change them in the searchBar view too
			if (element.value == 'e.g. UpMyStreet')
				element.clear();
		},

		clearFmnSearchFieldLocation : function(event) {
			var element = event.element();
			// note - if you change this default value, be sure to change them in the searchBar view too
			if (element.value == 'County, City, Area, or Post Code')
				element.clear();
		}		
	}
}();

var SetContactDetails = function() {
	var sameAsBusinessDetailsButtonText = 'Use my business details';
	
	return {
		bootStrap : function() {
			if ($('premiumListingSetContactDetailsButton')) {
				var setContactDetailsButtonEl = SetContactDetails.createSetContactDetailsButton(sameAsBusinessDetailsButtonText);
			}
		},
		
		respondToSetContactDetailsButtonClick : function() {
			// pressed 'same as my business details'
			$('contactAddressLine1').value = $('businessAddressLine1').value;
			$('contactAddressLine2').value = $('businessAddressLine2').value;
			$('contactTown').value = $('businessTown').value;
			$('contactPostcode').value = $('businessPostcode').value;
			$('contactTelephone').value = $('businessTelephone').value;
			$('contactEmailAddress').value = $('businessEmailAddress').value;
		} ,
		
		isSafariOrChrome : function() {
			return (BrowserDetect.browser == 'Chrome' || BrowserDetect.browser == 'Safari');
		},
		
		createSetContactDetailsButton : function(name) {
			var buttonEl = document.createElement('input');
			buttonEl.setAttribute('type', 'button');
			buttonEl.setAttribute('id', 'premiumListingSetContactDetailsButtonId');
			buttonEl.setAttribute('value', name);
			
			var textEl = document.createElement('p');
			textEl.innerHTML = 'Click the following button to automatically fill this form with your business details, if they are your preferred contact details.'; 
			
			if (SetContactDetails.isSafariOrChrome())
				buttonEl.setAttribute('onclick', 'SetContactDetails.respondToSetContactDetailsButtonClick()');

			$('premiumListingSetContactDetailsButton').appendChild(textEl);
			$('premiumListingSetContactDetailsButton').appendChild(buttonEl);
			
			if (!SetContactDetails.isSafariOrChrome())
				$('premiumListingSetContactDetailsButtonId').observe('click', SetContactDetails.respondToSetContactDetailsButtonClick);
			
			return buttonEl;
		}
	};
}();

var RateReview = function() {

	return {
		bootStrap : function() {
			if ($('fmndetails-reviewradio') && $('fmndetails-reviewradiobuttons')) {
				$('fmndetails-reviewradiobuttons').hide();
			
				var thumbUpImageEl = document.createElement('img');
				thumbUpImageEl.setAttribute('src', '/images/thumbup-off.jpg');
				thumbUpImageEl.setAttribute('id', 'reviewRadioThumbUp');
		
				var thumbDownImageEl = document.createElement('img');
				thumbDownImageEl.setAttribute('src', '/images/thumbdown-off.jpg');
				thumbDownImageEl.setAttribute('id', 'reviewRadioThumbDown');
				
				$('fmndetails-reviewradio').appendChild(thumbUpImageEl);
				$('fmndetails-reviewradio').appendChild(thumbDownImageEl);
				
				$('reviewRadioThumbUp').observe('click', RateReview.respondToBusinessReviewRadioThumbUp);
				$('reviewRadioThumbDown').observe('click', RateReview.respondToBusinessReviewRadioThumbDown);
		
				if ($('reviewRadioReviewPositive').checked) RateReview.respondToBusinessReviewRadioThumbUp();
				if ($('reviewRadioReviewNegative').checked) RateReview.respondToBusinessReviewRadioThumbDown();
			}
			
			if ($('fmndetails-rateradio') && $('fmndetails-rateradiobuttons')) {
				$('fmndetails-rateradiobuttons').hide();
				
				var thumbUpImageEl = document.createElement('img');
				thumbUpImageEl.setAttribute('src', '/images/thumbup-off.jpg');
				thumbUpImageEl.setAttribute('id', 'rateRadioThumbUp');
		
				var thumbDownImageEl = document.createElement('img');
				thumbDownImageEl.setAttribute('src', '/images/thumbdown-off.jpg');
				thumbDownImageEl.setAttribute('id', 'rateRadioThumbDown');
				
				$('fmndetails-rateradio').appendChild(thumbUpImageEl);
				$('fmndetails-rateradio').appendChild(thumbDownImageEl);
				
				$('rateRadioThumbUp').observe('click', RateReview.respondToBusinessRateRadioThumbUp);
				$('rateRadioThumbDown').observe('click', RateReview.respondToBusinessRateRadioThumbDown);
		
				if ($('rateRadioRatePositive').checked)	RateReview.respondToBusinessRateRadioThumbUp();
				if ($('rateRadioRateNegative').checked) RateReview.respondToBusinessRateRadioThumbDown();
			}
		},
		
		respondToBusinessReviewRadioThumbUp : function(event) {
			$('reviewRadioThumbDown').setAttribute('src', '/images/thumbdown-off.jpg');
			$('reviewRadioThumbUp').setAttribute('src', '/images/thumbup-on.jpg');
			$('reviewRadioReviewNegative').checked = false;	
			$('reviewRadioReviewPositive').checked = true;
		},

		respondToBusinessReviewRadioThumbDown : function(event) {
			$('reviewRadioThumbDown').setAttribute('src', '/images/thumbdown-on.jpg');
			$('reviewRadioThumbUp').setAttribute('src', '/images/thumbup-off.jpg');
			$('reviewRadioReviewNegative').checked = true;	
			$('reviewRadioReviewPositive').checked = false;	
		},
		
		respondToBusinessRateRadioThumbUp : function(event) {
			$('rateRadioThumbDown').setAttribute('src', '/images/thumbdown-off.jpg');
			$('rateRadioThumbUp').setAttribute('src', '/images/thumbup-on.jpg');
			$('rateRadioRateNegative').checked = false;	
			$('rateRadioRatePositive').checked = true;
		},

		respondToBusinessRateRadioThumbDown : function(event) {
			$('rateRadioThumbDown').setAttribute('src', '/images/thumbdown-on.jpg');
			$('rateRadioThumbUp').setAttribute('src', '/images/thumbup-off.jpg');
			$('rateRadioRateNegative').checked = true;	
			$('rateRadioRatePositive').checked = false;	
		},		
		
		writeReviewPopup : function(event) {
			var url = Event.findElement(event, 'a').href;
			if (url) {
				RateReview.doPopup(url, 400, 500);
			}
		},
		
		ratePopup : function(event) {
			var url = Event.findElement(event, 'a').href;
			if (url) {
				RateReview.doPopup(url, 156, 160);
			}
		},
		
		doPopup : function(url, width, height) {
			Lightview.show({
				href: url+'?popupView=1',
				rel: 'iframe',
				options: {
					width: width,
					height: height,
					overlayClose: false
				}
			});
		},
		
		hidePopup : function() {
			parent.window.location = '/news-features/log-in/l/';
			Lightview.hide();
		}
		
	}
}();

Event.observe(window, 'load', function() {
	if ($('fmndetails-ratelink')) $('fmndetails-ratelink').observe('click', RateReview.ratePopup);
	if ($('fmndetails-writereviewlink')) $('fmndetails-writereviewlink').observe('click', RateReview.writeReviewPopup);
	RateReview.bootStrap();
});