// GJ custompage js
// requires jQuery

var emids= {};

emids.webCam = {};
emids.highlights = [];

// HIGHLIGHTS 7.26a
// example: emids.assignHighlight({ container: 'highlight-container' });
// ********************************************************************************************************************
emids.assignHighlight = function(_settings) {
	if(emids.highlights.length > 0) {
		var rnd = Math.round(Math.random() * (emids.highlights.length - 1));
		var img = emids.highlights[rnd].image;
		var txt = emids.highlights[rnd].text;
		var lnk = emids.highlights[rnd].link;
		var bgcolour = emids.highlights[rnd].bgcolour;
		var txtcolour = emids.highlights[rnd].textcolour;
		$('#' + _settings.container).append('<a href="' + lnk + '"><img src="' + img + '" alt="' + txt + '" /></a><p><a href="'
			+ lnk + '">' + txt + '</a></p>');
		if(bgcolour) $('#' + _settings.container).css("background-color", bgcolour);
		if(txtcolour) $('#' + _settings.container + ' a').css("color", txtcolour);
	}
};

// FEED READER 7.23a
// example: emids.assignFeed({ url: '/cmlink/1.731', container: 'feed-container', headlines: 3, filter: 'posh,match report', descriptions: true, headlinetag: 'h3' });
// optional: headlines, filter, descriptions, headlinetag
// ****************************************************************************************************************************
emids.assignFeed = function(_settings) {
	// remove next line in next ver, temp for for backwards compatability
	if(_settings.headlinestyle) _settings.headlinetag = _settings.headlinestyle;
	$.ajax({
		url: _settings.url,
		type: "GET",
		dataType: ($.browser.msie) ? "text" : "xml",
		cache: false,
		beforeSend: function(xhr) { if(!$.browser.msie) xhr.overrideMimeType('text/xml'); },
		success: function(data, txtStatus) {
			if($.browser.msie) { var xml = new ActiveXObject("Microsoft.XMLDOM"); xml.async = false; xml.loadXML(data); data = xml; };
			var headlinesHTML = '';
			headlinesHTML += (!_settings.headlinetag) ? '<ul class="emids-content-list">' : '';
			var itemCount = 0;
			if(!_settings.headlines) _settings.headlines = 3;
			$(data).find("item").each(function(i) {
				if(itemCount < _settings.headlines) {
					var showThis = false;
					if(_settings.filter) {
						var filters = _settings.filter;
						if(filters.indexOf(",") != -1) {
							filters = filters.split(",");
						} else {
							filters = [filters];
						}
						for(var i = 0; i < filters.length; i++) {
							if( ($(this).find("title").text().toUpperCase().indexOf(filters[i].toUpperCase()) != -1) || ($(this).find("description").text().toUpperCase().indexOf(filters[i].toUpperCase()) != -1) ) showThis = true;
						}
					} else {
						showThis = true;
					}
					if(showThis) {
						if(!_settings.headlinetag) {
							headlinesHTML += '<li><a href="' + $(this).find("link").text() + '">' + $(this).find("title").text() + '</a>' + (_settings.descriptions ? ' - ' + $(this).find("description").text() : '') + '</li>';
						} else {
							var descHTML = "";
							if($(this).find("description").text().indexOf("<p>") == -1) descHTML += "<p>";
							descHTML += $(this).find("description").text();
							if($(this).find("description").text().indexOf("<p>") == -1) descHTML += "</p>";
							headlinesHTML += '<' + _settings.headlinetag + '><a href="' + $(this).find("link").text() + '">' + $(this).find("title").text() + '</a></' + _settings.headlinetag + '>' + (_settings.descriptions ? '' + descHTML + '' : '');
						}
						itemCount++;
					}
				}
			});
			if(!_settings.headlinetag) headlinesHTML += '<li class="emids-more-content"><a href="' + $(data).find("link:first").text() + '">More from this section</a></li>';
			headlinesHTML += (!_settings.headlinetag) ? '</ul>' : '';
			$('#' + _settings.container).append(headlinesHTML);
		},
		error: function(xhr, ts, et) {
			$('#' + _settings.container).append('<p>error loading articles: ' + ts + '</p>');
		}
	});
};

