// lookup tables

// table[product id]=product name
var productsTable = new Object();
productsTable['jobListing']='Job Listings'
productsTable['bannersButtons']='Banners and Buttons'
productsTable['profilePage']='Profile Page'
productsTable['cvDatabase']='CV Database'
productsTable['targetedEmails']='Targeted Emails'
productsTable['newsletter']='Newsletter Sponsorship'
productsTable['jobAlert']='Sponsored Job Alert'

/*
var allProducts = [];
for (var i in productsTable) {
	allProducts.push(i);
}
*/

// table[site id]=[site name]
var sitesTable = new Object();
sitesTable['jobSearch']=['JobSearch'];
sitesTable['theGraduate']=['TheGraduate']
sitesTable['workthing']=['Workthing'];
sitesTable['hotRecruit']=['HotRecruit'];
sitesTable['theCareerEngineer']=['TheCareerEngineer'];
sitesTable['planetRecruit']=['Planet Recruit'];
sitesTable['gaapWeb']=['GAAPweb'];
sitesTable['totallyFinancial']=['totallyfinancial'];
sitesTable['totallyLegal']=['totallylegal'];
sitesTable['jobsInEducation']=['JobsinEducation'];
sitesTable['jobsInSocialWork']=['JobsinSocialWork'];
sitesTable['secsInTheCity']=['SecsintheCity'];
sitesTable['totallyExec']=['TotallyExec'];
sitesTable['mirrorJobs']=['MirrorJobs'];

// if siteBase hasn't been set in pr_head
if ( typeof(siteBase) == "undefined" ) {
	siteBase = "";
}

