// used for the scroller
var panels = [1, 2, 3, 4, 5];
var scroller;

// stop image flicker on backgrounds in ie6
try {
  document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}

// ajax set up
$.ajaxSetup({
	headers: {"X-Requested-With":"Ajax"},
	contentType: "application/x-www-form-urlencoded",
	cache: false,
	data: {}
});

// send message to screen
say = function(str){
	try{
		window.loadFirebugConsole();
		console.log(str);
	}catch(e){
		alert(str);
	}
};

// loads the google map
loadGoogleMap = function(){
	if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("google-map"));
		map.addControl(new GSmallMapControl());
		var center = new GLatLng(51.513376,-0.129948);
		map.setCenter(new GLatLng(51.513376,-0.129948), 15);
		var theAddress 	= 	"Imagini Holdings Lid<br />";
		theAddress 		+= 	"7 Moor Street<br />";
		theAddress		+=	"London, W1D 5NB<br />";
		theAddress		+=	"United Kingdom";
		var marker = new GMarker(center, {draggable: false});
		GEvent.addListener(marker, "click", function() {
   			marker.openInfoWindowHtml(theAddress);
  		});
		map.addOverlay(marker);
	}
};

// pop up window function
popup = function (href, params){
	var defaultParams = {
		"width":       "700",
		"height":      "400",
		"top":         "50",
		"left":        "50",
		"directories": "no",
		"location":    "no",
		"resizeable":  "yes",
		"menubar":     "no",
		"toolbar":     "no",
		"scrollbars":  "yes",
		"status":      "no"
	};
	var windowName = params["windowName"] || "new_window";
	var i, useParams = "";
	for (i in defaultParams){
		useParams += (useParams === "") ? "" : ",";
		useParams += i + "=";
		useParams += params[i] || defaultParams[i];
	}
	return window.open(href, windowName, useParams);
};

// heights of #main when content loads
// messy but needed to stop jerky loading
var mainHeights = {};
mainHeights.howitworks = 345;
mainHeights.ourcoreproduct = 962;
mainHeights.globaldatabank = 264;
mainHeights.dataandapi = 610;
mainHeights.contactus = 366;

// ajax for the page content
changePage = function(url){
	var $loader	= $('#loader'),
	tidyurl = url.replace(/\/|-/g, ""),
	$main	= $('#main'),
	$loader = $('#loader'),
	$content = $('#content');
	ran = Math.floor(Math.random()*1001);
	
	$content.css({visibility:'hidden'});
	$loader.show();
	$main.animate({height:mainHeights[tidyurl]+'px'});
	$content.load(url+"?num="+ran, { type : 'ajax'}, function(){
		$loader.hide();
		$content.css({visibility:'visible'});
		if(url.indexOf('contact-us')!=-1){
			loadGoogleMap();
		}
		if(url.indexOf('data')!=-1 || url.indexOf('how-it-works') != -1){
			getPops();
		}
	});
};

getPops = function(){
	// pop up links
	var $pops = $('a.popup');
	$pops.each(function (){
		$(this).click(function(event) {
			event.preventDefault();
			var params = $(this).data("popup") || {};            
			if ($(this).attr("target")){
				params.windowName = $(this).attr("target");
			}
			params.width = "776";
			params.height = "690";
			var windowObject = popup(this.href, params);
			$(this).data("windowObject", windowObject);
		});					
	});
}

// PHP's in_array function for javascript
inArray = function(needle, haystack){
    var key = '';
    for (key in haystack) {
        if (haystack[key] == needle) {
            return true;
        }
    }
    return false;
};

// ajax predictive fetching for the banner images
doFetch = function(num){
	var total,
	time = 250, 
	newnum = 1,
	fetchNext,
	fetchLastOnes,
	$navs = $('#main-nav').children().find('li').children().find('span');
	$($navs[pageIndex]).css('visibility', 'visible');
	
	fetchNext = function(num){
		$('#banner-'+num).load('/_inc/inc.panel-'+num+'.php', { }, function(){
			$($navs[num-1]).css('visibility', 'visible');
			panels.pop(num);			
			num++;
			if(num<6){
				var timer = window.setTimeout(function(){ fetchNext(num); }, time);
			}else{
				total = panels.length+1;
				fetchLastOnes(newnum);
			}
		});
	};
	
	fetchLastOnes = function(newnum){
		if(!panels.length) return;
		$('#banner-'+newnum).load('/_inc/inc.panel-'+newnum+'.php', { }, function(){
			$($navs[newnum-1]).css('visibility', 'visible');
			panels.pop(newnum);			
			newnum++;
			if(newnum<total){
				var timer = window.setTimeout(function(){ fetchLastOnes(newnum); }, time);
			}
		});
	};
	
	if(inArray(num, panels)){
		panels.pop(num-1);
		var timer = window.setTimeout(function(){ fetchNext(num); }, time);
	}else{
		panels.pop(num-1);
		total = panels.length+1;
		var timer = window.setTimeout(function(){ fetchLastOnes(newnum); }, time);
	}

};

