home *** CD-ROM | disk | FTP | other *** search
/ Joystick Magazine 2003 November / CD1_JOY_153.iso / demos / NHL2004Demo.exe / fe / COMMON / js / dcr_request.js < prev    next >
Text File  |  2003-08-20  |  5KB  |  153 lines

  1. var dcrXmlNode = null ;
  2. var drcRequest = null ;
  3. var onDcrCompleteFunction = null ;
  4. var needValidateReturns = true ;
  5. function getDcrText(appName, pageName, tagName, onCompleteFun) {
  6.     onDcrCompleteFunction = onCompleteFun ;
  7.     _doGetNHLDcrText(appName, pageName, tagName, false, false, false);
  8. };
  9. function getPublicDcrText(appName, pageName, tagName, onCompleteFun) {
  10.     onDcrCompleteFunction = onCompleteFun ;
  11.     needValidateReturns = true ;
  12.     _doGetNHLDcrText(appName, pageName, tagName, true, false, false);
  13. };
  14. function getTickerNews(appName, pageName, tagName) {
  15.     var newsText = "" ;
  16.     var xmlString = _doGetNHLDcrText(appName, pageName, tagName, true, false, true);
  17.     var xmlDom        = new ActiveXObject("MSXML.DOMDocument");
  18.        xmlDom.loadXML(xmlString);
  19.     var newsNodes = xmlDom.selectNodes("/item/value") ;
  20.     var newsNode = null ;
  21.     var titleNode ;
  22.     var bodyNode ;
  23.     var title ;
  24.     var body ;
  25.     for (i=0; i<newsNodes.length; i++) 
  26.     {
  27.         newsNode = newsNodes[i] ;
  28.         if (newsNode) {
  29.             titleNode = newsNode.selectSingleNode("title/value") ;
  30.             if (titleNode) {
  31.                 title = titleNode.text ;
  32.                 newsText += title + "  " ;
  33.             };    
  34.             bodyNode = newsNode.selectSingleNode("body/value") ;
  35.             if (bodyNode) {
  36.                 body = bodyNode.text ;
  37.                 newsText += body + "  "; 
  38.             };
  39.         };
  40.     };
  41.     return newsText ;
  42. }
  43. function getTickerLines(appName, pageName, tagName, onCompleteFun, isSilence) {
  44.     onDcrCompleteFunction = onCompleteFun ;
  45.     needValidateReturns = (isSilence) ? false : true;
  46.      _doGetNHLDcrText(appName, pageName, tagName, true, true, false);
  47. };
  48. function CommNews() {
  49.     this.newsTitle = "" ;
  50.     this.newsBody = "" ;
  51. };
  52. var comNewsOnComplete = null ;
  53. function getCommNews(appName, pageName, tagName, commNewsOnComplete) {
  54.     comNewsOnComplete = commNewsOnComplete ;
  55.     onDcrCompleteFunction = makeCommNewsArray ;
  56.     _doGetNHLDcrText(appName, pageName, tagName, true, false, true);
  57. };
  58. function makeCommNewsArray(xmlString) {
  59.     var newsArray = null ;
  60.     var news = null ;
  61.     var xmlDom        = new ActiveXObject("MSXML.DOMDocument");
  62.        xmlDom.loadXML(xmlString);
  63.     var newsNodes = xmlDom.selectNodes("/item/value") ;
  64.     var newsNode = null ;
  65.     var titleNode ;
  66.     var bodyNode ;
  67.     if (newsNodes.length>0) newsArray = new Array(newsNodes.length) ;
  68.     for (i=0; i<newsNodes.length; i++) 
  69.     {
  70.         newsNode = newsNodes[i] ;
  71.         if (newsNode) {
  72.             news = new CommNews() ;
  73.             titleNode = newsNode.selectSingleNode("title/value") ;
  74.             if (titleNode) {
  75.                 news.newsTitle = titleNode.text ;
  76.             };
  77.             bodyNode = newsNode.selectSingleNode("body/value") ;
  78.             if (bodyNode) {
  79.                 news.newsBody = _getValueString(bodyNode.xml) ;
  80.             };
  81.         };
  82.         newsArray[i] = news ;
  83.     };
  84.     comNewsOnComplete(newsArray) ;
  85. };
  86. function _getValueString(xmlValueString) {
  87.     var len = xmlValueString.length ;
  88.     var newString = xmlValueString ;
  89.     if ((len>15) && (xmlValueString.indexOf("<value>")==0)) {
  90.         newString = xmlValueString.substring(7, len-8) ;
  91.     };
  92.     return newString ;
  93. };
  94. function getDcrReturns() {
  95.     var dcrText = null ;
  96.     if (drcRequest) {
  97.         if (drcRequest.isError()) {
  98.             if (needValidateReturns) {
  99.                 System.handleError(drcRequest.isError());
  100.                 onDcrCompleteFunction = null;
  101.                 return;    
  102.             } else {
  103.                 onDcrCompleteFunction = null;
  104.                 return;
  105.             };
  106.        };
  107.         var xmlNode = drcRequest.getValue();
  108.         if (xmlNode) {
  109.             var err = xmlNode.selectSingleNode("error") ;
  110.             if (needValidateReturns && err) {
  111.                 var e = new Error() ;
  112.                 e.description =  "::501::Server not responding";
  113.                 throw e ;
  114.                 onDcrCompleteFunction = null;
  115.                 } else if( needValidateReturns && xmlNode.selectSingleNode("SERVER_ERROR")){  
  116.                       onDcrCompleteFunction = null;
  117.                       var severError = new Error();
  118.                 severError.description    = "::501::Server not responding";
  119.                 throw severError;
  120.             } else {
  121.                 var root = xmlNode.selectSingleNode("//dcrRecord/dcrText");
  122.                 var dcrData = null ;
  123.                 if (root && root.childNodes) {
  124.                     dcrData = root.childNodes.item(0) ;
  125.                 };
  126.                 if (dcrData) {
  127.                     dcrText = dcrData.data ;
  128.                 };    
  129.             };    
  130.         };
  131.     };    
  132.     onDcrCompleteFunction(dcrText);
  133. };
  134. function _doGetNHLDcrText(appName, pageName, tagName, isPublic, isTicker, getAllValue) {
  135.     var domainName = "easo" ;
  136.     var subDomainName = "nhl03" ;
  137.     if (pageName.lastIndexOf(".eadcr")!=(pageName.length-6)) {
  138.         pageName += ".eadcr" ;
  139.     };
  140.     var dcrParam = "?site=pogo&dn=" + domainName + "&sdn=" + subDomainName + "&an=" + appName + "&pn=" + pageName + "&tn=" + tagName + "&getall=" + getAllValue;
  141.     var hostName = System.getHostURL() ;
  142.     if (isTicker) {
  143.         drcRequest = new Remote_Request(hostName + "easo/nhl03/dcr/get_tickernews.jsp",  dcrParam, true);
  144.     } else if (isPublic) {
  145.         drcRequest = new Remote_Request(hostName + "easo/nhl03/dcr/get_public_dcr_text.jsp",  dcrParam, true);
  146.     } else {
  147.         drcRequest = new Remote_Request(hostName + "easo/nhl03/dcr/get_dcr_text.jsp",  dcrParam, true);
  148.     };
  149.     drcRequest.setOnComplete(getDcrReturns) ;
  150.     drcRequest.setIsPostRequest(true);
  151.     drcRequest.setReturnXML_DOM(true);
  152.     drcRequest.send();
  153. };