﻿	function Collection()
	{
		this.count=0;
		this.values=new Array();
		this.keys=new Array();

		this.Clear=function()
		{
			for(i=0;i<this.count;++i)
			{
				this.values.pop();
				this.keys.pop();
			}
			this.count=0;
		}
		
		this.Item=function(key)
		{
			var index=this.IsContain(key);
			if(index>=0)
			{
				return this.values[index];
			}else
				return null;
		}

		this.Add=function(key,value)
		{
			if(this.IsContain(key)==-1)
				throw "Duplicate key";
			this.values[this.values.length]=value;
			this.keys[this.keys.length]=key;
			this.count=this.values.length;
		}

		this.Remove=function(key)
		{
			var index=-1;
			index=IsContain(key);
			if(index>=0)
			{
				var temp4values=new Array();
				var temp4keys=new Array();
				
				for(var i=0,j=0;i<this.values.length;++i)
					if(key!=this.keys[i])
					{
						temp4values[j]=this.values[i];
						temp4keys=[j++]=this.keys[i];
					}
				this.count=temp4keys.length;
				this.values=null;
				this.keys=null;
				this.values=temp4values;
				this.keys=temp4keys;
			}
		}
		
		this.IsContain=function(key)
		{
			var index=-1;
			for(i=0;i<this.count;++i)
			{
				if(this.keys[i]==key)
				{
					index=i;
					break;
				}
			}
			return i;
		}
		
	}

        var loadCompleteCount=0;
        var mustLoadCount=0;
        var baseUrl;
        
        function onLoadImageComplete(img)
        {
            if(img.src.length>0)
            {
                ++loadCompleteCount;
                if(loadCompleteCount>=mustLoadCount)
                {
                    HideLoading();
                }
            }
        }
        
        function LoadImages(list)
        {
            if(list.length>0)
            {
                loadCompleteCount=0;
                mustLoadCount=list.length;
                ShowLoading();
                for(i=0;i<list.length;++i)
                {
                    document.getElementById(list[i].tagID).src=list[i].src;
                }
            }
        }
        
        function ShowLoading()
        {
            //document.getElementById("Loading").style.top=-200;
            //document.getElementById("Loading").style.left=document.body.offsetWidth/2;
            document.getElementById("Loading").style.visibility="visible";
        }
        
        function HideLoading()
        {
            document.getElementById("Loading").style.visibility="hidden";
        }
        
//--------------------------------------------------------------------------------------- Ajax Requests
function MakeAnAjaxRequest(objRequest,uri,callback)
{
if(objRequest==null)
{
    var objRequest;

    if(window.XMLHttpRequest)
    {
	    try
	    {
		    objRequest=new XMLHttpRequest();
	    }
	    catch(e)
	    {}
    }else
	    if(window.ActiveXObject)
	    {
		    created=false;
		    try
		    {
			    objRequest=new ActiveXObject("Microsoft.XmlHttp");
			    created=true;
		    }
		    catch(e)
		    {
			    created=false;
		    }
		    if(!created)
		    {
			    try
			    {
				    objRequest=new ActiveXObject("Msxml2.XMLHTTP");
			    }
			    catch(e)
			    {}
		    }
	    }
}
objRequest.onreadystatechange=callback;
objRequest.open("GET",uri,true);
objRequest.send("");
return objRequest;
}        
//---------------------------------------------------------------------------------------