var vcms_thumbnailProc={
	scrollbarwidth: 16,
	opacitystring: 'filter:progid:DXImageTransform.Microsoft.alpha(opacity=10); -moz-opacity: 0.1; opacity: 0.1',
	targetlinks:[],

	create_vcms_thumbnailPanel:function(){
		document.write('<div id="vcms_thumbnailPanel"><div id="vcms_thumbnailIMG"></div><div class="vcms_thumbfooter"><input type="button" value="CLOSE" class="vcms_thumbnailX" onclick="vcms_thumbnailProc.closePanel()" /></div></div>');
		document.write('<div id="vcms_thumbnailLoading">Now loading...</div>');
		this.vcms_thumbnailPanel   = document.getElementById("vcms_thumbnailPanel");
		this.vcms_thumbnailIMG     = document.getElementById("vcms_thumbnailIMG");
		this.vcms_thumbnailLoading = document.getElementById("vcms_thumbnailLoading");
		this.standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body;
	},

	centeringObj:function(obj){
		var isIE = document.all && !window.opera;
		var scroll_top  = (isIE) ? this.standardbody.scrollTop  : window.pageYOffset;
		var scroll_left = (isIE) ? this.standardbody.scrollLeft : window.pageXOffset;
		var docwidth  = (isIE) ? this.standardbody.clientWidth  : window.innerWidth-this.scrollbarwidth;
		var docheight = (isIE) ? this.standardbody.clientHeight : window.innerHeight;
		var docheightcomplete = (this.standardbody.offsetHeight>this.standardbody.scrollHeight) ? this.standardbody.offsetHeight : this.standardbody.scrollHeight;
		var objwidth  = obj.offsetWidth;
		var objheight = obj.offsetHeight;
		var topposition = (docheight>objheight) ? scroll_top+docheight/2-objheight/2+"px" : scroll_top+10+"px";
		obj.style.left = docwidth/2-objwidth/2+"px";
		obj.style.top  = Math.floor(parseInt(topposition))+"px";
		obj.style.visibility = "visible";
	},

	show_vcms_thumbnailPanel:function(){
		this.centeringObj(this.vcms_thumbnailPanel);
		this.currentopacity = 0.1;
		this.opacitytimer = setInterval("vcms_thumbnailProc.opacityProc()", 12);
	},

	vcms_loading:function(link){
		if(this.vcms_thumbnailPanel.style.visibility=="visible")	this.closePanel();
		var imageHTML='<img src="'+link.getAttribute("href")+'" style="'+this.opacitystring+'" />';
		if(link.getAttribute("title")){
			var relA = link.getAttribute("rel").split(",");
			imageHTML += '<div class="vcms_thumbtitle" style="width:'+relA[1]+'px;">'+link.getAttribute("title")+'</div>';
//		imageHTML += '<div class="vcms_thumbtitle">'+link.getAttribute("title")+'</div>';
		}
		this.centeringObj(this.vcms_thumbnailLoading);
		this.vcms_thumbnailIMG.innerHTML = imageHTML;
		this.featureImage=this.vcms_thumbnailIMG.getElementsByTagName("img")[0];
		this.featureImage.onload=function(){
			vcms_thumbnailProc.vcms_thumbnailLoading.style.visibility="hidden";
			vcms_thumbnailProc.show_vcms_thumbnailPanel();
		}
		if(document.all && !window.createPopup)	this.featureImage.src=link.getAttribute("href");
		this.featureImage.onerror=function(){
			vcms_thumbnailProc.vcms_thumbnailLoading.style.visibility="hidden";
		}
	},

	setimgopacity:function(value){
		var targetobject=this.featureImage
		// IE
		if(targetobject.filters && targetobject.filters[0]){
			// IE6
			if(typeof targetobject.filters[0].opacity=="number")	targetobject.filters[0].opacity=value*100;
			//IE 5.5
			else	targetobject.style.filter="alpha(opacity="+value*100+")";
		}
		// Old Mozilla
		else if(typeof targetobject.style.MozOpacity!="undefined")	targetobject.style.MozOpacity=value;
		// Standard
		else if (typeof targetobject.style.opacity!="undefined")	targetobject.style.opacity=value;
		// Non of the above, stop opacity animation
		else	this.vcms_stopAnim();
	},

	opacityProc:function(){
		this.setimgopacity(this.currentopacity);
		this.currentopacity+=0.1;
		if(this.currentopacity>1)	this.vcms_stopAnim();
	},

	vcms_stopAnim:function(){
		if(typeof this.opacitytimer!="undefined")	clearInterval(this.opacitytimer);
	},

	closePanel:function(){
		this.vcms_stopAnim();
		this.vcms_thumbnailPanel.style.visibility="hidden";
		this.vcms_thumbnailIMG.innerHTML="";
		this.vcms_thumbnailPanel.style.left="-3000px";
		this.vcms_thumbnailPanel.style.top="-3000px";
	},

	cleanup:function(){
		this.vcms_thumbnailLoading=null;
		if(this.featureImage) this.featureImage.onload=null;
		this.featureImage=null;
		this.vcms_thumbnailIMG=null;
		for(var i=0; i<this.targetlinks.length; i++)	this.targetlinks[i].onclick=null;
		this.vcms_thumbnailPanel=null;
	},

	dotask:function(target, functionref, tasktype){
		var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
		if(target.addEventListener)	target.addEventListener(tasktype, functionref, false);
		else if(target.attachEvent)	target.attachEvent(tasktype, functionref);
	},

	vcms_init:function(){
		var thumbnailA = document.getElementsByTagName("a");
		for(var i=0; i<thumbnailA.length; i++){
//		if(thumbnailA[i].getAttribute("rel") && thumbnailA[i].getAttribute("rel")=="vcms_thumbnail"){
			if(thumbnailA[i].getAttribute("rel") && thumbnailA[i].getAttribute("rel").match(/^vcms_thumbnail/)){
				thumbnailA[i].onclick=function(){
					vcms_thumbnailProc.vcms_stopAnim();
					vcms_thumbnailProc.vcms_loading(this);
					return false;
				}
//				this.targetlinks[this.targetlinks.length]=thumbnailA[i];
					this.targetlinks.push(thumbnailA[i]);
			}
		}
		this.dotask(window, function(){if (vcms_thumbnailProc.vcms_thumbnailPanel.style.visibility=="visible") vcms_thumbnailProc.centeringObj(vcms_thumbnailProc.vcms_thumbnailPanel)}, "resize");
	}
}

