// Concatenated on Thu Mar  1 16:23:40 PST 2007 by joyd

// File: flashdetect.js (1.2)

var isIE=(navigator.appVersion.indexOf("MSIE")!=-1)?true:false;var isWin=(navigator.appVersion.toLowerCase().indexOf("win")!=-1)?true:false;var isOpera=(navigator.userAgent.indexOf("Opera")!=-1)?true:false;jsVersion=1.1;function JSGetSwfVer(i){if(navigator.plugins!==null&&navigator.plugins.length>0){if(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]){var swVer2=navigator.plugins["Shockwave Flash 2.0"]?" 2.0":"";var flashDescription=navigator.plugins["Shockwave Flash"+swVer2].description;descArray=flashDescription.split(" ");tempArrayMajor=descArray[2].split(".");versionMajor=tempArrayMajor[0];versionMinor=tempArrayMajor[1];if(descArray[3]!==""){tempArrayMinor=descArray[3].split("r");}else{tempArrayMinor=descArray[4].split("r");}
versionRevision=tempArrayMinor[1]>0?tempArrayMinor[1]:0;flashVer=versionMajor+"."+versionMinor+"."+versionRevision;}else{flashVer=-1;}}
else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.6")!==-1){flashVer=4;}
else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.5")!==-1){flashVer=3;}
else if(navigator.userAgent.toLowerCase().indexOf("webtv")!==-1){flashVer=2;}
else{flashVer=-1;}
return flashVer;}
function DetectFlashVer(reqMajorVer,reqMinorVer,reqRevision)
{reqVer=parseFloat(reqMajorVer+"."+reqRevision);for(i=25;i>0;i--){if(isIE&&isWin&&!isOpera){versionStr=VBGetSwfVer(i);}else{versionStr=JSGetSwfVer(i);}
if(versionStr===-1){return false;}else if(versionStr!==0){if(isIE&&isWin&&!isOpera){tempArray=versionStr.split(" ");tempString=tempArray[1];versionArray=tempString.split(",");}else{versionArray=versionStr.split(".");}
versionMajor=versionArray[0];versionMinor=versionArray[1];versionRevision=versionArray[2];versionString=versionMajor+"."+versionRevision;versionNum=parseFloat(versionString);if((versionMajor>reqMajorVer)&&(versionNum>=reqVer)){return true;}else{return((versionNum>=reqVer&&versionMinor>=reqMinorVer)?true:false);}}}
return(reqVer?false:0.0);}

// File: charts.js (1.29)

YAHOO.namespace("YAHOO.Finance.Charts");YAHOO.namespace("YAHOO.Finance.Charts.Util");YAHOO.namespace("YAHOO.Finance.Charts.Widgets");var YFC=YAHOO.Finance.Charts;var flashChart;YFC.shouldShowAd=false;YFC.isRealTime=false;YFC.firstime=true;YFC.cookieseparator="_@";YFC.previousState=null;YFC.leftpanelhash={};YFC.quotebarhash={};YFC.flashPlayerCheck=function()
{if(!(DetectFlashVer(7,0,0))){var query=window.location.hash;if(query===""){query="symbol=yhoo";}
else if(query.charAt(0)==="#"){query=query.substring(1);}
var url="/chart/flash#"+query;location.href=url;}};YFC.createCookie=function(name,value,days)
{var expires="";if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));expires="; expires="+date.toGMTString();var domain="; domain=finance.yahoo.com";}
document.cookie=name+"="+value+expires+domain+"; path=/";};YFC.readCookie=function(name)
{var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' '){c=c.substring(1,c.length);}
if(c.indexOf(nameEQ)===0){return c.substring(nameEQ.length,c.length);}}
return null;};YFC.eraseCookie=function(name)
{createCookie(name,"",-1);};YFC.Cookie=function()
{this.mycookiehash={};this.delim="&";this.parseCookie=function(str,delim)
{if(str.charAt(0)===this.delim){str=str.substring(1);}
var temparr=str.split(this.delim);for(var i in temparr){var temparr1=temparr[i].split('=');this.mycookiehash[temparr1[0]]=temparr1[1];}};this.toVars=function()
{var str="";for(var i in this.mycookiehash){if(i&&i!==""&&this.mycookiehash[i]){str+=i+"="+this.mycookiehash[i]+this.delim;}
if(this.putDelim){str=this.delim+str;}}
return str.substring(0,str.length-1);};this.setKey=function(key,value)
{this.mycookiehash[key]=value;};this.getKey=function(key)
{return this.mycookiehash[key];};};var myprfcookie=new YFC.Cookie();YFC.setPrf=function(key,value)
{if(YFC.readCookie('PRF')){myprfcookie.parseCookie(YFC.readCookie('PRF'));myprfcookie.setKey(key,value);YFC.createCookie('PRF',myprfcookie.toVars(),10*356);}};YFC.getPrf=function(key)
{if(YFC.readCookie('PRF')){myprfcookie.parseCookie(YFC.readCookie('PRF'));return(myprfcookie.getKey(key));}
else{return"";}};YFC.showOldChart=function()
{YFC.setPrf("cp","classic");var str=window.location.hash;if(str.indexOf(":")!=-1){str=str.substr(str.indexOf(":")+1,str.length);}
str=str.replace(/#/g,"");var strarr=str.split(';');var symbol="";var range="";for(var i=0;i<strarr.length;i++){var temp=strarr[i].split('=');if(temp[0]=='symbol'){symbol=temp[1];}
else if(temp[0]=='range'){range=temp[1];}}
var query="";if(symbol!==""){query+="s="+symbol;}
else{query+="s=yhoo";}
if(range!==""&&(range.length==2)){query+="&t="+range;}
else{query+="&t=1y";}
var url;if(location.href.indexOf("corp")>-1){url="http://us.rd.yahoo.com/finance/chart/opt_out/*http://finance.yahoo.com/q/bc?"
+query;}
else{url="http://us.rd.yahoo.com/finance/chart/opt_out/*http://"+location.hostname+"/q/bc?"+query;}
location.href=url;};

