

function sli_build( sli_type, sli_title, sli_step, func_obj, row_arr, row_sel, arg_arr, sets_arr ){
	var inner_html = '';
	var inner_html_head = '';
	var inner_html_body = '';
	for( z in sets_arr ){
		if( z == 'head' ){
			for( x in sets_arr[ z ] ){
				inner_html_head += ' '+ x +'="'+ sets_arr[ z ][ x ] +'" ';
			}
		}else if( z == 'body' ){
			for( x in sets_arr[ z ] ){
				inner_html_body += ' '+ x +'="'+ sets_arr[ z ][ x ] +'" ';
			}
		}
	}
	inner_html += '<div id="sli_head_'+ sli_title + ( sli_step !== '' ? '_'+ sli_step : '' ) +'" class="sli_'+ ( sli_type.length > 0 ? sli_type +'_' : '' ) +'head'+ ( row_sel === false	&&	( sli_type == 'hd' ) ? '_empty' : '' ) +'" '+ inner_html_head +'>'+ ( row_sel !== false ? '<nobr>'+ row_arr[ row_sel ] +'</nobr>' : '' ) + '</div>';
	inner_html += '<div id="sli_body_'+ sli_title + ( sli_step !== '' ? '_'+ sli_step : '' ) +'" class="sli_'+ ( sli_type.length > 0 ? sli_type +'_' : '' ) +'body" '+ inner_html_body +'>';
	for( z = 0; z < row_arr.length; z++ ){
		if( $.isArray( func_obj ) ){
			func = func_obj[ z ];
		}else{
			func = func_obj;
		}
		row_title = row_arr[ z ];
		if( arg_arr[ z ].length > 0 ){
			var tmp_arr = [];
			for( x = 0; x < arg_arr[ z ].length; x++ ){
				tmp_arr[ x ] = '\''+ arg_arr[ z ][ x ] +'\'';
			}
			inner_html += '<span class="sli_'+ ( sli_type.length > 0 ? sli_type +'_' : '' ) +'row"><a href="javascript:'+ func +'('+ tmp_arr.join(',') +');">'+ row_title +'</a></span><br>';
			tmp_arr = false;
		}else{
			inner_html += '<span class="sli_'+ ( sli_type.length > 0 ? sli_type +'_' : '' ) +'row">'+ row_title +'</span><br>';
		}
	}
	inner_html += '</div>';
	$( '#sli_'+ sli_title + ( sli_step !== '' ? '_'+ sli_step : '' ) ).html( inner_html );

}


