/*

* Usage : 

*   Weather.datetime = {year:'2009',month:'09',date:'01',kr:'Όφ', en:'WED'};

*   Weather.interval = 2;

*   Weather.slide();

*/

var Weather = {

    

    datetime: undefined,                                      /* Date info. {year,month,date,kr,en} */

    url:'http://www.yonhapnews.co.kr/weather/wxbn_mobile.txt',/* URL of weather data (JSON) */

    interval:1,                                               /* Interval(seconds) to change weather info. */

    index:0,                                                  /* Index of current info(displaying). */

    json:undefined,                                           /* Weather info. (JSON) */

    html:'',                                                  /* HTML created by JSON */

    thread:undefined,                                         /* setTimeoutID */

    div:undefined,                                            /* Element to display weather info */

    

    /* Function for loading weather info. - should call at first 

    *  div : Element(id) to display

    *  eng : English mode ? 

    */

    load: function(div,eng)

    {

        if (!div  || !$(div))

            return;

        Weather.div = $(div);   

        if (!Weather.json)

            Weather.json = eval($txt(Weather.url));

            

        var html = '';

        var ddd = '';

        if (Weather.datetime)

            ddd += Weather.datetime.month + "." + Weather.datetime.date + " " + ((!eng) ? Weather.datetime.kr : Weather.datetime.en);

        

        for (var i=0; i<Weather.json.length; i++)

        {

            if (i>0)            

                html += "<div id='weather" + i + "' style='display:none' border='0'><p>" + ddd + "<a href=http://www.yonhapnews.co.kr/weather/index.html target=_top><img src='" + Weather.json[i].img + "' border='0' align='absmiddle'/></a><span class='city'>" + Weather.json[i].city + "</span><span class='temper'> " + Weather.json[i].temp + "'C </span></p></div>\n";

            else

                html += "<div id='weather" + i + "' border='0'><p>" + ddd + "<a href=http://www.yonhapnews.co.kr/weather/index.html target=_top><img src='" + Weather.json[i].img + "' border='0' align='absmiddle'></a><span class='city'/>" + Weather.json[i].city + "</span><span class='temper'> " + Weather.json[i].temp + "'C </span></p></div>\n";  

        }   

        Weather.html = html;

        $(div).innerHTML = Weather.html;

    },

    get : function(file,cache)
	{
		return $txt(file, cache);
	},

    /* Function for replacing weather info. - Once call! Auto-replacing */

    slide: function()

    {

        if (Weather.json == null)

        {

            return;

        }   

        

        clearTimeout(Weather.thread);

        

        if ($(Weather.div))     

        {   

            $hide('weather' + Weather.index);

            Weather.index = (Weather.index+1) % Weather.json.length;

            $show('weather' + Weather.index);

 

            if (!isNaN(Weather.interval) && Weather.interval > 0)

            {

                Weather.thread = setTimeout(Weather.slide, Weather.interval*1000);

            }   

        }

    }   

}

 

 

function $(id)

{

    if (typeof id == 'string')

    {

        return document.getElementById(id);

    }

    return id;

}

function $show(id,val)

{

    var e = $(id);

    if (e)

    {

        if (val)

            e.style.display = val;

        else

            e.style.display = '';

    }

}

function $hide(id,toggle)

{

    var e = $(id);

    if (e)

    {

        if (toggle)

        {

            if (e.style.display == 'none')

                e.style.display = '';

            else

                e.style.display = 'none';

        }

        else

            e.style.display = 'none';

    }

}
function $txt(fileName)
{
	var file;

	var xmlDom = createDocument();
	window.status = 'Loading: [' + fileName + ']';
	xmlDom.open('GET',fileName,false);
	xmlDom.send(null);
	var notYet = true;

	while(notYet)
	{
		if (xmlDom.readyState == 4)
			notYet = false;
	}
	file = xmlDom;
	window.status = '';
	if (file)
		return file.responseText;
	else
		return null;
}
var versionList = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP.2.0"];
function createDocument()
{
	if (window.ActiveXObject)
	{
		for (i=0; i<versionList.length; i++)
		{
			try
			{
				var dom = new ActiveXObject(versionList[i]);
				return dom;
			}catch(e)
			{
				//alert(e);
			}
		}
		throw new Error("MSXML is not installed.");
	}
	else
	{
		window.status = 'is not Window';
		var dom = new XMLHttpRequest();
		return dom;
	}
}




