_pageOnloadQueue = [];_pageReadyQueue = [];
_ieLastTextSize="100%";

function identifyUser()
{
  var msg=document.getElementById("welcome_back");
  if (msg){
    var c=document.cookie;
    if (!/(SCCLogin=|SCCJMMM=|SCCExtraID=)/.test(c) && scc_extras) {
      var match1=(scc_extras).match(/Cookies:([\s\S]+)Browser:/);
      if (match1 && match1[1]) c=match1[1];
    }
    var u="";
    var match1=(c).match(/SCCExtraID=([^;]+)/i);
    var match2=/(SCCLogin=|SCCJMMM=)/.test(c);
    if (match1 && match1[1]) u=" "+match1[1];
    if (!u && !match2) return;
    msg.innerHTML="Welcome back" + u + "!";
    var link=document.getElementById("login_link");
    if (link) {
        link.href="http://stockcharts.com/def/servlet/Favorites.CServlet";
        link.innerHTML="Members Page";
    }
  }
}
//------------------------------
function subscribeFeedburner()
{
  var l=location.href;
  var uri="StockChartscom-";
  if (/\/chipanderson(\/|$)/i.test(l)) uri+="ChipAnderson";
  else if (/\/dont_ignore_this_chart(\/|$)/i.test(l)) uri+="DontIgnoreTheChart";
  else if (/\/chartwatchers(\/|$)/i.test(l)) uri+="ChartWatchers";
  else if (/\/mailbag(\/|$)/i.test(l)) uri+="Mailbag";
  else if (/\/scanning(\/|$)/i.test(l)) uri+="ScanningStocks"; 
  else if (/\/status(\/|$)/i.test(l)) uri+="Status";
  else if (/\/step_by_step(\/|$)/i.test(l)) uri+="Step-by-step";
  else if (/\/whats_new(\/|$)/i.test(l)) uri+="WhatsNew";
  else return false;
  location.href="http://feedburner.google.com/fb/a/mailverify?uri="+uri+"&amp;loc=en_US";
}
//------------------------------
function activateChangeTextSize() 
{
  try{  
    $("#scc-font-toggler").css("display","block"); 
    $("#scc-font-toggler").append("<span>Font&nbsp;Size:</span>&nbsp;"+
        "<a href=\"#\" onclick=\"changeTextSize('decrease');return false;\">&nbsp;-&nbsp;</a>&nbsp;"+
        "<a href=\"#\" onclick=\"changeTextSize('increase');return false;\">&nbsp;+&nbsp;</a>&nbsp;"+
        "<a href=\"#\" onclick=\"changeTextSize('reset');return false;\">reset</a>");
  }catch(e){}
}
//------------------------------
function changeTextSize(option)
{
  var parent=$("#alpha");
  var base=$("#alpha-inner");
  if ($("#alpha .entry-content")) base=$("#alpha .entry-content");
  if (!base) return;
  if (option=="reset")  {
    base.css("font-size","");
    return;
  }
  var currentSize=base.css("font-size");
  if (parent.css("font-size")==base.css("font-size")) currentSize="100%";
  if ( currentSize=="") currentSize="100%";
  if (!/^\d+\%$/.test(currentSize)) currentSize=_ieLastTextSize;
  if ((currentSize=="300%" && option=="increase") || (currentSize=="30%" && option=="decrease")) return;
  var nextTextSize=parseInt(currentSize)+((option=="increase")?10:-10)+"%";
  base.css("font-size", nextTextSize);
  _ieLastTextSize=nextTextSize;
}
//------------------------------
function breakFrames()
{
  if (typeof(self) == "undefined" || typeof(top) == "undefined") return;
  if (self==top) return; //no frames found
  try{  $("a").attr("target","_top");  }catch(e){}
}
//------------------------------
function addAnalytics() {
//run last, external sites may fail or be slow
  var gurl = (("https:"==document.location.protocol)?
                     "https://ssl":"http://www")+".google-analytics.com/ga.js";
  if (typeof(_gat)!="undefined") return;//already added to page
  var gscript = document.createElement("script");
  gscript.setAttribute("type","text/javascript");
  gscript.setAttribute("src",gurl);
  if (gscript.readyState){  //IE
    gscript.onreadystatechange = function(){ try{
            if (gscript.readyState == "loaded" || gscript.readyState == "complete"){
                gscript.onreadystatechange = null;
                var pt=_gat._getTracker("UA-518575-1");
                pt._setDomainName(".stockcharts.com");
                pt._trackPageview();
  if (/debug/.test(document.location.search)) alert("Analytics loaded and running: "+pt);
            }
    } catch(err) {} };
  } else {
    gscript.onload=function(){ try{
       var pt=_gat._getTracker("UA-518575-1");
       pt._setDomainName(".stockcharts.com");
       pt._trackPageview();
  //if (/debug/.test(document.location.search)) alert("Analytics loaded and running: "+pt);
   } catch(err) {}  };
  }
  document.getElementsByTagName("body")[0].appendChild(gscript);
}
//------------------------------
function checkDate() {
  var copyright=document.getElementById("footer-copyright");
  if (!copyright) return;
  var year = new Date().getFullYear();
  if (copyright.innerHTML.indexOf(year)>0) return;
  copyright.innerHTML=copyright.innerHTML.replace(/(1999\-\d{4}|1999\-xxxx)/i,"1999-"+year);
}
//------------------------------
function limitImageSize() {
  if (document.getElementById("dontresizeimages")) return true;
  if ($("body.window-overflow-allowed").length) return true;
  var maxWidth=511;
  try{
    var body = document.getElementsByTagName("body")[0];
    if (/(scc\-freecharts)/.test(body.className)) return;
  }catch(e){}
  var container = document.getElementById("alpha-inner");
  if (!container) return;
  if (container.offsetWidth) maxWidth=container.offsetWidth-10;
  if (/<div class=[\'\"]entries/i.test(container.innerHTML)) maxWidth-=30;;
  var imgs = container.getElementsByTagName("img");
  for (var i=0;i<imgs.length;i++) {
    if (imgs[i].offsetWidth && parseInt(imgs[i].offsetWidth)>maxWidth) {
      imgs[i].style.width = maxWidth +"px";
      if (imgs[i].getAttribute("width") && parseInt(imgs[i].getAttribute("width"))!= maxWidth) {
         //Safari/FF need this, but breaks IE. Above conditional diverts IE for now...
         imgs[i].setAttribute("width", maxWidth);
         imgs[i].setAttribute("height",null);
      }
    }
    else if (imgs[i].style.pixelWidth && imgs[i].style.pixelWidth>maxWidth) {
      imgs[i].style.pixelWidth = maxWidth;
    }
  }
}
//------------------------------
function changeToTables() {
  try{
    if (!$("body").hasClass("blog-data")) return;
    var isSplitQuirky=(("|".split(/\|/)).length<2);
    $(".entry-body").each(function(){
      var html = this.innerHTML;
      html=html.replace(/\s+/g," ");
      html=html.replace(/<br[^>]*>/gi,"\n");
      html=html.replace(/(\&\#0160\;|\&nbsp\;)/g," ");
      var rx1=/(\s*\n\s*\|[^\n]+\|)+/g;
      var changed=[];
      var matches1;
      while ((matches1 = rx1.exec(html)) != null)
      {
        var table="<table border='1' cellspacing='0' class='scc-typical'>";
        var rows=matches1[0].split("\n");
        var isFirstRow=true;
        for (var i=0;i<rows.length;i++){
          var row=rows[i];
          row=row.replace(/(^\s*|\s*$)/g,"");
          var isHeader=(isFirstRow && /^\|\|.+\|\|$/.test(row));
          if (!row) continue;
          var cols=(isHeader)?row.split(/\|+/):row.split(/\|/);
          //if (i==4) alert (cols.length+"\n"+row.split(/\|+/)+"\n"+row);
          if (cols.length==0) continue;
          table+=(isHeader)?"<thead><tr>":(i==0)?"<tbody><tr>":"<tr>";
          var jstart=isSplitQuirky?0:1;var jend=cols.length-(isSplitQuirky?0:1);
          for (var j=jstart;j<jend;j++){
            table+=(isHeader)?"<th "+(j==jstart?"class='first'":"")+">"+cols[j]+"</th>":
                              "<td "+(j==jstart?"class='first'":"")+">"+cols[j]+"</td>";
          }
          table+=(isHeader)?"</tr></thead><tbody>":"<tr>";
          isFirstRow=false;
        }
        table+="</tbody></table>";
        changed.push({"table":table,"start":matches1.index,"end":matches1.index+matches1[0].length});
      }
      for (var i=0;i<changed.length;i++){
        html=html.substr(0,changed[i].start)+changed[i].table+html.substr(changed[i].end);
      }
      html=html.replace(/\n/g,"<br>");
      html=html.replace(/\s\s/g," &nbsp;");
      if (changed.length>0) this.innerHTML=html;
    });
  }catch(e){}
}
//------------------------------
function zebraTables(){
  try{
    $(document).ready(function(){
      $("table.scc-zebra tr:nth-child(odd)").addClass("odd");
      $("table.scc-zebra tr:nth-child(even)").addClass("even");
    });
  }catch(e){}
}
//------------------------------
function personalizeMembersPage() {
  //still thinking...
  var b = document.getElementsByTagName("body")[0];
  if (!b || !/\bscc\-members\b/.test(b.className)) return;
  var d = document.getElementById("banner-description");
  if (!d) return;
  d.innerHTML="";
}
//------------------------------
function searchValidate(fieldName) {
  if ( !fieldName) return true; //don't stop search
  var field = document.getElementById(fieldName);
  if (!field) return true; //don't stop search
  if (!field.value || /^\s*$/.test(field.value)) return false; //stop search on blank values
  return true;
}
//------------------------------
function chartSearch(prefix) {
//never returns true, just switches page
  var field=document.getElementById(prefix+"text");
  var opts=document.getElementById(prefix+"options");
  if (!field || !opts) return false;
  if (!field.value || /^\s*$/.test(field.value)) return false;
  var urls=["/h-sc/ui?s=",//0
	"/def/servlet/SC.pnf?c=",//1
	"/candleglance?",//2
	"/webcgi/perf.html?",//3
	"/gallery?",//4
	"/symsearch?"];//5
  if (opts.selectedIndex<urls.length) {
    var url=urls[opts.selectedIndex]+encodeURIComponent(field.value);
    if (opts.selectedIndex==1) url+=",P";
    if (typeof(self) != "undefined" && typeof(top) != "undefined" && self!=top) 
      parent.location="http://stockcharts.com"+url;
    else
      window.location="http://stockcharts.com"+url;
  }
  return false;
}
//------------------------------
function pageOnload() {
  if (!document.getElementById) return; 
  for (var i in _pageOnloadQueue) {
    try{if (typeof(_pageOnloadQueue[i])=="function") _pageOnloadQueue[i]();}catch(e){}
  }
}
//------------------------------
function pageReady() {
  if (!document.getElementById) return; 
  for (var i in _pageReadyQueue) {
    try{if (typeof(_pageReadyQueue[i])=="function") _pageReadyQueue[i]();}catch(e){}
  }
}

//------------------------------
_pageReadyQueue.push(changeToTables);
_pageReadyQueue.push(breakFrames);
_pageReadyQueue.push(identifyUser);
_pageReadyQueue.push(activateChangeTextSize);
_pageReadyQueue.push(zebraTables);
try{$(document).ready(pageReady);}catch(e){}
//------------------------------
//require full page load (or lower priority):
_pageOnloadQueue.push(limitImageSize);
_pageOnloadQueue.push(checkDate);
_pageOnloadQueue.push(addAnalytics);
if (window.addEventListener) window.addEventListener("load", pageOnload, false);
else if (document.addEventListener) document.addEventListener("load", pageOnload, false);
else if (window.attachEvent) window.attachEvent("onload", pageOnload);