if (typeof baseUrl == "undefined") {
    var baseUrl = "";
}

function routeFinder(config)
{
    $E = YAHOO.util.Event;
    $D = YAHOO.util.Dom;
    $ = $D.get;
    
    var routeFinder = {
        "version" : "2.0",
        "author" : "Rob Griffiths",
        "init" : function () {
            routeFinder.form = $(routeFinder.config.form);
            
            var findRouteButton = $D.getElementsByClassName('find-route', 'a', routeFinder.form);
            
            $E.on(findRouteButton[0], 'click', routeFinder.search);
//            $E.on(findRouteButton[1], 'click', routeFinder.search);
            
            var homePostcode = $D.getElementsByClassName('find-postcode', 'input', routeFinder.form);
            routeFinder.homePostcode = homePostcode[0];
            
            $E.on(routeFinder.homePostcode, 'keypress', function(e){routeFinder.detectKeyPress(e, 13, routeFinder.search);});
            
        },
        "detectKeyPress" : function (e, key, fn) {
            if (window.event) {
                if (window.event.keyCode == key) {
                    fn();
                }
            } else if (e) {
                if(e.which == key) {
                    fn();
                }
            };
        },
        "search" : function () {
            if (routeFinder.homePostcode.value == "") {
                // an error occured
                alert("Please enter a valid Postcode");
                return false;
            } else {
                var fromPostcode = routeFinder.homePostcode.value.replace(/ /,"+");
                var toPostcode = routeFinder.config.postcode.replace(/ /,"+");
                if (this.id === "ted") {
                    toPostcode = "52.221118818506106,-2.4095141887664795";
                } else {
                    toPostcode = "52.210226595142274,-2.4043884873390198";
                }
                // we are using a feed from our site just so we have more flexibility
                var url = baseUrl + "routefinder.php?from="+fromPostcode+"&to="+toPostcode;
	            routeFinder.window(url).show();
            }
        },
        "window" : function (url) {
            $W = {
                "show" : function () {
                    var winw = screen.width /2;
                    var winh = screen.height /2;
                    var winl = (screen.width - winw) / 2;
                    var wint = (screen.height - winh) / 2;
                    
                    windowOptions = "menubar=no," 
                                  + "scrollbars=no,"
                                  + "status=no," 
                                  + "resizable=yes," 
                                  + "toolbar=no,"
                                  + "width=" + winw + ","
                                  + "height=" + winh + ","
                                  + "top=" + wint + ","
                                  + "left=" + winl;
                    window.open(url,"Directions", windowOptions);      
                }   
            }
	        return $W;
        }
    }
    
    if (typeof config == "object") {
        if (config.postcode == "" || config.form == "") {
            return false;
        }
        
        // give the route finder object the config for later
        routeFinder.config = config;
        
        // when the DOM is ready search for the route finder form
        // could be a div or something - dont really care we just call it a form
        $E.onDOMReady(routeFinder.init, '', routeFinder);
        return routeFinder;
    }
    
    return false;
}

