/*
 *	faded 0.3.2 - jQuery plugin
 *	written by Nathan Searles	
 *	http://nathansearles.com/faded/
 *
 *	Copyright (c) 2010 Nathan Searles (http://nathansearles.com/)
 *	Dual licensed under the MIT (MIT-LICENSE.txt)
 *	and GPL (GPL-LICENSE.txt) licenses.
 *
 *	Built for jQuery library
 *	http://jquery.com
 *	Compatible with jQuery 1.3.2+
 *
 */
if(typeof jQuery != "undefined") {
	jQuery(function($) {
		$.fn.extend({
			faded: function(options) {
				var settings = $.extend({}, $.fn.faded.defaults, options);
				return this.each(
					function() {
						if($.fn.jquery < "1.3.1") {return;}
						var elem = $(this);
						var $t = $(this);
						var $c = $t.children(":nth-child(1)");
						var o = $.metadata ? $.extend({}, settings, $t.metadata()) : settings;
						var total = $c.children().size();
						var next = 0, prev = 0, number = 0, currentitem = 0, restart = 0, restartinterval = 0,PausedButtonClicked=false;
						var loaded,active,imgSrc,clicked,current;
												
						//o.autoplay= 300;
						//o.speed =300;

						if (o.random) {
							$.fn.reorder = function(callback) {
								function randOrd() { return(Math.round(Math.random())-0.5); }
									return($(this).each(function() {
									var $this = $(this);
									var $children = $this.children();
									var childCount = $children.length;
									if (childCount > 1) {
										$children.hide();
										var indices = new Array();
										for (i=0;i<childCount;i++) { indices[indices.length] = i; }
										indices = indices.sort(randOrd);
										$.each(indices,function(j,k) { 
											var $child = $children.eq(k);
											var $clone = $child.clone(true);
											$clone.show().appendTo($this);
											if (callback !== undefined) {
												callback($child, $clone);
											}
										$child.remove();
									});
									}
								}));
							};
							$c.reorder();
						}
						
						
						
						
						
						
			function stop() {
				// clear interval from stored id
				clearInterval(elem.data('interval'));
				clearInterval(autoplay);
			}

			function pause() {
				if (true) {
					// clear timeout and interval
					clearTimeout(elem.data('pause'));
					clearInterval(elem.data('interval'));
					
					
					//
					clearInterval(autoplay);
					//
					
					// pause slide show for option.pause amount
					restart = setTimeout(function() {
						// clear pause timeout
						clearTimeout(elem.data('pause'));
						// start play interval after pause
						autoplay = setInterval(	function(){
							animate("next");
						},o.autoplay);
						// store play interval
						elem.data('interval',autoplay );
					},o.autorestart);
					// store pause interval
					elem.data('pause',restart );
				} else {
					// if no pause, just stop
					stop();
				}
			}

			/*			
						function pause() {
							clearInterval(autoplay);
							clearTimeout(restart);
							restart = setTimeout(function()
							 {
								autoplay = setInterval(function()
								{
									animate("next");
								},o.autoplay);
								
							},o.autorestart);			
						}				*/
						$c.css({position:"relative"});			
						$c.children().css({
							position:"absolute",
							top: 0, 
							left: 0,
							zIndex: 0,
							display:"none"
						 });
						 
						 
						if (o.autoheight) {
							$c.animate({height: $c.children(":eq(0)").outerHeight()},o.autoheight);
						}
						if (o.pagination) {
							if (o.autopagination) {
								$t.append("<ul class="+o.pagination+"></ul>");
								$c.children().each(function(){
									$("."+o.pagination+"",$t).append("<li><a rel="+number+" href=\"#\" >"+(number+1)+"</a></li>");
									number++;
								});
							}
							$("."+o.pagination+" li a:eq(0)",$t).parent().addClass("current");
							$("."+o.pagination+" li a",$t).click(function(){
								current = $("."+o.pagination+" li.current a",$t).attr("rel");									
								clicked = $(this).attr("rel");
								if (current != clicked) {animate("pagination",clicked,current);}
								if(o.autoplay)
								{
									if(!PausedButtonClicked)
									{
										pause();
									}
									else
									{
										stop();
									}
								}
								return false;
							});
						}
						if (o.loading&&$c.children()[0].tagName=="IMG") {
							$c.css({background:"url("+o.loadingimg+") no-repeat 50% 50%"});
							imgSrc = $("img:eq(0)",$c).attr("src") + "?" + (new Date()).getTime();
							$("img:eq(0)",$c).attr("src", imgSrc).load(function() {
								$(this).fadeIn(o.speed,function(){
									loaded = true;
								});
							});
						} else {
							$c.children(":eq(0)").fadeIn(o.speed,function(){
								loaded = true;
							});
						}
						if (o.bigtarget) {
							$c.css({"cursor":"pointer"});
							$c.click(function(){
								animate("next");
								if(o.autoplay){
									if (o.autorestart) {
										pause();
									} else {
										clearInterval(autoplay);	
									}
								}
								return false;
							});									
						}			
						/*Added By Eng.Mohammad Ghassan*/
						if(o.PauseOnHover){
							$c.mouseenter(function(){
								if(!PausedButtonClicked)
								{
									stop();
								}
                            });								
                                 
                            $c.mouseleave(function(){     
                               if(!PausedButtonClicked)
                               {
	                               animate("next");
	                               pause();
                               }
                            });
                        }
                        
                        if (o.GeneratePauseAndPlayButtons)
                        {
                                
                                var StartStopContainer = $("#StartStopContainer");
                                //StartStopContainer.addClass('NewsRotator-StopButton');
                                $("#StartStopContainer").css('cursor','hand');
                                $("#StartStopContainer").click(function()
                                {
                                	if(!PausedButtonClicked)
                                    {
                                       stop();
                                       PausedButtonClicked = true;
                                       StartStopContainer.removeClass('NewsRotator-PauseButton');
                                       StartStopContainer.addClass('NewsRotator-PlayButton');
                                	}
                                	else
                                	{
									   animate("next");
                                       pause();
                                       PausedButtonClicked = false;	
                                       StartStopContainer.removeClass('NewsRotator-PlayButton');
                                       StartStopContainer.addClass('NewsRotator-PauseButton');
                                     }
                                });
						}
						/* End Added by Eng. Mohammad Ghassan*/
						if (o.autoplay) {
					
		                    		autoplay = setInterval(function(){
							},o.autoplay);
							pause();
						}
						$("."+o.nextbtn,$t).click(function(){
							animate("next");
							
							if(o.autoplay){
								if (o.autorestart) {
								
									if(!PausedButtonClicked)
										{
											//alert(PausedButtonClicked);
											pause();
										}
								} else {
									//clearInterval(autoplay);	
									stop();
								}
							}
							return false;
						});					
						$("."+o.prevbtn,$t).click(function(){
							animate("prev");
							if(o.autoplay){
								if (o.autorestart) {
									if(!PausedButtonClicked)
										pause();
								} else {
									//clearInterval(autoplay);	
									stop();
								}
							}
							return false;
						});
						function animate(dir,clicked,current){
							if (!active&&loaded) {
								active=true;
								switch(dir) {
									case "next":
										prev = next;
										next = currentitem*1+1;
										if (total === next) { next = 0; }
									break;
									case "prev":
										prev = next;
										next = currentitem*1-1;
										if (next === -1) { next = total-1; }
									break;
									case "pagination":
										next = clicked;
										prev = current;
									break;
								}
								if (o.pagination) {
									$(".pagination li.current",$t).removeClass("current");
									$(".pagination li a:eq("+next+")",$t).parent().addClass("current");
								}
								if (o.crossfade) {
									$c.children(":eq("+next+")").css({zIndex:10}).fadeIn(o.speed,function(){
										$c.children(":eq("+prev+")").css({display:"none",zIndex:0});
										$(this).css({zIndex:0});
										currentitem = next;
										active = false;
									});
								} else {
									$c.children(":eq("+prev+")").fadeOut(o.speed,function(){
										if (o.autoheight) {
											$c.animate({height: $c.children(":eq("+next+")").outerHeight()},o.autoheight,function(){
												$c.children(":eq("+next+")").fadeIn(o.speed);
											});
										} else {
											$c.children(":eq("+next+")").fadeIn(o.speed);
										}
										currentitem = next;
										active = false;
									});
								}
							}
						}
					}
				);
				}
		});
		$.fn.faded.defaults = {
			speed: 300,
			crossfade: false,
			bigtarget: false,
			loading: false,
			autoheight: false,
			pagination: "pagination",
			autopagination: true,
			nextbtn: "next",
			prevbtn: "prev",
			loadingimg: false,
			autoplay: false,
			autorestart: false,
			random: false,
			PauseOnHover : false,
			GeneratePauseAndPlayButtons:false
		};
	});
}



























