/******************************************************************************
 * 환경설정변수
 *****************************************************************************/

/* IE 사용시 화면 확대축소 비율 */
var ttsenv_zoomRate = 10;   /* 화면 확대축소 비율 변동폭 (% 단위) */
var ttsenv_zoommaxRate = 160;   /* 화면 확대축소시 원크기대 최대 확대비율 (% 단위) */
var ttsenv_zoomminRate = 100;   /* 화면 확대축소시 원크기대 최대 축소비율 (% 단위) */
var ttsenv_zoomDefault = 100;	/* 기본 화면 크기 */

/* NS 사용시 글자 확대축소 비율 */
var ttsenv_fontRate = 2;    /* 2pt 단위 */
var ttsenv_fontmaxRate = 19;    /* 최대 19pt */
var ttsenv_fontminRate = 9; /* 최소 9pt */
var ttsenv_fontDefault = '';    /* 디폴트 숫자 크기(CSS값) */

/* IE에도 글자 확대축소 사용여부 */
var ttsenv_mustadjustfont = false;


/******************************************************************************
 * 내부사용변수 (건드릴 필요없음)
 *****************************************************************************/

/* 현재 확대축소비율 */
var tts_curRate;

/* 현재글자크기 */
var tts_curfontsize;

/*브라우저 정보 변수 */
var userAgent = navigator.userAgent.toLowerCase();

/*브라우저 정보 객체 */
var browser =
{
	version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1],
	safari: /webkit/.test( userAgent ),
	opera: /opera/.test( userAgent ),
	msie: /msie/.test( userAgent ) && !/opera/.test( userAgent ),
	mozilla: /mozilla/.test( userAgent ) && !/(compatible|webkit)/.test( userAgent )
};

/******************************************************************************
 * 외부에서 사용할 주요 스크립트
 *****************************************************************************/


/* 내부 함수 : 쿠키 읽기, str = 읽어들일 쿠키 키 이름, defaultValue = 기본값 */
function zoom_readcookie(str, defaultValue)
{
	var key = str + "=" ;
	var key_len = key.length ;
	var cookie_len = document.cookie.length;
	var i = 0;
	while (i < cookie_len )
	{
		var j = i + key_len;
		if ( document.cookie.substring( i, j ) == key )
		{
			var cookie_end = document.cookie.indexOf(";",j);
			if (cookie_end == -1)
			{
				cookie_end = document.cookie.length;
			}
			return document.cookie.substring(j,cookie_end );
		}
		i++;
	}
	return defaultValue;
}

/* 쿠키 설정함수, key = 쿠키 키이름, value = 쿠키 키값, term = 유효일자(보통 1로 넣음) */
function zoom_setcookie(key, value, term)
{
	var expire = new Date();
	expire.setDate( expire.getDate() + term );
	document.cookie	= key + "=" + escape( value ) + "; domain=nhic.or.kr; path=/;";
}

/* 서브프레임 호출함수 */
function zoom_pushsub()
{
    if(tts_subcontrol!=null) {
        var st;
        if(uvoice_mode==true) {
            st="start";
        } else {
            st="stop";
        }
        tts_subcontrol.f_setotherck(ttsenv_mustadjustfont,tts_curfontsize,st,voice_volume);
    }
}



/* 화면 확대/축소 - 외부호출 */
/*****************************************************************************
 * f_scalescreen()
 *
 * 입력인수1 : mode = 0 현재값 유지, 1=확대, -1=축소
 * 역할 : 글자나 화면 확대 축소를 설정합니다. (ttsenv_mustabjustfont가
 *  true이거나 zoom 스타일을 지원하지 않는 경우 글자확대축소, 그 외는
 *  화면확대축소가 적용됩니다)
 *****************************************************************************/
function f_scalescreen(mode)
{
	f_scalescreenInter(mode)
}

function zoomHTML_IE8(zoomValue)
{
	document.body.style.zoom  = zoomValue + "%";
	applyOverflow(document.body, false);
}

