home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 November / PCWorld_2007-11_cd.bin / multimedia / mediacoder / MediaCoder-0.6.0.3830.exe / htdocs / mchelper.js next >
Text File  |  2007-03-09  |  6KB  |  263 lines

  1. var isIE = navigator.userAgent.toLowerCase().indexOf("msie") > -1;
  2. var isMoz = document.implementation && document.implementation.createDocument;
  3. var url = document.location.href;
  4. var xmlhttp = CreateXMLHttpRequest();
  5. if (!xmlhttp) alert("XMLHttpRequest object cannot be created.");
  6.  
  7. function CreateXMLHttpRequest()
  8. {
  9.     return xmlhttpreq = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("Microsoft.XMLHTTP");
  10. }
  11.  
  12. function setPageSize(width, height)
  13. {
  14.     window.innerWidth = width;
  15.     window.innerHeight = height;
  16. }
  17.  
  18. function moveCenter()
  19. {
  20.     window.moveTo((screen.availWidth - window.outerWidth) / 2, (screen.availHeight - window.outerHeight) / 2);
  21. }
  22.  
  23. function GetToken(str, token)
  24. {
  25.     var idx = str.indexOf(token + '=');
  26.     if (idx <= 0) return null;
  27.     var argstr = str.substring(idx + token.length + 1);
  28.     idx = argstr.indexOf('&');
  29.     return idx >=0 ? argstr.substring(0, idx) : argstr;
  30. }
  31.  
  32. function QueryPref(path, opts)
  33. {
  34.     var node;
  35.     var requrl = "/prefs/prefs.xml?type&";
  36.     if (opts)
  37.         requrl += opts + "&";
  38.     if (path)
  39.         requrl += "path=" + path;
  40.     xmlhttp.open("GET", requrl, false);
  41.     xmlhttp.send(null);
  42.     node = xmlhttp.responseXML.firstChild;
  43.     if (!node) {
  44.         alert("Failed to retrieve preference data from MediaCoder.");
  45.         return null;
  46.     }
  47.     return getChildNode(node);
  48. }
  49.  
  50. function QueryPlugin(type, option)
  51. {
  52.     var node;
  53.     var requrl = "/prefs/plugin.xml?type=" + type;
  54.     if (option) requrl += "&" + option;
  55.     xmlhttp.open("GET", requrl, false);
  56.     xmlhttp.send(null);
  57.     node = xmlhttp.responseXML.firstChild;
  58.     if (!node) {
  59.         alert("Failed to connect to MediaCoder.");
  60.         return null;
  61.     }
  62.     node = getChildNode(node);
  63.     if (type) node = getNodeByName(node, type);
  64.     return node;
  65. }
  66.  
  67. function QueryString(url, async)
  68. {
  69.     try { 
  70.         xmlhttp.open("GET", url, async);
  71.         xmlhttp.send(null);
  72.         return xmlhttp.responseText;
  73.     }
  74.     catch (ex) {
  75.         return null;
  76.     }
  77. }
  78.  
  79. function SetPrefValue(param, val)
  80. {
  81.     xmlhttp.open("GET", "/prefs/set?" + param + "=" + val, true);
  82.     xmlhttp.send(null);
  83. }
  84.  
  85. function GetPrefValue(param)
  86. {
  87.     xmlhttp.open("GET", "/prefs/get?path=" + param, false);
  88.     xmlhttp.send(null);
  89.     return xmlhttp.responseText;
  90. }
  91.  
  92. function RevertPrefValue(param)
  93. {
  94.     xmlhttp.open("GET", "/prefs/revert?path=" + param, false);
  95.     xmlhttp.send(null);
  96.     return xmlhttp.responseText;
  97. }
  98.  
  99. function OpenURL(urlstring) {
  100.     xmlhttp.open('GET', '/openurl?url=' + urlstring, false);
  101.     xmlhttp.send(null);
  102. }
  103.  
  104. function CreateDoc()
  105. {
  106.     var xmlDoc;
  107.     if (document.implementation && document.implementation.createDocument)
  108.     {
  109.         xmlDoc = document.implementation.createDocument("", "", null);
  110.         //xmlDoc.onload = callback;
  111.     }
  112.     else if (window.ActiveXObject)
  113.     {
  114.         xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  115.         xmlDoc.onreadystatechange = function () {
  116.             //if (xmlDoc.readyState == 4) callback()
  117.         };
  118.      }
  119.     else
  120.     {
  121.         return null;
  122.     }
  123.     return xmlDoc;    
  124. }
  125.  
  126. function LoadXMLFile(xmlfile)
  127. {
  128.     var xmlDoc = CreateDoc();
  129.     xmlDoc.async = false;
  130.     xmlDoc.load(xmlfile);
  131.     return xmlDoc;
  132. }
  133.  
  134. function NewXML(rootkey)
  135. {
  136.     var xmlDoc;
  137.     if (document.implementation && document.implementation.createDocument)
  138.     {
  139.         xmlDoc = document.implementation.createDocument("", rootkey, null);
  140.     }
  141.     else if (window.ActiveXObject)
  142.     {
  143.         xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  144.      }
  145.     else
  146.     {
  147.         return;
  148.     }
  149.     return xmlDoc;
  150. }
  151.  
  152. function PostData(requrl, data)
  153. {
  154.     xmlhttp.open("POST", requrl, false);
  155.     //xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  156.     xmlhttp.send(data);
  157. }
  158.  
  159. /******************************** DOM helper functions ********************************/
  160.  
  161. function getNextNode(node)
  162. {
  163.     while ((node = node.nextSibling) && node.nodeType!=1);
  164.     return node;
  165. }
  166.  
  167. function getChildNode(node)
  168. {
  169.     node = node.firstChild;
  170.     while (node && node.nodeType != 1) {
  171.         node = node.nextSibling;
  172.     } 
  173.     return node;
  174. }
  175.  
  176. function getLastChildNode(node)
  177. {
  178.     node=node.lastChild;
  179.     while (node && x.nodeType!=1) {
  180.         node=node.previousSibling;
  181.     }
  182.     return node;
  183. }
  184.  
  185. function getNodeValue(node)
  186. {
  187.     return node.firstChild ? node.firstChild.nodeValue : null
  188. }
  189.  
  190. function getParentNode(node)
  191. {
  192.     return node.parentNode;
  193. }
  194.  
  195. function getNodeByName(node, name)
  196. {
  197.     for (; node && node.nodeName != name; node = getNextNode(node));
  198.     return node;
  199. }
  200.  
  201. function getChildNodeValue(node, name)
  202. {
  203.     for (node = getChildNode(node); node && node.nodeName != name; node = getNextNode(node));
  204.     return node ? getNodeValue(node) : null;
  205. }
  206.  
  207. function getNodeByAttribute(node, name, attrname, attrvalue)
  208. {
  209.     for (; node; node = getNextNode(node)) {
  210.         if  (node.nodeName == name && node.getAttribute(attrname) == attrvalue)     return node;
  211.     }
  212.     return null;
  213. }
  214.  
  215. function addAttribute(doc, node, attrname, attrvalue)
  216. {
  217.     var attr = doc.createAttribute(attrname);
  218.     attr.value= attrvalue;
  219.     node.setAttributeNode(attr);
  220.     return attr;
  221. }
  222.  
  223. function addElementNode(doc, node, name)
  224. {
  225.     var elementNode = doc.createElement(name);
  226.     node.appendChild(elementNode);
  227.     return     elementNode;
  228. }
  229.  
  230. function addTextNode(doc, node, text)
  231. {
  232.     var textNode = doc.createTextNode(text);
  233.     node.appendChild(textNode);
  234.     return     textNode;
  235. }
  236.  
  237. function removeFirstChild(node)
  238. {
  239.     var c = getChildNode(node);
  240.     return c?node.removeChild(c):null;
  241. }
  242.  
  243. function removeLastChild(node)
  244. {
  245.     var c = getLastChildNode(node);
  246.     return c?node.removeChild(c):null;
  247. }
  248.  
  249. function removeChildren(node)
  250. {
  251.     var c = getChildNode(node);
  252.     while(c) {
  253.         var n=getNextNode(c);
  254.         node.removeChild(c);
  255.         c=n;
  256.     }
  257. }
  258.  
  259. function isMozilla()
  260. {
  261.     return navigator.userAgent.indexOf("Mozilla") >= 0;
  262. }
  263.