/*
jQuery imageScroller Plugin
(c) 2010 Ivan "The Crazy" Larionov
*/
jQuery.fn.imageScroller = function(params){
	var p = params || {
		next:"buttonNext",
		prev:"buttonPrev",
		frame:"viewerFrame",
		width:100,
		interval:1000,
		child:"img",
		auto:true,
		target:"bigImage",
		titleHolder:"titleHolder"
	};

	var _btnNext = $("#"+ p.next);
	var _btnPrev = $("#"+ p.prev);
	var _imgFrame = $("#"+ p.frame);
	var _targetName = p.target;
	var _interval = p.interval;
	var _titleHolder = $("#" + p.titleHolder);
	if (_interval == undefined) _interval = 3000;
	var _targetName2 = p.target + "_2";
	var _curTarget = false;
	var _target = $("#" + p.target);
	var _curImage = $("#" + p.frame).find("img")[0];
	var _photoCount = $("#" + p.frame).find("img").length;
	var _width = $("#" + p.frame).find("img")[0].width;
	var _child = p.child;
	if (_child == undefined) _child = "img";
	var _auto = p.auto;
	var _nextBtn = "#" + p.nextDescr;
	var _prevBtn = "#" + p.prevDescr;
	var _itv;
	var turned = false;
	
	var turnRight = function(){
		_btnPrev.unbind("click",turnLeft);
		if(_auto) autoStop();
		_imgFrame.css("marginLeft", _width);
		_imgFrame.find(_child+":first").appendTo( _imgFrame );
		_imgFrame.animate( {marginLeft:0}, 'fast', '', function(){
			_imgFrame.css("marginLeft",0);
			if(_auto) autoPlay();
		});
		showBig(_imgFrame.find("img")[0]);
	};
	
	var turnLeft = function(){
		if (turned) return;
		turned = true;
		_btnNext.unbind("click",turnRight);
		if(_auto) autoStop();
		_imgFrame.find(_child+":last").clone().show().prependTo( _imgFrame ).bind("click", previewClick);
		_imgFrame.css("marginLeft", -_width);
		_imgFrame.find(_child+":last").remove();
		_imgFrame.animate( {marginLeft:0}, 'fast' ,'', function(){
			_imgFrame.css("marginLeft", 0);
			turned = false;
			if(_auto) autoPlay(); 
		});
		showBig(_imgFrame.find("img")[0]);
	};
	
	var nextClick = function() {
		if(_auto) {
			autoStop();
			_auto = false;
		}
		turnRight();
	}
	
	var prevClick = function() {
		if(_auto) {
			autoStop();
			_auto = false;
		}
		turnLeft();
	}
	
	_btnNext.css("cursor","pointer").click( nextClick );
	_btnPrev.css("cursor","pointer").click( prevClick );
	
	var autoPlay = function(){
	  _itv = window.setInterval(turnRight, _interval);
	};
	var autoStop = function(){
		window.clearInterval(_itv);
	};
	
	$(_target).attr("src", $(this).attr("bigImg"));
	
	var showBig = function (pre) {
		_curImage = pre;
		$(_titleHolder).html("<a href='/fotoreport?topic=" + $(_curImage).attr("newsid") + "'>" + $(_curImage).attr("title") + "</a>");
		var outName = "#" + _targetName;
		var inName = "#" + _targetName2;
		if (_curTarget) {
			outName = "#" + _targetName2;
			inName = "#" + _targetName;
		}
		$(outName).fadeTo("slow", 0);
		$(outName).css("z-index", 0);
		$(outName).css("position", "absolute");
		$(outName).hide();
		$(inName).attr("src", $(pre).attr("bigImg"));
		$(inName).css("z-index", 10);
		$(inName).fadeTo("slow", 1);
		$(inName).css("position", "relative");
		_curTarget = !_curTarget;
		$(inName).show();
	};
	
	var previewClick = function() {
		if (_auto) {
		    autoStop();
		}
		_auto = false;
		showBig(this);
	}
	
	$(_imgFrame).find("img").css("cursor", "pointer").bind("click", previewClick);
	$(_target).attr("src", $(_curImage).attr("bigImg"));
	$(_titleHolder).html("<a href='/fotoreport?topic=" + $(_curImage).attr("newsid") + "'>" + $(_curImage).attr("title") + "</a>");
	$(_target).parent().append("<img src='' style='display:none; z-index: -10; position: absolute; top:0; left: 0;' id='" + _targetName2 + "'/>");
	$(_prevBtn).css("cursor","pointer").click( nextClick );
	$(_nextBtn).css("cursor","pointer").click( prevClick );
	
	if(_auto) {
		autoPlay();
	}
};

