/* SVN FILE: $Id: postCode.js 12 2009-08-29 10:52:04Z Chris $ */
var services = new Array( // name of service and source post code link attribute
  ['google',   'saddr'],
  ['yahoo',    'q1'],
  ['multimap', 'qs_1'],
  ['mapquest', 'z1']
);
jQuery(document).ready(function(){
  var postCodeElement = jQuery('#directions').show().find('#post-code');
  postCodeElement.click(function(){
    jQuery(this).val('');
  });
  postCodeElement.attr('readonly', false).keyup(function(){
    var i, j, k, l;
    var regex = /^[A-Z][A-Z]?[0-9]{1,2} [0-9][ABD-HJLNP-UW-Z]{2}$/; // UK post code regex
    var directions = jQuery('.directions');
    var postCode = jQuery(this).val().toUpperCase();

    jQuery(this).val(postCode);

    if (regex.test(postCode)) {
      for (i=0, l=services.length; i<l; i++) {
        var anchor = jQuery('#'+services[i][0]+'-directions')
        var href = anchor.attr('href');
        var url = href.substring(0, href.indexOf('?')+1);
        var query = href.slice(href.indexOf('?')+1).split('&');
        for (j=0, k=query.length; j<k; j++) {
          if (query[j].search(services[i][1]) != -1) {
            query[j]=services[i][1]+'='+postCode;
            break;
          }
        }
        href = url+query.join('&');
        anchor.attr('href', href);
      }

      directions.fadeIn(3000);
    }
    else
      directions.fadeOut(3000);
  });
});