/*!
 * 
 * Based loosely on slideViewer 1.2, modified by Aonghus Fraser to support:
 * - Fading in/out
 * - Timer (autoslide)
 * - Pause
 *
 * Examples and documentation at: 
 * http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html
 * 2007-2010 Gian Carlo Mingati
 * Version: 1.2.3 (9-JULY-2010)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * 
 * Requires:
 * jQuery v1.4.1 or later, jquery.plugin.1.0.3 or later [jquery.easing.1.2 - not required]
 * 
 */

 
 // Globals
// Major version of Flash required
var requiredMajorVersion = 7;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor revision of Flash required
var requiredRevision = 0;
 
 // Slides should have src, link & alt


 var FlashSlides = {"slides": [
//	
	
	{"src": "/static/banners/flash/banner1.swf", "alt": "RSM Tenon"},
    {"src": "/static/banners/flash/banner2.swf",  "alt": "RSM Tenon"},
	 {"src": "/static/banners/flash/banner3.swf", "alt": "RSM Tenon"}
	 
	]
};


//var ImageSlides = {"slides": [
////	
//	
//	{"src": "/static/banners/images/banner1.jpg", "link": "http://www.rsmtenon.com", "alt": "RMTenon"},
//	{"src": "/static/banners/images/banner2.jpg", "link": "http://www.rsmtenon.com", "alt": "RMTenon"},
//	{"src": "/static/banners/images/banner3.jpg", "link": "http://www.rsmtenon.com", "alt": "RMTenon"},
//	
//	 
//	]
//};

var ImageSlides = {"slides": [
//	
	
	{"src": "/static/banners/images/banner1.jpg", "alt": "RSM Tenon"},
	{"src": "/static/banners/images/banner2.jpg", "alt": "RSM Tenon"},
	{"src": "/static/banners/images/banner3.jpg", "alt": "RSM Tenon"}
	
	 
	]
};

// Get slides supported by the platform
function GetSlides()
{
	var result;
	// Version check based upon the values entered above in "Globals"
	var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
		
	if(hasReqestedVersion)
	{
		result = FlashSlides;
	}
	else
	{
	    result = ImageSlides;
	}
	return result;
}

// Wrap SWF with an ob ject element
function buildSwfWrapper(strUrl, width, height)
{
                		
		strUrl = strUrl + "?rand=" + Math.floor(Math.random()*1000);
         var strResult = "<obj" + "ect width=\"" + width + "\" height=\"" + height + "\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" id=\"FlashID\">";
	strResult += "		    <param value=\"" + strUrl + "\" name=\"movie\">";
	strResult += "		    <param value=\"high\" name=\"quality\">";
	strResult += "		    <param value=\"transparent\" name=\"wmode\">";
	strResult += "		    <param value=\"6.0.65.0\" name=\"swfversion\">";
	strResult += "		    <!-- This param tag prompts users with Flash Player 6.0 r65 and higher to download the latest version of Flash Player. Delete it if you don't want users to see the prompt. -->";
	strResult += "		    <param value=\"Scripts/expressInstall.swf\" name=\"expressinstall\">";
	strResult += "		    <!--Next obj ect tag is for non-IE browsers. So hide it from IE using IECC. -->";
	strResult += "		    <!--[if !IE]>-->";
	strResult += "		    <obj" + "ect width=\"" + width + "\" height=\"" + height + "\" data=\"" + strUrl + "\" id=\"FlashEmbedded\" type=\"application/x-shockwave-flash\">";
	strResult += "		      <!--<![endif]-->";
	strResult += "		      <param value=\"high\" name=\"quality\">";
	strResult += "		      <param value=\"transparent\" name=\"wmode\">";
	strResult += "		      <param value=\"6.0.65.0\" name=\"swfversion\">";
	strResult += "		      <param value=\"Scripts/expressInstall.swf\" name=\"expressinstall\">";
	strResult += "		      <!--The browser displays the following alternative content for users with Flash Player 6.0 and older. -->";
	strResult += "		      <div>";
	strResult += "			This slide requires a newer version of Adobe Flash Player.";
	strResult += "			<p><a href=\"http://www.adobe.com/go/getflashplayer\" title=\"Get Adobe Flash player\"><img width=\"112\" height=\"33\" src=\"http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif\" id=\"img_PSR_1\" alt=\"Get Adobe Flash player\"></a></p>";
	strResult += "		      </div>";
	strResult += "		      <!--[if !IE]>-->";
	strResult += "		    </obj" + "ect>";
	strResult += "		    <!--<![endif]-->";
	strResult += "		  </obj" + "ect>";

	return strResult;
}
 

var j = 0;

