﻿/// <reference path="jquery-1.3.2.min.js" />
/// NSKI: SEP 09
/// This js/jquery code helps build the dynamic sidebar components
/// Each component has its own function

jQuery.noConflict();

Function.prototype.bind=function(obj) {
	var method=this,temp=function() { return method.apply(obj,arguments) };
	return temp;
}

var site={
	lnkRight: "<div class='arrowRight_btn'><a href='#' title='next page'><span>arrowRight</span></a></div>",
	lnkLeft: "<div class='arrowLeft_btn'><a href='#' title='previous page'><span>arrowLeft</span></a></div>",

//	flashPlayerString: "<script type='text/javascript'>"
//		+"if (AC_FL_RunContent == 0) { alert('This page requires AC_RunActiveContent.js.') }"
//		+"else {AC_FL_RunContent('codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0','width', '448','height', '404','src', 'flvplayer','quality', 'high','pluginspage', 'http://www.macromedia.com/go/getflashplayer','align', 'middle','play', 'true','loop', 'true','scale', 'showall','wmode', 'transparent','devicefont', 'false','id', 'flvplayer','bgcolor', '#000','name', 'flvplayer','menu', 'true','allowFullScreen', 'false','allowScriptAccess', 'sameDomain','movie', 'flvplayer','salign', '','flashVars', 'path=CMS/Chapters/{CID}.flv')}"
//		+"</script>"
//		+"<noscript>"
//		+"<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' width='900' height='500' id='planetSoccerLive' align='middle'>"
//		+"<param name='allowScriptAccess' value='sameDomain' />"
//		+"<param name='allowFullScreen' value='false' />"
//		+"<param name='movie' value='flvplayer.swf?path=CMS/Chapters/{CID}.flv'/><param name='quality' value='high' /><param name='wmode' value='transparent' /><param name='bgcolor' value='#72A5D8' /><embed src='flvplayer.swf?path=CMS/Chapters/{CID}.flv' quality='high' wmode='transparent' bgcolor='#72A5D8' width='900' height='500' name='flvplayer' align='middle' allowScriptAccess='sameDomain' allowFullScreen='false' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' />"
//		+"</object>"
//		+"</noscript>",
	pageSize: 5,
	pageCurrent: 1,
	currentMovie: 0,
	currentChapter: 0,
	loadMovies: function() {
		if(d.Movies.length==0) {
			alert("Error: Movies not found");
		}
		else if(d.Movies.length==1) {
			jQuery("#ddlMovies").hide();
			jQuery("#ddlMovies").replaceWith("<h3 class='blue'>"+d.Movies[0].Title+"</h3>");
			site.currentMovie=0;
			site.loadChapters(0,0,site.pageSize);
			site.loadChapter.call(jQuery(".watch").get(0));
		}
		else {
			var lst="";
			for(var i=0;i<d.Movies.length;i++) {
				lst+="<option value='"+i+"'>"+d.Movies[i].Title+"</option>";
			}
			jQuery("#ddlMovies").html(lst).change(site.changeMovie).change();
		}
	},
	changeMovie: function() {
		site.currentMovie=this.value;
		site.loadChapters(this.value,0,site.pageSize);
		site.loadChapter.call(jQuery(".watch").get(0));
	},
	loadChapters: function(movie,from,to) {
		var chapters=d.Movies[movie].Chapters;
		var lst="";
		for(var i=from;i<Math.min(chapters.length,to);i++) {
			lst+="<div class='videoChapter' movie='"+movie+"' chapter='"+i+"'>"
				+"<a title='Watch video chapter' class='chapterThumb' id='Watch"+i+"'>"
				+"<img src='CMS/Chapters/"+chapters[i].ID+".Thumb.jpg' alt='Chapter"+chapters[i].ID+"' width='60' height='63'/></a>"
				+"<div class='videoChapterContent'><h3>Chapter "+(i+1)+"</h3>"
				+"<p>"+chapters[i].Title+ /*chapters[i].Description.substring(0,25) + (chapters[i].Description.length>25?"...":"") +*/"</p>"
				+"<div class='videoChapterButtons'>"
				+"<a href='#' id='Read"+i+"' class='read' title='Read more about this chapter'><span>read</span></a>"
				+"<a href='CMS/Chapters/"+chapters[i].ID+".flv' href='#' id='Watch"+i+"' class='watch' title='Watch this chapter'><span>watch</span></a>"
				+"</div></div></div>"
		}
		jQuery("#videoChapters").html(lst);
		jQuery("#videoChapters .watch,.chapterThumb").click(site.loadChapter);
		jQuery("#videoChapters .read").click(site.loadChapterReadInfo);
		site.setupPager();
	},
	loadChapter: function() {
		var chapter=this.id.replace(/Watch/,"");
		site.currentChapter=chapter;
		var c=d.Movies[site.currentMovie].Chapters[site.currentChapter];
		//var lst = "<h3 class='blue'>" + c.Title + "</h3><p>" + c.Description + "</p>";
		//jQuery("#videoCaptionContent").html(lst);
		jQuery("#videoCaptionContent h3").html(c.Title);
		jQuery("#videoCaptionContent p").html(c.Description);

		site.loadSpeakers();

		jQuery("#ifrPlayer").attr("src","player.aspx?id="+c.ID);
		/*track the fact that this chapter has been loaded*/
		jQuery.ajax({ type: "GET",url: "DataHandler.ashx?mode=TrackUser&CID="+c.ID+"&UID="+jQuery("#UserID").val() });

		return false;
	},
	loadChapterReadInfo: function() {
		jQuery("#bgDimmer").css({ "display": "block","opacity": 0 }).animate({ "opacity": 0.5 },"normal","swing");
		jQuery("#bgDimmer,#readBoxClose").click(site.closeReadBox);

		var chapter=this.id.replace(/Read/,"");
		var c=d.Movies[site.currentMovie].Chapters[chapter];


		var titleFixedMaxLength=(c.Title.length>40?"<span title='"+c.Title+"'>"+c.Title.substr(0,37)+"...</span>":c.Title);

		jQuery("#readBox div").html(c.Description);
		jQuery("#readBox h3").html(titleFixedMaxLength);

		jQuery("#readBox").draggable({ handle: "h3",iframeFix: true,opacity: 0.9 }).centerInClient().fadeIn("slow");

		return false;
	},
	closeReadBox: function() {
		jQuery("#readBox,#bgDimmer").fadeOut("slow");
		return false;
	},
	loadSpeakers: function() {
		var speakers=d.Movies[site.currentMovie].Chapters[site.currentChapter].Speakers;
		var lst="";
		for(var s,i=0;s=speakers[i];i++) {
			lst+="<div class='boxSpeaker"+(i==0?" boxSpeakerSelected":"")+"'><h3"+(speakers.length==1?" style='display:none'":"")+">"+s.Forename+" "+s.Surname+"</h3><div class='speakerText'><img src='CMS/Speakers/"+s.ID+".Thumb.jpg' width='88' alt='"+s.Forename+" "+s.Surname+"' />"+
					"<h4>"+s.Forename+" "+s.Surname+"</h4><p>"+s.Biography+"</p>"+(s.Email.length>0?"<address>Contact: <a href='mailto:"+s.Email+"'>"+s.Email+"</a></address>":"")+"</div></div>";
		}
		jQuery("#boxSpeakers").html(lst);
		site.resetSpeakerClicks();
	},
	loadData: function() {
		if(d.Movies) site.loadMovies();
	},
	setupPager: function() {
		var pager="";
		if(d.Movies[site.currentMovie].Chapters.length>site.pageSize) {
			/*setup pager*/
			var itemFrom=(site.pageCurrent*site.pageSize)-site.pageSize+1;
			var itemTo=Math.min(itemFrom+site.pageSize-1,d.Movies[site.currentMovie].Chapters.length);
			var pageCount=Math.ceil(d.Movies[site.currentMovie].Chapters.length/site.pageSize);

			if(site.pageCurrent<pageCount) pager+=site.lnkRight;
			if(site.pageCurrent>1) pager+=site.lnkLeft;
			pager+="<div class='chapterChooserText'><p>Chapter "+itemFrom+" - "+itemTo+" of "+d.Movies[site.currentMovie].Chapters.length+"</p></div>";
			jQuery("#VideoChaptersPager").html(pager);
			jQuery("#VideoChaptersPager .arrowRight a").click(site.nextPage);
			jQuery("#VideoChaptersPager .arrowLeft a").click(site.prevPage);
		}
		else {
			/*remove pager*/
			jQuery("#VideoChaptersPager").empty();
		}
	},
	nextPage: function() {
		site.pageCurrent+=1;
		var from=(site.pageCurrent*site.pageSize)-site.pageSize;
		var to=from+site.pageSize;
		site.loadChapters(site.currentMovie,from,to);
		return false;
	},
	prevPage: function() {
		site.pageCurrent-=1;
		var from=(site.pageCurrent*site.pageSize)-site.pageSize;
		var to=from+site.pageSize;
		site.loadChapters(site.currentMovie,from,to);
		return false;
	},
	resetSpeakerClicks: function() {
		jQuery(".boxSpeaker h3").click(function() { jQuery(".boxSpeaker").removeClass("boxSpeakerSelected");jQuery(this.parentNode).addClass("boxSpeakerSelected");return false });
	},

	TellColleague: function() {
		var email=jQuery("#TellColleagueEMAIL").val();
		var name=jQuery("#TellColleagueNAME").val();
		var message=jQuery("#TellColleagueMESSAGE").val();

		var emails=[];

		if(email.indexOf(",")>0) emails=email.split(",");
		if(email.indexOf(";")>0) emails=email.split(";");
		if(emails.length==0) emails.push(email);

		for(var i=0;i<emails.length;i++) {
			emails[i]=jQuery.trim(emails[i]);
			if(!emails[i].match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/)) {
				alert("Please enter a valid email address");
				return false;
			}
		}
		if(message.length==0) {
			alert("Please enter a message");
			return false;
		}
		jQuery.post("DataHandler.ashx",{ "mode": "TellColleague","email": email,"name": name,"message": message });
		jQuery("#boxTellColleague").html("<p style='margin-bottom:10px'>Thank you!<br/>An email has been sent to your colleague</p><p><a href='#' class='finish'><span>Send another invitation</span></a></p>");

		jQuery("#boxTellColleague a").click(site.TellColleagueReset);
		return false;
	},
	TellColleagueReset: function() {
		jQuery("#boxTellColleague").html("<label class='smallBold' for='TellColleagueEMAIL'>Email address</label><br />"
		+"<input style='width:225px;margin-bottom:10px' type='text' name='TellColleagueEMAIL' id='TellColleagueEMAIL' /><br />"
		+"<label class='smallBold' for='TellColleagueMESSAGE'>Message</label><br /><textarea style='width:225px' name='TellColleagueMESSAGE' id='TellColleagueMESSAGE' rows='4'></textarea><br />"
		+"<a href='#' id='TellColleagueSEND' class='btnSend'><span>Send</span></a>");
		jQuery("#TellColleagueSEND").click(site.TellColleague);
		return false;
	},
	TellColleagueNameHandlerChange: function() {
		jQuery("#TellColleagueMESSAGE").val("I thought you’d be interested in this great new resource http://servier.indexplatform.co.uk\n\nI’ve found it really useful.\nThanks\n"+this.value);
	},
	myMultiBox: {},
	init: function() {
		/*first set up the accordion widget, this thing takes a while and might be seen as the user loads the page, especially for the first time - so let's deal with it first*/
		jQuery("#menuRight").accordion({ active: false,"collapsible": true,"autoHeight": false,"header": ".accordionItem .boxHeadingNarrow" });

		jQuery("#goFullScreen").click(function() {
		window.open('player_FullScreen.aspx?id='+d.Movies[site.currentMovie].Chapters[site.currentChapter].ID,'','fullscreen=yes, scrollbars=no, titlebar=no, toolbar=no, menubar=no, location=no, top=0, left=0');
			return false;
		});
		
		/**********************************************/
		/* CALL THE FUNCTIONS FOR THE SIDEBAR         */
		/* FROM THE CODEFILE ascx/ctrl_sidebar.ascx   */
		/**********************************************/	
		if(kb) KnowledgeBank.init();
		if(nmc) NMCNews.init();
		if (lj) LatestJobs.init();
		if(is) ImmediateStarts.init();
		if(vj) ViewedJobs.init();
		if(crv) CandidateRecentlyViewedJobs.init();		
		if(cmi) CandidateJobsThatMayInterest.init();
		if(qsb) SearchBox.init();

		jQuery("#TellColleagueSEND").click(site.TellColleague);
		jQuery("#TellColleagueNAME")
			.focus(site.TellColleagueNameHandlerFocus)
			.keyup(site.TellColleagueNameHandlerChange);

//				site.myMultiBox = new MultiBox('watch', {
//					useOverlay:true
//				});

		jQuery("#blah").click(function() {
			var x=new MultiBox("videoPlayer",{
				useOverlay: true
			});
			return false;
		});
	}
};
/*--------------------------------------------------
     Following components only for logged in users
  --------------------------------------------------*/
