/*
 * This source code is part of TWaver 3.3
 * 
 * Serva Software PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 * Copyright 2009 Serva Software. All rights reserved.
 */
function Index() {

	var readmeurl = 'readme.html';

	var treejson = 'index.json';

	var treeloader = new Ext.tree.TreeLoader({
				dataUrl : treejson
			});

	var tree = new Ext.tree.TreePanel({
				id : 'forum-tree',
				region : 'west',
				title : 'TWaver Demos',
				split : true,
				loadMask : {
					msg : 'Loading Tree...'
				},
				width : 250,
				minSize : 220,
				collapsible : true,
				margins : '5 0 5 5',
				collapseMode : 'mini',
				animCollapse : false,
				animate : false,
				rootVisible : true,
				lines : false,
				autoScroll : true,
				cmargins : '0 0 0 0',
				lines : false,
				loader : treeloader,
				tbar : [new Ext.form.TextField({
							width : 200,
							height : 50,
							emptyText : 'Find Demo',
							listeners : {
								render : function(f) {
									f.el.on('keydown', filterTree, f, {
												buffer : 350
											});
								}
							}
						})],
				root : new Ext.tree.AsyncTreeNode({
							text : 'Demos',
							expanded : true
						})
			});
	var filter = new Ext.tree.TreeFilter(tree, {
				clearBlank : true,
				autoClear : true
			});
	var hiddenPkgs = [];
	function filterTree(e) {
		var text = e.target.value;

		Ext.each(hiddenPkgs, function(n) {
					n.ui.show();
				});

		if (!text) {
			filter.clear();
			return;
		}

		tree.expandAll();

		var re = new RegExp(Ext.escapeRe(text), 'i');

		filter.filterBy(function(n) {

					var textval = n.text;

					return !n.isLeaf() || re.test(n.text);
				});

		// hide empty packages that weren't filtered
		hiddenPkgs = [];
		tree.root.cascade(function(n) {
					if (!n.isLeaf() && n.ui.ctNode.offsetHeight < 3) {
						n.ui.hide();
						hiddenPkgs.push(n);
					}
				});

	}
	var mainPane = new Ext.Panel({
		id : 'main-tabs',
		title : 'Read Me',
		margins : '5 5 5 5',
		region : 'center',
		html : '<iframe scrolling="false" frameborder="0" width="100%" height="100%" src="'
				+ readmeurl + '"></iframe>',
		autoScroll : false
	});

	this.init = function() {
		var viewport = new Ext.Viewport({
					layout : 'border',
					items : [tree, mainPane]
				});
		tree.root.expand(true, true);

		tree.getSelectionModel().on('selectionchange', function(selModel) {
					if (selModel.selNode) {
						var _iframe = mainPane.body.dom.firstChild;
						var _attributes = selModel.selNode.attributes;
						if (_attributes) {
							if ('Demos' == _attributes.text) {
								_iframe.src = readmeurl + '?tmp='
										+ Math.random();
							} else {
								var _href = _attributes.url;
								if (_href) {
									// tree.collapse();
									mainPane.setTitle(_attributes.text);
									_iframe.src = _href + '?tmp='
											+ Math.random();
								}
							}
						}
					}
				}, this);

	}
}

Ext.BLANK_IMAGE_URL = "ext/images/default/s.gif";
var index = new Index();
index.init();

var loadingDiv = document.getElementById('loading');
loadingDiv.style.display = 'none';
