function cl_frcascade(p_form,p_ind,p_next,p_default){
	var num = 0;
	while(cl_trim(p_next)!=''){
		next = eval('document.'+p_form+'.'+p_next);
		nextval = eval('document.'+p_form+'.'+p_next+'val');
		arval = nextval.value.split('@*@*@*');
		next.options.length = 0;
		if(p_default) next.options[next.options.length] = new Option(p_default,'');
		for(i=0;i<arval.length;i++){
			arvals = arval[i].split('~@~@~@');
			if(arvals.length<4) continue;
			if(cl_trim(arvals[1]) == '') continue;
			if(arvals[3] != p_ind && cl_trim(arvals[0]) != '') continue;		//not show when select not right and not empty
			if(cl_trim(arvals[0]) == '' && p_default) continue;					//not show when select has default value and value is empty 
			next.options[next.options.length] = new Option(arvals[1],arvals[0]);
			if(arvals[2]=='1' && !p_default) next.options[next.options.length-1].selected = true;
		}
		if(next.options.length) p_ind = next.options[next.selectedIndex].value;
		else p_ind='';
		p_next = eval('document.'+p_form+'.'+p_next+'cld.value');
		num++;
		if(num>30) break;
	}
}

