﻿var AjaxLoader=Class.create();
AjaxLoader.prototype={
	initialize:function(){
		this.imageUrl="";
		this.locationName="";
		this.elementName="";
	},
	ShowLoader:function(){
		if(this.elementName=="")return;

		var obj=_$(this.elementName);
		var objposition=Position.cumulativeOffset(obj);
		var pos=this.CenterOffset(obj);

		switch(this.locationName){
			case 'top_left':
				new Insertion.Top(this.elementName, "<img style=\"position:absolute;\" id=\""+this.elementName+"_Loader\" src='"+this.imageUrl+"'/>");
				var lobj=_$(this.elementName+"_Loader");
				lobj.setStyle({
				top:objposition[1],
				left:objposition[0]
				});
				break;
			case 'top_right':
				new Insertion.Top(this.elementName, "<img style=\"position:absolute;\" id=\""+this.elementName+"_Loader\" src='"+this.imageUrl+"'/>");
				var lobj=_$(this.elementName+"_Loader");
				lobj.setStyle({
				top:objposition[1],
				left:obj.getWidth()+objposition[0]-lobj.getWidth()
				});
				break;
			case 'bottom_left':
				new Insertion.Bottom(this.elementName, "<img style=\"position:absolute;\" id=\""+this.elementName+"_Loader\" src='"+this.imageUrl+"'/>");
				var lobj=_$(this.elementName+"_Loader");
				lobj.setStyle({
				top:obj.getHeight()+objposition[1]-lobj.getHeight(),
				left:objposition[0]
				});
				break;
			case 'bottom_right':
				new Insertion.Bottom(this.elementName, "<img style=\"position:absolute;\" id=\""+this.elementName+"_Loader\" src='"+this.imageUrl+"'/>");
				var lobj=_$(this.elementName+"_Loader");
				lobj.setStyle({
				top:obj.getHeight()+objposition[1]-lobj.getHeight(),
				left:obj.getWidth()+objposition[0]-lobj.getWidth()
				});
				break;
			default:
				new Insertion.Bottom(this.elementName, "<img style=\"position:absolute;\" id=\""+this.elementName+"_Loader\" src='"+this.imageUrl+"'/>");
				var lobj=_$(this.elementName+"_Loader");
				/*
				lobj.setStyle({
				top:(obj.getHeight()-lobj.getHeight())/2+objposition[1],
				left:(obj.getWidth()-lobj.getWidth())/2+objposition[0]
				});
				*/
				lobj.setStyle({
				top:pos[1]-lobj.getHeight()/2+'px',
				left:pos[0]-lobj.getWidth()/2+'px'
				});
		}
	},
	HideLoader:function(){
		var lobj=_$(this.elementName+"_Loader");
		lobj.remove();
	},
	CenterOffset:function(base){
		var d;if(base==undefined)d=document.documentElement;else d=_$(base);
		var dh=d.scrollHeight,dw=d.scrollWidth,dt=d.scrollTop,dl=d.scrollLeft;
		var ot=dt+d.clientHeight/2,ol=dl+d.clientWidth/2;
		return [ol,ot];
	}
};