// File: treeview_2.0.0-b4.finance.charts.js (1.2)

YAHOO.widget.TreeView=function(id){if(id){this.init(id);}};YAHOO.widget.TreeView.nodeCount=0;YAHOO.widget.TreeView.prototype={id:null,_nodes:null,locked:false,_expandAnim:null,_collapseAnim:null,_animCount:0,maxAnim:2,setExpandAnim:function(type){if(YAHOO.widget.TVAnim.isValid(type)){this._expandAnim=type;}},setCollapseAnim:function(type){if(YAHOO.widget.TVAnim.isValid(type)){this._collapseAnim=type;}},animateExpand:function(el){if(this._expandAnim&&this._animCount<this.maxAnim){var tree=this;var a=YAHOO.widget.TVAnim.getAnim(this._expandAnim,el,function(){tree.expandComplete();});if(a){++this._animCount;a.animate();}
return true;}
return false;},animateCollapse:function(el){if(this._collapseAnim&&this._animCount<this.maxAnim){var tree=this;var a=YAHOO.widget.TVAnim.getAnim(this._collapseAnim,el,function(){tree.collapseComplete();});if(a){++this._animCount;a.animate();}
return true;}
return false;},expandComplete:function(){--this._animCount;},collapseComplete:function(){--this._animCount;},init:function(id){this.id=id;this._nodes=[];YAHOO.widget.TreeView.trees[id]=this;this.root=new YAHOO.widget.RootNode(this);},draw:function(){var html=this.root.getHtml();document.getElementById(this.id).innerHTML=html;this.firstDraw=false;},regNode:function(node){this._nodes[node.index]=node;},getRoot:function(){return this.root;},setDynamicLoad:function(fnDataLoader,iconMode){this.root.setDynamicLoad(fnDataLoader,iconMode);},expandAll:function(){if(!this.locked){this.root.expandAll();}},collapseAll:function(){if(!this.locked){this.root.collapseAll();}},getNodeByIndex:function(nodeIndex){var n=this._nodes[nodeIndex];return(n)?n:null;},getNodeByProperty:function(property,value){for(var i in this._nodes){var n=this._nodes[i];if(n.data&&value==n.data[property]){return n;}}
return null;},removeNode:function(node,autoRefresh){if(node.isRoot()){return false;}
var p=node.parent;if(p.parent){p=p.parent;}
this._deleteNode(node);if(autoRefresh&&p&&p.childrenRendered){p.refresh();}
return true;},removeChildren:function(node){for(var i=0,len=node.children.length;i<len;++i){this._deleteNode(node.children[i]);}
node.childrenRendered=false;node.dynamicLoadComplete=false;node.collapse();},_deleteNode:function(node){var p=node.parent;this.removeChildren(node);var a=[];for(i=0,len=p.children.length;i<len;++i){if(p.children[i]!=node){a[a.length]=p.children[i];}}
p.children=a;p.childrenRendered=false;if(node.previousSibling){node.previousSibling.nextSibling=node.nextSibling;}
if(node.nextSibling){node.nextSibling.previousSibling=node.previousSibling;}
delete this._nodes[node.index];},onExpand:function(node){},onCollapse:function(node){}};YAHOO.widget.TreeView.trees=[];YAHOO.widget.TreeView.getTree=function(treeId){var t=YAHOO.widget.TreeView.trees[treeId];return(t)?t:null;};YAHOO.widget.TreeView.getNode=function(treeId,nodeIndex){var t=YAHOO.widget.TreeView.getTree(treeId);return(t)?t.getNodeByIndex(nodeIndex):null;};YAHOO.widget.TreeView.addHandler=function(el,sType,fn,capture){capture=(capture)?true:false;if(el.addEventListener){el.addEventListener(sType,fn,capture);}else if(el.attachEvent){el.attachEvent("on"+sType,fn);}else{el["on"+sType]=fn;}};YAHOO.widget.TreeView.preload=function(){var styles=["ygtvtn","ygtvtm","ygtvtmh","ygtvtp","ygtvtph","ygtvln","ygtvlm","ygtvlmh","ygtvlp","ygtvlph","ygtvloading"];var sb=[];for(var i=0;i<styles.length;++i){sb[sb.length]='<span class="'+styles[i]+'">&nbsp;</span>';}
var f=document.createElement("div");var s=f.style;s.position="absolute";s.top="-1000px";s.left="-1000px";f.innerHTML=sb.join("");document.body.appendChild(f);};YAHOO.widget.TreeView.addHandler(window,"load",YAHOO.widget.TreeView.preload);YAHOO.widget.Node=function(oData,oParent,expanded){if(oParent){this.init(oData,oParent,expanded);}};YAHOO.widget.Node.prototype={index:0,children:null,tree:null,data:null,parent:null,depth:-1,href:null,target:"_self",expanded:false,multiExpand:true,renderHidden:false,childrenRendered:false,dynamicLoadComplete:false,previousSibling:null,nextSibling:null,_dynLoad:false,dataLoader:null,isLoading:false,hasIcon:true,iconMode:0,_type:"Node",init:function(oData,oParent,expanded){this.data=oData;this.children=[];this.index=YAHOO.widget.TreeView.nodeCount;++YAHOO.widget.TreeView.nodeCount;this.expanded=expanded;if(oParent){this.tree=oParent.tree;this.parent=oParent;this.href="javascript:"+this.getToggleLink();this.depth=oParent.depth+1;this.multiExpand=oParent.multiExpand;oParent.appendChild(this);}},appendChild:function(node){if(this.hasChildren()){var sib=this.children[this.children.length-1];sib.nextSibling=node;node.previousSibling=sib;}
this.tree.regNode(node);this.children[this.children.length]=node;this.childrenRendered=false;return node;},getSiblings:function(){return this.parent.children;},showChildren:function(){if(!this.tree.animateExpand(this.getChildrenEl())){if(this.hasChildren()){this.getChildrenEl().style.display="";}}},hideChildren:function(){if(!this.tree.animateCollapse(this.getChildrenEl())){this.getChildrenEl().style.display="none";}},getElId:function(){return"ygtv"+this.index;},getChildrenElId:function(){return"ygtvc"+this.index;},getToggleElId:function(){return"ygtvt"+this.index;},getEl:function(){return document.getElementById(this.getElId());},getChildrenEl:function(){return document.getElementById(this.getChildrenElId());},getToggleEl:function(){return document.getElementById(this.getToggleElId());},getToggleLink:function(){return"YAHOO.widget.TreeView.getNode(\'"+this.tree.id+"\',"+
this.index+").toggle()";},collapse:function(){if(!this.expanded){return;}
if("undefined"!=typeof ret&&!ret){return;}
if(!this.getEl()){this.expanded=false;return;}
this.hideChildren();this.expanded=false;if(this.hasIcon){this.getToggleEl().className=this.getStyle();}
ret=this.tree.onCollapse(this);},expand:function(){if(this.expanded){return;}
if("undefined"!=typeof ret&&!ret){return;}
if(!this.getEl()){this.expanded=true;return;}
if(!this.childrenRendered){this.getChildrenEl().innerHTML=this.renderChildren();}else{}
this.expanded=true;if(this.hasIcon){this.getToggleEl().className=this.getStyle();}
if(this.isLoading){this.expanded=false;return;}
if(!this.multiExpand){var sibs=this.getSiblings();for(var i=0;i<sibs.length;++i){if(sibs[i]!=this&&sibs[i].expanded){sibs[i].collapse();}}}
this.showChildren();ret=this.tree.onExpand(this);},getStyle:function(){if(this.isLoading){return"ygtvloading";}else{var loc=(this.nextSibling)?"t":"l";var type="n";if(this.hasChildren(true)||(this.isDynamic()&&!this.getIconMode())){type=(this.expanded)?"m":"p";}
return"ygtv"+loc+type;}},getHoverStyle:function(){var s=this.getStyle();if(this.hasChildren(true)&&!this.isLoading){s+="h";}
return s;},expandAll:function(){for(var i=0;i<this.children.length;++i){var c=this.children[i];if(c.isDynamic()){alert("Not supported (lazy load + expand all)");break;}else if(!c.multiExpand){alert("Not supported (no multi-expand + expand all)");break;}else{c.expand();c.expandAll();}}},collapseAll:function(){for(var i=0;i<this.children.length;++i){this.children[i].collapse();this.children[i].collapseAll();}},setDynamicLoad:function(fnDataLoader,iconMode){if(fnDataLoader){this.dataLoader=fnDataLoader;this._dynLoad=true;}else{this.dataLoader=null;this._dynLoad=false;}
if(iconMode){this.iconMode=iconMode;}},isRoot:function(){return(this==this.tree.root);},isDynamic:function(){var lazy=(!this.isRoot()&&(this._dynLoad||this.tree.root._dynLoad));return lazy;},getIconMode:function(){return(this.iconMode||this.tree.root.iconMode);},hasChildren:function(checkForLazyLoad){return(this.children.length>0||(checkForLazyLoad&&this.isDynamic()&&!this.dynamicLoadComplete));},toggle:function(){if(!this.tree.locked&&(this.hasChildren(true)||this.isDynamic())){if(this.expanded){this.collapse();}else{this.expand();}}},getHtml:function(){var sb=[];sb[sb.length]='<div class="ygtvitem" id="'+this.getElId()+'">';sb[sb.length]=this.getNodeHtml();sb[sb.length]=this.getChildrenHtml();sb[sb.length]='</div>';return sb.join("");},getChildrenHtml:function(){var sb=[];sb[sb.length]='<div class="ygtvchildren"';sb[sb.length]=' id="'+this.getChildrenElId()+'"';if(!this.expanded){sb[sb.length]=' style="display:none;"';}
sb[sb.length]='>';if((this.hasChildren(true)&&this.expanded)||(this.renderHidden&&!this.isDynamic())){sb[sb.length]=this.renderChildren();}
sb[sb.length]='</div>';return sb.join("");},renderChildren:function(){var node=this;if(this.isDynamic()&&!this.dynamicLoadComplete){this.isLoading=true;this.tree.locked=true;if(this.dataLoader){setTimeout(function(){node.dataLoader(node,function(){node.loadComplete();});},10);}else if(this.tree.root.dataLoader){setTimeout(function(){node.tree.root.dataLoader(node,function(){node.loadComplete();});},10);}else{return"Error: data loader not found or not specified.";}
return"";}else{return this.completeRender();}},completeRender:function(){var sb=[];for(var i=0;i<this.children.length;++i){this.children[i].childrenRendered=false;sb[sb.length]=this.children[i].getHtml();}
this.childrenRendered=true;return sb.join("");},loadComplete:function(){this.getChildrenEl().innerHTML=this.completeRender();this.dynamicLoadComplete=true;this.isLoading=false;this.expand();this.tree.locked=false;},getAncestor:function(depth){if(depth>=this.depth||depth<0){return null;}
var p=this.parent;while(p.depth>depth){p=p.parent;}
return p;},getDepthStyle:function(depth){return(this.getAncestor(depth).nextSibling)?"ygtvdepthcell":"ygtvblankdepthcell";},getNodeHtml:function(){return"";},refresh:function(){this.getChildrenEl().innerHTML=this.completeRender();if(this.hasIcon){var el=this.getToggleEl();if(el){el.className=this.getStyle();}}}};YAHOO.widget.RootNode=function(oTree){this.init(null,null,true);this.tree=oTree;};YAHOO.widget.RootNode.prototype=new YAHOO.widget.Node();YAHOO.widget.RootNode.prototype.getNodeHtml=function(){return"";};YAHOO.widget.TextNode=function(oData,oParent,expanded){this.type="TextNode";if(oParent){this.init(oData,oParent,expanded);this.setUpLabel(oData);}};YAHOO.widget.TextNode.prototype=new YAHOO.widget.Node();YAHOO.widget.TextNode.prototype.labelStyle="ygtvlabel";YAHOO.widget.TextNode.prototype.labelElId=null;YAHOO.widget.TextNode.prototype.label=null;YAHOO.widget.TextNode.prototype.setUpLabel=function(oData){if(typeof oData=="string"){oData={label:oData};}
this.label=oData.label;if(oData.href){this.href=oData.href;}
if(oData.target){this.target=oData.target;}
if(oData.style){this.labelStyle=oData.style;}
this.labelElId="ygtvlabelel"+this.index;};YAHOO.widget.TextNode.prototype.getLabelEl=function(){return document.getElementById(this.labelElId);};YAHOO.widget.TextNode.prototype.getNodeHtml=function(){var sb=[];sb[sb.length]='<table border="0" cellpadding="0" cellspacing="0">';sb[sb.length]='<tr>';for(i=0;i<this.depth;++i){sb[sb.length]='<td class="'+this.getDepthStyle(i)+'">&nbsp;</td>';}
var getNode='YAHOO.widget.TreeView.getNode(\''+
this.tree.id+'\','+this.index+')';sb[sb.length]='<td';sb[sb.length]=' id="'+this.getToggleElId()+'"';sb[sb.length]=' class="'+this.getStyle()+'"';if(this.hasChildren(true)){sb[sb.length]=' onmouseover="this.className=';sb[sb.length]=getNode+'.getHoverStyle()"';sb[sb.length]=' onmouseout="this.className=';sb[sb.length]=getNode+'.getStyle()"';}
sb[sb.length]=' onclick="javascript:'+this.getToggleLink()+'">';sb[sb.length]='&nbsp;';sb[sb.length]='</td>';sb[sb.length]='<td>';sb[sb.length]='<a';sb[sb.length]=' id="'+this.labelElId+'"';sb[sb.length]=' class="'+this.labelStyle+'"';sb[sb.length]=' href="'+this.href+'"';sb[sb.length]=' target="'+this.target+'"';sb[sb.length]=' onclick="return '+getNode+'.onLabelClick('+getNode+')"';if(this.hasChildren(true)){sb[sb.length]=' onmouseover="document.getElementById(\'';sb[sb.length]=this.getToggleElId()+'\').className=';sb[sb.length]=getNode+'.getHoverStyle()"';sb[sb.length]=' onmouseout="document.getElementById(\'';sb[sb.length]=this.getToggleElId()+'\').className=';sb[sb.length]=getNode+'.getStyle()"';}
sb[sb.length]=' >';sb[sb.length]=this.label;sb[sb.length]='</a>';sb[sb.length]='</td>';sb[sb.length]='</tr>';sb[sb.length]='</table>';return sb.join("");};YAHOO.widget.TextNode.prototype.onLabelClick=function(me){};YAHOO.widget.MenuNode=function(oData,oParent,expanded){if(oParent){this.init(oData,oParent,expanded);this.setUpLabel(oData);}
this.multiExpand=false;};YAHOO.widget.MenuNode.prototype=new YAHOO.widget.TextNode();YAHOO.widget.HTMLNode=function(oData,oParent,expanded,hasIcon){if(oParent){this.init(oData,oParent,expanded);this.initContent(oData,hasIcon);}};YAHOO.widget.HTMLNode.prototype=new YAHOO.widget.Node();YAHOO.widget.HTMLNode.prototype.contentStyle="ygtvhtml";YAHOO.widget.HTMLNode.prototype.contentElId=null;YAHOO.widget.HTMLNode.prototype.content=null;YAHOO.widget.HTMLNode.prototype.initContent=function(oData,hasIcon){if(typeof oData=="string"){oData={html:oData};}
this.html=oData.html;this.contentElId="ygtvcontentel"+this.index;this.hasIcon=hasIcon;};YAHOO.widget.HTMLNode.prototype.getContentEl=function(){return document.getElementById(this.contentElId);};YAHOO.widget.HTMLNode.prototype.getNodeHtml=function(){var sb=[];sb[sb.length]='<table border="0" cellpadding="0" cellspacing="0">';sb[sb.length]='<tr>';for(i=0;i<this.depth;++i){sb[sb.length]='<td class="'+this.getDepthStyle(i)+'">&nbsp;</td>';}
if(this.hasIcon){sb[sb.length]='<td';sb[sb.length]=' id="'+this.getToggleElId()+'"';sb[sb.length]=' class="'+this.getStyle()+'"';sb[sb.length]=' onclick="javascript:'+this.getToggleLink()+'"';if(this.hasChildren(true)){sb[sb.length]=' onmouseover="this.className=';sb[sb.length]='YAHOO.widget.TreeView.getNode(\'';sb[sb.length]=this.tree.id+'\','+this.index+').getHoverStyle()"';sb[sb.length]=' onmouseout="this.className=';sb[sb.length]='YAHOO.widget.TreeView.getNode(\'';sb[sb.length]=this.tree.id+'\','+this.index+').getStyle()"';}
sb[sb.length]='>&nbsp;</td>';}
sb[sb.length]='<td';sb[sb.length]=' id="'+this.contentElId+'"';sb[sb.length]=' class="'+this.contentStyle+'"';sb[sb.length]=' >';sb[sb.length]=this.html;sb[sb.length]='</td>';sb[sb.length]='</tr>';sb[sb.length]='</table>';return sb.join("");};YAHOO.widget.TVAnim=function(){return{FADE_IN:"TVFadeIn",FADE_OUT:"TVFadeOut",getAnim:function(type,el,callback){if(YAHOO.widget[type]){return new YAHOO.widget[type](el,callback);}else{return null;}},isValid:function(type){return(YAHOO.widget[type]);}};}();YAHOO.widget.TVFadeIn=function(el,callback){this.el=el;this.callback=callback;};YAHOO.widget.TVFadeIn.prototype={animate:function(){var tvanim=this;var s=this.el.style;s.opacity=0.1;s.filter="alpha(opacity=10)";s.display="";var dur=0.4;var a=new YAHOO.util.Anim(this.el,{opacity:{from:0.1,to:1,unit:""}},dur);a.onComplete.subscribe(function(){tvanim.onComplete();});a.animate();},onComplete:function(){this.callback();}};YAHOO.widget.TVFadeOut=function(el,callback){this.el=el;this.callback=callback;};YAHOO.widget.TVFadeOut.prototype={animate:function(){var tvanim=this;var dur=0.4;var a=new YAHOO.util.Anim(this.el,{opacity:{from:1,to:0.1,unit:""}},dur);a.onComplete.subscribe(function(){tvanim.onComplete();});a.animate();},onComplete:function(){var s=this.el.style;s.display="none";s.filter="alpha(opacity=100)";this.callback();}};