// WEBCAM UPDATER 2.18b
// example: emids.assignWebCam('image-id', 'http://webcamimagelocation...', 20);
// can only be used once per page
// *****************************************************************************
emids.assignWebCam = function(_imgId, _url, _n) {
	emids.webCam = {
		imgId: _imgId,
		url: _url,
		interval: _n * 1000,
		timer: null,
		update: function() {
			var suffix = "";
			var chars = "0123456789abcdef";
			for(var i = 0; i < 16; i++) {
				suffix += chars.charAt(Math.round(Math.random() * 15));
			}
			document.getElementById(emids.webCam.imgId).src = emids.webCam.url + "?i=" + suffix;
			emids.webCam.timer = setTimeout(emids.webCam.update, emids.webCam.interval);
		}
	};
	emids.webCam.update();
};

// SLIDESHOW 3.25a
// example: emids.assignSlideshow({ container: 'slideshow-container', location: '/images/slideshow',
//    imgs: 'img1.jpg#img2.jpg', captions: 'caption one#two' });
// *************************************************************************************************
emids.assignSlideshow = function(_s) {
	_s.imgs = _s.imgs.split("#");
	_s.captions = _s.captions.split("#");
	_s.inTransition = false;
	_s.slide = 0;
	var slideContainer = _s.container + '_slides';
	$('#' + _s.container).append('<div id="' + slideContainer + '" class="emids-slide-container"></div>');
	for(var i = 0; i < _s.imgs.length; i++) {
		$("#" + slideContainer).append('<img class="emids-slide" src="' + _s.location + '/' + _s.imgs[i]
			+ '" alt="' + _s.captions[i] + '" id="' + _s.container + '_slide' + i + '" />');
	}
	$('#' + _s.container).append('<img src="http://www2.granthamtoday.co.uk/gj/images/assets/slideshow/btnprevious.gif" id="' + _s.container + '_btnprevious" class="emids-slideshow-btnprevious" />');
	$('#' + _s.container).append('<img src="http://www2.granthamtoday.co.uk/gj/images/assets/slideshow/btnnext.gif" id="' + _s.container + '_btnnext" class="emids-slideshow-btnnext" />');
	$('#' + _s.container).append('<div id="' + _s.container + '_caption" class="emids-slideshow-caption"><p></p></div>');
	$('#' + _s.container + '_slide0').fadeIn("fast");
	$('#' + _s.container + '_caption').empty().append('<p>' + _s.captions[0] + ' (1 of ' + _s.imgs.length + ')</p>');
	$('#' + _s.container + '_btnnext').click(function() {
		if(!_s.inTransition) {
			_s.inTransition = true;
			$('#' + _s.container + '_slide' + _s.slide).fadeOut("fast", function() {
				var nxt = _s.slide + 1;
				if(nxt > _s.imgs.length - 1) nxt = 0;
				$('#' + _s.container + '_slide' + nxt).fadeIn("fast", function() {
					$('#' + _s.container + '_caption').empty().append('<p>' +  _s.captions[nxt] + ' (' + (nxt + 1) + ' of ' + _s.imgs.length + ')</p>');
					_s.slide = nxt;
					_s.inTransition = false;
				});
			});
		}
	});
	$('#' + _s.container + '_btnprevious').click(function() {
		if(!_s.inTransition) {
			_s.inTransition = true;
			$('#' + _s.container + '_slide' + _s.slide).fadeOut("fast", function() {
				var nxt = _s.slide - 1;
				if(nxt < 0) nxt = _s.imgs.length - 1;
				$('#' + _s.container + '_slide' + nxt).fadeIn("fast", function() {
					$('#' + _s.container + '_caption').empty().append('<p>' +  _s.captions[nxt] + ' (' + (nxt + 1) + ' of ' + _s.imgs.length + ')</p>');
					_s.slide = nxt;
					_s.inTransition = false;
				});
			});
		}
	});
};

// TABS 4.13a
// emids.applyTabs()
// *****************
emids.applyTabs = function() {
	$(".emids-tab-set").find(".emids-tab-content").hide();
	$(".emids-tab-set").find(".emids-tab-content:first").show();
	$(".emids-tab-set").find("ul.emids-tab-headings li:first").addClass("emids-tab-selected");
	$(".emids-tab-set").each(function(i) {
		$(this).find(".emids-tab-content").each(function(j) { $(this).attr("id", "emids-tab_" + i + "_" + j); });
		$(this).find("ul.emids-tab-headings li").each(function(k) {
			$(this).click(function() {
				$(this).parent().parent().find(".emids-tab-content").hide();
				$("#emids-tab_" + i + "_" + k).show();
				$(this).parent().parent().find("ul.emids-tab-headings li").removeClass("emids-tab-selected");
				$(this).addClass("emids-tab-selected");
			});
		});
	});
};