/*RECENTLY VIEWED JOBS*/
//if(crv) {
var CandidateRecentlyViewedJobs = {
	pageSize: 3,
	pageCurrent: 1,	
	loadResources: function(from, to) {
		var lst = "";
		for (var i = from; i < Math.min(crv.ViewedJobsItems.length, to); i++) {
			var r = crv.ViewedJobsItems[i];
			lst += "<div class='smallList'><p class='jobTitle'><a target='_self' href='/vacancy.aspx?id=" + r.VacancyID + "' title='Open this item in a new window'>" + r.Title + "</a></p><p>" + r.Location + " (" + r.Region + ") " + r.DateStart + "</p></div>";		
		}
		jQuery("#boxCandidateRecentlyViewed").html(lst);

		CandidateRecentlyViewedJobs.setupPager();
	},
	setupPager: function() {
		var pager = "";
		if (crv.ViewedJobsItems.length > CandidateRecentlyViewedJobs.pageSize) {
		    /*remove single line border*/
		    //jQuery("#boxLatestJobVacanciesSingleBorder").empty();
			/*setup pager*/
			var pageCount = Math.ceil(crv.ViewedJobsItems.length / CandidateRecentlyViewedJobs.pageSize)
			
			pager+="<div class='btmListPage'>";
			pager += "<div class='pageNumber'> page " + CandidateRecentlyViewedJobs.pageCurrent + " of " + pageCount + "</div>";
			pager += "<div class='arrowContainers'>";
			if (CandidateRecentlyViewedJobs.pageCurrent < pageCount) pager += "<div class='arrowRight_btn'><a href='#' title='Next'>Next</a></div>";
			if (CandidateRecentlyViewedJobs.pageCurrent > 1) pager += "<div class='arrowLeft_btn'><a href='#' title='Previous'>Previous</a></div>";
			pager += "</div>";
			pager += "<div class='viewJobs'><a href='/searchresultstype.aspx?type=rv' title='View All Jobs'>View All Jobs</a></div>";
			pager += "</div>";
            pager += "<div class='clearFloat'></div>";
			jQuery("#CandidateRecentlyViewedPager").html(pager);
			jQuery("#CandidateRecentlyViewedPager .arrowContainers .arrowRight_btn a").click(CandidateRecentlyViewedJobs.nextPage);
			jQuery("#CandidateRecentlyViewedPager .arrowContainers .arrowLeft_btn a").click(CandidateRecentlyViewedJobs.prevPage);
		}
		else {
			/*remove pager*/
			jQuery("#CandidateRecentlyViewedPager").empty();
		}
	},
	nextPage: function() {
		CandidateRecentlyViewedJobs.pageCurrent += 1;
		var from = (CandidateRecentlyViewedJobs.pageCurrent * CandidateRecentlyViewedJobs.pageSize) - CandidateRecentlyViewedJobs.pageSize;
		var to = from + CandidateRecentlyViewedJobs.pageSize;
		CandidateRecentlyViewedJobs.loadResources(from, to);
		return false;
	},
	prevPage: function() {
		CandidateRecentlyViewedJobs.pageCurrent -= 1;
		var from = (CandidateRecentlyViewedJobs.pageCurrent * CandidateRecentlyViewedJobs.pageSize) - CandidateRecentlyViewedJobs.pageSize;
		var to = from + CandidateRecentlyViewedJobs.pageSize;
		CandidateRecentlyViewedJobs.loadResources(from, to);
		return false;
	},
	init: function() {
		CandidateRecentlyViewedJobs.loadResources(0, CandidateRecentlyViewedJobs.pageSize);
	}
};
//}//end if(crv)
/*JOBS THAT MAY INTEREST YOU*/
var CandidateJobsThatMayInterest = {
	pageSize: 3,
	pageCurrent: 1,
	loadResources: function(from, to) {
		var lst = "";
		for (var i = from; i < Math.min(cmi.InterestingJobsItems.length, to); i++) {
			var r = cmi.InterestingJobsItems[i];
			lst += "<div class='smallList'><p class='jobTitle'><a target='_self' href='/vacancy.aspx?id=" + r.VacancyID + "' title='Open this item in a new window'>" + r.Title + "</a></p><p>" + r.Location + " (" + r.Region + ") " + r.DateStart + "</p></div>";		
		}
		jQuery("#boxCandidateJobsThatMayInterest").html(lst);

		CandidateJobsThatMayInterest.setupPager();
	},
	setupPager: function() {
		var pager = "";
		if (cmi.InterestingJobsItems.length > CandidateJobsThatMayInterest.pageSize) {
		    /*remove single line border*/
		    //jQuery("#boxLatestJobVacanciesSingleBorder").empty();
			/*setup pager*/
			var pageCount = Math.ceil(cmi.InterestingJobsItems.length / CandidateJobsThatMayInterest.pageSize)
			
			pager+="<div class='btmListPage'>";
			pager += "<div class='pageNumber'> page " + CandidateJobsThatMayInterest.pageCurrent + " of " + pageCount + "</div>";
			pager += "<div class='arrowContainers'>";
			if (CandidateJobsThatMayInterest.pageCurrent < pageCount) pager += "<div class='arrowRight_btn'><a href='#' title='Next'>Next</a></div>";
			if (CandidateJobsThatMayInterest.pageCurrent > 1) pager += "<div class='arrowLeft_btn'><a href='#' title='Previous'>Previous</a></div>";
			pager += "</div>";
			pager += "<div class='viewJobs'><a href='/searchresultstype.aspx?type=mi' title='View All Jobs'>View All Jobs</a></div>";
			pager += "</div>";
            pager += "<div class='clearFloat'></div>";
			jQuery("#CandidateJobsThatMayInterestPager").html(pager);
			jQuery("#CandidateJobsThatMayInterestPager .arrowContainers .arrowRight_btn a").click(CandidateJobsThatMayInterest.nextPage);
			jQuery("#CandidateJobsThatMayInterestPager .arrowContainers .arrowLeft_btn a").click(CandidateJobsThatMayInterest.prevPage);
		}
		else {
			/*remove pager*/
			jQuery("#CandidateJobsThatMayInterestPager").empty();
		}
	},
	nextPage: function() {
		CandidateJobsThatMayInterest.pageCurrent += 1;
		var from = (CandidateJobsThatMayInterest.pageCurrent * CandidateJobsThatMayInterest.pageSize) - CandidateJobsThatMayInterest.pageSize;
		var to = from + CandidateJobsThatMayInterest.pageSize;
		CandidateJobsThatMayInterest.loadResources(from, to);
		return false;
	},
	prevPage: function() {
		CandidateJobsThatMayInterest.pageCurrent -= 1;
		var from = (CandidateJobsThatMayInterest.pageCurrent * CandidateJobsThatMayInterest.pageSize) - CandidateJobsThatMayInterest.pageSize;
		var to = from + CandidateJobsThatMayInterest.pageSize;
		CandidateJobsThatMayInterest.loadResources(from, to);
		return false;
	},
	init: function() {
		CandidateJobsThatMayInterest.loadResources(0, CandidateJobsThatMayInterest.pageSize);
	}
};
/*--------------------------------------------------
     Following components are for all users whether
     logged in or not
  --------------------------------------------------*/
