﻿                 
         var rt_oXmlData = xml_CreateDOMFromXMLString("<data/>");         
    
         function rt_GetLocalXmlDoc(controlIndex){
              return rt_oXmlData;
         }
    
         function rt_GetChildControls(controlIndex){
             var oRv; eval("oRv = new rt_JS1_clsControls_"+controlIndex+"();");
             return oRv;
         }
         
         function rt_ddlRangesListChanged(controlIndex,controlClientId){
             eval("rt_ShowMap_"+controlClientId+"();");
             rt_ddlCitiesListChanged(controlIndex);
         }
         
         function rt_ddlCitiesListChanged(controlIndex){
             var colCtl = rt_GetChildControls(controlIndex);
             var sCityCode = colCtl["ddlCities"].value;
             var sDate = colCtl["ddlDates"].value;
             var oXmlDoc = rt_GetLocalXmlDoc(controlIndex);
             var oXmlNode = oXmlDoc.selectSingleNode("//item[@code='"+sCityCode+"' and @date='"+sDate+"']");
             
             if(oXmlNode!=null){
                 rt_ProcessXmlNode(controlIndex, oXmlNode);
             }else{
                 var oXmlRemote = xml_CreateDOMFromPath(rt_sAjaxUrl+"?rtCity="+escape(sCityCode)+"&rtDate="+escape(sDate)+"&rtLangId="+rt_JS1_LangId);                 
                                                 
                 if(true){
                     oXmlNode = oXmlRemote.selectSingleNode("//item");
                     if(oXmlNode!=null){
                         rt_ProcessXmlNode(controlIndex, oXmlNode);
                         rt_SaveXmlNode(controlIndex, oXmlNode);
                     }else{
                        // alert(oXmlRemote.xml);
                        // alert("invalid remote xml structure");
                     }
                  }else{
                     //alert("invalid remote xml");
                  }                                     
             }   
             if(document.getElementById('divBellAbove') != null){
                document.getElementById('divBellAbove').innerHTML = UserControls_RealTimeViewsUC.GetHeightFinalText(oXmlNode.xml).value;
             }          
             if(document.getElementById('divBellAboveFly') != null){
                document.getElementById('divBellAboveFly').innerHTML = UserControls_RealTimeViewsUC.GetHeightFinalText(oXmlNode.xml).value;
             }          
         }
         
         function rt_ShowMapPointDiv(controlIndex, staticControlIndex, cityCode){
             var colCtl = rt_GetChildControls(controlIndex);
             var colCtlStaitic = rt_GetChildControls(staticControlIndex);
             
             colCtl["ddlCities"].value = cityCode;
             rt_ddlCitiesListChanged(controlIndex);
             
             var ddlCities = colCtlStaitic["ddlCities"];
             var sCityName = "";
             for(var i=0; i<ddlCities.options.length; i++){
                 if(ddlCities.options[i].value==cityCode){
                     sCityName = ddlCities.options[i].text;
                 }
             }
             colCtl["rt_CityName"].innerHTML = sCityName;
             
             var oFly = null; eval("oFly=window.oFly_"+controlIndex+";");
             if(oFly==null){
                 oMap = colCtl["imgMap"];
                 if(rt_JS1_LangId==1){
                    oFly = new clsFlyObj(oMap,colCtl["pnlFly"].id,"left","right","top","top",20,100);                    
                 }else{
                    oFly = new clsFlyObj(oMap,colCtl["pnlFly"].id,"right","left","top","top",-20,100);
                 }
                 eval("window.oFly_"+controlIndex+"=oFly;");                                 
             }
             oFly.SetPosition(); 
             oFly.Show();
             
             window.status = cityCode;
         }
         
         function rt_HideMapPointDiv(controlIndex, staticControlIndex, cityCode){
             var oFly = null; eval("oFly=window.oFly_"+controlIndex+";");
             if(oFly!=null){
                oFly.Hide();
             }
             window.status = "";
         }
         
         function rt_SaveXmlNode(controlIndex, xmlNode){
             var oXmlDoc = rt_GetLocalXmlDoc(controlIndex);
             var oXmlNode = oXmlDoc.createElement("item");
             
             for(var i=0; i<xmlNode.attributes.length; i++){
                 var oXmlAttr = oXmlDoc.createAttribute(xmlNode.attributes[i].nodeName);
                 oXmlAttr.nodeValue = xmlNode.attributes[i].nodeValue;
                 oXmlNode.attributes.setNamedItem(oXmlAttr);                 
             }
             oXmlDoc.documentElement.appendChild(oXmlNode);
             //alert(oXmlDoc.xml);             
         }
         
         function rt_ProcessFirstTimeXml(controlIndex, xmlHiddenFieldId){
              var oFld = document.getElementById(xmlHiddenFieldId);                             
              var oXmlDoc = xml_CreateDOMFromXMLString(oFld.value);
              var oXmlNode = oXmlDoc.documentElement;    
                                       
              rt_ProcessXmlNode(controlIndex, oXmlNode);
              rt_SaveXmlNode(controlIndex, oXmlNode);                                                                                       
         }
         
         function rt_ProcessXmlNode(controlIndex, xmlNode){
             var colCtl = rt_GetChildControls(controlIndex);
             
             for(var i=0; i<xmlNode.attributes.length; i++){
                 if(xmlNode.attributes[i].nodeName!="rt_WindDirection"){
                    rt_ProcessValue(colCtl,xmlNode.attributes[i].nodeName,xmlNode.attributes[i].nodeValue);
                 }
                 else{
                    var sSpeedVal = xmlNode.getAttribute("rt_WindSpeed");
                    if(sSpeedVal != "0"){
                        rt_ProcessValue(colCtl,xmlNode.attributes[i].nodeName,xmlNode.attributes[i].nodeValue);
                    }
                    else{
                        rt_ProcessValue(colCtl,xmlNode.attributes[i].nodeName,"-");
                    }
                    
                 }
             }
             
             var sCode = xmlNode.selectSingleNode("@code");
             if(sCode!=null){
                  var ctlDdl = colCtl["ddlCities"];
                  if(ctlDdl!=null){
                      sCode = sCode.nodeValue;
                      if(ctlDdl.value!=sCode){
                          //alert("fix to" + sCode);
                          ctlDdl.value = sCode;
                      }
                  }
             }                          
         }
         
         function rt_ProcessValue(colCtl, keyName, value){
             
             switch(keyName){
                case "date" : 
                case "code" : break;
                case "codeid" :                    
                    var oA = colCtl["rt_StationLink_Graphics"];
                    if(oA!=null){
                        oA.href = rt_sGrapsPath+"?LocationId="+escape(value);
                    }
                    
                    oA = colCtl["rt_StationLink_MoreInfo"];
                    if(oA!=null){                    
                        oA.href = rt_sInfoPath+"?GotoPost="+escape(value);
                    }
                    break;
                default : 
                    var oEl = colCtl[keyName];                    
                    if(oEl!=null){
                       var sValue = "";
                       var oElContainer = rt_ProcessValue_FindContainer(oEl);
                       switch(keyName){
                           case "rt_CoordinatesInternational" :
                              
                              sValue = value.replace("o",sDegreeHTML);
                              sValue= sValue.replace("o",sDegreeHTML);
                            
                              break;
                           case "rt_Temperature" :
                              var sDegreeGrade = colCtl["fldTemperatureGrade"].value;
                              if(value!=null && value!=""){
                                  if(sDegreeGrade=="F"){
                                     sValue = C2F(value);
                                  }else{
                                     sValue = value;
                                  }
                                  sValue = "<NOBR>"+sValue+sDegreeHTML+sDegreeGrade+"</NOBR>";
                              }
                              break; 
                           case "rt_CoordinatesHeight" : 
                                if(value!=null && value!=""){
                                    sValue = value.replace("-","");
                                }
                           break;
                                                        
                           default :
                              sValue = value;
                       }                      
                       if(sValue!=""){
                          var sMeasure = oEl.getAttribute("measuretext");
                          if(sMeasure!=null && sMeasure!=""){
                             if(sValue != "-"){
                                oEl.innerHTML = sValue+sMeasure;
                             }
                             else{
                                oEl.innerHTML = sValue;
                             }
                          }else{
                             oEl.innerHTML = sValue;
                          }
                          if(oElContainer!=null)oElContainer.style.display="block";
                       }else{
                          oEl.innerHTML = "";
                          if(oElContainer!=null)oElContainer.style.display="none";
                       }
                    }
             }             
         }
         
         function rt_ProcessValue_FindContainer(el){
             var el1 = el;
             
             for(var iCnt=0;iCnt<5;iCnt++){
                if(el1==null)break;
                if(el1.tagName=="DIV" && el1.className=="DivMarginBottom"){
                   return el1;
                }                
                el1 = el1.parentNode;                
             }
             
             return null;             
         }

