﻿function extract_address() {
    $('result_extract_place').innerHTML = '抽出中';
    var ajax = new Ajax.Request(
      '/blogsearch/extract_place_curl.cgi',
        {
          'method' : 'post',
          'asynchronous' : true,
          'parameters' : Form.serialize("extractForm"),
          'onSuccess' : display_extract_place
        }
    );
}

function search_contents() {
    $('result_search_contents').innerHTML = '検索中';
    var ajax = new Ajax.Request(
      '/blogsearch/search_contents_curl.cgi',
        {
          'method' : 'post',
          'asynchronous' : true,
          'parameters' : Form.serialize("searchForm"),
          'onSuccess' : display_search_contents
        }
    );
}


function geocode() {
    $('result_geocode').innerHTML = '検索中';
    var url = "/blogsearch/geocode_curl.cgi?"+Form.serialize("geocodeForm");

    var ajax = new Ajax.Request( 
          url,
          {
           'method' : 'get',
           'asynchronous' : true,
           'onSuccess' : display_geocode
          }
    );
}

function heatmap() {
    $('result_heatmap').innerHTML = '検索中';
    var ajax = new Ajax.Request(
      '/blogsearch/heatmap_curl.cgi',
        {
          'method' : 'post',
          'asynchronous' : true,
          'parameters' : Form.serialize("heatmapForm"),
          'onSuccess' : display_heatmap
        }
    );
}

function display_extract_place(req, js) {
    eval('var json = ' + req.responseText);
    $('result_extract_place').innerHTML = convert_extract_place(json.result_select, '');
}

function display_search_contents(req, js) {
    eval('var json = ' + req.responseText);
    $('result_search_contents').innerHTML = convert_search_contents(json.results, '');
}

function display_geocode(req, js) {
    eval('var json = ' + req.responseText);
    $('result_geocode').innerHTML = convert_geocode(json.results, '');
}

function display_heatmap(req, js) {
    eval('var json = ' + req.responseText);
    $('result_heatmap').innerHTML = convert_heatmap(json.results, '');
}


function convert_extract_place(arr, res, key) {
  res += "{ result_select:\n";
  res += "[\n";
  for (var i = 0; i < arr.length; i++) {
    res += "[ \n";
    for (var j = 0; j < arr[i].length; j++) {
      res += ' ' + to_string_extract_place(arr[i][j]);
      if (j < arr[i].length-1) {
        res += ",";
      }
      res += "\n";
    }
    res += "]";
    if (i < arr.length-1) {
      res += ",";
    }
  res += "\n";
  }
  res += "]\n";
  res += "}\n";
  return res;
}

function convert_search_contents(arr, res) {
  res += "{ results:\n";
  res += "[\n";
  for (var i = 0; i < arr.length; i++) {
    res += ' ' + to_string_search_contents(arr[i]);
    if (i < arr.length-1) {
      res += ",";
    }
    res += "\n";
  }
  res += "]\n";
  res += "}\n";
  return res;
}

function convert_heatmap(arr, res) {
  res += "{ results:\n";
  res += "[\n";
  for (var i = 0; i < arr.length; i++) {
    res += ' ' + to_string_heatmap(arr[i]);
    if (i < arr.length-1) {
      res += ",";
    }
    res += "\n";
  }
  res += "]\n";
  res += "}\n";
  return res;
}

function convert_geocode(arr, res) {
  res += "{ results:\n";
  res += "[\n";
  for (var i = 0; i < arr.length; i++) {
    res += ' ' + to_string_geocode(arr[i]);
    if (i < arr.length-1) {
      res += ",";
    }
    res += "\n";
  }
  res += "]\n";
  res += "}\n";
  return res;
}

function to_string_extract_place(hash) {
    var res = '{';
    res += 'text:'   + hash.text + ', ';
    res += 'lat:'    + hash.lat + ', ';
    res += 'lng:'    + hash.lng + ', ';
    res += 'type:'   + hash.type + ', ';
    res += 'weight:' + hash.weight;
    res += '}';
    return res;
}


function to_string_search_contents(hash) {
    var res = '{';
    res += 'id:'  + hash.id + ', ';
    res += 'expression:' + hash.expression + ', ';
    res += 'attribute:' + hash.attribute + ', ';
    res += 'uri:' + hash.uri + ', ';
    res += 'timestamp:' + hash.timestamp;
    res += 'lng:' + hash.lng + ', ';
    res += 'lat:' + hash.lat + ', ';
    if( hash.distance ){
      res += 'distance:' + hash.distance + ', ';
    }
    res += 'title:' + hash.title + ', ';
    res += '}';
    return res;
}

function to_string_heatmap(hash) {
    var res = '{';
    res += 'lng:' + hash.lng + ', ';
    res += 'lat:' + hash.lat + ', ';
    res += 'intensity:' + hash.intensity + ', ';
    res += '}';
    return res;
}

function to_string_geocode(hash) {
    var res = '{';
    res += 'attribute:'+ hash.attribute + ', ';
    if( hash.info ){
      res += 'info:'     + hash.info + ', ';
    }
    if( hash.address ){
      res += 'address:'  + hash.address + ', ';
    }
    res += 'lat:'      + hash.lat + ', ';
    res += 'lng:'      + hash.lng + ', ';
    if( hash.distance ){
      res += 'distance:' + hash.distance + ' ';
    }
    res += '}';
    return res;
}

