try {
  document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}

var CGHelpers = {
	createClickableLinks: function(data) {
		var aString = data.aString;
	    return aString
	    .replace(/(ftp|http|https|file):\/\/[\S]+(\b|$)/gim,
	'<a href="$&">$&</a>')
	    .replace(/([^\/])(www[\S]+(\b|$))/gim,
	'$1<a href="http://$2">$2</a>');
	},
	isEmail: function(data) {
		var self = this;
		var aString = data.aString;	
		return aString.match(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	},
	shuffleArray: function(data) {
		var myArray = data.anArray;
		var i = myArray.length;
		if ( i == 0 ) return false;
		while ( --i ) {
			var j = Math.floor( Math.random() * ( i + 1 ) );
			var tempi = myArray[i];
			var tempj = myArray[j];
			myArray[i] = tempj;
			myArray[j] = tempi;
		}
	},
	cleanText: function(data) {
		var someText = data.text;
		someText = someText.replace(/\>/gi, "&gt;")
		someText = someText.replace(/\</gi, "&lt;")
		return someText;
	}
}

$(document).ready( function() {
	
	$("#cpmstar_anchor_close a").click( function() {
		if('BackCompat'==document.compatMode&&/msie/i.test(navigator.userAgent)||/msie 6/i.test(navigator.userAgent)){document.getElementById('cpmstar_anchor').outerHTML='';}else{var t=1*(document.getElementById('cpmstar_anchor_slide').style.top.replace('px',''));t1A=new Tween(document.getElementById('cpmstar_anchor_slide').style,'top',Tween.regularEaseOut,t,0,1,'px');t1A.start();}return false;
	});

	// Here we load in the Big Fish affliate games
	(function() {

		// Google outbound link tracking
		var googleAnalyticsCode = "UA-13163340-1";
		var pageTracker = "";
		var trackingFunction = function() {};
		
		setTimeout( function() {
			(function() {
				if (_gat) {
					pageTracker = _gat._getTracker(googleAnalyticsCode);
					pageTracker._trackPageview();
					
					trackingFunction = function(link, category, action) {
						try {
							var pageTracker=_gat._getTracker(googleAnalyticsCode);
							pageTracker._trackEvent(category, action);
							setTimeout('document.location = "' + link.href + '"', 100)
						} catch(err) {}
					}
				}
				else {
					var thisFunc = arguments.callee;
					setTimeout( function() {
						thisFunc();
					},10);	
				}
			})();
		},500);

		var userOSAgent = navigator.userAgent.toLowerCase();
		var isMac =  (userOSAgent.indexOf("mac") != -1);

		//isMac = false;
		var newGamesDataUrl = (isMac) ? "/ajax-new-bfg-mac-games/" : "/ajax-new-bfg-pc-games/";
		var topGamesDataUrl = (isMac) ? "/ajax-top-bfg-mac-games/" : "/ajax-top-bfg-pc-games/";
		var compatibilityText = (isMac) ? "Mac OSX compatible" : "Windows compatible";
		var affiliateStandardGameContentBlocks = $(".affiliate-game-content-standard").get();
		var affiliateTopGameContentBlocks = $(".affiliate-top-game-content").get();
		
		if (affiliateStandardGameContentBlocks.length > 0) {
			$.get(newGamesDataUrl,{}, function(xml) {
				var gameData = $(xml).find("item");
				CGHelpers.shuffleArray({ anArray: gameData });
				var counter = 0;
				while (affiliateStandardGameContentBlocks[counter] && gameData[counter]) {
					var thisBlock = affiliateStandardGameContentBlocks[counter];
					var thisGameData = gameData[counter];
					var gameTitle = $(thisGameData).find("gameName").text();
					var gameLink = $(thisGameData).find("gameLink").text();
					var gameDescriptionContent = $(thisGameData).find("description").text();
					var gameDescription = gameDescriptionContent.split("</a>")[1]; 
					var gameImage = gameDescriptionContent.split('src="')[1]; 
					gameImage = gameImage.split('"')[0];
					gameImage = gameImage.replace("80x80","feature");
					var insertHTML = '<div class="cg-panel-1 cg-panel-1-content-width cg-panel-downloadable-game">';
					insertHTML += '<div class="cg-p1-inner-1">';
					insertHTML += '<div class="cg-panel-1-band">Download</div>';
					insertHTML += '<div class="cg-p1-inner-2">';
					insertHTML += '<h3>'+gameTitle+'</h3>	';				
					insertHTML += '<div class="cg-downloadable-content">';
					insertHTML += '<div class="cg-dc-image-holder">';
					insertHTML += '<img src="'+gameImage+'" alt="'+gameTitle+'"/>';
					insertHTML += '<div class="cg-dc-image-mask"></div>';
					insertHTML += '</div>';
					insertHTML += '<p>'+gameDescription+'</p>';
					insertHTML += '<a class="cg-dc-button" href="'+gameLink+'">Download free demo</a>';
					insertHTML += '<span>'+compatibilityText+'</span>';
					insertHTML += '</div>';
					insertHTML += '</div>';
					insertHTML += '</div>';
					insertHTML += '</div>';
					$(thisBlock).append(insertHTML);
					$(thisBlock).find("a.cg-dc-button").click( function() {
						trackingFunction(this, 'Outbound Links', 'bigfishgames.com');
						return false;
					});
					counter++;
				}
			})			
		}
				
		if (affiliateTopGameContentBlocks.length > 0) {
			$.get(topGamesDataUrl,{}, function(xml) {
				var gameData = $(xml).find("item");
				CGHelpers.shuffleArray({ anArray: gameData });
				var counter = 0;
				while (affiliateTopGameContentBlocks[counter] && gameData[counter]) {
					var thisBlock = affiliateTopGameContentBlocks[counter];
					var thisGameData = gameData[counter];
					var gameTitle = $(thisGameData).find("gameName").text();
					var gameLink = $(thisGameData).find("gameLink").text();
					var gameDescriptionContent = $(thisGameData).find("description").text();
					var gameDescription = gameDescriptionContent.split("</a>")[1]; 
					var gameImage = gameDescriptionContent.split('src="')[1]; 
					gameImage = gameImage.split('"')[0];
					gameImage = gameImage.replace("80x80","feature");
					
					var insertHTML = '<div class="cg-panel-2">';
					insertHTML += '<div class="cg-p2-inner">';
					insertHTML += '<h4>Top download</h4>';
					insertHTML += '<div class="cg-p2-image-holder">';
					insertHTML += '<div class="cg-image-wrapper">';
					insertHTML += '<img src="'+gameImage+'" alt="'+gameTitle+'" />';
					insertHTML += '</div>';
					insertHTML += '<a href="'+gameLink+'" class="cg-image-mask"></a>';
					insertHTML += '</div>';
					insertHTML += '<h3>'+gameTitle+'</h3>';
					insertHTML += '<p>'+gameDescription+'</p>';
					insertHTML += '<span>'+compatibilityText+'</span>';
					insertHTML += '<a class="cg-p2-button" href="'+gameLink+'">Download free demo</a>';
					insertHTML += '</div>';
					insertHTML += '</div>';
					$(thisBlock).append(insertHTML);
					$(thisBlock).find("a").click( function() {
						trackingFunction(this, 'Outbound Links', 'bigfishgames.com');
						return false;
					});
					counter++;
				}
			})			
		}
	}());

	var Maths = {
		random: function() {
			return 5;	
		}	
	}
	
	$(".cg-newsletter-subscription").each( function() {
		var domEmailField = $(this).find("input:eq(0)").get()[0];
		var domSubmitButton = $(this).find(".cg-button").get()[0];
		var currentlySubmitting = false;
		var path = "/data-add-subscriber/";
		var domRoot = this;
		$(domSubmitButton).click( function() {
			if (currentlySubmitting) {
				return;	
			}
			currentlySubmitting = true;
			var emailAddress = $(domEmailField).val();
			if (CGHelpers.isEmail({ aString: emailAddress})) {
				$.post(path,{
					"fields[0][email]": emailAddress, 
					"action[add-subscriber]": "Submit"
				}, function(data) {
					$(domRoot).html("<p>Thanks! You will now start receiving our email newsletter.</p>");
					//currentlySubmitting = false;
				});
			}
			else {
				currentlySubmitting = false;
			}
			return false;
		});
		
	});
	
	$(".cg-comment-content").each( function() {
		var thisText = $(this).text();
		$(this).html(CGHelpers.createClickableLinks({aString: thisText }));
	});
	
	
	$(".cg-add-comment").each( function() {
		var domNameField = $(this).find("input:eq(0)").get()[0];
		var domWebsiteField = $(this).find("input:eq(1)").get()[0];
		var domBodyField = $(this).find("textarea:eq(0)").get()[0];
		var domSubmitButton = $(this).find(".cg-comment-submit").get()[0];
		var path = "/data-add-comment/";
		var currentlySubmitting = false;
		var articleId = $(".cg-data-article-id").text();
		var pageUrl = window.location.toString().split("#")[0];
		pageUrl = pageUrl.replace("http://","");
		var urlRoot = pageUrl.split("/")[0];
		pageUrl = pageUrl.replace(urlRoot,"");

		$(domSubmitButton).click( function() {
			if (currentlySubmitting) {
				return;	
			}
			currentlySubmitting = true;
			var nameText = $(domNameField).val();
			nameText = (nameText) ? nameText : "Annonymous";
			var website = $(domWebsiteField).val();
			if (website && website.indexOf("http://") != -1) {
				website = website.replace("http://","");
			}
			var bodyText = $(domBodyField).val();		

			nameText = CGHelpers.cleanText({ text: nameText });
			bodyText = CGHelpers.cleanText({ text: bodyText });
			website = CGHelpers.cleanText({ text: website });
			
			if (bodyText) {
				$.post(path,{
					"fields[0][name]": nameText, 
					"test1": nameText, 
					"test2": Maths.random(), 
					"fields[0][website]": website,
					"fields[0][content]": bodyText,
					"fields[0][article]": articleId,
					"cachelite[flush-url]": pageUrl,
					"action[add-comment]": "Submit"
				}, function(data) {
					window.location.hash = "#show-comments";
					window.location.reload();
					currentlySubmitting = false;
					$(domBodyField).val("");
				});
				
			}
			else {
				currentlySubmitting = false;
			}
			return false;
		});
	});
	
	return;
	
	// Don't run the following
	
	if ($(".cg-article-list-item").length ==0 && window.location.toString().indexOf("articles") != -1) {
		$(".cg-article-content h3").each( function() {
			
			var domListItem = $('<div class="cg-article-list-item"></div>');
			
			
			var currentSibling = $(this).next().get()[0];

			while (currentSibling && currentSibling.nodeName != 'H3' && currentSibling.nodeName != 'BR' ) {
				$(domListItem).append(currentSibling);
				currentSibling = $(this).next().get()[0];
			}
			$(this).before(domListItem);

			$(domListItem).prepend(this);
			
		});
		
	
		$(".cg-article-content .cg-article-list-item").each( function() {
			var domImageSrc = $(this).find("img").attr("src");
			var domImageTitle = $(this).find("img").attr("alt");
			var linkUrl = $(this).find("a.link").attr("href");
			var linkText = $(this).find("a.link").attr("text");
			var captionHTML = $(this).find("p.caption").html();
			var position = $(this).find("h3 span").text()[0];
			var title = $(this).find("h3").html().split("</span> ")[1];
			if (!title) {
				 title = $(this).find("h3").html().split("</span>")[1];
			}
			title = title.split("</h3>")[0];
			$(this).find(".image-block-2").remove();
			$(this).find("h3").remove();
			
			var insertHTML= '<div class="cg-image-block-2">';
			insertHTML += '<img src="'+domImageSrc+'" alt="'+domImageTitle+'" />';
			insertHTML += '<div class="cg-ib2-mask"></div>';
			insertHTML += '<a class="cg-link" href="'+linkUrl+'">'+linkText+'</a>';
			if (captionHTML) {
				insertHTML += '<p class="cg-caption">'+captionHTML+'</p>';
			}
			insertHTML += '</div>';
			insertHTML += '<h3><span>'+position+'</span>'+title+'</h3>';

			$(this).prepend(insertHTML);
			
		}); 
		

		$(".cg-article-content .image-block-2").each( function() {
			var domImageSrc = $(this).find("img").attr("src");
			var domImageTitle = $(this).find("img").attr("alt");
			var linkUrl = $(this).find("a.link").attr("href");
			var linkText = $(this).find("a.link").attr("text");
			var captionHTML = $(this).find("p.caption").html();
			
			var insertHTML= '<div class="cg-article-list-item cg-article-list-item-image-only"><div class="cg-image-block-2">';
			insertHTML += '<img src="'+domImageSrc+'" alt="'+domImageTitle+'" />';
			insertHTML += '<div class="cg-ib2-mask"></div>';
			insertHTML += '<a class="cg-link" href="'+linkUrl+'">'+linkText+'</a>';
			if (captionHTML) {
				insertHTML += '<p class="cg-caption">'+captionHTML+'</p>';
			}
			insertHTML += '</div></div>';

			$(this).before(insertHTML);
			$(this).remove();
			
		}); 

		alert( $(".cg-article-content").html() );
	}
});