// File: util.js (1.12)

YFC.Util.String=function(){};YFC.Util.String.trim=function(string)
{if(typeof string=='undefined'){return"";}
if(string.length===0){return string;}
return string.replace(/^\s+|\s+$/g,"");};YFC.Util.String.isEmpty=function(string)
{if(YFC.Util.String.trim(string).length===0){return true;}
return false;};YFC.Util.String.contains=function(string,stringToFind)
{if(string===null||stringToFind===null){return false;}
string=YFC.Util.String.trim(string);stringToFind=YFC.Util.String.trim(stringToFind);if(string.indexOf(stringToFind)===-1){return false;}
return true;};YFC.Util.Number=function(){};YFC.Util.Number.isInteger=function(number)
{if(typeof number==='undefined'){return false;}
var strNumber=YFC.Util.String.trim(number.toString());var integerRegExp=/(^-?\d\d*$)/;return integerRegExp.test(strNumber);};YFC.Util.Number.isDecimal=function(number)
{if(typeof number=='undefined'){return false;}
var strNumber=YFC.Util.String.trim(number.toString());var decimalRegExp=/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;return decimalRegExp.test(strNumber);};YFC.Util.Browser=function(){};YFC.Util.Browser.Name=navigator.appName.toLowerCase();YFC.Util.Browser.Agent=navigator.userAgent.toLowerCase();YFC.Util.Browser.Version=parseInt(navigator.appVersion,10);YFC.Util.Browser.Url=null;YFC.Util.Browser.UrlChangedByApplication=false;YFC.Util.Browser.isMozilla=function()
{if(this.Name.indexOf("mozilla")>-1||this.Name.indexOf("netscape")>-1){return true;}
return false;};YFC.Util.Browser.isIE=function()
{if(document.all){return true;}
return false;};YFC.Util.Browser.isIE4=function()
{if(!this.supportDOM()&&this.isIE()){return true;}
return false;};YFC.Util.Browser.isIE5=function()
{if(this.supportDOM()&&this.isIE()){return true;}
return false;};YFC.Util.Browser.isIE6=function()
{if(document.nodeType&&this.isIE()){return true;}
return false;};YFC.Util.Browser.isSafari=function()
{if(this.Agent.indexOf("applewebkit")!=-1){return true;}
return false;};YFC.Util.Browser.isOpera=function()
{if(this.Name.indexOf("opera")!=-1){return true;}
return false;};YFC.Util.Browser.isNetscape=function()
{if(document.layers){return true;}
return false;};YFC.Util.Browser.isNetscape4=function()
{if(this.isNetscape()&&this.Version>=4){return true;}
return false;};YFC.Util.Browser.isNetscape6=function()
{if(this.isNetscape()&&this.supportDOM()){return true;}
return false;};YFC.Util.Browser.isMac=function()
{if(this.Name.indexOf("mac")!=-1){return true;}
return false;};YFC.Util.Browser.supportDOM=function()
{if(document.getElementById!==null){return true;}
return false;};YFC.Util.Browser.getLocationHash=function()
{var hashWindow=window.location.hash;if(YFC.Util.String.isEmpty(hashWindow=YFC.Util.String.trim(hashWindow))){return"";}
if(hashWindow.charAt(0)==="#"){hashWindow=hashWindow.substring(1);}
return hashWindow;};YFC.Util.Browser.setLocationHash=function(locationHash)
{window.location.hash=YFC.Util.String.trim(locationHash);};YFC.Util.Browser.addUrlListener=function(functionName)
{var checkLocation=function()
{var location=YFC.Util.Browser.getLocationHash();if(YFC.Util.Browser.Url===location){return;}
YFC.Util.Browser.Url=location;fireUrlChangedEvent(functionName,location);};setInterval(checkLocation,100);fireUrlChangedEvent=function(functionName,location){functionName.call(null,location);};};YFC.Util.Hashtable=function()
{var hashtable=[];this.clear=function(){hashtable=[];};this.containsKey=function(key)
{for(var i in hashtable){if(i===key&&hashtable[i]!==null){return true;}}
return false;};this.containsValue=function(value)
{if(value===null){return false;}
for(var i in hashtable){if(hashtable[i]==value){return true;}}
return false;};this.get=function(key)
{return hashtable[key];};this.isEmpty=function()
{return(this.size()===0)?true:false;};this.keys=function()
{var keys=[];for(var i in hashtable){if(hashtable[i]!==null){keys.push(i);}}
return keys;};this.keyIndex=function(keyValue)
{var counter=0;for(var i in hashtable){counter++;if(hashtable[i]!==null){if(keyValue===i){return counter;}}}
return-1;};this.put=function(key,value)
{if(key===null||value===null){return;}
hashtable[key]=value;};this.remove=function(key)
{var rtn=hashtable[key];hashtable[key]=null;return rtn;};this.size=function()
{var size=0;for(var i in hashtable){if(hashtable[i]!==null){size++;}}
return size;};this.values=function()
{var values=[];for(var i in hashtable){if(hashtable[i]!==null){values.push(hashtable[i]);}}
return values;};this.toString=function()
{var result="";for(var i in hashtable){if(hashtable[i]!==null){result+="{"+i+"},{"+hashtable[i]+"}\n";}}
return result;};};YFC.Util.Collection={filter:function(fn,lst,self)
{var rval=[];if(typeof(Array.prototype.filter)=='function'){return Array.prototype.filter.call(lst,fn,self);}
else if(typeof(self)=='undefined'||self===null){for(var i=0;i<lst.length;++i){var o=lst[i];if(fn(o)){rval.push(o);}}}
else{for(i=0;i<lst.length;++i){o=lst[i];if(fn.call(self,o)){rval.push(o);}}}
return rval;},map:function(fn,lst,obj)
{var rval=[];for(var i=0;i<lst.length;++i){rval.push(fn(lst[i],obj));}
return rval;}};YFC.Util.CSS={setClassName:function(elm,newClassName){elm.className=newClassName;},addClassName:function(elm,newClassName){elm.className=elm.className+" "+newClassName;},removeClassName:function(elm,removedClassName)
{var aClasses=elm.className.split(' ');var aClassesNew=[];for(var i=0;i<aClasses.length;++i){if(aClasses[i]!==removedClassName){aClassesNew.push(aClasses[i]);}}
elm.className=aClassesNew.join(' ');}};

