/**
*	swffit v2.3 (06/15/2009) <http://swffit.millermedeiros.com/>
*	Copyright (c) 2009 Miller Medeiros <http://www.millermedeiros.com/>
*	This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swffit=function(){
	var win=window,
	doc=document,
	html=doc.getElementsByTagName("html")[0],
	AGENT=navigator.userAgent.toLowerCase(),
	WK=/webkit/.test(AGENT),
	IE=/msie/.test(AGENT)&&!win.opera,
	FF=/firefox/.test(AGENT)&&!win.opera,
	UNDEF="undefined",
	_ft,
	_re,
	_t,
	_mw,
	_mh,
	_xw,
	_xh,
	_hc,
	_vc,
	_ow,
	_oh;
	swfobject.createCSS("object","position:absolute");
	function fit(t,mw,mh,xw,xh,hc,vc){
		var mw=(mw)?mw:_ow,
		mh=(mh)?mh:_oh,
		xw=(xw)?xw:null,
		xh=(xh)?xh:null,
		hc=(hc||hc==null),
		vc=(vc||vc==null);
		configure({
				  target:t,
				  minWid:mw,
				  minHei:mh,
				  maxWid:xw,
				  maxHei:xh,
				  hCenter:hc,
				  vCenter:vc
				  })}
		function configure(o){
			var evalNum=function(v,p){return(typeof o[p]!=UNDEF)?o[p]:v};
			_mw=evalNum(_mw,"minWid");
			_mh=evalNum(_mh,"minHei");
			_xw=evalNum(_xw,"maxWid");
			_xh=evalNum(_xh,"maxHei");
			var evalBool=function(v,p){
				return(o[p]||(v&&typeof o[p]==UNDEF))
				};
			_hc=evalBool(_hc,"hCenter");
			_vc=evalBool(_vc,"vCenter");
			if(o.target&&(o.target!=_t)){
				_t=o.target;swfobject.addDomLoadEvent(initFit);
				if(IE){
					swfobject.addLoadEvent(initFit)
				}
			}else{
				startFit()
			}
		}
		function initFit(){
			if(!html.style.overflowX){
				controlScroll(0,0)
			}
			if(!html.style.overflowY){
				controlScroll(0,1)
			}
			html.style.height=doc.body.style.height="100%";
			doc.body.style.margin=doc.body.style.padding=0;
			var st="width:100%;height:100%";
			st+=(IE)?"; overflow:hidden":"";
			swfobject.createCSS("#"+_t,st);
			_ft=doc.getElementById(_t);
			_ft=(FF&&/object/.test(_ft.innerHTML))?doc.getElementById(_t).getElementsByTagName("object")[0]:_ft;
			_ow=_ft.width;
			_oh=_ft.height;
			_mw=(_mw)?_mw:_ow;
			_mh=(_mh)?_mh:_oh;startFit()
		}
		function startFit(){
			setSize();
			if(!_re){
				swffit.addResizeEvent(setSize);
				_re=1
			}
		}
		function stopFit(w,h){
			if(_re){
				swffit.removeResizeEvent(setSize);
				_re=0;
				setStyle("top","auto");
				setStyle("left","auto");
				setStyle("marginTop",0);
				setStyle("marginLeft",0);
				var w=(w)?w:"100%",h=(h)?h:"100%";
				setWidth(w);
				setHeight(h);
				forceRedraw()
			}
		}
		function forceRedraw(){
			if(WK){
				html.focus()
			}
		}
		function controlResizeEvent(a,fn){
			var p=(a)?["addEventListener","attachEvent"]:["removeEventListener","detachEvent"];
			if(win[p[0]]){
				win[p[0]]("resize",fn,false)
			}else{
				if(win[p[1]]){
					win[p[1]]("onresize",fn)
				}
			}
		}
		function setWidth(w){
			var v=(isNaN(w))?w:w+"px";
			setStyle("width",v)
		}
		function setHeight(h){
			var v=(isNaN(h))?h:h+"px";
			setStyle("height",v)
		}
		function setStyle(p,v){
			_ft.style[p]=v
		}
		function setSize(){
			var iw=(win.innerWidth)?win.innerWidth:doc.body.clientWidth,
			ih=(win.innerHeight)?win.innerHeight:doc.body.clientHeight;
			iw-=(!IE&&ih<=_mh)?18:0;
			ih-=(!IE&&iw<=_mw)?18:0;
			if(_xw&&iw>=_xw){
				setWidth(_xw);
				setPosition(0,1)
			}
			else{
				if(iw>_mw&&(iw<_xw||!_xw)){
					setWidth("100%")
				}else{
					setWidth(_mw)
				}
				setPosition(0,0)
			}
			if(_xh&&ih>=_xh){
				setHeight(_xh);
				setPosition(1,1)
			}else{
				if(ih>_mh&&(ih<_xh||!_xh)){
					setHeight("100%")
				}else{
					setHeight(_mh)
				}
				setPosition(1,0)
			}
			forceRedraw()
		}
		function setPosition(t,x){
			var p,m;
			if(t){
				p=(x&&_vc)?"50%":"auto";
				m=(x&&_vc)?-(_xh*0.5)+"px":0;
				setStyle("top",p);
				setStyle("marginTop",m)
			}else{
				p=(x&&_hc)?"50%":"auto";
				m=(x&&_hc)?-(_xw*0.5)+"px":0;
				setStyle("left",p);
				setStyle("marginLeft",m)
			}
		}
		function controlScroll(s,v){
			var p=(v)?"overflowY":"overflowX";
			html.style[p]=(s)?"scroll":"auto"
		}
		function getValueOf(p){
			var o={target:_t,minWid:_mw,minHei:_mh,maxWid:_xw,maxHei:_xh,hCenter:_hc,vCenter:_vc};
			return o[p]
		}
		return{
			fit:fit,
			configure:configure,
			startFit:startFit,
			stopFit:stopFit,
			getValueOf:getValueOf,
			addResizeEvent:function(fn){
				controlResizeEvent(1,fn)
			},
			removeResizeEvent:function(fn){
				controlResizeEvent(0,fn)
			},
			showScrollH:function(){
				controlScroll(1,0)
			},
			showScrollV:function(){
				controlScroll(1,1)
			}
		}
	}();
			