function $(element){
	var e=("string"==typeof(element))?document.getElementById(element):element;
	if(e&&e.tagName&&e.tagName.toLowerCase()=="form"){
		for(var m in Form.Methods){
			e[m]=Form.Methods[m];
		}
	};
	return e;
};
var $A=function(iterable){
	if(!iterable)return[];
	if(iterable.toArray){
		return iterable.toArray();
	}
	else{
		var results=[];
		for(var i=0,length=iterable.length;i<length;i++)results.push(iterable[i]);
		return results;
	}
};
Function.prototype.bind=function(){
	var __method=this,args=$A(arguments),object=args.shift();
	return function(){
		return __method.apply(object,args.concat($A(arguments)));
	}
};
function Browser(){
	var ua,s,i;
	this.isIE=false;
	this.isIE7=false;
	this.isIE8=false;
	this.isOP=false;
	this.isNS=false;
	this.version=null;
	ua=navigator.userAgent;
	s="Opera";
	if((i=ua.indexOf(s))>=0){
		this.isOP=true;
		this.version=parseFloat(ua.substr(i+s.length));
		return;
	};
	s="Netscape6/";
	if((i=ua.indexOf(s))>=0){
		this.isNS=true;
		this.version=parseFloat(ua.substr(i+s.length));
		return;
	};
	s="Gecko";
	if((i=ua.indexOf(s))>=0){
		this.isNS=true;
		this.version=6.1;
		return;
	};
	s="MSIE";
	if((i=ua.indexOf(s))){
		this.version=parseFloat(ua.substr(i+s.length));
		if(this.version==8){
			this.isIE8=true;
		}
		else if(this.version==7){
			this.isIE7=true;
		};
		this.isIE=true;
		return;
	}
};
var browser=new Browser();
function Marquee(elm,width,height,spd,type,wspace){
	if(arguments.length<1){
		alert(I18n.marqueeIdEmpty);
		return false;
	};
	var element=elm;
	var scrollwidth=width?width:800;
	var scrollheight=height?height:200;
	scrollwidth=parseInt(scrollwidth);
	scrollheight=parseInt(scrollheight);
	var scrollwspace=wspace?wspace:5;
	var scrolltype=type?type:3;
	var speed=spd?spd:30;
	var scrolltext=new Array();
	var obj1=document.getElementById(element);
	if(!obj1){
		alert(I18n.marqueeIllegalParameter);
		return false;
	};
	obj1.style.height=scrollheight+'px';
	obj1.style.width=scrollwidth+'px';
	obj1.style.border='0px solid #000';
	var obj2=document.createElement("div");
	obj2.id=element+'obj2';
	var obj3=document.createElement("div");
	obj3.id=element+"obj3";
	obj2.style.border='0px solid #000';
	var objtab=document.createElement('table');
	var objtr=document.createElement('tr');
	var objtd=document.createElement('td');
	objtd.innerHTML=obj1.innerHTML;
	obj1.innerHTML="";
	objtab.style.display="inline";
	objtab.cellpadding="0";
	objtab.cellspacing="0";
	objtab.id=element+'tab';
	objtab.style.border="0px solid #FF0000";
	objtd.style.whiteSpace="nowrap";
	objtr.appendChild(objtd);
	objtab.appendChild(objtr);
	obj2.innerHTML=objtab.outerHTML;
	obj1.appendChild(obj2);
	obj1.appendChild(obj3);
	obj3.style.width=obj2.style.width=scrollwidth+'px';
	if(scrolltype==1||scrolltype==2){
		if(obj2.offsetHeight<scrollheight){
			var tabheight=scrollheight-obj2.offsetHeight;
			var tabmarginleft=(obj2.offsetWidth>scrollwidth)?scrollwidth:(obj2.offsetWidth+scrollwidth)/2;
			if(tabheight<0){
				tabheight=0;
			}
			else{
				obj2.innerHTML+="<table border=0 style='border:0px solid #ff0000;margin-left:"+tabmarginleft+"px;' cellpadding='0' cellspacing='0'><tr><td style='height:"+tabheight+"px;' nowrap></td></tr></table>";
			}
		}
	};
	document.write("<style type=\"text/css\">#"+element+"{overflow:hidden;width:"+scrollwidth+"px;}; #"+element+" #"+obj2.id+",#"+element+" #"+obj3.id+"{padding:0px !important;padding:0px;margin:0px !important;margin:0px;float:none;}; #"+obj2.id+" img,#"+obj3.id+" img{margin-right:"+scrollwspace+"px;};</style>");
	if(scrolltype==3||scrolltype==4){
		obj1.style.whiteSpace="nowrap";
		obj2.style.display="inline";
		var tabwidth=scrollwidth-obj2.offsetWidth;
		var tabmargintop=(obj2.offsetHeight>scrollheight)?scrollheight:(obj2.offsetHeight+scrollheight)/2;
		if(tabwidth<0){
			tabwidth=0;
		}
		else{
			obj2.innerHTML+="<table border=0 style='display:inline;margin-top:"+tabmargintop+"px;' cellpadding='0' cellspacing='0'><tr><td style='width:"+tabwidth+"px;' nowrap></td></tr></table>";
		}
	};
	obj3.innerHTML=obj2.innerHTML;
	Marquee.prototype.marqueeScrollTop=function(element,scrolltype,scrollwidth,scrollheight,speed){
		var obj1=document.getElementById(element);
		var obj2=document.getElementById(element+"obj2");
		var obj3=document.getElementById(element+"obj3");
		if(obj2.offsetHeight>scrollheight)if(obj3.offsetTop-obj1.scrollTop<=0){
			obj1.scrollTop-=obj3.offsetTop;
		}
		else{
			var oldScrollTop=obj1.scrollTop;
			obj1.scrollTop++;
			if(oldScrollTop==obj1.scrollTop){
				obj1.scrollTop=0;
			}
		}
		else{
			if(scrollheight-obj1.scrollTop<=0){
				obj1.scrollTop-=scrollheight;
			}
			else{
				obj1.scrollTop++;
			}
		}
	};
	Marquee.prototype.marqueeScrollDown=function(element,scrolltype,scrollwidth,scrollheight,speed){
		var obj1=document.getElementById(element);
		var obj2=document.getElementById(element+"obj2");
		var obj3=document.getElementById(element+"obj3");
		if(document.all){
			if(obj2.offsetTop-obj1.scrollTop>=0){
				obj1.scrollTop+=obj3.offsetHeight;
			}
			else{
				obj1.scrollTop--;
			}
		}
		else{
			if(obj2.offsetTop-obj1.scrollTop-obj2.offsetTop>=0){
				obj1.scrollTop+=obj3.offsetHeight;
			}
			else{
				obj1.scrollTop--;
			}
		}
	};
	Marquee.prototype.marqueeScrollLeft=function(element,scrolltype,scrollwidth,scrollheight,speed){
		var obj1=document.getElementById(element);
		var obj2=document.getElementById(element+"obj2");
		var obj3=document.getElementById(element+"obj3");
		if(obj3.offsetWidth-obj1.scrollLeft<=0){
			obj1.scrollLeft-=obj2.offsetWidth;
		}
		else{
			obj1.scrollLeft++;
		}
	};
	Marquee.prototype.marqueeScrollRight=function(element,scrolltype,scrollwidth,scrollheight,speed){
		var obj1=document.getElementById(element);
		var obj2=document.getElementById(element+"obj2");
		var obj3=document.getElementById(element+"obj3");
		if(obj1.scrollLeft<=0){
			obj1.scrollLeft+=obj3.offsetWidth;
		}
		else{
			obj1.scrollLeft--;
		}
	};
	var count;
	Marquee.prototype.marqueeStart=function(element,scrolltype,scrollwidth,scrollheight,speed){
		switch(scrolltype){
			case 1:if(Marquee.prototype.scrollTopOrDown(element,scrolltype,scrollwidth,scrollheight,speed)){
				Marquee.prototype.clearInterval(element);
				count=window.setInterval(Marquee.prototype.marqueeScrollTop.bind(this,element,scrolltype,scrollwidth,scrollheight,speed),speed);
				MarqueeInterval[element]=count;
			};
			break;
			case 2:if(Marquee.prototype.scrollTopOrDown(element,scrolltype,scrollwidth,scrollheight,speed)){
				Marquee.prototype.clearInterval(element);
				count=window.setInterval(Marquee.prototype.marqueeScrollDown.bind(this,element,scrolltype,scrollwidth,scrollheight,speed),speed);
				MarqueeInterval[element]=count;
			};
			break;
			case 3:Marquee.prototype.scrollLeftOrRight(element,scrolltype,scrollwidth,scrollheight,speed);
			Marquee.prototype.clearInterval(element);
			count=window.setInterval(Marquee.prototype.marqueeScrollLeft.bind(this,element,scrolltype,scrollwidth,scrollheight,speed),speed);
			MarqueeInterval[element]=count;
			break;
			case 4:Marquee.prototype.scrollLeftOrRight(element,scrolltype,scrollwidth,scrollheight,speed);
			Marquee.prototype.clearInterval(element);
			count=window.setInterval(Marquee.prototype.marqueeScrollRight.bind(this,element,scrolltype,scrollwidth,scrollheight,speed),speed);
			MarqueeInterval[element]=count;
			break;
		}
	};
	Marquee.prototype.scrollLeftOrRight=function(element,scrolltype,scrollwidth,scrollheight,speed){
		var obj3=document.getElementById(element+"obj3");
		obj3.style.display="inline";
	};
	Marquee.prototype.scrollTopOrDown=function(element,scrolltype,scrollwidth,scrollheight,speed){
		var obj2=document.getElementById(element+"obj2");
		if(scrollwidth-obj2.offsetWidth<0){
			return true;
		}
		else{
			obj2.style.display="block";
			return true;
		}
	};
	Marquee.prototype.clearInterval=function(element){
		var interval;
		for(var key in MarqueeInterval){
			if(key==element){
				interval=MarqueeInterval[key];
				break;
			}
		};
		window.clearInterval(interval);
	};
	obj1.onmouseover=function(){
		Marquee.prototype.clearInterval(element);
	};
	obj1.onmouseout=function(){
		Marquee.prototype.marqueeStart(element,scrolltype,scrollwidth,scrollheight,speed);
	};
	Marquee.prototype.marqueeStart(element,scrolltype,scrollwidth,scrollheight,speed);
};
var MarqueeInterval=new Object();
if(typeof(HTMLElement)!="undefined"&&!window.opera){
	HTMLElement.prototype.__defineGetter__("outerHTML",function(){
		var a=this.attributes,str="<"+this.tagName,i=0;
		for(;i<a.length;i++)if(a[i].specified)str+=" "+a[i].name+'="'+a[i].value+'"';
		if(!this.canHaveChildren)return str+" />";
		return str+">"+this.innerHTML+"</"+this.tagName+">";
	}
	);
	HTMLElement.prototype.__defineSetter__("outerHTML",function(s){
		var r=this.ownerDocument.createRange();
		r.setStartBefore(this);
		var df=r.createContextualFragment(s);
		this.parentNode.replaceChild(df,this);
		return s;
	}
	);
	HTMLElement.prototype.__defineGetter__("canHaveChildren",function(){
		return !/^(area|base|basefont|col|frame|hr|img|br|input|isindex|link|meta|param)$/.test(this.tagName.toLowerCase());
	}
	);
};
function ImageViewer(obj,dir){
	var IMGDIR=(dir!=null)?dir:"images";
	var zoomobj=new Array();
	var zoomimglayer_bg=$('zoomimglayer_bg');
	var zoomimglayer=$('zoomimglayer');
	this.zoom=function(obj){
		var append_parent=$('append_parent');
		if(!append_parent){
			append_parent=document.createElement('div');
			append_parent.id='append_parent';
			document.body.appendChild(append_parent);
		};
		zimg=obj.src;
		if(!zoomimglayer_bg){
			zoomimglayer_bg=document.createElement('div');
			zoomimglayer_bg.id='zoomimglayer_bg';
			zoomimglayer_bg.style.position='absolute';
			zoomimglayer_bg.style.top='0px';
			zoomimglayer_bg.style.left='0px';
			zoomimglayer_bg.style.width=document.documentElement.clientWidth>document.body.clientWidth?document.documentElement.clientWidth+'px':document.body.clientWidth+'px';
			zoomimglayer_bg.style.height=document.body.scrollHeight+'px';
			zoomimglayer_bg.style.backgroundColor='#000';
			zoomimglayer_bg.style.display='none';
			zoomimglayer_bg.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity=80,finishOpacity=100,style=0)';
			zoomimglayer_bg.style.opacity=0.8;
			append_parent.appendChild(zoomimglayer_bg);
			zoomimglayer=document.createElement('div');
			zoomimglayer.id='zoomimglayer';
			zoomimglayer.style.position='absolute';
			zoomimglayer.style.padding=0;
			append_parent.appendChild(zoomimglayer);
		};
		zoomobj['srcinfo']=this.fetchOffset(obj);
		zoomobj['srcobj']=obj;
		zoomobj['zimg']=zimg;
		zoomimglayer.style.display='';
		zoomimglayer.style.left=zoomobj['srcinfo']['left']+'px';
		zoomimglayer.style.top=zoomobj['srcinfo']['top']+'px';
		zoomimglayer.style.width=zoomobj['srcobj'].width+'px';
		zoomimglayer.style.height=zoomobj['srcobj'].height+'px';
		zoomimglayer.style.border="0px solid #FF0000";
		zoomimglayer.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity=40,finishOpacity=100,style=0)';
		zoomimglayer.style.opacity=0.4;
		zoomimglayer.style.zIndex=999;
		zoomimglayer.innerHTML='<table width="100%" height="100%" cellspacing="0" cellpadding="0" style="border:1px solid #FF0000;"><tr><td align="center" valign="middle"><img src="'+IMGDIR+'/loading.gif"></td></tr></table><div style="position:absolute;top:-100000px;visibility:hidden"><img src="'+zoomobj['zimg']+'" onload="javascript:ImageViewer.prototype.zoomimgresize(this);"></div>';
	};
	this.fetchOffset=function(obj){
		var left_offset=obj.offsetLeft;
		var top_offset=obj.offsetTop;
		while((obj=obj.offsetParent)!=null){
			left_offset+=obj.offsetLeft;
			top_offset+=obj.offsetTop;
		};
		return{
			'left':left_offset,'top':top_offset};
	};
	var zoomdragstart=new Array();
	var zoomclick=0;
	ImageViewer.prototype.zoomdrag=function(e,op){
		if(op==1){
			zoomclick=1;
			zoomdragstart=browser.isIE?[event.clientX,event.clientY]:[e.clientX,e.clientY];
			zoomdragstart[2]=parseInt(zoomimglayer.style.left);
			zoomdragstart[3]=parseInt(zoomimglayer.style.top);
			ImageViewer.prototype.doane(e);
		}
		else if(op==2&&zoomdragstart[0]){
			zoomclick=0;
			var zoomdragnow=browser.isIE?[event.clientX,event.clientY]:[e.clientX,e.clientY];
			zoomimglayer.style.left=(zoomdragstart[2]+zoomdragnow[0]-zoomdragstart[0])+'px';
			zoomimglayer.style.top=(zoomdragstart[3]+zoomdragnow[1]-zoomdragstart[1])+'px';
			ImageViewer.prototype.doane(e);
		}
		else if(op==3){
			if(zoomclick){
				ImageViewer.prototype.zoomclose();
			};
			zoomdragstart=[];
			ImageViewer.prototype.doane(e);
		}
	};
	ImageViewer.prototype.doane=function(event){
		e=event?event:window.event;
		if(browser.isIE){
			e.returnValue=false;
			e.cancelBubble=true;
		}
		else if(e){
			e.stopPropagation();
			e.preventDefault();
		}
	};
	ImageViewer.prototype.setImageDir=function(dir){
		IMGDIR=dir;
	};
	ImageViewer.prototype.zoomST=function(c){
		if(zoomimglayer.style.display==''){
			zoomimglayer.style.left=(parseInt(zoomimglayer.style.left)+zoomobj['x'])+'px';
			zoomimglayer.style.top=(parseInt(zoomimglayer.style.top)+zoomobj['y'])+'px';
			zoomimglayer.style.width=(parseInt(zoomimglayer.style.width)+zoomobj['w'])+'px';
			zoomimglayer.style.height=(parseInt(zoomimglayer.style.height)+zoomobj['h'])+'px';
			var opacity=c*20;
			zoomimglayer.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity='+opacity+',finishOpacity=100,style=0)';
			zoomimglayer.style.opacity=opacity/100;
			c++;
			if(c<=5){
				setTimeout('ImageViewer.prototype.zoomST('+c+')',5);
			}
			else{
				zoomimglayer.style.filter='';
				zoomimglayer_bg.style.display='';
				zoomimglayer.innerHTML='<table cellspacing="0" cellpadding="2"><tr><td style="text-align: right;color:white;" nowrap>'+I18n.imageViewerZoomTip+'<a href="'+zoomobj['zimg']+'" target="_blank"><img src="'+IMGDIR+'/newwindow.gif" border="0" style="vertical-align: middle" title="'+I18n.imageViewerOpenTip+'" /></a> <a href="javascript:return false;" onclick="ImageViewer.prototype.zoomimgadjust(event, 1)"><img src="'+IMGDIR+'/resize.gif" border="0" style="vertical-align: middle" title="'+I18n.imageViewerNormalSizeTip+'" /></a> <a href="javascript:ImageViewer.prototype.zoomclose();"><img style="vertical-align: middle" src="'+IMGDIR+'/close.gif" title="'+I18n.imageViewerCloseTip+'" /></a>&nbsp;</td></tr><tr><td align="center" id="zoomimgbox"><img id="zoomimg"  style="cursor: move; margin: 5px;" src="'+zoomobj['zimg']+'" width="'+zoomimglayer.style.width+'" height="'+zoomimglayer.style.height+'"></td></tr></table>';
				zoomimglayer.style.overflow='visible';
				zoomimglayer.style.width=zoomimglayer.style.height='auto';
				if(browser.isIE){
					zoomimglayer.onmousewheel=ImageViewer.prototype.zoomimgadjust;
					$('zoomimgbox').onmousedown=ImageViewer.prototype.zoomdrag.bind(event,1);
					$('zoomimgbox').onmousemove=ImageViewer.prototype.zoomdrag.bind(event,2);
					$('zoomimgbox').onmouseup=ImageViewer.prototype.zoomdrag.bind(event,3);
				}
				else{
					zoomimglayer.addEventListener("DOMMouseScroll",ImageViewer.prototype.zoomimgadjust,false);
				}
			}
		}
	};
	ImageViewer.prototype.zoomimgresize=function(obj){
		zoomobj['zimginfo']=[obj.width,obj.height];
		var r=obj.width/obj.height;
		var w=document.documentElement.clientWidth?document.documentElement.clientWidth:document.body.clientWidth;
		w=w*0.95;
		w=obj.width>w?w:obj.width;
		var h=w/r;
		var clientHeight=document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight;
		var scrollTop=document.body.scrollTop?document.body.scrollTop:document.documentElement.scrollTop;
		if(h>clientHeight){
			h=clientHeight;
			w=h*r;
		};
		var l=((document.documentElement.clientWidth?document.documentElement.clientWidth:document.body.clientWidth)-w)/2;
		var t=h<clientHeight?(clientHeight-h)/2:0;
		t+=+scrollTop;
		zoomobj['x']=(l-zoomobj['srcinfo']['left'])/5;
		zoomobj['y']=(t-zoomobj['srcinfo']['top'])/5;
		zoomobj['w']=(w-zoomobj['srcobj'].width)/5;
		zoomobj['h']=(h-zoomobj['srcobj'].height)/5;
		zoomimglayer.style.filter='';
		zoomimglayer.innerHTML='';
		setTimeout('ImageViewer.prototype.zoomST(1)',5);
	};
	ImageViewer.prototype.zoomimgadjust=function(e,a){
		var zoomimg=$('zoomimg');
		if(!a){
			if(!e)e=window.event;
			if(e.altKey||e.shiftKey||e.ctrlKey)return;
			var l=parseInt(zoomimglayer.style.left);
			var t=parseInt(zoomimglayer.style.top);
			var img=GetImageSize(zoomobj['srcobj']);
			var scale=img.width/img.height;
			if(e.wheelDelta<=0||e.detail>0){
				if(zoomimg.width<=100||zoomimg.height<=100){
					ImageViewer.prototype.doane(e);
					return;
				};
				zoomimg.width-=zoomobj['zimginfo'][0]/10;
				zoomimg.height-=(zoomobj['zimginfo'][1]/10)*scale;
			}
			else{
				zoomimg.width+=zoomobj['zimginfo'][0]/10;
				zoomimg.height+=(zoomobj['zimginfo'][1]/10)*scale;
			}
		}
		else{
			zoomimg.width=zoomobj['zimginfo'][0];
			zoomimg.height=zoomobj['zimginfo'][1];
		};
		var clientHeight=document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.clientHeight;
		var scrollTop=document.body.scrollTop?document.body.scrollTop:document.documentElement.scrollTop;
		var clientWidth=document.documentElement.clientWidth?document.documentElement.clientWidth:document.body.clientWidth;
		var l=(clientWidth-zoomimg.clientWidth)/2;
		l=l>0?l:0;
		var t=(clientHeight-zoomimg.clientHeight)/2+scrollTop;
		t=t>0?t:0;
		zoomimglayer.style.left=l+'px';
		zoomimglayer.style.top=t+'px';
		zoomimglayer_bg.style.height=t+zoomimglayer.clientHeight>zoomimglayer_bg.clientHeight?(t+zoomimglayer.clientHeight)+'px':zoomimglayer_bg.style.height;
		ImageViewer.prototype.doane(e);
	};
	ImageViewer.prototype.zoomclose=function(){
		zoomimglayer.innerHTML='';
		zoomimglayer.style.display='none';
		zoomimglayer_bg.style.display='none';
	};
	this.zoom(obj);
};
function imgZoomer(imgObj,canvas_width,canvas_height){
	var obj=imgObj;
	var src_width=GetImageWidth(obj);
	var src_height=GetImageHeight(obj);
	var widthScale=src_width/canvas_width;
	var heightScale=src_height/canvas_height;
	if(widthScale>=1||heightScale>=1){
		if(widthScale<heightScale){
			obj.width=src_width/heightScale;
			obj.height=canvas_height;
		}
		else{
			obj.width=canvas_width;
			obj.height=src_height/widthScale;
		}
	}
	else{
		obj.width=src_width;
		obj.height=src_height;
	}
};
var OriginImage=new Image();
function GetImageWidth(oImage){
	if(OriginImage.src!=oImage.src)OriginImage.src=oImage.src;
	return OriginImage.width;
};
function GetImageHeight(oImage){
	if(OriginImage.src!=oImage.src)OriginImage.src=oImage.src;
	return OriginImage.height;
};