/*SEARCH JOB*/
//for(var item in obj){
//    var strText=obj[item].text;
//    //create <select>
//    for(var itemChild in obj[item].items{
//        var strText=obj[item].items[itemChild].text;
//        //create <option>
//    }
//}
var SearchBox = {
    loadResources: function() {
		var lst = "";
		lst +="<select class='job' name='Job Sector' id='qsbJobSector' onchange='JavaScript:SearchBox.sectorChange();'>";
		//lst +="<option selected='selected' value='-1'>Select a Sector</option>";
		lst +="<option selected='selected' value='0'>All Sectors</option>";		
		//get sectors
		for (var i = 0; i<qsb.SidebarSearchSectors.length; i++) {
			 var r = qsb.SidebarSearchSectors[i];
			 lst += "<option value='" + r.id + "'>" + r.sector + "</option>";
		}
		lst += "</select>"; //close sectors		     
		jQuery("#boxSidebarJobSearch").html(lst);
	},
	sectorChange: function(){
	    jQuery("#boxSidebarProfession").empty();
	    var sectorID = jQuery('#qsbJobSector').val();        
	    var lst = "";
	     //get professions
	    lst +="<div style='width: 212px; overflow: hidden;'>";
		lst +="<select style='width: auto;' class='job' name='Profession' id='qsbProfession' onchange='JavaScript:SearchBox.createSearchLink();'>";
	    lst +="<option selected='selected' value='0'>All Professions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option>";	
	    
	    //loop through sectors to find professions
	    for (var i = 0; i<qsb.SidebarSearchSectors.length; i++) {
			 var r = qsb.SidebarSearchSectors[i];
			 
			 if(r.id == sectorID){			 
	             for (var j = 0; j < qsb.SidebarSearchSectors[i].items.length; j++){
	                var q = qsb.SidebarSearchSectors[i].items[j];
	                lst += "<option value='" + q.id + "' title='"+ q.text +"'>" + q.text + "</option>";			 
	             }
	         }
	    }
	    lst += "</select>"; //close professions		
	    lst +="</div>";     
	    jQuery("#boxSidebarProfession").html(lst);	
	    SearchBox.createSearchLink();
	},
	createSearchLink: function(){
	    //set search link		
		var searchLink="<a href='/searchresults.aspx?";
		if(jQuery('#qsbJobSector').val()>0){
		    searchLink+="s=" + jQuery('#qsbJobSector').val();
		}
		if(jQuery('#qsbProfession').val()>0){
		    if(jQuery('#qsbJobSector').val()>0){
		        searchLink+="&";
		    }
		    searchLink+="p=" + jQuery('#qsbProfession').val();
		}
		if(jQuery('#qsbRegion').val()>0){
		    if(jQuery('#qsbJobSector').val()>0|jQuery('#qsbProfession').val()>0){
		        searchLink+="&";
		    }
		    searchLink+="r=" + jQuery('#qsbRegion').val();
		}
		if(jQuery('#qsbKeywords').val()>"" && jQuery('#qsbKeywords').val()!="Keyword"){
		    if(jQuery('#qsbJobSector').val()>0|jQuery('#qsbProfession').val()>0|jQuery('#qsbRegion').val()>0){
		        searchLink+="&";
		    }
		    //searchLink+="k=" + jQuery('#qsbKeywords').val(); ORIG
		    searchLink+="k=";
		    var strKeywords = jQuery('#qsbKeywords').val();
		    if (strKeywords.match(" ")){
		        strKeywords = strKeywords.replace(" ","%20");
		    }
		    searchLink+=strKeywords;		    
		}
		if(jQuery('#qsbCheckBox').attr('checked')==true){
		    if(jQuery('#qsbJobSector').val()>0|jQuery('#qsbProfession').val()>0|jQuery('#qsbKeywords').val()>""|jQuery('#qsbKeywords').val()>""){
		        searchLink+="&";
		    }
		    searchLink+="j=1";
		}
		//finish searchlink
		searchLink+="' title='Search Jobs'>Search Jobs</a>";	
		jQuery("#boxSidebarSearchJobs").html(searchLink);	
	},
    init: function() {
		SearchBox.loadResources();
	}
};

