/*
 * Plugins for jQuery
 */

/*
 * Center plugin
 */
jQuery.fn.center = function(method, height, width)
{
    var w = $(window);

    if(method == 'absolute'){
        this.css("position","absolute");
        if(height){
            this.css("top",(w.height()-this.height())/2+w.scrollTop() + "px");
        }
        if(width){
            this.css("left",(w.width()-this.width())/2+w.scrollLeft() + "px");
        }
    }
    if(method == 'margin'){
        if(height){
            var nheight = (w.height() - this.height())/2;
            nheight = (nheight > 0)? nheight : 0 ;
            this.css("marginTop",nheight + "px");
        }
        if(width){
            var nwidth = (w.width()-this.width())/2;
            nwidth = (nwidth > 0)? nwidth : 0 ;
            this.css("marginLeft",nwidth + "px");
        }
    }

}

/*
 * Slider plugin
 */
jQuery.fn.wslider = function()
{
    var track = this.find('#track');
    var group = track.find('ul');
    var track_width = track.width();
    var items = this.find('li');
    var item_width = items.width();
    var items_count = items.length;
    var all_items_width = items_count * item_width;
    var left = 0;
	group.css('width',all_items_width+'px');
	group.css('hieght','170px');

    //group.width(all_items_width);

    group.css('position', 'relative');
    group.css('left', 0);


    function move()
    {
        var old = parseInt(group.css('left'));
        var dleft =  left - old;
        dleft = old + parseInt(dleft * 0.1);
        group.css('left', dleft  + "px" );
    }

    setInterval(move,5);

    $(track).hover(
        function(){
            move_access = true;
        },
        function(){
            move_access = false;
        }
    )
	if( mobile){
		$(track).css('overflow','auto');
	}else{
    	$(track).mousemove(function(e){
        	var x_pos = e.pageX - track.offset().left;
        	left = parseInt((track_width - all_items_width) / track_width * x_pos);
    	});
	}
	
	/*var obj = track.get(0);
	obj.addEventListener('touchmove', function(event) {
		var touch = event.targetTouches[0];
		display.empty().text(touch.pageX);
		//var x_pos = touch.pageX - track.offset().left;
        //	left = parseInt((track_width - all_items_width) / track_width * x_pos);
	}, false);*/

	document.body.addEventListener('touchhold', function(event) {
  		event.preventDefault();
	}, false);

}

jQuery.fn.wslider3 = function()
{
	var $scrollbar = $('<div id="scrollbar" />');
    $scrollbar.appendTo('#slider');
	/*var obj = $scrollbar.get(0);
	obj.addEventListener('touchmove', function(event) {
    	var touch = event.targetTouches[0];
    	obj.style.left = touch.pageX + 'px';
    	obj.style.top = touch.pageY + 'px';
	}, false);*/
	$scrollbar.mousemove(function(e)
	{
		$scrollbar.css({'left':e.pageX+'px'});
    })
	
	
    /*var track = this.find('#track');
    var group = track.find('ul');
    var track_width = track.width();
    var items = this.find('li');
    var item_width = items.width();
    var items_count = items.length;
    var all_items_width = items_count * item_width;
    var left = 0;

    group.width(all_items_width);

    group.css('position', 'relative');
    group.css('left', 0);

    var $scrollbar = $('<div id="scrollbar" />');
    $scrollbar.appendTo('#slider');
    var scrollwidth = parseInt(6000 / items_count);
    var $scrollbody = $('#scrollbody');
    var $scrollleft = $('#scrollleft');
    var $scrollright = $('#scrollright');
    $scrollbody.css('width',scrollwidth+'px');
    var scrollactive = false;
    var scroll_shift_click = 0;

    $scrollbody.mousedown(function()
    {
        scrollactive = true;
    })

    $(document).mouseup(function()
    {
        scrollactive = false;
        scroll_shift_click = 0;
    })

    //$('body')
	$scrollbody.mousemove(function(e){
        if(true){
            if(scroll_shift_click == 0)
            {
                scroll_shift_click = e.pageX - parseInt($scrollbody.css('left'));
            }
            var dleft = e.pageX - scroll_shift_click;
            scrolto(dleft);
        }

    });
    
    function scrolto(dleft){
        if(dleft<10){
            dleft = 10;
        }
        if(dleft>(1000 - scrollwidth+10)){
            dleft = (1000 - scrollwidth+10);
        }
        $scrollbody.css('left', (dleft) + 'px');
        left = parseInt( (track_width - all_items_width) * (dleft - 10) / (1000 - scrollwidth) );
    }

    $scrollleft.click(function(){
        var dleft = parseInt( (1000 - scrollwidth) / (items_count - 6) );
        dleft = parseInt( $scrollbody.css('left') ) - dleft;
        scrolto(dleft);
    })

    $scrollright.click(function(){
        var dleft = parseInt( (1000 - scrollwidth) / (items_count - 6) );
        dleft = parseInt( $scrollbody.css('left') ) + dleft;
        scrolto(dleft);
    })


    function move()
    {
        var old = parseInt(group.css('left'));
        var dleft =  left - old;
        dleft = old + parseInt(dleft * 1.0);
        group.css('left', dleft  + "px" );
    }

    setInterval(move,5);

    /*
    $(track).hover(
        function(){
            move_access = true;
        },
        function(){
            move_access = false;
        }
    )

    $(track).mousemove(function(e){
        var x_pos = e.pageX - track.offset().left;
        left = parseInt((track_width - all_items_width) / track_width * x_pos);
    });*/
}

