
var MODALBOX={ 
	addElement:function(parent,type,params){
		var newElem=document.createElement(type);
		if(params)for(key in params){newElem.setAttribute(key,params[key]);if(key=="class")newElem.setAttribute("className",params[key]);}
		if(parent)parent.appendChild(newElem);
	 	return newElem;
		},
	cleanup:function(){
		with(MODALBOX){removeElement("modalWindow");removeElement("modalOverlay");}
		return false;
		},
 	init:function(){
		var anchors=$.getByClass("modalbox",null,"a");
		// alert(anchors.length);
		for(var counter=0;counter<anchors.length;counter++){
			anchors[counter].onclick=function(){this.blur();MODALBOX.show(this.firstChild.alt,this.href);return false;}
			MODALBOX.addElement(anchors[counter],"img",{"alt":"View a larger version of this image","class":"magnify","src":"/_img/shared/modalbox-magnify.gif"});
			}
		},
	getPageScrollTop:function(){
		var yScrolltop;
		var xScrollleft;
		if(self.pageYOffset||self.pageXOffset)
			with(self){	yScrolltop=pageYOffset; xScrollleft=pageXOffset; }			
		else if(document.documentElement&&document.documentElement.scrollTop||document.documentElement.scrollLeft)	 
			with(document.documentElement){yScrolltop=scrollTop;xScrollleft=scrollLeft;}
		else if(document.body)
			with(document.body){yScrolltop=scrollTop;xScrollleft=scrollLeft;}
		arrayPageScroll=new Array(xScrollleft,yScrolltop);
		return arrayPageScroll;
		},
	getPageSize:function(){
		var de=document.documentElement;
		var w=window.innerWidth||self.innerWidth||(de&&de.clientWidth)||document.body.clientWidth;
		var h=window.innerHeight||self.innerHeight||(de&&de.clientHeight)||document.body.clientHeight;
		arrayPageSize=new Array(w,h);
		return arrayPageSize;
		},
	loadPosition:function(){
		var pagesize=MODALBOX.getPageSize();
		var arrayPageScroll=MODALBOX.getPageScrollTop();
		with($.getById("modalLoad").style){
			left=(arrayPageScroll[0]+(pagesize[0]-100)/2)+"px";
			top=(arrayPageScroll[1]+((pagesize[1]-100)/2))+"px";
			display="block";
			}
		},
	overlaySize:function(){
		if (window.innerHeight&&window.scrollMaxY||window.innerWidth&&window.scrollMaxX){	
			yScroll=window.innerHeight+window.scrollMaxY;
			xScroll=window.innerWidth+window.scrollMaxX;
			var deff=document.documentElement;
			var wff=(deff&&deff.clientWidth)||document.body.clientWidth||window.innerWidth||self.innerWidth;
			var hff=(deff&&deff.clientHeight)||document.body.clientHeight||window.innerHeight||self.innerHeight;
			xScroll-=(window.innerWidth-wff);
			yScroll-=(window.innerHeight-hff);
			}
		else if(document.body.scrollHeight>document.body.offsetHeight||document.body.scrollWidth>document.body.offsetWidth){ 
			yScroll=document.body.scrollHeight;
			xScroll=document.body.scrollWidth;
			}
		else{ 
			yScroll=document.body.offsetHeight;
			xScroll=document.body.offsetWidth;
	  	}
		with($.getById("modalOverlay").style){
		 	height=yScroll+"px";
		 	width=xScroll+"px";
		 	}
		},
	parseQueryString:function(query){
   		var Params = {};
   		if ( ! query ) {return Params;}// return empty object
   		var Pairs = query.split(/[;&]/);
		  for ( var i = 0; i < Pairs.length; i++ ) {
		     var KeyVal = Pairs[i].split('=');
		     if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
		     var key = unescape( KeyVal[0] );
		     var val = unescape( KeyVal[1] );
		     val = val.replace(/\+/g, ' ');
		     Params[key] = val;
		  }
		  return Params;
		},
	position:function(){
		MODALBOX.overlaySize();
		var pagesize=MODALBOX.getPageSize();	
		var arrayPageScroll=MODALBOX.getPageScrollTop();
		with($.getById("modalWindow").style){
			width=MODALBOX.WIDTH+"px";
			left=(arrayPageScroll[0]+(pagesize[0]-MODALBOX.WIDTH)/2)+"px";
			top=(arrayPageScroll[1]+(pagesize[1]-MODALBOX.HEIGHT)/2)+"px";
			}
		},
	remove:function(){
		with(window){onresize=null;onscroll=null;onkeyup=null;}
		$.getById("modalImageOff").onclick=null;
		$.getById("modalOverlay").onclick=null;
		$.getById("modalCloseWindowButton").onclick=null;
		MODALBOX.cleanup();
		return false;
		},
	removeElement:function(elem){
		if(typeof elem=='string')elem=$.getById(elem);
		try{elem.parentNode.removeChild(elem);}catch(err){}
		},
	show:function(caption,url){
		if (!$.getById("modalOverlay")){
			var overlayDiv=MODALBOX.addElement(document.body,"div",{"id":"modalOverlay"});
			overlayDiv.onclick=function(){return MODALBOX.remove();};
			var windowDiv=MODALBOX.addElement(document.body,"div",{"id":"modalWindow"});
			}
			
      	var queryString = url.replace(/^[^\?]+\??/,'');
		var params = MODALBOX.parseQueryString( queryString );

		window.onscroll=function(){MODALBOX.position();}
		MODALBOX.overlaySize();
		var loadingDiv=MODALBOX.addElement(document.body,"div",{"id":"modalLoad"});
		var loadingImg=MODALBOX.addElement(loadingDiv,"img",{"src":"/_img/shared/modalbox-loading.gif"});
		MODALBOX.loadPosition();

		var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.bmp/g;
     	var urlType = url.toLowerCase().match(urlString);
		var mbWindow=$.getById("modalWindow");
		
    	if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images

			imgPreloader=new Image();
			imgPreloader.onload=function() {
				imgPreloader.onload=null;
				var imageWidth=imgPreloader.width;
				var imageHeight=imgPreloader.height;
				MODALBOX.WIDTH=imageWidth+30;
				MODALBOX.HEIGHT=imageHeight+60;
				
				aImageOff=MODALBOX.addElement(mbWindow,"a",{"href":"#","id":"modalImageOff","title":"Close"});
				aImageOff.onclick=function(){return MODALBOX.remove();};
				MODALBOX.addElement(aImageOff,"img",{"id":"modalImage","src":url,"width":imageWidth,"height":imageHeight,"alt":caption});
				mbCaption=MODALBOX.addElement(mbWindow,"div",{"id":"modalCaption"});
				mbCaption.innerHTML=caption;
				mbCloseWindow=MODALBOX.addElement(mbWindow, "div",{"id":"modalCloseWindow"});
				mbCloseWindowButton=MODALBOX.addElement(mbCloseWindow,"a",{"href":"#","id":"modalCloseWindowButton","title":"Close"});
				with(mbCloseWindowButton){
					innerHTML="close";
					onclick=function(){return MODALBOX.remove();};
					}
				MODALBOX.position();
				MODALBOX.removeElement("modalLoad");
				mbWindow.style['display']="block";
				}
			imgPreloader.src=url;
		} else {
	     	//MODALBOX.baseWidth = (params['width']*1) + 30 || 549; //defaults to 630 if no paramaters were added to URL
	      	//MODALBOX.baseHeight = (params['height']*1) + 40 || 552; //defaults to 440 if no paramaters were added to URL
	     	MODALBOX.baseWidth = 544; //defaults to 630 if no paramaters were added to URL
	      	MODALBOX.baseHeight = 552; //defaults to 440 if no paramaters were added to URL
	
			var scrollParam="no";
			if (params['scroll']=="yes"){
				scrollParam="yes";
			} else {
				mbWindow.className="noborder";
			}
			
	      	//MODALBOX.WIDTH = MODALBOX.baseWidth - 5;
	      	MODALBOX.WIDTH = MODALBOX.baseWidth;
	      	MODALBOX.HEIGHT = MODALBOX.baseHeight - 45;
			if(params["contentid"]&&String(params["contentid"]).length>0){
				MODALBOX.contentId=params["contentid"];
			}
			// if(params["contentid"]&&String(params["contentid"]).length()>0){
				// alert("there's a value");
				// SPLURT.contentId=params["contentid"];
			// }
			
			MODALBOX.content=MODALBOX.addElement(mbWindow,"iframe",{"id":MODALBOX.contentId,"src":url,"frameBorder":"0","scrolling":scrollParam});
			/*
			SPLURT.contentclicker=GLOBALS.addElement(SPLURT.stage,"div",{"id":"splurtContentClicker","style":"background-color:transparent; display:block; height:100%; position:absolute; top:0; width:100%;"});
			SPLURT.contentclicker.onclick=function(){
				alert("hello");
				// SPLURT.contentclicker.onclick=null;
				// return SPLURT.remove();
			};
			*/			

			// SPLURT.content.style['frameborder']="0";

			MODALBOX.content.style['width']=MODALBOX.baseWidth + "px";
			MODALBOX.content.style['height']=MODALBOX.baseHeight + "px";


				aImageOff=MODALBOX.addElement(mbWindow,"a",{"href":"#","id":"modalImageOff","title":"Close"});
				aImageOff.onclick=function(){return MODALBOX.remove();};
				// MODALBOX.addElement(aImageOff,"img",{"id":"modalImage","src":url,"width":imageWidth,"height":imageHeight,"alt":caption});
				if (params['capt']=="no"){
					// no caption
				} else {
					mbCaption=MODALBOX.addElement(mbWindow,"div",{"id":"modalCaption"});
					mbCaption.innerHTML=caption;
				}
				mbCloseWindow=MODALBOX.addElement(mbWindow, "div",{"id":"modalCloseWindow"});
				mbCloseWindowButton=MODALBOX.addElement(mbCloseWindow,"a",{"href":"#","id":"modalCloseWindowButton","title":"Close"});
				with(mbCloseWindowButton){
					innerHTML="close";
					onclick=function(){return MODALBOX.remove();};
					}


			MODALBOX.position();

			// SPLURT.window.className="headless";
			// MODALBOX.window.style['display']="block";
			// MODALBOX.shadow.style['display']="block";


			MODALBOX.removeElement("modalLoad");
			MODALBOX.loading=null;
				mbWindow.style['display']="block";
		}

		window.onresize=function(){MODALBOX.position();}
		}
	};	

$.addOnload(MODALBOX.init);


