/* TKMaps Add Func RakutenTravel*/

TKMapsObj.setRakutenTravel = function(obj){
  var maxMarkers = 30;
  var ch = "RakutenTravel";
  var credit = "<!-- Rakuten Web Services Attribution Snippet FROM HERE -->\n<a href=\"http://webservice.rakuten.co.jp/\" target=\"_blank\">Supported by 楽天ウェブサービス</a>\n<!-- Rakuten Web Services Attribution Snippet TO HERE -->";
  this.addCredit (ch, credit);
  var iconObj = new GIcon();
  iconObj.image = "/images/yado_blue.png";
  iconObj.iconSize = new GSize(12, 12);
  iconObj.iconAnchor = new GPoint(6,6);
  iconObj.infoWindowAnchor = new GPoint(6,6);
  if(! obj.Body.SimpleHotelSearch) return null;
  if(! obj.Body.SimpleHotelSearch.hotel) return null;
  var hotels = obj.Body.SimpleHotelSearch.hotel;
  for(var i=0;i < hotels.length;i++){
      if(maxMarkers == i) break;
      var s = hotels[i];
      var ll = this.rakuten2google( s.latitude, s.longitude );
      var kihon = "<div class=\"RakutenTravelInfo\"><b>"+s.hotelName+"</b><br />";
      kihon += "<a href=\""+s.hotelAffiliateUrl+"\" target=\"_blank\"><img src=\""+s.hotelImageUrl+"\" style=\"border:0;\"/></a>";
      kihon += "<p>"+s.hotelSpecial+"</p><a href=\""+s.hotelAffiliateUrl+"\" target=\"_blank\">楽天トラベルで詳しく見る</a></div>";
      var detail = "<div class=\"RakutenTravelInfo\"><b>"+s.hotelName+"</b><br />";
      detail += "住所:〒"+s.postalCode+" "+s.address1+s.address2+"<br />";
      detail += "TEL:"+s.telephoneNo+" FAX:"+s.faxNo+"<br />";
      detail += "アクセス:"+s.access+"<br />";
      detail += "最寄り駅:"+s.nearestStationName+"<br />";
      detail += "チェックイン:"+s.checkinTime+"<br />";
      detail += "チェックアウト:"+s.checkoutTime+"<br />";      
      detail += "<a href=\""+s.hotelAffiliateUrl+"\" target=\"_blank\">楽天トラベルで詳しく見る</a></div>";
      tabs = [
        new GInfoWindowTab("基本情報", kihon),
        new GInfoWindowTab("詳細", detail)
      ]
      var str = "<img src=\"/images/yado_blue.png\" style=\"border:0;width:11px;height:11px;\"/>"+s.hotelName;
      var mObj = {id:s.hotelNo, chname:ch, lat:ll.lat, lon:ll.lon, opt:{title: s.hotelName, icon:iconObj },windowTabs:tabs, str:str, listId: this.mapid+"_Yado_List"};
      var rt = this.addAndRemoveMarker(ch, mObj, maxMarkers);
      if(rt && rt.chname == ch){
        var delid = rt.chid;
      }
  }
}

TKMapsObj.getRakutenTravel = function(point){
  var devid = "4df07d48194ec7e5ae8ae664d29f0d89";
  var affid = "045cbfe1.a9c5f556.045cbfe2.37cc16d1";
  var ll = this.google2rakuten( point.lat(), point.lng());
  var e = this.getEnv();
  var url = "http://api.rakuten.co.jp/rws/1.8/json?";
  url += "&developerId="+devid;
  url += "&affiliateId="+affid;
  url += "&operation=SimpleHotelSearch";
  url += "&version=2007-05-16";
  url += "&latitude="+ll.lat;
  url += "&longitude="+ll.lon;
  url += "&searchRadius=3";
  url += "&callBack=TKMapsObj.setRakutenTravel";
  this.addScript(url);
}

TKMapsObj.clickMarkerFuncs.push( function( marker ){
  TKMapsObj.clickMarkerRakutenTravel(marker);
});

TKMapsObj.clickMarkerRakutenTravel = function(marker){
  if(marker.addVars.ch == "HotPepper") return null;
  if(marker.addVars.ch == "Tabelog") return null;
  if(marker.addVars.ch == "Jalan") return null;
  if(marker.addVars.ch == "RakutenTravel") return null;
  if(marker.addVars.ch == "GNavi") return null;
  var p = marker.getPoint();
  this.getRakutenTravel( p );
}


TKMapsObj.changeRakutenTravelFlg = function(){
  if(this.RakutenTravelFlg == 1){
    this.RakutenTravelFlg = 0;
    this.clearChMarkers("RakutenTravel");
    $("RakutenTravelSwitch").innerHTML = "楽天トラベルを表示";
    $("RakutenTravelSwitch").className = "changeFlgButtomOFF";
  }else{
    this.RakutenTravelFlg = 1;
    TKMapsObj.getRakutenTravel();
    $("RakutenTravelSwitch").innerHTML = "楽天トラベルを消す";
    $("RakutenTravelSwitch").className = "changeFlgButtomON";
  }
}

TKMapsObj.google2rakuten = function (lat ,lon){
  var j = this.wgs2tokyo(lat*1, lon*1);
  var jlat = this.deg2min(j.lat);
  var jlon = this.deg2min(j.lon);
  var o = { lat:jlat, lon:jlon };
  return o;
}

TKMapsObj.rakuten2google = function (lat ,lon){
  var w = this.tokyo2wgs ( lat/3600 , lon/3600 );
  var o = { lat: w.lat, lon: w.lon };
  return o;
}