jQuery.fn.xwslider2 = function()
{
    var track = this.find('#track');
    var group = track.find('ul');
    var track_width = track.width();
    var items = this.find('li');
    var item_width = items.width();
    var items_count = items.length;
    var all_items_width = items_count * item_width;
    var left = 0;
    var speed = 0;
    var step = -7;

    group.width(all_items_width);

    group.css('position', 'relative');
    group.css('left', 0);

    var arrow_left = $('<a href="#" class="nav left" />')
        .appendTo(track)
        .mousedown(function(){
            speed = -step;
        }).mouseup(function(){
            speed = 0;
        });

    var arrow_right = $('<a href="#" class="nav right" />')
        .appendTo(track)
        .mousedown(function(){
            speed = step;
        }).mouseup(function(){
            speed = 0;
        });
    
    function move()
    {
        var old_left = parseInt(group.css('left'));
        var new_left = old_left + speed;
        if(new_left <= 0 && new_left >= -(all_items_width - 6*item_width))
        {
            arrow_left.removeClass('disable');
            arrow_right.removeClass('disable');
            group.css('left', (new_left)  + "px" );
        }
        if(new_left >= (0-11))
        {
            arrow_left.addClass('disable');
        }
        if(new_left <= -((all_items_width - 6*item_width)-11))
        {
            arrow_right.addClass('disable');
        }
    }

    setInterval(move,5);
    /*
    $(track).hover(
        function(){
            move_access = true;
        },
        function(){
            move_access = false;
        }
    )

    $(track).mousemove(function(e){
        var x_pos = e.pageX - track.offset().left;
        left = parseInt((track_width - all_items_width) / track_width * x_pos);
    });
     */
}

jQuery.fn.xwslider = function()
{
    var track = this.find('#track');
    var group = track.find('ul');
    var track_width = track.width();
    var items = this.find('li');
    var item_width = items.width();
    var items_count = items.length;
    var all_items_width = items_count * item_width;
    var left = 0;
    var speed = 0;
    var step = -7;

    group.width(all_items_width);

    group.css('position', 'relative');
    group.css('left', 0);

    var arrow_left = $('<a href="#" class="nav left" />')
        .appendTo(track)
        .mousedown(function(){
            speed = -step;
        }).mouseup(function(){
            speed = 0;
        });

    var arrow_right = $('<a href="#" class="nav right" />')
        .appendTo(track)
        .mousedown(function(){
            speed = step;
        }).mouseup(function(){
            speed = 0;
        });

    function move()
    {
        var old_left = parseInt(group.css('left'));
        var new_left = old_left + speed;
        if(new_left <= 0 && new_left >= -(all_items_width - 6*item_width))
        {
            arrow_left.removeClass('disable');
            arrow_right.removeClass('disable');
            group.css('left', (new_left)  + "px" );
        }
        if(new_left >= (0-11))
        {
            arrow_left.addClass('disable');
        }
        if(new_left <= -((all_items_width - 6*item_width)-11))
        {
            arrow_right.addClass('disable');
        }
    }

    setInterval(move,5);
}