/*LATEST JOBS*/
var LatestJobs = {
	pageSize: 3,
	pageCurrent: 1,
	loadResources: function(from, to) {
		var lst = "";
		for (var i = from; i < Math.min(lj.LatestJobVacanciesItems.length, to); i++) {
			var r = lj.LatestJobVacanciesItems[i];
			lst += "<div class='smallList'><p class='jobTitle'><a target='_self' href='/vacancy.aspx?id=" + r.VacancyID + "' title='Open this item in a new window'>" + r.Title + "</a></p><p>" + r.Location + " (" + r.Region + ") " + r.DateStart + "</p></div>";		
		}
		jQuery("#boxLatestJobVacancies").html(lst);

		LatestJobs.setupPager();
	},
	setupPager: function() {
		var pager = "";
		if (lj.LatestJobVacanciesItems.length > LatestJobs.pageSize) {
		    /*remove single line border*/
		    //jQuery("#boxLatestJobVacanciesSingleBorder").empty();
			/*setup pager*/
			var pageCount = Math.ceil(lj.LatestJobVacanciesItems.length / LatestJobs.pageSize)
			
			pager+="<div class='btmListPage'>";
			pager += "<div class='pageNumber'> page " + LatestJobs.pageCurrent + " of " + pageCount + "</div>";
			pager += "<div class='arrowContainers'>";
			if (LatestJobs.pageCurrent < pageCount) pager += "<div class='arrowRight_btn'><a href='#' title='Next'>Next</a></div>";
			if (LatestJobs.pageCurrent > 1) pager += "<div class='arrowLeft_btn'><a href='#' title='Previous'>Previous</a></div>";
			pager += "</div>";
			pager += "<div class='viewJobs'><a href='/searchresultstype.aspx?type=lj' title='View All Jobs'>View All Jobs</a></div>";
			pager += "</div>";
            pager += "<div class='clearFloat'></div>";
			jQuery("#LatestJobVacanciesPager").html(pager);
			jQuery("#LatestJobVacanciesPager .arrowContainers .arrowRight_btn a").click(LatestJobs.nextPage);
			jQuery("#LatestJobVacanciesPager .arrowContainers .arrowLeft_btn a").click(LatestJobs.prevPage);
		}
		else {
			/*remove pager*/
			jQuery("#LatestJobVacanciesPager").empty();
		}
	},
	nextPage: function() {
		LatestJobs.pageCurrent += 1;
		var from = (LatestJobs.pageCurrent * LatestJobs.pageSize) - LatestJobs.pageSize;
		var to = from + LatestJobs.pageSize;
		LatestJobs.loadResources(from, to);
		return false;
	},
	prevPage: function() {
		LatestJobs.pageCurrent -= 1;
		var from = (LatestJobs.pageCurrent * LatestJobs.pageSize) - LatestJobs.pageSize;
		var to = from + LatestJobs.pageSize;
		LatestJobs.loadResources(from, to);
		return false;
	},
	init: function() {
		LatestJobs.loadResources(0, LatestJobs.pageSize);
	}
};

