// Copyright 2007 Google Inc.
// All Rights Reserved.

/**
 * @fileoverview Pulls Blog feed based on Blog entry title and 
 * content is formatted to display all content related to the kml Blog entry
 * One  variableis passed from the html page to this script:
 * t: the Blog entry title
 *
 * @author thorl@google.com (Thor Lewis)
*/

// Global variables
var container = null;
var counter = 1;
var absCounter = 1;
var newLoc = '';
var once  = 0;
var listingLnk = new RegExp('kml_listing.html');
var numLabels = 3;

/**
 * Iterates through json object, printing content
 * @param {Object}  json is the JSON object pulled from the Blogger service.
 */
function listEntries(json) {
  var type = getType();
  for (var i = json.feed.entry.length-1 ; i > -1 ; i--) {
    var entry = json.feed.entry[i];  
    var tl = entry.title.$t;
    if (tl == t) {
      printContainer(json, container, i);
    }
  }
}

/*
 * Prints data in news table
 * @param {String} data feed data from blog
 * @param {Element} container div to fill data in
 * @param {Number} m iteration through blog data
*/
function printContainer(json, container, m) {
  var entry = json.feed.entry[m];
  var snippet = '';
  snippet = entry.content.$t;
  var imageUrl = getData(snippet, 'large_i');
  var author = getData(snippet, 'author');
  var authorLink = getData(snippet, 'author_link');
  var authText = authorStr;
  var authSpan = document.createElement('span');

  var auth_div = document.createElement('div');
  if ( author != '' ) {
    if ( authorLink != '' ) {
      var auth = document.createElement('a');
      auth.href = authorLink;
      auth.appendChild(document.createTextNode(author));
      auth_div.appendChild(document.createTextNode(authText));
      auth_div.appendChild(auth);
      auth_div.appendChild(document.createElement('br') );
      auth_div.appendChild(document.createElement('br') );
    } else {
      auth_div.appendChild(document.createTextNode(authText));
      auth_div.appendChild(document.createTextNode(author));
      auth_div.appendChild(document.createElement('br'));
      auth_div.appendChild(document.createElement('br') );
    }
  }

  var content = getData(snippet, 'content') + '';
  var formatted = formatPull(content);
  var title = entry.title.$t;
  
  var kml_link = '';
  for (l in entry.link) {
    if (entry.link[l].rel == 'related') {
      kml_link = entry.link[l].href;
    }
  }
  
  var open_title = getData(snippet, 'open_title');

  var arrMatch = kml_link.match("\.com/\.*\/(.*)\.(kmz|kml)");
  var filename = arrMatch[1];

  var lt = document.createElement('div');
  lt.id = 'label_title';
  lt.appendChild( document.createTextNode( labelsStr ) );
    
  // print labels
  var labelList = document.createElement('ul');
  labelList.id = 'labelList';
  var m = 0;
  for(var lbl = 0 ; lbl < entry.category.length ; lbl++) {
    if( ( checkTags( entry.category[lbl].term ) ) && ( m < numLabels ) ) {
      var lblName = entry.category[lbl].term;
      var albl = document.createElement('a');
      var p1 = 'kml_listing.html#c';
      var p2 = '#s1#e20';
      newLoc = p1 + lblName + p2;

      albl.href = newLoc;
      albl.onclick = function() {
        location.href = this.href;
        location.reload(true);
      };
      var listingPgChk = listingLnk.exec(window.location);
      var mie = 'Microsoft Internet Explorer';
      if ( (navigator.appName == mie) && (listingPgChk == null) ) {
        albl.onclick = '';
      }
      albl.id = 'kml_label';
      var list_item = document.createElement('li');
      list_item.id = 'kml_list_item';
      albl.appendChild(document.createTextNode(lblName));
      list_item.appendChild(albl);
      labelList.appendChild(list_item);
      m++;
    }
  }
  
  // create table
  var et = document.createElement('table');
  et.width = '100%';
  et.border = '0';
  var et_body = document.createElement('tbody');
  et.appendChild(et_body);
  
  var et_tr1 = document.createElement('tr');
  et_body.appendChild(et_tr1);
  
  var et_td1 = document.createElement('td');
  et_td1.width = '94%';
  et_td1.vAlign = 'top';
  et_tr1.appendChild(et_td1);

  var et_td2 = document.createElement('td');
  et_td2.width = '5%';
  et_td2.vAlign = 'top';
  et_tr1.appendChild(et_td2);
  
  var et_td3 = document.createElement('td');
  et_td3.width = '1%';
  et_td3.vAlign = 'top';
  et_tr1.appendChild(et_td3);

  //create and attach image
  var th_link = document.createElement('a');
  th_link.href = kml_link;
  th_link.id = 'th_link';
  var image = document.createElement('img');
  image.src = imageUrl;
  image.border = '0';
  image.width = '300';
  image.height = '143';
  image.align = 'texttop';
  image.id = 'kml_image';
  
  // create and attach title  
  var kmlTitle = document.createElement('span');
  kmlTitle.appendChild(document.createTextNode(title));
  kmlTitle.id = 'kmlTitle';
  
  //create and attach spacer image
  var clear_img = document.createElement('img');
  clear_img.width='40';
  clear_img.height='1';
  clear_img.border = '0';
  clear_img.src = 'http://www.google.com/images/cleardot.gif';
  
  // right side content with dl button and back to gallery link
  var dlEarthImg = document.createElement('img');
  dlEarthImg.width='160';
  dlEarthImg.height='48';
  dlEarthImg.border = '0';
  dlEarthImg.src = 'http://earth.google.com/intl/en/images/dl_button_sm.gif';
  var dlEarthLink = document.createElement('a');
  dlEarthLink.href = 'http://earth.google.com/download-earth.html';
  dlEarthLink.id = 'dlEarthLink';
  dlEarthLink.appendChild(dlEarthImg);
  var dlEarthDiv = document.createElement('div');
  dlEarthDiv.id = 'dlEarthDiv';
  dlEarthDiv.appendChild(dlEarthLink);  

  var eGalTxt = document.createTextNode(retToErthGal);
  var eGalTxtLnk = document.createElement('a');
  eGalTxtLnk.href = 'index.html';
  eGalTxtLnk.appendChild(eGalTxt);
  
  var backSpan = document.createElement('span');
  backSpan.id = 'back_span';
  backSpan.appendChild(eGalTxtLnk);
  dlEarthDiv.appendChild(document.createElement('br'));
  dlEarthDiv.appendChild(document.createElement('br'));
  dlEarthDiv.appendChild(backSpan);
  
  //create and attach open link
  var kmlImg = document.createElement('img');
  kmlImg.border = '0';
  kmlImg.src = 'http://www.google.com/earth/gallery/images/kml_feed_small.png';
  var kmlImgLnk = document.createElement('a');
  kmlImgLnk.href = kml_link;
  kmlImgLnk.id = 'kml_icon';
  kmlImgLnk.appendChild(kmlImg);

  //create and attach open link
  var oLink = document.createElement('a');
  oLink.id = 'open_kml';
  oLink.href = kml_link;
  oLink.onclick = function () { urchinTracker('/kml_downloads/'+filename); };
  oLink.appendChild(document.createTextNode(openThisKml));
  var dKmlLinks = document.createElement('div');
  dKmlLinks.id = 'kml_links';
  dKmlLinks.appendChild(kmlImgLnk);
  dKmlLinks.appendChild(oLink);
  
  // create and attach content
  var p = document.createElement('p');
  p.id = 'kml_p';
  p.appendChild(document.createElement('br'));
  p.appendChild(dKmlLinks);
  p.appendChild(document.createElement('br'));
  p.appendChild(document.createElement('br'));
  p.appendChild(document.createTextNode(exploreCategories));
  p.appendChild(labelList);
  
  var newTitle = document.createElement('h2');
  newTitle.id = 'listing_title';
  var titleSpan = document.createElement('span');
  titleSpan.style.color = '#666666';
  titleSpan.appendChild( document.createTextNode(title));
  var titleText = document.createTextNode(erthOutKml);
  newTitle.appendChild(titleText);
  newTitle.appendChild(titleSpan);
  
  et_td1.appendChild(newTitle);
  et_td1.appendChild(auth_div);
  et_td1.appendChild(formatted);
  et_td1.appendChild(document.createElement('br'));
  et_td1.appendChild(image);
  et_td1.appendChild(p);
  et_td2.appendChild(clear_img);
  et_td3.appendChild(dlEarthDiv);

  container.appendChild(et);
}
  

