/* ******************************************************* */
/* Site Core Script                                        */
/* Created By: Luke Hastie, Points Align Ltd               */
/* ******************************************************* */
$(document).ready(function(){	
		$.fn.paPageFilterSettings.loading = true;

		//Article Galleries
		var $gallery = $('.wArticleSlidePanel').filter(':not(.fade)').filter(':not(.Manual)').each(function() {
			var $gallery = $(this);
			var $slides = $gallery.find(".wArticleSlides");
			var $pager = $gallery.find(".wCasePager").html("");
			$slides.cycle({
					fx:     'scrollHorz',
					speed: 1000,
					timeout: 7000,
					pause: 1,
					pauseOnPagerHover: 1, 
					fastOnEvent: 250, 
					cleartype: 1, 
					cleartypeNoBg: true,
					pager:   $pager,
					pagerAnchorBuilder: function(idx, slide) { 
						return '<a href="#"></a>'; 
					} 
			});
		});
		
		var $gallery = $('.wArticleSlidePanel.fade').each(function() {
			var $gallery = $(this);
			var $slides = $gallery.find(".wArticleSlides");
			var $pager = $gallery.find(".wCasePager").html("");
			$slides.cycle({
					fx:     'fade',
					speed: 1000,
					timeout: 7000,
					pause: 1,
					pauseOnPagerHover: 1, 
					fastOnEvent: 250, 
					cleartype: 1, 
					cleartypeNoBg: true,
					pager:   $pager,
					pagerAnchorBuilder: function(idx, slide) { 
						return '<a href="#"></a>'; 
					} 
			});
		});
		
		$gallery = $('.wArticleSlidePanel.Manual').each(function() {
			var $gallery = $(this);
			var $slides = $gallery.find(".wArticleSlides");
			var $pager = $gallery.find(".wCasePager").html("");
			$slides.cycle({
					fx:     'scrollHorz',
					speed: 1000,
					timeout: 0,
					pause: 1,
					pauseOnPagerHover: 1, 
					fastOnEvent: 250, 
					cleartype: 1, 
					cleartypeNoBg: true,
					pager:   $pager,
					pagerAnchorBuilder: function(idx, slide) { 
						return '<a href="#"></a>'; 
					} 
			});
		});
		
		// Homepage Gallery		
		var $gallery = $('.wPromotionBrowser').each(function() {
			var $gallery = $(this);
			var $slides = $gallery.find(".wPromotionSlides");
			var $pager = $gallery.find(".wPromotionPager").html("");
			$slides.cycle({
					fx:     'fade',
					startingSlide: Math.floor(Math.random()*$slides.children().length),
					speed: 1000,
					timeout: 7000,
					pause: 1,
					pauseOnPagerHover: 1, 
					fastOnEvent: 500, 
					cleartype: 1, 
					sync: 0,
					cleartype: 1,
					cleartypeNoBg: true,
					pager:   $pager,
					pagerAnchorBuilder: function(idx, slide) { 
						return '<a href="#"></a>'; 
					} 
			});
		});
		// Homepage Latest News 
		var $gallery = $('.wDisplayBar').each(function() {
			var $gallery = $(this);
			var $slides = $gallery.find(".wNewsTickeritems");
			$slides.cycle({
				fx: 'fade',
					speed: 500,
					timeout: 3000,
					pause: 1,
					sync: 0,
					cleartype: 1,
					cleartypeNoBg: true
			});
		});
		
		// Search click on mangnify glass
		$(".wGoSearch").bind("click", function() {
			$("form")[0].submit();
		});
		
		// Search redirect to get
		$(".wSearch a.wDisplayShow").bind("click", function() {
			var $this = $(this);
			var $search = $this.parent().find(".ui_Ssearch_newWindow");
			var searchText = $search.val();
			if (searchText.length > 0)
				window.location = window.location.pathname + "?search=" + escape(searchText);
			return false;
		});
		
		$(".ui_Ssearch_newWindow").each(function(){
			var $this = $(this);
			var $tag = $this;
			//while($tag.length == 1 && $tag[0].nodeName != "FORM")
			//	$tag = $tag.parent();
			
			$tag.bind('keydown', function (ev) {
				if (ev.keyCode == '13') {
					ev.preventDefault();
					var $search = $this;
					var searchText = $search.val();
					if (searchText.length > 0)
						window.location = "/search?search=" + escape(searchText);
					return false;
				}
			});
		});
		
		// Filters
		if (window.location.pathname == "/news") {
			$.cookie("filterDisplayType", "TEXT", { expires: 30, path: window.location.pathname });
		}
		if (window.location.pathname == "/in-the-media") {
			$.cookie("filterDisplayType", "TEXT", { expires: 30, path: window.location.pathname });
		}
		
		$(".wArticleList, .wArticleListTxt").not("#xsltsearch .wArticleList,#xsltsearch .wArticleListTxt").paPageFilter({
			pager: ".wPagerCount",
			ignore: ".wPager",
			pagerNext: ".wNext",
			pagerPrev: ".wPrevious",
			effect: $.cookie("filterDisplayType") == "TEXT" ? "none" : "scrollHorz"
		});
		
		//Filter Actions
		
		//On filter
		$(".wFilter .wDisplayShow").each(function() {
			var $this = $(this);
			
			$this.bind('click', function(ev){
				ev.preventDefault();
				var rel = $this.parent().parent().attr("rel");
				var $pageFilter = $("#" + rel);
				$pageFilter.paPageFilter('filter', {
					filter: function() {
						var found = true;
						var $article = $(this);
						var all = true;
						var $filters = $this.parent().parent().parent().find("select");
						$filters.each(function() {
							var val = $(this).val() + ",";
							if (val.substring(0, 3) != "All")
								all = false;
							if (val.substring(0, 3) != "All" && $article.attr("rel").indexOf(val) == -1)
								found = false;
						});
						
						return found || all;
					}
				});				
			});
			return false;
		});
		
		// Display Stamps
		$(".TogglePanel").click(function (ev) {
			ev.preventDefault();
			$('#wListTarget').removeClass('wArticleList wArticleListTxt TwoCol ThreeCol FourCol ThreeColShort FourColShort').addClass($('#wListTarget').attr("iconclass"));
			$('.TogglePanel').removeClass('Current').addClass('Current');
			$('.ToggleList').removeClass('Current');
			$pageFilter = $("#" + $(this).parent().attr("rel"));
			$pageFilter.paPageFilter("settings", {effect: 'scrollHorz'});
			$.cookie("filterDisplayType", "ICON", { expires: 30, path: window.location.pathname });
			return false;
    });
		
		// Display Text
		$(".ToggleList").click(function (ev) {
			ev.preventDefault();
			$('#wListTarget').removeClass('wArticleList wArticleListTxt TwoCol ThreeCol FourCol ThreeColShort FourColShort').addClass('wArticleListTxt');
			$('.TogglePanel').removeClass('Current');
			$('.ToggleList').removeClass('Current').addClass('Current');

			$pageFilter = $("#" + $(this).parent().attr("rel"));
			
			$pageFilter.paPageFilter("settings", {effect: 'none'});
			$.cookie("filterDisplayType", "TEXT", { expires: 30, path: window.location.pathname });

			return false;
    });
	
	// Default filter from back button
	
	if ($.cookie("filterDisplayType") == "TEXT")
		$(".ToggleList").click();
	else {
		$(".TogglePanel").click();
	}
	$(".wFilter .wDisplayShow").each(function() {
			var $this = $(this);
			var $filters = $this.parent().parent().parent().find("select");
			var filterFound =  false;
			$filters.each(function() {
				if ($(this).val().indexOf("All") != 0) 
					filterFound=true;
			});
			if (filterFound) {
				$this.click();
			}
	});
	$.fn.paPageFilterSettings.loading = false;
	//$(".wBody .wWrap").css("visibility", "visible");


	//Marketo
	var RegionData = {
	'--None--': '--None--',
	'United Kingdom': 'United Kingdom',
	'United States': 'North America',
	'Canada': 'North America',
	'Albania': 'Albania',
	'Algeria': 'Algeria',
	'Andorra': 'Andorra',
	'Angola': 'Angola',
	'Argentina': 'Argentina',
	'Armenia': 'Armenia',
	'Australia': 'Australia',
	'Austria': 'Austria',
	'Azerbaijan': 'Azerbaijan',
	'Bahrain': 'Bahrain',
	'Bangladesh': 'Bangladesh',
	'Belarus': 'Belarus',
	'Belgium': 'Belgium',
	'Belize': 'Belize',
	'Benin': 'Benin',
	'Bolivia': 'Bolivia',
	'Bosnia Herzegovina': 'Bosnia Herzegovina',
	'Botswana': 'Botswana',
	'Brazil': 'Brazil',
	'Brunei': 'Brunei',
	'Darussalam': 'Darussalam',
	'Bulgaria': 'Bulgaria',
	'Cambodia': 'Cambodia',
	'Chad': 'Chad',
	'Chile': 'Chile',
	'China': 'China',
	'China- Hong Kong SAR': 'China- Hong Kong SAR',
	'China- Macao SAR': 'China- Macao SAR',
	'Colombia': 'Colombia',
	'Congo': 'Congo',
	'Cote d\'Ivoire': 'Cote d\'Ivoire',
	'Croatia': 'Croatia',
	'Cyprus': 'Cyprus',
	'Czech Republic': 'Czech Republic',
	'Denmark': 'Denmark',
	'Dominica': 'Dominica',
	'Dominican Republic': 'Dominican Republic',
	'Ecuador': 'Ecuador',
	'Egypt': 'Egypt',
	'El Salvador': 'El Salvador',
	'Estonia': 'Estonia',
	'Fiji': 'Fiji',
	'Finland': 'Finland',
	'France': 'France',
	'French Guiana': 'French Guiana',
	'Gabon': 'Gabon',
	'Gambia': 'Gambia',
	'Georgia': 'Georgia',
	'Germany': 'Germany',
	'Ghana': 'Ghana',
	'Gibraltar': 'Gibraltar',
	'Greece': 'Greece',
	'Guadeloupe': 'Guadeloupe',
	'Guatemala': 'Guatemala',
	'Guinea': 'Guinea',
	'Guyana': 'Guyana',
	'Honduras': 'Honduras',
	'Hungary': 'Hungary',
	'Iceland': 'Iceland',
	'India': 'India',
	'Indonesia': 'Indonesia',
	'Iran': 'Iran',
	'Iraq': 'Iraq',
	'Ireland': 'Ireland',
	'Israel': 'Israel',
	'Italy': 'Italy',
	'Japan': 'Japan',
	'Jordan': 'Jordan',
	'Kazakhstan': 'Kazakhstan',
	'Kenya': 'Kenya',
	'Kosovo': 'Kosovo',
	'Kuwait': 'Kuwait',
	'Kyrgyzstan': 'Kyrgyzstan',
	'Latvia': 'Latvia',
	'Lebanon': 'Lebanon',
	'Lesotho': 'Lesotho',
	'Liberia': 'Liberia',
	'Libya': 'Libya',
	'Liechtenstein': 'Liechtenstein',
	'Lithuania': 'Lithuania',
	'Luxembourg': 'Luxembourg',
	'Macedonia': 'Macedonia',
	'Madagascar': 'Madagascar',
	'Malawi': 'Malawi',
	'Malaysia': 'Malaysia',
	'Mali': 'Mali',
	'Malta': 'Malta',
	'Mauritius': 'Mauritius',
	'Mexico': 'Mexico',
	'Monaco': 'Monaco',
	'Montenegro': 'Montenegro',
	'Morocco': 'Morocco',
	'Mozambique': 'Mozambique',
	'Myanmar': 'Myanmar',
	'Namibia': 'Namibia',
	'Nepal': 'Nepal',
	'Netherlands': 'Netherlands',
	'New Zealand': 'New Zealand',
	'Nicaragua': 'Nicaragua',
	'Niger': 'Niger',
	'Nigeria': 'Nigeria',
	'Norway': 'Norway',
	'Oman': 'Oman',
	'Pakistan': 'Pakistan',
	'Panama': 'Panama',
	'Paraguay': 'Paraguay',
	'Peru': 'Peru',
	'Philippines': 'Philippines',
	'Poland': 'Poland',
	'Portugal': 'Portugal',
	'Puerto Rico': 'Puerto Rico',
	'Qatar': 'Qatar',
	'Republic of Korea': 'Republic of Korea',
	'Republic of Moldova': 'Republic of Moldova',
	'Romania': 'Romania',
	'Russian Federation': 'Russian Federation',
	'Rwanda': 'Rwanda',
	'Samoa': 'Samoa',
	'San Marino': 'San Marino',
	'Saudi Arabia': 'Saudi Arabia',
	'Senegal': 'Senegal',
	'Serbia': 'Serbia',
	'Seychelles': 'Seychelles',
	'Sierra Leone': 'Sierra Leone',
	'Singapore': 'Singapore',
	'Slovakia': 'Slovakia',
	'Slovenia': 'Slovenia',
	'Somalia': 'Somalia',
	'South Africa': 'South Africa',
	'Spain': 'Spain',
	'Sri Lanka': 'Sri Lanka',
	'Sudan': 'Sudan',
	'Suriname': 'Suriname',
	'Swaziland': 'Swaziland',
	'Sweden': 'Sweden',
	'Switzerland': 'Switzerland',
	'Syria': 'Syria',
	'Taiwan': 'Taiwan',
	'Tajikistan': 'Tajikistan',
	'Thailand': 'Thailand',
	'Togo': 'Togo',
	'Tonga': 'Tonga',
	'Tunisia': 'Tunisia',
	'Turkey': 'Turkey',
	'Turkmenistan': 'Turkmenistan',
	'Uganda': 'Uganda',
	'Ukraine': 'Ukraine',
	'United Arab Emirates': 'United Arab Emirates',
	'United Kingdom': 'United Kingdom',
	'United Republic of Tanzania': 'United Republic of Tanzania',
	'Uruguay': 'Uruguay',
	'USA': 'USA',
	'Uzbekistan': 'Uzbekistan',
	'Venezuela': 'Venezuela',
	'Viet Nam': 'Viet Nam',
	'Western Sahara': 'Western Sahara',
	'Yemen': 'Yemen',
	'Zambia': 'Zambia',
	'Zimbabwe': 'Zimbabwe'
	};
	
	$(".contourField.country input").each(function () {
		var $this = $(this);
		var attributes = $this[0].attributes;
		$this.replaceWith("<select></select>");
		$this = $(".contourField.country select");
		$.each(attributes, function(key, val){
			if (val.name == 'id' || val.name == 'name' || val.name == 'Validators'){
				$this.attr(val.name, val.value);
			}
		});
		$this.html("<option></option>");
		$.each(RegionData, function (Country, Region) {
			$this.append(
				$('<option></option>').val(Country).html(Country)
			);
		});
		
		$(".contourField.country select").bind("change blur", function(){
		var $region = jQuery(".contourField.region input");
		if ($region && $region.length == 1 && RegionData)
			$region.val(RegionData[this.options[this.selectedIndex].text]);
	});
	
	});
	
	
	$("._mkt_trk input").val($.cookie("_mkto_trk"));
	
	$(".contourField.industry select").each(function() {
		var $this = $(this);
		var text = this.options[this.selectedIndex].text;
		$(".contourField.industrytext input").val(text);
	});
	
	$(".contourField.industry select").bind("change blur", function() {
		var $this = $(this);
		var text = this.options[this.selectedIndex].text;
		$(".contourField.industrytext input").val(text);
	});
	
	$(".contourField.areaofinterest select").each(function() {
		var $this = $(this);
		var text = this.options[this.selectedIndex].text;
		$(".contourField.areaofinteresttext input").val(text);
	});
	
	$(".contourField.areaofinterest select").bind("change blur", function() {
		var $this = $(this);
		var text = this.options[this.selectedIndex].text;
		$(".contourField.areaofinteresttext input").val(text);
	});	
	
	// Setup Global HighCharts options
	Highcharts.setOptions({
		chart: {
			backgroundColor: null,
			plotBackgroundColor: null
		},
		title: {
			text: null
		},
		subtitle: {
			text: null
		},
		exporting: {
				enabled: false
		},
		legend: {
			enabled: false
		},
		credits: {
			enabled: false
		},
		labels: {
			style: {
				color: '#CCC'
			}
		},
		tooltip: {
			enabled: false,
			formatter: function() {
					return "<b>" + this.point.name + "</b>";
			},
			backgroundColor: {
				linearGradient: [0, 0, 0, 50],
				stops: [
					[0, 'rgba(66, 60, 50, .9)'],
					[1, 'rgba(29, 27, 21, .8)']
				]
			},
			borderWidth: 0,
			style: {
				color: '#FFF'
			}
		},
		plotOptions: {
			line: {
				dataLabels: {
					color: '#CCC'
				},
				marker: {
					lineColor: '#333'
				}
			},
			spline: {
				marker: {
					lineColor: '#333'
				}
			},
			scatter: {
				marker: {
					lineColor: '#333'
				}
			},
			pie: {
				dataLabels: {
					enabled: false
				}
			}
		},
		toolbar: {
			itemStyle: {
			color: '#CCC'
			}
		}
	}); 
	
	$('.factoid .pie').parent().each(function (){
		var chart = $(this).find(".pie");
		var overlay = $(this).find(".overlay");
		var percent = chart.attr("rel");
		
		// overlay percent
		overlay.html(overlay.html().replace("%", '<span class="percent">%</span>'));
		// chart
		var chunckSize = 12;
		var noOfChunks = chunckSize * chunckSize;
		var chunck = Math.round((noOfChunks * (percent /100) / chunckSize)) * chunckSize;
		var noOfSections = (noOfChunks - chunck) / chunckSize;
		
		
		var data = [];
		data.push({ name: '', y: chunck, color: '#f68630', selected: false, sliced: false, stickyTracking: true});
		
		for(var i=0;i<noOfSections;i++){
			data.push({name: '', y: chunckSize, color: '#ffc69a'});
		}
		
		new Highcharts.Chart({
			chart: {
				renderTo: chart[0]
			},
			series: [{
				type: 'pie',
				name: '',
				size: '60%',
				innerSize: '50%',
				enableMouseTracking: false,
				data: data
				},
				{
				type: 'pie',
				name: '',
				innerSize: '60%',
				size: '110%',
				enableMouseTracking: false,
				data: data,
				animation: {
					complete: function() {
						//alert('Animation complete');
						overlay.fadeIn(600);
					}
				}
			}]
		});
		//overlay.fadeIn(1500);
	});
	
	$("input[type=file]").change(function() {
		$this = $(this);
		$parent = $this.parent().parent();
		$sibling = $parent.next();
		
		if ($sibling && $sibling.length > 0) {
			$sibling.show();
		}
	});
	
	$("form").validate({errorClass: "contourError", errorElement: "span", onclick: false, onfocusout: false, onkeyup: false});
	
	$("a.submit").click(function() {
		$(this).parents("form").submit();	
		return false;
	});
	
	$(".announcement").parent().find(".more").click(function(ev) {
		
		$more = $(this);
		$announcement = $more.parent().find(".announcement");
		
		if ($more.text() == "Read more"){
			$announcement.animate({height: $announcement.outerScrollHeight(true)});
			$more.text("less");
		} else {
			$announcement.animate({height: 55});
			$more.text("Read more");
		}
		
		ev.preventDefault();
		return false;
	});
	
	$("#download_range").change(function(){
		if ($("#download_range").val() == "all"){
			$("#download_range").parent().find("p").show();
		} else {
			$("#download_range").parent().find("p").hide();
		}
	});
	
	$("#DownloadCallStats").click(function(){
		window.location = "/wAssets/ExportCalls.ashx?type=" + $("#download_selecttype").val() + "&range=" + $("#download_range").val();
		return false;
	});
});

