//-------------------------------------
//	ICS
//	2003.11.29	修正 chgMode 在使用複合條件時, 會重覆捉圖的錯誤
//	2004.06.29	預設取得 window 尺寸資料
//	2005.07.01	變更	chgMode 變更按鍵前，先檢查是否有設定按鍵
//	2005.07.26	增加	getRadioValue
//	2008.02.15	移植	由 auto-online 轉入
//
function	chgMode(formName) {
	var	value,mode,len,defa	;
	for	( part = 0 ; part < csiMode.length ; part ++ ) {
		if	(csiName[part] != formName) continue ;
		fieldsEN	=	eval('fieldsEN'+part) ;
		fieldsMODE	=	eval('fieldsMODE'+part) ;
		csiButton	=	eval('csiButton'+part) ;
		csiOrButton	=	eval('csiOrButton'+part) ;
		csiImage	=	eval('csiImage'+part) ;
		csiOrImage	=	eval('csiOrImage'+part) ;
		csiMode[part]	=	1 ;
		csiOrMode[part]	=	0 ;
		skip			=	false ;
		for	(x = 0 ; x < fieldsEN.length ; x++) {
			if	(skip)	break ;
			fieldSignal	=	true ;
			fieldResult	=	false ;
			if		(fieldsEN[x].indexOf('csiMode') >= 0)	fieldResult	=	eval(fieldsEN[x])
			else if (fieldsEN[x].indexOf('csiOrMode') >= 0)	fieldResult	=	eval(fieldsEN[x])
			else if	(eval('document.' + formName + '.' + fieldsEN[x])) {
				value		=	eval('document.' + formName + '.' + fieldsEN[x]).value ;
				mode		=	eval('document.' + formName + '.' + fieldsEN[x]).checked ;
				len			=	eval('document.' + formName + '.' + fieldsEN[x]).length ;
				if		(fieldsMODE[x] == 'true')	fieldResult	= true ;
				else if	(fieldsMODE[x] == 'int')	fieldResult	= (value > 0) ? true : false ;
				else if (fieldsMODE[x] == '1')		fieldResult	= value.length ;
				else if	(len > 0)	{	//	For Radio objects
					if	(fieldsMODE[x] != false)	{
						fieldSignal	=	false ;
						for	(i = 0 ; i < len ; i++) {
							if	(eval('document.' + formName + '.' + fieldsEN[x])[i].checked &&
								 eval('document.' + formName + '.' + fieldsEN[x])[i].value == fieldsMODE[x])	fieldResult = true ;
						}
						if	(fieldResult == false)	skip	=	true ;
					}
					else	{
						for	(i = 0 ; i < len ; i++) {
							if		(eval('document.' + formName + '.' + fieldsEN[x])[i].checked == true	)	fieldResult = true ;
							else if	(eval('document.' + formName + '.' + fieldsEN[x])[i].selected == true &&
								 eval('document.' + formName + '.' + fieldsEN[x])[i].value != ''	)	fieldResult = true ;
						}
					}
				}
				else if (typeof(fieldsMODE[x]) == 'boolean')	fieldResult	=	mode ;

				if	(eval('document.img'+fieldsEN[x]) && fieldSignal)	{
					if	(fieldResult == false || fieldResult == 0)	{
						fieldResult	=	false ;
						if	(fieldResult != csiBalls[part * 100 + x].mode)	{
							eval('document.img'+fieldsEN[x]).src	=	redBall.src ;
							csiBalls[part * 100 + x].mode			=	fieldResult ;
						}
					}
					else							{
						fieldResult	=	true ;
						if	(fieldResult != csiBalls[x].mode)	{
							eval('document.img'+fieldsEN[x]).src	=	greenBall.src ;
							csiBalls[part * 100 + x].mode			=	fieldResult ;
						}
					}
				}
				if	(fieldResult == false || fieldResult == 0)	{
					$('div#div'+fieldsEN[x]).html('<FONT STYLE="color:red;font-size:11px">◎</FONT>') ;
				}
				else	{
					$('div#div'+fieldsEN[x]).html('<FONT STYLE="color:C0C0C0;font-size:11px">◎</FONT>') ;
				}
				// 欄位類別變更
				$('#' + formName).find('TABLE').find('TR[@FIELD=' + fieldsEN[x] + '] TD.form_field')
					.each(function(){
						if		(fieldSignal && $(this).hasClass('status_normal') && (fieldResult == false || fieldResult == 0))	{
							$(this).removeClass('status_normal').addClass('status_warning') ;
						}
						else if	(fieldSignal && ($(this).hasClass('status_error') || $(this).hasClass('status_warning')) && fieldResult)	{
							$(this).removeClass('status_error').removeClass('status_warning').addClass('status_normal') ;
						}
					});
			}
			if		(fieldResult > 0)		{ csiMode[part] *= 1 ; }
			else if	(fieldResult == true)	{ csiMode[part] *= 1 ; }
			else if	(fieldResult == false)	{ csiMode[part] *= 0 ; }
			csiOrMode[part]	= fieldResult || csiOrMode[part] ;
		}
		//	整理全體比對過後的狀態
		if	(csiMode[part])	{
			for	( i = 0 ; i < csiButton.length ; i ++ ) {
				if	(eval('document.' + formName + '.CMD' + csiButton[i])) {
					eval('document.' + formName + '.CMD' + csiButton[i]).disabled = false ;
				}
				$(':button[@name=CMD' + csiButton[i] + ']').attr('disabled',false) ;
			}
			for	( i = 0 ; i < csiImage.length ; i ++ )	{
				if	(csiBalls[part * 100 + i].mode == false && eval('document.img'+csiImage[i])) {
					csiBalls[part * 100 + i].mode		=	true ;
					eval('document.img'+csiImage[i]).src=	greenBall.src ;
				}
				$('div#div'+csiImage[i]).html('<FONT STYLE="color:C0C0C0;font-size:11px">◎</FONT>') ;
				// 欄位類別變更
				$('#' + formName).find('TABLE').find('TR[@FIELD=' + csiImage[i] + '] TD.form_field')
					.each(function(){
						if	(($(this).hasClass('status_error') || $(this).hasClass('status_warning')))	{
							$(this).removeClass('status_error').removeClass('status_warning').addClass('status_normal') ;
						}
					});
			}
		}
		else {
			for	( i = 0 ; i < csiButton.length ; i ++ ) {
				if	(eval('document.' + formName + '.CMD' + csiButton[i])) {
					eval('document.' + formName + '.CMD' + csiButton[i]).disabled = true ;
				}
				$(':button[@name=CMD' + csiButton[i] + ']').attr('disabled',true) ;
			}
			for	( i = 0 ; i < csiImage.length ; i ++ )	{
				if	(csiBalls[part * 100 + i].mode == true && eval('document.img'+csiImage[i])) {
					csiBalls[part * 100 + i].mode		=	false ;
					eval('document.img'+csiImage[i]).src	=	redBall.src ;
				}
				$('div#div'+csiImage[i]).html('<FONT STYLE="color:red;font-size:11px">◎</FONT>') ;
				// 欄位類別變更
				$('#' + formName).find('TABLE').find('TR[@FIELD=' + csiImage[i] + '] TD.form_field')
					.each(function(){
						if	($(this).hasClass('status_normal'))	{
							$(this).removeClass('status_normal').addClass('status_warning') ;
						}
					});
			}
		}
		if	(csiOrMode[part])	{
			for	( i = 0 ; i < csiOrButton.length ; i ++ )	{
				if	(eval('document.' + formName + '.CMD' + csiOrButton[i])) {
					eval('document.' + formName + '.CMD' + csiOrButton[i]).disabled = false ;
				}
				$(':button[@name=CMD' + csiButton[i] + ']').attr('disabled',false) ;
			}
			for	( i = 0 ; i < csiOrImage.length ; i ++ )	{
				if	(csiBalls[part * 100 + i].mode == false && eval('document.img'+csiOrImage[i])) {
					csiBalls[part * 100 + i].mode		=	true ;
					eval('document.img'+csiOrImage[i]).src	=	greenBall.src ;
				}
				$('div#div'+csiOrImage[i]).html('<FONT STYLE="color:C0C0C0;font-size:11px">◎</FONT>') ;
				// 欄位類別變更
				$('#' + formName).find('TABLE').find('TR[@FIELD=' + csiOrImage[i] + '] TD.form_field')
					.each(function(){
						if	(($(this).hasClass('status_error') || $(this).hasClass('status_warning')))	{
							$(this).removeClass('status_error').removeClass('status_warning').addClass('status_normal') ;
						}
					});
			}
		}
		else {
			for	( i = 0 ; i < csiOrButton.length ; i ++ )	{
				if	(eval('document.' + formName + '.CMD' + csiOrButton[i])) {
					eval('document.' + formName + '.CMD' + csiOrButton[i]).disabled = true ;
				}
				$(':button[@name=CMD' + csiButton[i] + ']').attr('disabled',true) ;
			}
			for	( i = 0 ; i < csiOrImage.length ; i ++ )	{
				if	(csiBalls[part * 100 + i].mode == true && eval('document.img'+csiOrImage[i])) {
					csiBalls[part * 100 + i].mode		=	false ;
					eval('document.img'+csiOrImage[i]).src	=	redBall.src ;
				}
				$('div#div'+csiOrImage[i]).html('<FONT STYLE="color:red;font-size:11px">◎</FONT>') ;
				// 欄位類別變更
				$('#' + formName).find('TABLE').find('TR[@FIELD=' + csiOrImage[i] + '] TD.form_field')
					.each(function(){
						if	($(this).hasClass('status_normal'))	{
							$(this).removeClass('status_normal').addClass('status_warning') ;
						}
					});
			}
		}
	}
}
function initCsiBalls() {	//	單項最多允許 100 項欄位設定
	var	value,mode,len,defa	;
	for	( part = 0 ; part < csiMode.length ; part ++ ) {
		fieldsEN	=	eval('fieldsEN'+part) ;
		for (x = 0 ; x < fieldsEN.length ; x++) {
			csiBalls[part * 100 + x]	=	new csiBall(fieldsEN[x],false) ; // 先定義燈號物件
		}
	}
}
function	csiBall(name,mode) {
	this.name	=	name ;
	this.mode	=	mode ;
}