(function($) {
	$.fn.createFullEpisodes = function(dataFile, options) {
		var feStruct = new jQuery.fullEpisodeStructure(options);
		var oScript = document.createElement('script');
		oScript.type = 'text/javascript';
		oScript.src = dataFile;
		oScript.language = 'javascript';
		if (document.getElementsByTagName('head')[0]) { document.getElementsByTagName('head')[0].appendChild(oScript); } else { document.body.appendChild(oScript); }
		oScript._this = this;
		oScript.onload = function() { feStruct.scriptReady(this._this); }
		oScript.onreadystatechange = function() {
			if ( oScript.readyState == 'loaded' || oScript.readyState == 'complete' ) {
				feStruct.scriptReady(this._this);
			}
		};
	};
})(jQuery);

jQuery.fullEpisodeStructure = function(options) {
	var defaults = {
		numPerRow: 4
	};
	this.options = $.extend(defaults, options);
};
jQuery.extend(jQuery.fullEpisodeStructure, {
	prototype: {
		createStructure: function(container, title, image, text, href1, href2) {
			var w = $(container).width() / this.options.numPerRow;
			var oWrap = document.createElement('div');
			$(oWrap).addClass(this.options.episodeWrapClassName);
			$(container).append(oWrap);
			var ml = $(oWrap).css('margin-left')
			var pl = $(oWrap).css('padding-left')
			if ( !document.all ) { w = w - (parseInt(ml) + parseInt(pl)); }
			$(oWrap).css('width', w + 'px');
			
			var oH3 = document.createElement('h3');
			$(oH3).text(title);
			$(oWrap).append(oH3);
			
			var oImageWrap = document.createElement('div');
			$(oWrap).append(oImageWrap);
			
			//var oImage = document.createElement('img');
			//$(oImage).attr('src', image).attr('alt', title);
			//$(oImageWrap).append(oImage);
			
			var newa=document.createElement('a');
			//newa.className=previewlinkclass;
			var newimg=document.createElement('img');
			newimg.src=image;
			//newimg.alt=previewalternative;
			//newimg.className=previewimageclass;
			newa.appendChild(newimg);
			newa.href=href1;
			$(oImageWrap).append(newa);
			
			/*var oH4 = document.createElement('h4');
			$(oH4).text('About The Show');
			$(oWrap).append(oH4);*/
			
			var oP = document.createElement('p');
			$(oP).text(text);
			$(oWrap).append(oP);
			
			var oA1 = document.createElement('a');
			$(oA1).attr('href', href1).text('View Full Episodes >>');
			$(oWrap).append(oA1);
			
			if (href2 != "") {
				var oA2 = document.createElement('a');
				$(oA2).attr('href', href2).text('Show Page >>');
				$(oWrap).append(oA2);
			}
		},
		scriptReady: function(obj) {
			var self = this;
			return obj.each(function(i) {
				var obj = this;
				for (x in feData) {
					var title = feData[x].title;
					var image = feData[x].image;
					var text = feData[x].text;
					var href1 = feData[x].href1;
					var href2 = feData[x].href2;
					self.createStructure(obj, title, image, text, href1, href2);
				}
			});
		}
	}
});


(function($) {
	$.fn.pupList = function(options) {
		var plCreator = new jQuery.pupListCreator(options);
		var oScript = document.createElement('script');
		oScript.type = 'text/javascript';
		oScript.src = 'http://common.scrippsnetworks.com/common/pup/pup.js';
		oScript.language = 'javascript';
		if (document.getElementsByTagName('head')[0]) { document.getElementsByTagName('head')[0].appendChild(oScript); } else { document.body.appendChild(oScript); }
		oScript._this = this;
		oScript.onload = function() { plCreator.scriptReady(this._this); }
		oScript.onreadystatechange = function() {
			if ( oScript.readyState == 'loaded' || oScript.readyState == 'complete' ) {
				plCreator.scriptReady(this._this);
			}
		};
	};
})(jQuery);

jQuery.pupListCreator = function(options) {
	var defaults = {
		highlightClassName: 'highlight',
		selectedClassName: 'selected',
		pupSiteID: 'fine',
		pupAutoPlay: 'false',
		pupLCDivName: 'ad_300_250',
		pupInitNum: -1
	};
	this.options = $.extend(defaults, options);
};
jQuery.extend(jQuery.pupListCreator, {
	prototype: {
		scriptReady: function(obj) {
			var self = this;
			return obj.each(function(i) {
				/* get options.pupInitNum if it's not supplied then get the first LI's ID and use that */
				var allLI = $(obj).get(0).getElementsByTagName('li');
				var initialNum = 0;
				if ( self.options.pupInitNum == -1 ) {
					var num = parseInt($(allLI[0]).attr('id'));
					if ( !isNaN(num) ) {
						initialNum = parseInt($(allLI[0]).attr('id'));
					}
				} else {
					initialNum = self.options.pupInitNum;
				}
				if ( initialNum == 0 ) { return; }
				var obj = this;
				obj.pupObj = new sniPUP("swfWrap"); 
				obj.pupObj.channelID = initialNum;
				obj.pupObj.autoPlay = self.options.pupAutoPlay.toString();
				if ( self.options.pupLCDivName != '' ) { obj.pupObj.lcDivName = self.options.pupLCDivName; }
				if ( self.options.pupSiteID != '' ) { obj.pupObj.siteID = self.options.pupSiteID; }
				obj.pupObj.write();
				if ( obj.tagName.toLowerCase() != 'ul') { return; }
				/* setup handles for the LI's */
				for ( var i=0; i<allLI.length; i++ ) {
					var child = allLI[i];
					var _initNum = parseInt($(child).attr('id'));
					if ( _initNum == initialNum ) {
						$(child).addClass(self.options.selectedClassName);
						
					}
					$(child).bind('mouseover', function() {
						if ( $(this).attr('class') == self.options.selectedClassName) { return; }
						$(this).toggleClass(self.options.highlightClassName);
					}).bind('mouseout', function() {
						$(this).toggleClass(self.options.highlightClassName);
					}).bind('click', function() {
						for ( var j=0; j<obj.childNodes.length; j++ ) { if ( obj.childNodes[j].nodeType == 1 ) { if ( obj.childNodes[j].tagName.toLowerCase() == 'li' ) { $(obj.childNodes[j]).removeClass(self.options.selectedClassName).removeClass(self.options.highlightClassName); } } }
						$(this).addClass(self.options.selectedClassName);
						var channelID = parseInt($(this).attr('id'));
						if ( isNaN(channelID) ) { return; }
						obj.pupObj.channelID = channelID;
						obj.pupObj.write();
						return false;
					});
				}
			});
		}
	}
});