vcms_thumbnailProc.create_vcms_thumbnailPanel();
vcms_thumbnailProc.dotask(window, function(){vcms_thumbnailProc.vcms_init()}, "load");
vcms_thumbnailProc.dotask(window, function(){vcms_thumbnailProc.cleanup()}, "unload");

var vcms_thisobj0;
var vcms_thisobj;
var vcms_offsetX;
var vcms_offsetY;

onload=function () {
	if(document.all){
		vcms_thisobj0 = document.all.vcms_thumbnailPanel
		document.all.vcms_thumbnailIMG.onmousedown = onMouseDown;
	}
	else if(document.getElementById){
		vcms_thisobj0 = document.getElementById("vcms_thumbnailPanel");
		document.getElementById("vcms_thumbnailIMG").onmousedown = onMouseDown;
	}
   document.onmousemove = onMouseMove;
   document.onmouseup = onMouseUp;
}
function onMouseDown(e) {
   vcms_thisobj = vcms_thisobj0;
   if (document.all) {
      vcms_offsetX = event.offsetX + 2;
      vcms_offsetY = event.offsetY + 2;
   } else if (document.getElementsByTagName) {
      vcms_offsetX = e.pageX - parseInt(vcms_thisobj.style.left);
      vcms_offsetY = e.pageY - parseInt(vcms_thisobj.style.top);
   }
   return false;
}
function onMouseMove(e) {
	if(!vcms_thisobj){
		return true;
	}
	if(document.all){
		var scrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft;
		var scrollTop  = document.body.scrollTop  || document.documentElement.scrollTop;
		vcms_thisobj.style.pixelLeft = event.clientX - vcms_offsetX + scrollLeft;
		vcms_thisobj.style.pixelTop  = event.clientY - vcms_offsetY + scrollTop;
	}else if(document.getElementsByTagName){
		vcms_thisobj.style.left = (e.pageX - vcms_offsetX)+"px";
		vcms_thisobj.style.top  = (e.pageY - vcms_offsetY)+"px";
	}
	return false;
}
function onMouseUp(e){
	vcms_thisobj = null;
}


