// XMLHttpRequestオブジェクト生成
function createHttpRequest()
{
    var xmlhttp = null;

    if(window.ActiveXObject){
        try {
        // MSXML2以降用
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP") ;
        } catch (e) {
            try {
                // 旧MSXML用
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP") ;
            } catch (e2) {

            }
        }
    } else if(window.XMLHttpRequest){
        // Win Mac Linux m1,f1,o8 Mac s1 Linux k3用
        xmlhttp = new XMLHttpRequest() ;

        // Mozilla対応（バージョンにより、サーバーからXML mime-type のヘッダが
        //              帰ってこない場合、正常に動作しないことがある）
//        xmlhttp.overrideMimeType('text/xml');
    } else {

    }
    if (xmlhttp == null) {
        alert('Giving up :( Cannot create an XMLHTTP instance');
    }

    return xmlhttp;
}

// 送信処理
function sendRequest (xmlhttp, method, url, async, data, callback)
{
    //ブラウザ判定
    var ua = navigator.userAgent;
    var safari  = ua.indexOf("Safari")!=-1;
    var konqueror = ua.indexOf("Konqueror")!=-1;
    var mozes = ((a = navigator.userAgent.split("Gecko/")[1] )
                   ? a.split(" ")[0] : 0) >= 20011128 ;

    // サーバーからの受信処理
    // opera       : onreadystatechangeに多重レスバグがあるのでonloadが安全
    // Moz,FireFox : readyState==3でも受信するので通常はonloadが安全
    // Win ie      : onloadは動作しない
    // Konqueror   : onloadが不安定
    if(window.opera || safari || mozes){
        xmlhttp.onload = function ()
        {
            callback(xmlhttp);
        }
    } else {
        xmlhttp.onreadystatechange = function ()
        {
            // サーバーからの応答判定
            //   0 : 初期化されていません
            //   1 : 読み込み中です
            //   2 : 読み込み完了
            //   3 : 双方向に扱えます
            //   4 : すべて完了しました
            if (xmlhttp.readyState == 4) {

                // サーバーの応答コード判定
                //   200 : OK
                if (xmlhttp.status == 200) {
                    callback(xmlhttp);
                } else {
                    alert("There was a problem with the request.");
                }
            }
        }
    }

    xmlhttp.open(method, url, async);
    xmlhttp.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded");
    xmlhttp.send(data);
}

function dataReload()
{
    //execEffect();
    //XMLHttpRequestオブジェクト生成
    var data = '';
    var xmlhttp = createHttpRequest();
    if (xmlhttp == null) {
        return null;
    }
//    document.getElementById("Nowplaying").innerHTML = '<h2>iTunes Now Playing!</h2><img src="http://starsugar.com/common/image/ajax-loader.gif" height="100" width="100" /><h3>&nbsp;</h3><ul><li>&nbsp;</li><li>&nbsp;</li><li>&nbsp;</li></ul>';
    sendRequest(xmlhttp, "GET","http://starsugar.com/src/nowplaying.php", true, data, callBack);
    setTimeout('dataReload()', 3000);
}

function get_response_text(req)
{
  var text = req.responseText;
  if ( navigator.appVersion.indexOf( "KHTML" ) > -1 ) {
    var esc = escape( text );
    if ( esc.indexOf("%u") < 0 && esc.indexOf("%") > -1 ) {
      text = decodeURIComponent( esc );
    }
  }
  return text;
}

function callBack(xmlhttp)
{
    var Nowplaying  = document.getElementById("Nowplaying");
    var res = get_response_text(xmlhttp);
    Nowplaying.innerHTML = res;
}

function execEffect()
{
  new Effect.Fade($("Nowplaying"),{ from:0, to:1 });
  //new Effect.SlideDown($("Nowplaying"));
}
