var Page = Class.create(); Page.prototype = { initialize: function() {}, onLoad: function() {}, onUnload: function() {} }; var ProductsPage = Class.create(); ProductsPage.prototype = Object.extend(new Page(), { onLoad: function() { $('products_nav').style.backgroundImage = 'url(images/tab_white.png)'; new Effect.Morph('products_nav_link', { style: 'color: #14637D' }); Controller.loadSidebar('products'); }, onUnload: function() { $('products_nav').style.backgroundImage = 'url(images/tab_blue.png)'; new Effect.Morph('products_nav_link', { style: 'color: #D6E7EC' }); } }); var ServicesPage = Class.create(); ServicesPage.prototype = Object.extend(new Page(), { onLoad: function() { $('services_nav').style.backgroundImage = 'url(images/tab_white.png)'; new Effect.Morph('services_nav_link', { style: 'color: #14637D' }); Controller.loadSidebar('services'); }, onUnload: function() { $('services_nav').style.backgroundImage = 'url(images/tab_blue.png)'; new Effect.Morph('services_nav_link', { style: 'color: #D6E7EC' }); } }); var CompanyPage = Class.create(); CompanyPage.prototype = Object.extend(new Page(), { onLoad: function() { $('company_nav').style.backgroundImage = 'url(images/tab_white.png)'; new Effect.Morph('company_nav_link', { style: 'color: #14637D' }); Controller.loadSidebar('company'); }, onUnload: function() { $('company_nav').style.backgroundImage = 'url(images/tab_blue.png)'; new Effect.Morph('company_nav_link', { style: 'color: #D6E7EC' }); } }); var PageHandlers = { pageHandler: new Page(), productsHandler: new ProductsPage(), servicesHandler: new ServicesPage(), companyHandler: new CompanyPage() }; var Pages = $H({ index: Object.extend(new Page(), { onLoad: function() { new Effect.BlindDown('banner'); new Effect.BlindUp('banner_subpage'); $('index_nav').style.backgroundImage = 'url(images/tab_white.png)'; new Effect.Morph('index_nav_link', { style: 'color: #14637D' }); Controller.loadSidebar('products'); }, onUnload: function() { new Effect.BlindUp('banner'); new Effect.BlindDown('banner_subpage'); $('index_nav').style.backgroundImage = 'url(images/tab_blue.png)'; new Effect.Morph('index_nav_link', { style: 'color: #D6E7EC' }); } }), // Navigation links 'products/commercedirectbillinggateway': PageHandlers.productsHandler, 'services/seosearchengineoptimization': PageHandlers.servicesHandler, 'company/aboutus': PageHandlers.companyHandler, // Services links 'services/securitymanagement': PageHandlers.servicesHandler, 'services/infrastructuremanagement': PageHandlers.servicesHandler, 'services/customapplicationdevelopment': PageHandlers.servicesHandler, 'services/seosearchengineoptimization': PageHandlers.servicesHandler, 'services/bpobusinessprocessoutsourcing': PageHandlers.servicesHandler, // Products links 'products/centralcontactcentermanager': PageHandlers.productsHandler, 'products/payrollmanager': PageHandlers.productsHandler, 'products/greekrowcom': PageHandlers.productsHandler, 'products/commercedirectshoppingcart': PageHandlers.productsHandler, // Company links 'company/team': PageHandlers.companyHandler, 'company/history': PageHandlers.companyHandler, 'company/testimonials': PageHandlers.companyHandler, 'company/news': PageHandlers.companyHandler, 'company/careers': PageHandlers.companyHandler, // Default handler '.*': PageHandlers.pageHandler }); var Sidebar = Class.create(); Sidebar.prototype = { id: null, initialize: function(id) { this.id = id; }, onLoad: function() { new Effect.BlindDown(this.id, { duration: 3 }); }, onUnload: function() { new Effect.BlindUp(this.id, { duration: 3 }); } } var Sidebars = $H({ services: new Sidebar('leftpane_services'), products: new Sidebar('leftpane_products'), contact: new Sidebar('leftpane_contact'), company: Object.extend(new Sidebar('leftpane_company'), { onUnload: function() { new Effect.BlindUp(this.id, { duration: 3 }); new Effect.DropOut('contact_ack'); } }) }); var PageMatcher = Class.create(); Object.extend(PageMatcher.prototype, { page: null, initialize: function(page) { this.page = page; }, match: function(value, index) { return this.page.match(value[0]) != null; } }); var Controller = { page: 'index', sidebar: 'products', loadPage: function(page) { if (!page.match(/^careers/)) page = page.replace(/-/g, ''); if (this.page == page) return; return new Ajax.Request('/' + page, { method: 'get', parameters: 'bodyonly=1', onComplete: (function (request) { Effect.toggle('rightpane', 'appear', { afterFinish: (function () { var pageMatcher = new PageMatcher(this.page); var handler = Pages.find(pageMatcher.match.bind(pageMatcher))[1]; handler.onUnload(); $('rightpane').innerHTML = request.responseText; this.page = page; Effect.toggle('rightpane', 'appear'); pageMatcher = new PageMatcher(this.page); handler = Pages.find(pageMatcher.match.bind(pageMatcher))[1]; handler.onLoad(); }).bind(this) }); }).bind(this) }); }, swapSlides: function() { new Effect.Move('slides', { x: 580, afterFinish: function () { // Change content new Effect.Move('slides', { delay: 1, x: -580 }); } }); }, loadSidebar: function(sidebar) { if (this.sidebar == sidebar) return; if (Sidebars[this.sidebar] && typeof(Sidebars[this.sidebar].onLoad) == 'function') Sidebars[this.sidebar].onUnload(); this.sidebar = sidebar; if (Sidebars[this.sidebar] && typeof(Sidebars[this.sidebar].onUnload) == 'function') Sidebars[this.sidebar].onLoad(); }, submitContact: function() { $('con_email').style.color = 'white'; $('con_message').style.color = 'white'; if ($F('email') == '') { $('con_email').style.color = 'red'; } else if ($F('message') == '') { $('con_message').style.color = 'red'; } else { new Ajax.Request('/contact', { method: 'post', postBody: $H({ email: $F('email'), phone: $F('phone'), message: $F('message'), redirect: 0 }).toQueryString(), onComplete: (function(request) { this.loadSidebar('company'); $('contact_ack').show(); }).bind(this) }); } } };