// このファイルは UTF-8 で保存してください

// 樹脂の名前(射出成形機)
var gJ1PlaList	=	[ "PP", "HDPE", "LDPE, Elastomer", "Cleaning styrene type resin", "Engineering plastics", "Super engineering plastics", "Vinyl chloride" ];

// グレード(射出成形機)
// 上で設定した樹脂の名前の順番に一致するように注意してください
// ●●→▲▲(2段)のものは、"●●,▲▲"のように半角カンマで区切って記述してください
var gJ1Grade	=	[
  [ "S50",     "S50",   "S50",   "S60",     "S50", "S50", "S60"     ],
  [ "A1",      "A1",    "A1",    "S60",     "A1",  "A1",  "S60"     ],
  [ "A1",      "A1",    "A1",    "S60",     "A1",  "A1",  "S60"     ],
  [ "S60",     "S60",   "S60",   "S60",     "S60", "S60", "S60"     ],
  [ "S60",     "S60",   "S60",   "S60",     "S60", "S60", "S60"     ],
  [ "S29,S50", "S29",   "S29",   "S29,S60", "S29", "S29", "S29,S60" ],
  [ "E3001",   "E3001", "E3001", "S60",     "S60", "S60", "E3001"   ]
];

var gJ1Key	=	'j1';

// 樹脂の名前(押出機)
var gJ2PlaList	=	[ "PP", "HDPE", "LLDPE, LDPE", "Cleaning styrene type resin", "Engineering plastics", "Super engineering plastics", "Vinyl chloride" ];

// グレード(押出機)
// 上で設定した樹脂の名前の順番に一致するように注意してください
// ●●→▲▲(2段)のものは、"●●,▲▲"のように半角カンマで区切って記述してください
var gJ2Grade	=	[
  [ "S50",     "S28",   "E3001",     "S60",     "S50", "S50", "E3001"     ],
  [ "S28",     "S28",   "S28",       "S60",     "S28", "S28", "E3001"     ],
  [ "E3001",   "S28",   "E3001",     "S60",     "S28", "S28", "E3001"     ],
  [ "S60",     "S60",   "S60",       "S60",     "S60", "S60", "S60"       ],
  [ "S60",     "S60",   "S60",       "S60",     "S60", "S60", "S60"       ],
  [ "S29,S50", "S29",   "S29,E3001", "S29,S60", "S29", "S29", "S29,E3001" ],
  [ "E3001",   "E3001", "E3001",     "S60",     "S60", "S60", "E3001"     ]
];

var gJ2Key	=	'j2';

// =====================================================================================================

var gLastErrorMessage	=	null;
var gPlastics	=	new Object();

function lu_convert_data( pla, grade )	{
	var pla_num	=	pla.length;
	var data	=	new Object();
	
	if( pla_num != grade.length )	{
		gLastErrorMessage	=	'The number of grades of preceding resin is not correct.';
		return null;
	}
	
	for( var i = 0; i < pla_num; ++i )	{
		var p	=	pla[i];
		var g	=	grade[i];
		if( pla_num != g.length )	{
			gLastErrorMessage	=	'The number of grades of succeeding resin to preceding resin "' + p + '" is not correct.';
			return null;
		}
		
		var o	=	new Object();
		for( var j = 0; j < pla_num; ++j )	{
			var label	=	g[j];
			
			if( /,/.test( label ) )	{
				var ary	=	label.split( /,/ );
				label	=	ary.join( ' → ' ) + " (" + ary.length + " steps)";
			}
			
			o[ pla[j] ]	=	{ "value" : g[j], "label" : label };
		}
		
		data[p]	=	o;
	}
	
	return data;
}

function lu_create_plastics( obj )	{
	var key		=	obj.key;
	var pla		=	obj.plastics;
	var grade	=	obj.grade;
	var d	=	lu_convert_data( pla, grade );
	
	if( d == null )	{
		alert( key + ":\n" + gLastErrorMessage );
		return null;
	}
	
	return d;
}

function lu_get_type_value( id )	{
	var sel	=	document.getElementById( id );
	var val	=	sel.options[ sel.selectedIndex ].value;
	
	return val;
}

function lu_type_changed( key )	{
	var pla			=	gPlastics[ key ];
	var sel_id1		=	key + "_type1";
	var sel_id2		=	key + "_type2";
	var val1		=	lu_get_type_value( sel_id1 );
	var val2		=	lu_get_type_value( sel_id2 );
	var grade_obj	=	document.getElementById( key );
	var label_obj	=	document.getElementById( key + "_grade" );
	var grade		=	'';
	var label		=	'';
	
	if( ( val1 in pla ) && ( val2 in pla[ val1 ] ) )	{
		label	=	pla[ val1 ][ val2 ].label;
		grade	=	pla[ val1 ][ val2 ].value;
	}
	
	label_obj.value	=	label;
	grade_obj.value	=	grade;
}

function lu_set_href( anchor )	{
	
	if( ! ( "org_href" in anchor ) )	{
		anchor.org_href	=	anchor.href;
	}
	
	var href	=	anchor.org_href;
	var grades	=	[ gJ1Key, gJ2Key ];
	var params	=	new Array();
	
	for( var i = 0; i < grades.length; ++i )	{
		var g	=	grades[i];
		var obj	=	document.getElementById( g );
		
		if( obj.value != '' )	{
			params[ params.length ]	=	g + "=" + obj.value;
		}
	}
	
	if( params.length > 0 )	{
		var param	=	params.join( '&' );
		
		href	+=	'?' + param;
	}
	
	anchor.href	=	href;
}

function lu_init()	{
	var pla_ary	=	new Array(
		{ "key" : gJ1Key, "plastics" : gJ1PlaList, "grade" : gJ1Grade },
		{ "key" : gJ2Key, "plastics" : gJ2PlaList, "grade" : gJ2Grade }
	);
	
	for( var i = 0; i < pla_ary.length; ++i )	{
		var pla	=	pla_ary[i];
		
		gPlastics[ pla.key ]	=	lu_create_plastics( pla );
		
	}
}

lu_init();