// File: browserhistory.js (1.15)

YFC.Util.BrowserHistory=function()
{var YFCU=YFC.Util;var YFCUS=YFCU.String;var YFCUB=YFCU.Browser;var hashHistory=new YFCU.Hashtable();var iframe=null;var isFirstTimeLoaded=true;var currentKey="";var pageKey="Yahoo.Finance.Charts.PageLoaded";var ignoreChanges=false;var iframeSource="historyiframe.html?";var flashStateSet=false;var ieLocation=null;if(YFCUB.isIE())
{createIFrame();}
this.initializeHistory=function()
{if(!YFCUB.isIE())
{if(hashHistory.get(pageKey))
{isFirstTimeLoaded=true;hashHistory.put(pageKey,true);}
else
{isFirstTimeLoaded=false;}}
YFCUB.addUrlListener(historyHandler);};function createIFrame()
{document.open();YAHOO.log("location"+YFCUB.getLocationHash());document.write("<iframe style='border: 0px; width: 1px; "
+"height: 1px; position: absolute; bottom: 0px; "
+"right: 0px; visibility: visible;' "
+"name='Yahoo.Charts.BrowserHistory' id='Yahoo.Charts.BrowserHistory' "
+"src='historyiframe.html?"+"chart1"+"'>"
+"</iframe>");document.close();iframe=document.getElementById("Yahoo.Charts.BrowserHistory");}
var timeLastRequest=new Date().getTime();var requestUnderDelay=0;this.registerChange=function(historyData)
{if(isFirstTimeLoaded){this.initializeHistory();}
var register=function()
{if(flashStateSet)
{flashStateSet=false;return;}
var newKey="chart"+(hashHistory.size()+1);var isLocationAnId=document.getElementById(newKey);if(isLocationAnId){YAHOO.log("An ID detected with the same name like new Location");}
ignoreChanges=true;hashHistory.put(newKey,historyData);currentKey=newKey;YFCUB.setLocationHash(newKey+":"+historyData);if(YFCUB.isIE()){iframe.src=iframeSource+newKey;}
ignoreChanges=false;};var timeDiff=(new Date()).getTime()-timeLastRequest;if(timeDiff>(400*(requestUnderDelay+1)))
{requestUnderDelay=0;timeLastRequest=(new Date()).getTime();setTimeout(register,400);}
else
{requestUnderDelay++;setTimeout(register,(400*requestUnderDelay));}
var st=flashChart.chartState;st.update(historyData,"false");};function historyHandler(newLocation,cookieFlag)
{if(YFCUS.isEmpty(newLocation)){return;}
if(YFCUB.getLocationHash()===currentKey+newLocation)
{return;}
var keyIndex=hashHistory.keyIndex(newLocation.substr(0,newLocation.indexOf(":")));if(newLocation.indexOf(":")!=-1)
{newLocation=newLocation.substr(newLocation.indexOf(":")+1,newLocation.length);}
if(keyIndex<hashHistory.size()&&keyIndex!=-1)
{flashStateSet=true;var st=flashChart.chartState;st.update(newLocation,"false");YFC.LeftPanelTree.setParamsAndInitialize();flashChart.setState(newLocation);YFC.getchartbox.init();}
else{}}
this.iframeLoaded=function(newLocation)
{if(ignoreChanges)
{ignoreChanges=false;return;}
var location=newLocation.search.split("?").join("");var doctitle=(flashChart&&flashChart.title)?flashChart.title:"Yahoo! Finance Charts";if(YFCUS.isEmpty(location)){YFCUB.setLocationHash(location);document.title=doctitle;}
else{if(hashHistory.get(location)){YFCUB.setLocationHash(location+":"+hashHistory.get(location));document.title=doctitle;}}};};YFC.browserHistory=new YFC.Util.BrowserHistory();

