mySlider = function (name, label, factorId, adjusting, pctSlider) 
{
	this.sliderbgDiv = "";
	this.sliderthumbDiv = "";
	this.sliderinfoDiv = "";
	this.sliderBox = "";
	this.using = true;
	//this.name = "";
	//this.label = "";
	//this.adj = 1;
	//this.adj2 = 1/this.adj;
	this.inSliderEvent = false;
	this.left = 0;
	this.top = 0;
	mySlider.optimizing = false;
/////////////////////////////////
	this.name = name;
	this.label = label;
	this.factorId = factorId;
	this.adjusting = adjusting;
	this.pctSlider = pctSlider;
	if(formatid == 1) {
		this.kludge = 32;
		this.scaleTo200 = 200/100;
	} else {
		this.kludge = 86;
		this.scaleTo200 = 200/60;
	}
	
	if(name != undefined)
		mySlider.addSlider(this);

};

mySlider.sliderList = Array();
mySlider.horizontal = true;

mySlider.prototype.generateHtmlHorizontal = function (count) {
	this.sliderouterDiv = this.name + "SliderOuter";
	this.slidericonDiv = this.name + "SliderIcon";
	this.sliderbgDiv = this.name + "SliderBg";
	this.sliderthumbDiv = this.name + "SliderThumb";
	this.sliderinfoDiv = this.name + "SliderInfo";
	this.sliderlnudgeDiv = this.name + "LeftNudge";
	this.sliderrnudgeDiv = this.name + "RightNudge";
	this.slidertitleDiv = this.name + "SliderTitle";
	this.sliderBox = this.name + "Box";
	this.left = ((count % 3) * 252) + 472;
	this.top = (Math.floor(count/3) * 79) + 10;
	this.width = 242;
	this.height = 69;
	var div = "";
	div += "\t\t" + '<div style="position:absolute;width:' + this.width + 'px;height:' + this.height + 'px;left:' + this.left + 'px;top:' + this.top + 'px;padding:0px;border:0px;margin:0px">' + "\n";
	div += "\t\t\t" + '<div class="sliderBackground" style="position:absolute;width:' + (this.width - 1) + 'px;height:' + (this.height - 2) + 'px;left:0px;top:0px;border:solid 1px #000000">' + "\n";
	div += "\t\t\t" + '<div class="sliderForeground" id="' + this.slidertitleDiv + '" style="position:absolute;width:220px;height:12px;left:5px;top:5px;padding-top:5px;text-align:left;padding:5px;">' + "\n";
	//div += "\t\t\t\t" + '<form>' + "\n";
	//div += "\t\t\t\t\t" + '<input id="' + this.sliderBox +'" name="e" type="checkbox" CHECKED onchange="mySlider.sliderList[' + "'" + this.name + "'" + '].toggle();resetData(playerId, true, true)"> ' + this.label + "\n";
	div += "\t\t\t\t" + this.label + "\n";
	//div += "\t\t\t\t" + '</form>' + "\n";
	div += "\t\t\t\t" + '<div class="sliderForeground" id="' + this.sliderinfoDiv + '" style="position:absolute;width:25px;height:15px;left:205px;top:0px;padding-top:7px">' + "\n";
	div += "\t\t\t\t\t" + '0' + "\n";
	div += "\t\t\t\t" + '</div>' + "\n";
	div += "\t\t\t" + '</div>' + "\n";
	div += "\t\t\t" + '<div class="sliderForeground" id="' + this.sliderbgDiv + '" style="position:absolute;width:230px;height:30px;left:5px;top:32px"><img src="/images/sliderbgaltered.png">' + "\n";
	div += "\t\t\t\t" + '<div id="' + this.sliderthumbDiv + '" style="position:absolute;height:27px;width:17px;left:7px;top:2px;"><img src="/images/thumb.png"></div>' + "\n";
	//div += "\t\t\t\t" + '<div id="' + this.sliderthumbDiv + '" style="position:absolute;height:20px;width:5px;left:10px;top:5px;color:#000000;background-color:#ffffff">,</div>' + "\n";
	div += "\t\t\t" + '</div>' + "\n";
	div += "\t\t" + '<div class="sliderForeground"  id="' + this.sliderlnudgeDiv + '" style="position:absolute;width:10px;height:30px;left:5px;top:32px" onclick="mySlider.nudgeSlider(' + "'" + this.name + "'" + ', -1)"><img src="/images/larrow2.png"></div>' + "\n";
	div += "\t\t" + '<div class="sliderForeground"   id="' + this.sliderrnudgeDiv + '" style="position:absolute;width:5px;height:30px;right:11px;top:32px;" onclick="mySlider.nudgeSlider(' + "'" + this.name + "'" + ', 1)"><img src="/images/rarrow2.png"></div>' + "\n";
	div += "\t\t" + '</div>' + "\n";
	div += "\t" + '</div>' + "\n";
	var el = document.getElementById('sliders');
	if(el)
		el.innerHTML += div;
	//el = document.getElementById(this.sliderBox);
	//el.checked = this.using;
};

