Discover Habbo's history
Treat yourself with a Secret Santa gift.... of a random Wiki page for you to start exploring Habbo's history!
Happy holidays!
Celebrate with us at Habbox on the hotel, on our Forum and right here!
Join Habbox!
One of us! One of us! Click here to see the roles you could take as part of the Habbox community!


Results 1 to 5 of 5
  1. #1
    Join Date
    Dec 2006
    Posts
    3,970
    Tokens
    0

    Latest Awards:

    Default [JS] what does this do? [+2REP]

    K, the file was called DATACONN.HTC when you open it in notepad it says;

    Code:
    <public:component name=odchandler>
    <public:method name="maxRowChange"></method>
    <public:method name="display"></method>
    <public:attach event="ondocumentready" HANDLER="display"/>
    <script language="javascript">
    var iMAXROWSTOSHOW_c = 1;
    var iALL_c = 2;
    var iMAXDEFAULTTOTALS_c = 3;
    var iNUMROWSDEFAULT_c = 25;
    var ptPreview;
    var objPT;
    var adorsTable;
     
    function display() {
      var sHTML, sProgID, sCubeName, sConnectionString, sCommandType, sCommandText;
      var collProgIDTags, collXMLTags, xmldocODC;
      var objHR;
    
      collProgIDTags = window.document.getElementsByName("ProgID")
      // if there is no progid, bail out.
      if (collProgIDTags.length == 0) { return; }
      sProgID = collProgIDTags[0].content;
      objPT = window.document.createElement("OBJECT")
      objPT.classid = "clsid:0002E55A-0000-0000-C000-000000000046"
      objPT.width = "100%"
      objPT.height = "100%"
      objPT.AutoFit = false;
      objPT.style.margin = "1px"
      objPT.id = "ptPreview";
      xmldocODC = window.document.getElementById("msodc");
      if (xmldocODC == null) { return; }
      element.appendChild(objPT);     // add the PT to the page
      element.style.backgroundColor="buttonface";
      ptPreview = objPT.object; 
      switch (sProgID) {
        case "ODC.Table":
          sCommandType = xmldocODC.documentElement.selectSingleNode("odc:Connection/odc:CommandType").text
          sCommandText = xmldocODC.documentElement.selectSingleNode("odc:Connection/odc:CommandText").text
          sConnectionString = xmldocODC.documentElement.selectSingleNode("odc:Connection/odc:ConnectionString").text
          setTable(sConnectionString, sCommandText, sCommandType); 
          break;
      
        case "ODC.Database":
          sConnectionString = xmldocODC.documentElement.selectSingleNode("odc:Connection/odc:ConnectionString").text
          setDatabase(sConnectionString);
          break;
       
        case "ODC.Cube":
          sCubeName = xmldocODC.documentElement.selectSingleNode("odc:Connection/odc:CommandText").text
          sConnectionString = xmldocODC.documentElement.selectSingleNode("odc:Connection/odc:ConnectionString").text
          setCube(sConnectionString, sCubeName);
          break;
        }
      }
    function setTable(sConnectionString, sCommandText, sCommandType) {
      sCommandType = sCommandType.toLowerCase();
      ptPreview.ConnectionString = sConnectionString
      ptPreview.DataSource.MaxRecords = iNUMROWSDEFAULT_c;
      if (sCommandType.indexOf("default") >= 0 || sCommandType.indexOf("sql") >= 0 ) {
        ptPreview.CommandText = sCommandText
        }
      else if (sCommandType.indexOf("table") >= 0) {
        ptPreview.DataMember = scrubTableName(sConnectionString, sCommandText);
        }
    
      try {
        ptPreview.ActiveView.AutoLayout();
        }
      catch (e) {
        if (e.description.length > 0) {
          alert (e.description);
          }
        }
      // if this is a "table" from an OLAP provider, cubeify.  Otherwise, add the row count dropdown.
      if (sCommandText.indexOf("].[")>=0) {
        showDefaultCubeView();
        }
      else {
        addMaxRowDropdown();
        }
      configurePTPreview();
      }
    function scrubTableName(sConnectionString, sDataMember) {
      var sOut;
      var i;
      var sConnectionStringLower = sConnectionString.toLowerCase();
      sOut = sDataMember;
      if (sConnectionStringLower.indexOf("dsn=excel files")>=0 || 
          sConnectionStringLower.indexOf("dsn=ms access database")>=0 ||
          sConnectionStringLower.indexOf("microsoft access")>=0) {
          sOut = replace(sOut, "`", "")  // ODBC providers, like Excel and Access, fail when called via OLE-DB if there 
                                         // are these single quotes.
          }
     
      // customize the connection string for the picky MS ODBC Text Driver
      if (sConnectionStringLower.indexOf("driverid=27")>=0) {
        i = sOut.lastIndexOf("`");
        if (i>=0) {
          i = sOut.lastIndexOf("`", i-1);  
          if (i>=0) {
            sOut = sOut.substring(i, sOut.length);
            sOut = replace(sOut, "`", "\"");
            }
          }
        }
      return sOut;
      }
    function setCube(sConnectionString, sCubeName) {
      var i, iNumDefaultTotals
      ptPreview.ActiveView.Titlebar.Visible = false;
     
      ptPreview.ConnectionString = sConnectionString;
      ptPreview.DataMember = sCubeName;
      showDefaultCubeView();
      }
    function showDefaultCubeView() {
      ptPreview.DisplayFieldList = true;
      
      // give the PT focus; otherwise, the field list doesn't show until you click on PT.
      objPT.focus();
      with (ptPreview.ActiveView) {
        if (Totals.count < iMAXDEFAULTTOTALS_c) {
          iNumDefaultTotals = Totals.count
          }
        else {
          iNumDefaultTotals = iMAXDEFAULTTOTALS_c
          }
        for (i=0; i<iNumDefaultTotals; i++) {
          DataAxis.InsertTotal(Totals(i))
          }   
        }
      }
    function setDatabase(sConnectionString) {
      var adoconn;
      var adors;
     
      configurePTPreview();
      adoconn = new ActiveXObject("ADODB.Connection")
      adoconn.ConnectionString = sConnectionString;
      adoconn.CursorLocation = 3;  // 3 == adUseClient
      adoconn.Properties("Prompt") = 2;
      try {
        adoconn.Open();
        }
      catch (exc) {
        // bail if the user cancels a login
        return; 
        }
      adors = adoconn.OpenSchema(20);
      ptPreview.DataSource = adors;
      with (ptPreview.ActiveView) {
        DataAxis.InsertFieldSet(FieldSets("TABLE_NAME"))
        DataAxis.InsertFieldSet(FieldSets("TABLE_SCHEMA"))
        DataAxis.InsertFieldSet(FieldSets("TABLE_TYPE"))
        DataAxis.InsertFieldSet(FieldSets("DESCRIPTION"))
        // filter to show tables, views, cubes, virtual cubes only
        FieldSets("TABLE_TYPE").AllIncludeExclude = ptPreview.Constants.plAllExclude;
        FieldSets("TABLE_TYPE").Fields(0).IncludedMembers = Array ("TABLE","VIEW","CUBE","VIRTUAL CUBE")
        
        //sort views first to be consistent with Select Tables dialog in XL
        FieldSets("TABLE_TYPE").Fields(0).SortDirection = ptPreview.Constants.plSortDirectionAscending;
        }
      }
    function configurePTPreview() {
      with (ptPreview.ActiveView) {
        Titlebar.Visible = false
        RowAxis.Label.Visible = false   
        ColumnAxis.Label.Visible = false   
        FilterAxis.Label.Visible = false
        }
      }
    function addMaxRowDropdown() {
      var spanPreDropdown, spanPostDropdown;
      var selDropdown;
      var optTemp;
      var tdDropdownArea;
      // look for the TD that gets inserted via script in the ODC file.
      tdDropdownArea = window.document.getElementById("tdTableDropdown")
      if (tdDropdownArea != null) {
        with (tdDropdownArea.style) {
          fontFamily = "Arial"
          fontSize = "x-small"
          textAlign = "right"
          }
        
        spanPreDropdown = window.document.createElement("SPAN");
        spanPreDropdown.style.fontFamily = getLocalizedFontName();
        spanPreDropdown.style.fontSize = getLocalizedFontSize() + "pt"; 
        spanPreDropdown.innerHTML = replace(getLocalizedString(iMAXROWSTOSHOW_c), " ", "&nbsp;") + "&nbsp;&nbsp;";
        selDropdown = window.document.createElement("SELECT");
      
        // align dropdown with baseline of text
        selDropdown.style.position = "relative"
        selDropdown.style.fontFamily = getLocalizedFontName();
        selDropdown.style.fontSize = getLocalizedFontSize() + "pt"; 
        selDropdown.style.top = "1px"
        tdDropdownArea.appendChild(spanPreDropdown);
        tdDropdownArea.appendChild(selDropdown);
        // add the dropdown items.
        // note: IE5 requires that you add the option obj to a sel obj before you can set innerText.
        optTemp = window.document.createElement("OPTION")
        selDropdown.options.add(optTemp);
        optTemp.innerText = "25";
        optTemp.selected = true
        optTemp = window.document.createElement("OPTION")
        selDropdown.options.add(optTemp);
        optTemp.innerText = "100";
        optTemp = window.document.createElement("OPTION")
        selDropdown.options.add(optTemp);
        optTemp.innerText = "500";
        optTemp = window.document.createElement("OPTION")
        selDropdown.options.add(optTemp);
        optTemp.innerText = "1000";
        optTemp = window.document.createElement("OPTION")
        selDropdown.options.add(optTemp);
        optTemp.innerText = getLocalizedString(iALL_c);
        // trap dropdown change events with this code 
        selDropdown.onchange = maxRowChange;
    
        }
      }
    function maxRowChange() {
      var selDropdown;
      var adors;
      selDropdown = event.srcElement;
    
      adors = ptPreview.DataSource;
      
      if (selDropdown[0].selected) { adors.MaxRecords = 25; }
      if (selDropdown[1].selected) { adors.MaxRecords = 100; }
      if (selDropdown[2].selected) { adors.MaxRecords = 500; }
      if (selDropdown[3].selected) { adors.MaxRecords = 1000; }
      // set MaxRecords = 0 to show all records
      if (selDropdown[4].selected) { adors.MaxRecords = 0; }
      selDropdown.focus();
      window.document.ptPreview.ActiveData.TopOffset = 0;
      // hack: give IE a timeslice to repaint and get rid of the dropdown area
      window.setTimeout("window.document.ptPreview.Refresh(); ", 400);
      }
    
    function replace(strOrig, strFrom, strTo) {
      var strNew;
      var i;
      var iFromLen;
      strNew = "";
      iFromLen = strFrom.length;
      i = strOrig.indexOf(strFrom)
      j = 0;
      while (i>=0) {
        strNew = strNew + strOrig.substring(j, i) + strTo;
        
        j = i + iFromLen
        i = strOrig.indexOf(strFrom, j)
        }
      i = strOrig.length;
      strNew = strNew + strOrig.substring(j, i);
      return strNew;
      }
    function getLocalizedFontSize(iStringIndex) {
      var sLng = window.clientInformation.browserLanguage;
      if (sLng.indexOf("zh") == 0) { return 12; }
      if (sLng.indexOf("ja") == 0 || sLng.indexOf("ko") == 0) { return 11; }
      return 10;
      }
    
    function getLocalizedFontName(iStringIndex) {
      var sLng = window.clientInformation.browserLanguage;
      if (sLng.indexOf("zh-hk") == 0) { return "PMingLiu"; }
      if (sLng.indexOf("zh-tw") == 0) { return "PMingLiu"; }
      if (sLng.indexOf("zh-sg") == 0) { return "PMingLiu"; }
      if (sLng.indexOf("zh") == 0) { return "SimSun"; }
      if (sLng.indexOf("ko") == 0) { return "Dotum"; }
      if (sLng.indexOf("ja") == 0) { return "MS PGothic"; }
      return "Arial Unicode MS";
      }
    function getLocalizedString(iStringIndex) {
      var sLng = window.clientInformation.browserLanguage;
      if (iStringIndex == iALL_c) {
        if (sLng.indexOf("ar") == 0) { return "(الكل)"; }
        if (sLng.indexOf("zh-hk") == 0) { return "(全部)"; }
        if (sLng.indexOf("zh-tw") == 0) { return "(全部)"; }
        if (sLng.indexOf("zh-sg") == 0) { return "(全部)"; }
        if (sLng.indexOf("zh") == 0) { return "(全部)"; }
        if (sLng.indexOf("cs") == 0) { return "(Všechny)"; }
        if (sLng.indexOf("da") == 0) { return "(Alle)"; }
        if (sLng.indexOf("nl") == 0) { return "(Alle)"; }
        if (sLng.indexOf("fi") == 0) { return "(Kaikki)"; }
        if (sLng.indexOf("fr") == 0) { return "(Toutes)"; }
        if (sLng.indexOf("de") == 0) { return "(Alle)"; }
        if (sLng.indexOf("el") == 0) { return "(Όλες)"; }
        if (sLng.indexOf("he") == 0) { return "(הכל)"; }
        if (sLng.indexOf("hu") == 0) { return "(Mind)"; }
        if (sLng.indexOf("it") == 0) { return "(Tutte)"; }
        if (sLng.indexOf("ja") == 0) { return "(すべて)"; }
        if (sLng.indexOf("ko") == 0) { return "모두"; }
        if (sLng.indexOf("no") == 0) { return "(Alle)"; }
        if (sLng.indexOf("pl") == 0) { return "(Wszystkie)"; }
        if (sLng.indexOf("pt") == 0) { return "(Todas)"; }
        if (sLng.indexOf("ro") == 0) { return "(Toate)"; }
        if (sLng.indexOf("ru") == 0) { return "Bce"; }
        if (sLng.indexOf("sk") == 0) { return "(Všetky)"; }
        if (sLng.indexOf("sl") == 0) { return "Vse"; }
        if (sLng.indexOf("es") == 0) { return "(Todas)"; }
        if (sLng.indexOf("sv") == 0) { return "(Alla)"; }
        if (sLng.indexOf("th") == 0) { return "ทั้งหมด"; }
        if (sLng.indexOf("tr") == 0) { return "Tümü"; }
        if (sLng.indexOf("hr") == 0) { return "(Svi)"; }
        return "(all)";
        }
      if (iStringIndex == iMAXROWSTOSHOW_c) {  
        if (sLng.indexOf("ar") == 0) { return "العدد الأقصى من الصفوف للإظهار "; }
        if (sLng.indexOf("zh-hk") == 0) { return "可顯示的最多列數"; }
        if (sLng.indexOf("zh-tw") == 0) { return "可顯示的最多列數"; }
        if (sLng.indexOf("zh-sg") == 0) { return "可顯示的最多列數"; }
        if (sLng.indexOf("zh") == 0) { return "可显示的最大行数"; }
        if (sLng.indexOf("cs") == 0) { return "maximální počet řádků k zobrazení"; }
        if (sLng.indexOf("da") == 0) { return "maksimale antal rćkker, der skal vises"; }
        if (sLng.indexOf("nl") == 0) { return "Maximum aantal weer te geven rijen"; }
        if (sLng.indexOf("fi") == 0) { return "näytettävien rivien enimmäismäärä"; }
        if (sLng.indexOf("fr") == 0) { return "nombre maximum de lignes ŕ afficher"; }
        if (sLng.indexOf("de") == 0) { return "Maximale Anzahl anzuzeigender Zeilen"; }
        if (sLng.indexOf("el") == 0) { return "Μέγιστο πλήθος σειρών για προβολή"; }
        if (sLng.indexOf("he") == 0) { return "המספר המירבי של שורות להצגה"; }
        if (sLng.indexOf("hu") == 0) { return "mutatandó sorok maximális száma"; }
        if (sLng.indexOf("it") == 0) { return "numero massimo di righe da mostrare"; }
        if (sLng.indexOf("ja") == 0) { return "表示する最大列数"; }
        if (sLng.indexOf("ko") == 0) { return "표시할 최대 행 수"; }
        if (sLng.indexOf("no") == 0) { return "Maksimalt antall rader som skal vises"; }
        if (sLng.indexOf("pl") == 0) { return "Maksymalna ilość wierszy do pokazania"; }
        if (sLng.indexOf("pt") == 0) { return "número máximo de linhas a mostrar"; }
        if (sLng.indexOf("ro") == 0) { return "numărul maxim de rânduri care se afişează"; }
        if (sLng.indexOf("ru") == 0) { return "н*ибольшее количе*тво отобр*ж*емых *трок"; }
        if (sLng.indexOf("sk") == 0) { return "Maximálny počet riadkov na zobrazenie"; }
        if (sLng.indexOf("sl") == 0) { return "Največje število vrstic za prikaz"; }
        if (sLng.indexOf("es") == 0) { return "número máximo de filas para mostrar"; }
        if (sLng.indexOf("sv") == 0) { return "maximalt antal rader att visa"; }
        if (sLng.indexOf("th") == 0) { return "จำนวนแถวมากที่สุดที่สามารถแสดงได้"; }
        if (sLng.indexOf("tr") == 0) { return "Gösterilecek maksimum satır sayısı"; }
        if (sLng.indexOf("hr") == 0) { return "maksimalan broj redaka za prikaz"; }
        return "maximum number of rows to show";
        }
      }
    </script>
    </public:component>
    Lets set the stage on fire, and hollywood will be jealous.

  2. #2
    Join Date
    Aug 2005
    Location
    London
    Posts
    9,773
    Tokens
    146

    Latest Awards:

    Default

    It opens an window and displays the appropriate content assigned by the if's ?
    Very long code so it's hard to tell , I don't know anything about XML so I dunno what the top bit does .

  3. #3
    Join Date
    Dec 2006
    Posts
    3,970
    Tokens
    0

    Latest Awards:

    Default

    Quote Originally Posted by --ss-- View Post
    It opens an window and displays the appropriate content assigned by the if's ?
    Very long code so it's hard to tell , I don't know anything about XML so I dunno what the top bit does .
    Ok, thanks +Rep

    Does anyone know what the 'appropriate content' is?
    Lets set the stage on fire, and hollywood will be jealous.

  4. #4
    Join Date
    May 2006
    Posts
    1,797
    Tokens
    0

    Latest Awards:

    Default

    It displays a message according to the language the browser uses.

    Shouldnt you know though?
    Or did u just pick it up off the net and say "I wonder what that does..."
    Coming and going...
    Highers are getting the better of me

  5. #5
    Join Date
    Jan 2008
    Posts
    534
    Tokens
    0

    Default

    Damn it Craig
    But yeah, it display a message according to that sexy language the browser be using

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •