// JavaScript Document



/* 
class HTMLCode {

	var html:Array = new Array();
	var node:String = '';
	var isEmpty:Boolean;
	var tagAttrs:Object;
*/
	
	/**
	 * Constructor.
	 */
	function HTMLCode(tagName/*:String*/, attrObj/*:Object*/){
		this.node = tagName;
		this.html = new Array();
		this.tagAttrs = (!alex.Empty(attrObj))? attrObj : {}; 
		
		this.isEmpty = this.isEmptyTag(this.node);
		
		this.init();
	}
	
	HTMLCode.prototype.init = function(){
		
		var tagStr = '<' + this.node + ' ' + alex.Walk(this.tagAttrs, function(a,b){return a+'="'+b+'" ';}).join("") + ' >';
		this.html.push(tagStr);
		
	}
	
	HTMLCode.prototype.addItem = function(str/*:String*/){ 
		
		 this.html.push(str);
				
	 }
	 
	 HTMLCode.prototype.buildList = function(listArray/*:Array*/){ 
		
		var list = alex.Walk(listArray, function(index, value){
											var tmp = new HTMLCode('li');
											tmp.addItem(value);
											return tmp.toString();
										});
		this.html.push(list.join(''));
				
	 }
	 
	 HTMLCode.prototype.isEmptyTag = function(nodeName/*:String*/){
		 var knownEmptyTags = ['img','hr','br','link','meta','input'];
		 for(i=0; i < knownEmptyTags.length; i++){
			 if(nodeName == knownEmptyTags[i]) return true;
		 }
		 return false;
	 }
	
	HTMLCode.prototype.draw = function(){
		
		if(this.isEmpty) this.html.push(' />');
		else this.html.push('</' + this.node + '>');
		
		document.write(this.html.join('\n'));
				
	 }
	 HTMLCode.prototype.toString = function(){
		
		if(this.isEmpty) this.html.push(' />');
		else this.html.push('</' + this.node + '>');
		
		return this.html.join('\n');
				
	 }
	
/*
}
*/

//import alex.Walk, alex.Empty
if(!window.alex){
	var alex = {
	Walk : function(obj,utilityFunction){
		if(!obj || typeof(utilityFunction) != 'function') return ''; var a = []; 
		for(x in obj){var r = utilityFunction(x,obj[x]); if(r!=''&&r!=null) a.push(r);}
		return a;
	},
	Empty : function(str){
		if((str != undefined && str != '' && str != false) || str > 0) return false;
		if(typeof str == 'object') for(each in str) return false;
		return true;
	},
	Is  : {
		array : function (obj){
			if(obj && obj.constructor == Array) return true;
			return false;
			}
		}
	}
}