mySlider.prototype.generateHtmlVertical = function (count) {
	this.sliderouterDiv = this.name + "SliderOuter";
	this.slidericonDiv = this.name + "SliderIcon";
	this.sliderbgDiv = this.name + "SliderBg";
	this.sliderthumbDiv = this.name + "SliderThumb";
	this.sliderinfoDiv = this.name + "SliderInfo";
	this.sliderlnudgeDiv = this.name + "LeftNudge";
	this.sliderrnudgeDiv = this.name + "RightNudge";
	this.slidertitleDiv = this.name + "SliderTitle";
	this.sliderBox = this.name + "Box";
return;
	this.left = ((count % 4) * 79) + 472;
	this.top = 10;
	this.width = 69;
	this.height = 242;
	var div = "";
	div += "\t\t" + '<div style="position:absolute;width:' + this.width + 'px;height:' + this.height + 'px;left:' + this.left + 'px;top:' + this.top + 'px;padding:0px;border:0px;margin:0px">' + "\n";
	div += "\t\t\t" + '<div class="sliderBackground" style="position:absolute;width:' + (this.width - 1) + 'px;height:' + (this.height - 2) + 'px;left:0px;top:0px;border:solid 1px #000000">' + "\n";
	div += "\t\t\t" + '<div class="sliderForeground" id="' + this.slidertitleDiv + '" style="position:absolute;width:12px;height:220px;right:5px;top:5px;padding-top:5px;text-align:center;padding:5px;">' + "\n";
	//div += "\t\t\t\t" + '<form>' + "\n";
	//div += "\t\t\t\t\t" + '<input id="' + this.sliderBox +'" name="e" type="checkbox" CHECKED onchange="mySlider.sliderList[' + "'" + this.name + "'" + '].toggle();resetData(playerId, true, true)"> ' + this.label + "\n";
	div += "\t\t\t\t" + this.verticalLabel() + "\n";
	//div += "\t\t\t\t" + '</form>' + "\n";
	div += "\t\t\t\t" + '<div class="sliderForeground" id="' + this.sliderinfoDiv + '" style="position:absolute;width:14px;height:15px;left:0px;top:215px;padding-left:3px;text-align:center">' + "\n";
	div += "\t\t\t\t\t" + '0' + "\n";
	div += "\t\t\t\t" + '</div>' + "\n";
	div += "\t\t\t" + '</div>' + "\n";
	div += "\t\t\t" + '<div class="sliderForeground" id="' + this.sliderbgDiv + '" style="position:absolute;width:30px;height:220px;left:5px;top:15px;"><img src="/images/sliderbgalteredvert.png" style="position:absolute;left:0px;top:4px;">' + "\n";
	div += "\t\t\t\t" + '<div id="' + this.sliderthumbDiv + '" style="position:absolute;height:17px;width:27px;left:2px;bottom:7px;"><img src="/images/thumbvert.png"></div>' + "\n";
	//div += "\t\t\t\t" + '<div id="' + this.sliderthumbDiv + '" style="position:absolute;height:20px;width:5px;left:10px;top:5px;color:#000000;background-color:#ffffff">,</div>' + "\n";
	div += "\t\t\t" + '</div>' + "\n";
	div += "\t\t" + '<div class="sliderForeground"  id="' + this.sliderlnudgeDiv + '" style="position:absolute;width:30px;height:10px;left:5px;bottom:5px" onclick="mySlider.nudgeSlider(' + "'" + this.name + "'" + ', 1)"><img src="/images/barrow2.png"></div>' + "\n";
	div += "\t\t" + '<div class="sliderForeground"   id="' + this.sliderrnudgeDiv + '" style="position:absolute;width:30px;height:10px;left:5px;top:5px;" onclick="mySlider.nudgeSlider(' + "'" + this.name + "'" + ', -1)"><img src="/images/tarrow2.png"></div>' + "\n";
	div += "\t\t" + '</div>' + "\n";
	div += "\t" + '</div>' + "\n";
	var el = document.getElementById('sliders');
	el.innerHTML += div;
	//el = document.getElementById(this.sliderBox);
	//el.checked = this.using;
};

