/*globals $,ibuyproperties,window*/ ibuyproperties.router=(function(){ var allRoutes=[]; function route() { var hash = window.location.hash; var lastLocation = null; if (!hash) { window.location.hash = "#Home"; } if (lastLocation != hash) { this.lastLocation=hash; // Generic routing based on template names $.each(ibuyproperties.templates.getType("mainPages"),function(pos,name){ var re=new RegExp("^#" + name + "[/]*"); if (ibuyproperties.isDebugMode) { console.log("Generic Router - test ",name);} // debugger; if (hash.match(re)) { if (ibuyproperties.isDebugMode) { console.log("Generic Router - match ",name);} if ($("#pnl_" +name).length === 0) { $("#content").empty().append(ibuyproperties.templateHelper.get(name)({templateName:name})); } ibuyproperties.navShow('mainScreen',name); $('.in,.open').removeClass('in open'); } }); // Dynamic route handling $.each(allRoutes,function(pos,theRoute){ if (ibuyproperties.isDebugMode) { console.log("Dynamic Router - test ",hash ,theRoute);} var re=new RegExp(theRoute.re); if (hash.match(re)) { if (ibuyproperties.isDebugMode) { console.log("Dynamic Router - match ",hash,theRoute);} theRoute.cb.call(); return false; // exit the loop } }); } } function addRoute(re, callBack){ var theRoute={re:re,cb:callBack}; allRoutes.push(theRoute); } return { route:route, addRoute:addRoute }; }());