// Global JavaScript file

function Consts() {}
Consts.FREE_TRIAL         = '#slid';
Consts.TRIAL_FNAME        = 'trial_first_name';
Consts.TRIAL_FNAME_DEF    = 'First Name ';
Consts.TRIAL_LNAME        = 'trial_last_name';
Consts.TRIAL_LNAME_DEF    = 'Last Name ';
Consts.TRIAL_LOGIN        = 'trial_login';
Consts.TRIAL_LOGIN_DEF    = 'Your community login (if any) ';
Consts.TRIAL_COMPANY      = 'trial_company';
Consts.TRIAL_COMPANY_DEF  = 'Company ';
Consts.TRIAL_EMAIL        = 'trial_email';
Consts.TRIAL_EMAIL_DEF    = 'Email ';
Consts.TRIAL_PHONE        = 'trial_phone';
Consts.TRIAL_PHONE_DEF    = 'Phone ';
Consts.TRIAL_TITLE        = 'trial_title';
Consts.TRIAL_TITLE_DEF    = ' Please Select -- Title';
Consts.TRIAL_UR_PROJECT   = 'trial_your_project';
Consts.TRIAL_UR_PROJECT_DEF = 'Tell us about your project';
Consts.SL_FORM_NAME       = 'sl_form_name';
Consts.SNP_FRM_KLS        = 'snap_form';
Consts.RQ_TRIAL_KLS       = 'request_trial';

// ----------------------- Delicious News ---------------------------- //
Consts.SYNDICATES_PATH = "/images/press/";
Consts.SYNDICATES_MAP = {
  "http://www.it-analysis": Consts.SYNDICATES_PATH + "itanalysis.gif",
  "http://www.itbusinessedge": Consts.SYNDICATES_PATH + "it-business-edge.jpg",
  "http://www.ciotalkradio": Consts.SYNDICATES_PATH + "cio_talk_radio2.gif",
  "http://www.readwriteweb": Consts.SYNDICATES_PATH + "read_write_enterprise.gif",
  "http://www.eweek": Consts.SYNDICATES_PATH + "eweek_logo2.gif",
  "http://www.cmswire": Consts.SYNDICATES_PATH + "cms_wire.gif",
  "http://www.siliconvalleywatcher": Consts.SYNDICATES_PATH + "silicon_valley_watcher.jpg",
  "http://www.ebizq":Consts.SYNDICATES_PATH + "ebizq.png",
  "http://intelligent-enterprise.informationweek":Consts.SYNDICATES_PATH + "intelligent-enterprise2.gif",
  "http://www.ctoedge": Consts.SYNDICATES_PATH + "cto_edge.gif",
  "http://www.computerworld":Consts.SYNDICATES_PATH + "computer_world.gif",
  "http://www.crmbuyer":Consts.SYNDICATES_PATH + "crm_buyer.gif",
  "http://blogs.zdnet": Consts.SYNDICATES_PATH + "zdnet_logo.jpg",
  "http://www.sdtimes":Consts.SYNDICATES_PATH + "sd_times2.gif",
  "http://soa.sys-con":Consts.SYNDICATES_PATH + "soaworld.png",
  "http://www.sramanamitra":Consts.SYNDICATES_PATH + "sramanamitra.png",
  "http://www.devwebpro":Consts.SYNDICATES_PATH + "devwebpro.png",
  "http://www.destinationcrm":Consts.SYNDICATES_PATH + "destinationcrm.png",
  "http://www.b-eye-network":Consts.SYNDICATES_PATH + "beye-network2.gif"
};

function getLogoByURL(url) {
  if(url) {
    var url_arr = url.split(/(\.com\/|\.co\.|\.net\/|\.org\/)/);
    if(url_arr) {
      var synd_url = url_arr[0];
      var logo_path = Consts.SYNDICATES_MAP[synd_url];
      if(logo_path) {
        return logo_path;
      }
    } 
  }
  return undefined;
}

function prettyDate(rd) {
  var date_array = rd.split("-")
  var d = new Date(date_array[0],date_array[1]-1,date_array[2]); 
  var month=new Array(12);
  month[0]="January";
  month[1]="February";
  month[2]="March";
  month[3]="April";
  month[4]="May";
  month[5]="June";
  month[6]="July";
  month[7]="August";
  month[8]="September";
  month[9]="October";
  month[10]="November";
  month[11]="December";
  return month[d.getMonth()] + " " + d.getDate() + ", " + d.getFullYear();
}

