YAHOO.namespace("indicator.tree");YAHOO.namespace("indicator.params");YAHOO.namespace("indicator.management");YAHOO.indicator.tree.initTree=function(){var tree=new YAHOO.widget.TreeView("palette");var rootNode=tree.getRoot();var sourceDataNode=new YAHOO.widget.TextNode(_("Source Data"),rootNode,true);sourceDataNode.labelStyle="paletteCategory";var openDataNode=new YAHOO.widget.TextNode({label:_("Open price"),func:"javascript:editAreaInsert(\"$context->source['open']\")"},sourceDataNode);var closeDataNode=new YAHOO.widget.TextNode({label:_("Close price"),func:"javascript:editAreaInsert(\"$context->source['close']\")"},sourceDataNode);var highDataNode=new YAHOO.widget.TextNode({label:_("High price"),func:"javascript:editAreaInsert(\"$context->source['high']\")"},sourceDataNode);var lowDataNode=new YAHOO.widget.TextNode({label:_("Low price"),func:"javascript:editAreaInsert(\"$context->source['low']\")"},sourceDataNode);var volumeDataNode=new YAHOO.widget.TextNode({label:_("Volume"),func:"javascript:editAreaInsert(\"$context->source['volume']\")"},sourceDataNode);var destDataNode=new YAHOO.widget.TextNode({label:_("Destination"),func:'javascript:editAreaInsert("$context->data[]")'},sourceDataNode);var ctlDataNode=new YAHOO.widget.TextNode(_("Control structures"),rootNode,true);ctlDataNode.labelStyle="paletteCategory";var ifDataNode=new YAHOO.widget.TextNode({label:"if",func:'javascript:editAreaInsert("\\nif (condition) {\\n  // code ...\\n} else {\\n  // code ...\\n} ")'},ctlDataNode);var switchDataNode=new YAHOO.widget.TextNode({label:"switch",func:"javascript:editAreaInsert(\"\\nswitch (variableName) {\\n  case 'valueA':\\n  // code ...\\n  break;\\n\\n  case 'valueB':\\n  // code ...\\n  break;\\n\\n  default:\\n  // code ...\\n  break;\\n}\")"},ctlDataNode);var forDataNode=new YAHOO.widget.TextNode({label:"for",func:'javascript:editAreaInsert("\\nfor ($i = 1; $i <= 10; $i++) {\\n  // code ...\\n} ")'},ctlDataNode);var foreachDataNode=new YAHOO.widget.TextNode({label:"foreach",func:'javascript:editAreaInsert("foreach ($array as $key => $value) {\\n  // code ...\\n} ");'},ctlDataNode);var whileDataNode=new YAHOO.widget.TextNode({label:"while",func:'javascript:editAreaInsert("while ($i <= 10) {\\n  // code ...\\n  $i++;\\n} ");'},ctlDataNode);var stdIndicNode=new YAHOO.widget.TextNode({label:_("Standard Indicators"),data:"standardind"},rootNode,false);stdIndicNode.setDynamicLoad(loadDynamicNodes);stdIndicNode.labelStyle="paletteCategory";var custIndicNode=new YAHOO.widget.TextNode({label:_("Personal Indicators"),data:"customind"},rootNode,false);custIndicNode.setDynamicLoad(loadDynamicNodes);custIndicNode.labelStyle="paletteCategory";tree.subscribe("labelClick",function(node){if(node.data.func){eval(node.data.func);editAreaLoader.execCommand("sourceCode","resync_highlight")}});function loadDynamicNodes(node,onCompleteCallback){var handleSuccess=function(o){var contents=YAHOO.lang.JSON.parse(o.responseText);var newNode={};for(x=0;x<contents.length;x++){newNode[x]=new YAHOO.widget.TextNode({label:contents[x].label,func:contents[x].href},node)}onCompleteCallback()};var handleFailure=function(o){alert("Error "+o.status+" : "+o.statusText)};var callback={success:handleSuccess,failure:handleFailure};var type="";switch(node.data){case"customind":type="custom";break;case"standardind":type="standard";break}var transaction=YAHOO.util.Connect.asyncRequest("GET","/indicator/ajax-get-nodes/type/"+type+"/cid/"+elementId,callback)}tree.render()};function renameIndicator(){newName=YAHOO.util.Dom.get("inputTitleId").value;if(newName==indicatorName||!newName){if(!newName){return}var a=new Object();a.status="message";a.message=_("You must enter a new name for your ")+_("indicator");defaultSuccessAction(YAHOO.lang.JSON.stringify(a));return}else{if(elementId==0){indicatorName=newName;YAHOO.indicator.management.saveIndicator();return}var b="/indicator/ajax-rename-indicator/id/"+elementId+"/name/"+newName+"/";var c=YAHOO.util.Connect.asyncRequest("GET",b,cbRenameIndicator);YAHOO.util.Dom.get("feedbackManager").innerHTML="<img src='/img/global/ajaxBusy.gif'>"}}var cbRenameIndicator={success:function(d){defaultSuccessAction(d.responseText);var b=YAHOO.lang.JSON.parse(d.responseText);if(b.status=="ok"){var f=b.name;var c=b.id;if(c==elementId){indicatorName=f}var e=YAHOO.util.Dom.get("selElementList");e.options[e.selectedIndex].text=f;var a=YAHOO.util.Dom.get("indicatorName");a.innerHTML='&nbsp;>&nbsp;<a id="edtIndicatorName">'+f+"</a>";YAHOO.util.Event.addListener("edtIndicatorName","click",editTitle,new elObj("edtIndicatorName",renameIndicator,cancelRenameIndicator,"indicatorName"));if(ieVersion==6){registerIeHover("edtIndicatorName","yellow","white")}}},failure:function(a){YAHOO.util.Dom.get("feedbackManager").innerHTML=_("Error in the function")+" renameIndicator"},cache:false};function cancelRenameIndicator(a,b){b.elementId.innerHTML='&nbsp;>&nbsp;<a id="edtIndicatorName">'+b.elementParam+"</a>";YAHOO.util.Event.addListener("edtIndicatorName","click",editTitle,new elObj("edtIndicatorName",renameIndicator,cancelRenameIndicator,"indicatorName"));if(ieVersion==6){registerIeHover("edtIndicatorName","yellow","white")}}YAHOO.indicator.management.deleteIndicator=function(){YAHOO.core.management.deleteElement("indicator")};YAHOO.indicator.management.copyIndicator=function(){YAHOO.core.management.copyElement("indicator")};YAHOO.indicator.management.saveIndicator=function(){var d=editAreaLoader.getValue("sourceCode");if(indicatorName==null){return}else{if(d==""){alert(_("You must enter a valid source code for your indicator before saving it"));return}else{var b="/indicator/ajax-save";var e=new Object();for(index in indicExternals){var f=new Object();for(param in indicExternals[index]){f[param]=indicExternals[index][param]}e[index]=f}var a="name="+indicatorName+"&id="+encodeURIComponent(elementId)+"&code="+encodeURIComponent(d)+"&parameters="+encodeURIComponent(YAHOO.lang.JSON.stringify(indicParameters))+"&externals="+encodeURIComponent(YAHOO.lang.JSON.stringify(e));var c=YAHOO.util.Connect.asyncRequest("POST",b,YAHOO.indicator.management.cbSave,a);YAHOO.util.Dom.get("feedbackManager").innerHTML='<img src="/img/global/ajaxBusy.gif">'}}};function cbSaveOk(){}function cbSaveKo(){}YAHOO.indicator.management.cbSave={success:function(b){var a=YAHOO.lang.JSON.parse(b.responseText);defaultSuccessAction(b.responseText);if(elementId==0){if(YAHOO.util.Dom.inDocument("selElementList")){oListbox=YAHOO.util.Dom.get("selElementList");FormUtil.addOption(oListbox,indicatorName,a.id);oListbox.selectedIndex=(oListbox.length)-1;elementId=parseInt(a.id);YAHOO.util.Dom.get("indicatorName").innerHTML='&nbsp;>&nbsp;<a id="edtIndicatorName">'+indicatorName+"</a>";YAHOO.util.Event.addListener("edtIndicatorName","click",editTitle,new elObj("edtIndicatorName",renameIndicator,cancelRenameIndicator,"indicatorName"))}}applyStateChangeToButton("btnSaveElement",false)},failure:function(a){YAHOO.util.Dom.get("feedbackManager").innerHTML=_("Error in the function")+" saveIndicator"}};YAHOO.indicator.management.changeIndicator=function(){var a=YAHOO.util.Dom.get("selElementList");var b=a.options[a.selectedIndex].value;if(b==0){YAHOO.core.management.newElement("indicator")}if(b==elementId){feedBackMessage(_("You already are on that indicator !"));return false}location.href="/"+i18n.USER_LANGUAGE+"/indicator/index/id/"+b+"/"};function editAreaInsert(a){editAreaLoader.setSelectedText("sourceCode",a);applyStateChangeToButton("btnSaveElement",true)}YAHOO.indicator.addExternal=function(h,c){var e=new Object();e.type=h;if(c!=""){for(param in c){e[param]=c[param]}}indicExternals[h+nbExternals]=e;var a=YAHOO.util.Dom.get("externalsList");var f=document.createElement("span");f.id="extName"+nbExternals;f.innerHTML=h+nbExternals;var j=f.innerHTML;YAHOO.util.Dom.addClass(f,"paramName");a.appendChild(f);$E.addListener(f,"click",function(){editAreaInsert("$"+j)},j);var b=document.createElement("span");b.id="extParams"+nbExternals;var d=0;for(name in e){if(name!="type"){oParamText=document.createTextNode(name+" ");b.appendChild(oParamText);delete oParamText;oInput=document.createElement("input");oInput.type="text";oInput.id="extParamVal"+nbExternals+"-"+d.toString();oInput.value=e[name];oInput.size="3";b.appendChild(oInput);YAHOO.util.Event.addListener(oInput,"change",YAHOO.indicator.syncExtParameterVal,new elObj(nbExternals,d.toString(),name,h+nbExternals));d++}}a.appendChild(b);var g=document.createElement("img");g.id="delExt"+nbExternals;g.src="/img/indicator/cross_small.gif";YAHOO.util.Dom.addClass(g,"delParam");a.appendChild(g);YAHOO.util.Event.addListener(g,"click",YAHOO.indicator.deleteExternal,nbExternals);editAreaInsert("\n$"+h+nbExternals);nbExternals++};var cancelAddParameter=function(){this.hide()};var submitAddParameter=function(){var c=$("dlgAddParameter-nameParam").value;var d=$("dlgAddParameter-defaultValue").value;var a="/indicator/ajax-add-parameter/nameParam/"+encodeURIComponent(c)+"/defaultValue/"+encodeURIComponent(d)+"/";var b=YAHOO.util.Connect.asyncRequest("GET",a,cbAddIndicatorParam);this.hide()};var buttonsAddParameter=[{text:_("OK"),handler:submitAddParameter,isDefault:true},{text:_("Cancel"),handler:cancelAddParameter}];var cbAddIndicatorParam={success:function(h){var b=YAHOO.lang.JSON.parse(h.responseText);if(b.status=="ok"){nbParameters++;var c=YAHOO.util.Dom.get("parametersList");var f=document.createElement("span");f.id="indParamName"+nbParameters;YAHOO.util.Dom.addClass(f,"paramName");var a=document.createElement("a");a.href='javascript:editAreaInsert("$context->'+b.name+'")';a.innerHTML=b.name;f.appendChild(a);c.appendChild(f);var g=document.createElement("input");g.type="text";g.id="indParamVal"+nbParameters;g.value=b.defaultValue;g.size="3";c.appendChild(g);var e=document.createElement("img");e.id="delParam"+nbParameters;e.src="/img/indicator/cross_small.gif";YAHOO.util.Dom.addClass(e,"delParam");c.appendChild(e);YAHOO.util.Event.addListener(e,"click",deleteParameter,nbParameters);YAHOO.util.Dom.get("dlgAddParameter-nameParam").value="";YAHOO.util.Dom.get("dlgAddParameter-defaultValue").value="";indicParameters[b.name]=b.defaultValue;applyStateChangeToButton("btnSaveElement",true)}else{var d={message:_("The name of your parameter must contain only alphabetical caracters"),status:"ko"};defaultSuccessAction(YAHOO.lang.JSON.stringify(d))}},failure:function(a){YAHOO.util.Dom.get("feedbackManager").innerHML=_("Error in the function")+" oDlgAddParam"},cache:false};YAHOO.indicator.deleteParameter=function(c,f){var b=YAHOO.util.Dom.get("indParamName"+f.elementId);var d=YAHOO.util.Dom.get("indParamVal"+f.elementId);var a=YAHOO.util.Dom.get("delParam"+f.elementId);b.parentNode.removeChild(b);d.parentNode.removeChild(d);a.parentNode.removeChild(a);nbParameters--;delete indicParameters[f.elementIndex];applyStateChangeToButton("btnSaveElement",true)};YAHOO.indicator.deleteExternal=function(c,f){var b=YAHOO.util.Dom.get("extName"+f);var d=YAHOO.util.Dom.get("extParams"+f);var a=YAHOO.util.Dom.get("delExt"+f);b.parentNode.removeChild(b);d.parentNode.removeChild(d);a.parentNode.removeChild(a);nbExternals--;delete indicExternals[f];if(nbExternals==0){oStrong=YAHOO.util.Dom.get("extStrong");oStrong.parentNode.removeChild(oStrong)}applyStateChangeToButton("btnSaveElement",true)};YAHOO.indicator.syncIndParameterVal=function(a,c){var b=YAHOO.util.Dom.get("indParamVal"+c);indicParameters[b.name]=parseFloat(b.value)};YAHOO.indicator.syncExtParameterVal=function(a,c){var b=YAHOO.util.Dom.get("extParamVal"+c.elementId+"-"+c.elementIndex);indicExternals[c.elementObject][c.elementParam]=parseFloat(b.value)};function parseEditor(e,d){var b="/indicator/ajax-parse";var a="code="+encodeURIComponent(d)+"&parameters="+encodeURIComponent(YAHOO.lang.JSON.stringify(indicParameters))+"&externals="+encodeURIComponent(YAHOO.lang.JSON.stringify(indicExternals));var c=YAHOO.util.Connect.asyncRequest("POST",b,callbackParse,a)}var callbackParse={success:function(a){defaultSuccessAction(a.responseText)},failure:function(a){alert("failure")},cache:false};function changeEditor(a){applyStateChangeToButton("btnSaveElement",true)}function hideHelp(){var a=function(){var g=this.getEl();g.parentNode.removeChild(g)};var c={height:{to:0}};var f=new YAHOO.util.Anim("callForHelp",c,1,YAHOO.util.Easing.easeOut);f.animate();f.onComplete.subscribe(a);var d="/user/ajax-set-cookie";var b="name=helpHideIndicator&val=1";var e=YAHOO.util.Connect.asyncRequest("POST",d,null,b)}YAHOO.util.Event.onDOMReady(function(){if(ieVersion==6){registerIeHover("edtIndicatorName","yellow","white")}YAHOO.util.Event.addListener("edtIndicatorName","click",editTitle,new elObj("edtIndicatorName",renameIndicator,cancelRenameIndicator,"indicatorName"));YAHOO.indicator.tree.initTree();var d=new YAHOO.widget.Dialog("dlgAddParameter",{modal:true,fixedcenter:true});d.cfg.queueProperty("buttons",buttonsAddParameter);YAHOO.util.Event.addListener("addParameter","click",function(){d.render(document.body);d.show()});var b=YAHOO.util.Dom.getElementsByClassName("delParam","img","parametersList");for(x=0;x<b.length;x++){var f=x+1;var e=$("indParamVal"+f.toString());YAHOO.util.Event.addListener(b[x],"click",YAHOO.indicator.deleteParameter,new elObj(b[x].id.slice(8),e.name))}var c=YAHOO.util.Dom.getElementsByClassName("valParam","input","parametersList");for(x=0;x<c.length;x++){YAHOO.util.Event.addListener(c[x],"change",YAHOO.indicator.syncIndParameterVal,c[x].id.slice(11))}var a=YAHOO.util.Dom.getElementsByClassName("delParam","img","externalsList");for(x=0;x<a.length;x++){YAHOO.util.Event.addListener(a[x],"click",YAHOO.indicator.deleteExternal,a[x].id.slice(6))}YAHOO.util.Event.onContentReady("editArea",function(){editAreaLoader.setSelectionRange("sourceCode",0,1)})});