/*
* faded 0.3.2 - jQuery plugin
* written by Nathan Searles
* http://nathansearles.com/faded/
*
* Copyright (c) 2010 Nathan Searles (http://nathansearles.com/)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* Built for jQuery library
* http://jquery.com
* Compatible with jQuery 1.3.2+
*

if(typeof jQuery != "undefined") {
jQuery(function($) {
$.fn.extend({
faded: function(options) {
var settings = $.extend({}, $.fn.faded.defaults, options);
return this.each(
function() {
if($.fn.jquery < "1.3.1") {return;}
var $t = $(this);
var $c = $t.children(":nth-child(1)");
var o = $.metadata ? $.extend({}, settings, $t.metadata()) : settings;
var total = $c.children().size();
var next = 0, prev = 0, number = 0, currentitem = 0, restart = 0, restartinterval = 0;
var loaded,active,imgSrc,clicked,current;
if (o.random) {
$.fn.reorder = function(callback) {
function randOrd() { return(Math.round(Math.random())-0.5); }
return($(this).each(function() {
var $this = $(this);
var $children = $this.children();
var childCount = $children.length;
if (childCount > 1) {
$children.hide();
var indices = new Array();
for (i=0;i<childCount;i++) { indices[indices.length] = i; }
indices = indices.sort(randOrd);
$.each(indices,function(j,k) {
var $child = $children.eq(k);
var $clone = $child.clone(true);
$clone.show().appendTo($this);
if (callback !== undefined) {
callback($child, $clone);
}
$child.remove();
});
}
}));
};
$c.reorder();
}
function pause() {
clearInterval(autoplay);
clearTimeout(restart);
restart = setTimeout(function() {
autoplay = setInterval(function(){
animate("next");
},o.autoplay);
},o.autorestart);
}
$c.css({position:"relative"});
$c.children().css({
position:"absolute",
top: 0,
left: 0,
zIndex: 0,
display:"none"
});
if (o.autoheight) {
$c.animate({height: $c.children(":eq(0)").outerHeight()},o.autoheight);
}
if (o.pagination) {
if (o.autopagination) {
$t.append("<ul class="+o.pagination+"></ul>");
$c.children().each(function(){
$("."+o.pagination+"",$t).append("<li><a rel="+number+" href=\"#\" >"+(number+1)+"</a></li>");
number++;
});
}
$("."+o.pagination+" li a:eq(0)",$t).parent().addClass("current");
$("."+o.pagination+" li a",$t).click(function(){
current = $("."+o.pagination+" li.current a",$t).attr("rel");
clicked = $(this).attr("rel");
if (current != clicked) {animate("pagination",clicked,current);}
if(o.autoplay){pause();}
return false;
});
}
if (o.loading&&$c.children()[0].tagName=="IMG") {
$c.css({background:"url("+o.loadingimg+") no-repeat 50% 50%"});
imgSrc = $("img:eq(0)",$c).attr("src") + "?" + (new Date()).getTime();
$("img:eq(0)",$c).attr("src", imgSrc).load(function() {
$(this).fadeIn(o.speed,function(){
loaded = true;
});
});
} else {
$c.find(":eq(0)").fadeIn(o.speed,function(){
loaded = true;
});
}
if (o.bigtarget) {
$c.css({"cursor":"pointer"});
$c.click(function(){
animate("next");
if(o.autoplay){
if (o.autorestart) {
pause();
} else {
clearInterval(autoplay);
}
}
return false;
});
}
if (o.autoplay) {
autoplay = setInterval(function(){
animate("next");
},o.autoplay);
pause();
}
$("."+o.nextbtn,$t).click(function(){
animate("next");
if(o.autoplay){
if (o.autorestart) {
pause();
} else {
clearInterval(autoplay);
}
}
return false;
});
$("."+o.prevbtn,$t).click(function(){
animate("prev");
if(o.autoplay){
if (o.autorestart) {
pause();
} else {
clearInterval(autoplay);
}
}
return false;
});
function animate(dir,clicked,current){
if (!active&&loaded) {
active=true;
switch(dir) {
case "next":
prev = next;
next = currentitem*1+1;
if (total === next) { next = 0; }
break;
case "prev":
prev = next;
next = currentitem*1-1;
if (next === -1) { next = total-1; }
break;
case "pagination":
next = clicked;
prev = current;
break;
}
if (o.pagination) {
$(".pagination li.current",$t).removeClass("current");
$(".pagination li a:eq("+next+")",$t).parent().addClass("current");
}
if (o.crossfade) {
$c.children(":eq("+next+")").css({zIndex:10}).fadeIn(o.speed,function(){
$c.children(":eq("+prev+")").css({display:"none",zIndex:0});
$(this).css({zIndex:0});
currentitem = next;
active = false;
});
} else {
$c.children(":eq("+prev+")").fadeOut(o.speed,function(){
if (o.autoheight) {
$c.animate({height: $c.children(":eq("+next+")").outerHeight()},o.autoheight,function(){
$c.children(":eq("+next+")").fadeIn(o.speed);
});
} else {
$c.children(":eq("+next+")").fadeIn(o.speed);
}
currentitem = next;
active = false;
});
}
}
}
}
);
}
});
$.fn.faded.defaults = {
speed: 300,
crossfade: false,
bigtarget: false,
loading: false,
autoheight: false,
pagination: "pagination",
autopagination: true,
nextbtn: "next",
prevbtn: "prev",
loadingimg: false,
autoplay: false,
autorestart: false,
random: false
};
});
}*/