function getPublishDateFromTags(tags) {
    var dt_pattern = /date:/;
    if(tags[0]) {
      first_tag = tags[0];
      if(dt_pattern.test(first_tag)) {
        var raw_date = first_tag.substring(5,first_tag.length);
        return prettyDate(raw_date);
      }
    }
    return undefined;
}
function listDeliciousFeaturedNews(news_feed) {
  listDeliciousNews(news_feed,"delicious_news_featured");
}

function listDeliciousNews(news_feed, div_holder) { 
  var len = news_feed.length;
  if(len===0) return;  // Fails silently if no feeds
  var DEL_TITLE = "d";
  var DEL_URL   = "u"; // also available: 'a'/author 'dt'/datetime 't'/tags 'n'/notes
  var NOTES     = "n";
  var TAGS      = "t";


  var html = [];
  if(div_holder) {
    html.push('<table style="border:none; margin: 1.5em;"><tbody>');
  } else {
    html.push('<ul>');
  }
    
  for (i=0; i<len; i++) {     // For each delicious entry
    var entry = news_feed[i];
    var notes = entry[NOTES];

    // Grab the logo using the url of the syndicate
    var logo_path = getLogoByURL(entry[DEL_URL]);
    var logo_htm = '';
    if(logo_path !== undefined) {
      logo_htm = '<img src="' + logo_path + '" alt="Syndicate Logo" style="float: left; padding: 0 0.75em;" />';
    } 

    // Get the publish date from the tags. Assumes date is first tag!
    var publish_date =  getPublishDateFromTags(entry[TAGS]);
    var date_htm = '';
    if(publish_date !== undefined) {
      date_htm = '<span class="small_dates">' + publish_date + '</span>';
    } 

    // Grab teaser from the Delicious 'n' Notes
    var teaser_htm = '';
    if(notes) {
      var teaser_htm = '<span class="delicious_teaser">' + notes + '</span>';
    }

    // For featured feeds we use a table 2 x 2
    if(div_holder) {

      if(i % 2 === 0) {
        html.push("<tr>");
      }
      entry = "<td class=\"delicious\">" +
               "<a class=\"delicious-custom-link\" href=\"" + 
               entry[DEL_URL] + "\" target=\"_blank\">" + 
               logo_htm + "</a>" +
               // entry[DEL_TITLE] + "</a><br /><br />" + 
               teaser_htm + "<br />" + 
               date_htm + "</td>";

      html.push(entry);

      // Precondition: It must be 2 x 2  or 3 x 3, etc. (Multiple of 2!!!).
      // This is controlled on the call to the delicious feed so make sure
      // the count=SOME_EVEN_NUMBER
      if(i % 2 == 1) {
        html.push("</tr>");
      }


    // For all other news/press we use list
    } else {
      entry = "<li class=\"delicious\"><a class=\"delicious-custom-link\" href=\"" + 
               entry[DEL_URL] + "\" target=\"_blank\">" + 
               entry[DEL_TITLE] + "</a><br /><br />" + 
               "<a class=\"delicious-custom-link\" href=\"" + 
               entry[DEL_URL] + "\" target=\"_blank\">" + 
               logo_htm + "</a>" +
               teaser_htm + "<br />" + 
               date_htm + "</li><br />";
      html.push(entry);
    }    
  }
  if(div_holder) {
    html.push("</tbody></table>");
    document.getElementById(div_holder).innerHTML = html.join("");
  } else {
    html.push('</ul>');
    document.getElementById("delicious_news_feeds").innerHTML = html.join("");
  }

  //console.log("\n\nHTML ENTRY: ");
  //console.log(html.join(""));

}


function listDeliciousNewsLinksOnly(news_feed) { 
  var len = news_feed.length;
  if(len===0) return;  // Fails silently if no feeds
  var DEL_TITLE = "d";
  var DEL_URL   = "u"; // also available: 'a'/author 'dt'/datetime 't'/tags 'n'/notes
  var NOTES     = "n";
  var TAGS      = "t";
  var html = ['<ul>'];
  for (i=0; i<len; i++) {
    var entry = news_feed[i];
    entry = "<li class=\"delicious\"><a class=\"delicious-custom-link\" href=\"" + 
             entry[DEL_URL] + "\" target=\"_blank\">" + 
             entry[DEL_TITLE] + "</a></li>";

    html.push(entry);
  }
  html.push('</ul>');
  document.getElementById("delicious_news_feeds").innerHTML = html.join("");
}

// ----------------------- Delicious News ENDS ---------------------------- //




jQuery.noConflict();

jQuery(document).ready(function($) {

    var trial_form = $(Consts.FREE_TRIAL);  
    trial_form.validate();

    // This is for the lightbox plugin.
    // jQuery("a[rel^='prettyPhoto']").prettyPhoto();
   
}); // Ends jquery doc ready

