(function($) {

    var helper, tTitle, current, oldTitle, tID;

    $.fn.Tooltip = function(settings) {
        settings = $.extend({}, arguments.callee.defaults, settings);

        if (!helper) {
            helper = $('<div id="tooltip"><h3></h3></div>')
            .hide()
            .css({ position: 'absolute', zIndex: "3000" })
            .appendTo('body');

            tTitle = $('h3', helper);
        }

        $(this).filter('[title]')
        .each(function() { this.tSettings = settings; })
        .bind("mouseover", save)
        .bind(settings.event, handle);
        return this;
    };

    function handle(event) {
        if (this.tSettings.delay)
     	   tID = setTimeout(show, this.tSettings.delay);
        else
      	  show();

        if (this.tSettings.track)
        $('body').bind('mousemove', update);
        update(event);
        $(this).bind('mouseout', hide);
    }

    function save() {
        if (this == current || !this.title)
        return;
        current = this;

        var source = $(this),
        settings = this.tSettings;

        var title = oldTitle = source.attr('title');
        source.attr('title', '');
        tTitle.html(title);

        if (settings.extraClass) {
            helper.addClass(settings.extraClass);
        }
    }

    function show() {
        tID = null;
        helper.show();
        update();
    }

    function update(event) {
        if (current == null) {
            $('body').unbind('mousemove', update);
            return;
        }

        var left = helper[0].offsetLeft;
        var top = helper[0].offsetTop;
        if (event) {
            left = event.pageX + 15;
            top = event.pageY + 15;
            helper.css({ left: left + 'px', top: top + 'px' });
        }

        var v = viewport(),
        h = helper[0];
        if (v.x + v.cx < h.offsetLeft + h.offsetWidth) {
            left -= h.offsetWidth + 20;
            helper.css({ left: left + 'px' });
        }
        if (v.y + v.cy < h.offsetTop + h.offsetHeight) {
            top -= h.offsetHeight + 20;
            helper.css({ top: top + 'px' });
        }
    }

    function viewport() {
        var e = document.documentElement || {},
        b = document.body || {},
        w = window;
        function min() {
            var v = Infinity;
            for (var i = 0; i < arguments.length; i++) {
                var n = arguments[i];
                if (n && n < v) v = n;
            }
            return v;
        }
        return {
            x: w.pageXOffset || e.scrollLeft || b.scrollLeft || 0,
            y: w.pageYOffset || e.scrollTop || b.scrollTop || 0,
            cx: min(e.clientWidth, b.clientWidth, w.innerWidth),
            cy: min(e.clientHeight, b.clientHeight, w.innerHeight)
        };
    }

    function hide() {
        if (tID) clearTimeout(tID);
        current = null;
        helper.hide();
        if (this.tSettings.extraClass) helper.removeClass(this.tSettings.extraClass);
        $(this).attr('title', oldTitle).unbind('mouseout', hide);
    }

    $.fn.Tooltip.defaults = { delay: 250, event: "mouseover", track: true, extraClass: null };

})(jQuery);

function scroller(){
	var div = $('div.sc_menu');
	div.css({overflow: 'hidden'});
	if($(".sc_menu li").length>7){
		start_pos = 0;
		last_pos = $(".sc_menu li").length-7;
		iid = $("#pic img.current").attr("iid");
		
		$("ul.sc_menu a").each(function(i){
			if($(this).attr("iid") == iid){ 
				start_pos = (i>3) ? (i-3 > last_pos ? last_pos : i-3) : 0; return; 
			}
		});
		
		div.jCarouselLite({
		    btnNext: "#sc_right",
		    btnPrev: "#sc_left",
		    visible: 7,
		    scroll: 3,
		    circular: false,
		    mouseWheel: true,
		    start: start_pos
		});
		
	} else {
		$("#sc_right, #sc_left").remove();
	}	
}

function show_image(iid){
	var img = $("#pic img.loaded_"+iid);
	
	if(img.attr('src') == $("#pic img.current").attr('src')) return false;	
	
	img.addClass('current loaded');
	
	highlightImgLink(iid);
				
	$("#pic").animate({ 'height': img.height() },
		function(){ img.removeClass('loaded'); }
	);
}

function highlightImgLink(iid){
	$("ul.sc_menu a").removeClass('current');
	$("ul.sc_menu a[iid='"+iid+"']").addClass("current");
}

function findIndex(array, value){
	var ctr = "";
	for (var i=0; i < array.length; i++) {
		if (array.attr('iid') == iid) { return i; }
	}
	return ctr;
};

function init_(){
	highlightImgLink($("#pic img.current").attr("iid"));
	// $("#pic").height($("#pic img.current").height());

/*
	$("ul.sc_menu a").click(function() {
		var wrap = $(this);
		if(wrap.attr('img') == $("#pic img.current").attr('src')) return false;
		var cid = wrap.attr('iid');
		
		$("#pic img.current").removeClass('current');
	
		if(!$("img.loaded_"+cid).size()){
			img = new Image();
			$(img).prependTo("#pic")
				.addClass('loaded_'+cid)
				.attr('src', wrap.attr('img'))
				.attr('alt', wrap.attr('alt'))
				.attr('title', wrap.attr('title'))
			.load(function () {
				show_image(cid);
			})
			.error(function () {});
		} else {
			show_image(cid);
		}
		
		if(jQuery.browser.opera){ show_image(cid); }
		
		return false;
	});
*/
}