/**
 * 재난*재해 ( DISASETER ) 스크립트를 출력하기 위한 함수
 */

function scroll() {
	if(parseInt(document.all.roller.style.top) > -350) {
		document.all.roller.style.top = parseInt(document.all.roller.style.top) - 2
	} else {
		document.all.roller.style.top = parseInt(document.all.roller.style.top) + 670
	}
}
function rulla() {
	setInterval("scroll()", 50)
}


// global
var _disaster_timer = null;
var _disaster_roller = null;

// 주기적으로 스크립트를 재호출하는 타이머를 작동시킨다.
function fnStartDisasterTimer(type) {
	clearTimeout(_disaster_timer); // clear timer
	if (_disaster_roller)
		_disaster_roller.stop(); // stop roller
	fnLoadDisasterData(type); // DISAster 스크립트 호출
	_disaster_timer = setTimeout("fnStartDisasterTimer('" + type + "')", 1000 * 60 ); // timer-on : 10000 - 10s  , 5000 - 5s
}

/****
// 스크립트 데이터 load
function fnLoadDisasterData(type) {
	var url = "/news/actions/DisasterAction?cmd=getDisasterJSON";
	var params = "&grade=" + type;
	var loader = new net.ContentLoader(url, fnParseDisasterJSON, fnOnAsyncCallError, "POST", params);
}
***/

