<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2" -->
<rss version="2.0">
    <channel>
        <title>Lowyat.NET: Latest topics by Kaye2</title>
        <description></description>
        <link>http://forum.lowyat.net/</link>
        <lastBuildDate>Fri, 19 Jun 2026 12:58:49 +0800</lastBuildDate>
        <generator>FeedCreator 1.7.2</generator>
        <item>
            <title>New tech to replace torrents?</title>
            <link>http://forum.lowyat.net/topic/546238</link>
            <description>Could you imagine it? No more BT? WTH? WHY? Cause there may be a replacement for it coming soon. For a while now, the guys at the Pirate Bay have been working on a brand new protocol - which may come to replace BitTorrent in the near future. From what I've read so far, it plans to have increased obfuscation and security.&lt;br /&gt;&lt;br /&gt;Why a new protocol? Well, the current BitTorrent protocol is developed and maintained by BitTorrent Inc. This company, founded by BitTorrent inventor Bram Cohen, recently decided to close the source of some newer additions to the protocol. According to The Pirate Bay, this gives them too much power and influence.Bram has also recently signed up to make BT a commercialized( you know how we hate everything commerical &lt;!--emo&amp;:P--&gt;&lt;img src='http://static.lowyat.net/style_emoticons/default/tongue.gif' border='0' style='vertical-align:middle' alt='tongue.gif' /&gt;&lt;!--endemo--&gt; )distribution network. According to the terms, its opt-in but one never knows for sure.&lt;br /&gt;&lt;br /&gt;Another reason for a new and improved protocol is the massive number of spammers and anti-piracy organizations that abuse the BitTorrent protocol, either to make money or to bust people who download infringing material. The new protocol will be designed with these potential problems in mind.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;No advertising of blog outside the blog section especially when the original content isn&amp;#39;t by you - yongkailoon&lt;/b&gt;</description>
            <author>Kaye2</author>
            <category>Networks and Broadband</category>
            <pubDate>Thu, 01 Nov 2007 19:33:30 +0800</pubDate>
        </item>
        <item>
            <title>Online community map</title>
            <link>http://forum.lowyat.net/topic/545544</link>
            <description>&lt;img src='http://img527.imageshack.us/img527/8210/onlinecommunitieson4.png' border='0' alt='user posted image' /&gt;</description>
            <author>Kaye2</author>
            <category>Jokes Heaven</category>
            <pubDate>Wed, 31 Oct 2007 17:19:03 +0800</pubDate>
        </item>
        <item>
            <title>Harry Potter</title>
            <link>http://forum.lowyat.net/topic/545022</link>
            <description>Here&amp;#39;s an old vid I found on my cell phone while clearing out my memory cards.  &lt;br /&gt;&lt;br /&gt;&lt;!--SPOILER BEGIN--&gt;&lt;div class=&quot;spoilertop&quot; onClick=&quot;openClose('7dd216ff9c05d41222e4049623f1b81a')&quot; style=&quot;font-weight: bold&quot;&gt;&lt;u&gt;&amp;raquo; Click to show Spoiler - click again to hide... &amp;laquo;&lt;/u&gt;&lt;/div&gt;&lt;div class=&quot;spoilermain&quot; id=&quot;7dd216ff9c05d41222e4049623f1b81a&quot; style=&quot;display:none&quot;&gt;&lt;!--SPOILER END--&gt;&lt;a href='http://blog.bluefrogx.com/2007/10/30/harry-potter-sexy-edition/' target='_blank'&gt;http://blog.bluefrogx.com/2007/10/30/harry...r-sexy-edition/&lt;/a&gt;&lt;!--SPOILER DIV--&gt;&lt;/div&gt;&lt;!--SPOILER DIV--&gt;&lt;br /&gt;&lt;br /&gt;Found it funny so decided to share here, sorry if its a repost.</description>
            <author>Kaye2</author>
            <category>Jokes Heaven</category>
            <pubDate>Tue, 30 Oct 2007 19:19:14 +0800</pubDate>
        </item>
        <item>
            <title>Yet another video grabber</title>
            <link>http://forum.lowyat.net/topic/544270</link>
            <description>&lt;b&gt;Supported sites:&lt;/b&gt;&lt;br /&gt;Angry Alien, Blennus, Blip.tv, Break.com, Dailymotion, Double Agent, eVideoShare, Free Video Blog, Google Video, Grinvi, iFilm, Keiichi Anime Forever, Metacafe, MySpace, MySpace Video Code, Putfile, Totally Crap, vidiLife, vSocial, AnimeEpisodes.Net, Badjojo, Blastro, Bofunk, Bolt, Castpost, CollegeHumor, Current TV, Dachix, Danerd, DailySixer.com, DevilDucky, Double Agent, EVTV1, FindVideos, Hiphopdeal, Kontraband, Lulu TV, Midis.biz, Music.com, MusicVideoCodes.info, Newgrounds, NothingToxic, PcPlanets, Pixparty, PlsThx, Revver, Sharkle, SmitHappens, StreetFire, That Video Site, VideoCodes4U, VideoCodesWorld, VideoCodeZone, Vimeo, Yikers, YouTube , ZippyVideos.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Check it out at:&lt;/b&gt;&lt;br /&gt;&lt;a href='http://blog.bluefrogx.com/videodownloader/' target='_blank'&gt;http://blog.bluefrogx.com/videodownloader/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;</description>
            <author>Kaye2</author>
            <category>Internet Related</category>
            <pubDate>Mon, 29 Oct 2007 13:58:32 +0800</pubDate>
        </item>
        <item>
            <title>Wordpress 2.3.1 released</title>
            <link>http://forum.lowyat.net/topic/543211</link>
            <description>WordPress 2.3.1 has been released today and includes a number of changes including one security fix, here is a list of most of the changes in detail:&lt;br /&gt;&lt;br /&gt;    * Improvements to the email address extraction in wp-mail.php (#5169).&lt;br /&gt;    * An improvement to the link manager to ensure that only user with the manage_links capability can access the page (#4627).&lt;br /&gt;    * A security fix to ensure that edit-post-rows.php cannot be directly loaded to prevent XSS attacks when register_globals is enabled ([6258]).&lt;br /&gt;    * Groupings in the SQL queries used during upgrade to remove errors on duplicate entries in the old post2cat and link2cat tables (#5223).&lt;br /&gt;    * The Sender is set on emails to help on hosts that limit which email addresses can send (#5007).&lt;br /&gt;    * Fixes to category assignment during link import from OPML (#5107)&lt;br /&gt;    * Manifest file for Windows Live Writer so as to enable tagging support (#5023).&lt;br /&gt;    * Performance improvements for the Taxonomy intersection queries (#5137).&lt;br /&gt;    * Exclusion of the post previews from canonicalisation (#5203)&lt;br /&gt;    * Improvements to the handling of the main query to ensure it is saved when calling wp() (#5121).&lt;br /&gt;    * Fix the in-line uploader so that send to editor works with a blank title (#5080).&lt;br /&gt;    * Removal of the case-sensitivity on host names of wp_safe_redirect() (#5114).&lt;br /&gt;    * Changes to the load order in the javascript loader to ensure that Prototype is loaded before jQuery (#5067).&lt;br /&gt;    * Enforcement of the same sanitisation rules for pages as for posts (#5135)&lt;br /&gt;&lt;br /&gt;For a complete list of all the changes you can read the branches/2.3 log.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Personal notes:&lt;br /&gt;Very painless upgrade (Previous 2.3.0), just upload and go.  Database structure is the same so no worries there.  So far nothing seems broken and I&amp;#39;m hoping it&amp;#39;ll stay that way too XD</description>
            <author>Kaye2</author>
            <category>Content Creators, Blogmasters &amp;amp; Webmasters</category>
            <pubDate>Sat, 27 Oct 2007 10:44:24 +0800</pubDate>
        </item>
        <item>
            <title>bLuefRoGX : Random ramblings of a NEET techie</title>
            <link>http://forum.lowyat.net/topic/541569</link>
            <description>&lt;b&gt;Blog Title : &lt;/b&gt;&lt;br /&gt;&lt;span style='font-size:14pt;line-height:100%'&gt;&lt;span style='font-family:Impact'&gt;&lt;span style='color:blue'&gt;bLue&lt;/span&gt;FrogX &lt;/span&gt;&lt;/span&gt;: Random ramblings of a NEET techie&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Blog Address : &lt;/b&gt;&lt;br /&gt;&lt;a href='http://blog.bluefrogx.com' target='_blank'&gt;http://blog.bluefrogx.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Description : &lt;/b&gt;&lt;br /&gt;Currently not all that much content, I blog bout stuff I find interesting, but I think mainly will be towards the internet (P2P) and symbian application reviews.&lt;br /&gt;&lt;br /&gt;I&amp;#39;ll be writing an article pretty soon on how to get GOOD BT speeds w/o signing up for a VPN (While not entirely free, its a lot cheaper than  RM30) as well as alternatives and even free solutions.&lt;br /&gt;&lt;span style='font-size:8pt;line-height:100%'&gt;(Yes, I know this is shameless plug for my site,  &lt;!--emo&amp;:cool2:--&gt;&lt;img src='http://static.lowyat.net/style_emoticons/default/cool2.gif' border='0' style='vertical-align:middle' alt='cool2.gif' /&gt;&lt;!--endemo--&gt; )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Oh, as its still new, I&amp;#39;m open for blogroll associations    &lt;!--emo&amp;:hyper:--&gt;&lt;img src='http://static.lowyat.net/style_emoticons/default/rclxm9.gif' border='0' style='vertical-align:middle' alt='rclxm9.gif' /&gt;&lt;!--endemo--&gt;  &lt;!--emo&amp;:hyper:--&gt;&lt;img src='http://static.lowyat.net/style_emoticons/default/rclxm9.gif' border='0' style='vertical-align:middle' alt='rclxm9.gif' /&gt;&lt;!--endemo--&gt;</description>
            <author>Kaye2</author>
            <category>Content Creators, Blogmasters &amp;amp; Webmasters</category>
            <pubDate>Wed, 24 Oct 2007 15:16:44 +0800</pubDate>
        </item>
        <item>
            <title>Freeradius</title>
            <link>http://forum.lowyat.net/topic/537287</link>
            <description>How would you do daily traffic stats for free radius?  I notice it only dumps data in at the &amp;#39;end&amp;#39; of the connection so there may be days with seemingly no user transfer.</description>
            <author>Kaye2</author>
            <category>Linux &amp;amp; Open Source Software</category>
            <pubDate>Tue, 16 Oct 2007 23:16:22 +0800</pubDate>
        </item>
        <item>
            <title>Messy coding (parsing a text file)</title>
            <link>http://forum.lowyat.net/topic/379434</link>
            <description>&lt;a href='http://pastebin.ca/271081' target='_blank'&gt;http://pastebin.ca/271081&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is the data I want to parse&lt;br /&gt;&lt;br /&gt;[codeblock]&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;demo.css&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;office_xp/office_xp.css&amp;quot; /&amp;gt;&lt;br /&gt;&amp;#60;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;jsdomenu.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;#60;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;jsdomenubar.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;#60;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;include(&amp;quot;config.php&amp;quot;);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//temp variables delete later please&lt;br /&gt;&amp;#036;SCRIPT_PATH = &amp;quot;.&amp;quot;;&lt;br /&gt;&amp;#036;menuid = &amp;quot;SMS100000&amp;quot;;&lt;br /&gt;&amp;#036;lang = &amp;quot;BC&amp;quot;;&lt;br /&gt;//end temp&lt;br /&gt;&lt;br /&gt;&amp;#036;cache = &amp;quot;&amp;#036;SCRIPT_PATH/cache&amp;quot;;&lt;br /&gt;&amp;#036;filename = &amp;quot;&amp;#036;cache/&amp;#036;menuid&amp;#036;lang&amp;quot;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if (file_exists(&amp;#036;filename)) {&lt;br /&gt;	&amp;#036;handle = fopen(&amp;#036;filename, &amp;quot;r&amp;quot;);&lt;br /&gt;	&amp;#036;contents = fread(&amp;#036;handle, filesize(&amp;#036;filename));&lt;br /&gt;	fclose(&amp;#036;handle);&lt;br /&gt;	&amp;#036;data = unserialize(&amp;#036;contents);&lt;br /&gt;	echo &amp;#036;data;&lt;br /&gt;} else {&lt;br /&gt;	&amp;#036;js = &amp;#39;function createjsDOMenu() { &amp;#39;.chr(13);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;	//please substitue this function to retrieve data from database&lt;br /&gt;	&amp;#036;arrInput = file(&amp;quot;menu2.txt&amp;quot;);&lt;br /&gt;	&amp;#036;strInput = flatten(&amp;#036;arrInput);&lt;br /&gt;	//end substitiion&lt;br /&gt;	/*&lt;br /&gt;	Sample &lt;br /&gt;	&amp;#036;data = dbSelect(&amp;quot;Select * from menubar where something = &amp;#39;something&amp;#39;&amp;quot;);&lt;br /&gt;	&amp;#036;strInput = &amp;#036;data[1][menuitem];&lt;br /&gt;	*/&lt;br /&gt;	&lt;br /&gt;&lt;br /&gt;	preg_match_all(&amp;#39;/{.*}/&amp;#39;,&amp;#036;strInput, &amp;#036;match);&lt;br /&gt;	&amp;#036;arrMenu = clearBlanks(&amp;#036;match[0]);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;	&amp;#036;mainmenu = getChild(0);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;	//submenu&lt;br /&gt;	for (&amp;#036;mainctr=0;(&amp;#036;mainctr&amp;lt;=count(&amp;#036;mainmenu)-1);&amp;#036;mainctr++) {&lt;br /&gt;  &amp;#036;js .= createJS(1,(&amp;#036;mainmenu[&amp;#036;mainctr]+1),(&amp;#036;mainmenu[(&amp;#036;mainctr+1)]));&lt;br /&gt;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	//main menu&lt;br /&gt;	&amp;#036;js .= &amp;#39;  absoluteMenuBar = new jsDOMenuBar(&amp;quot;static&amp;quot;, &amp;quot;staticMenuBar&amp;quot;);&lt;br /&gt;   with (absoluteMenuBar) {&amp;#39;;&lt;br /&gt;	for (&amp;#036;k=0;&amp;#036;k&amp;lt;(count(&amp;#036;mainmenu));&amp;#036;k++) {&lt;br /&gt;  &amp;#036;dat = getName(&amp;#036;arrMenu[(&amp;#036;mainmenu[&amp;#036;k])]);&lt;br /&gt;  &amp;#036;js .=	&amp;#39;addMenuBarItem(new menuBarItem(&amp;quot;&amp;#39;.&amp;#036;dat[name].&amp;#39;&amp;quot;, absoluteMenu&amp;#39;.&amp;#036;k.&amp;#39;));&amp;#39;.chr(13);&lt;br /&gt;	}&lt;br /&gt;	&amp;#036;js .= &amp;#39;}&amp;#39;.chr(13);&lt;br /&gt;	//end main menu&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;	&amp;#036;js .= &amp;#036;ccjs.chr(13);&lt;br /&gt;	&amp;#036;js .= &amp;#036;ccjs2.chr(13);&lt;br /&gt;	&amp;#036;js .= &amp;#036;ccjs3.chr(13);&lt;br /&gt;	&amp;#036;js .= &amp;#036;linking.chr(13);&lt;br /&gt;	&amp;#036;js .= &amp;#036;exlink.chr(13);&lt;br /&gt;	&amp;#036;js .= &amp;#036;exlink2.chr(13);&lt;br /&gt;	&amp;#036;js .= &amp;#39;} &amp;#39;.chr(13);&lt;br /&gt;&lt;br /&gt;	//Prints out the JS&lt;br /&gt;&lt;br /&gt;	&amp;#036;data = (&amp;#036;js);&lt;br /&gt;	&amp;#036;handle = fopen(&amp;#036;filename,&amp;quot;w+&amp;quot;);&lt;br /&gt;	fwrite(&amp;#036;handle,&amp;#036;data);&lt;br /&gt;	fclose(&amp;#036;handle);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;body onLoad=&amp;quot;initjsDOMenu()&amp;quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;div id=&amp;quot;staticMenuBar&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;echo &amp;#036;filename;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function createJS(&amp;#036;level,&amp;#036;start=0,&amp;#036;stop=0) {&lt;br /&gt;	global &amp;#036;arrMenu,&amp;#036;mainctr,&amp;#036;mainmenu,&amp;#036;ccjs,&amp;#036;done,&amp;#036;childcounter,&amp;#036;linking,&amp;#036;done2;&lt;br /&gt;	&amp;#036;childcounter=0;&lt;br /&gt;	&amp;#036;done = false;&lt;br /&gt;	&amp;#036;men = 110 + &amp;#036;mainctr * 10;&lt;br /&gt;	&amp;#036;absmen = &amp;#39;absoluteMenu&amp;#39;.&amp;#036;mainctr;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;	&amp;#036;js .= &amp;#036;absmen.&amp;#39; = new jsDOMenu(&amp;#39;.&amp;#036;men.&amp;#39;, &amp;quot;absolute&amp;quot;);&amp;#39;.chr(13);&lt;br /&gt;	&amp;#036;js .= &amp;#39; with (&amp;#39;.&amp;#036;absmen.&amp;#39;) {&amp;#39;.chr(13);&lt;br /&gt;	&amp;#036;menu1 = getChild(&amp;#036;level,&amp;#036;start,&amp;#036;stop);&lt;br /&gt;	&amp;#036;done = &amp;#036;menu1;&lt;br /&gt;	//print_r(&amp;#036;menu1);&lt;br /&gt;	for (&amp;#036;j=0;&amp;#036;j&amp;lt;(count(&amp;#036;menu1));&amp;#036;j++) {&lt;br /&gt;  &amp;#036;dat = getName(&amp;#036;arrMenu[&amp;#036;menu1[&amp;#036;j]]);&lt;br /&gt;  if (hasChild(&amp;#036;arrMenu[&amp;#036;menu1[&amp;#036;j]])==true) {&lt;br /&gt;  	&amp;#036;xtra = &amp;#39;Item&amp;#39;.&amp;#036;mainctr.&amp;#39;_&amp;#39;.&amp;#036;j; &lt;br /&gt;  	&amp;#036;done2 = &amp;#036;j;&lt;br /&gt;  	&lt;br /&gt;  	&amp;#036;jj = &amp;#036;j+1;&lt;br /&gt;  	if (&amp;#036;jj &amp;gt;= count(&amp;#036;menu1) ) {&lt;br /&gt;    &amp;#036;kk = &amp;#036;mainmenu[(&amp;#036;mainctr+1)];&lt;br /&gt;  	} else {&lt;br /&gt;    &amp;#036;kk = &amp;#036;menu1[&amp;#036;j+1];&lt;br /&gt;  	}&lt;br /&gt;  	&amp;#036;sub = getChild(&amp;#036;level+1,&amp;#036;menu1[&amp;#036;j],&amp;#036;kk);&lt;br /&gt;  	&amp;#036;lev[0]=&amp;#036;j;&lt;br /&gt;  	//echo &amp;quot;&amp;lt;&amp;lt;&amp;#036;j&amp;gt;&amp;gt;&amp;quot;;&lt;br /&gt;  	&amp;#036;ccjs .= createJS1(&amp;#036;sub,&amp;#036;lev);&lt;br /&gt;  	//&amp;#036;linking .= &lt;br /&gt;  	&lt;br /&gt;&lt;br /&gt;  	//print_R(&amp;#036;sub);&lt;br /&gt;  	&amp;#036;childcounter++;&lt;br /&gt;  } else {&lt;br /&gt;  	&amp;#036;xtra = &amp;#39;&amp;#39;;&lt;br /&gt;  }&lt;br /&gt;  &amp;#036;js .= &amp;#39;addMenuItem(new menuItem(&amp;quot;&amp;#39;.&amp;#036;dat[name].&amp;#39;&amp;quot;, &amp;quot;&amp;#39;.&amp;#036;xtra.&amp;#39;&amp;quot;, &amp;quot;&amp;#39;.&amp;#036;dat[url].&amp;#39;&amp;quot;));&amp;#39;.chr(13);&lt;br /&gt;	}&lt;br /&gt;	&amp;#036;js .= &amp;#39;}&amp;#39;.chr(13);&lt;br /&gt;	return &amp;#036;js;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function createJS1(&amp;#036;arrInput,&amp;#036;lev) {&lt;br /&gt;	global &amp;#036;arrMenu,&amp;#036;mainctr,&amp;#036;ccjs,&amp;#036;done,&amp;#036;childcounter,&amp;#036;linking,&amp;#036;done2,&amp;#036;temp,&amp;#036;mainmenu,&amp;#036;ccjs2;&lt;br /&gt;	&amp;#036;men = 110 + &amp;#036;mainctr * 10;&lt;br /&gt;	&amp;#036;absmen = &amp;#39;absoluteMenu&amp;#39;.&amp;#036;mainctr;&lt;br /&gt;	&amp;#036;items  = &amp;#036;mainctr;&lt;br /&gt;	foreach (&amp;#036;lev as &amp;#036;arr) {&lt;br /&gt;  &amp;#036;absmen .= &amp;#39;_&amp;#39;.&amp;#036;arr;&lt;br /&gt;  &amp;#036;items .= &amp;#39;_&amp;#39;.&amp;#036;arr;&lt;br /&gt;	}&lt;br /&gt;	&amp;#036;lalala = &amp;quot;&amp;quot;;&lt;br /&gt;&lt;br /&gt;  //echo &amp;quot;&amp;lt;&amp;lt;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;gt;&amp;gt;&amp;quot;;&lt;br /&gt;  //print_r(&amp;#036;lev);&lt;br /&gt;  for(&amp;#036;i=1;&amp;#036;i&amp;lt;count(&amp;#036;lev);&amp;#036;i++) {&lt;br /&gt;  	&amp;#036;lalala .= &amp;quot;_&amp;quot;.&amp;#036;lev[&amp;#036;i];&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;	&lt;br /&gt;	&amp;#036;xx = count(&amp;#036;lev);&lt;br /&gt;	&amp;#036;level = &amp;#036;xx + 1;&lt;br /&gt;	//echo &amp;#036;level.&amp;quot;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt;&lt;br /&gt;	&amp;#036;js .= &amp;#036;absmen.&amp;#39; = new jsDOMenu(&amp;#39;.&amp;#036;men.&amp;#39;, &amp;quot;absolute&amp;quot;);&amp;#39;.chr(13);&lt;br /&gt;	&amp;#036;js .= &amp;#39; with (&amp;#39;.&amp;#036;absmen.&amp;#39;) {&amp;#39;.chr(13);&lt;br /&gt;	for (&amp;#036;j=0;&amp;#036;j&amp;lt;(count(&amp;#036;arrInput));&amp;#036;j++) {&lt;br /&gt;  &amp;#036;dat = getName(&amp;#036;arrMenu[&amp;#036;arrInput[&amp;#036;j]]);&lt;br /&gt;  &amp;#036;temp = &amp;#036;arrInput[(&amp;#036;j+1)];&lt;br /&gt;  if (&amp;#33;isset(&amp;#036;arrInput[(&amp;#036;j+1)])) {&lt;br /&gt;  	&amp;#036;temp  = &amp;#036;mainmenu[&amp;#036;mainctr+1];&lt;br /&gt;  }&lt;br /&gt;  if (hasChild(&amp;#036;arrMenu[&amp;#036;arrInput[&amp;#036;j]])==true) {&lt;br /&gt;  	&amp;#036;xtra = &amp;#39;Item&amp;#39;.&amp;#036;items.&amp;#39;_&amp;#39;.&amp;#036;j; &lt;br /&gt;  	&amp;#036;jj = &amp;#036;j+1;&lt;br /&gt;  	if (&amp;#036;jj &amp;gt;= count(&amp;#036;menu1) ) {&lt;br /&gt;    &amp;#036;kk = &amp;#036;done[(&amp;#036;done2+1)];&lt;br /&gt;  	} else {&lt;br /&gt;    &amp;#036;kk = &amp;#036;arrInput[&amp;#036;j+1];&lt;br /&gt;  	}&lt;br /&gt;  	&amp;#036;sub = getChild2((&amp;#036;level+1),&amp;#036;arrInput[&amp;#036;j],&amp;#036;temp);&lt;br /&gt;  	&amp;#036;lev[&amp;#036;xx] = &amp;#036;j;&lt;br /&gt;&lt;br /&gt;  	&amp;#036;ccjs2 .= createJS2(&amp;#036;sub,&amp;#036;lev);&lt;br /&gt;&lt;br /&gt;  } else {&lt;br /&gt;  	&amp;#036;xtra = &amp;#39;&amp;#39;;&lt;br /&gt;  }&lt;br /&gt;  &amp;#036;js .= &amp;#39;addMenuItem(new menuItem(&amp;quot;&amp;#39;.&amp;#036;dat[name].&amp;#39;&amp;quot;, &amp;quot;&amp;#39;.&amp;#036;xtra.&amp;#39;&amp;quot;, &amp;quot;&amp;#39;.&amp;#036;dat[url].&amp;#39;&amp;quot;));&amp;#39;.chr(13);&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;	}&lt;br /&gt;	&amp;#036;js .= &amp;#39;}&amp;#39;.chr(13);&lt;br /&gt;&lt;br /&gt;	&amp;#036;linking .= &amp;#39;absoluteMenu&amp;#39;.&amp;#036;mainctr.&amp;#036;lalala.&amp;#39;.items.Item&amp;#39;.&amp;#036;items.&amp;#39;.setSubMenu(&amp;#39;.&amp;#036;absmen.&amp;#39;);&amp;#39;.chr(13);&lt;br /&gt;	return &amp;#036;js;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function createJS2(&amp;#036;arrInput,&amp;#036;lev) {&lt;br /&gt;	global &amp;#036;arrMenu,&amp;#036;mainctr,&amp;#036;ccjs,&amp;#036;done,&amp;#036;childcounter,&amp;#036;linking,&amp;#036;done2,&amp;#036;temp,&amp;#036;mainmenu,&amp;#036;exlink,&amp;#036;ccjs3;&lt;br /&gt;	&amp;#036;men = 110 + &amp;#036;mainctr * 10;&lt;br /&gt;	&amp;#036;absmen = &amp;#39;absoluteMenu&amp;#39;.&amp;#036;mainctr;&lt;br /&gt;	&amp;#036;items  = &amp;#036;mainctr;&lt;br /&gt;	foreach (&amp;#036;lev as &amp;#036;arr) {&lt;br /&gt;  &amp;#036;absmen .= &amp;#39;_&amp;#39;.&amp;#036;arr;&lt;br /&gt;  &amp;#036;items .= &amp;#39;_&amp;#39;.&amp;#036;arr;&lt;br /&gt;	}&lt;br /&gt;	&amp;#036;lalala = &amp;quot;&amp;#036;mainctr&amp;quot;;&lt;br /&gt;	&amp;#036;lalala .= &amp;quot;_&amp;quot;.&amp;#036;lev[0];&lt;br /&gt;	&amp;#036;xx = count(&amp;#036;lev);&lt;br /&gt;	&amp;#036;level = &amp;#036;xx + 1;&lt;br /&gt;&lt;br /&gt;	&amp;#036;js .= &amp;#036;absmen.&amp;#39; = new jsDOMenu(&amp;#39;.&amp;#036;men.&amp;#39;, &amp;quot;absolute&amp;quot;);&amp;#39;.chr(13);&lt;br /&gt;	&amp;#036;js .= &amp;#39; with (&amp;#39;.&amp;#036;absmen.&amp;#39;) {&amp;#39;.chr(13);&lt;br /&gt;	for (&amp;#036;j=0;&amp;#036;j&amp;lt;(count(&amp;#036;arrInput));&amp;#036;j++) {&lt;br /&gt;  &amp;#036;dat = getName(&amp;#036;arrMenu[&amp;#036;arrInput[&amp;#036;j]]);&lt;br /&gt;  &amp;#036;temp = &amp;#036;arrInput[(&amp;#036;j+1)];&lt;br /&gt;  if (&amp;#33;isset(&amp;#036;arrInput[(&amp;#036;j+1)])) {&lt;br /&gt;  	&amp;#036;temp  = &amp;#036;mainmenu[&amp;#036;mainctr];&lt;br /&gt;  }&lt;br /&gt;  if (hasChild(&amp;#036;arrMenu[&amp;#036;arrInput[&amp;#036;j]])==true) {&lt;br /&gt;  	&amp;#036;xtra = &amp;#39;Item&amp;#39;.&amp;#036;items.&amp;#39;_&amp;#39;.&amp;#036;j; &lt;br /&gt;  	&amp;#036;jj = &amp;#036;j+1;&lt;br /&gt;  	if (&amp;#036;jj &amp;gt;= count(&amp;#036;menu1) ) {&lt;br /&gt;    &amp;#036;kk = &amp;#036;done[(&amp;#036;done2+1)];&lt;br /&gt;  	} else {&lt;br /&gt;    &amp;#036;kk = &amp;#036;arrInput[&amp;#036;j+1];&lt;br /&gt;  	}&lt;br /&gt;  	&amp;#036;sub = getChild2((&amp;#036;level+1),&amp;#036;arrInput[&amp;#036;j],&amp;#036;temp);&lt;br /&gt;  	&amp;#036;lev[&amp;#036;xx] = &amp;#036;j;&lt;br /&gt;&lt;br /&gt;  	&amp;#036;ccjs3 .= createJS3(&amp;#036;sub,&amp;#036;lev);&lt;br /&gt;&lt;br /&gt;  } else {&lt;br /&gt;  	&amp;#036;xtra = &amp;#39;&amp;#39;;&lt;br /&gt;  }&lt;br /&gt;  &amp;#036;js .= &amp;#39;addMenuItem(new menuItem(&amp;quot;&amp;#39;.&amp;#036;dat[name].&amp;#39;&amp;quot;, &amp;quot;&amp;#39;.&amp;#036;xtra.&amp;#39;&amp;quot;, &amp;quot;&amp;#39;.&amp;#036;dat[url].&amp;#39;&amp;quot;));&amp;#39;.chr(13);&lt;br /&gt;	}&lt;br /&gt;	&amp;#036;js .= &amp;#39;}&amp;#39;.chr(13);&lt;br /&gt;	&amp;#036;exlink .= &amp;#39;absoluteMenu&amp;#39;.&amp;#036;lalala.&amp;#39;.items.Item&amp;#39;.&amp;#036;items.&amp;#39;.setSubMenu(&amp;#39;.&amp;#036;absmen.&amp;#39;);&amp;#39;.chr(13);&lt;br /&gt;	return &amp;#036;js;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function createJS3(&amp;#036;arrInput,&amp;#036;lev) {&lt;br /&gt;	global &amp;#036;arrMenu,&amp;#036;mainctr,&amp;#036;ccjs,&amp;#036;ccjs3,&amp;#036;done,&amp;#036;childcounter,&amp;#036;linking,&amp;#036;done2,&amp;#036;temp,&amp;#036;mainmenu,&amp;#036;exlink,&amp;#036;ccjs2,&amp;#036;exlink2;&lt;br /&gt;	&amp;#036;men = 110 + &amp;#036;mainctr * 10;&lt;br /&gt;	&amp;#036;absmen = &amp;#39;absoluteMenu&amp;#39;.&amp;#036;mainctr;&lt;br /&gt;	&amp;#036;items  = &amp;#036;mainctr;&lt;br /&gt;	foreach (&amp;#036;lev as &amp;#036;arr) {&lt;br /&gt;  &amp;#036;absmen .= &amp;#39;_&amp;#39;.&amp;#036;arr;&lt;br /&gt;  &amp;#036;items .= &amp;#39;_&amp;#39;.&amp;#036;arr;&lt;br /&gt;	}&lt;br /&gt;	&amp;#036;lalala = &amp;quot;&amp;#036;mainctr&amp;quot;;&lt;br /&gt;	&amp;#036;lalala .= &amp;quot;_&amp;quot;.&amp;#036;lev[0].&amp;quot;_&amp;quot;.&amp;#036;lev[1];&lt;br /&gt;	&amp;#036;xx = count(&amp;#036;lev);&lt;br /&gt;	&amp;#036;level = &amp;#036;xx + 2;&lt;br /&gt;	&amp;#036;js .= &amp;#036;absmen.&amp;#39; = new jsDOMenu(&amp;#39;.&amp;#036;men.&amp;#39;, &amp;quot;absolute&amp;quot;);&amp;#39;.chr(13);&lt;br /&gt;	//echo &amp;#036;absmen.&amp;#39; = new jsDOMenu(&amp;#39;.&amp;#036;men.&amp;#39;, &amp;quot;absolute&amp;quot;);&amp;#39;.chr(13).&amp;quot;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;&amp;#33;AAAAAAAAAAAAAAAAAAAAAA&amp;quot;;&lt;br /&gt;	&amp;#036;js .= &amp;#39; with (&amp;#39;.&amp;#036;absmen.&amp;#39;) {&amp;#39;.chr(13);&lt;br /&gt;	for (&amp;#036;j=0;&amp;#036;j&amp;lt;(count(&amp;#036;arrInput));&amp;#036;j++) {&lt;br /&gt;  &amp;#036;dat = getName(&amp;#036;arrMenu[&amp;#036;arrInput[&amp;#036;j]]);&lt;br /&gt;  &amp;#036;js .= &amp;#39;addMenuItem(new menuItem(&amp;quot;&amp;#39;.&amp;#036;dat[name].&amp;#39;&amp;quot;, &amp;quot;&amp;#39;.&amp;#036;xtra.&amp;#39;&amp;quot;, &amp;quot;&amp;#39;.&amp;#036;dat[url].&amp;#39;&amp;quot;));&amp;#39;.chr(13);&lt;br /&gt;	}&lt;br /&gt;	&amp;#036;js .= &amp;#39;}&amp;#39;.chr(13);&lt;br /&gt;	&amp;#036;exlink2 .= &amp;#39;absoluteMenu&amp;#39;.&amp;#036;lalala.&amp;#39;.items.Item&amp;#39;.&amp;#036;items.&amp;#39;.setSubMenu(&amp;#39;.&amp;#036;absmen.&amp;#39;);&amp;#39;.chr(13);&lt;br /&gt;	//echo &amp;#036;js;&lt;br /&gt;	return &amp;#036;js;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function createJS4(&amp;#036;arrInput,&amp;#036;lev) {&lt;br /&gt;	echo &amp;quot;lalala&amp;quot;;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;function getChild(&amp;#036;level,&amp;#036;start=0,&amp;#036;stop=0) {&lt;br /&gt;	global &amp;#036;arrMenu;&lt;br /&gt;	if (&amp;#036;stop==0)  { &lt;br /&gt;  &amp;#036;stop=count(&amp;#036;arrMenu);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;	for (&amp;#036;i=&amp;#036;start;&amp;#036;i &amp;lt;= &amp;#036;stop;&amp;#036;i++) {&lt;br /&gt;  if (isset(&amp;#036;arrMenu[&amp;#036;i])) {&lt;br /&gt;  	if (getCount(&amp;#036;arrMenu[&amp;#036;i])==&amp;#036;level) {&lt;br /&gt;    &amp;#036;ret[] = &amp;#036;i;&lt;br /&gt;  	}&lt;br /&gt;  }&lt;br /&gt;	}&lt;br /&gt;	return &amp;#036;ret;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getChild2(&amp;#036;level,&amp;#036;start=0,&amp;#036;stop=0) {&lt;br /&gt;	global &amp;#036;arrMenu,&amp;#036;temp;&lt;br /&gt;	if (&amp;#036;stop==0)  { &lt;br /&gt;  &amp;#036;stop=&amp;#036;temp;&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;	for (&amp;#036;i=&amp;#036;start;&amp;#036;i &amp;lt;= &amp;#036;stop;&amp;#036;i++) {&lt;br /&gt;  if (isset(&amp;#036;arrMenu[&amp;#036;i])) {&lt;br /&gt;  	if (getCount(&amp;#036;arrMenu[&amp;#036;i])==&amp;#036;level) {&lt;br /&gt;    &amp;#036;ret[] = &amp;#036;i;&lt;br /&gt;  	}&lt;br /&gt;  }&lt;br /&gt;	}&lt;br /&gt;	return &amp;#036;ret;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function hasChild(&amp;#036;strData) {&lt;br /&gt;  global &amp;#036;arrMenu;&lt;br /&gt;  &amp;#036;data = explode(&amp;quot;,&amp;quot;,&amp;#036;strData);&lt;br /&gt;  if (isset(&amp;#036;data[1])) {&lt;br /&gt;  	return false;&lt;br /&gt;  } else {&lt;br /&gt;  	return true;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getCount(&amp;#036;strData) {&lt;br /&gt;	&amp;#036;data = explode(&amp;quot;|&amp;quot;,&amp;#036;strData);&lt;br /&gt;	&amp;#036;cnt = (count(&amp;#036;data)-1);&lt;br /&gt;	return &amp;#036;cnt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function getName(&amp;#036;strData) {&lt;br /&gt;  &amp;#036;data = explode(&amp;quot;,&amp;quot;,&amp;#036;strData);&lt;br /&gt;  if (isset(&amp;#036;data[1])) {&lt;br /&gt;  	&amp;#036;ret[name] = str_replace(&amp;quot;|&amp;quot;,&amp;quot;&amp;quot;,&amp;#036;data[0]);&lt;br /&gt;  	&amp;#036;ret[url] = &amp;#036;data[1];&lt;br /&gt;  	&lt;br /&gt;  } else {&lt;br /&gt;  	&amp;#036;ret[name] = str_replace(&amp;quot;|&amp;quot;,&amp;quot;&amp;quot;,&amp;#036;data[0]);&lt;br /&gt;  	&amp;#036;ret[url] = &amp;quot;blank.htm&amp;quot;;&lt;br /&gt;  }&lt;br /&gt;  return &amp;#036;ret;&lt;br /&gt;  &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function flatten(&amp;#036;array) {&lt;br /&gt;	&amp;#036;txt = &amp;quot;&amp;quot;;&lt;br /&gt;	foreach (&amp;#036;array as &amp;#036;arr) {&lt;br /&gt;  &amp;#036;txt .= &amp;#036;arr;&lt;br /&gt;	}&lt;br /&gt;	return &amp;#036;txt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function clearBlanks(&amp;#036;arrInput) {&lt;br /&gt;	foreach (&amp;#036;arrInput as &amp;#036;arr) {&lt;br /&gt;  if (strstr(&amp;#036;arr, chr(13))==false) {&lt;br /&gt;  	&amp;#036;arr = str_replace(&amp;quot;{&amp;quot;,&amp;quot;&amp;quot;,&amp;#036;arr);&lt;br /&gt;  	&amp;#036;arr = str_replace(&amp;quot;}&amp;quot;,&amp;quot;&amp;quot;,&amp;#036;arr);&lt;br /&gt;  	&amp;#036;retData[] = &amp;#036;arr;&lt;br /&gt;  }&lt;br /&gt;	}&lt;br /&gt;	return &amp;#036;retData;&lt;br /&gt;	&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;[/codeblock]&lt;br /&gt;&lt;br /&gt;Basically what I want to do is parse through the text file above and generate a DHTML based menu off it.  I&amp;#39;ve got it working (barely) but I wonder if there&amp;#39;s anyway to streamline the above code, its rather messy for now =(</description>
            <author>Kaye2</author>
            <category>Codemasters</category>
            <pubDate>Fri, 08 Dec 2006 09:36:26 +0800</pubDate>
        </item>
    </channel>
</rss>