mySlider.prototype.initSlider = function () {
	var el;
	var num;
	//el = document.getElementById(this.sliderBox);
	//el.checked = this.using;
	if(mySlider.horizontal) {
		this.slider = YAHOO.widget.Slider.getHorizSlider(this.sliderbgDiv, this.sliderthumbDiv, 0, 200);
	} else {
		if(formatid == 1) {
			this.slider = YAHOO.widget.Slider.getVertSlider(this.sliderbgDiv, this.sliderthumbDiv, 100, 0);
		} else {
			this.slider = YAHOO.widget.Slider.getVertSlider(this.sliderbgDiv, this.sliderthumbDiv, 60, 0);
		}
	}
	this.slider.animate = false;
	this.sliderinfoDivEl = document.getElementById(this.sliderinfoDiv);
	var thisObj = this;
	/*
	this.slider.subscribe('slideStart', function () {
		if(!mySlider.optimizing) {
			chart.set('polling', 5, true);
			chart2.set('polling', 5, true);
		}
	});
	*/
	this.slider.subscribe('slideEnd', function () {
		if(!mySlider.optimizing && haveChart) {
			//chart.set('polling', 5000, true);
			//chart2.set('polling', 5000, true);
			chart.refreshData();
			if(formatid == 1) {
				resortPlayerList();
				if(thisObj.adjusting == 'pptwgt')
					chart2.refreshData();
				else if(thisObj.adjusting == 'tchwgt')
					chart3.refreshData();
				else {
					chart2.refreshData();
					chart3.refreshData();
				}
			}
		}
	});
	this.slider.subscribe('change', function (newOffset) {
								slidersHaveChanged = true;
								newOffset = (thisObj.kludge - newOffset)*thisObj.scaleTo200;
								if(useRealSystem) {
									if(!thisObj.inSliderEvent) {
										thisObj.inSliderEvent = true;
										thisObj.wgt = newOffset;
										
										if(newOffset == 100) {
											thisObj.adj = 1;
										}
										else if(newOffset < 100) {
											thisObj.adj = (newOffset/200) + 0.50;
										} else {
											thisObj.adj = newOffset/100;
										}
										if(factorInfo != null) {
											factorInfo[0][thisObj.factorId][thisObj.adjusting] = thisObj.wgt;
											factorInfo[1][thisObj.factorId][thisObj.adjusting] = thisObj.wgt;
											factorInfo[2][thisObj.factorId][thisObj.adjusting] = thisObj.wgt;
											factorInfo[3][thisObj.factorId][thisObj.adjusting] = thisObj.wgt;
											if(!mySlider.optimizing) {
												computeChartValues();
												var displayVal = ((formatid == 1) ? thisObj.wgt*0.5 : (thisObj.wgt*0.3));
												thisObj.sliderinfoDivEl.innerHTML = Math.round(displayVal); //num.toPrecision(3);
											}
										}
										thisObj.inSliderEvent = false;
									}
								} else {
									if(!thisObj.inSliderEvent) {
										thisObj.inSliderEvent = true;
										thisObj.wgt = newOffset;
										
										if(newOffset == 100) {
											thisObj.adj = 1;
										}
										else if(newOffset < 100) {
											thisObj.adj = (newOffset/200) + 0.50;
										} else {
											thisObj.adj = newOffset/100;
										}
										
										if(factorInfo != null) {
											factorInfo[0][thisObj.factorId][thisObj.adjusting] = newOffset;
											factorInfo[1][thisObj.factorId][thisObj.adjusting] = newOffset;
											factorInfo[2][thisObj.factorId][thisObj.adjusting] = newOffset;
											factorInfo[3][thisObj.factorId][thisObj.adjusting] = newOffset;
											if(!mySlider.optimizing) {
												computeChartValues();
												el = document.getElementById(thisObj.sliderinfoDiv);
												num = new Number(thisObj.adj*100);
												el.innerHTML = num.toPrecision(3) + "%";
											}
										}
										thisObj.inSliderEvent = false;
									}
								}
							});
	// args for setValue are (newOffset, skipAnimation, force, silent)
	//this.slider.setValue(50, true, true, false);
};
 
