// JavaScript Document


var P = {

	linkId : 'popoverLink',
	blackoutId : 'blackout',
	popoverId : 'popover',
	closeId : 'popover-close',
           disabled: false,

	positionLink: function(){
		$(P.linkId).setStyle( 'top', $(window).getScroll().y + 200 );
	},
	
	centrePopover: function(){
		var el = $(P.popoverId);
		el.setStyles({ 
			'top' : (($(window).getSize().y - 450) / 2) + $(window).getScroll().y,
			'left' : (($(window).getSize().x - 530) / 2) + $(window).getScroll().x
		});
		$(P.blackoutId).setStyles({
			'width' : $(window).getScrollSize().x,
			'height' : $(window).getScrollSize().y						  
		});
		P.positionLink();
	},
	
	blackout: function(){
		var b = $(P.blackoutId);
		b.setStyles({
			'width' : $(window).getScrollSize().x,
			'height' : $(window).getScrollSize().y,
			'opacity' : 0,
			'display' : 'block'
		});
		b.tween('opacity', 0.7);
	},
	
	showPopover: function(){
                  if( P.disabled){
                           alert('This service is not currently available.  Please email enquiries[at]hfs-clinics@co.uk to request an appointment'); return false;
                    }
		P.centrePopover();
		P.blackout();
		var p = $(P.popoverId);
		p.setStyles({
			'opacity' : 0,
			'display' : 'block'
		});
		p.tween('opacity', 1);
		$('popover-inner').setStyle('display', 'block');
		$('popover-success').setStyle('display', 'none');
	},

	closePopover: function(){
		$(P.popoverId).tween('opacity', 0);
		$(P.blackoutId).tween('opacity', 0);
		P.tidy.delay(1000);
	},
	
	tidy: function(){
		$(P.blackoutId).setStyle('display', 'none');
		$(P.popoverId).setStyle('display', 'none');
	},
	
	validate: function(){
		var passed = true;
		$$('#'+P.popoverId+' input.text, #'+P.popoverId+' textarea' ).each( function(el){
			if( el.value.trim() == '' ){
				el.setStyle( 'border', '2px solid #CE0000');
				passed = false;
			}
		});
		return passed;
	},
	
	resetStyles: function(){
		$$('#'+P.popoverId+' input.text, #'+P.popoverId+' textarea' ).each( function(el){
			el.setStyle( 'border', '1px solid #A8A8A8');
		});
	},
	
	submitForm: function(e){
		new Event(e).stop();
		P.resetStyles();
		if( !P.validate() ){
			alert('Please fill in all fields');
			return;
		}
		this.send();
	},
	
	submitHandler: function(){
		$('popover-loader').setStyle('display', 'block');
	},
	
	successHandler: function(){
		$('popover-loader').setStyle('display', 'none');
		$('popover-inner').setStyle('display', 'none');
		$('popover-success').setStyle('display', 'block');
		$('popover-success').tween('color', '#000000');
	},
	
	failureHandler: function(){
		$('popover-loader').setStyle('display', 'none');
		alert('An error has occured.  Please try again later or call us on 0844 264 0334');
	},
	
	init: function(){
                $(window).addEvent('load', P.centrePopover);
		$(window).addEvent('resize', P.centrePopover);
		$(window).addEvent('scroll', P.centrePopover);
		$(P.linkId).addEvent('click', P.showPopover);
		$(P.closeId).addEvent('click', P.closePopover);
              $('form-container').set('load', {onSuccess: function(){
		
		$(P.popoverId).getElement('form').addEvent('submit', P.submitForm);
		$(P.popoverId).getElement('form').set('send', {
				onRequest : P.submitHandler,
				onSuccess : P.successHandler,
				onFailure : P.failureHandler
		});
               }});
                $('form-container').load( 'http://www.hfs-clinics.co.uk/home/_appointment_form/' );
	}
	
}

$(window).addEvent('domready', P.init);
