/*
align: (required)
  "v": vertical
  "h": horizontal
direction: (required)
  "b": back
  "f": forward  
speed: (required)
  (int)
speed_step: (required)
  (int)
box_size: (if vertical then box_size:HEIGHT | if horizontal then box_size:WIDTH)
  (int) or (FALSE)
  
mouseover:
  (true or false or stop)
mouseover_speed:
  (int)
mouseover_speed_step:
  (int)
  
animation:
  (true or false)
animation_speed:
  (int)
animation_speed_step:
  (int)
*/
var boxsize = 0;
var intervalID;
var node;
var node_name;
var node_class;
var sebesseg;
var cserenode;
var alapirany;
var stepsize;
var irany;
var inboxsize;
var enough;
var boxnumber = 1;
var k = 1;
var smallnode;
var bignode;
var node_style;
function porgetv(irany) {
		kepekszama = boxsize+'px';
		if (irany == 'f') {

      node.children('.'+node_class).animate({top:'-='+stepsize+'px'},0);

  	if (parseInt(node.children(':eq(0)').css('top')) <= (boxsize-2*boxsize))  {        
  			 clearInterval(intervalID);
  			 node.children('.gergo_slider_back').before('<'+node_name+' class="'+node_class+'" style="'+node_style+' position:absolute; height:'+boxsize+'px; top:+'+kepekszama+'">'+node.children(':eq(0)').html()+'</'+node_name+'>'); 
  			 node.children(':eq(0)').remove();
         node.children(':eq(1)').css('z-index','10');
          intervalID = null;
  			 intervalID = setInterval("porgetv('"+irany+"')", sebesseg); 
				    
  		}

  		if ((parseInt(node.children(':eq(1)').css('top'))) < (0-stepsize))  {      
  			 clearInterval(intervalID);
  			 node.children('.gergo_slider_back').before('<'+node_name+' class="'+node_class+'" style="'+node_style+' position:absolute; height:'+boxsize+'px; top:-'+kepekszama+'">'+node.children(':eq(0)').html()+'</'+node_name+'>');
  			 node.children(':eq(0)').remove();
         node.children(':eq(1)').css('z-index','10');
         node.children(':eq(1)').animate({top:'+'+boxsize+'px'},0); 
				 console.log(boxsize);
          intervalID = null;
  			 intervalID = setInterval("porgetv('"+irany+"')", sebesseg); 
  		}     
    } else if (irany == 'b') {
    
      node.children('.'+node_class).animate({top:'+='+stepsize+'px'},0);
  		if (parseInt(node.children(':eq(0)').css('top')) >= (boxsize))  {      
  			 clearInterval(intervalID);
  			 node.children('.gergo_slider_back').before('<'+node_name+' class="'+node_class+'" style="'+node_style+' position:absolute; height:'+boxsize+'px; top:-'+kepekszama+'">'+node.children(':eq(0)').html()+'</'+node_name+'>');
  			 node.children(':eq(0)').remove();
         node.children(':eq(0)').css('z-index','10');
          intervalID = null;
  			 intervalID = setInterval("porgetv('"+irany+"')", sebesseg); 
  		}     

  		if ((parseInt(node.children(':eq(1)').css('top'))) > (boxsize+stepsize))  {      
  			 clearInterval(intervalID);
  			 node.prepend('<'+node_name+' class="'+node_class+'" style="'+node_style+' position:absolute; height:'+boxsize+'px; top:-'+kepekszama+'">'+node.children(':eq(0)').html()+'</'+node_name+'>');
  			 node.children(':eq(2)').remove();
         node.children(':eq(1)').css('z-index','10');
         node.children(':eq(0)').animate({top:'-'+boxsize+'px'},0); 
          intervalID = null;
  			 intervalID = setInterval("porgetv('"+irany+"')", sebesseg); 
  		} 
        
    
    }        
}  
function porgeth(irany) {

		kepekszama = boxsize+'px';
		if (irany == 'f') {
      node.children('.'+node_class).animate({left:'-='+stepsize+'px'},0);
  		if (parseInt(node.children(':eq(0)').css('left')) <= (boxsize-2*boxsize))  {  
   
  			 clearInterval(intervalID);
  			 node.children('.gergo_slider_back').before('<'+node_name+' class="'+node_class+'" style="'+node_style+' position:absolute; width:'+boxsize+'px; left:+'+kepekszama+'">'+node.children(':eq(0)').html()+'</'+node_name+'>'); 
  			 node.children(':eq(0)').remove();
         node.children(':eq(1)').css('z-index','10');
          intervalID = null;
  			 intervalID = setInterval("porgeth('"+irany+"')", sebesseg); 
  		}

  		if ((parseInt(node.children(':eq(1)').css('left'))) < 0)  {      
  			 clearInterval(intervalID); 
  			 node.children('.gergo_slider_back').before('<'+node_name+' class="'+node_class+'" style="'+node_style+' position:absolute; width:'+boxsize+'px; left:-'+kepekszama+'">'+node.children(':eq(0)').html()+'</'+node_name+'>');
  			 node.children(':eq(0)').remove();
         node.children(':eq(1)').css('z-index','10');
         node.children(':eq(1)').animate({left:'+'+boxsize+'px'},0); 
          intervalID = null;
  			 intervalID = setInterval("porgeth('"+irany+"')", sebesseg); 
  		}       
      
    } else if (irany == 'b') {
    
      node.children('.'+node_class).animate({left:'+='+stepsize+'px'},0);
  		if (parseInt(node.children(':eq(0)').css('left')) >= (boxsize))  {      
  			 clearInterval(intervalID);
  			 node.children('.gergo_slider_back').before('<'+node_name+' class="'+node_class+'" style="'+node_style+' position:absolute; width:'+boxsize+'px; left:-'+kepekszama+'">'+node.children(':eq(0)').html()+'</'+node_name+'>');
  			 node.children(':eq(0)').remove();
         node.children(':eq(0)').css('z-index','10');
          intervalID = null;
  			 intervalID = setInterval("porgeth('"+irany+"')", sebesseg); 
  		}     

  		if ((parseInt(node.children(':eq(1)').css('left'))) > boxsize)  {      
  			 clearInterval(intervalID);
  			 node.prepend('<'+node_name+' class="'+node_class+'" style="'+node_style+' position:absolute; width:'+boxsize+'px; left:-'+kepekszama+'">'+node.children(':eq(0)').html()+'</'+node_name+'>');
  			 node.children(':eq(2)').remove();
         node.children(':eq(1)').css('z-index','10');
         node.children(':eq(0)').animate({left:'-'+boxsize+'px'},0); 
          intervalID = null;
  			 intervalID = setInterval("porgeth('"+irany+"')", sebesseg); 
  		} 
      
    
    }        
}  
(function($){
	 $.fn.gergo_slider = function(alloptions){
	   sebesseg = alloptions.speed;
     stepsize = alloptions.speed_step;
     node = $(this);
     node_name = node.children()[0].nodeName;
     node_class = node.children().attr('class');
		 node_style = node.children().attr('style');
     alapirany = alloptions.direction;
     irany = alloptions.direction;
     node.append('<div class="gergo_slider_back"></div><div class="gergo_slider_forward"></div>');
			
     if (alloptions.align == 'v') { 
      

				boxsize = $(this)[0].offsetHeight;
		 
				inboxsize = $(this).children(':eq(1)')[0].offsetHeight;
				enough = true;
				while(enough) {
					
						if ((inboxsize * k) < boxsize) {
			
						boxnumber = k;
				
						} else enough = false;
						k++;
				}

			if (boxnumber > 1) {
				kepekszama = boxsize+'px';				
				smallnode = '<'+node_name+' class="'+node_class+'" style="'+node_style+'">'+node.children(':eq(0)').html()+'</'+node_name+'>'; 				
				node.children('.'+node_class+'').remove();
				node_name	= 'div';
				node_class = 'gergo_slider_boxes';
				bignode = '<div class="gergo_slider_boxes">';
				for(k = 1; k <= boxnumber; k++) {
					bignode += smallnode;
				}
				bignode += '</div>';
				node.children('.gergo_slider_back').before(bignode); 		
				node.children('.gergo_slider_back').before(bignode); 			
				
			}
				

      if (alloptions.box_size != undefined) boxsize = alloptions.box_size;   
  		 $(this).children().css({'position':'absolute','height':boxsize+'px'});
  		 
       if (irany == 'f') $(this).children(':eq(1)').animate({top:'+'+boxsize+'px'},0); 
       else if (irany == 'b') {
        $(this).children(':eq(0)').css('z-index','10');
        $(this).children(':eq(1)').animate({top:'-'+boxsize+'px'},0); 
       }
  
  		 intervalID = setInterval("porgetv('"+irany+"')", sebesseg);			
  		
		} else if (alloptions.align == 'h') {

				boxsize = $(this)[0].offsetWidth;   
				
				inboxsize = $(this).children(':eq(1)')[0].offsetWidth;
				enough = true;
				while(enough) {
					
						if ((inboxsize * k) < boxsize) {
			
						boxnumber = k;
				
						} else enough = false;
						k++;
				} 

			if (boxnumber > 1) {
				kepekszama = boxsize+'px';				
				smallnode = '<'+node_name+' class="'+node_class+'" style="'+node_style+'">'+node.children(':eq(0)').html()+'</'+node_name+'>'; 				
				node.children('.'+node_class+'').remove();
				node_name	= 'div';
				node_class = 'gergo_slider_boxes';
				bignode = '<div class="gergo_slider_boxes">';
				for(k = 1; k <= boxnumber; k++) {
					bignode += smallnode;
				}
				bignode += '</div>';
				node.children('.gergo_slider_back').before(bignode); 		
				node.children('.gergo_slider_back').before(bignode); 			
				
			}				
				
				
				 
      if (alloptions.box_size != undefined) boxsize = alloptions.box_size;    
       $(this).children().css({'position':'absolute','width':boxsize+'px'});
  		 
       if (irany == 'f') $(this).children(':eq(1)').animate({left:'+'+boxsize+'px'},0); 
       else if (irany == 'b') {
        $(this).children(':eq(0)').css('z-index','10');
        $(this).children(':eq(1)').animate({left:'-'+boxsize+'px'},0); 
       }
       
  		 intervalID = setInterval("porgeth('"+irany+"')", sebesseg);			
					
    
    }
    
    if (alloptions.mouseover == true) {
    
      if (alloptions.mouseover == 'stop') {
        $(this).mouseover(function () {
          clearInterval(intervalID);	
        });   
        $(this).mouseout(function () {
          clearInterval(intervalID);
          sebesseg = alloptions.speed; 
          if (alloptions.align == 'h') intervalID = setInterval("porgeth('"+irany+"')", sebesseg);	
          else if (alloptions.align == 'v') intervalID = setInterval("porgetv('"+irany+"')", sebesseg);	
        });      
      } else {
        $(this).mouseover(function () {
          clearInterval(intervalID);
          sebesseg = alloptions.mouseover_speed; 
          stepsize = alloptions.mouseover_speed_step;
          if (alloptions.align == 'h') intervalID = setInterval("porgeth('"+irany+"')", sebesseg);	
          else if (alloptions.align == 'v') intervalID = setInterval("porgetv('"+irany+"')", sebesseg);	
        });   
        $(this).mouseout(function () {
          clearInterval(intervalID);
          sebesseg = alloptions.speed;
          stepsize = alloptions.speed_step;
          if (alloptions.align == 'h') intervalID = setInterval("porgeth('"+irany+"')", sebesseg);	
          else if (alloptions.align == 'v') intervalID = setInterval("porgetv('"+irany+"')", sebesseg);	
        });  
      }        
    }
    
    if (alloptions.animation == true) {
    
      if (alloptions.align == 'v') {     
      
        height = parseFloat(node.css('height'));
        width = parseFloat(node.css('width'));
        height = height * 0.2;
        width = width * 0.9;
        topp = node.css('height');
        left = 0;  
				
				
        $('.gergo_slider_back').css({
        'position':'absolute',
        'height':height+'px',
        'width':width+'px',
        'left':left+'px',
        'bottom':'0px',
        'font-size':(width/1.5)+'px',
        'z-index':'20',
        'background':'#fff',
        'opacity':'0',
        'filter':'alpha(opacity=0)',
        'text-align':'center'
        }).mouseover(function () {
        
          clearInterval(intervalID);
          intervalID = null;
          sebesseg = alloptions.animation_speed; 
          stepsize = alloptions.animation_speed_step;

		  	intervalID = setInterval("porgetv('b')", sebesseg);

        
        }).mouseout(function () {

          clearInterval(intervalID);
          intervalID = null;
          sebesseg = alloptions.speed; 
          stepsize = alloptions.speed_step;

				 	intervalID = setInterval("porgetv('b')", sebesseg);
				 	
        
        });
        $('.gergo_slider_forward').css({
        'position':'absolute',
        'height':height+'px',
        'width':width+'px',
        'right':left+'px',
        'top':'0px',
        'font-size':(width/1.5)+'px',
        'z-index':'20',    
        'background':'#fff',
        'opacity':'0', 
        'filter':'alpha(opacity=0)',        
        'text-align':'center'        
        }).mouseover(function () {

          clearInterval(intervalID);
          intervalID = null;
          
          sebesseg = alloptions.animation_speed; 
          stepsize = alloptions.animation_speed_step;


				 	intervalID = setInterval("porgetv('f')", sebesseg);

        
        }).mouseout(function () {
        
          clearInterval(intervalID);
          intervalID = null;
          sebesseg = alloptions.speed; 
          stepsize = alloptions.speed_step;


				 	intervalID = setInterval("porgetv('f')", sebesseg);
				 	
        
        });   				
				
				
				
				       

      } else if (alloptions.align == 'h') {
        
        height = parseFloat(node.css('height'));
        width = parseFloat(node.css('width'));
        height = height * 0.9;
        width = width * 0.2;
        topp = 0;
        left = 0;  
				
        $('.gergo_slider_back').css({
        'position':'absolute',
        'height':height+'px',
        'width':width+'px',
        'left':left+'px',
        'top':topp+'px',
        'font-size':(width/1.5)+'px',
        'z-index':'20',
        'background':'#fff',
        'opacity':'0',
        'filter':'alpha(opacity=0)',
        'text-align':'center'
        }).mouseover(function () {
        
          clearInterval(intervalID);
          intervalID = null;
          sebesseg = alloptions.animation_speed; 
          stepsize = alloptions.animation_speed_step;

		  	intervalID = setInterval("porgeth('b')", sebesseg);

        
        }).mouseout(function () {

          clearInterval(intervalID);
          intervalID = null;
          sebesseg = alloptions.speed; 
          stepsize = alloptions.speed_step;

				 	intervalID = setInterval("porgeth('b')", sebesseg);
				 	
        
        });
        $('.gergo_slider_forward').css({
        'position':'absolute',
        'height':height+'px',
        'width':width+'px',
        'right':left+'px',
        'top':topp+'px',
        'font-size':(width/1.5)+'px',
        'z-index':'20',    
        'background':'#fff',
        'opacity':'0',
        'filter':'alpha(opacity=0)',        
        'text-align':'center'        
        }).mouseover(function () {
        
          clearInterval(intervalID);
          intervalID = null;
          
          sebesseg = alloptions.animation_speed; 
          stepsize = alloptions.animation_speed_step;


				 	intervalID = setInterval("porgeth('f')", sebesseg);

        
        }).mouseout(function () {
        
          clearInterval(intervalID);
          intervalID = null;
          sebesseg = alloptions.speed; 
          stepsize = alloptions.speed_step;


				 	intervalID = setInterval("porgeth('f')", sebesseg);
				 	
        
        });   				              
      }

        
        

    
    
    
    
    
    }



	 }
})(jQuery);