<style>
    ._conditions {
        white-space: normal !important;
    }

    #xml_download {
        margin-top:1px;
        margin-bottom:5px;
    }
</style>
<div id="exp_detail" class="info_block"></div>

<script>
    var _experiment_id = '80510975';

    // the application load partial provides the function app_start
    // & global var _application.  When the application has
    // loaded it will call the provided callback with the application
    // instance as the only parameter.
    
  var _application = null;

  function app_start(callback, options) {
    var app_options = {
        theme:'ish',

        urls:{
            data_service:'/api/v2/data/',
            analysis_service:'/mri_viewer/data/',
            graphics_service:'/api/v2/shapes/',
            mri_service:'/mri_viewer/data/',
            mni_slice_path:'/mri_viewer/data/MNI152/T1/slice_image',

            gene_help:'//help.brain-map.org/display/humanbrain/Microarray+Data#MicroarrayData-GeneSearch',
            correlation_help:'//help.brain-map.org/display/humanbrain/Microarray+Data#MicroarrayData-CorrelativeSearch',
            differential_help:'//help.brain-map.org/display/humanbrain/Microarray+Data#MicroarrayData-DifferentialSearch',
            meta_differential_help:'//help.brain-map.org/display/humanbrain/Microarray+Data#MicroarrayData-MouseDifferentialSearch',
            ish_data_help:'//help.brain-map.org/display/humanbrain/In+Situ+Hybridization+(ISH)+Data',
            dual_view_help:'//help.brain-map.org/display/humanbrain/In+Situ+Hybridization+(ISH)+Data#InSituHybridization(ISH)Data-ViewingImages',
            documentation:'//help.brain-map.org/display/humanbrain/Documentation',

            ivt : '/ish/experiment/ivt',
            thumbnails:'/ish/experiment/thumbnails',
            microarray_siv:'/ish/mri_viewer/microarray_siv',
            siv:'/ish/experiment/siv',
            dual_siv:'/ish/experiment/dual_view',
            search : '/ish/search/show',
            brain_explorer:'/grid_data/v1/visualize/',
            brain_explorer_host:'human.brain-map.org',
            related_data:'//www.brain-map.org/related/matches.jpg',

            image_service:"/cgi-bin/imageservice?mime=2",
            tile_service:"/tiles/",
            download_service:"/cgi-bin/imageservice",
            info_service:"/tiles//info",
            atlas_viewer_service:"//atlas.brain-map.org/atlas",

            external_assets:"//www.brain-map.org/assets"
        },
        on_ready:callback
    };
    $j.extend(true, app_options, options);
    _application = new application(app_options);
  }

  function inspect(prefix, obj) {
      var s = "";
      for(key in obj) {
          if((typeof obj[key]) == "function")
              s = s;
          else if((typeof obj[key]) == "object" && obj[key] !== null & key != "element")
              s += "\n" + prefix + "key: " + key + inspect(prefix + "    ", obj[key]);
          else
              s += "\n" + prefix + "key: " + key + ",   value: " + obj[key];
      }
      return(s);
  }

  function trace(msg) {
      if(window.console)  {
          window.console.log(msg);
      }
  }


  function export_xml(root_name, flat, data_key) {
     var data = _controller.get_data();
     data.page = "<![CDATA[" + window.location.href + "]]>";

     var xml = flat ? flatten_to_xml(data_key, data[data_key]) : json_to_xml(root_name, data);
     var formatted_data = encodeURIComponent("<" + root_name + ">" + xml + "</" + root_name + ">");

     var form = document.forms['xml_form'];
     $j('#xml_form_data').attr('value', formatted_data);
     form.submit();
  }

  // sloppy slow string building
  function json_to_xml(parent_name, obj) {

      var s = "";
      for(var key in obj) {

          if((typeof obj[key]) == "function")
              s = s;
          else if((typeof obj[key]) == "object" && obj[key] !== null & key != "element") {
              var key_name;

              if(parseInt(key) == key)
                key_name = parent_name.substring(0, parent_name.length-1);
              else
                key_name = key;

              s += "\n<" + key_name + ">" + json_to_xml(key_name, obj[key]) + "</" + key_name + ">";
          }
          else {
              s += "\n<" + key + ">" + obj[key] + "</" + key + ">";
          }
      }
      return(s);
  }

  function flatten_to_xml(parent_name, data) {

     var s = "";
     for(var key in data) {

          if((typeof data[key]) == "function")
              ;
          else if((typeof data[key]) == "object" && data[key] !== null & key != "element")
              s += "\n" + "<" + parent_name + ">" + flatten_to_xml_2(parent_name, data[key]) + "</" + parent_name + ">";
          else
              s += "<" + key + ">" + data[key] + "</" + key + ">";
     }
     return(s);
  }

  function flatten_to_xml_2(parent_name, data) {

     var s = "";
     for(var key in data) {

          if((typeof data[key]) == "function") {
            // do nothing
          }
          else if((typeof data[key]) == "object" && data[key] !== null & key != "element") {

              if(parseInt(key) == key)
                key_name = parent_name;
              else
                key_name = key;

              s += flatten_to_xml_2(key_name, data[key]);
          }
          else
              s += "<" + parent_name + "_" + key + ">" + data[key] + "</" + parent_name + "_" + key + ">";
     }

     return(s);
  }

    function load_page(app) {

        var page_container = $j('#exp_detail');
        var page = new app_page(page_container, 'experiment_detail', app, {});

        var opts = {
            experiment_id:_experiment_id
        };
        new ish_experiment_detail_controller(page_container, page, opts);
    }

    app_start(load_page);

</script>