function applyOverflow(rootNode, parentApply)
{
	var nodeItem;
	var isApply = parentApply;
	for(var i=0; i<rootNode.childNodes.length; i++)
	{
		nodeItem = rootNode.childNodes[i];
		if(nodeItem.nodeType == "1")
		{
			if (!parentApply)
			{
				nodeItem.style.overflow = "hidden";
				isApply = true;
			}
			applyOverflow(rootNode.childNodes.item(i),isApply);
		}
	}
}

function zoomHTML_IE7(zoomValue)
{
	applyZoom(document.body, false, zoomValue);
}

function applyZoom(rootNode, parentZoom, zoomValue)
{
	var nodeItem;
	var isZoom = parentZoom;
	for(var i=0; i<rootNode.childNodes.length; i++)
	{
		nodeItem = rootNode.childNodes[i];
		if(nodeItem.nodeType == "1")
		{
			if (!parentZoom)
			{
				nodeItem.style.zoom = zoomValue+ "%";
				isZoom = true;
			}
			applyZoom(rootNode.childNodes.item(i),isZoom, zoomValue);
		}
	}
}

//확대 축소 함수
function zoomHTML(zoomValue)
{
	if (browser.msie)
	{
		if(browser.version == "8.0")
		{zoomHTML_IE8(zoomValue);}else
		{zoomHTML_IE7(zoomValue);}
	}
}

function f_scalescreenInter(mode)
{
	function zoom_subframesize(win,param)
	{
		if(win!=this)
		{
			if(win.f_setFontColor2!=null)
			win.f_setFontColor2(param);
		}
		if(win.frames.length>0)
		{
			var i;
			for(i=0;i<win.frames.length;i++)
			zoom_subframefont(win.frames[i],param);
		}
	}

	if((document.body.style.zoom==null)||(ttsenv_mustadjustfont==true))
	{
		/* 글자확대축소기능 사용시 */
		if(mode==1)
		{
			/* 확대 */
			if(tts_curfontsize==null)
				tts_curfontsize=ttsenv_fontminRate;
			else if(tts_curfontsize=='')
				tts_curfontsize=ttsenv_fontminRate;
			else
			{
				tts_curfontsize=tts_curfontsize-(-ttsenv_fontRate);
				if(tts_curfontsize>ttsenv_fontmaxRate)
					tts_curfontsize=ttsenv_fontmaxRate;
			}
		} else if(-1)
		{
			/* 축소 */
			if(tts_curfontsize!=null)
			{
				if(tts_curfontsize!='')
				{
					tts_curfontsize=tts_curfontsize-ttsenv_fontRate;
					if(tts_curfontsize<ttsenv_fontminRate)
                                                tts_curfontsize='';
				}
			}
		}
		zoom_setcookie("fontSize", tts_curfontsize, 1);
		zoom_setface();
                zoom_pushsub();
	} else
	{
		/* 화면확대축소기능 사용시 (비표준 zoom스타일 사용) */
		if(tts_curRate==null)
			tts_curRate=ttsenv_zoomDefault;
		if(tts_curRate=='')
			tts_curRate=ttsenv_zoomDefault;
		if (mode==1)
		{
			/* 확대시 */
			tts_curRate=tts_curRate-(-ttsenv_zoomRate);
			if(tts_curRate>ttsenv_zoommaxRate)
				tts_curRate=ttsenv_zoommaxRate;
		} else
		if (mode==-1)
		{
			/* 축소시 */
			tts_curRate=tts_curRate-ttsenv_zoomRate;
			if(tts_curRate<ttsenv_zoomminRate)
				tts_curRate=ttsenv_zoomminRate;
		}
		if(tts_curRate>ttsenv_zoommaxRate)
			tts_curRate = ttsenv_zoommaxRate;
		if(tts_curRate<ttsenv_zoomminRate)
			tts_curRate = ttsenv_zoomminRate;

		zoomHTML(tts_curRate);
		zoom_setcookie("zoomVal",tts_curRate, 1);
	}
}