var xmlhttp = false;
if (window.XMLHttpRequest) {
   xmlhttp = new XMLHttpRequest(  );
} else if (window.ActiveXObject) {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

function fnLoadDisasterData( grade ) {

  _CURRENT_FETCHED_GRADE_ = grade;

  var url = "http://news.kbs.co.kr/news/actions/DisasterAction?cmd=getDisasterJSON&grade="+grade;
////  var url = "http://news.kbs.co.kr/news/actions/DisasterAction?cmd=getDisasterJSONFile&grade="+grade;

   xmlhttp.open('GET', url, false);
   xmlhttp.onreadystatechange = getDisaster;

   xmlhttp.send(null);
}

// global

var _CURRENT_FETCHED_GRADE_   = '';
var _Max_Count_Msg_           = 3 ;

var _Has_Already_Disaster_Alerted_   = false; 
// var _Has_Not_Been_Listed_General_Msg_ = true;

var divNoneDsMsg = "";
divNoneDsMsg   = "<ul style='line-height:22px; font-size:14px; letter-spacing:-0.09em'>";
divNoneDsMsg += "<li> * <strong>현재, 기상청에서 발표하는 특보사항이 없습니다.</strong> </li>";
divNoneDsMsg += "<li>&nbsp;&nbsp;※ 기상청(<a href='http://www.kma.go.kr/weather/main.jsp' target='_blank'>www.kma.go.kr</a>)";
divNoneDsMsg +=                              "에서는 각종 기상 현상이 특보의 발표 기준에 도달할 것이 예상될 때,";
divNoneDsMsg += "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;해당 현상에 대한 주의보 및 경보를 발표하고 있습니다.</li>";
divNoneDsMsg += "<li> &nbsp;&nbsp;※ 기상청 발표 기상특보와, 시스템 연동 등의 이유로, 다소 시간 차이가 발생할  수 있습니다.";
divNoneDsMsg += "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;보다 정확한 특보사항은 <a href='http://www.kma.go.kr/' target='_blank'>기상청 홈페이지</a>에서 확인하실 수 있습니다. </li> ";
divNoneDsMsg += "<li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;▷ 바로가기 : <a href='http://www.kma.go.kr/' target='_blank'>기상청 홈페이지</a>, ";
divNoneDsMsg += "&nbsp;<a href='http://www.kma.go.kr/weather/main.jsp' target='_blank'>기상청 날씨</a></li>";
divNoneDsMsg += "<ul>";

function getDisaster(  ) 
{
	// 재난 메시지 중 1~2등급이 있을 경우를 체크하기 위해, 
	var isThereGrade_A = false;
    var id = grade = msg = detail = warn_var = warn_var_nm = warn_stress = warn_stress_nm = prefix =  null;
	var d_msg =  "";
	var tm_fc = "";
	var div_msg = "";
    var i_cnt_msg = 0;
	
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) 
{
	try {
	
		 eval("var response = ("+xmlhttp.responseText+")");
		//alert("response.length : " + response.length + "\n" +"response  : " + response );
		
		//      var scroll_msg = ""; 
		for (var i = response.length -1; i >= 0 ; i--) 
		{
			msg = "";
			prefix = "";
			id       		= response[i].ID;
			grade  		= response[i].GRADE;
			warn_var  	= response[i].WARN_VAR;
			warn_var_nm  	= response[i].WARN_VAR_NM;
			warn_stress	= response[i].WARN_STRESS;
			warn_stress_nm= response[i].WARN_STRESS_NM;
			msg   		= response[i].MSG;
			detail 		= response[i].DETAIL;
			if(i ==  response.length -1)
				tm_fc       = response[i].TMFC;
			
			// 1,2등급(grade a) 일 경우 , '실시간 특보' 빨간색 탭 이미지 표시
			if ( "1" == grade || "2" == grade ) {
				isThereGrade_A = true;

				// 1,2등급(grade a) 일 경우 , '<' '>' 를 이용하여 특보종류, 강보를 추가
				if ( "31" == warn_var  || "32" == warn_var || "33" == warn_var) {
					prefix = "◆" + warn_var_nm +"◆";
				} else if (   ( "7" == warn_var || "10" == warn_var || "11" == warn_var) && "0" != warn_stress  ) {
					  // 태풍(태풍/비/바람) 경보(=>> 태풍경보일 경우 종류가 태풍비/바람일때 등급 1/2/3을 의미)
					prefix = "◆" + warn_var_nm + warn_stress_nm+"◆";
				} else if (   ( "2" == warn_var || "3" == warn_var || "5" == warn_var || "8" == warn_var || "9" == warn_var || "12" == warn_var) && "1" == warn_stress  ) {
					  // 2:호우, 3:한파, 5:해일, 8:대설, 9:황사, 12:폭염 - 경보(1)일 경우
					prefix = "◆" + warn_var_nm + warn_stress_nm+"◆";
				} 
			}// end of 	if ( "1" == grade || "2" == grade ) {
			
			
			// 짧은 메시지가 1건 이라도 존재해야, d_msg 작성
			if (msg != null &&  ""!= msg) {

                            	if ( "all" != _CURRENT_FETCHED_GRADE_ && i_cnt_msg >= _Max_Count_Msg_ )
                                	break;

                                while (msg.indexOf("[기상청 발표]") > -1 )
                                        msg = msg.replace("[기상청 발표]","");

				d_msg += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
				d_msg += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+ prefix +  msg ;

                            	i_cnt_msg ++;
			}
						
	//		scroll_msg += msg + "<br><br>";
			if (div_msg == null || "" == div_msg)    {
				div_msg = "<ul>"
			}
			
			if (detail != null && "" != detail )  {
				div_msg +=  "<li style='line-height:22px; font-size:15px; letter-spacing:-0.09em'> *&nbsp;" + detail + "</li>";
//				div_msg +=  "<li> *&nbsp;" + detail + "</li>";
			}
		}// end of for (var i = 0; i < response.length; i++) 
		
		if (div_msg != null && ! "" == div_msg )      {
			div_msg +=  "</ul>";
		} // end of if (div_msg != null && ! "" == div_msg )      {
	
		/***
		// for test
		var roller = document.getElementById("roller");
		if (roller)
			roller.innerHTML = scroll_msg;
		****/
		
		// 유효 재해 메시지가 존재할 경우..
	         if ( response!= null && parseInt(response.length) > 0 )
	         {
			// 재난 메시지가 있는  경우, (있더라도 3~5등급은 짧은 메시지가 없을 수 있으므로,) '실시간 특보' 영역 표시
                        var nfDiv = document.getElementById('newsflash');
                        var vWrap = document.getElementById('wrap');
                        //alert("d_msg >>" + d_msg + "<<\nd_msg >><<"); 
                        if (d_msg == null ||  "" == d_msg )  {
                                if (nfDiv)  {
                                        nfDiv.style.display = "none";
                                }
                                // top-image, 정상 이미지로 변경
                                if (vWrap &&  _Has_Already_Disaster_Alerted_ ) {
                                        vWrap.style.background = "url('http://news.kbs.co.kr/images/2011/disaster/header_bg01.jpg') top center no-repeat";
                                }
                        } else {
                                if (nfDiv && (d_msg != null &&  "" != d_msg) )  {
                                        nfDiv.style.display = "";
                                }
                                // top-image, 번개, 태풍, 지진 이미지로 변경
                                if (vWrap &&  ! _Has_Already_Disaster_Alerted_ ) {
                                        vWrap.style.background = "url('http://news.kbs.co.kr/images/2011/disaster/header_bg02.jpg') top center no-repeat";
                                }
                        }//


			// 실시간 특보         
			var layer = document.getElementById("disaster_marquee");
			if (layer && (d_msg != null &&  "" != d_msg) )
				layer.innerHTML =  d_msg ;
		
			// 재해/기상 특보 DIV
			var divbox = document.getElementById("breaking_news");
			if(divbox)	{
				if(tm_fc.length==12){
					div_msg = "["+ tm_fc.substr(0,4)+"."+ tm_fc.substr(4,2)+"."+ tm_fc.substr(6,2)+" "+ tm_fc.substr(8,2)+":" +tm_fc.substr(10,2)+" 현재]<br><br>" + div_msg;
				}
				 //alert("div_msg :" + div_msg);
                                while (div_msg.indexOf("\r\n") > -1 )
                                        div_msg = div_msg.replace("\r\n","<br/>");

				divbox.innerHTML = div_msg;
			}	

			// to-do, 1,2 등급 데이터 존재할 때만, '실시간 특보' 빨간색 탭 이미지 표시 ====================
			if (isThereGrade_A)	{
				//'실시간 특보' 빨간색 탭, 이미지 표시
				var redImgTab = document.getElementById("disa_img");
				if(redImgTab)	{
					//redImgTab.innerHTML = '<img src="http://news.kbs.co.kr/images/2011/disaster/newsflash_ico2.gif" alt="실시간특보" />';
//					redImgTab.innerHTML = "<script type='text/javascript'>flashWrite('http://news.kbs.co.kr/images/2011/disaster/ico.swf',77,22,'spot','','','transparent');</script>";
				} 	
				//실시간 특보, marquee를 담고 있는 ul,  class 변경
				var disUl = document.getElementById("disa_ul");
				if(disUl)	{
					disUl.className = 'a';
				} 	
			} else {
				//'실시간 특보' 빨간색 탭, 이미지 제거
				var redImgTab = document.getElementById("disa_img");
				if(redImgTab)	{
					redImgTab.innerHTML = '&nbsp;';
					redImgTab.style.width = '0';
				} 	
				//실시간 특보, marquee를 담고 있는 ul,  class 변경
				var disUl = document.getElementById("disa_ul");
				if(disUl)	{
					disUl.className = 'b';
				} 	
			}
			_Has_Already_Disaster_Alerted_ = true;
			// 기본 안내 메시지 미표시 여부
			// _Has_Not_Been_Listed_General_Msg_ = true;
	         } else {	         	
			// 유효 재해 메시지가 없는 경우..
			removeDisasterMsgDisplayArea(); 
			// 재난 메시지 발행 여부
			_Has_Already_Disaster_Alerted_ = false;
	          } // end of if ( response!= null && parseInt(response.length) > 0 )
	
	      } catch (e) {
	           //alert(e.message);
	      } finally {
        	id = grade = msg = detail = warn_var = warn_var_nm = warn_stress = warn_stress_nm = prefix = d_msg = div_msg =  isThereGrade_A = tm_fc = null;
	      }// end of try
	      // end of if(xmlhttp.readyState == 4 && xmlhttp.status == 200) 
   } else {
   	// else of if(xmlhttp.readyState == 4 && xmlhttp.status == 200) 
   	/**
  	removeDisasterMsgDisplayArea(); 
	_Has_Already_Disaster_Alerted_ = false;
	**/
/**
	var layer = document.getElementById("disaster_marquee");
	if (layer)
		layer.innerHTML = "재난 정보를 확인 할 수 없습니다.";
	// 재해/기상 페이지의 특보 정보 표시 영역 
	var divbox = document.getElementById("breaking_news");
	if(divbox)	{ 
		//divbox.innerHTML = "재난 정보를 확인 할 수 없습니다.";
		divbox.innerHTML = divNoneDsMsg;
	}	
**/
   } // end of  if(xmlhttp.readyState == 4 && xmlhttp.status == 200)  {} else { }
}//:~~