function init() {

	// flag js to activate styles
	
	$(document.body).addClassName('js_active');
	
	switch (document.body.id) {
		
		case 'sites':
		
			document.body.addClassName('js_active_sites');
				
			// set variables
			var viewport = $('viewport');
			var content = $('content');
			var industries = $$('.industry');
			var sites = $$('.site');
			var basicDivs = $$('.basic');
			var extensionDivs = $$('.extension');
			var nav = $('indNav');
			var navLinks = nav.select('a');
		
			// set inline styles
			var contentWidth = ''+(7*industries[0].offsetWidth)+'px';
			content.style.width = contentWidth;
			
			// collect industry divs' positions
			var industriesPos = new Object();
			for (var i=0;i<industries.length;i++) {
				industriesPos[industries[i].id] = industries[i].offsetLeft;
			}
			
			// structural modification/displays/hides
			sites.invoke('insert',{ bottom: '<p class=\"toggle toggleShow\">More...<\/p><p class=\"toggle toggleHide\">Less...<\/p>'});
			$$('.back_to_top','.contentNav','.toggleHide').invoke('hide');
			
			// site opener
			function toggleExtended(e) {
				if ((Event.element(e).nodeName=='A')||(Event.element(e).hasClassName('logo'))) return true;
				var blindElt = this.select('.extension')[0];
				new Effect.toggle(blindElt, 'blind', {duration:0.5});
				this.select('.toggle').invoke('toggle');
			}	

			// horizontal scroller
			function horizScroll(e) {
				var currentViewPos = viewport.scrollLeft;
				var targetViewID = this.hash.substring(1);
				var targetViewPos = industriesPos[targetViewID];
				if (currentViewPos==targetViewPos) return false;
				navLinks.invoke('removeClassName','current');
				new Effect.Tween(viewport,currentViewPos,targetViewPos, { duration: 1 },'scrollLeft');
				this.addClassName('current');
				Event.stop(e);
			}
			
			// onclick handlers
			sites.invoke('observe','click',toggleExtended);
			navLinks.invoke('observe','click',horizScroll);

			// hash check: if an industry, jump to it and highlight nav
			navLinks.invoke('removeClassName','current');
			var startingInd = industries.find(function(n){return '#'+n.id==location.hash})||industries[0];
			if (startingInd) {
				window.scrollTo(0,0);
				viewport.scrollLeft = industriesPos[startingInd.id];
				navLinks.find(function(a){return a.hash=='#'+startingInd.id}).addClassName('current');
			};

			// hash check: if a site, open that site and jump to it
			var splitSites = sites.partition(function(n){return n.id==location.hash.substring(1)});
			splitSites[1].collect(function(s){ return s.select('.extension')[0]; }).invoke('hide');
			if (splitSites[0][0]) {
				splitSites[0][0].scrollTo();
				splitSites[0][0].select('.toggle').invoke('toggle');
				var indId = splitSites[0][0].up('.industry').id;
				viewport.scrollLeft = industriesPos[indId];
			}

			// convert data dls into bar charts
			var chartLists = $$('dl.chart');
			chartLists.invoke('removeClassName','numerical').each(function(s){
				chartWidth=s.offsetWidth;
				var chartItems=s.select('dd');
				var chartNumbers=[];
				chartItems.each(function(t,j){
					chartNumbers[j]=parseFloat((t.innerText || t.textContent).gsub(',', ''))
				});
				var maxNum=chartNumbers.max();
				chartNumbers.each(function(t,j){
					t/=maxNum;
					t*=chartWidth;
					chartItems[j].style.width=parseInt(t*0.58)+'px';
				});
			});
						
			break;
			
		case 'products':
		
			document.body.addClassName('js_active_products');
		
			var siteId = location.search.substring(location.search.indexOf('&site=')+6);
			
			function idCheck(){
				for (var i in sitesTable) {
					if (i==siteId) { return true; }
				}
			}
			
			if (idCheck()) {
								
				// make content site-specific
				document.title = document.title.gsub('Our',sitesTable[siteId][0]+'\'s');
				var topHeading = $('hdg');
				topHeading.innerHTML = topHeading.innerHTML.gsub('Our',sitesTable[siteId][0]+'\'s');
				topHeading.id += '_'+siteId;
				var productsHeader = $('subHeader');
				productsHeader.insert({ bottom: '<img class=\"logo\" src=\"'+siteBase+'\/img\/logos\/logo_test_'+siteId+'.gif\">'})
				var subHeading = productsHeader.select('p')[0];
				subHeading.innerHTML += ' on '+sitesTable[siteId][0];

				// make screenshots site-specific
				var screenshots = $$('img.sitespecific');
				
				screenshots.each(function(s){
					s.src = s.src.substring(0,s.src.lastIndexOf('_')+1)+siteId+s.src.substring(s.src.lastIndexOf('.'));
					s.alt += ' on '+sitesTable[siteId][0];
				});
									
			};

			// hide products on certain sites
			if (siteId == 'gaapWeb') {
				$$('#nav_targetedEmails, #targetedEmails').invoke('hide');
			};
			if (siteId == 'totallyExec') {
				$$('#nav_jobListing, #jobListing, #nav_profilePage, #profilePage, #nav_cvDatabase, #cvDatabase, #nav_newsletter, #newsletter, #nav_jobAlert, #jobAlert').invoke('hide');
				$$('#targetedEmails .scsh')[0].src = siteBase+"/img/scsh/targetedEmails_totallyExec.gif";
			};
			if (siteId == 'jobsInSocialWork') {
				$$('#nav_newsletter, #newsletter').invoke('hide');
				$$('#targetedEmails .scsh')[0].src = siteBase+"/img/scsh/targetedEmails_jobsInSocialWork.gif";
			};
			
			break;
		
		case 'workthingplus':
		
			document.body.addClassName('js_active_workthingplus');
			
			// feature panel
			var featureTabs = $$('#featureTabs li');
			var featureContents = $$('#featureContents li');
			function showFeatureTab(i) {
				featureTabs.invoke('removeClassName','active');
				featureContents.invoke('hide');
				featureTabs[i].addClassName('active');
				featureContents[i].show();
			}
			
			featureTabs.each(function(tab,i) {
				tab.observe('click', function(){
					showFeatureTab(i);
				});
			});
			
			showFeatureTab(0);
			
			// price plans view switcher
			$('pricePlans').hide();
			var showState = 0;
			$('pricePlansButton').observe('click',function(){
				if (showState == 0) {
					Effect.Fade('mainHeading', {queue: 'end', duration: 0.3});
					Effect.Appear('pricePlans', {queue: 'end', duration: 0.3});
					showState = 1;
				} else {
					Effect.Fade('pricePlans', {queue: 'end', duration: 0.3});
					Effect.Appear('mainHeading', {queue: 'end', duration: 0.3});
					showState = 0;
				};
			});
			
			// enquiry form validation
			$$('form').invoke('observe','submit',function(evt){
																										
				var previousError = this.select('.error')[0];
				if (previousError) { previousError.remove() };
				
				var validity = new Array();
				validity.push(this.getInputs('text').invoke('present').all());
				validity.push(this.from_email.getValue().match(/\S+@\w+\.\w+/g));
				validity.push(this.telnumber.getValue().match(/^[\(\)0-9 ]+$/g));
				
				var errorMessage = '';
				if (!(validity[0])) {
					errorMessage += 'Please complete all fields. <br />';
				} else {
					if (!(validity[1])) {
						errorMessage += 'Please ensure your email address is in a valid format. <br />';
					};
					if (!(validity[2])) {
						errorMessage += 'Please ensure your telephone number is in a valid format. <br />';
					};
				}
				if (errorMessage) {
					Event.stop(evt);
					var errorElt = new Element('p', { 'class': 'error' }).update(errorMessage);
					this.select('.inner')[0].insert(errorElt);
				};
				
			});
			
			// equal height
			var formHeight = $('enquiryForm').getHeight();
			$('features').setStyle({ height: formHeight-2+'px' });

	};
};
swfobject.embedSWF(siteBase+"/flash/player.swf", "videoResponsible", "380", "268", "9.0.0", false, { file: siteBase+"/flash/corporate_overview_homepage.flv",skin: siteBase+"/flash/stylish_slim.swf",stretching:"fill",image:siteBase+"/img/frame_corporate.jpg" }, false, { styleclass:"video" });
swfobject.embedSWF(siteBase+"/flash/flashintro-small4_corp.swf", "introFlashArea", "350", "350", "9.0.0", false, false, { wmode: "transparent" });

document.observe('dom:loaded', init);