﻿
(function( $ ){

  $.fn.slider = function( options ) {  

    var slideCount = 1;

    var h_navWidth = 131;
    var v_navHeight = 193;
    
    if (options.type == "small") {
        v_navHeight = 115;
    }
    
    var mySlider = $(this);

    var settings = $.extend( {}, options);

    // position the slider
    $(mySlider).css("width", options.width + "px");
    $(mySlider).css("height", options.height + "px");
    $(mySlider).css("left", options.left + "px");
    $(mySlider).css("top", options.top + "px");
    
    // set the nav positions
    if (options.orientation == "h") {
    
        $(".slider_links .prev").css("width", h_navWidth + "px");
        $(".slider_links .next").css("width", h_navWidth + "px");
        $(".slider_links .prev").css("height", options.height + "px");
        $(".slider_links .next").css("height", options.height + "px");
        
        $(".slider_links .prev").css("left", options.left + "px");
        $(".slider_links .prev").css("top", options.top + "px");  
        $(".slider_links .next").css("left", options.top + options.width - h_navWidth + options.offset1 + "px");
        $(".slider_links .next").css("top", options.top  + "px");
        
        $(".slider_links_bg .prev").css("width", h_navWidth + "px");
        $(".slider_links_bg .next").css("width", h_navWidth + "px");
        $(".slider_links_bg .prev").css("height", options.height + "px");
        $(".slider_links_bg .next").css("height", options.height + "px");
        
        $(".slider_links_bg .prev").css("left", options.left + "px");
        $(".slider_links_bg .prev").css("top", options.top + "px");  
        $(".slider_links_bg .next").css("left", options.top + options.width - h_navWidth + options.offset1 + "px");
        $(".slider_links_bg .next").css("top", options.top  + "px");
        
    }
    else {
    
        $(".slider_links .prev").css("width", options.width + "px");
        $(".slider_links .next").css("width", options.width + "px");
        $(".slider_links .prev").css("height", v_navHeight + "px");
        $(".slider_links .next").css("height", v_navHeight + "px");
        
        $(".slider_links .prev").css("left", options.left + "px");
        $(".slider_links .prev").css("top", options.top + "px");  
        $(".slider_links .next").css("top", options.top + options.height - v_navHeight + "px");
        $(".slider_links .next").css("left", options.left  + "px");
        
        $(".slider_links_bg .prev").css("width", options.width + "px");
        $(".slider_links_bg .next").css("width", options.width + "px");
        $(".slider_links_bg .prev").css("height", v_navHeight + "px");
        $(".slider_links_bg .next").css("height", v_navHeight + "px");
        
        $(".slider_links_bg .prev").css("left", options.left + "px");
        $(".slider_links_bg .prev").css("top", options.top + "px");
        $(".slider_links_bg .next").css("top", options.top + options.height - v_navHeight + "px");
        $(".slider_links_bg .next").css("left", options.left  + "px");
        
    }
    
    
    //add the slider image
    if (options.orientation == "h") {
        $(mySlider).html("<div id=\"peeker\" style=\"width : " + (parseInt(options.width) - parseInt(options.peekhide)) + "px; height: " + options.height + "px\"><div id=\"slideme\"><img width=\"" + options.slidemelength + "\" height=\"" + options.height + "\" src=\"" + options.slideme + "\" alt=\"\" /></div></div>");
    }
    else {
        $(mySlider).html("<div id=\"slideme\"><img width=\"" + options.width + "\" height=\"" + options.slidemelength + "\" src=\"" + options.slideme + "\" alt=\"\" /></div>");
    }
    

    // bind the actions
    $('.slider_links .next').click(function() {

        if (options.orientation == "h") {
        
                    // check looping
            var leftPos = Math.abs($("#slideme").position().left);
            if (leftPos + options.width + options.slideperclick > options.slidemelength ){
                   slideCount = slideCount + 1;
                   $('#slideme').css("width", options.slidemelength * slideCount + "px");
                   $('#slideme').append("<img width=\"" + options.slidemelength + "\" height=\"" + options.height + "\" src=\"" + options.slideme + "\" alt=\"\" />");
            }


            var slide = $('#slideme').css("left").replace("px", "");
            if (slide == 0) {
                slide = "-" + parseInt(options.slideperclick);
            }
            else {
                slide = slide - parseInt(options.slideperclick);
            }

            $('#slideme').animate({
                left: slide
            }, {
                duration: 350,
                easing: 'easeInOutQuad',
                complete: function() {

                }
            });

        }
        
        else {

            var slide = $('#slideme').css("top").replace("px", "");
            if (slide == 0) {
                slide = "-" + parseInt(options.slideperclick);
            }
            else {
                slide = slide - parseInt(options.slideperclick);
            }

            $('#slideme').animate({
                top: slide
            }, {
                duration: 350,
                easing: 'easeInOutQuad',
                complete: function() {
                    // check looping
                    var topPos = Math.abs($("#slideme").position().top);
                    if (topPos + options.height + options.slideperclick > options.slidemelength ){
                           slideCount = slideCount + 1;
                           $('#slideme').css("height", options.slidemelength * slideCount + "px");
                           $('#slideme').append("<img width=\"" + options.width + "\" height=\"" + options.slidemelength + "\" src=\"" + options.slideme + "\" alt=\"\" />");
                    }
                }
            });

        }
        
    });
    
    $('.slider_links .prev').click(function() {

        if (options.orientation == "h") {

            var leftPos = Math.abs($("#slideme").position().left);
            
            if (leftPos == 0 ){
                   slideCount = slideCount + 1;
                   $('#slideme').css("width", options.slidemelength * slideCount + "px");
                   $('#slideme').append("<img width=\"" + options.slidemelength + "\" height=\"" + options.height + "\" src=\"" + options.slideme + "\" alt=\"\" />");
                   $('#slideme').css("left", "-" + options.slidemelength + "px");
            }

            var slide = 0;

            slide = $('#slideme').css("left").replace("px", "");
            if (slide == 0) {
                slide = parseInt(options.slideperclick);
            }
            else {
                slide = parseInt(slide) +  parseInt(options.slideperclick)
            }

            $('#slideme').animate({
                left: slide
            }, {
                duration: 350,
                easing: 'easeInOutQuad',
                complete: function() {

                }
            });
        
        }
        else {
        
            var topPos = Math.abs($("#slideme").position().top);
            
            if (topPos == 0){
                   slideCount = slideCount + 1;
                   $('#slideme').css("height", options.slidemelength * slideCount + "px");
                   $('#slideme').append("<img width=\"" + options.width + "\" height=\"" + options.slidemelength + "\" src=\"" + options.slideme + "\" alt=\"\" />");
                   $('#slideme').css("top", "-" + options.slidemelength + "px");
            }

            var slide = 0;

            slide = $('#slideme').css("top").replace("px", "");
            if (slide == 0) {
                slide = parseInt(options.slideperclick);
            }
            else {
                slide = parseInt(slide) +  parseInt(options.slideperclick)
            }

            $('#slideme').animate({
                top: slide
            }, {
                duration: 350,
                easing: 'easeInOutQuad',
                complete: function() {

                }
            });
            
        }
        
    });
    

    
  };
})( jQuery );
