var $panArray;
var $targArray;
var $panAcc;

jQuery.fn.slidePanel = function(parameters){
	settings = {
		status: 'closed',
		speed: 'normal',
		target: 'next',
		remote:'false',
		is_open_first:'true',
		role:'accordion'
		};
	//extend settings in jQuery object
	jQuery.extend(settings, parameters);
	
	//Initialize any panel and keep chinable
		return this.each(function(){
			var $panel = $(this);
			//set target variable to the required target panel, default is next
			if (settings.target == 'next'){
                var $target = $panel.next();
            }
            else{
                //console.log(settings.target);
                var $target = $(settings.target);
            }
            // DEFAULT CLOSE OPEND
            if (settings.status == 'closed'){
                $target.addClass('panel-target panel-closed');
                $panel.addClass('panel panel-up');
            }else{
                $target.addClass('panel-target');
                $panel.addClass('panel panel-down');
            }
			if(settings.role == 'accordion'){
                panelAcc($target);
                if($panAcc.length == '1' && settings.is_open_first){
                    $panAcc[0].removeClass('panel-closed');
                }
                // force open tabs
                $('.panel-force-open').next().removeClass('panel-closed').addClass('panel-opend');
                $('.panel-force-open').removeClass('panel-down').addClass('panel-up');
                
                
                $panel.click(function(){
                    //console.log($targArray.length);
                        //$target.slideUp();
                        //.prev().removeClass('panel-down').addClass('panel-up');
                        if($(this).next().attr('class').indexOf('panel-closed')==-1){
                            var parent = $(this).parent();
                            parent.children('.panel').removeClass('panel-down').addClass('panel-up');                            
                            parent.children('.panel-target').slideUp().removeClass('panel-opend').addClass('panel-closed');
                            return;
                        }
                        //if($(this).attr('class').indexOf('panel-down')!=-1)
                        var parent = $(this).parent();
                        parent.children('.panel-target').slideUp().removeClass('panel-opend').addClass('panel-closed');
                        parent.children('.panel').removeClass('panel-down').addClass('panel-up');
                        
                        
                        //if(settings.theparent != $target.parent().parent().attr('id')) return;
                        //console.log($(this).next());
                        $(this).next().slideDown().removeClass('panel-closed').addClass('panel-opend');
                        //console.log($target.length);
                        $(this).removeClass('panel-up').addClass('panel-down');
                    });
			}
	
		});				
	//repository Array for depending element		
	function panelAcc(elem){
        //if(settings.theparent != target[k].parent().parent().attr('id')) continue;
		if ($panAcc == undefined){
				$panAcc = [];
				$panAcc[0] = elem;
			}
			else{
				$panAcc[$panAcc.length] = elem;
		}
	}		
}