mySlider.prototype.changeValue = function (newOffset) {
	newOffset *= this.scaleTo200;
	if(newOffset == 100) {
		this.adj = 1;
	}
	else if(newOffset < 100) {
		this.adj = (newOffset/200) + 0.50;
	} else {
		this.adj = newOffset/100;
	}
	this.adj2 = 1/this.adj;
	this.wgt = newOffset;
};
 
mySlider.prototype.getName = function () { return this.name; };
mySlider.prototype.getLabel= function () { return this.label; };

/*mySlider.prototype.toggle = function () {
	this.using = !this.using;
};*/

// NEWSLIDER
mySlider.prototype.adjust = function (weekInfo, wkIdx) {
	var result;
	var one = {pptAdj: 1, tchAdj: 1};
	var pptWgt = factorInfo[0][this.factorId].pptwgt;
	var tchWgt = factorInfo[0][this.factorId].tchwgt;
	if(pptWgt == 100) {
		pptAdjustment = 1;
	}
	else if(pptWgt < 100) {
		pptAdjustment = (pptWgt/200) + 0.50;
	} else {
		pptAdjustment = pptWgt/100;
	}
	
	if(tchWgt == 100) {
		touchAdjustment = 1;
	}
	else if(tchWgt < 100) {
		touchAdjustment = (tchWgt/200) + 0.50;
	} else {
		touchAdjustment = tchWgt/100;
	}
	switch(this.factorId) {
		case 0:
		//case 3:
		default:
			adjustment = one;	//player average doesn't do anything
			break;
			
		case 1:
		case 2:
			adjustment = this.genericAdjuster(weekInfo, pptAdjustment, touchAdjustment);
			break;
			
		case 3:
			adjustment = this.opponentStrengthAdjuster(weekInfo, pptAdjustment, touchAdjustment);
			break;
			
	}
	return adjustment;
};

mySlider.prototype.genericAdjuster = function (weekInfo, pptAdjustment, touchAdjustment) {
	if(this.using) {
		if(weekInfo.factorInfo[this.factorId] != 0) {
			pptAdjustment = 1/pptAdjustment;
			touchAdjustment = 1/touchAdjustment;
		}
	}
	return {pptAdj: pptAdjustment, tchAdj: touchAdjustment};
};

mySlider.prototype.opponentStrengthAdjuster = function (weekInfo, pptAdjustment, touchAdjustment) {
	if(this.using) {
		pptPct = weekInfo.factorInfo[this.factorId].pctppt;
		pptAdjustment = ((pptPct - 1) * pptAdjustment) + 1;
		touchPct = weekInfo.factorInfo[this.factorId].pcttouches;
		touchAdjustment = ((touchPct - 1) * touchAdjustment) + 1;
	}
	return {pptAdj: pptAdjustment, tchAdj: touchAdjustment};
};

mySlider.prototype.nudgeSlider = function (delta) {
	// args for setValue are (newOffset, skipAnimation, force, silent)
	var curval = this.slider.getValue();
	var newval;
	//if(mySlider.horizontal)
		//newval = curval + delta;
	//else
		newval = -((this.kludge - curval) + delta);
	this.slider.setValue(newval, true, false, false);
}

mySlider.labelAnim = { pptwgt: null, tchwgt: null };

mySlider.prototype.highlightSlider = function () {
	var labelAnim = mySlider.labelAnim[this.adjusting];
	if(labelAnim)
		labelAnim.stop();
	if(formatid == 1) {
		labelAnim = new YAHOO.util.Anim("slidingNames" + this.adjusting, { top: { to: (-19 * (this.factorId + 1)) }}, 0.325);
		labelAnim.animate();
	} else {
		labelAnim = new YAHOO.util.Anim("slidingNames", { top: { to: (-19 * (this.factorId + 1)) }}, 0.325);
		labelAnim.animate();
	}
}