jQuery.fn.slideView = function(settings) {
	settings = jQuery.extend({
		uiBefore: false,
		period: 200,
		asTimer: 8000,  //was 5000
		autoslide: true
	}, settings);	
	
	var PlatformSlides = GetSlides();
	
	return this.each(function(){
		var container = jQuery(this);
		var pos = 1;
		
		var pictWidth = container.width();
		var pictHeight = container.height();
		
		container.find("img.ldrgif").remove();
		container.removeClass("svw").addClass("stripViewer");		
		for(var i = 0; i <= PlatformSlides.slides.length - 1; i++)
		{
			var slide = PlatformSlides.slides[i];

			var strLi = "<li>";			
			if(slide.src.match(/\.png/i) || slide.src.match(/\.jpg/i) || slide.src.match(/\.gif/i))
			{
				strLi += "<img alt=\"" + slide.alt + "\"src=\"" + slide.src + "\"/>";
			}
			if(slide.src.match(/\.swf/i))
			{
				strLi += buildSwfWrapper(slide.src, pictWidth, pictHeight);
			}
			strLi += "</li>";
			slide.html = strLi;
		}
		
		if(strLi != "")
		{
			strLi = "<ul>" + PlatformSlides.slides[0].html + "</ul>";
		}
		container.html(strLi);
		
		var pictEls = PlatformSlides.slides.length; 
		var stripViewerWidth = pictWidth; //(pictWidth + 5)*pictEls;		
		container.find("ul").css("width" , stripViewerWidth);
		container.css("width" , pictWidth);
		container.css("height" , pictHeight);
	
		container.each(function(i) {
    (!settings.uiBefore) ? jQuery(this).after("<div class='stripTransmitter' id='stripTransmitter" + (j) + "'><ul><\/ul><\/div>") : jQuery(this).before("<div class='stripTransmitter' id='stripTransmitter" + (j) + "'><ul><\/ul><\/div>");			
		jQuery("div#stripTransmitter" + j + " ul").append("<li><a href='#'><img id=\"playpause\" src=\"/imports/pause.png\" alt=\"pause\" width=\"16\" height=\"16\"/><\/a><\/li>");	
		for(var i = 0; i <= PlatformSlides.slides.length - 1; i++)
		{
			jQuery("div#stripTransmitter" + j + " ul").append("<li><a title='" + PlatformSlides.slides[i].alt + "' href='#'>"+(i+1)+"<\/a><\/li>");		
		}
		jQuery("div#stripTransmitter" + j + " a").each(function(z) {
			jQuery(this).bind("click", function(){
				if(jQuery(this).find("img").attr("alt") == "pause")
				{	
					jQuery(this).html("<img id=\"playpause\" src=\"/imports/play.png\" alt=\"play\" width=\"16\" height=\"16\"/>");
					jQuery("div#stripTransmitter0").stopTime("asld");
					return;
				}
				if(jQuery(this).find("img").attr("alt") == "play")
				{
					jQuery(this).html("<img id=\"playpause\" src=\"/imports/pause.png\" alt=\"pause\" width=\"16\" height=\"16\"/>");
					jQuery("div#stripTransmitter" + j).everyTime(settings.asTimer, "asld", function() {		
						i = pos;
						jQuery(this).find("a").eq(i).trigger("click");
						(i < pictEls)?	i++ : i=1;	
						pos = i;
					});
					return;
				}
				jQuery(this).addClass("current").parent().parent().find("a").not(jQuery(this)).removeClass("current"); // wow!	
				container.find("ul").fadeTo(settings.period, 0, function(){
					container.find("ul").html(PlatformSlides.slides[z-1].html);
					container.find("ul").fadeTo(settings.period, 1);					
					(z < pictEls)?	i = z+1 : i=1;	
					pos = i;					
					jQuery("div#stripTransmitter0").stopTime("asld");
					jQuery("div#stripTransmitter0").everyTime(settings.asTimer, "asld", function() {		
						i = pos;
						jQuery(this).find("a").eq(i).trigger("click");
						(i < pictEls)?	i++ : i=1;	
						pos = i;
					});
				});
					
				return false;
			});
		});		

		if(settings.autoslide){					
					var i = 1;
					
					jQuery("div#stripTransmitter" + j).everyTime(settings.asTimer, "asld", function() {		
						i = pos;
						jQuery(this).find("a").eq(i).trigger("click");
						(i < pictEls)?	i++ : i=1;	
						pos = i;
					});	
										
					jQuery("div#stripTransmitter" + j + " a").bind("mouseup", function(){
						// Set position of the loop to that manually clicked
						pos = 1 * jQuery(this).html();						
						//jQuery(this).parent().stopTime("asld");
					});
		}
						
		jQuery("div#stripTransmitter" + j).css("width" , pictWidth);
		// highlight the box AFTER the play/pause
		jQuery("div#stripTransmitter" + j).find("a").eq(1).addClass("current");

		});
		//j++;
	});	
	
	
};
