Object.extend(Wizzle, 
	{
	//JSON object of new paramerters and methods
	
	lightBox: function(para){
		//core params
		paraObj = {
			minWidth: 800,
			minHeight: 600,
			closeClass: 'close',
			keyPress:'RETURN',
			onClose:false
		}
		
		//revise params
		paraObj = Object.extend(paraObj,para)
		
		if(paraObj.minWidth.constructor == Number){
			paraObj.minWidth += 'px'
		}else{
			paraObj.minWidth = parseInt($(paraObj.minWidth).scrollWidth)+'px'
		}
		if(paraObj.minHeight.constructor == Number){
			paraObj.minHeight += 'px'
		}else{
			paraObj.minHeight = parseInt($(paraObj.minHeight).scrollHeight)+'px'
		}
		

		
		var backg = document.createElement('div')
		backg.className = "backg"
		
		//set dems
		if(!Global.ie){
			backg.style.minWidth = paraObj.minWidth
			backg.style.minHeight = paraObj.minHeight
		}else{
			backg.innerHTML = "<iframe style='filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);' scrolling='no' src='javascript:false;' frameborder='0' height='" +  paraObj.minHeight + "px' width='" + paraObj.minWidth + "px'></iframe>"
		}
		
		//add content
		if(paraObj.dataElement || paraObj.dataString){
			var outer = document.createElement('div')
			outer.id = new String().uId()
			outer.className = 'windowBox'
			if(paraObj.dataString){
				var box = document.createElement('div')
				box.innerHTML = paraObj.dataString
			}else if(paraObj.dataElement){
				var box = $(paraObj.dataElement)
				box.style.display = "block"
			}
			outer.appendChild(box)
		}

		//display box
		var root = document.getElementsByTagName('body')[0]
		if(Element.getChildElements(root)){
			if(outer)root.insertBefore(outer,Element.getChildElements(root)[0])
			root.insertBefore(backg,Element.getChildElements(root)[0])
		}else{
			root.appendChild(backg)
			if(outer)root.appendChild(outer)
		}
		//ALIGN LIGHTBOX VERTICALLY
		if(box.style.height == ""){
		box.style.height = box.scrollHeight;
		}
		var varForVert = box.style.height;
		varForVert = varForVert.substring(0,varForVert.length - 2);
		paddingBoxVert = document.body.clientHeight - varForVert;
		paddingBoxVert = paddingBoxVert/2;
		paddingBoxVert += "px";
		box.style.padding = paddingBoxVert;
		paddingBoxVert = "";

		//call opacity
		if(Global.ie){
			backg.filters.Alpha.Opacity = 0;
			box.filters.Alpha.Opacity = 0;
		}else{
			backg.style.opacity = 0;
			box.style.opacity = 0;
		}
		
		Opacity.plus(box,{maxO:1, pause:50, skip:5, timerVar:'t'})
		
		Opacity.plus(backg,{maxO:.2, pause:20, skip:.04, timerVar:'tt'})
		
		//close section
		var closes = document.getElementsByClassName(paraObj.closeClass,box)
		if(closes){
			for(var i=0; i<closes.length; i++){
				var x = closes[i]
				x.onclick = function(){
					//fade out
					closeOut(backg,box)
				}
			}
		}
		if(paraObj.keyPress){
			if(Global.ie){
				document.onkeypress=function(){
					if(Event.keyCode(event) == Event.KEY_RETURN){
						closeOut(backg,box)
					}
				}
			}else{
				document.onkeypress=function(event){
					if(Event.keyCode(event) == Event.KEY_RETURN){
						closeOut(backg,box)
					}
				}
			}
		}
		
		//fade close
		function closeOut(backg,box){
			Global.tempBackId = backg.id
			Opacity.minus(backg,{pause:20, skip:.04, timerVar:'tt',onComplete:function(){
				document.body.removeChild($(Global.tempBackId))
			}});
			
			Global.tempBoxId = box.id
			Global.tempOuterId = outer.id
			Opacity.minus(box,{timerVar:'t', pause:50, skip:5, onComplete:function(){
				$(Global.tempBoxId).style.display = "none"
				document.body.appendChild($(Global.tempBoxId))
				document.body.removeChild($(Global.tempOuterId))
			}});
			
			if(paraObj.onClose)paraObj.onClose()
		}
	}
	
	//END JSON object
	});