mySlider.prototype.unhighlightSlider = function () {
	var labelAnim = mySlider.labelAnim[this.adjusting];
	if(labelAnim)
		labelAnim.stop();
	if(formatid == 1) {
		labelAnim = new YAHOO.util.Anim("slidingNames" + this.adjusting, { top: { to: 0 }}, 0.325);
		labelAnim.animate();
	} else {
		labelAnim = new YAHOO.util.Anim("slidingNames", { top: { to: 0 }}, 0.325);
		labelAnim.animate();
	}
}

mySlider.prototype.highlightThumb = function () {
	if(!YAHOO.util.Dom.hasClass("projectionVariables", 'sliderForegroundGrayed'))
		YAHOO.util.Dom.addClass(this.sliderouterDiv, 'handleHighlight');
}

mySlider.prototype.unhighlightThumb = function () {
	YAHOO.util.Dom.removeClass(this.sliderouterDiv, 'handleHighlight');
}

mySlider.prototype.addIE6Class = function () {
	YAHOO.util.Dom.addClass(this.sliderlnudgeDiv, 'bnudgeIE6');
	YAHOO.util.Dom.addClass(this.sliderinfoDiv, 'sliderBoxIE6');
}

mySlider.prototype.verticalLabel = function () {
	var newLabel = '';
	for(i in this.label) {
		newLabel += this.label[i] + '<br>';
	}
	return newLabel;
}

mySlider.setLayout = function (horiz) {
	mySlider.horizontal = horiz;
}

mySlider.addSlider = function (slider) {
	mySlider.sliderList[slider.name] = slider;
};

mySlider.initAll = function () {
	var idx;
	var count = 0;
	for(idx in mySlider.sliderList) {
		if(mySlider.horizontal)
			mySlider.sliderList[idx].generateHtmlHorizontal(count++);
		else
			mySlider.sliderList[idx].generateHtmlVertical(count++);
	}
	for(idx in mySlider.sliderList) {
		mySlider.sliderList[idx].initSlider();
	}
	if(mySlider.isIE6)
		mySlider.addIE6Class();
};

mySlider.setAdjusting = function (stat) {
	var idx;
	for(idx in mySlider.sliderList) {
		mySlider.sliderList[idx].adjusting = stat;
		// args for setValue are (newOffset, skipAnimation, force, silent)
		var wgt = factorInfo[0][mySlider.sliderList[idx].factorId][stat];
		mySlider.sliderList[idx].slider.setValue(mySlider.horizontal ? wgt : -wgt, true, false, true);
	}
};

mySlider.isPctSlider = function (factorId) {
	var idx;
	for(idx in mySlider.sliderList) {
		if(mySlider.sliderList[idx].factorId == factorId)
			return mySlider.sliderList[idx].pctSlider;
	}
};

mySlider.lockAllSliders = function () {
	var idx;
	var el;
	for(idx in mySlider.sliderList) {
		mySlider.sliderList[idx].slider.lock();
		YAHOO.util.Dom.addClass(mySlider.sliderList[idx].sliderbgDiv, 'sliderForegroundGrayed');
		YAHOO.util.Dom.addClass(mySlider.sliderList[idx].slidertitleDiv, 'sliderForegroundGrayed');
		YAHOO.util.Dom.addClass(mySlider.sliderList[idx].sliderinfoDiv, 'sliderForegroundGrayed');
		YAHOO.util.Dom.addClass(mySlider.sliderList[idx].sliderlnudgeDiv, 'sliderForegroundGrayed');
		YAHOO.util.Dom.addClass(mySlider.sliderList[idx].sliderrnudgeDiv, 'sliderForegroundGrayed');
		YAHOO.util.Dom.addClass("projectionVariables", 'sliderForegroundGrayed');
		YAHOO.util.Dom.addClass(mySlider.sliderList[idx].sliderbgDiv, 'sliderLocked');
		if(el = document.getElementById(mySlider.sliderList[idx].slidericonDiv)) {
			var bg = el.style.backgroundImage;
			if(bg.lastIndexOf("gray.") == -1) {
				var dotIdx = bg.lastIndexOf(".");
				el.style.backgroundImage = bg.slice(0, dotIdx) + "gray" + bg.slice(dotIdx);
			}
		}
	}
};

