	
	window.ssp_values ={};
	
	//-------------------------------------
	// 親のセレクト要素に連動させる
	var select_sync_parent =function (elm_id, parent_elm_id, pair, mode) {
		/*
			<select name="c[Comment.parent]" id="_parent_elm_id">
				<option value="">--</option>
				<option value="1">1</option>
				<option value="2">2</option>
			</select>
			<select name="c[Comment.someitem]" id="_elm_id">
				<option value="">--</option>
				<option value="C121">C121</option>
				<option value="C122">C122</option>
				<option value="C111">C111</option>
				<option value="C112">C112</option>
			</select>
			<script>
				select_sync_parent(
						'_elm_id',
						'_parent_elm_id',
						{"C121":"1", "C122":"1","C111":"2", "C112":{"1","2"}},"select");
			</script>
		*/
		$(function(){
			
			ssp_values[elm_id] ={};
			
			if ($("#"+elm_id).get(0).tagName.match(/select/i)) {	
			
				$("#"+elm_id+" option").each(function(){
				
					ssp_values[elm_id][$(this).attr("value")] =$(this);
				});
				
			} else {
			
				$("#"+elm_id+" ._listitem").each(function(){
				
					ssp_values[elm_id][$("input",this).attr("value")] =$(this);
				});
			}
			
			$("#"+parent_elm_id).bind("change",function(){
			
				var elm =$("#"+elm_id);
				var parent_item_id =$("#"+parent_elm_id).val();
				var current_item_id =$(elm).val();
				
				$(elm).children().remove();
				
				for (var item_id in ssp_values[elm_id]) {
					
					var pair_items =typeof pair[item_id] == "object"
							? pair[item_id]
							: {0:pair[item_id]}
					
					for (var pair_id in pair_items) {
						
						if (item_id == "") {
							
							$(elm).prepend(ssp_values[elm_id][item_id]);
							
						} else if (parent_item_id == pair_items[pair_id]) {
							
							$(elm).append(ssp_values[elm_id][item_id]);
						}
					}
				}
				
				$(elm).val(current_item_id);
			});
			
			$("#"+parent_elm_id).trigger("change");
		});
	};
