YAHOO.namespace("portfolio");YAHOO.namespace("portfolio.callback");YAHOO.portfolio.callback.cbAddRow={success:function(e){var b=$J.parse(e.responseText);usrNewLine.name=b.name;usrNewLine.lastPrice=b.lastPrice;usrNewLine.change=b.change;usrNewLine.changePct=b.changePct;usrNewLine.marketCap=b.marketCap;usrNewLine.volume=b.volume;usrNewLine.marketValue=usrNewLine.lastPrice*usrNewLine.shares;usrNewLine.gain=usrNewLine.marketValue-usrNewLine.cost;usrNewLine.dailyGain=(usrNewLine.lastPrice-b.previousPrice)*usrNewLine.shares;usrNewLine.marketId=b.marketId;if(b.mode=="insert"){oTable.addRow(usrNewLine,0);var c=oTable.getTrEl(0)}else{oRecords=oTable.getRecordSet().getRecords();for(i=0;oRecords.length;i++){if(oRecords[i].getData("ticker")==b.ticker){sRecordId=oRecords[i].getId();break}}if(b.shares>0){oTable.getRecord(sRecordId).setData("shares",b.shares);oTable.getRecord(sRecordId).setData("cost",b.cost);oTable.getRecord(sRecordId).setData("marketValue",b.lastPrice*b.shares);oTable.getRecord(sRecordId).setData("gain",(b.lastPrice*b.shares)-b.cost);oTable.getRecord(sRecordId).setData("dailyGain",(b.lastPrice-b.previousPrice)*b.shares)}else{oTable.deleteRow(i)}oTable.render()}var d=YAHOO.util.Dom.getStyle(c,"background-color");prfLine.shares=b.portfolioNbShares;prfLine.cost=b.portfolioCost;prfLine.marketValue=b.portfolioValue;prfLine.gain=b.portfolioGain;prfLine.dailyGain=b.portfolioDailyGain;var a=oTable.getRecord(oTable.getLastTrEl());oTable.updateRow(a,prfLine);YAHOO.portfolio.updateLastLine(oTable);$("txtNewShares").value="";$("txtNewCost").value="";$("txtNewCode").value="";if(b.transactionsHtml){if(!isIE){oTrans=$("transactionsList");oTrans.innerHTML=b.transactionsHtml}else{oTrans=$("divTransactionsList");oTrans.innerHTML='<table id="transactionsList">'+b.transactionsHtml+"</table>";$E.onContentReady("prfTableTransacBody",function(){oTBody=$("prfTableTransacBody");$D.addClass(oTBody,"transactionsListTr")})}}applyStateChangeToButton("btnSaveElement",true)},failure:function(a){$("feedbackManager").innerHTML=_("Error in the function")+" cbAddRow"},cache:false};YAHOO.portfolio.callback.cbDelRow={success:function(c){var b=$J.parse(c.responseText);prfLine.shares=b.portfolioNbShares;prfLine.cost=b.portfolioCost;prfLine.marketValue=b.portfolioValue;prfLine.gain=b.portfolioGain;prfLine.dailyGain=b.portfolioDailyGain;var a=oTable.getRecord(oTable.getLastTrEl());oTable.updateRow(a,prfLine);applyStateChangeToButton("btnSaveElement",true)},failure:function(a){$("feedbackManager").innerHTML=_("Error in the function")+" cbDelRow"},cache:false};YAHOO.portfolio.callback.cbUpdatePosition={success:function(d){var b=$J.parse(d.responseText);var c=oTable.getRecord("yui-rec"+b.lineIndex);c.setData("marketValue",c.getData("lastPrice")*c.getData("shares"));c.setData("gain",b.valueGain);c.setData("dailyGain",b.valueDailyGain);oTable.render();var a=oTable.getRecord(oTable.getLastTrEl());prfLine.shares=b.portfolioNbShares;var a=oTable.getRecord(oTable.getLastTrEl());prfLine.shares=b.portfolio;prfLine.cost=b.portfolioCost;prfLine.marketValue=b.portfolioValue;prfLine.gain=b.portfolioGain;prfLine.dailyGain=b.portfolioDailyGain;oTable.updateRow(a,prfLine);YAHOO.portfolio.updateLastLine(oTable);applyStateChangeToButton("btnSaveElement",true)},failure:function(a){$("feedbackManager").innerHTML=_("Error in the function")+" cbUpdatePosition"},cache:false};YAHOO.portfolio.updateLastLine=function(a){var b=a.getRecord(a.getLastTrEl());YAHOO.util.Dom.removeClass(b.getId(),"yui-dt-odd");YAHOO.util.Dom.removeClass(b.getId(),"yui-dt-even");YAHOO.util.Dom.addClass(b.getId(),"yui-dt-last");YAHOO.util.Dom.addClass(b.getId(),"yui-dt-highlighted")};YAHOO.portfolio.itemSelectHandler=function(h,j){var b=j[0];var f=j[1];var d=j[2];var c=d.label;var a=d.code;var g=d.mkt;usrNewLine.ticker=a;usrNewLine.marketId=g};YAHOO.portfolio.changePortfolio=function(){var a=$("selElementList");var b=a.options[a.selectedIndex].value;if(b==0){YAHOO.portfolio.newPortfolio()}if(b==portfolioId){feedBackMessage(_("You already are on that portfolio !"),true);return false}location.href="/"+i18n.USER_LANGUAGE+"/portfolio/index/id/"+b+"/"};YAHOO.portfolio.newPortfolio=function(){location.href="/"+i18n.USER_LANGUAGE+"/portfolio/index/id/new"};var orgPortfolioName="";YAHOO.portfolio.savePortfolio=function(){orgPortfolioName=portfolioName;if(portfolioName==_("New")+" "+_("portfolio")){$("dlgSimplePrompt-nameParam").value=portfolioName;$("dlgSimplePrompt-idParam").value=portfolioId;YAHOO.core.prompt.oSimplePrompt.show()}else{var a="/portfolio/ajax-save-portfolio/id/"+portfolioId+"/name/"+encodeURIComponent(portfolioName);var b=YAHOO.util.Connect.asyncRequest("GET",a,YAHOO.portfolio.callback.cbSavePortfolio);$("feedbackManager").innerHTML="<img src='/img/global/ajaxBusy.gif'>"}};YAHOO.portfolio.callback.cbSavePortfolioOk=function(b){var a=$J.parse(b.responseText);if(a.status=="ok"){portfolioName=a.name}else{portfolioName=orgPortfolioName}if(portfolioId==0&&a.status=="ok"){if(YAHOO.util.Dom.inDocument("selElementList")){oListbox=$("selElementList");FormUtil.addOption(oListbox,portfolioName,a.id,true);oListbox.selectedIndex=(oListbox.length)-1;portfolioId=parseInt(a.id);$("portfolioName").innerHTML='&nbsp;>&nbsp;<a id="edtPortfolioName">'+portfolioName+"</a>";$E.addListener("edtPortfolioName","click",editTitle,new elObj("edtPortfolioName",YAHOO.portfolio.renamePortfolio,YAHOO.portfolio.cancelRenamePortfolio,"portfolioName"))}}else{if(portfolioId==0&&a.status=="ko"){portfolioName=_("New")+" "+_("portfolio")}}defaultSuccessAction(b.responseText);applyStateChangeToButton("btnSaveElement",false)};YAHOO.portfolio.callback.cbSavePortfolioKo=function(a){portfolioName=orgPortfolioName;$("feedbackManager").innerHTML=_("Error in the function")+" savePortfolio"};YAHOO.portfolio.callback.cbSavePortfolio={success:YAHOO.portfolio.callback.cbSavePortfolioOk,failure:function(a){$("feedbackManager").innerHTML=_("Error in the function")+" savePortfolio"},cache:false};YAHOO.portfolio.copyPortfolio=function(){if(!portfolioId){var a=new Object();a.status="message";a.message=_("You can copy a portfolio only if it has been saved before.");defaultSuccessAction($J.stringify(a));return}else{newPortfolioName=_("copy2").ucFirst()+" "+portfolioName;if(!newPortfolioName){return}else{portfolioName=newPortfolioName}}var b="/portfolio/ajax-copy-portfolio/id/"+portfolioId+"/name/"+encodeURIComponent(portfolioName);var c=YAHOO.util.Connect.asyncRequest("GET",b,YAHOO.portfolio.callback.cbCopyPortfolio);$("feedbackManager").innerHTML="<img src='/img/global/ajaxBusy.gif'>"};YAHOO.portfolio.callback.cbCopyPortfolio={success:function(b){var a=$J.parse(b.responseText);defaultSuccessAction(b.responseText);oListbox=$("selElementList");FormUtil.addOption(oListbox,portfolioName,a.id,true);oListbox.selectedIndex=(oListbox.length)-1;portfolioId=a.id;if(a.transactionsHtml){oTrans=$("transactionsList");oTrans.innerHTML=a.transactionsHtml}$("portfolioName").innerHTML='&nbsp;>&nbsp;<a id="edtPortfolioName">'+portfolioName+"</a>";$E.addListener("edtPortfolioName","click",editTitle,new elObj("edtPortfolioName",YAHOO.portfolio.renamePortfolio,YAHOO.portfolio.cancelRenamePortfolio,"portfolioName"));if(ieVersion==6){registerIeHover("edtPortfolioName","yellow","white")}},failure:function(a){$("feedbackManager").innerHTML=_("Error in the function")+" copyPortfolio"},cache:false};YAHOO.portfolio.renamePortfolio=function(){newName=$("inputTitleId").value;if(newName==portfolioName||!newName){if(!newName){return}var a=new Object();a.status="message";a.message=_("You must enter a new name for your ")+_("portfolio");defaultSuccessAction($J.stringify(a));return}else{if(portfolioId==0){portfolioName=newName;YAHOO.portfolio.savePortfolio();return}var b="/portfolio/ajax-rename-portfolio/id/"+portfolioId+"/name/"+newName+"/";var c=YAHOO.util.Connect.asyncRequest("GET",b,YAHOO.portfolio.callback.cbRenamePortfolio);$("feedbackManager").innerHTML="<img src='/img/global/ajaxBusy.gif'>"}};YAHOO.portfolio.callback.cbRenamePortfolio={success:function(d){defaultSuccessAction(d.responseText);var b=$J.parse(d.responseText);if(b.status=="ok"){var f=b.name;var c=b.id;if(c==portfolioId){portfolioName=f}var e=$("selElementList");e.options[e.selectedIndex].text=f;var a=$("portfolioName");a.innerHTML='&nbsp;>&nbsp;<a id="edtPortfolioName">'+f+"</a>";YAHOO.util.Event.addListener("edtPortfolioName","click",editTitle,new elObj("edtPortfolioName",YAHOO.portfolio.renamePortfolio,YAHOO.portfolio.cancelRenamePortfolio,"portfolioName"));if(ieVersion==6){registerIeHover("edtPortfolioName","yellow","white")}}},failure:function(a){$("feedbackManager").innerHTML=_("Error in the function")+" renamePortfolio"},cache:false};YAHOO.portfolio.cancelRenamePortfolio=function(a,b){b.elementId.innerHTML='&nbsp;>&nbsp;<a id="edtPortfolioName">'+b.elementParam+"</a>";YAHOO.util.Event.addListener("edtPortfolioName","click",editTitle,new elObj("edtPortfolioName",YAHOO.portfolio.renamePortfolio,YAHOO.portfolio.cancelRenamePortfolio,"portfolioName"));if(ieVersion==6){registerIeHover("edtPortfolioName","yellow","white")}};YAHOO.portfolio.deletePortfolio=function(){var a=$("selElementList");if(a.options[a.selectedIndex].value!="new"){var e=a.options[a.selectedIndex].text;var f=a.options[a.selectedIndex].value;if(confirm(_("Are you sure you want to delete the ")+_("portfolio")+' "'+e+'" ?')){if(f==0){location.href="/"+i18n.USER_LANGUAGE+"/portfolio/index/id/0/"}else{if(f==portfolioId){location.href="/"+i18n.USER_LANGUAGE+"/portfolio/delete/id/"+f+"/"}else{var b="/"+i18n.USER_LANGUAGE+"/portfolio/delete/id/"+f+"/";var c=YAHOO.util.Connect.asyncRequest("GET",b,YAHOO.portfolio.callback.cbDeletePortfolio);$("feedbackManager").innerHTML="<img src='/img/global/ajaxBusy.gif'>"}}}else{return}}else{var d={message:_("You can delete a portfolio only if it has been saved before."),status:"ko"};defaultSuccessAction($J.stringify(d))}};YAHOO.portfolio.callback.cbDeletePortfolio={success:function(c){defaultSuccessAction(c.responseText);var a=$("selElementList");a.remove(a.selectedIndex);for(var b=0;b<a.length;b++){if(a[b].value==portfolioId){a[b].selected==true}}},failure:function(a){$("feedbackManager").innerHTML=_("Error in the function")+" deletePortfolio"},cache:false};YAHOO.portfolio.deleteTransaction=function(a){var d=$(a);d.parentNode.removeChild(d);var b="/portfolio/ajax-delete-transaction/tid/"+encodeURIComponent(a);var c=YAHOO.util.Connect.asyncRequest("GET",b,YAHOO.portfolio.callback.cbDelTransaction)};YAHOO.portfolio.callback.cbDelTransaction={success:function(c){var a=$J.parse(c.responseText);var b=$("trnGrandTotal");b.innerHTML=parseFloat(a.transactionsGain);applyStateChangeToButton("btnSaveElement",true)},failure:function(a){$("feedbackManager").innerHTML=_("Error in the function")+" deleteTransaction"},cache:false};YAHOO.portfolio.portfolioInit=function(){YAHOO.util.Event.onAvailable("btnAddRow",function(){var a=new YAHOO.widget.Button("btnAddRow");a.addListener("click",function(h,d){if(!usrNewLine.ticker||usrNewLine.ticker==""){var g=$("txtNewCode").value;alert(_("The value you entered is not valid")+" ("+g.toString()+")");$("txtNewCode").value="";return}usrNewLine.shares=parseInt($("txtNewShares").value);if(!usrNewLine.shares){usrNewLine.shares=0}usrNewLine.cost=parseFloat($("txtNewCost").value);if(!usrNewLine.cost){usrNewLine.cost=0}var b=$("selNewType");usrNewLine.positionType=b.options[b.selectedIndex].value;var c="/portfolio/ajax-add-portfolio-row/tid/"+encodeURIComponent(usrNewLine.ticker)+"/mid/"+encodeURIComponent(usrNewLine.marketId)+"/nbs/"+encodeURIComponent(usrNewLine.shares)+"/cos/"+encodeURIComponent(usrNewLine.cost)+"/typ/"+encodeURIComponent(usrNewLine.positionType);var f=YAHOO.util.Connect.asyncRequest("GET",c,YAHOO.portfolio.callback.cbAddRow)},oTable)});YAHOO.portfolio.PortfolioFromMarkup=new function(){var b=[{key:"positionType",label:_("Type")},{key:"name",label:_("Name")},{key:"ticker",label:_("Symbol")},{key:"lastPrice",label:_("Last price"),formatter:YAHOO.core.formatter.currency},{key:"change",label:_("Change"),formatter:YAHOO.core.formatter.currencyChange},{key:"changePct",label:_("Change%"),formatter:YAHOO.core.formatter.percentageChange},{key:"marketCap",label:_("Mkt Cap")},{key:"volume",label:_("Volume"),formatter:YAHOO.core.formatter.integer},{key:"shares",label:_("Shares"),formatter:YAHOO.core.formatter.integer,editor:"textbox"},{key:"cost",label:_("Cost"),formatter:YAHOO.core.formatter.currency,editor:"textbox"},{key:"marketValue",label:_("Mkt value"),formatter:YAHOO.core.formatter.currency},{key:"gain",label:_("Gain"),formatter:YAHOO.core.formatter.currencyChange},{key:"dailyGain",label:_("Day gain"),formatter:YAHOO.core.formatter.currencyChange}];this.myDataSource=new YAHOO.util.LocalDataSource($("prfTable"));this.myDataSource.responseType=YAHOO.util.LocalDataSource.TYPE_HTMLTABLE;this.myDataSource.responseSchema={fields:[{key:"positionType"},{key:"name"},{key:"ticker"},{key:"lastPrice",parser:YAHOO.util.LocalDataSource.parseNumber},{key:"change",parser:YAHOO.util.LocalDataSource.parseNumber},{key:"changePct"},{key:"marketCap"},{key:"volume",parser:YAHOO.util.LocalDataSource.parseNumber},{key:"shares",parser:YAHOO.util.LocalDataSource.parseNumber},{key:"cost",parser:YAHOO.util.LocalDataSource.parseNumber},{key:"marketValue",parser:YAHOO.util.LocalDataSource.parseNumber},{key:"gain",parser:YAHOO.util.LocalDataSource.parseNumber},{key:"dailyGain",parser:YAHOO.util.LocalDataSource.parseNumber},{key:"marketId"}]};var a={};this.myDataTable=new YAHOO.widget.DataTable("prfTableMarkup",b,this.myDataSource,{caption:_('Add values with the form below the table, right-click to remove, click in "Shares" and "Cost" columns to edit')},a);oTable=this.myDataTable;this.myDataTable.highlightRow(this.myDataTable.getLastTrEl());this.onContextMenuClick=function(f,e,k){var d=e[1];if(d){var c=this.contextEventTarget;c=k.getTrEl(c);if(c){switch(d.index){case 0:var j=k.getRecord(c);if(confirm(_("Are you sure you want to remove the position ")+j.getData("name")+" ("+j.getData("ticker")+") "+_("from your portfolio ?"))){k.deleteRow(c);oTable=k;var g="/portfolio/ajax-delete-portfolio-row/tid/"+encodeURIComponent(j.getData("ticker"))+"/mid/"+encodeURIComponent(j.getData("marketId"));var h=YAHOO.util.Connect.asyncRequest("GET",g,YAHOO.portfolio.callback.cbDelRow)}}}}};this.myContextMenu=new YAHOO.widget.ContextMenu("mycontextmenu",{trigger:this.myDataTable.getTbodyEl()});this.myContextMenu.addItem(_("Delete position"));this.myContextMenu.render("prfTableMarkup");this.myContextMenu.clickEvent.subscribe(this.onContextMenuClick,this.myDataTable);this.highlightEditableCell=function(c){var d=c.target;if(YAHOO.util.Dom.hasClass(d,"yui-dt-editable")){this.highlightCell(d)}};this.myDataTable.subscribe("cellMouseoverEvent",this.highlightEditableCell);this.myDataTable.subscribe("cellMouseoutEvent",this.myDataTable.onEventUnhighlightCell);this.myDataTable.subscribe("cellClickEvent",this.myDataTable.onEventShowCellEditor);this.myDataTable.subscribe("editorSaveEvent",function(g){var h=g.editor;var f=h.getRecord();var e=g.newData;var j=g.oldData;if(!f.getData("positionType")){return}iLineIndex=f.getId().slice(7);iShares=parseInt(f.getData("shares"));fCost=parseFloat(f.getData("cost"));var c="/portfolio/ajax-update-portfolio-row/tid/"+encodeURIComponent(f.getData("ticker"))+"/shares/"+encodeURIComponent(iShares)+"/cost/"+encodeURIComponent(fCost)+"/lid/"+iLineIndex+"/pid/"+portfolioId+"/mid/"+encodeURIComponent(f.getData("marketId"))+"/type/"+encodeURIComponent(f.getData("positionType"));var d=YAHOO.util.Connect.asyncRequest("GET",c,YAHOO.portfolio.callback.cbUpdatePosition)},this.myDataTable);this.myDataTable.subscribe("editorBlurEvent",function(c){this.cancelCellEditor()},this.myDataTable)}};var usrNewLine={positionType:"",name:"",ticker:"",lastPrice:0,change:0,changePct:0,marketCap:0,volume:0,shares:0,cost:0,marketValue:0,gain:0,dailyGain:0,marketId:0};var prfLine={positionType:null,name:null,ticker:null,lastPrice:null,change:null,changePct:"skip",marketCap:null,volume:null,shares:0,cost:0,marketValue:0,gain:0,dailyGain:0,market:0};var oTable=new Object();YAHOO.util.Event.onDOMReady(function(){YAHOO.portfolio.portfolioInit();if(ieVersion==6){registerIeHover("edtPortfolioName","yellow","white")}YAHOO.util.Event.addListener("edtPortfolioName","click",editTitle,new elObj("edtPortfolioName",YAHOO.portfolio.renamePortfolio,YAHOO.portfolio.cancelRenamePortfolio,"portfolioName"));var b=new YAHOO.util.XHRDataSource("/widget/datasource/values");b.responseType=YAHOO.util.XHRDataSource.TYPE_JSON;b.responseSchema={resultsList:"ResultSet.results",fields:[{key:"label"},{key:"id"},{key:"code"},{key:"mkt"}],metaFields:{totalRecords:"total"}};var a=new YAHOO.widget.AutoComplete("txtNewCode","acNewCodeContainer",b);a.itemSelectEvent.subscribe(YAHOO.portfolio.itemSelectHandler);a.maxResultsDisplayed=20;a.maxCacheEntries=1000;a.queryMatchCase=false;a.queryMatchContains=true;a.queryMatchSubset=true;a.resultTypeList=false;a.queryDelay=1});