    google.load("swfobject", "2.1");
    google.load("language", "1");
    
    var ytplayer;
    var flag;
    var initialized;
    var searchword;
    var ipaddress;
    var scoreStr;
    var genres;
    var isie = 0;
    
    function createHttpRequest(){
      if(window.ActiveXObject){
          try {
              return new ActiveXObject("Msxml2.XMLHTTP");
          } catch (e) {
              try {
                  return new ActiveXObject("Microsoft.XMLHTTP");
              } catch (e2) {
                  return null
              }
           }
      } else if(window.XMLHttpRequest){
          return new XMLHttpRequest();
      } else {
          return null
      }
    }
    
    function play() {
      flag = 1;
      if (ytplayer) {
       ytplayer.playVideo();
      }
    }

    function embed(videoid) {
     if (initialized) { loadNewVideo(videoid); return; }
     flag = 1;
     var params = { allowScriptAccess: "always" };
     var atts = { id: "myytplayer" };
     swfobject.embedSWF("http://www.youtube.com/v/" + videoid + "&enablejsapi=1&playerapiid=ytplayer", 
                        "ytapiplayer", "640", "480", "8", null, null, params, atts);
     initialized = 1;
    }
    
    function loadNewVideo(id) {
      if (ytplayer) {
        ytplayer.clearVideo();
        ytplayer.loadVideoById(id, 3);
      }
    }

    function onYouTubePlayerReady(playerId) {
      ytplayer = document.getElementById("myytplayer");
      ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
      if (flag == 1) { play(); }
    }

    function onytplayerStateChange(newState) {
       if (newState == 1) {
         flag = 1;
       }
       if (newState == 0) {
         setTimeout(forward, 3000);
       }
    }
    
    function updateResult(text, id, title) {
//     retitle(title);
     retitle0(title,id);
     drawpopular(id);
     
     if (genres == "") {
      var http = createHttpRequest();
      var urllink = 'http://song.fantango.jp/index_search2.php?text=' + text;
      if (isie == 1) { urllink = urllink + getTimeStr(); }
      
      http.open("GET", urllink , false);
//      http.onreadystatechange=function() { if (http.readyState!=4) { alert(http.getAllResponseHeaders()) } } ;
      http.onreadystatechange=function() { } ;
      http.send(null);
      document.getElementById('search2').innerHTML = http.responseText;
     }

     embed(id);
    }
    function retitle0(title,videoid) {
     var http = createHttpRequest();
     var urllink = 'http://song.fantango.jp/get_videoheader.php?title=' + title + '&videoid=' + videoid;
     if (isie == 1) { urllink = urllink + getTimeStr(); }
     
     http.open("GET", urllink , false); 
//     http.onreadystatechange=function() { if (http.readyState!=4) { alert(http.getAllResponseHeaders()) } } ;
     http.onreadystatechange=function() { } ;
     http.send(null);
     document.getElementById('recommendation').innerHTML = http.responseText;
     
     var http = createHttpRequest();
     var urllink = 'http://song.fantango.jp/index_hits.php?genre=' + genres;
     if (isie == 1) { urllink = urllink + getTimeStr(); }
     
     http.open("GET", urllink , false);      
     http.onreadystatechange=function() { } ;
     http.send(null);
     document.getElementById('hits').innerHTML = http.responseText;
    }
    function drawpopular(videoid) {
     var http = createHttpRequest();
     var urllink = 'http://song.fantango.jp/get_popular.php?genre=' + genres + '&videoid=' + videoid;
     if (isie == 1) { urllink = urllink + getTimeStr(); }
     
     http.open("GET", urllink , false); 
//     http.onreadystatechange=function() { if (http.readyState!=4) { alert(http.getAllResponseHeaders()) } } ;
     http.onreadystatechange=function() { } ;
     http.send(null);
     document.getElementById('popular').innerHTML = http.responseText;
    }
    
    function retitle(title) {
     if (!scoreStr) {
       scoreStr = '<ul class="likesong">';
       for (i=1; i<5; i++) {
         scoreStr = scoreStr + '<li class="likesong'+i+'"><a href="#" onclick="likeSong('+i+')">'+i+'</a></li>';
       }
       scoreStr = scoreStr + '<li class="likesong5"><a href="#" onclick="likeSong(5)">5</a></li>';
       scoreStr = scoreStr + '<br/><b>rate song</b></ul></td><td> </td><td>';
       scoreStr = scoreStr + '<ul class="likevideo">';
       for (i=1; i<5; i++) {
         scoreStr = scoreStr + '<li class="likevideo'+i+'"><a href="javascript:void(0)" onclick="likeVideo('+i+')">'+i+'</a></li>';
       }
       scoreStr = scoreStr + '<li class="likevideo5"><a href="javascript:void(0)" onclick="likeVideo(5)">5</a></li><br/><b>rate movie</b></ul>';
     }
     document.getElementById("recommendation").innerHTML = 
         '<h2><u>' + title + '</u></h2>'
       + '<table><tr><td></td>'
       + '<td><a href="javascript:void(0)" onclick="skip()"><img src="images/btntbn05-next001.jpg" width=50 alt="SKIP"></a></td><td>' 
       + scoreStr
       + '</td></tr></table>';
    }

    function skip() {
       if (genres != '') { sendFavorites('skip=1',0); }
       init();
    }
    function skipTo2(videoid) {
       if (genres != '') { sendFavorites('skip=1',0); }
       if (initialized) { loadNewVideo(videoid); return; }
    }
    function markAsSkip() {
       sendFavorites('skip=1',0);
    }
    function skipTo(videoid, text, title) {
       document.getElementById('update').innerHTML = '"' + text + '","' + videoid + '","' + title + '"';
       retitle0(title,videoid);
       skipTo2(videoid);
    }
    function forward() {
//       sendFavorites('',0);
       init();
    }
    function likeSong(point) {
       if (point < 1 || point > 9) { return; }
       sendFavorites('likesong='+point,1);
    }
    function likeVideo(point) {
       if (point < 1 || point > 9) { return; }
       sendFavorites('likevideo='+point,1);
    }
    
    function init() {
     if (window.ActiveXObject){ 
      isie = 1;
//      document.getElementById('ytapiplayer').innerHTML = "<h1><a href='http://mozilla.jp/firefox/'>We do not support Internet Explorer, Sorry.</a></h1>";
//      alert("Use FireFox or Google Chrome instead. You can download FireFox from http://mozilla.jp/firefox/ .");
//      return;
     }
          
     var http = createHttpRequest();
     var urllink;

     if (searchword) {
      urllink = 'http://song.fantango.jp/index_search.php?text=' + searchword;
     } else if (genres) {
      urllink = 'http://song.fantango.jp/index_search.php?genre=' + genres;
     } else {
      urllink = 'http://song.fantango.jp/index_search.php?';
     }
     if (isie == 1) { urllink = urllink + getTimeStr(); }
     
     http.open("GET", urllink , false); 
     http.onreadystatechange=function() { }
     http.send(null);
     setHTML('search', http.responseText);
     keyUpdate();
    }
    function getTimeStr() {
     var date = new Date();
     var ret = '&d=' + date.getTime();
     return ret;
    }
    function keyUpdate() {
      var flagCheck = 0;
      var updateHTML = document.getElementById('update');
      if (updateHTML) {
        keys = updateHTML.innerHTML;
        eval("updateResult(" + keys + ")");
        flagCheck = 1;
      }
      if (flagCheck == 0) {
        setTimeout(init, 3000); // set timeout once.
      }
    }
    function setHTML(tag, message) {
     var taghtml = document.getElementById(tag);
     if (taghtml != null) {
      document.getElementById(tag).innerHTML = message;
     }
    }
    
    function sendFavorites(sendflag, alertflag) {
     var string = document.getElementById('update').innerHTML;

     var urllink = 'http://song.fantango.jp/index_send.php?string=' + string + '&ip=' + ipaddress + '&' + sendflag;
     if (genres) {
       urllink = urllink + '&genre=' + genres;
     }
     if (isie == 1) { urllink = urllink + getTimeStr(); }
     
     var http = createHttpRequest();
     http.open("GET", urllink , false); 
     http.onreadystatechange=function() { } ;
     http.send(null);
     if (alertflag == 1) { alert('Thanks for voting! ' + http.responseText); }
    }
    
    function setSearchWord(text) {
     searchworkd = text;
    }
    function setIPAddress(text) {
     ipaddress = text;
    }
    function setGenre(genre) {
      genres = genre;
    }