function removeDisasterMsgDisplayArea() {
	//         	alert("display block parseInt(response.length):" + parseInt(response.length));
	// 재난 메시지가 없을 경우, , '실시간 특보' 영역 제거
	try {
		var nfDiv = document.getElementById('newsflash');
		if (nfDiv) {  nfDiv.style.display = "none";  }
	
		// 유효 재해 메시지가 없거나, Ajax프로세스에 오류(서버 죽거나..) top-image, 정상 기상/재해 이미지로 변경
		var vWrap = document.getElementById('wrap');
		if (vWrap  &&   _Has_Already_Disaster_Alerted_ ) {
			vWrap.style.background = "url('http://news.kbs.co.kr/images/2011/disaster/header_bg01.jpg') top center no-repeat"; 
		}
	
		
		// 재해/기상 페이지의 특보 정보 표시 영역 
		var divbox = document.getElementById("breaking_news");
		//if(divbox &&  _Has_Not_Been_Listed_General_Msg_ )	{ 
		if(divbox ) { 
			divbox.innerHTML = divNoneDsMsg;
			// _Has_Not_Been_Listed_General_Msg_ = false;
		}	
	}finally {
		nfDiv = vWrap = divbox =  null;
	}
}//:~~
 


// ajax 호출 오류
function fnOnAsyncCallError() {
//         alert("ajax error #3");
	var layer = document.getElementById("disaster_marquee");
	if (layer)
		layer.innerHTML = '재난 속보 기사를 확인 할  수 없습니다';
      	var divbox = document.getElementById("breaking_news");
	if(divbox)	{
		//divbox.innerHTML = '재난 속보 기사를 확인 할  수 없습니다';
		divbox.innerHTML = divNoneDsMsg;
	}
}//:~~