/*VIEWED JOBS - most popular */
var ViewedJobs = {
	pageSize: 3,
	pageCurrent: 1,
	loadResources: function(from, to) {
		var lst = "";
		for (var i = from; i < Math.min(vj.ViewedJobsItems.length, to); i++) {
			var r = vj.ViewedJobsItems[i];
			lst += "<div class='smallList'><p class='jobTitle'><a target='_self' href='/vacancy.aspx?id=" + r.VacancyID + "' title='Open this item in a new window'>" + r.Title + "</a></p><p>" + r.Location + " (" + r.Region + ") " + r.DateStart + "</p></div>";		
		}
		jQuery("#boxViewedJobsVacancies").html(lst);

		ViewedJobs.setupPager();
	},
	setupPager: function() {
		var pager = "";
		if (vj.ViewedJobsItems.length > ViewedJobs.pageSize) {
		    /*remove single line border*/
		    //jQuery("#boxViewedJobsSingleBorder").empty();
			/*setup pager*/
			var pageCount = Math.ceil(vj.ViewedJobsItems.length / ViewedJobs.pageSize)
			
			pager+="<div class='btmListPage'>";
			pager += "<div class='pageNumber'> page " + ViewedJobs.pageCurrent + " of " + pageCount + "</div>";
			pager += "<div class='arrowContainers'>";
			if (ViewedJobs.pageCurrent < pageCount) pager += "<div class='arrowRight_btn'><a href='#' title='Next'>Next</a></div>";
			if (ViewedJobs.pageCurrent > 1) pager += "<div class='arrowLeft_btn'><a href='#' title='Previous'>Previous</a></div>";
			pager += "</div>";
			pager += "<div class='viewJobs'><a href='/searchresultstype.aspx?type=mp' title='View All Jobs'>View All Jobs</a></div>";
			pager += "</div>";
            pager += "<div class='clearFloat'></div>";
			jQuery("#ViewedJobsVacanciesPager").html(pager);
			jQuery("#ViewedJobsVacanciesPager .arrowContainers .arrowRight_btn a").click(ViewedJobs.nextPage);
			jQuery("#ViewedJobsVacanciesPager .arrowContainers .arrowLeft_btn a").click(ViewedJobs.prevPage);
		}
		else {
			/*remove pager*/
			jQuery("#ViewedJobsVacanciesPager").empty();
		}
	},
	nextPage: function() {
		ViewedJobs.pageCurrent += 1;
		var from = (ViewedJobs.pageCurrent * ViewedJobs.pageSize) - ViewedJobs.pageSize;
		var to = from + ViewedJobs.pageSize;
		ViewedJobs.loadResources(from, to);
		return false;
	},
	prevPage: function() {
		ViewedJobs.pageCurrent -= 1;
		var from = (ViewedJobs.pageCurrent * ViewedJobs.pageSize) - ViewedJobs.pageSize;
		var to = from + ViewedJobs.pageSize;
		ViewedJobs.loadResources(from, to);
		return false;
	},
	init: function() {
		ViewedJobs.loadResources(0, ViewedJobs.pageSize);
	}
};

