/**
 * jQuery trialer v3.0
 * http://webriye.com
 *
 * Copyright 2011, Gioo
 *
 * Free to use and abuse under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
 * 
 */
 
 

(function($){
 
    $.fn.extend({
         
        //pass the options variable to the function
        trialer: function(options) {
 
 
            //Set the default values, use comma to separate the settings, example:
            var defaults = {
                objectClass: 'objct',
                nextButton: 'nextobjct',
                prevButton: 'prevobjct',
				selectClass: 'showtrlt',
				
				container: $(this).attr('id')
            }
            
            var options =  $.extend(defaults, options);

 			$("."+options.objectClass+':first', this).css({"left": "0%", "top": "0%" }).addClass("current");

 
            return this.each(function(){
                var o =options;
				var obj = $(this);
				//alert($(".current", this).index());

                $("."+o.objectClass, this).live("click",function(){
					next_objct(obj);
				});
				
				$("."+o.nextButton,  this).live("click",function(){
					next_objct(obj);
				});
				
				$("."+o.prevButton, this).live("click",function(){
					prev_objct(obj);
				});
				
				$("."+o.selectClass).live("click",function(){
//					alert($(this).attr('varr'));
					objct_by_id($(this).attr('varr'));
					//prev_objct(obj);
				});
             
            });

function _select_selector(currentob){
	var varr = $(currentob).attr('varr');
	if(varr=='' || varr=='undefined')return false;
	$('.'+options.selectClass).removeClass('selected');
	$('.'+options.selectClass+'[varr='+varr+']').addClass('selected');
	
}

function objct_by_id(id){
	var nextob = $("#trlr"+id);//.attr('id');
	if(nextob=='' || nextob=='undefined')return false;
	
	if($(nextob).hasClass('current'))return false
	thiss = $('#'+options.container+' .current');
	$('#'+options.container+' .'+options.objectClass).removeClass('current');
	$('#'+options.container).height($(nextob).height()+50);
	_select_selector(nextob);
	
	var pos = random_positions();

	$(nextob).css({"left": pos[0]+"%", "top": pos[1]+"%" });
	$(thiss).animate({"left": pos[2]+"%", "top": pos[3]+"%" }, 700);
	$(nextob).addClass("current").animate({"left": "0%", "top": "0%" }, 500);

	return false;
}
			
function next_objct(thisscont){
	
	var thiss = $(".current", thisscont);
	if($(thiss).next("."+options.objectClass).index()<0)return false;
	var nextob = $(thiss).next("."+options.objectClass);
	//alert($(thiss).index());
	_select_selector($(thiss).next("."+options.objectClass));
	$("."+options.objectClass).removeClass('current');
	$('#'+options.container).height($(nextob).height()+50);
	
	var pos = random_positions();

	$(thiss).next("."+options.objectClass).css({"left": pos[0]+"%", "top": pos[1]+"%" });
	$(thiss).animate({"left": pos[2]+"%", "top": pos[3]+"%" }, 700);
	$(thiss).next("."+options.objectClass).animate({"left": "0%", "top": "0%" }, 500);
	$(thiss).next().addClass("current");
	return false;
}

function prev_objct(thisscont){
	var thiss = $(".current", thisscont);
	if($(thiss).prev("."+options.objectClass).index()<0)return false;
	_select_selector($(thiss).prev("."+options.objectClass));
	
	$("."+options.objectClass).removeClass('current');
	var pos = random_positions();
	$(thiss).prev("."+options.objectClass).css({"left": pos[0]+"%", "top": pos[1]+"%" });
	$(thiss).animate({"left": pos[2]+"%", "top": pos[3]+"%" }, "slow");
	$(thiss).prev("."+options.objectClass).animate({"left": "0%", "top": "0%" });
	$(thiss).prev().addClass("current");
	return false;
}
			
function random_positions(){
	var mypos=new Array('0','-200','200');
	var mypos2=new Array('-200','-200','200');
	var randNum = Math.floor ( Math.random ( ) * 3 );
		var ll = mypos[randNum];
	var randNum2 = Math.floor ( Math.random ( ) * 3 );
		var tt = mypos[randNum2];
	if(ll==0){ var tt = mypos2[randNum2]; }
		var ll1=invesre_pos(ll);
		var tt1=invesre_pos(tt);
	return new Array(ll,tt,ll1,tt1);
}

function invesre_pos(value){
	if(value==200){
		return -200;
	}
	if(value==-200){
		return 200;
	}
	return 0;
}			
			
        }
    });
     
})(jQuery);
