﻿function getType( obj )
{
	if( obj == null )
		return "object";
	var t = typeof(obj);
	switch( t )
	{
		case "number":
			var s = String(obj);
			if( s.indexOf(".") != -1 )
				itemType = "single";
			break;
		case "object":
			if( obj.getTime != null )
			{
				t = "date";
				break;
			}
			if( obj.sort != null && obj.length != null )
			{
				t = "array";
				break;
			}
			if( obj == true || obj == false )
				t = "boolean";
			break;
	}
	return t;
}

function objectLength( obj )
{
	var count = 0;
	for( var key in obj )
		count++;
	return count;
}

function objectJoin( obj, delim, joinKeys )
{
	var str = [];
	for( var key in obj )
	{
		if( joinKeys == true )
			str.push( key );
		else
			str.push( obj[key] );
	}
	return str.join( delim );
}

function replaceAll( str, findStr, replaceStr )
{
	if( str == null ) return null;
	var index = str.indexOf( findStr );
	while( index != -1 )
	{
		str = str.substr(0,index) + replaceStr + str.substr(index+findStr.length);
		index = str.indexOf( findStr, index+replaceStr.length );
	}
	return str;
}

function formatInt( num, digits )
{
	var text = "";
	for( var i=0; i<digits; i++ )
		text += "0";
	text += num;
	return text.substr(text.length-digits);
}

function buildImageUrl( imgName )
{
	return imagesFolder+"/"+imgName;
}

function deepCopy( obj )
{
	if( obj == null )
		return null;
	var o;
	switch( getType( obj ) )
	{
		case "object":
			o = {};
			for( var x in obj )
			{
				o[x] = deepCopy( obj[x] );
			}
			break;
		case "array":
			o = [];
			for( var i=0; i<obj.length; i++ )
			{
				o.push( deepCopy( obj[i] ) );
			}
			break;
		default:
			o = obj;
			break;
	}
	return o;
}