mySlider.unlockAllSliders = function () {
	var idx;
	var el;
	for(idx in mySlider.sliderList) {
		mySlider.sliderList[idx].slider.unlock();
		YAHOO.util.Dom.removeClass(mySlider.sliderList[idx].sliderbgDiv, 'sliderForegroundGrayed');
		YAHOO.util.Dom.removeClass(mySlider.sliderList[idx].slidertitleDiv, 'sliderForegroundGrayed');
		YAHOO.util.Dom.removeClass(mySlider.sliderList[idx].sliderinfoDiv, 'sliderForegroundGrayed');
		YAHOO.util.Dom.removeClass(mySlider.sliderList[idx].sliderlnudgeDiv, 'sliderForegroundGrayed');
		YAHOO.util.Dom.removeClass(mySlider.sliderList[idx].sliderrnudgeDiv, 'sliderForegroundGrayed');
		YAHOO.util.Dom.removeClass("projectionVariables", 'sliderForegroundGrayed');
		YAHOO.util.Dom.removeClass(mySlider.sliderList[idx].sliderbgDiv, 'sliderLocked');
		if(el = document.getElementById(mySlider.sliderList[idx].slidericonDiv)) {
			var bg = el.style.backgroundImage;
			if(bg.lastIndexOf("gray.") != -1) {
				var dotIdx = bg.lastIndexOf("gray.");
				el.style.backgroundImage = bg.slice(0, dotIdx) +  bg.slice(dotIdx + 4);
			}
		}
	}
};

mySlider.fixSliderInfos = function (stat) {
	var idx;
	var el;
	var slider;
	for(idx in mySlider.sliderList) {
		slider = mySlider.sliderList[idx];
		if(useRealSystem) {
			el = document.getElementById(slider.sliderinfoDiv);
			//num = new Number(thisObj.wgt);
			if(formatid == 1)
				el.innerHTML = Math.round(factorInfo[0][slider.factorId][slider.adjusting] * 0.5); //num.toPrecision(3);
			else
				el.innerHTML = Math.round(factorInfo[0][slider.factorId][stat] * 0.3); //num.toPrecision(3);
		} else {
			el = document.getElementById(slider.sliderinfoDiv);
			var offset = factorInfo[0][slider.factorId][stat];
			if(offset == 100) {
				slider.adj = 1;
			}
			else if(offset < 100) {
				slider.adj = (offset/200) + 0.50;
			} else {
				slider.adj = offset/100;
			}
			num = new Number(slider.adj*100);
			el.innerHTML = num.toPrecision(3) + "%";
		}
	}
};

mySlider.addIE6Class = function ()
{
	var idx;
	for(idx in mySlider.sliderList) {
		mySlider.sliderList[idx].addIE6Class();
	}
	mySlider.isIE6 = true;
}

mySlider.nudgeSlider = function (name, delta)
{
	var idx;
	for(idx in mySlider.sliderList) {
		if(mySlider.sliderList[idx].name == name) {
			mySlider.sliderList[idx].nudgeSlider(delta);
			break;
		}
	}
}

mySlider.highlightSlider = function (name)
{
	var idx;
	for(idx in mySlider.sliderList) {
		if(mySlider.sliderList[idx].name == name) {
			mySlider.sliderList[idx].highlightSlider();
			break;
		}
	}
}

mySlider.unhighlightSlider = function (name)
{
	var idx;
	for(idx in mySlider.sliderList) {
		if(mySlider.sliderList[idx].name == name) {
			mySlider.sliderList[idx].unhighlightSlider();
			break;
		}
	}
}

mySlider.highlightThumb = function (name)
{
	var idx;
	for(idx in mySlider.sliderList) {
		if(mySlider.sliderList[idx].name == name) {
			mySlider.sliderList[idx].highlightThumb();
			break;
		}
	}
}

mySlider.unhighlightThumb = function (name)
{
	var idx;
	for(idx in mySlider.sliderList) {
		if(mySlider.sliderList[idx].name == name) {
			mySlider.sliderList[idx].unhighlightThumb();
			break;
		}
	}
}

mySlider.retrieveSliderForTutorial = function(idx)
{
	return mySlider.sliderList[idx];
}