// 가장 최근(마지막) 기상 VOD (오늘의 날씨) 정보를 획득
function fnGetLateWeatherVod(  ) {

  var url = "http://news.kbs.co.kr/news/actions/DisasterAction?cmd=getLateWeatherVod";

   xmlhttp.open('GET', url, false);
   xmlhttp.onreadystatechange = setWeatherVodInfo;

   xmlhttp.send(null);
}//:~~

function setWeatherVodInfo(  ) 
{
	// 기상 VOD 정보
        var news_code = contents_code = news_title = broad_code = broad_date = img_url  = strClick = reg_date =  null;
        var a_vod_url  = b_vod_url  = c_vod_url  = d_vod_url  = e_vod_url  = f_vod_url  = g_vod_url  = h_vod_url  =  null;
	
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) 
{
	try {
	
		 eval("var response = ("+xmlhttp.responseText+")");
		//alert("response.length : " + response.length + "\n" +"response  : " + response );
		
		//      var scroll_msg = ""; 
		for (var i = 0; i < response.length; i++) 
		{

			news_code	= response[i].NEWS_CODE;
			news_title 	= response[i].NEWS_TITLE;
			contents_code	= response[i].CONTENTS_CODE;
			broad_code  	= response[i].BROAD_CODE;
			broad_date	= response[i].BROAD_DATE;
			img_url		= response[i].IMG_URL;
			a_vod_url 		= response[i].A_VOD_URL;
			b_vod_url 	= response[i].B_VOD_URL;
			c_vod_url 		= response[i].C_VOD_URL;
			d_vod_url 	= response[i].D_VOD_URL;
			e_vod_url 		= response[i].E_VOD_URL;
			f_vod_url 		= response[i].F_VOD_URL;
			g_vod_url 	= response[i].G_VOD_URL;
			h_vod_url 	= response[i].H_VOD_URL;
			reg_date    = response[i].REG_DATE;
		}// end of for (var i = 0; i < response.length; i++) 
		
		// 유효 재해 메시지가 존재할 경우..
	         if ( response!= null && parseInt(response.length) > 0 )
	         {
	         	if ( d_vod_url != null && "" != d_vod_url && f_vod_url != null && "" != f_vod_url ) {
	         		// 일반적인 경우, D, F 급(고화질) 영상정보가 들어옴...
	         		strClick = " onclick=\"fnOpenVodPlayer('D|10|"+d_vod_url+"|N||F|10|"+f_vod_url+"|N', '&news_code="+news_code+"');\"  "
	         	} else {
	         	 	// 그렇지 않다면...정확한 처리 to-be here
	         		strClick = " onclick=\"alert('고화질 영상정보를 확인할 수 없습니다');\"  "
	         	}	
			//기상영상 이미지가 있을 경우
	        var weatherHeader = document.getElementById('weather_header');
	        if( reg_date.length == 10){
	        	weatherHeader.innerHTML ="오늘의 날씨 [" + reg_date.substr(0,4)+"."+ reg_date.substr(4,2)+"."+ reg_date.substr(6,2)+" "+ reg_date.substr(8,2) +"시]";
	        }
			var weatherPic = document.getElementById('weather_pic');
			if (weatherPic ) {
				weatherPic.innerHTML= "<img src='http://news.kbs.co.kr/"+ img_url +"' alt='' width='193' height='137' style='cursor:pointer'  "+ strClick+" />"; 
			}


			// 영상 메시지         
			var layer = document.getElementById("weather_title");
			if (layer )
				layer.innerHTML = '<font face="Arial" size="2">' + news_title + '</font>';
	         } else {	         	
			// 유효 기상 정보가 없는 경우..
	          } // end of if ( response!= null && parseInt(response.length) > 0 )
	
	      } catch (e) {
	           alert(e.message);
	      } finally {
		  news_code = contents_code = news_title = broad_code = broad_date = img_url  =  strClick = null;
		  a_vod_url  = b_vod_url  = c_vod_url  = d_vod_url  = e_vod_url  = f_vod_url  = g_vod_url  = h_vod_url  =  null;
	      }// end of try
	      // end of if(xmlhttp.readyState == 4 && xmlhttp.status == 200) 
   } else {
   	// else of if(xmlhttp.readyState == 4 && xmlhttp.status == 200) 
   	// 시스템 접근 불가시...
   } // end of  if(xmlhttp.readyState == 4 && xmlhttp.status == 200)  {} else { }
}//:~~


