
function StandardMediaJSWidget() {

    this.width=200;
	this.height=200;
	this.scroll_direction="Down";
	this.image_width=85;
	this.image_height=85;
	this.background="FFFFFF";
	this.border="EEEEEE";
	this.feed="";
	this.div_name="";
	this.vpadding=4;
	this.hpadding=4;
	this.limit_dir="Down";
	this.limit_amount=2;
	this.size_type="Adjust";
	this.scroll_width=17;

    this.draw = function () {
		var browser = navigator.appName;
		if(browser == "Microsoft Internet Explorer"){
			this.scroll_width=19;
		}
		document.write('<div id="' + this.div_name + '_output" style="padding:0px;margin:0px"></div>');
		PrepSN_Bridge_Draw(this.div_name,this.feed,this.div_name + ".checker();",this.div_name + ".sendBack([RESULT]);");
    };
	this.checker = function (){
		return true;
	}
	this.sendBack = function ( the_xml ){
		try{ //Internet Explorer
			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async="false";
			xmlDoc.loadXML( the_xml );
		}catch(e){
			try{ //Firefox, Mozilla, Opera, etc.
		
				parser=new DOMParser();
				xmlDoc=parser.parseFromString( the_xml ,"text/xml");
			}catch(e){
				alert(e.message);
				return;
			}
		}
		var len = xmlDoc.getElementsByTagName("media").length;

		var output="";

		var maxr=0;
		var maxc=0;
		
		if(this.size_type=="Adjust"){
			if(this.scroll_direction=="None"){
				if(this.limit_dir=="Right"){
					this.width=parseInt(this.hpadding,10) + parseInt((this.limit_amount * ( parseInt(this.image_width,10) + parseInt(this.hpadding,10) )),10);
					this.height=parseInt(this.vpadding,10) + parseInt((Math.ceil(len/this.limit_amount) * ( parseInt(this.image_height,10) + parseInt(this.vpadding,10) )),10);
					maxr=this.limit_amount;
					maxc=Math.ceil(len/this.limit_amount);
				}else{
					this.height=parseInt(this.vpadding,10) + parseInt((this.limit_amount * (parseInt(this.image_height,10) + parseInt(this.vpadding,10))),10);
					this.width=parseInt(this.hpadding,10) + parseInt((Math.ceil(len/this.limit_amount) * ( parseInt(this.image_width,10) + parseInt(this.hpadding,10) )),10);
					maxc=this.limit_amount;
					maxr=Math.ceil(len/this.limit_amount);
				}
			}else if(this.scroll_direction=="Right"){
				var max_height=this.height - this.vpadding - this.scroll_width;
				var max_per_col=Math.floor( max_height / ( parseInt(this.image_height,10) + parseInt(this.vpadding,10) ));
				var per_row=Math.ceil(len/max_per_col);
				var rem=Math.floor(len % max_per_col);
				this.height=parseInt(this.vpadding,10) + this.scroll_width + parseInt(max_per_col * ( parseInt(this.image_height,10) + parseInt(this.vpadding,10) ),10);

				maxc=max_per_col;
				maxr=per_row;
			}else{
				var max_width=this.width - this.hpadding - this.scroll_width;
				var max_per_row=Math.floor( max_width / ( parseInt(this.image_width,10) + parseInt(this.hpadding,10) ));
				var per_col=Math.ceil(len/max_per_row);
				var rem=Math.floor(len % max_per_row);
				this.width=parseInt(this.hpadding,10) + this.scroll_width + parseInt(max_per_row * ( parseInt(this.image_width,10) + parseInt(this.hpadding,10) ),10);

				maxr=max_per_row;
				maxc=per_col;
			}
		}else{
			if(this.scroll_direction=="None"){
				var max_width=this.width - this.hpadding;
				maxr=Math.floor(max_width / ( parseInt(this.image_width,10) + parseInt(this.hpadding,10) ));
				maxc=Math.floor(max_height / ( parseInt(this.image_height,10) + parseInt(this.vpadding,10) ));
				
				if(maxr * maxc > len){
					len=maxr + maxc;
				}	
			}else if(this.scroll_direction=="Right"){
				var max_height=this.height - this.vpadding - this.scroll_width;
				var max_per_col=Math.floor( max_height / ( parseInt(this.image_height,10) + parseInt(this.vpadding,10) ));
				var per_row=Math.ceil(len/max_per_col);
				var rem=Math.floor(len % max_per_col);

				maxc=max_per_col;
				maxr=per_row;
			}else{
				var max_width=this.width - this.hpadding - this.scroll_width;
				var max_per_row=Math.floor( max_width / ( parseInt(this.image_width,10) + parseInt(this.hpadding,10) ));
				var per_col=Math.ceil(len/max_per_row);
				var rem=Math.floor(len % max_per_row);

				maxr=max_per_row;
				maxc=per_col;
			}
		}


		output += '<div style="width:' + this.width + 'px;height:' + this.height + 'px;';
		if(this.border!=""){
			output += 'border:1px solid #' + this.border + ';';
		}
		if(this.background!=""){
			output += 'background:#' + this.background + ';';
		}
		if(this.scroll_direction=="None"){
			output += 'overflow:hidden;';
		}else{
			output += 'overflow:auto;';
		}
		output += '" align=left><table cellspacing="0" cellpadding="0">';

		for(i=1;i<=len;i++){
			var fetch=i;
			var cur_col=0;
			var cur_row=0;
			if(this.scroll_direction=="Right"){
				if( i <= rem * maxr || rem == 0 ){
					cur_col=i % maxr;
					if(cur_col==0){ cur_col=maxr; } 
					cur_row=Math.ceil( i / maxr );
				}else{
					cur_col=(i - rem * maxr) % ( maxr - 1);
					if(cur_col==0){ cur_col = maxr - 1; }
					cur_row=rem + Math.ceil( ( i - rem * maxr ) / ( maxr - 1 ) );
				}
				fetch = ( cur_col - 1 ) * maxc + cur_row;
			}else{
				cur_col = i % maxr;
				if(cur_col==0){ cur_col = maxr; }
				cur_row = Math.ceil( i / maxr );
			}
			var media = xmlDoc.getElementsByTagName("media")[fetch-1];

			var vals = new Array();
			if(typeof(media.getElementsByTagName("image")[0].textContent)!="undefined"){
				vals["image"]=media.getElementsByTagName("image")[0].textContent;
				vals["link"]=media.getElementsByTagName("link")[0].textContent;
			}else{
				vals["image"]=media.getElementsByTagName("image")[0].firstChild.nodeValue;
				vals["link"]=media.getElementsByTagName("link")[0].firstChild.nodeValue;
			}

			rpadding=0;
			bpadding=0;

			if(cur_col==maxr){
				rpadding=this.hpadding;
			}
			if(cur_row==maxc){
				bpadding=this.vpadding;
			}

			var add = '<td align=center style="padding:' + this.vpadding + 'px ' + rpadding + 'px ' + bpadding + 'px ' + this.hpadding + 'px"><a href="' + vals['link'] + '" style="background:none;"><img border=0 src="' + vals['image'] + '&w=' + this.image_width + '&h=' + this.image_height + '"></a></td>';

			if(this.scroll_direction=="Right"){
				if(cur_col==1){
					if(i > 1){
						output += '</tr>';
					}
					output += '<tr>';
				}
				output += add;
			}else{
				if((i-1)%maxr==0){
					output += '<tr>';
				}
				output += add;
				if(i%maxr==0){
					output += '</tr>';
				}
			}
		}

		output += '</table></div>';

		document.getElementById(this.div_name + "_output").innerHTML=output;
	
	}
}
