/**
 * WebEasy extension library for Moorland Fuels
 * 
 * @author Stephen Smith stephen.smith@aqnet.co.uk
 * @copyright Aqua Technologies Limited 2011
 * @link http://www.aqnet.co.uk/
 * @version 1.00.00, 2011-09-06
 * @todo 	
 * 
 * History:
 * 
 */

if (typeof Prototype == 'undefined' || !Prototype.Version.match("1.7")) {
	throw("WebEasy sites requires Prototype library >= 1.7.0");
}
if (typeof Effect == 'undefined') {
	throw("WebEasy sites requires the script.aculo.us effects.js library");
}

var fuelorder_color = '';
var fuelorder_html = '';

Event.observe(document, 'dom:loaded', function() {
	if (window.location.pathname == '/' || window.location.pathname == '/index.php' || window.location.pathname == '/index.html') {
		var quoteBlock = new Element('div', { 'class': 'quote', id: 'quoteblock' }).update("Loading quote system ...");
		if ($('newsticker') != undefined) {
			$('newsticker').insert({'after': quoteBlock});
		} else {
			$('col2').insert({'top': quoteBlock});
		}

		var orderForm = '<form id="getQuoteForm"><h3>Home Heating Oil</h3><p id="pricebreak">&nbsp;</p><label id="l_fuellitres" for="fuellitres">Litres</label><label id="l_fuelpostcode" for="fuelpostcode">Postcode</label><br /><input type="text" name="fuellitres" id="fuellitres" /><input type="text" name="fuelpostcode" id="fuelpostcode" /><br /><input id="fuelsubmit" type="image" src="/images/quotepanel/getquote.png" /></form>';
		$('quoteblock').update('<div id="fuelquote">' + orderForm + '</div><div id="fuelorder">&nbsp;<br />Place your order by completing our online order form</div><div id="fueldelivery"><img src="/images/quotepanel/fuel_delivery.jpg" alt="We deliver" /></div>');
	
		Event.observe('getQuoteForm', 'submit', getQuote);
		fuelorder_color = $('fuelorder').getStyle('color');
		fuelorder_html = $('fuelorder').innerHTML;
		
		new Ajax.Request('/webeasycms/local/control/FuelQuote.php?mode=getpricebreak', {
		  	method: 'get',
		  	onSuccess: function(transport) {
		  		var json = transport.responseText.evalJSON();
		  		if (!json.error) {
		  			$('pricebreak').update(json.message);
		  		}
		  	}
		});
		
	}
	Event.observe($('deliveryaddress_dropin_state_closed'), 'change', function(event) {
	    if ($('deliveryaddress_dropin_state_closed').checked) {
	    	new Effect.SlideUp($('deliveryaddress_dropin'));
	    }
	});
	Event.observe($('deliveryaddress_dropin_state_open'), 'change', function(event) {
	    if ($('deliveryaddress_dropin_state_open').checked) {
	    	new Effect.SlideDown($('deliveryaddress_dropin'));
	    }
	});
});

Event.observe(window, 'load', function() {
	if($('fuelpostcode') != undefined) {
		new Autocomplete('fuelpostcode', { 
				serviceUrl:'/webeasycms/local/control/FuelQuote.php?mode=autocomplete',
				minChars:2, 
    			maxHeight:400,
    			width:300,
    			onSelect: function(value, data){
        			$('fuelpostcode').setValue(data);
      			} 
      	});
    }
    if( $('ct_form') ){
    	$('deliveryaddress_dropin').hide();
	    if( $('contact_prefdate_1') ){
			$('contact_prefdate_1').setStyle({width: '100px'});
			var calBlock1 = new Element('img', { 'class': 'calSelect', id: 'calSelect1', src: '/webeasycms/media/images/ico_calendar.png', title: 'click to select date', style: 'vertical-align:top;' });
	    	$('contact_prefdate_1').insert({'after'  : calBlock1});
			var dpck_fieldname1 = new DatePicker({
				relative:'contact_prefdate_1',
				keepFieldEmpty:true,
				dateFormat:[["dd", "mm", "yyyy"], "/"],
				externalControl: 'calSelect1'
			});
		}
		if( $('contact_prefdate_2') ){
			$('contact_prefdate_2').setStyle({width: '100px'});
			var calBlock2 = new Element('img', { 'class': 'calSelect', id: 'calSelect2', src: '/webeasycms/media/images/ico_calendar.png', title: 'click to select date', style: 'vertical-align:top;' });
	    	$('contact_prefdate_2').insert({'after'  : calBlock2});
			var dpck_fieldname2 = new DatePicker({
				relative:'contact_prefdate_2',
				keepFieldEmpty:true,
				dateFormat:[["dd", "mm", "yyyy"], "/"],
				externalControl: 'calSelect2'
			});
		}
		if( $('contact_prefdate_3') ){
			$('contact_prefdate_3').setStyle({width: '100px'});
			var calBlock3 = new Element('img', { 'class': 'calSelect', id: 'calSelect3', src: '/webeasycms/media/images/ico_calendar.png', title: 'click to select date', style: 'vertical-align:top;' });
			$('contact_prefdate_3').insert({'after'  : calBlock3});
			var dpck_fieldname3 = new DatePicker({
				relative:'contact_prefdate_3',
				keepFieldEmpty:true,
				dateFormat:[["dd", "mm", "yyyy"], "/"],
				externalControl: 'calSelect3'
			});
		}  
		if( $('contact_price') ){
			$('contact_price').next().insert({
			  top: "&pound;"
			});
		}
	}
});

function getQuote(event) {
	var fuelLitres = $('fuellitres').getValue();
	var fuelpostcode = $('fuelpostcode').getValue();
	
	if((parseFloat(fuelLitres) != parseInt(fuelLitres)) || isNaN(fuelLitres)){
		$('fuellitres').setStyle({ background: '#fda9a9' });
		$('fuelorder').update('&nbsp;<br />Please enter a numeric value for the number of litres').setStyle({ color: 'red' });
		Event.stop(event);
		return;
	} else {
		$('fuelorder').setStyle({ color: fuelorder_color });
		$('fuellitres').setStyle({ background: '#fff' });
		$('fuelorder').update(fuelorder_html);
	}
	
	if (/^(?:^(((([A-PR-UWYZ][0-9][0-9A-HJKS-UW]?)|([A-PR-UWYZ][A-HK-Y][0-9][0-9ABEHMNPRV-Y]?))))$)$/i.test(fuelpostcode) != true) {
		$('fuelpostcode').setStyle({ background: '#fda9a9' });
		$('fuelorder').update('&nbsp;<br />Please enter the first part of your post code').setStyle({ color: 'red' });
		Event.stop(event);
		return;
	} else {
		$('fuelorder').setStyle({ color: fuelorder_color });
		$('fuelpostcode').setStyle({ background: '#fff' });
		$('fuelorder').update(fuelorder_html);
	}
	
	new Ajax.Request('/webeasycms/local/control/FuelQuote.php', {
	  	method: 'get',
	  	parameters: $('getQuoteForm').serialize(true),
	  	onSuccess: function(transport) {
	  		var json = transport.responseText.evalJSON();
	  		if (json.error) {
	  			$('fuelorder').update(json.message).setStyle({ color: 'red' });
	  		} else {
	  			$('fuelorder').update(json.message).setStyle({ color: fuelorder_color });
	  		}
	  	},
	  	onFailure: function(){ 
	  		$('fuelorder').update('&nbsp;<br />Oops, there\'s been a problem') ;
	  	}
	});
	Event.stop(event);
}
