
function StandardScoresJSWidget() {

	this.tab_type="None";
	this.tab_color="0000FF";
    this.width=150;
	this.height=150;
	this.pagenate="Scroll";
	this.pagenate_color="0000FF";
	this.link_color="0000FF";
	this.background="FFFFFF";
	this.border_outer="DDDDDD";
	this.border_inner="EEEEEE";
	this.text_color="000000";
	this.comment_color="999999";
	this.feeds=new Array();
	this.div_name="";
	this.finished=new Array();
	this.organized=new Array();
	this.feed_orders=new Array();
	this.current_tab=0;
	this.current_page=1;
	this.pages=new Array();
	this.delay=5000;
	this.scroll_width=17;

	this.padding=3;
	this.tab_height=19;
	this.box_width=120;
	this.box_score=25;
	this.comment_height=10;
	this.per_team_height=12;
	this.comment_size=9;
	this.text_size=11;
	this.auto_on=0;
	this.call_on=0;

    this.draw = function () {
		var browser = navigator.appName;
		if(browser == "Microsoft Internet Explorer"){
			this.scroll_width=19;
		}

		if(this.tab_color==""){ this.tab_color="0000FF"; }
		if(this.pagenate_color==""){ this.pagenate_color="0000FF"; }
		if(this.link_color==""){ this.link_color="0000FF"; }
		if(this.text_color==""){ this.text_color="000000"; }
		if(this.comment_color==""){ this.comment_color="999999"; }
		document.write('<div id="' + this.div_name + '_output"></div>');
		this.runFeed();
    };
	this.checker = function (){
		return true;
	}
	this.runFeed = function (){
		if(this.feeds.length > 0){
			PrepSN_Bridge_Draw(this.div_name,this.feeds[0][2],this.div_name + ".checker();",this.div_name + ".sendBack([RESULT]);");
		}else{
			this.drawMe();
		}
	}
	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 i = this.finished.length;
		this.finished[i]=this.feeds[0];
		this.finished[i][3]=xmlDoc;

		for(i=0;i<this.feeds.length - 1;i++){
			this.feeds[i]=this.feeds[i+1];
		}
		delete this.feeds[this.feeds.length - 1];
		this.feeds.length--;
		this.runFeed();
	}

	this.organizeGames = function(){
		if(this.tab_type=="By Feed"){
			for(i=0;i<this.finished.length;i++){
				var report_order = this.finished[i][0];
				if(report_order==""){ report_order="0"; }
				report_order=parseInt(report_order,10);

				var used=0;
				for(j=0;j<this.feed_orders.length;j++){
					if(report_order < this.feed_orders[j][0]){
						used=1;
						for(k=this.feed_orders.length;k > j;k--){
							this.feed_orders[k]=this.feed_orders[k-1];
						}
						this.feed_orders[j]=new Array( report_order, i );
						break;
					}
				}
				if(used==0){
					this.feed_orders[this.feed_orders.length]=new Array( report_order, i );
				}
			}
			var temp_finished=new Array();
			for(i=0;i<this.feed_orders.length;i++){
				this.finished[this.feed_orders[i][1]][0]=i;
				temp_finished[i]=this.finished[this.feed_orders[i][1]];
			}
			this.finished=temp_finished;
		}


		for(i=0;i<this.finished.length;i++){
			var tempDoc = this.finished[i][3];

			if(tempDoc.getElementsByTagName("game").length == 0){
				if(this.tab_type=="By Feed"){
					try{
						if(this.organized[i].length==0){ }
					}catch(e){
						this.organized[i]=new Array( this.finished[i][1], new Array(), 0 );
					}
				}
			}
			
			for(j=0;j<tempDoc.getElementsByTagName("game").length;j++){
				var temp=tempDoc.getElementsByTagName("game")[j];
				var date = temp.getAttribute("date");
				var date = date.substring(6,10) + "" + date.substring(0,2) + "" + date.substring(3,5);
				var time = temp.getAttribute("time");
				var hour = time.substring(0,2);
				var min = time.substring(3,5);
				var pm = time.substring(6,8);
				if(pm=="PM"){
					hour=parseInt(hour,10) + 12;
				}
				if(hour==24){ hour="00"; }
				time = date + "" + hour + "" + min;

				var org_num="";
			
				switch(this.tab_type){
					case "By Feed":
						try{
							if(this.organized[i].length==0){ }
						}catch(e){
							this.organized[i]=new Array( this.finished[i][1], new Array(), 0 );
						}
						//alert(i + " " + this.organized[i]);
						org_num=i;
					break;
					case "By Day":
						var used=-1;
						for(k=0;k<this.organized.length;k++){
							if(date == this.organized[k][0]){
								used=k;
								break;
							}
						}
						if(used==-1){
							for(k=0;k<this.organized.length;k++){
								if(date < this.organized[k][0]){
									used=k;
									for(l=this.organized.length;l > k;l--){
										this.organized[l]=this.organized[l-1];
									}
									this.organized[k]=new Array( date , new Array(), 0 );
									break;
								}
							}
						}
						if(used==-1){
							used=this.organized.length;
							this.organized[this.organized.length]=new Array( date , new Array(), 0 );
						}
						org_num=used;
					break;
					default: //None
						try{
							if(this.organized[0].length==0){ }
						}catch(e){
							this.organized[0]=new Array( "All", new Array(), 0 );
						}
						org_num=0;
				}
				if(temp.getElementsByTagName("team").length > this.organized[org_num][2]){
					
					this.organized[org_num][2]=temp.getElementsByTagName("team").length;
				}

				var used=0;
				for(k=0;k<this.organized[org_num][1].length;k++){
					if( time < this.organized[org_num][1][k][0] ){
						used=1;
						for(l=this.organized[org_num][1].length;l > k;l--){
							this.organized[org_num][1][l]=this.organized[org_num][1][l-1];
						}
						this.organized[org_num][1][k]=new Array( time , temp );
						break;
					}
				}
				if(used==0){
					this.organized[org_num][1][this.organized[org_num][1].length]=new Array( time , temp );
				}
			}
		}
		return;
	}

	this.changeTab = function (which){
		document.getElementById(this.div_name + "_tab" + this.current_tab).style.display="none";
		if(this.current_page!=1){
			document.getElementById(this.div_name + "_" + this.current_tab + "_page" + this.current_page).style.display="none";
			this.current_page=1;
			document.getElementById(this.div_name + "_" + this.current_tab + "_pagenum").innerHTML=this.current_page;
			document.getElementById(this.div_name + "_" + this.current_tab + "_page" + this.current_page).style.display="";
			
		}
		this.current_tab=which;
		document.getElementById(this.div_name + "_tab" + this.current_tab).style.display="";

		if(this.pages[this.current_tab] > 1){
			this.auto_on=1;
			document.getElementById(this.div_name + "_" + this.current_tab + "_play").innerHTML="Pause";
			if(this.call_on==0){
				this.call_on=1;
				setTimeout(this.div_name + ".changePage(1,1);",this.delay);
			}
		}else{
			this.auto_on=0;
		}
	}
	this.changePage = function (dir,auto){
		if(auto==1){
			this.call_on=0;
		}
		if(dir==0){
			if(this.auto_on==0){
				this.auto_on=1;
				if(this.call_on==0){
					this.call_on=1;
					setTimeout(this.div_name + ".changePage(1,1);",this.delay);
				}
				document.getElementById(this.div_name + "_" + this.current_tab + "_play").innerHTML="Pause";
			}else{
				this.auto_on=0;
				document.getElementById(this.div_name + "_" + this.current_tab + "_play").innerHTML="Play";
			}
		}else{
			if(auto==1 && this.auto_on==0){

			}else{
				if(auto==0){
					this.auto_on=0;
					document.getElementById(this.div_name + "_" + this.current_tab + "_play").innerHTML="Play";
				}
				if(this.pages[this.current_tab] > 1){
					var new_page=0;
					if(dir==1){
						new_page=this.current_page + 1;	
						if(new_page > this.pages[this.current_tab]){
							new_page=1;
						}
					}else if(dir==-1){
						new_page=this.current_page - 1;
						if(new_page==0){
							new_page=this.pages[this.current_tab];
						}
					}
					document.getElementById(this.div_name + "_" + this.current_tab + "_page" + this.current_page).style.display="none";
					this.current_page=new_page;
					document.getElementById(this.div_name + "_" + this.current_tab + "_pagenum").innerHTML=this.current_page;
					document.getElementById(this.div_name + "_" + this.current_tab + "_page" + this.current_page).style.display="";

					if(this.auto_on==1){
						if(this.call_on==0){
							this.call_on=1;
							setTimeout(this.div_name + ".changePage(1,1);",this.delay);
						}
					}
				}else{
					if(this.auto_on==1){
						this.auto_on=0;
					}
				}
			}
		}
	}

	this.drawMe = function (){
		this.organizeGames();

		
		if( this.tab_type=="By Day" ){
			var currentTime = new Date();
			var month = currentTime.getMonth() + 1;
			var day = currentTime.getDate();
			var year = currentTime.getFullYear();
			if(month < 10){ month="0" + month; }
			if(day < 10){ day="0" + day; }
			var current=year + "" + month + "" + day;
			var found=0;
			var min_amount=0;
			var min_num=-1;
			for( i=0; i < this.organized.length; i++){
				if(current==this.organized[i][0]){
					this.current_tab=i;
					found=1;
					break;
				}else{
					var val=parseInt(this.organized[i][0],10) - parseInt(current,10);
					if(val < 0){ val=val * -1; }
					if(min_num==-1){
						min_num=i;
						min_amount=val;
					}else{
						if(val < min_amount){
							min_num=i;
							min_amount=val;
						}
					}
				}
			}
			if(found==0){
				if(min_num < 0){ min_num=0; }
				current=this.organized[min_num][0];
				this.current_tab=min_num;
			}
		}else{
			var current="-";
		}
		
		var output_array = new Array();

		var output="";

		output += "<table cellspacing=0 cellpadding=0 style='margin:0px;padding:0px;width:" + this.width + "px;height:" + this.height + "px;";
		
		if(this.border_outer!=""){
			output += 'border:1px solid #' + this.border_outer + ';';
		}
		if(this.background!=""){
			output += 'background:#' + this.background + ';';
		}

		output += "'>";
			
		for(i=0; i < this.organized.length; i++){
			//alert("tab:" + i);
			output +="<tr ID='" + this.div_name + "_tab" + i + "' style='width:" + this.width + "px;height:" + this.height + "px;";
			if(this.tab_type=="None" || ( this.tab_type=="By Feed" && i==0 ) || ( this.tab_type=="By Day" && this.organized[i][0]==current ) ){

			}else{
				output +="display:none;";
			}
			output +="'>";
			
			if(output.length > 1000){
				output_array[output_array.length]=output;
				output="";
			}

			output +="<td style='width:" + this.width + "px;height:" + this.height + "px;' valign='top'>";
				output +="<table cellspacing=0 cellpadding=0 style='width:" + this.width + "px;'>\n";
					if(this.tab_type!="None"){
						output +="<tr style='height:" + (parseInt(this.tab_height,10) + 2 * parseInt(this.padding,20)) + "px;'><td style='height:" + (parseInt(this.tab_height,10) + 2 * parseInt(this.padding,20)) + "px;padding:" + this.padding + "px;";
						if(this.border_inner!=""){
							output+="border-bottom:1px solid #" + this.border_inner + ";";
						}
						output += "'><div align=center style='overflow:hidden;width:" + (this.width - 2 * this.padding) + "px;height:" + (this.tab_height - 2 * this.padding) + "px;font-family:arial;font-size:11px;color:#" + this.text_color + ";'>";
						for(j=0; j < this.organized.length; j++){
							if(j!=0){
								output += " | ";
							}
							output += "<a ";
								output+=" href='javascript:void(0)' ";
							if(i!=j){
								output +=" onClick='javascript:" + this.div_name + ".changeTab(" + j + ");' ";
							}
							
							output += " style='font-weight:bold;font-family:arial;font-size:11px;color:#" + this.tab_color + ";";
							if(i==j){
								output+="text-decoration:underline;";
							}else{
								output+="text-decoration:none;";
							}
							
							if(this.tab_type=="By Day"){
								if(this.organized[j][0]==""){
									var tab="[Unknown]";
								}else{
									var tab=parseInt(this.organized[j][0].substring(4,6),10) + "/" + parseInt(this.organized[j][0].substring(6,8),10);
								}
							}else{
								if(this.organized[j][0]==""){
									var tab="[Unknown]";
								}else{
									var tab=this.organized[j][0];
								}
							}
							output +="' >" + tab + "</a>";
						}
						output +="</td></tr>\n";
					}
					var per_row=0;
					var per_col=0;
					var box_height=parseInt(this.comment_height,10) + parseInt(this.padding,10) + this.organized[i][2] * ( parseInt(this.per_team_height,10) + parseInt(this.padding,10) );
					var max_width=this.width;
					var max_height=this.height;
					if(this.pagenate=="Manual" || this.pagenate=="Auto"){
						max_height -= (parseInt(this.tab_height,10) + 2 * parseInt(this.padding,20));
					}
					var pages=1;
					var per_page=0;
					switch(this.pagenate){
						case "Manual":
						case "Auto":
							per_col=Math.floor(max_height/box_height);
							if(per_col * per_row < this.organized[i][1].length){
								max_height -= (parseInt(this.tab_height,10) + 2 * parseInt(this.padding,20));
								per_col=Math.floor(max_height/box_height);
							}
						break;
						default://"Scroll":
							 max_width -= this.scroll_width;
						break;

					}
					per_row=Math.floor(max_width/this.box_width);
					this.box_width=Math.floor(max_width/per_row);
					if(this.border_inner!=""){
						this.box_width-=1;
					}

					if(this.pagenate=="Manual" || this.pagenate=="Auto"){
						per_page=per_col * per_row;
						pages=Math.ceil(this.organized[i][1].length/(per_col * per_row));
					}else{
						per_page=this.organized[i][1].length;
						pages=1;
					}
					
					this.pages[i]=pages;



					output +="<tr style='width:" + this.width + "px;height:" + max_height + "px;'>";
					output +="<td style='width:" + this.width + "px;height:" + max_height + "px;' valign='Top'>\n";

						if(this.pagenate!="Manual" && this.pagenate!="Auto"){
							output +="<div style='overflow-y:scroll;overflow-x:auto;width:" + this.width + "px;height:" +max_height + "px;'>";
						}
					
					if(output.length > 1000){
						output_array[output_array.length]=output;
						output="";
					}

						for(m=0;m<pages;m++){
							output +="<table ID='" + this.div_name + "_" + i + "_page" + (parseInt(m,10)+1) + "' cellspacing=0 cellpadding=0 style='width:" + max_width + "px;";
							if(m!=0){ output+="display:none;"; }
							output +="'>\n";
								
							var start_at=per_page * m;
							//alert(start_at + " until " + (start_at + per_page));

							
							for(z=start_at;z < start_at + per_page;z++){
								
								if(z >= this.organized[i][1].length){
									break;
								}
								
								
								var game=this.organized[i][1][z][1];
								
								
								var datetime=this.organized[i][1][z][0];
								
								
								if(z==0 || (z)%per_row==0){
									output+="<tr>";
								}
								output+="<td style='width:" + this.box_width + "px;height:" + box_height + "px;";
								if(this.border_inner!=""){
									output+="border-bottom:1px solid #" + this.border_inner + ";";
									if((z+1)%per_row!=0){
										output+="border-right:1px solid #" + this.border_inner + ";";
									}
								}
								output +="'>";
									output +="<table cellspacing=0 cellpadding=" + this.padding + ">";
										var month=parseInt(datetime.substring(4,6),10);
										var day=parseInt(datetime.substring(6,8),10);
										var hour=parseInt(datetime.substring(8,10),10);
										var minute=datetime.substring(10,12);
										var pm="am";
										if(hour == 00){
											hour=12;
											pm="pm";
										}else if(hour > 12){
											hour-=12;
											pm="pm";
										}
										var sport=game.getAttribute("sport");
										var level=game.getAttribute("level");
										if(level=="Varsity"){
											level="V";
										}else if(level=="Frosh"){
											level="Fr";
										}else if(level=="Club"){
											level="Cl";
										}
										var gender=game.getAttribute("gender");

										var padme2 = parseInt(this.comment_height,10) + parseInt(this.padding,10);

										output += "<tr style='height:" + padme2 + "px;'><td colspan=2 style='height:" + padme2 + "px;padding-bottom:0px;' valign=top><div style='overflow:hidden;width:" + ( this.box_width - 2 * this.padding ) + "px;height:" + (this.comment_height) + "px;font-family:arial;font-size:" + this.comment_size + "px;color:#" + this.comment_color + "'>" + month + "/" + day + " " + hour + ":" + minute + pm + " " + level + " " + sport + " " + gender + "</div></td></tr>";

										if(output.length > 1000){
											output_array[output_array.length]=output;
											output="";
										}
										
										
										var home_stall=-1;

										

										for(y=0;y<this.organized[i][2];y++){
											
											if(y < game.getElementsByTagName("team").length){
												
												if(game.getElementsByTagName("team")[y].getAttribute("home")=="Yes"){
													home_stall=y;		
												}
												if(home_stall > -1 && y + 1 !=game.getElementsByTagName("team").length){
													var use=y + 1;
													var home=0;
												}else{
													var use=home_stall;
													home_stall=-1;
													var home=1;
												}
												try{
													var team=game.getElementsByTagName("team")[use].getAttribute("school");
												}catch(e){
													use=0;
													var team=game.getElementsByTagName("team")[use].getAttribute("school");
												}
												if(home==1){
													team=(team+'').toUpperCase();
												}
												if(y + 1==this.organized[i][2]){
													var temp_pad=this.padding;
												}else{
													var temp_pad=0;
												}
												
												var bold="";
												try{
													if(game.getElementsByTagName("team")[use].getAttribute("result")=="Win"){
														bold="font-weight:bold;";
													}
												}catch(e){
													try{
														if(game.getElementsByTagName("team")[use].getAttribute("place")=="1"){
															bold="font-weight:bold;";
														}
													}catch(e){

													}
												}
												var link="";
												var padme=parseInt(this.per_team_height,10) + parseInt(this.padding,10);
												link="<a href='" + game.getAttribute("game_link") + "' style='background:none;text-decoration:none;font-family:arial;font-size:" + this.text_size + "px;color:#" + this.link_color + ";" + bold + "'>";

												output += "<tr style='height:" + padme + "px;'><td style='height:" + padme + "px;padding-bottom:" + temp_pad + "px;' valign=top><div style='overflow:hidden;width:" + ( this.box_width - 2 * this.padding - this.box_score ) + "px;height:" + (this.per_team_height ) + "px;'>" +  link + team + "</a></div></td><td style='width:" + this.box_score + "px;height:" + padme + "px;padding-bottom:" + temp_pad + "px;padding-left:0px;padding-right:0px;' valign=top><div align=center style='overflow:hidden;width:" + this.box_score  + "px;height:" + this.per_team_height + "px;'>";

												if(output.length > 1000){
													output_array[output_array.length]=output;
													output="";
												}

												var score="-";
												if(game.getElementsByTagName("scoring_lines").length > 0){
													for(zz=0;zz<game.getElementsByTagName("scoring_lines").length;zz++){
														var line=game.getElementsByTagName("scoring_lines")[zz];
														if(line.getElementsByTagName("period").length > 0){
															for(yy=0;yy<line.getElementsByTagName("period").length;yy++){
																var period=line.getElementsByTagName("period")[yy];
																if(period.getAttribute("num")=="F"){
																	if(period.getElementsByTagName("scoring_line").length > 0){
																		for(xx=0;xx<period.getElementsByTagName("scoring_line").length;xx++){
																			var sline=period.getElementsByTagName("scoring_line")[xx];
																			if(sline.getAttribute("school_id")==game.getElementsByTagName("team")[use].getAttribute("school_id")){
																				score=sline.getAttribute("score");
																				break;
																			}
																		}
																	}
																	if(score!="-"){
																		break;
																	}
																}
															}
														}
														if(score!="-"){
															break;
														}
													}
												}

												output += link + score + "</a>";
												output +="</div>";
												output +="</td>";
												
												output + "</tr>";
											}else{
												output += "<tr style='height:" + ( this.per_team_height + this.padding ) + "px;'><td colspan=2 style='height:" + ( this.per_team_height + this.padding ) + "px;padding-top:0px;padding-bottom:2px;'></td></tr>";
											}
										}

									output +="</table>";
								output += "</td>";
								if((z+1)%per_row==0){
									output+="</tr>";
								}
							}

							output +="</table>";
						}

						if(this.pagenate!="Manual" && this.pagenate!="Auto"){
							output +="</div>";
						}

					output +="</td>";
					output +="</tr>";

					if(output.length > 1000){
						output_array[output_array.length]=output;
						output="";
					}

					if(pages > 1){
						output +="<tr style='height:" + (parseInt(this.tab_height,10) + 2 * parseInt(this.padding,20)) + "px;'><td style='height:" + (parseInt(this.tab_height,10) + 2 * parseInt(this.padding,20)) + "px;padding:" + this.padding + "px;";
						output += "'><div align=center style='overflow:hidden;width:" + (this.width - 2 * this.padding) + "px;height:" + (this.tab_height - 2 * this.padding) + "px;font-family:arial;font-size:11px;color:#" + this.text_color + ";'>";
						output +="<table cellspacing=0 cellpadding=0>";
						output +="<tr>";
						output +="<td nowrap style='padding-right:50px;'><a href='javascript:void(0);' onClick='javascript:" + this.div_name + ".changePage(-1,0)' style='font-weight:bold;font-family:arial;font-size:11px;color:#" + this.pagenate_color + ";text-decoration:none;'>&laquo; Prev</a></td>";
						output +="<td nowrap style='font-size:11px;font-family:arial;color:#" + this.text_color + ";'>";
						output +="<span ID='" + this.div_name + "_" + i + "_pagenum'>1</span> / " + this.pages[i];
						if(this.pagenate=="Auto"){
							output += " | <a href='javascript:void(0);' onClick='javascript:" + this.div_name + ".changePage(0)' style='font-weight:bold;font-family:arial;font-size:11px;color:#" + this.pagenate_color + ";text-decoration:none;'><span ID='" + this.div_name + "_" + i + "_play'>Pause</span></a>";
						}
						output +="</td>";
						output +="<td nowrap style='padding-left:50px;'><a href='javascript:void(0);' onClick='javascript:" + this.div_name + ".changePage(1,0)' style='font-weight:bold;font-family:arial;font-size:11px;color:#" + this.pagenate_color + ";text-decoration:none;'>Next &raquo;</a></td>";
						output +="</tr>";
						output +="</table>";
						output +="</div></td></td></tr>";
					}

					if(output.length > 1000){
						output_array[output_array.length]=output;
						output="";
					}

				output +="</table>";
			output +="</td></tr>";

		}

		output += "</table>\n";

		output_array[output_array.length]=output; output = "";
	
		var foutput = "";
		for(i=0;i<output_array.length;i++){
			foutput += output_array[i];
		}

		this.replaceHtml(document.getElementById(this.div_name + "_output"),foutput);

		if(this.pagenate=="Auto"){
			setTimeout(this.div_name + ".changePage(1,1);",this.delay);
			this.auto_on=1;
			this.call_on=1;
		}
	
	}

	//GREAT FUNCTION! 
	this.replaceHtml = function(el, html) {
		var oldEl = typeof el === "string" ? document.getElementById(el) : el;
		/*@cc_on // Pure innerHTML is slightly faster in IE
			oldEl.innerHTML = html;
			return oldEl;
		@*/
		var newEl = oldEl.cloneNode(false);
		newEl.innerHTML = html;
		oldEl.parentNode.replaceChild(newEl, oldEl);
		/* Since we just removed the old element from the DOM, return a reference
		to the new element, which can be used to restore variable references. */
		return newEl;
	};

}