function pad(number, length) {
   
    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }
   
    return str;

}

jQuery.fn.outerScrollHeight = function(includeMargin) {
var element = this[0];
var jElement = $(element);
var totalHeight = element.scrollHeight; //includes padding
//totalHeight += parseInt(jElement.css("border-top-width"), 10) + parseInt(jElement.css("border-bottom-width"), 10);
//if(includeMargin) totalHeight += parseInt(jElement.css("margin-top"), 10) + parseInt(jElement.css("margin-bottom"), 10);
totalHeight += jElement.outerHeight(includeMargin) - jElement.innerHeight();
return totalHeight;
};

function ShowVideo(title, content, link){
	HideVideo();
	var wBlackout         = $('<div class="wBlackout"></div>').appendTo("body");
	var wVideoOverlay     = $('<div class="wVideoOverlay" style="display: none;"></div>').appendTo("body");
	var wVideoPanel       = $('<div class="wVideoPanel" style="width: 640px;"></div>').appendTo(wVideoOverlay);
	var closeVideoPanel   = $('<a href="#" class="closeVideoPanel" ></a>').appendTo(wVideoPanel);
	var wVideoPlace       = $('<div class="wVideoPlace" style="width: 640px;height:390px;"></div>').appendTo(wVideoPanel);
	var iframe            = $('<iframe width="640" height="390" src="' + link + '" frameborder="0" allowfullscreen="allowfullscreen"></iframe>').appendTo(wVideoPlace);
	var header            = $("<h3>" + title + "</h3>").appendTo(wVideoPanel);
	var contenta          = $('<p>' + content + '</p>').appendTo(wVideoPanel);

	closeVideoPanel.click(HideVideo);
	wBlackout.click(HideVideo);
	wVideoOverlay.click(HideVideo);
	wVideoPanel.click(function() {return false;});

	wVideoOverlay.css("position", "fixed");
	wVideoOverlay.show();
};

function HideVideo(){
	$("body > .wVideoOverlay").hide().remove();
	$("body > .wBlackout").hide().remove();
	return false;
};