function sli_cal_build( sli_title, date_start ){
	if( date_start < '2007-01-01' ) date_start = '2007-01-01';
	inner_html = '';
	today = new Date();
	date_fin = today.getFullYear() +'-'+ (	( today.getMonth() + 1 ) < 10	?	'0'+ ( today.getMonth() + 1 )	:	( today.getMonth() + 1 )	) +'-01';
	dateA = date_start.split( '-' );	
	dateB = date_fin.split( '-' );
	cols_qnty = dateB[ 0 ] - dateA[ 0 ] + 1;	cols_arr = [];
	if( cols_qnty == 1 ){
		mons = dateB[ 1 ] - dateA[ 1 ] + 1;
		if( mons >= 7 ){
			cols_arr[ 0 ] = []; 
			cols_arr[ 1 ] = []; 
			cols_arr[ 0 ].push( '<span style="font-family:tahoma;font-size:11px;color:#666666;"><u>'+ ( dateA[ 0 ] * 1 ) +'</u></span>' );
			if( mons % 2 == 1 ){
				colA_q = Math.floor( mons / 2 );
				colB_q = Math.ceil( mons / 2 );
			}else{
				colA_q = mons / 2;
				colB_q = mons / 2;
			}
			for( r = 0; r < colA_q; r++ ){
					month_id = dateA[ 1 ] * 1 + r; 
					month_id = (	month_id < 10	?	"0"+ month_id	:	month_id	);
					month_ttl = MONTHS[ 'full' ][ month_id ];
					date_num = ( dateA[ 0 ] * 1 ) +'-'+ month_id +'-01';
					date_str = month_ttl +', '+ ( dateA[ 0 ] * 1 );
					cols_arr[ 0 ].push( '<span class="sli_cal_rec"><a href="javascript:personal_op_date_sel(\''+ date_num +'\',\''+ date_str +'\');">'+ month_ttl +'</a></span>' );
			}
			for( r = 0; r < colB_q; r++ ){
					month_id = dateA[ 1 ] * 1 + colA_q + r; 
					month_id = (	month_id < 10	?	"0"+ month_id	:	month_id	);
					month_ttl = MONTHS[ 'full' ][ month_id ];
					date_num = ( dateA[ 0 ] * 1 ) +'-'+ month_id +'-01';
					date_str = month_ttl +', '+ ( dateA[ 0 ] * 1 );
					cols_arr[ 1 ].push( '<span class="sli_cal_rec"><a href="javascript:personal_op_date_sel(\''+ date_num +'\',\''+ date_str +'\');">'+ month_ttl +'</a></span>' );
			}
		}else{
			cols_arr[ 0 ] = [];
			cols_arr[ 0 ].push( '<span style="font-family:tahoma;font-size:11px;color:#666666;"><u>'+ ( dateA[ 0 ] * 1 ) +'</u></span>' );
			for( r = 0; r < mons; r++ ){
					month_id = dateA[ 1 ] * 1 + r; 
					month_id = (	month_id < 10	?	"0"+ month_id	:	month_id	);
					month_ttl = MONTHS[ 'full' ][ month_id ];
					date_num = ( dateA[ 0 ] * 1 ) +'-'+ month_id +'-01';
					date_str = month_ttl +', '+ ( dateA[ 0 ] * 1 );
					cols_arr[ 0 ].push( '<span class="sli_cal_rec"><a href="javascript:personal_op_date_sel(\''+ date_num +'\',\''+ date_str +'\');">'+ month_ttl +'</a></span>' );
			}
		}
	}else if( cols_qnty > 1 ){
		for( col = 0; col < cols_qnty; col++ ){
			cols_arr[ col ] = [];
			cols_arr[ col ].push( '<span style="font-family:tahoma;font-size:11px;color:#666666;"><u>'+ ( dateA[ 0 ] * 1 + col ) +'</u></span>' );
			row_qnty = ( dateA[ 0 ] * 1 + col == dateB[ 0 ]	?	dateB[ 1 ]	:	12 );
			for( row = 1; row <= row_qnty; row++ ){ 
				month_id = ( row<10 ? '0'+row : row );	
				month_ttl = MONTHS[ 'full' ][ month_id ];
				date_num = ( dateA[ 0 ] * 1 + col ) +'-'+ month_id +'-01';
				date_str = month_ttl +', '+ ( dateA[ 0 ] * 1 + col );
				if( col == 0 ){
					if( row < dateA[ 1 ] ){
						cols_arr[ col ].push( '<span class="sli_cal_rec" style="color:#999999;">'+ month_ttl +'</span>' );
					}else{
						cols_arr[ col ].push( '<span class="sli_cal_rec"><a href="javascript:personal_op_date_sel(\''+ date_num +'\',\''+ date_str +'\');">'+ month_ttl +'</a></span>' );
					}
				}else{
					cols_arr[ col ].push( '<span class="sli_cal_rec"><a href="javascript:personal_op_date_sel(\''+ date_num +'\',\''+ date_str +'\');">'+ month_ttl +'</a></span>' );
				}
			}
		}
	}
	for( col = 0; col < cols_arr.length; col++ ){
		if( col + 1 == cols_arr.length ){
			cols_arr[ col ] = '<td class="sli_cal_col"><a href="javascript:personal_op_date_sel(\'\',\'- - не указано - -\');" class="sli_cal_rec" style="float:right;line-height:10px;color:#ca171e;font-size:10px;">сбросить</a><br>'+ cols_arr[ col ].join( '<br>' ) +'</td>';
		}else{
			cols_arr[ col ] = '<td class="sli_cal_col">&nbsp;<br>'+ cols_arr[ col ].join( '<br>' ) +'</td>';
		}
	}
	date_head = MONTHS[ 'full' ][ dateB[ 1 ] ] +', '+ dateB[ 0 ];
	inner_html += '<div id="sli_head_'+ sli_title +'" class="sli_cal_head">'+ date_head +'</div><div id="sli_body_'+ sli_title +'" class="sli_cal_body"><table border="0" cellpadding="0" cellspacing="0" class="sli_cal_tpl"><tr valign=top>'+ cols_arr.join('') +'</tr></table></div>';
	$( '#sli_'+ sli_title ).html( inner_html );
}



