function showDirection() { var sourcePcode1 = document.getElementById('txtPostcodeA').value; var sourcePcode2 = document.getElementById('txtPostcodeB').value; var destPcodeFull = document.getElementById('myDestPcode').value.replace(' ', '+'); var sourcePcodeFull = sourcePcode1; if(sourcePcode2 != '') { sourcePcodeFull += '+' + sourcePcode2; } window.open('http://maps.google.co.uk/maps?saddr=' + sourcePcodeFull + '&daddr=' + destPcodeFull + '&hl=en', 'googleDirections', 'status=0, toolbar=0, menubar=0,resizable=1, height=600, width=800, top=0, left=0'); } /* * Clear Default Text: functions for clearing and replacing default text in * elements. */ addEvent(window, 'load', init, false); function init() { var formInputs = document.getElementsByTagName('input'); for (var i = 0; i < formInputs.length; i++) { var theInput = formInputs[i]; if (theInput.type == 'text' && theInput.className.match(/\bcleardefault\b/)) { /* Add event handlers */ addEvent(theInput, 'focus', clearDefaultText, false); addEvent(theInput, 'blur', replaceDefaultText, false); /* Save the current value */ if (theInput.value != '') { theInput.defaultText = theInput.value; } } } } function clearDefaultText(e) { var target = window.event ? window.event.srcElement : e ? e.target : null; if (!target) return; if (target.value == target.defaultText) { target.value = ''; } } function replaceDefaultText(e) { var target = window.event ? window.event.srcElement : e ? e.target : null; if (!target) return; if (target.value == '' && target.defaultText) { target.value = target.defaultText; } } /* * Cross-browser event handling */ function addEvent(element, eventType, lamdaFunction, useCapture) { if (element.addEventListener) { element.addEventListener(eventType, lamdaFunction, useCapture); return true; } else if (element.attachEvent) { var r = element.attachEvent('on' + eventType, lamdaFunction); return r; } else { return false; } } /* * Kills an event's propagation and default action */ function knackerEvent(eventObject) { if (eventObject && eventObject.stopPropagation) { eventObject.stopPropagation(); } if (window.event && window.event.cancelBubble ) { window.event.cancelBubble = true; } if (eventObject && eventObject.preventDefault) { eventObject.preventDefault(); } if (window.event) { window.event.returnValue = false; } } /* * Safari doesn't support canceling events in the standard way, so we must * hard-code a return of false for it to work. */ function cancelEventSafari() { return false; } /* * Cross-browser style extraction, from the JavaScript & DHTML Cookbook */ function getElementStyle(elementID, CssStyleProperty) { var element = document.getElementById(elementID); if (element.currentStyle) { return element.currentStyle[toCamelCase(CssStyleProperty)]; } else if (window.getComputedStyle) { var compStyle = window.getComputedStyle(element, ''); return compStyle.getPropertyValue(CssStyleProperty); } else { return ''; } } /* * CamelCases CSS property names. Useful in conjunction with 'getElementStyle()' * From */ function toCamelCase(CssProperty) { var stringArray = CssProperty.toLowerCase().split('-'); if (stringArray.length == 1) { return stringArray[0]; } var ret = (CssProperty.indexOf("-") == 0) ? stringArray[0].charAt(0).toUpperCase() + stringArray[0].substring(1) : stringArray[0]; for (var i = 1; i < stringArray.length; i++) { var s = stringArray[i]; ret += s.charAt(0).toUpperCase() + s.substring(1); } return ret; } /* * Disables all 'test' links, that point to the href '#' */ function disableTestLinks() { var pageLinks = document.getElementsByTagName('a'); for (var i=0; i