
function extras(){


	/*
	 external links
	*/
	$$('a[href^=http]').each(function(a){
		if (window.location.hostname) {
			var hostname = window.location.hostname.replace("www.", "").toLowerCase();
			if (!a.get('href').contains(hostname)) {
				a.set({
					'target': '_blank',
					'class': (a.get('class')) ? a.get('class') + ' external' : 'external'
				});
			}
		}
	});
	
	
	/*
	 Save basket
	*/
	if ($chk($('save_basket'))) {
		$('save_basket').addEvent('click', function(e){
			e.stop();
			
			// test
			if ($chk($$('div[class=popup_box]')[0])) {
				return;
			}
			
			// init class
			var popup = new Popup({
				'width': 400,
				'height': 105
			});
			
			// popup contents
			var title = new Element('h2', {
				'html': 'Save'
			});
			popup.adopt(title);
			
			var text = new Element('p', {
				'html': 'Please enter a name for your saved basket'
			});
			popup.adopt(text);
			
			var input = new Element('input', {
				'name': 'name',
				'type': 'text',
				'value': ''
			});
			popup.adopt(input);
			
			var buttons = new Element('div', {
				'class': 'popup_buttons',
				'text': ' or '
			});
			popup.adopt(buttons);
			
			var save_btn = new Element('button', {
				'html': 'Save',
				'type': 'button',
				'class': 'ui-button ui-button-default',
				'events': {
					'click': function(e){
						if (input.get('value')) {
							window.location.href = $('save_basket').get('href') + '&name=' + input.get('value');
						}
					}
				}
			});
			save_btn.inject(buttons, 'top');
					
			var cancel_btn = new Element('a', {
				'html': 'Cancel',
				'href': '#',
				'events': {
					'click': function(e){
						popup.close();
					}
				}
			});
			buttons.adopt(cancel_btn);
			
			
			// open it
			popup.open();
			ui(buttons);
			input.focus();
		});
		
	}
	
	/*
	 Add Basket Contents
	*/
	if ($chk(giftcard_title)) {
		// find some elements
		
		var form = $('buy').getParent('form');
		var parent = $('buy').getParent();
		
		// javascript is enabled, lets tell our processing 
		// script not to output html but json data
		form.grab(new Element('input', {
			'type': 'hidden',
			'name': 'js',
			'value': 'true'
		}));
		
		// stop page submit and do it ajax style
		$('buy').addEvent('click', function(e){
			e.stop();
			form.set('send', {
				'onSuccess': function(json){
				
					if ($('addfeedback')) {
						$('addfeedback').destroy();
					}

					var object = JSON.decode(json);

					if(object.error) {
						parent.grab(new Element('div', {
							'id': 'addfeedback',
							'html': object.error
						}).highlight('#ddf'), 'top');
					} else {
						$('basket_contents').set('html', object.count + ' items &pound;' + object.total);

						parent.grab(new Element('div', {
							'id': 'addfeedback',
							'html': giftcard_title + ' added to your basket'
						}).highlight('#ddf'), 'top');
					}
					
				}
			});
			form.send();
		});
	}
	
	/*
	 postcode lookup
	*/
	if ($chk(_lookupurl)) {
	
		var data = $$('input[name=postcode]')[0];
		
		var request = new Request.JSON({
			'method': 'post',
			'url': _lookupurl,
			'onRequest': function(){
				if ($('search_feedback')) 
					$('search_feedback').destroy();
				new Element('span', {
					'id': 'search_feedback',
					'html': 'Searching ...'
				}).inject($('postcode_label')).fade('in');
			},
			'onSuccess': function(json, text){
				if ($chk(json)) {
					complete_address(json, text);
					$('search_feedback').destroy();
				}
				else {
					$('search_feedback').set('html', 'Postcode not found');
				}
			}
		});
		
		$('lookup_postcode').addEvent('click', function(e){
			e.stop();
			request.send('postcode=' + data.get('value'));
		});

			
		function complete_address(address, text){
			// elements
			var listing_select, listing_label, listing_para = $('search_options');
			listing_para.empty();
			
			$$('input[name=city]')[0].set('value', address.city);
			$$('input[name=county]')[0].set('value', address.county);
			$$('input[name=postcode]')[0].set('value', address.postcode);
			
			listing_select = new Element('select', { 
				'id': 'search_listings', 
				'name': 'street' 
			});
			
			listing_para.adopt(listing_select);
			
			for (var i = 0; i < address.options.length; i++) {
				var len = $('search_listings').options.length;
				var listing = address.options[i];
				
				var option_text = (listing.organisation) ? listing.organisation + ', ' : '';
				option_text += (listing.building) ? listing.building + ', ' : '';
				option_text += (listing.number) ? listing.number + ' ' : '';
				
				if (option_text != '') {
					$('search_listings').options[len] = new Option(option_text + address.street, option_text + address.street);
					option_text = '';
				}
			}
		}

	}
	
}

extras();