function sli_update(){
	$('.sli_body').hide();
	$('.sli_body').mouseleave( function(){ $(this).hide(); } );
	$('.sli_head').each( function(){
		head_id = this.id;
		body_id = head_id.replace( 'sli_head', 'sli_body' );
		$(this).unbind( 'click' );
		$(this).bind( 'click', {obj_id:body_id}, function( event ){
			obj_id = event.data.obj_id;
			obj_item = document.getElementById( obj_id );
			obj_display = obj_item.style.display;
			$('.sli_body').hide();
			$('.sli_mn_body').hide();
			$('.sli_mcr_body').hide();
			$('.sli_cal_body').hide();
			obj_item.style.display = obj_display;
			if( !obj_item ) return;
			if( obj_item.style.display == 'block'	||	obj_item.style.display == '' ){
				obj_item.style.display = 'none';
			}else{
				obj_item.style.display = 'block';
			}
		});
	});
	$('.sli_mn_body').hide();
	$('.sli_mn_body').mouseleave( function(){ $(this).hide(); } );
	$('.sli_mn_head').each( function(){
		head_id = this.id;
		body_id = head_id.replace( 'sli_head', 'sli_body' );
		$(this).unbind( 'click' );
		$(this).bind( 'click', {obj_id:body_id}, function( event ){
			obj_id = event.data.obj_id;
			obj_item = document.getElementById( obj_id );
			obj_display = obj_item.style.display;
			$('.sli_body').hide();
			$('.sli_mn_body').hide();
			$('.sli_mcr_body').hide();
			$('.sli_cal_body').hide();
			obj_item.style.display = obj_display;
			if( !obj_item ) return;
			if( obj_item.style.display == 'block'	||	obj_item.style.display == '' ){
				obj_item.style.display = 'none';
			}else{
				obj_item.style.display = 'block';
			}
		});
	});
	$('.sli_mcr_body').hide();
	$('.sli_mcr_body').mouseleave( function(){ $(this).hide(); } );
	$('.sli_mcr_head').each( function(){
		head_id = this.id;
		body_id = head_id.replace( 'sli_head', 'sli_body' );
		$(this).unbind( 'click' );
		$(this).bind( 'click', {obj_id:body_id}, function( event ){
			obj_id = event.data.obj_id;
			obj_item = document.getElementById( obj_id );
			obj_display = obj_item.style.display;
			$('.sli_body').hide();
			$('.sli_mn_body').hide();
			$('.sli_mcr_body').hide();
			$('.sli_cal_body').hide();
			obj_item.style.display = obj_display;
			if( !obj_item ) return;
			if( obj_item.style.display == 'block'	||	obj_item.style.display == '' ){
				obj_item.style.display = 'none';
			}else{
				obj_item.style.display = 'block';
			}
		});
	});
	$('.sli_cal_body').hide();
	$('.sli_cal_body').mouseleave( function(){ $(this).hide(); } );
	$('.sli_cal_head').each( function(){
		head_id = this.id;
		body_id = head_id.replace( 'sli_head', 'sli_body' );
		$(this).unbind( 'click' );
		$(this).bind( 'click', {obj_id:body_id}, function( event ){
			obj_id = event.data.obj_id;
			obj_item = document.getElementById( obj_id );
			obj_display = obj_item.style.display;
			$('.sli_body').hide();
			$('.sli_mn_body').hide();
			$('.sli_mcr_body').hide();
			$('.sli_cal_body').hide();
			obj_item.style.display = obj_display;
			if( !obj_item ) return;
			if( obj_item.style.display == 'block'	||	obj_item.style.display == '' ){
				obj_item.style.display = 'none';
			}else{
				obj_item.style.display = 'block';
			}
		});
	});
}


function ichk_update(){
	$( '.ichk' ).each( function(){
		div_id = this.id;
		input_name = div_id.replace( 'ichk_', 'user_input_' );
		input_value = $( '[name='+ input_name +']' ).val();
		if( input_value == 1 ){
			$( this ).css('background-image','url(\''+ SITE_URL +'/img/checkbox_checked.gif\')' );
		}else if( input_value === '0' ){
			$( this ).css('background-image','url(\''+ SITE_URL +'/img/checkbox_unchecked.gif\')' );
		}
		$(this).unbind( 'click' );
		$(this).bind( 'click', {div:div_id,inp:input_name}, function( event ){
			div_id = event.data.div;
			input_name = event.data.inp;
			input_value = $( '[name='+ input_name +']' ).val();
			if( !$( this )	&&	!$( '[name='+ input_name +']' ) ) return;
			if( input_value == 1 ){
				$( '[name='+ input_name +']' ).val( '0' );
				$( this ).css('background-image','url(\''+ SITE_URL +'/img/checkbox_unchecked.gif\')' );
			}else if( input_value === '0' ){
				$( '[name='+ input_name +']' ).val( '1' );
				$( this ).css('background-image','url(\''+ SITE_URL +'/img/checkbox_checked.gif\')' );
			}
		});
	});
}




