//	script.js - Common Javascript
//
//	Copyright (C) 2007-2010 Charles A Upsdell, All Rights Reserved; www.upsdell.com


// getElement - get element associated with an ID, or null if not found
function getElement ( id )
{
var element = null;
if ( (arguments.length == 0) || (id == "") )
	return( null );
if ( document.getElementById )
	element = document.getElementById( id );
else if ( document.all )
	element = document.all[id];
return( element );
}


function cVersion ( version, separator, bSkipSpace )
{
if ( arguments.length < 1 )
	version = '0';
if ( arguments.length < 2 )
	separator = '.';
if ( arguments.length < 3 )
	bSkipSpace = false;
if ( version instanceof cVersion )
  {
	this.separator = (arguments.length < 2) ? version.separator : separator;
	this.v = new Array();
	this.v = version.v;
  }
else
  {
	var s = ( typeof(version) == 'number' ) ? version.toString() : version;
	this.separator = separator;
	this.v = new Array();
	var vindex = 0;
	var sindex = 0;
	var c;
	this.v[vindex] = '';
	if ( bSkipSpace) for ( ; sindex < s.length; ++sindex )
	  {
		c = s.charAt(sindex);
		if ( c != ' ' )
			break;
	  }
	for ( ; sindex < s.length; ++sindex )
	  {
		c = s.charAt(sindex);
		if ( c == separator )
			this.v[++vindex] = '';
		else if ( (c >= '0') && (c <= '9') )
			this.v[vindex] += c.toString();
		else
			break;
	  }
  }
return;
}

cVersion.prototype.toString = function ( separator )
{
if ( arguments.length < 1 )
	separator = this.separator;
var result = '';
for ( var i = 0; i < this.v.length; ++i )
  {
	if ( i == 0 )
		result += this.v[0];
	else
		result += separator + this.v[i];
  }
return( result );
}

cVersion.prototype.comp = function ( version2 )
{
var operand;
if ( arguments.length < 1 )
	version2 = '0';
if ( version2 instanceof cVersion )
	operand = version2;
else
	operand = new cVersion( version2 );
var nLoops = Math.max( this.v.length, operand.v.length );
var result = 0;
for ( var i = 0; i < nLoops; ++i )
  {
	var n1 = Number( (i < this.v.length) ? this.v[i] : 0 );
	var n2 = Number( (i < operand.v.length) ? operand.v[i] : 0 );
	if ( n1 == n2 )
		continue;
	else if ( n1 < n2 )
		{ result = -1; break; }
	else
		{ result = 1; break; }
  }
return( result );
}

