var $jq = $;  //jQuery.noConflict();

// IMAGE SCROLLER FOR LARGE IMAGES (IE PROPERTY PAGES)
(function($jq) {
    $jq.fn.imageScroller = function(options) {
        debug(this);
        var opts = $jq.extend({}, $jq.fn.imageScroller.defaults, options);
        return this.each(function() {
            $jqthis = $jq(this);
            var o = $jq.meta ? $jq.extend({}, opts, $jqthis.data()) : opts;
            //SET VARIABLES
            var width = parseInt(o.width);
            var height = parseInt(o.height);
            var controls = parseInt(o.controls);
            var pics = $jq('#scroller_images').find("li").size();
            var total = width * pics - width;
            var stop = '-' + total + 'px';
            var iestop = '-' + (total - 1) + 'px'; // fix for ie
            $jq(this).css({
                width: width + 'px',
                height: height + controls + 'px',
                overflow: 'hidden'
            });

            $jq('#scroller').css({
                position: 'relative',
                height: height + controls + 'px'
            });

            $jq(this).find('ul#scroller_images').css({
                width: width * pics + 'px',
                height: height + 'px',
                position: 'absolute',
                top: '0px',
                left: '0px'
            });

            $jq(this).find('#scroller_controls').css({
                height: o.controls + 'px',
                background: 'url("/static/images/bg_scroller_controls.jpg") repeat-x 0 0',
                position: 'absolute',
                bottom: '0',
                left: '0'
            })


            //ADD THE AMOUNT OF DOTS FOR AMOUNT OF IMAGES

            for ($i = 0; $i < pics; $i++) {
                $jq('#imageTotal').append('<span class="imageCount"></span>')
            }
            //MARK FIRST DOT AS ACTIVE
            $jq('.imageCount:first').addClass('active');

            //SCROLL RIGHT FUNCTION
            function scrollRight() {
                var position = $jq('#scroller_images').css('left');

                if ($jq('#scroller_images').is(':animated')) {
                    return;
                }
                // alert('current pos:' + position + ' stop value:' + stop );
                if (position === stop || position === iestop) {

                    //append the last image in at the front and then remove it
                    appendToScrollerRight();

                    $jq('#scroller_images').css({ 'left': 0 });
                    var imagePlace = $jq('#scroller_images').position();
                    $jq('#scroller_images').animate({ left: -width + imagePlace.left }, 1, function() {
                        $jq('#tempelm').hide();
                        $jq('#scroller_images').css({ 'left': 0 });
                    });

                    $jq('span.active').removeClass('active')
                    $jq('span.imageCount:first').addClass('active');
                    $jq('#scroller_controls span.show').removeClass('show').addClass('hide');
                    $jq('#scroller_controls span:first').removeClass('hide').addClass('show');
                } else {
                    var imagePlace = $jq('#scroller_images').position();
                    $jq('#scroller_images').animate({ left: -width + imagePlace.left }, 1);
                    $jq('span.active').removeClass('active').next('span.imageCount').addClass('active');
                    $jq('#scroller_controls span.show').removeClass('show').addClass('hide').next().addClass('show').removeClass('hide');
                }
            };
            function appendToScrollerRight() {
                if ($jq('#tempelm').length > 0) {
                    $jq('#tempelm').show();
                }
                else {
                    var html = '<li id="tempelm" class="floatLeft new">' + $jq('#scroller_images').children(':last').html() + '</li>';
                    $jq('#scroller_images').prepend(html);
                }
            }
            function appendToScrollerLeft() {
                if ($jq('#tempelm2').length > 0) {
                    $jq('#tempelm2').show();
                }
                else {
                    var html = '<li id="tempelm2" class="floatLeft new">' + $jq('#scroller_images').children(':last').html() + '</li>';
                    $jq('#scroller_images').prepend(html);
                }
            }
            //SCROLL LEFT FUNCTION
            function scrollLeft() {
                var position = $jq('#scroller_images').css('left');

                if ($jq('#scroller_images').is(':animated')) {
                    return;
                }
                if (position == '0px') {
                    appendToScrollerLeft();

                    var imagePlace = $jq('#scroller_images').position();
                    //$jq('#scroller_images').css({ 'left': -(total+width)+(width+700)});
                    $jq('#scroller_images').css({ 'left': -700 });

                    $jq('#scroller_images').animate({ left: -(width) + (imagePlace.left + 700) }, 1, function() {
                        $jq('#tempelm2').hide();
                        $jq('#scroller_images').css({ 'left': -total });
                        $jq('#scroller_controls span.show').addClass('hide').removeClass('show')
                        $jq('#scroller_controls :last').parent().prev().addClass('show').removeClass('hide');
                        $jq('span.active').removeClass('active');
                        $jq('#imageTotal :last').addClass('active');
                    });

                    return false;
                } else {
                    var imagePlace = $jq('#scroller_images').position();
                    $jq('#scroller_images').animate({ left: +width + imagePlace.left }, 1);
                    $jq('span.active').removeClass('active').prev('span.imageCount').addClass('active');
                    $jq('#scroller_controls span.show').removeClass('show').addClass('hide').prev().removeClass('hide').addClass('show');
                }
            }

            //BIND FUNCTIONS TO CLICK EVENT
            $jq('#scrollLeft').bind('click', function(event) {
                scrollLeft();
            });

            $jq('#scrollRight').bind('click', function(event) {
                scrollRight();
            });            

            $jq('#scroller').bind('mouseenter', function() {
                autoScroll(autoscrolling = false);
            });

        });
    };

    // FOR DEBUGGING
    function debug($obj) { };

    $jq.fn.imageScroller.format = function(txt) {
        return '<strong>' + txt + '</strong>';
    };

    // DEFAULTS
    $jq.fn.imageScroller.defaults = {
        width: '700',
        height: '257',
        controls: '40'
    };

})(jQuery);