/*NEWS*/
var KnowledgeBank = {
	pageSize: 3,
	pageCurrent: 1,
	loadItems: function(from, to) {

		var lst="";
		for (var i = from; i < Math.min(kb.KnowledgeBankItems.length, to); i++) {
			var k = kb.KnowledgeBankItems[i];
			lst += "<div class='smallList'><a class='jobTitle' rel='nofollow' target='_blank' href='" + k.URL + "' title='Open this item in a new window'>" + k.Title + "</a></div>";
		}
		jQuery("#boxKnowledgeBank").html(lst);

		KnowledgeBank.setupPager();
	},
	setupPager: function() {
		var pager = "";
		if (kb.KnowledgeBankItems.length > KnowledgeBank.pageSize) {
			/*setup pager*/
			var pageCount = Math.ceil(kb.KnowledgeBankItems.length / KnowledgeBank.pageSize);

			pager += "<div class='pageNumber'> page " + KnowledgeBank.pageCurrent + " of " + pageCount + "</div>";
			pager += "<div class='arrowContainers'>";
			if (KnowledgeBank.pageCurrent < pageCount) pager += "<div class='arrowRight_btn'><a href='#' title='Next'>Next</a></div>";
			if (KnowledgeBank.pageCurrent > 1) pager += "<div class='arrowLeft_btn'><a href='#' title='Previous'>Previous</a></div>";
			pager += "</div>";
			jQuery("#KnowledgeBankPager").html(pager);
			jQuery("#KnowledgeBankPager .arrowContainers .arrowRight_btn a").click(KnowledgeBank.nextPage);
			jQuery("#KnowledgeBankPager .arrowContainers .arrowLeft_btn a").click(KnowledgeBank.prevPage);
		}
		else {
			/*remove pager*/
			jQuery("#KnowledgeBankPager").empty();
		}
	},
	nextPage: function() {
		KnowledgeBank.pageCurrent += 1;
		var from = (KnowledgeBank.pageCurrent * KnowledgeBank.pageSize) - KnowledgeBank.pageSize;
		var to = from + KnowledgeBank.pageSize;
		KnowledgeBank.loadItems(from, to);
		return false;
	},
	prevPage: function() {
		KnowledgeBank.pageCurrent -= 1;
		var from = (KnowledgeBank.pageCurrent * KnowledgeBank.pageSize) - KnowledgeBank.pageSize;
		var to = from + KnowledgeBank.pageSize;
		KnowledgeBank.loadItems(from, to);
		return false;
	},
	init: function() {
		KnowledgeBank.loadItems(0, KnowledgeBank.pageSize);
	}
};