// to run on start up 
$(function(){
	
	$navs = $('#main-nav').children().find('li').children().find('span');
	$.each($navs, function(){
		$(this).css('visibility', 'hidden');
	})
	
	// fix PNG issues in IE6
	if ($.browser.msie && $.browser.version.substring(0,1) === '6'){
		DD_belatedPNG.fix('#page, #footer, #main-nav li a span');
	}
	
	// set up scroller
	scroller = $("#scroll-panel").scrollable({size: 1, api: true, clickable : false});
	
	// scroll to corrent panel
	scroller.setPage(pageIndex);
	// now highlight nav item
	var $liOn = $('#main-nav li:nth-child('+(pageIndex+1)+')');
	$liOn.addClass('current');
	
	/*
	// add highlight effect on main nav if we're not using the lavalamp          
    var $items = $('#main-nav li');
    $.each($items, function(){
    	$(this).bind('click', function(){
    		$(this).parent().children('li.current').removeClass('current');
    		$(this).addClass('current');
    	});
    });
    */
    
    // add lavalamp effect for main nav
    if( ($('#privacy').length!==1) || ($('#sitemap').length!==0) ){
	    $("#main-nav ul").lavaLamp({
	        fx: "backout", 
	        speed: 700,
	        click: function(event, menuItem) {
	            return false;
	        }
	    });
    }
    
    // add the ajax class to the nav
    var $navitems = $('#main-nav li a');
	$.each($navitems, function(){
		$(this).bind('click', function(){
			var index = $('#main-nav li').index($(this).parent());
			$(this).parents('ul').children().find('a.on').removeClass('on');
			$(this).addClass('on');
			scroller.setPage(index);
			var url = $(this).attr('href');
			changePage(url);
		});
	});
    
});


// to run on page load
$(window).load(function(){
	
	// pop up links
	getPops();
	
	// social network / share icons
	$("#social ul li a").each(function (i){
		$(this).click(function(event) {
			event.preventDefault();
			var params = $(this).data("popup") || {};            
			if ($(this).attr("target")){
				params.windowName = $(this).attr("target");
			}
			var windowObject = popup(this.href, params);
			$(this).data("windowObject", windowObject);
		});
	});
	
	// init the google map
	if($('#contact').length>0){
		loadGoogleMap();
	};
	
	// do the predictive fetching for the banners
	doFetch(pageIndex+2);
	
	// add event to the 'learn more' button
	$('#banner-1').children('p#learn-more').children('a').bind('click', function(e){
		e.preventDefault();
		scroller.click(2)
		$('#main-nav li:nth-child(2)').click();
		changePage('/our-core-product/');
	});
	
});

/* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ - Copyright 2008 George McGinley Smith */
jQuery.easing['jswing']=jQuery.easing['swing'];jQuery.extend(jQuery.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d)},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b},easeInCirc:function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b},easeInBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b},easeOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},easeInOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b},easeInBounce:function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2)return jQuery.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b}});

/* jQuery Easing Compatibility v1 - http://gsgd.co.uk/sandbox/jquery.easing.php - Adds compatibility for applications that use the pre 1.2 easing names */
jQuery.extend(jQuery.easing,{easeIn:function(x,t,b,c,d){return jQuery.easing.easeInQuad(x,t,b,c,d)},easeOut:function(x,t,b,c,d){return jQuery.easing.easeOutQuad(x,t,b,c,d)},easeInOut:function(x,t,b,c,d){return jQuery.easing.easeInOutQuad(x,t,b,c,d)},expoin:function(x,t,b,c,d){return jQuery.easing.easeInExpo(x,t,b,c,d)},expoout:function(x,t,b,c,d){return jQuery.easing.easeOutExpo(x,t,b,c,d)},expoinout:function(x,t,b,c,d){return jQuery.easing.easeInOutExpo(x,t,b,c,d)},bouncein:function(x,t,b,c,d){return jQuery.easing.easeInBounce(x,t,b,c,d)},bounceout:function(x,t,b,c,d){return jQuery.easing.easeOutBounce(x,t,b,c,d)},bounceinout:function(x,t,b,c,d){return jQuery.easing.easeInOutBounce(x,t,b,c,d)},elasin:function(x,t,b,c,d){return jQuery.easing.easeInElastic(x,t,b,c,d)},elasout:function(x,t,b,c,d){return jQuery.easing.easeOutElastic(x,t,b,c,d)},elasinout:function(x,t,b,c,d){return jQuery.easing.easeInOutElastic(x,t,b,c,d)},backin:function(x,t,b,c,d){return jQuery.easing.easeInBack(x,t,b,c,d)},backout:function(x,t,b,c,d){return jQuery.easing.easeOutBack(x,t,b,c,d)},backinout:function(x,t,b,c,d){return jQuery.easing.easeInOutBack(x,t,b,c,d)}});

// Lavalamp - Copyright (c) 2007 Ganeshji Marwaha (gmarwaha.com) - http://gmarwaha.com/blog/?p=7
(function($){$.fn.lavaLamp=function(o){o=$.extend({fx:"linear",speed:500,click:function(){}},o||{});return this.each(function(){var b=$(this),noop=function(){},$back=$('<li class="back"><div class="left"></div></li>').appendTo(b),$li=$("li",this),curr=$("li.current",this)[0]||$($li[0]).addClass("current")[0];$li.not(".back").hover(function(){move(this)},noop);$(this).hover(noop,function(){move(curr)});$li.click(function(e){setCurr(this);return o.click.apply(this,[e,this])});setCurr(curr);function setCurr(a){$back.css({"left":a.offsetLeft+"px","width":a.offsetWidth+"px"});curr=a};function move(a){$back.each(function(){$.dequeue(this,"fx")}).animate({width:a.offsetWidth,left:a.offsetLeft},o.speed,o.fx)}})}})(jQuery);