/*
LeadRate Marquee V 1.7 BETA
 */
(function($) {
	$.fn.lr = function(options) {
		var settings = {
			lrInterval : 4000,
			lrFadeIn : 1000,
			lrFadeOut : 1000,
			lrcounterClassDefault : 'mqCounter',
			lrcounterClassActive : 'mqCounterActive',
			lrClass : 'marquee',
			lrClassActive : 'mqActive',
			lrLastActive : 'mqLastActive',
			lrNextButton : 'mqArrowHolder_next',
			lrPrevButton : 'mqArrowHolder_prev',
			lrbeforeStartSlide : false,
			lrafterStartSlide : false,
			lrfirstStartSlide : false,
			lrlastStartSlide : false,
			lrnextStartSlide : false,
			lrprevStartSlide : false
		};
		return this.each(function() {
			// If options exist, lets merge them
				// with our default settings
				if (options) {
					$.extend(settings, options);
				}
				// General Variables
				var lrInterval = settings.lrInterval + settings.lrFadeOut
						+ settings.lrFadeIn;
				var lrplaytime;
				var $lrParent;
				var lrClass = settings.lrClass;
				$lrParent = jQuery(this);
				$lrChildren = $lrParent.children();
				$lrfirstChild = $lrParent.children(':first');
				$lrtype = jQuery('.' + settings.lrcounterClassDefault).parent().attr('lrtype');
				var lrtotal = $lrChildren.length;
				var lrfirstSlide = 1;
				var lrlastSlide = lrtotal;
				var lrCurrentSlide = lrfirstSlide;
				var x = 1;
				$lrParent.children().css( {
					listStyle : 'none',
					position : 'absolute',
					top : 0,
					left : 0,
					zIndex : 98
				});
				$lrParent.find('.' + settings.lrClass).each(function() {
					jQuery(this).attr('rel', x);
					x++;
				});
				goToSlide(lrCurrentSlide, $lrtype);
				// next function
				function lrnextiTem() {
					lrCurrentSlide = jQuery('.' + settings.lrClassActive).attr(
							'rel');
					var lrnextindex = parseFloat(lrCurrentSlide) + 1;
					$lrChildren.removeClass(settings.lrClassActive);
					if (lrnextindex > lrtotal) {
						var lrnextindex = 1;
					}
					// next slide callback
					if (typeof settings.lrnextStartSlide == 'function') {
						settings.lrnextStartSlide(lrnextindex, $lrtype, lrClass);
					}
					// call goToSlide function
					goToSlide(lrnextindex, $lrtype);
				}
				;
				// prev function
				function lrpreviTem() {
					lrCurrentSlide = jQuery('.' + settings.lrClassActive).attr(
							'rel');
					var lrpreviTem = parseFloat(lrCurrentSlide) - 1;
					if (lrpreviTem < 1) {
						var lrpreviTem = jQuery('.' + settings.lrClass).last()
								.attr('rel');
					}
					// prev slide callback
					if (typeof settings.lrprevStartSlide == 'function') {
						settings.lrprevStartSlide(lrpreviTem, $lrtype);
					}
					// call goToSlide function
					goToSlide(lrpreviTem, $lrtype);

				}
				;

				function goToSlide(slideIndex, $lrtype) {
					if ($lrtype) {
						if ($lrtype == 1) {
							jQuery('.' + settings.lrcounterClassDefault).not(
									'[rel=' + slideIndex + ']').removeClass(
									settings.lrcounterClassActive).find(
									'img:first').show();
							jQuery(
									'.' + settings.lrcounterClassDefault
											+ '[rel=' + slideIndex + ']').find(
									'img:first').hide();
							jQuery(
									'.' + settings.lrcounterClassDefault
											+ '[rel=' + slideIndex + ']')
									.addClass(settings.lrcounterClassActive)
									.find('img:last').show();
						} else if ($lrtype == 2) {
							jQuery('.' + settings.lrcounterClassDefault).not(
									'[rel=' + slideIndex + ']').removeClass(
									settings.lrcounterClassActive);
							jQuery(
									'.' + settings.lrcounterClassDefault
											+ '[rel=' + slideIndex + ']')
									.addClass(settings.lrcounterClassActive)
									.show();
						} else if ($lrtype == 3) {
							jQuery('.' + settings.lrcounterClassDefault).not(
									'[rel=' + slideIndex + ']').removeClass(
									settings.lrcounterClassActive).hide();
							jQuery(
									'.' + settings.lrcounterClassDefault
											+ '[rel=' + slideIndex + ']')
									.addClass(settings.lrcounterClassActive)
									.show();
						}
					}
					// lrbeforeStartSlide callback function
					if (typeof settings.lrbeforeStartSlide == 'function') {
						settings.lrbeforeStartSlide(slideIndex, $lrtype, lrClass);
					}
					if (slideIndex == lrfirstSlide) {
						if (typeof settings.lrfirstStartSlide == 'function') {
							settings.lrfirstStartSlide(slideIndex, $lrtype, lrClass);
						}
					}
					if (slideIndex == lrlastSlide) {
						if (typeof settings.lrlastStartSlide == 'function') {
							// lrlastStartSlide callback function
							settings.lrlastStartSlide(slideIndex, $lrtype);
						}
					}
					$lrChildren.not('[rel=' + slideIndex + ']').animate( {
						opacity : 0
					}, settings.LrFadeOut).css('zIndex', 98).removeClass(
							settings.lrClassActive);
					// fade in the current slide
					jQuery('.' + settings.lrClass + '[rel=' + slideIndex + ']')
							.css('zIndex', 99).animate( {
								opacity : 1
							},
									settings.LrFadeIn,
									function() {
										// ie fade fix
									if (jQuery.browser.msie) {
										jQuery(
												'.' + settings.lrClass
														+ '[rel=' + slideIndex
														+ ']').get(0).style
												.removeAttribute('filter');
									}
									;
								});
					jQuery('.' + settings.lrClass + '[rel=' + slideIndex + ']')
							.addClass(settings.lrClassActive);
							
					if (typeof settings.lrafterStartSlide == 'function') {
						settings.lrafterStartSlide(slideIndex, $lrtype);
					}

				}
				// Play function

				function lrplay() {
					lrplaytime = setInterval(lrnextiTem, lrInterval);
				}
				;
				// Pause function

				function lrpause() {
					clearTimeout(lrplaytime);
				}
				;
				// Pagination
				jQuery('.' + settings.lrcounterClassDefault).bind(
						'click',
						function(e) {
							var goTo = jQuery(this).attr('rel');
							lrCurrentSlide = jQuery(
									'.' + settings.lrClassActive).attr('rel');
							if (lrCurrentSlide != goTo) {
								lrpause();
								goToSlide(goTo, $lrtype);
								lrplaytime = setInterval(lrnextiTem, lrInterval);
								e.preventDefault();
							} else {
								return false;
							}
						});
				// On click Next button
				jQuery('#' + settings.lrNextButton).bind('click', function(e) {
					lrpause();
					lrnextiTem();
					lrplaytime = setInterval(lrnextiTem, lrInterval);
					e.preventDefault();
				});
				// On click Prev button
				jQuery('#' + settings.lrPrevButton).bind('click', function(e) {
					lrpause();
					lrpreviTem();
					lrplaytime = setInterval(lrnextiTem, lrInterval);
					e.preventDefault();
				});
				// Run!
				lrplay();

			});

	};
})(jQuery);
