
(function($){$.setContext=function(){var args=$.makeArray(arguments),fn=args.shift(),context=args.shift();return function(){fn.apply(context,$.makeArray(arguments).concat(args));};};var bind=$.fn.bind;$.fn.bind=function(type,data,fn){var _f=null,f=fn||data;var d=fn&&data||null;if(d&&(d.keyCode||d.context||d.enableLegacyParams)){var keyCode=d.keyCode;var context=d.context||this;var enableLegacyParams=d.enableLegacyParams;_f=function(e){var args=[e];if(enableLegacyParams){args.push(e.currentTarget);args.push(e.data);}
if(null!=keyCode&&e.which==keyCode){f.apply(context,args);}else{f.apply(context,args);}};_f._original_=f;}
return bind.call(this,type,d,_f||f);};var unbind=$.fn.unbind;$.fn.unbind=function(type,fn){if(fn&&fn._original_){return unbind.call(this,type,fn._original_);}
return unbind.call(this,type,fn);}
var live=$.fn.live;$.fn.live=function(type,fn,context){if(context&&fn){var _fn=$.setContext(fn,context);_fn._original_=fn;fn=_fn;}
return live.call(this,type,fn);};var die=$.fn.die;$.fn.die=function(type,fn){if(fn&&fn._original_){return die(type,fn._original_);}
return die.call(this,type,fn);}
var ajax=$.ajax;$.ajax=function(options){var context=options.context;if(options.context){options.beforeSend=options.beforeSend&&$.setContext(options.beforeSend,options.context,options);options.complete=options.complete&&$.setContext(options.complete,options.context,options);options.dataFilter=options.dataFilter&&$.setContext(options.dataFilter,options.context);options.error=options.error&&$.setContext(options.error,options.context,options);options.success=options.success&&$.setContext(options.success,options.context,options);options.xhr=options.xhr&&$.setContext(options.xhr,options.context);delete(options.context);}
if(!options.noencode&&$.toJSON&&null!=options.data){var od=options.data;for(var o in od){var type=$.type(od[o]);if("array"==type||"object"==type){od[o]=$.toJSON(od[o]);if($.toBase64){od[o]=$.toBase64(od[o]);}}}}
var result=ajax.call(this,options);if(undefined!==context){options.context=context;}
return result;};var httpData=$.httpData;$.httpData=function(xhr,type,s){var ct=xhr.getResponseHeader("content-type")||"";if((type=="json"||!type&&ct.indexOf("json")>=0)&&(!s||!s.dataFilter)){s=s||{};type="string";s.dataFilter=function(data,type){var o=null;eval("o = "+data);return o;};}
return httpData(xhr,type,s);};$.isDebugOn=function(){return typeof(Debug)!="undefined"&&Debug.debugWindow?true:false;}
$.type=function(subject)
{if(null===subject){return"null";}
var objectType=typeof(subject);if("object"==objectType)
{switch(subject.constructor)
{case Array:objectType="array";break;case String:objectType="string";break;case Number:objectType="number";break;case Boolean:objectType="bool";break;default:if(typeof(ActiveXObject)!="undefined"&&subject instanceof ActiveXObject){objectType="dom";}else if(typeof(HTMLElement)!="undefined"&&subject instanceof HTMLElement){objectType="dom";}}}
return objectType;}
$.create=function()
{var tagName,attribs,children,container;var firstArg=arguments[0];var firstType=$.type(firstArg);if(arguments.length==1&&"string"!=firstType)
{if("array"==firstType){tagName=arguments[0][0];attribs=arguments[0][1];children=arguments[0][2];container=arguments[0][3];}else if(firstArg instanceof $){return firstArg;}else if("dom"==firstType){return firstArg;}}
else
{tagName=arguments[0];attribs=arguments[1];children=arguments[2];container=arguments[3];}
var $element=$('<'+tagName+'/>');if(attribs)
{var filtered={};for(var attr in attribs){var eventname,attrlow=attr.toLowerCase();if("events"==attrlow){var events=attribs[attr];for(var e in events){$element[e]=events[e];}}
else if(0==attrlow.indexOf("$on")&&$element[eventname=attrlow.substring(3)]){$element[eventname]=attribs[attr];}
else{filtered[attr]=attribs[attr];}}
$element.attr(filtered);}
if(null!=children)
{if($.isArray(children))
{var count=children.length;for(var c=0;c<count;c++)
{var child=children[c];var type=$.type(child);if("array"==type){$element.append($.create(child));}else if(child instanceof $||"dom"==type){$element.append(child);}else{$element.append(document.createTextNode(String(child)));}}}else{$element.html(children);}}
if(container){$(container).append($element);}
return $element;};$.log=function(){var logger=null;var init=function(){if(typeof(WSDOM)!="undefined"&&WSDOM.Console){logger=function(){WSDOM.Console.log.apply(WSDOM.Console,arguments)}}else if($.isDebugOn()&&typeof(console)!="undefined"){logger=function(){console.log.apply(console,arguments);}}else if($.isDebugOn()){logger=function(){for(var a=0;a<arguments.length;a++){var c=arguments[a];var t=$.type(c);if("array"==t||"object"==t){Debug.dbgObject&&Debug.dbgObject.call(Debug,c);}else{Debug.dbg&&Debug.dbg.call(Debug,c);}}}}
return(null!=logger);}
if(!init()){$(init);}
($.log=function(){logger&&logger.apply(null,arguments);}).apply($,arguments);}
$.version_wsdom="1.0";})(jQuery);(function($)
{var escapeRegx=/[\u0000-\u001F\u007F-\uFFFF\x22\x5c]/g;var escapeMap={'\b':'\\b','\f':'\\f','\n':'\\n','\r':'\\r','\t':'\\t','"':'\\"','\/':'\\/','\\':'\\\\'};var TYPE_ARRAY="array";var TYPE_OBJECT="object";var TYPE_STRING="string";var TYPE_NUMBER="number";var TYPE_BOOL="boolean";var TYPE_NULL="null";var TYPE_FUNCTION="function";var TYPE_UNDEF="undefined";var S_UNICODE="\\u";var S_000="000";var S_CO="{";var S_CC="}";var S_BO="[";var S_BC="]";var S_COMMA=",";var S_PROTO="prototype";var S_QUOTE="\"";var S_QCOLN="\":";var S_EMPTY="";var X_CREP=/,}/g;var X_BREP=/,]/g;function findType(subject)
{if(null==subject){return TYPE_NULL;}
var objectType=typeof(subject);if(TYPE_OBJECT==objectType)
{switch(subject.constructor)
{case Array:objectType=TYPE_ARRAY;break;case String:objectType=TYPE_STRING;break;case Number:objectType=TYPE_NUMBER;break;case Boolean:objectType=TYPE_BOOL;break;}}
return objectType;}
function unicodeEscape(c)
{return escapeMap[c]||S_UNICODE+(S_000+c.charCodeAt(0).toString(16)).slice(-4);}
function parseObject(subject,rref)
{if(null!=rref)
{for(var i=rref.length-1;i>=0;i--)
{if(subject===rref[i]){subject=undefined;}}
if(null!=subject)
{rref.push(subject);}}
var objectType=findType(subject);var output=S_EMPTY;switch(objectType)
{case TYPE_OBJECT:output+=S_CO;for(var prop in subject)
{if(!subject.hasOwnProperty(prop)||S_PROTO==prop){continue;}
output+=S_QUOTE+prop+S_QCOLN
+parseObject(subject[prop],rref)
+S_COMMA;}
output+=S_CC;break;case TYPE_FUNCTION:throw new Error("serizlier doesn't support functions");break;case TYPE_ARRAY:output+=S_BO;for(var index=0,count=subject.length;index<count;index++)
{output+=parseObject(subject[index],rref)+S_COMMA;}
output+=S_BC;break;case TYPE_STRING:output+=S_QUOTE+subject.replace(escapeRegx,unicodeEscape)+S_QUOTE;break;case TYPE_NULL:case TYPE_UNDEF:output+=TYPE_NULL;break;default:output+=String(subject).toString();}
rref&&rref.pop();return output;}
function toJSON(val,reviver,space)
{var output=parseObject(val);return output.replace(X_CREP,S_CC).replace(X_BREP,S_BC);}
function fromJSON(json,reviver)
{var revived;json&&eval("revived="+json);return revived;}
$.toJSON=toJSON;$.fromJSON=fromJSON;})(jQuery);wsodcommon_class=function(){$(".companySearch").keyup($.setContext(this.companySearch,this));$(".companySearch").focus(function(){$(this).val("");});$(".companySearch").blur(function(){if($(this).val()==""){$(this).val($(this).attr("defaultText")||"");}});var self=this;$('.companySearchBtn').bind("click",function(e){self.checkIfValidSymbol(e)});$(".addToWatchlist").click($.setContext(this.addSymbol,this));}
wsodcommon_class.prototype.addSymbol=function(e,el){var symbol=$(el).attr("symbol").toUpperCase();symbol=symbol.split(":")[0];if(wl.haveUser()){wl.addSymbol(symbol);}else{wp_login(symbol,$.setContext(wl.loadData,wl));}}
wsodcommon_class.prototype.checkIfValidSymbol=function(e){var searchValue=$(".wsod .companySearch").val();if(searchValue==""||searchValue=="Enter company name or symbol"){}else{var startRow=0;$.ajax({url:wsod_getPath()+"marketnews/CheckSymbol/?symbol="+searchValue,success:function(result){if(result=="invalid"){location.href=wsod_getPath()+"marketnews/searchResults/?searchValue="+searchValue;}else{location.href=wsod_getPath()+"marketnews/stockdetail/?symbol="+searchValue;}},error:function(){alert("There's been an error.");}});}}
wsodcommon_class.prototype.companySearch=function(evt,el){var keyCode="";var elParent=$(el).parent(".search")[0];if(evt){keyCode=evt.keyCode;}
this.$selected=this.$selected||$("table",elParent);switch(keyCode){case 13:var $a=this.$selected.find("strong:first");if(!$a.html()||($a.parent(".companySearchPopup").css("display")=="none")){$a=$(".companySearch",elParent);$(el).val($a.val().toUpperCase());}else{$(el).val($a.html().toUpperCase());}
$(el).parents(".module").removeClass("onTop");$(".companySearchPopup",elParent).slideUp("fast");$(".companySearchBtn",elParent).click();break;case 27:$(el).parents(".module").removeClass("onTop");$(".companySearchPopup",elParent).slideUp("fast");break;case 40:var $next=this.$selected.next("tr");if(!$next.length){$next=$(".companySearchPopup").find("tr:first");}
this.$selected.removeClass("highlight");$next.addClass("highlight");this.$selected=$next;break;case 38:var $next=this.$selected.prev("tr");if(!$next.length){$next=$(".companySearchPopup").find("tr:last");}
this.$selected.removeClass("highlight");$next.addClass("highlight");this.$selected=$next;break;default:var searchValue=$(el).val();var self=this;var delayTime=200;if(searchValue.length>0){try{window.stop();}catch(e){try{document.execCommand("Stop");}catch(e){}}
wsodcommon.showAjaxLoader($(".companySearchPopup"));if(this.autoSuggestDelay){clearTimeout(this.autoSuggestDelay);searchValue=$(el).val();}
this.autoSuggestDelay=setTimeout(function(){this.request=$.ajax({url:wsod_getPath()+"AutoSuggest/SymbolLookupResults",data:{SearchValue:searchValue},success:function(data){var elParent=$(el).parent(".search")[0];wsodcommon.hideAjaxLoader($(".companySearchPopup",elParent));$(el).parents(".module").addClass("onTop");$(".companySearchPopup",elParent).html(data).slideDown("slow");wsodcommon.$selected=$(".companySearchPopup",elParent).find(".searchResultCompany:first");$(".companySearchPopup",elParent).css("left",$(el).position().left+5);$(".companySearchPopup",elParent).css("top",$(el).position().top+$(el).height()+2);$(".wsod .companySearchPopup tr").mouseover(function(){$(this).not(".rowLabel").addClass("highlight");$(this).not(".rowLabel").css("cursor","pointer");});$(".wsod .companySearchPopup tr").mouseout(function(){$(this).removeClass("highlight");});$(".wsod .companySearchPopup tr").click(function(){wsodcommon.setCompanySymbol(el,$(this).attr("symbol"));$(".companySearchBtn",elParent).click();});},error:function(){wsodcommon.hideAjaxLoader($(".companySearchPopup",elParent));},dataType:"jsonp"})},delayTime);}else{$(el).parents(".module").removeClass("onTop");$(".companySearchPopup",elParent).slideUp("fast");}
break;}}
wsodcommon_class.prototype.setCompanySymbol=function(el,symbol){var elParent=$(el).parent(".search");$(el).val(symbol.toUpperCase());$(el).parents(".module").removeClass("onTop");$(".companySearchPopup",elParent).slideUp("fast");}
wsodcommon_class.prototype.showAjaxLoader=function(el){$(el).css("opacity",".25");$(el).css("filter","alpha(opacity=25)");var top=$(el).attr("offsetTop")+($(el).height()/2)-40;var left=$(el).attr("offsetLeft")+($(el).width()/2)-20;$("#ajax-loader").css("top",top+"px");$("#ajax-loader").css("left",left+"px");$("#ajax-loader").show();}
wsodcommon_class.prototype.hideAjaxLoader=function(el){$("#ajax-loader").hide();$(el).css("filter","alpha(opacity=100)");$(el).css("opacity","1.0");}
wsodcommon_class.prototype.getLineChart=function(e){var self=this;var el=e.target;var $parent=$(el).parents('li');if(!$parent.hasClass('on')){var $uberparent=$(el).parents('div.chartButtons:first');$uberparent.find('li.on:first').removeClass('on');$parent.addClass('on');var chartObj={};var $chart=$uberparent.next();chartObj.chartEl=$chart;chartObj.symbols=$chart.attr('symbols');chartObj.prevClose=$chart.attr('prevClose')||"";chartObj.type=$chart.attr('type');chartObj.duration=$(el).parents('a').attr('view');wsodcommon.requestLineChart(chartObj);}}
wsodcommon_class.prototype.requestLineChart=function(chartObj){var self=this;$.ajax({beforeSend:function(){wsodcommon.showAjaxLoader(chartObj.chartEl)},url:wsod_getPath()+"Remoting/LineChart",data:{symbols:chartObj.symbols,duration:chartObj.duration,prevClose:chartObj.prevClose,chartType:chartObj.type},dataType:"json",success:function(data){self.updateLineChart(data,chartObj.chartEl)},error:function(){alert("There's been an error.");}});}
wsodcommon_class.prototype.updateLineChart=function(response,chartEl){wsodcommon.hideAjaxLoader(chartEl);if(response.path){chartEl.find('img').attr('src',response.path);}}
wsodcommon_class.prototype.isEmpty=function(str){return((s==null)||(s.length==0));}
wsodcommon_class.prototype.isWhitespace=function(str){var whitespace=" \t\n\r";var i;if(this.isEmpty(str)){return true;}
for(i=0;i<str.length;i++){var c=str.charAt(i);if(whitespace.indexOf(c)==-1){return false;}}
return true;}
wsodcommon_class.prototype.addCommasToNumber=function(nStr){nStr+='';x=nStr.split('.');x1=x[0];x2=x.length>1?'.'+x[1]:'';var rgx=/(\d+)(\d{3})/;while(rgx.test(x1))
x1=x1.replace(rgx,'$1'+','+'$2');return x1+x2;}
$.setContext=function(){var args=$.makeArray(arguments),fn=args.shift(),context=args.shift();return function(){fn.apply(context,$.makeArray(arguments).concat([this].concat(args)));};};wsodcommon=new wsodcommon_class();$(document.body).click(function(event){var click=$(event.target);if(!click.is('.companySearch')&&!click.is('.companySearchPopup, .companySearchPopup td, .companySearchPopup a')){$(".companySearchPopup").parents(".module").removeClass("onTop");$(".companySearchPopup").slideUp("fast");}});