// IMAGE SCROLLER FOR BOOKS ND PUBLICATIONS

(function($jq) {
    $jq.fn.bookScroller = function(options) {
        debug(this);
        var opts = $jq.extend({}, $jq.fn.imageScroller.defaults, options);
        return this.each(function() {
            $jqthis = $jq(this);
            var o = $jq.meta ? $jq.extend({}, opts, $jqthis.data()) : opts;
            //SET SOME VARIABLES
            var books = $jq('#books_slider').find("li").size();
            var bookSize = $jq('#books_slider').find("li").width();
            var scrollSize = books * bookSize;
            var position = '1';
            var positionEnd = '3';
            //NEED TO DO SOME MATHS HERE TO FIGURE OUT THIS STOP POINT (SHOULDN"T BE ABSOLUTE")
            var total = bookSize * books - bookSize;
            var stop = '-' + total + 'px';
            //var stop = '-1251px';
            var pages = (books / 3);
            var currentPage = 1;
            //alert("books " + books);
            //alert("pages " + pages);

            pages = Math.ceil(pages);

            $jq('ul#books_slider').css({
                width: scrollSize + 200 + 'px'
            });

            if (positionEnd > books)
                positionEnd = books;

            $jq('span.count').html(
					'<span class="position">' +
					position +
					'</span>' +
					'-' +
					'<span class="positionEnd">' +
					positionEnd +
					'</span>' +
					' of ' +
					books +
					' items');

            //SCROLL LEFT FUNCTION
            function scrollLeft() {
                if (currentPage >= pages) {
                    return false;
                }
                var position = $jq('#books_slider').css('left');

                //alert("left");
                currentPage++;
                //alert(currentPage);

                if ($jq('#books_slider').is(':animated')) {
                    return;
                }

                if (currentPage >= pages) {
                    $jq('#slideBooksRight').addClass('no');
                    $jq('#slideBooksLeft').removeClass('no');
                }

                $jq('#slideBooksLeft').removeClass('no');

                var imagePlace = $jq('#books_slider').position();
                var scroll = imagePlace.left - 417;
                $jq('#books_slider').animate({ left: scroll + 'px' }, 1000, function() {
                    if ($jq('#books_slider').css('left') === stop) {
                        $jq('#slideBooksRight').addClass('no');
                    }
                }
					            );
                var pos = parseInt($jq('.position').html());
                //var of = parseInt($jq('.positionEnd').html());
                var of = pos + 3;
                var inc = 3;

                var endPos = currentPage * 3;
                var startPos = endPos - 3 + 1;
                
                if(endPos > books) endPos = books;
                

                $jq('.position').html(startPos);
                $jq('.positionEnd').html(endPos);

                //                if ((of + inc) > books) {
                //                    $jq('.positionEnd').html(books);
                //                }

                //                $jq('.position').html(pos + inc);

                //                //                if ((of + inc) > positionEnd) {
                //                //                    $jq('.positionEnd').html(positionEnd);
                //                //                }
                //                //                else {
                //                $jq('.positionEnd').html(of + inc);
                //                //}

                //                if ((of + inc) > books) {
                //                    $jq('.positionEnd').html(books);
                //                }
            }

            function scrollRight() {
                var position = $jq('#books_slider').css('left');
                //alert("right");
                currentPage--;
                //alert(currentPage);

                if (currentPage == 0) {
                    currentPage = 1;
                    return false;
                }

                if ($jq('#books_slider').is(':animated')) {
                    return;
                }
                if (currentPage == 1) {

                    $jq('#slideBooksLeft').addClass('no');
                    $jq('#slideBooksRight').removeClass('no');
                }
                //return false;
                //} else {
                $jq('#slideBooksRight').removeClass('no');

                var imagePlace = $jq('#books_slider').position();
                var scroll = imagePlace.left + 417;
                $jq('#books_slider').animate({ left: scroll + 'px' }, 1000, function() {
                    if ($jq('#books_slider').css('left') === '0px') {
                        $jq('#slideBooksLeft').addClass('no');
                    }
                });
                var pos = parseInt($jq('.position').html());
                var of = parseInt($jq('.positionEnd').html());
                var inc = 3;


//                $jq('.position').html(pos - inc);
                //                $jq('.positionEnd').html(of - inc);

                var endPos = (currentPage * 3);
                var startPos = (endPos - 3) + 1;

                if (endPos > books) endPos = books;


                $jq('.position').html(startPos);
                $jq('.positionEnd').html(endPos);

                //}
            }

            //BIND FUNCTIONS TO CLICK EVENT
            $jq('#slideBooksLeft').bind('click', function(event) {
                scrollRight();
            });
            $jq('#slideBooksLeft').addClass('no');

            if (pages == 1)
                $jq('#slideBooksRight').addClass('no');

            $jq('#slideBooksRight').bind('click', function(event) {
                scrollLeft();
            });


        });
    };

    // FOR DEBUGGING
    function debug($obj) { };

    $jq.fn.bookScroller.format = function(txt) {
        return '<strong>' + txt + '</strong>';
    };

    // DEFAULTS
    $jq.fn.bookScroller.defaults = {
};

})(jQuery);	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
