function ADThumbViewer(wp, pageSize, instanceName, dataUrl)
{    
    this.Elements = new Array();    
    this.DataUrl = dataUrl;
    this.BaseImgHref = "";   
    this.ImgIconUrl = null;
    this.ShowAdvertiserName = true;
    this.ShowThumbnail = true;
    this.ShowTitle = true;
    this.ShowVertical = false;
    this.OpenTarget=null;
    this.Reflect = null;
    this.BorderCssClass = "";
    this.AdvertiserNameCssClass="";
    this.TitleContainerCssClass = "";
    this.TitleCssClass = "";
    this.ImgContainerCssClass = "";
    this.ImgCssClass = "";
    this.LinkCssClass = ""
    this.Width = 400;       
    this.Height = 200;
    this.BaseHref = "";
    this.WebPath = wp;    
    this.CurrentPage = 1;
    this.PageSize = pageSize;
    this.Instance = instanceName;
    this.Initialized = false;
    this.GetPageCount = function(){ return Math.ceil( this.Elements.length/this.PageSize );}
    
    this.SetCssClass = function(obj, cssClass){
        try {  obj.setAttribute('class', cssClass); }catch(e) {}
        try {  obj.setAttribute('className', cssClass); }catch(e) {}
    }
    
    this.ShowPage = function(pg){      
            
        this.CurrentPage = pg;
        
        var imagesDiv = document.getElementById(this.Instance + "_ThumbContainer");                
        this.SetCssClass(imagesDiv, this.BorderCssClass);        
        
        var first = (this.CurrentPage == 1) ? 0 : (this.CurrentPage * this.PageSize) - this.PageSize;
        var last = first + this.PageSize;

        var tbl = document.createElement('table'); 
        tbl.setAttribute('width','100%');             
        //tbl.setAttribute('border','1'); 
        var tbody = document.createElement('tbody'); 
        var row = document.createElement('tr'); 
        var row2 = document.createElement('tr'); 
        tbody.appendChild(row);
        tbody.appendChild(row2);
        tbl.appendChild(tbody);
        imagesDiv.appendChild(tbl); 
        for(var i=first; i<last; i++)
        {         

            if(i >= this.Elements.length)
                break;            
           
            var el = this.Elements[i];   
         
            var caption = el.Caption.replace(/&#039;/g,"'").replace(/&#034;/g,"\"");         
            var advName = el.Name.replace(/&#039;/g,"'").replace(/&#034;/g,"\"");       
            var block = document.createElement('td');  
            //block.setAttribute('align','center');                
            this.SetCssClass(block, this.ImgContainerCssClass);
            
	    var lnkval = this.BaseHref + this.WebPath + "/" + el.NavigateUrl;
	    if(this.OpenTarget!=null)
	    {                	
		lnkval = "javascript:var p2wpopup = window.open('" + lnkval + "',this.OpenTarget,'width=800;height=600')";	
	    }

            var lnk = document.createElement('a');
                lnk.setAttribute('href', lnkval);    
                lnk.setAttribute('title',advName + " - " + caption);                 
            
            if(this.ShowThumbnail)
            {   
                var img = document.createElement('img');
                    if(this.ImgIconUrl == null)
                        img.setAttribute('src',this.BaseImgHref + el.Thumbnail);
                    else
                        img.setAttribute('src',this.ImgIconUrl);
                    this.SetCssClass(img, this.ImgCssClass);
                lnk.appendChild(img);
            }
            
            lnk.appendChild(document.createElement('br'));
            block.appendChild(lnk);            
            row.appendChild(block);
            
            var showLink = (this.ShowAdvertiserName==true || this.ShowTitle==true);
            if(showLink)
            {
                var block2 = document.createElement('td');                                             
                this.SetCssClass(block2, this.TitleContainerCssClass);
                var lnk2 = document.createElement('a');
                    lnk2.setAttribute('href',lnkval);    
                    lnk2.setAttribute('title',advName + " - " + caption); 
                    this.SetCssClass(lnk2, this.LinkCssClass);

		

               
                if(this.ShowAdvertiserName == true)
                {                    
                    var advBlock = document.createElement('div')
                    this.SetCssClass(advBlock,this.AdvertiserNameCssClass);
                    advBlock.appendChild(document.createTextNode(advName));
                    lnk2.appendChild(advBlock);
                }
                if(this.ShowTitle == true)
                {                         
                    var titleBlock = document.createElement('div')
                    this.SetCssClass(titleBlock,this.TitleCssClass);  
                    titleBlock.appendChild(document.createTextNode(caption));
                    lnk2.appendChild(titleBlock);
                }                    
                block2.appendChild(lnk2);
                row2.appendChild(block2);
            }
            if(this.ShowVertical)
            {
                row = document.createElement('tr'); 
                row2 = document.createElement('tr'); 
                tbody.appendChild(row);
                tbody.appendChild(row2);
            } 
        }                                        
    }    
    this.Shuffle = function()
    {
        var i = this.Elements.length;
        if ( i == 0 ) return false;
        while ( --i ) 
        {
            var j = Math.floor( Math.random() * ( i + 1 ) );
            var tempi = this.Elements[i];
            var tempj = this.Elements[j];
            this.Elements[i] = tempj;
            this.Elements[j] = tempi;
        }
    }
    this.Init = function(){           
        var rnd = Math.floor(Math.random()*1000000)            
        if(this.Reflect == null)
            this.Reflect = (this.ShowVertical==true) ? false : true;
        var src = this.DataUrl + "&wp="+this.WebPath+"&inst="+ this.Instance + "&reflect="+ this.Reflect + "&vert="+ this.ShowVertical + "&rnd="+rnd;    
        
        var html = "";
            html += "<div style=\"overflow:auto; width:"+this.Width+"px; height:"+this.Height+"px;\" id=\"" +this.Instance + "_ThumbContainer\"></div>";            
            html += "<script type=\"text/javascript\" src=\"" + src + "\">";	            
            html += "</s" + "cript>";
            //alert(src)
        document.write(html);        
    }
}