/*NMC NEWS*/
var NMCNews = {
    pageSize: 3,
    pageCurrent: 1,
    loadItems: function(from, to) {

        var lst = "";
        for (var i = from; i < Math.min(nmc.NMCNewsItems.length, to); i++) {
            var k = nmc.NMCNewsItems[i];
            lst += "<div class='smallList'><a class='jobTitle' rel='nofollow' target='_blank' href='" + k.URL + "' title='Open this item in a new window'>" + k.Title + "</a></div>";
        }
        jQuery("#boxNMCNews").html(lst);

        NMCNews.setupPager();
    },
    setupPager: function() {
        var pager = "";
        if (nmc.NMCNewsItems.length > NMCNews.pageSize) {
            /*setup pager*/
            var pageCount = Math.ceil(nmc.NMCNewsItems.length / NMCNews.pageSize);

            pager += "<div class='pageNumber'> page " + NMCNews.pageCurrent + " of " + pageCount + "</div>";
            pager += "<div class='arrowContainers'>";
            if (NMCNews.pageCurrent < pageCount) pager += "<div class='arrowRight_btn'><a href='#' title='Next'>Next</a></div>";
            if (NMCNews.pageCurrent > 1) pager += "<div class='arrowLeft_btn'><a href='#' title='Previous'>Previous</a></div>";
            pager += "</div>";
            jQuery("#NMCNewsPager").html(pager);
            jQuery("#NMCNewsPager .arrowContainers .arrowRight_btn a").click(NMCNews.nextPage);
            jQuery("#NMCNewsPager .arrowContainers .arrowLeft_btn a").click(NMCNews.prevPage);
        }
        else {
            /*remove pager*/
            jQuery("#NMCNewsPager").empty();
        }
    },
    nextPage: function() {
        NMCNews.pageCurrent += 1;
        var from = (NMCNews.pageCurrent * NMCNews.pageSize) - NMCNews.pageSize;
        var to = from + NMCNews.pageSize;
        NMCNews.loadItems(from, to);
        return false;
    },
    prevPage: function() {
        NMCNews.pageCurrent -= 1;
        var from = (NMCNews.pageCurrent * NMCNews.pageSize) - NMCNews.pageSize;
        var to = from + NMCNews.pageSize;
        NMCNews.loadItems(from, to);
        return false;
    },
    init: function() {
        NMCNews.loadItems(0, NMCNews.pageSize);
    }
};








