var dom={isReady:false};
if(!window.encodeURIComponent)
{
	encodeURIComponent=function(_1)
	{
		return escape(_1);
	};
	decodeURIComponent=function(_2)
	{
		return unescape(_2);
	};
}
if(!window.IMAGE_ROOT)
{
	IMAGE_ROOT="http://www.dsi.biz/newsite/global_img";
}
String.prototype.trim=function()
{
	return this.replace(/^\s+|\s+$/g,"");
};
if(typeof Function.apply!="function")
{
	Function.prototype.apply=function(_3,_4)
	{
		var r,x="____apply";
		if(typeof _3!="object"&&typeof _3!="function"){_3={};}
		_3[x]=this;
		r=_3[x](_4[0],_4[1],_4[2],_4[3],_4[4],_4[5]);
		return r;
	};
}
Function.prototype.bindEventListener=function(_6)
{
	var _7=this;
	var _8=[];
	for(var ii=1;ii<arguments.length;ii++)
	{
		_8.push(arguments[ii]);
	}
	return function(_10)
	{
		_10=_10||window.event;
		var _11=[_10];
		_11=_11.concat(_8);
		return _7.apply(_6,_11);
	};
};
Array.prototype.walk=function(_12,_13)
{
	var _14=true;
	var _15=typeof _13!="undefined";
	for(var ii=0;ii<this.length;ii++)
	{
		if((_15?_12.apply(_13,[this[ii]]):_12(this[ii]))==false)
		{
			_14=false;
		}
	}
	return _14;
};
Array.prototype.contains=function(_16)
{
	for(var ii=0;ii<this.length;ii++)
	{
		if(this[ii]==_16)
		{
			return true;
		}
	}
	return false;
};
String.prototype.containsClass=function(_17)
{
	return new RegExp("(^|\\s)"+_17+"($|\\s)","g").test(this);
};
String.prototype.addClass=function(_18)
{
	if(!this.containsClass(_18))
	{
		return this.length>0?this+" "+_18:_18;
	}
	return this;
};
String.prototype.swapClass=function(_19,_20)
{
	return this.removeClass(_19).addClass(_20);
};
String.prototype.removeClass=function(_21)
{
	if(typeof _21!="string")
	{
		if(typeof _21=="object"&&_21.constructor==Array)
		{
			var s=this;
			for(var ii=0;ii<_21.length;ii++)
			{
				s=s.removeClass(_21[ii]);
			}
		}
		return s;
		}
	if(!this.containsClass(_21))
	{
		return this;
	}
	var _23=new RegExp("\\s"+_21+"\\s");
	if(_23.test(this))
	{
		var _24=new RegExp("\\s"+_21);
	}else{
		var _24=new RegExp("\\s?"+_21+"\\s?");
	}
	return this.replace(_24,"");
};
String.prototype.getClasses=function()
{
	return this.split(/\s+/);
};
var ImageLoader=
{
	img:new Image(1,1),loadImage:function(_25)
	{
		this.img.src=_25;
	},
	loadImageArray:function(_26)
	{
		_26.walk(this.loadImage,this);
	}
};
function callOnWindowLoad(_27)
{
	EventDispatcher.addEvent(window,"load",_27);
}
var EventDispatcher=
{
	elements:[],
	eventCounter:1,
	stopPropagation:function(_28)
	{
		if(window.event)
		{
			window.event.cancelBubble=true;
		}else{
			if(_28.stopPropagation)
			{
				_28.stopPropagation();
			}
		}
	},
	addEvent:function(_29,_30,_31)
	{
		EventDispatcher.callCounter++;
		if(!_31.__eid)
		{
			_31.__eid=this.eventCounter++;
		}
		if(!_29.__events)
		{
			_29.__events={};
			this.elements[this.elements.length]=_29;
		}
		var _32=_29.__events[_30];
		if(!_32)
		{
			_32=_29.__events[_30]={};
			if(_29["on"+_30])
			{
				_32[0]=_29["on"+_30];
			}
		}
		_29["on"+_30]=EventDispatcher.handleEvent;
		_32[_31.__eid]=_31;
		return _31.__eid;
	},
	removeEvent:function(_33,_34,_35)
	{
		var eid=(typeof _35=="function")?_35.__eid:_35;
		if(_33.__events&&_33.__events[_34]&&eid)
		{
			delete _33.__events[_34][eid];
			return true;
		}else{
			return false;
		}
	},
	handleEvent:function(_37)
	{
		_37=_37||window.event;
		var _38=true;
		var _39=this.__events[_37.type];
		for(var ii in _39)
		{
			_38=_39[ii].apply(this,[_37])!==false&&_38;
		}
		if(this==window&&_37.types=="unload")
		{
			EventDispatcher.cleanupAll();
		}
		return _38;
	},
	cleanupAll:function()
	{
		for(var ii=0;ii<this.elements.length;ii++)
		{
			this.cleanupElement(this.elements[ii]);
			delete this.elements[ii];
		}
	},
	cleanupElement:function(_40)
	{
		if(_40.__events)
		{
			for(type in _40.__events)
			{
				for(eid in _40.__events[type])
				{
					delete _40.__events[type][eid];
				}
				_40["on"+type]=null;
			}
		}
	}
};
EventDispatcher.addEvent(window,"unload",function(){});
function domReady()
{
	if(arguments.callee.done)
	{
		return;
	}
	arguments.callee.done=dom.isReady=true;
	dom.onready&&dom.onready({type:"ready"});
	dom.onafterready&&dom.onafterready({type:"afterready"});
}
if(document.addEventListener)
{
	document.addEventListener("DOMContentLoaded",domReady,null);
}
function forceDomReady()
{
	if(!document.addEventListener&&!UserAgent.matches.iewin)
	{
		domReady();
	}
	return true;
}
EventDispatcher.addEvent(window,"load",domReady);
var DebugConsole=
{
	msgQueue:[],
	enabled:false,
	init:function()
	{
		var _41=document.createElement("div");
		_41.id="debug";
		document.body.appendChild(_41);
		while(this.msgQueue.length>0)
		{
			var msg=this.msgQueue.shift();
			this.write(msg.str,msg.style);
		}
	},
	write:function(str,_44)
	{
		var _45=$("debug");
		if(!_45)
		{
			DebugConsole.msgQueue.push({str:str,style:_44});
		}else{
			var p=document.createElement("p");
			p.appendChild(document.createTextNode(str));
			_45.appendChild(p);
			if(_44)
			{
				$$(p).setStyles(_44);
			}
		}
	}
};
var dbg=DebugConsole.write;
EventDispatcher.addEvent(dom,"afterready",function()
{
	if(this.enabled)
	{
		this.init();
	}
}.bindEventListener(DebugConsole));
function Timer(_50,_51)
{
	this.timerName=_50;
	this.startTime=_51||new Date();
}
Timer.prototype=
{
	stop:function(_52)
	{
		return (_52||(new Date()).valueOf()-this.startTime.valueOf());
	},
	toString:function()
	{
		return this.timerName+": "+this.stop()+" ms";
	}
};
var UserAgent=
{
	matches:{},
	supports:{},
	uaDefs:{mac:/(\bmac.os\b|\bmac_)/i,windows:/\b(win95|win98|win 9x|winnt|windows)\b/i,x11:/\bx11\b/i,nix:/\b(unix|linux|x11|bsd)\b/i,vista:/NT\s*6.0/,xp:/NT\s*5\.1/,xpsp2:/NT\s*5\.1\s?;\s*SV1/,iewin:/msie(.*)?windows/i,iewinlt7:/msie [1-6](.*)?windows/i,iewin7:/msie 7(.*)?windows/i,iewin6:/msie 6(.*)?windows/i,iewin55:/msie 5\.5(.*)?windows/i,iewin5:/msie 5\.0(.*)?windows/i,iewinold:/msie [1-4](.*)?windows/i,iemac:/msie 5(.*)?mac/i,ns4:/netscape 4/i,safari:/(safari|applewebkit)/i,khtml:/(konqueror|khtml|safari)/i,opera:/opera/i,opera9:/opera\/9/i,firefox:/firefox/i,firefox1dot0:/firefox\/1\.0/i,firefox1dot5:/firefox\/1\.5/i,firefox2dot0:/firefox\/2/i},
	featureDefs:
	{
		pngAlpha:function()
		{
			var m=UserAgent.matches;
			return m.khtml||m.opera||m.gecko||m.iewin&&!(m.iewin5||m.iewinold);
		},
		pngAlphaIEWin:function()
		{
			var m=UserAgent.matches;
			return m.iewin&&!(m.iewin5||m.iewinold);
		},
		elementAlpha:function()
		{
			var m=UserAgent.matches;
			return m.khtml||m.opera9||m.gecko||(m.iewin&&!m.iewinold);
		},
		elementAlphaIEWin:function()
		{
			return UserAgent.supports.elementAlpha&&UserAgent.matches.iewin;
		},
		fixedPosition:function()
		{
			var m=UserAgent.matches;
			return !m.iewin&&(m.gecko||m.khtml||m.opera);
		}
	},
	init:function()
	{
		var m=this.matches;
		var _54=function(_55,_56)
		{
			m[_55]=_56;
		};
		for(var _57 in this.uaDefs)
		{
			_54(_57,this.uaDefs[_57].test(navigator.userAgent));
		}
		_54("gecko",!m.khtml&&!m.opera&&/(firefox|camino|gecko)/i.test(navigator.userAgent));
		for(var _58 in this.featureDefs)
		{
			this.supports[_58]=this.featureDefs[_58]();
		}
		Browser=
		{
			MSIE:function()
			{
				return UserAgent.matches.iewin;
			}
		};
		isMacIE=this.matches.iemac;
		isSafari=this.matches.safari;
		isOpera=this.matches.opera;
		if(document.body)
		{
			UserAgent.onBodyReady();
		}else{
			EventDispatcher.addEvent(dom,"ready",UserAgent.onBodyReady);
		}
	},
	addSupportedFeature:function(_59,_60)
	{
		this.supports[_59]=_60;
	},
	onBodyReady:function()
	{
		var m=UserAgent.matches;
		for(var _61 in m)
		{
			if(m[_61])
			{
				$$(document.body).addClass("ua-"+_61);
			}
		}
	}
};
var appVers=navigator.appVersion;
UserAgent.init();
var BoxShots=
{
	sizes:{TINY:"tiny",SMALL:"small",BIG3:"big3",LARGE:"large"},
	getUrl:function(_62,_63)
	{
		return Link.imgURL(["boxshots/",_63,"/",_62,".jpg"].join(""));
	}
};
String.prototype.getUrlAttribute=function(_85)
{
	var ls;
	var ind=this.indexOf(URLLib.QUERY_START);
	if(ind!=-1)
	{
		ls=this.substring(ind);
	}else{
		return null;
	}
	if(ls.length>0&&ls.indexOf(_85)!=-1)
	{
		var _88=ls.substring(1).split(URLLib.QUERY_DELIM);
		var _89=_85+URLLib.NVPAIR_DELIM;
		for(var i=0;i<_88.length;i++)
		{
			if(_88[i].indexOf(_89)==0&&_88[i].length>_89.length)
			{
				return decodeURIComponent(_88[i].substring(_89.length));
			}
		}
	}
	return null;
};
String.prototype.setUrlAttribute=function(_91,_92)
{
	var _93=this;
	if(_92===false)
	{
		_92="false";
	}else{
		if(_92===0)
		{
			_92="0";
		}
	}
	var _94=_93.getUrlAttribute(_91);
	if(_94)
	{
		_93=_93.replace(_91+URLLib.NVPAIR_DELIM+encodeURIComponent(_94),_91+URLLib.NVPAIR_DELIM+encodeURIComponent(_92||""));
	}else{
		_93+=((_93.indexOf(URLLib.QUERY_START)==-1)?URLLib.QUERY_START:URLLib.QUERY_DELIM)+_91+URLLib.NVPAIR_DELIM+encodeURIComponent(_92||"");
	}
	return _93;
};
String.prototype.setUrlAttributes=function(_95)
{
	var _96=this;
	for(var _97 in _95)
	{
		_96=_96.setUrlAttribute(_97,_95[_97]);
	}
	return _96;
};
var URLLib={QUERY_START:"?",QUERY_DELIM:"&",NVPAIR_DELIM:"="};
var DOMWalker=
{
	subs:{},
	subscribe:function(tag,_144)
	{
		tag=tag.toUpperCase();
		if(this.subs[tag])
		{
			this.subs[tag].push(_144);
		}else{
			this.subs[tag]=[_144];
		}
	},
	run:function()
	{
		for(tag in this.subs)
		{
			var _145=document.getElementsByTagName(tag);
			var cbs=this.subs[tag];
			var le=_145.length;
			var lc=cbs.length;
			for(var ii=0;ii<le;ii++)
			{
				for(var jj=0;jj<lc;jj++)
				{
					cbs[jj](_145[ii],tag);
				}
			}
		}
		this.clearSubs();
	},
	clearSubs:function()
	{
		for(tag in this.subs)
		{
			delete this.subs[tag];
		}
	}
};
EventDispatcher.addEvent(dom,"afterready",DOMWalker.run.bindEventListener(DOMWalker));
function textAreaLimiter(_150,_151)
{
	if(_150.value.length>_151)
	{
		_150.value=_150.value.substring(0,_151);
	}
}
var Effects=
{
	DUR_DEFAULT:250,
	FPS_DEFAULT:30,
	trackers:{},
	types:{FADE:1,SIZE_X:2,SIZE_Y:3,MOVE_X:4,MOVE_Y:5},
	doEffect:function(id,type,_153)
	{
		switch(type)
		{
			case Effects.types.FADE:
				return UserAgent.supports.elementAlpha?this.addEffect(new FadeEffect(id,_153)):null;
			case Effects.types.SIZE_X:
				var _154="x";
			case Effects.types.SIZE_Y:
				_153.direction=_154||"y";
				if(!_153.rate)
				{
					_153.rate=0.4;
				}
				return this.addEffect(new SizeEffect(id,_153));
			case Effects.types.MOVE_X:
			case Effects.types.MOVE_Y:
				return this.addEffect(new MoveEffect(id,_153));
			default:
				throw "Unknown effect type specified: "+type;
		}
	},
	getEffect:function(id,type)
	{
		if(this.trackers[id])
		{
			return this.trackers[id].getEffect(type);
		}
		return null;
	},
	addEffect:function(_155)
	{
		var id=_155.getId();
		(this.trackers[id]||(this.trackers[id]=new EffectTracker())).addEffect(_155);
		return _155;
	},
	clear:function(id)
	{
		var _156=this.trackers[id];
		if(_156)
		{
			for(type in _156.effects)
			{
				_156.removeEffect(type);
			}
			delete this.trackers[id];
		}
	},
	cancelEffect:function(id,type)
	{
		var _157=this.trackers[id];
		if(!_157)
		{
			return;
		}
		var _158=_157.getEffect(type);
		if(!_158)
		{
			return;
		}
		this.removeEffect(_158);
		if(_158.onAbortFn)
		{
			_158.onAbortFn(_158.onAbortParams);
		}
		if(_158.subAbortFn)
		{
			_158.subAbortFn();
		}
	},
	removeEffect:function(_159)
	{
		var id=_159.getId();
		var _160=this.trackers[id];
		_160.removeEffect(_159.getType());
		if(_160.length==0)
		{
			delete this.trackers[id];
		}
	}
};
function EffectTracker()
{
	this.length=0;
	this.effects={};
}
EffectTracker.prototype=
{
	getEffect:function(type)
	{
		return this.effects[type];
	},
	addEffect:function(_161)
	{
		this.length++;
		Effects.cancelEffect(_161.getId(),_161.getType());
		this.effects[_161.getType()]=_161;
		_161.doStep();
	},
	removeEffect:function(type)
	{
		this.effects[type].clearTimeout();
		delete this.effects[type];
		this.length--;
	}
};
function Effect()
{
}
Effect.prototype=
{
	getId:function()
	{
		return this.id;
	},
	getEl:function()
	{
		return $(this.id);
	},
	getType:function()
	{
		return this.type;
	},stdInit:function(_162)
	{
		this.onFinishFn=_162.onFinishFn;
		this.onFinishParams=_162.onFinishParams;
		this.onStepFn=_162.onStepFn;
		this.onStepParams=_162.onStepParams;
		this.onAbortFn=_162.onAbortFn;
		this.onAbortParams=_162.onAbortParams;
		this.value=this.startValue;
		this.dur=_162.duration||Effects.DUR_DEFAULT;
		this.interval=1000/(_162.fps||Effects.FPS_DEFAULT);
		this.increment=(this.finalValue-this.startValue)/(this.dur/this.interval);
	},
	clearTimeout:function()
	{
		window.clearTimeout(this.timeoutId);
	},
	getStartValue:function()
	{
		return this.startValue;
	},
	getFinalValue:function()
	{
		return this.finalValue;
	},
	getValue:function()
	{
		return this.value;
	},
	setValue:null,
	getIncrement:function()
	{
		return this.increment;
	},
	isDone:function()
	{
		return Effects.getEffect(this.getId(),this.getType())!=this;
	},
	doStep:function()
	{
		if(!this.getEl())
		{
			Effects.clear(this.getId());
			return;
		}
		if(this.onStepFn)
		{
			this.onStepFn(this.onStepParams);
		}
		if(this.setValue(this.getValue()+this.getIncrement()))
		{
			this.finish(false);
		}else{
			var _163=this;
			this.timeoutId=window.setTimeout
			(
				function()
				{
					if(_163&&!_163.isDone())
					{
						_163.doStep();
					}
				},this.interval
			);
		}
	},
	finish:function(_164)
	{
		this.endAt(_164?this.getFinalValue():null);
		if(this.subFinishFn)
		{
			this.subFinishFn();
		}
		if(this.onFinishFn)
		{
			this.onFinishFn(this.onFinishParams);
		}
	},
	undo:function(_165)
	{
		this.endAt(_165?this.getStartValue():null);
	},
	endAt:function(val)
	{
		this.clearTimeout();
		if(val)
		{
			this.setValue(val);
		}
		Effects.removeEffect(this);
	}
};
function FadeEffect(id,_167)
{
	this.id=id;
	this.type=Effects.types.FADE;
	this.startValue=Math.max(Math.min(_167.startOpacity,100),0);
	this.finalValue=Math.max(Math.min(_167.endOpacity,100),0);
	this.stdInit(_167);
}
FadeEffect.prototype=new Effect();
FadeEffect.prototype.setValue=function(n)
{
	var _169=Math.min(this.startValue,this.finalValue);
	var _170=Math.max(this.startValue,this.finalValue);
	n=Math.max(Math.min(n,_170),_169);
	$$(this.getEl()).setOpacity(this.value=Math.round(n));
	return n==this.finalValue;
};
function SizeEffect(id,_171)
{
	this.id=id;
	var _172=_171.direction=="x";
	this.type=Effects.types[_172?"SIZE_X":"SIZE_Y"];
	this.direction=_171.direction;
	this.finalSize=_171.finalSize;
	var el=this.getEl();
	this.origOverflow=$$(el).getComputedStyle("overflow")||"visible";
	el.style.overflow="hidden";
	this.minSize=_171.minSize?parseInt(_171.minSize):0;
	var _174=_171.fullSize||$$(el)[_172?"getWidth":"getHeight"]();
	this.fullSize=parseInt(_174);
	this.startValue=_171.grow?this.minSize:this.fullSize;
	this.finalValue=_171.grow?this.fullSize:this.minSize;
	this.grow=_171.grow;
	this.stdInit(_171);
	this.increment=_171.rate;
}
SizeEffect.prototype=new Effect();
SizeEffect.prototype.getIncrement=function()
{
	if(this.increment<1)
	{
		var val=(this.getFinalValue()-this.getValue())*this.increment;
		return val>0?Math.max(val,1):Math.min(val,-1);
	}else{
		return this.increment*(this.positive?1:-1);
	}
};
SizeEffect.prototype.setValue=function(n)
{
	this.value=Math.max(Math.min(n,this.fullSize),this.minSize);
	n=Math.round(this.value);
	var done=this.grow?n>=this.finalValue:n<=this.finalValue;
	n=(done&&(this.finalSize||this.finalSize===0))?this.finalSize:n+"px";
	this.getEl().style[this.direction=="x"?"width":"height"]=n;
	return done;
};
SizeEffect.prototype.subFinishFn=function()
{
	this.getEl().style.overflow=this.origOverflow;
};
SizeEffect.prototype.subAbortFn=function()
{
	this.subFinishFn();
};
function MoveEffect(id,_176)
{
	this.id=id;
	this.startValue=_176.startPosition;
	this.finalValue=_176.endPosition;
	this.side=_176.side;
	this.type=(_176.side=="top"||_176.side=="bottom")?Effects.types.MOVE_Y:Effects.types.MOVE_X;
	this.stdInit(_176);
	this.increment=_176.rate;
	this.minIncrement=_176.minRate||1;
	this.positive=this.finalValue>this.startValue;
}
MoveEffect.prototype=new Effect();
MoveEffect.prototype.getIncrement=function()
{
	if(Math.abs(this.increment)<1)
	{
		var val=(this.getFinalValue()-this.getValue())*this.increment;
		return this.positive?Math.max(val,this.minIncrement):Math.min(val,-this.minIncrement);
	}else{
		return this.increment*(this.positive?1:-1);
	}
};
MoveEffect.prototype.setValue=function(n)
{
	var _177=this.positive?this.finalValue:this.startValue;
	var _178=this.positive?this.startValue:this.finalValue;
	this.value=Math.max(Math.min(n,_177),_178);
	n=Math.ceil(n);
	this.getEl().style[this.side]=n;
	if(this.positive)
	{
		return n>=this.finalValue;
	}else{
		return n<=this.finalValue;
	}
};
