All pastes #512916 Raw Edit

Someone

public text v1 · immutable
#512916 ·published 2007-05-27 01:00 UTC
rendered paste body
function document2 ()
{
	this.elements = new Array ();
	this.props    = new Array ();
	this.indexs   = new Array ();
	
	this.getAvilibleID = function (fromNumber)
	{
		return typeof this.indexs [fromNumber] == 'undefined' ? fromNumber : this.getAvailableID (fromNumber + 1);
	};
	
	this.createRandomID = function ()
	{
		var eLength = this.elements.length - 1;
		return typeof this.indexs [eLength] == 'undefined' ? eLength : this.getAvailableID (eLength + 1);
	};
	
	this.createElement = function (elementName, props)
	{
		if ( (typeof props != 'object') && (typeof props != 'undefined') )
			props = { 'undefined_properties': props };
			
		if (typeof props != 'object')
			props = new Array ();
			
		this.elements.push (elementName);
		
		if ( (!props['id']) || (typeof (this.indexs[props['id']]) != 'undefined') )
			props['id'] = this.createRandomID ();
			
		var eLength = this.elements.length - 1;
		this.props[eLength] = props;
		this.indexs[props['id']] = eLength;
		
		return true;
	};
	
	this.getElementById = function (elementID)
	{
		if (typeof this.indexs[elementID] != 'undefined')
			return { 'element': this.elements[this.indexs[elementID]], 'props': this.props[this.indexs[elementID]] };
		else
			return null;
	};
}

var a = new document2();
a.createElement ('test');
alert (a.getElementById (0)['element']);