/*
 * Description plugin
 */
jQuery.fn.description = function()
{
    var desc = this.find('.description').html();
    $('#description').html(desc);

}

/*
 * Select plugin
 */
jQuery.fn.wselect = function()
{
    var items = this;
    return this.hover(
        function(){
            $(items).removeClass('select');
            $(this).addClass('select').description();
        },
        function(){

        });
    /*var desc = this.find('a').html();
    $('#description').html(desc);*/

}

/*
 * Blog Scroll
 */
jQuery.fn.blogscroll = function()
{

    var $posts = $('#posts');
    var $elements = $('#elements');

    var posts_height = parseInt($posts.css('height'));
    var full_height = parseInt($elements.css('height'));
    var max_top = posts_height - full_height;

    if(max_top >= 0){return 1;}

    var arrow_top = $('<a href="#" id="arrow_top" />')
        .appendTo('.border')
        .click(scrolldown);
    var arrow_bottom = $('<a href="#" id="arrow_bottom" />')
        .appendTo('.border')
        .click(scrollup);

    arrow_top.addClass('disable');

    function scrollup(){
        var top = parseInt($elements.css('top'));
        top = top - parseInt(posts_height*0.8);
        if(top <= max_top){
            top = max_top;
            arrow_bottom.addClass('disable');
        }
        arrow_top.removeClass('disable');
        $elements.animate({'top':top});

    }

    function scrolldown(){
        var top = parseInt($elements.css('top'));
        top = top + parseInt(posts_height*0.8);
        if(top >= 0){
            top = 0;
            arrow_top.addClass('disable');
        }
        arrow_bottom.removeClass('disable');
        $elements.animate({'top':top});
    }

    /*var track = this.find('#track');
    var group = track.find('ul');
    var track_width = track.width();
    var items = this.find('li');
    var item_width = items.width();
    var items_count = items.length;
    var all_items_width = items_count * item_width;
    var left = 0;
    var speed = 0;
    var step = -7;

    group.width(all_items_width);

    group.css('position', 'relative');
    group.css('left', 0);

    var arrow_left = $('<a href="#" class="nav left" />')
        .appendTo(track)
        .mousedown(function(){
            speed = -step;
        }).mouseup(function(){
            speed = 0;
        });

    var arrow_right = $('<a href="#" class="nav right" />')
        .appendTo(track)
        .mousedown(function(){
            speed = step;
        }).mouseup(function(){
            speed = 0;
        });

    function move()
    {
        var old_left = parseInt(group.css('left'));
        var new_left = old_left + speed;
        if(new_left <= 0 && new_left >= -(all_items_width - 6*item_width))
        {
            arrow_left.removeClass('disable');
            arrow_right.removeClass('disable');
            group.css('left', (new_left)  + "px" );
        }
        if(new_left >= (0-11))
        {
            arrow_left.addClass('disable');
        }
        if(new_left <= -((all_items_width - 6*item_width)-11))
        {
            arrow_right.addClass('disable');
        }
    }

    setInterval(move,5);*/
}


/*
 * Start all plugins
 */
$(function(){
    /*$('body').live('taphold',function(event){
        event.preventDefault();
        return false;
    });*/

    $('#site').center('margin',true,true);
    $(window).resize(function() {
       $('#site').center('margin',true,true);
    });
    $('#footer').css('opacity', 0.2);
    $('a.fancybox').fancybox();
});