/*IMMEDIATE STARTS*/
var ImmediateStarts = {
	pageSize: 3,
	pageCurrent: 1,
	loadResources: function(from, to) {
		var lst = "";
		for (var i = from; i < Math.min(is.ImmediateStartsItems.length, to); i++) {
			var r = is.ImmediateStartsItems[i];
			lst += "<div class='smallList'><p class='jobTitle'><a target='_self' href='/vacancy.aspx?id=" + r.VacancyID + "' title='Open this item in a new window'>" + r.Title + "</a></p><p>" + r.Location + " (" + r.Region + ")</p></div>";
		}
		jQuery("#boxImmediateStarts").html(lst);

		ImmediateStarts.setupPager();
	},
	setupPager: function() {
		var pager = "";
		if (is.ImmediateStartsItems.length > ImmediateStarts.pageSize) {
			/*setup pager*/
			var pageCount = Math.ceil(is.ImmediateStartsItems.length / ImmediateStarts.pageSize)
			
			pager+="<div class='btmListPage'>";
			pager += "<div class='pageNumber'> page " + ImmediateStarts.pageCurrent + " of " + pageCount + "</div>";
			pager += "<div class='arrowContainers'>";
			if (ImmediateStarts.pageCurrent < pageCount) pager += "<div class='arrowRight_btn'><a href='#' title='Next'>Next</a></div>";
			if (ImmediateStarts.pageCurrent > 1)  pager += "<div class='arrowLeft_btn'><a href='#' title='Previous'>Previous</a></div>";
			pager += "</div>";
			pager += "<div class='viewJobs'><a href='/searchresultstype.aspx?type=is' title='View All Jobs'>View All Jobs</a></div>";
			pager += "</div>";
   			jQuery("#ImmediateStartsPager").html(pager);
			jQuery("#ImmediateStartsPager .arrowContainers .arrowRight_btn a").click(ImmediateStarts.nextPage);
			jQuery("#ImmediateStartsPager .arrowContainers .arrowLeft_btn a").click(ImmediateStarts.prevPage);
		}
		else {
			/*remove pager*/
			jQuery("#ImmediateStartsPager").empty();
		}
	},
	nextPage: function() {
		ImmediateStarts.pageCurrent += 1;
		var from = (ImmediateStarts.pageCurrent * ImmediateStarts.pageSize) - ImmediateStarts.pageSize;
		var to = from + ImmediateStarts.pageSize;
		ImmediateStarts.loadResources(from, to);
		return false;
	},
	prevPage: function() {
		ImmediateStarts.pageCurrent -= 1;
		var from = (ImmediateStarts.pageCurrent * ImmediateStarts.pageSize) - ImmediateStarts.pageSize;
		var to = from + ImmediateStarts.pageSize;
		ImmediateStarts.loadResources(from, to);
		return false;
	},
	init: function() {
		ImmediateStarts.loadResources(0, ImmediateStarts.pageSize);
	}
};


jQuery(document).ready(site.init);

function createRecursiveObjects(spec) {
	var obj = document.createElement(spec.element);
	for (var attrib in spec.attributes) obj[attrib] = spec.attributes[attrib];
	if (spec.text && spec.text != "") jQuery(obj).html(spec.text);
	for (var style in spec.styles) obj.style[style] = spec.styles[style];
	for (var event in spec.events) if(spec.events[event]) obj[event]=spec.events[event];
	for (var child in spec.children) obj.appendChild(createRecursiveObjects(spec.children[child]));
	if (spec.callback && typeof spec.callback == "function") spec.callback(obj);
	return obj
}
Function.prototype.bind = function(obj) {
    var method = this,
	temp = function() {
	    return method.apply(obj, arguments);
	};
    return temp
}
