%% (Internal) Set random properties a line handle
%
%     all_proerties = set_rand_linespec(line_hdl, mrk, linestyle, col_spec, markerSize)
% 
% 
% Arguments:
% 
%   + line_hdl: The handle
% 
%   + mrk: marker cellstring to choose
% 
%   + linestyle: linestyle cellstring to choose
% 
%   + col_spec: colors to choose
% 
%   + markerSize: marker size to choose
% 
% Output:
% 
%   + all_proerties: Properties set.
% 
% Example:
% 
% 
% See also plot_ecg_strip
% 
% Author: Mariano Llamedo Soria (llamedom at {electron.frba.utn.edu.ar; unizar.es}
% Version: 0.1 beta
% Birthdate: 17/12/2010
% Last update: 17/12/2010
% Copyright 2008-2015
% 
function all_proerties = set_rand_linespec(line_hdl, mrk, linestyle, col_spec, markerSize)

all_proerties = [];

if(~ishandle(line_hdl))
    return;
end

cant_line_hdl = length(line_hdl);

if( nargin < 2 )
    mrk={'+','o','*','.','x','s','d','^','v','<','>','p','h'};
else
    if( ischar(mrk) )
        mrk = cellstr(mrk);
    elseif( ~iscellstr(mrk) )
        mrk={'+','o','*','.','x','s','d','^','v','<','>','p','h'};
    end    
end

if( nargin < 3 )
    linestyle = {'-','--',':','-.'};
else
    if( ischar(linestyle) )
        linestyle = cellstr(linestyle);
    elseif( ~iscellstr(linestyle) )
        linestyle = {'-','--',':','-.'};
    end    
end

if( nargin < 4 || isempty(col_spec) || (~isnumeric(col_spec) &&  (size(col_spec,2) == 3) ) )
    col_spec = jet;
end

if( nargin < 5 )
    markerSize = {5};
else
    if( isnumeric(markerSize) )
        markerSize = num2cell(markerSize);
    elseif( ~iscell(markerSize) )
        markerSize = {5};
    end    
end

mrk = colvec(mrk);
linestyle = colvec(linestyle);
markerSize = colvec(markerSize);

colspec_mf = col_spec(randsample(size(col_spec,1),cant_line_hdl, true),: );
colspec_me = col_spec(randsample(size(col_spec,1),cant_line_hdl, true),: );
colspec_line = col_spec(randsample(size(col_spec,1),cant_line_hdl, true),: );

markers_idx = colvec(randsample(length(mrk), cant_line_hdl, true ));
linestyles_idx = colvec(randsample(length(linestyle), cant_line_hdl, true ));
markerSize_idx = colvec(randsample(length(markerSize), cant_line_hdl, true ));

set(line_hdl,   {'Marker'}, mrk(markers_idx), ... 
                {'MarkerSize'}, markerSize(markerSize_idx), ...
                {'MarkerFaceColor'}, num2cell(colspec_mf,2), ...
                {'MarkerEdgeColor'}, num2cell(colspec_me,2), ...
                {'LineStyle'},linestyle(linestyles_idx) , ...
                {'Color'}, num2cell(colspec_line,2));

if( nargout > 0)
    all_proerties = {mrk linestyle markerSize colspec_mf colspec_me colspec_line markers_idx linestyles_idx markerSize_idx};
end
