(function() {
	var lib = window.lib = {
		data : {
			nonModalEvents : []
		},
		image : {
			preload : function(images) {
				var tImageArr = [];
				var tImages = images.split(",");
				dojo.forEach( tImages, function(img) {
					tImageArr[tImageArr.length] = new Image();
					tImageArr[tImageArr.length-1].src = img;
				});
			},
 			isComplete : function( selector ) {
 				var complete = true;
 				dojo.forEach( dojo.query(selector), function(img) {
 					if( !img.complete )
 					{ complete = false; }
	 			});
 				return complete;
 			}
		},
		input : {
			defaultText : function(selector, settings) {
				var settings = dojo.mixin({
        				defaultText: "enter keyword or item"
       			}, settings);
       			
				dojo.query(selector).forEach(function(input) {
					dojo.connect(input, "focus", function() {
						if( input.value == settings.defaultText )
						{ input.value = ""; }
					});
					dojo.connect(input, "blur", function() {
						input.value = lib.utils.strTrim( input.value );
						if( input.value == "" )
						{ input.value = settings.defaultText; }
					});
					
					if( input.value == "" )
					{ input.value = settings.defaultText; }
					/*$(this).blur();*/
				});
			},
			setMaxCharacters : function(selector, settings) {
				var settings = dojo.mixin({
        				limit: 500,
        				results : "#_donotplace"
       			}, settings);
       			
       			dojo.query(selector).forEach(function(input, i) {
       				dojo.connect(input, "keyup", function() {
       					if( input.value.length > settings.limit )
       					{ input.value = input.value.substring(0, settings.limit); }
       					
       					var remainingCount = ((settings.limit - input.value.length) == 0) ? "0" : settings.limit - input.value.length;
       					dojo.query(settings.results)[i].innerHTML = remainingCount;
       				});
       				
       				if( input.value.length > settings.limit )
    					{ input.value = input.value.substring(0, settings.limit); }
    					
    					var remainingCount = ((settings.limit - input.value.length) == 0) ? "0" : settings.limit - input.value.length;
    					dojo.query(settings.results)[i].innerHTML = remainingCount;
       				/*$(this).keyup();*/	
       			});
       		},
       		autoAdvance : function(selector) {
				dojo.query(selector).forEach(function(input, i) {
					dojo.connect(input, "keyup", function() {
						if( input.value.length >= dojo.query(input).attr("maxlength") )
						{
							//$(this).blur();
							//$(selector).eq(i+1).focus();
						}
					});
				});
			}
		},
		link : {
			popupWindow : function(selector, settings) {
				dojo.query(selector).forEach(function(link) {
        			dojo.connect(link, "click", function(evt) {
        				evt.preventDefault();
        				lib.link.openPopup( dojo.query(link).attr("href"), settings );	
        			});
        		});
        	},
        	openPopup : function( url, settings ) {
				var settings = dojo.mixin({
          		width: 500,
          		height: 500,
          		toolbar: 0,
		  			menubar: 0,
		  			location: 0, 
		  			directories: 0,
		 			status: 0, 
		  			scrollbars: 0,
		 			resizable: 0,
		  			name: "Popup_Window"
        		}, settings);
        		
        		var features = "toolbar=" + settings.toolbar + "," +
									"menubar=" + settings.menubar + "," +
									"location=" + settings.location + "," +
									"directories=" + settings.directories + "," +
									"status=" + settings.status + "," +
									"scrollbars=" + settings.scrollbars + "," +
									"resizable=" + settings.resizable;	
				
				var newWindow = window.open( url, settings.name, 'width=' + settings.width + ',height=' + settings.height + ',"' + features + '"');
				newWindow.focus();	
			}
		},
		screen : {
			position : function() {
				if( typeof( window.pageYOffset ) == 'number' ) {
					//Netscape compliant
					return [ window.pageXOffset, window.pageYOffset ];
				} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
				    //DOM compliant
				    return [ document.body.scrollLeft, document.body.scrollTop ];
				} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
				    //IE6 standards compliant mode
				    return [ document.documentElement.scrollLeft, document.documentElement.scrollTop ];
				} else {
					return [ -1, -1 ];
				}
			},
			size : function() {
				var vpW = 0, vpH = 0;
				if (typeof window.innerWidth != 'undefined')
				{ return [ window.innerWidth, window.innerHeight ]; }
				else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0)
				{ return [ document.documentElement.clientWidth, document.documentElement.clientHeight ]; }
				else
				{ return [ document.getElementsByTagName('body')[0].clientWidth, document.getElementsByTagName('body')[0].clientHeight ]; }
			}
		},
		layer : {
			initManager : function() {
				dojo.query(window).connect("resize", function() {
					dojo.query(".lib__keepcentered").forEach(function(layer) { lib.layer.center( "#" + dojo.query(layer).attr("id") ); });
				});
				dojo.query(window).connect("scroll", function() {
					dojo.query(".lib__keepcentered").forEach(function(layer) { lib.layer.center( "#" + dojo.query(layer).attr("id") ); });
				});
			},
			create : function(selector, settings) {
				var settings = dojo.mixin({
					closeSelector : "#_none",
					url : null,
					defaultContent : "",
					xPos : null,
					yPos : null,
					keepCentered : false,
					callback : null,
					method : "get",
					data : null,
					nonModal : true
				}, settings);
			
				/* Anytime a "new" nonModal Layer is Created, make sure ot remove others before we start adding this one. */
				if( settings.nonModal )
				{ 	dojo.query(".lib__nonModalLayer").forEach(function(layer) { lib.layer.remove( "#" + dojo.query(layer).attr("id") ); }); }
				/* ---------------------- */
				
				lib.layer.add( selector, settings );
				
				if( settings.url != null) 
				{
					if (settings.method == "get") 
					{
						dojo.xhrGet({
							url : settings.url,
							load : function(response, ioArgs) {
								settings.defaultContent = response;
								lib.layer.add(selector, settings);
								if (settings.callback != null) 
								{ settings.callback(); }
							},
							error : function(response, ioArgs) {
								lib.layer.remove(selector);
							}
						});
					}
					else 
					{ }		
				}
				else
				{
					if( settings.callback != null )
					{ settings.callback(); }	
				}
			},
			add : function(selector, settings) {
				lib.layer.remove(selector);
				lib.layer.createDiv(selector);
				dojo.query(selector)[0].innerHTML = settings.defaultContent;
				
				if( settings.xPos != null && settings.yPos != null )
				{ dojo.query(selector).style({ "left" : settings.xPos+"px", "top" : settings.yPos+"px" }); }
				else
				{
					if( settings.keepCentered )
					{ dojo.query(selector).addClass("lib__keepcentered"); }
					lib.layer.center(selector);	
				}
				
				lib.layer.ie6Fix(selector, "a");
				lib.layer.closeButton(settings.closeSelector, selector);
				
				if( settings.nonModal )
				{ 
					lib.layer.nonModal({ selector : selector, method : "add" });
					dojo.query(selector).addClass("lib__nonModalLayer");
				}
			},
			createDiv : function(selector) {
				var newNode = document.createElement("div");
				newNode.id = selector.split("#")[1];
				dojo.query("body")[0].appendChild(newNode);
			},
			remove : function(selector) {
				dojo.query(selector).forEach( function( layerNode ) { dojo._destroyElement(layerNode); });
				lib.layer.ie6Fix(selector,"r"); 
				lib.layer.nonModal({ selector : selector, method : "remove" });
			},
			nonModal : function(settings) {
				var settings = dojo.mixin({
					method : "add",
					selector : "#_nolayer"
				}, settings);
				var eventIndex = lib.layer.nonModalEventIndexFinder(settings.selector);
				
				if( (settings.method == "add") && (eventIndex == -1) ) /* Add event if NOT setup */
				{	
					lib.data.nonModalProcessing = true;
					var theKey = settings.selector;
					var theValue = [];
					dojo.query("#site-bin, #site-footer-bin, #hdrNavigationLayer").forEach(function(item) {
						theValue.push( 
							dojo.connect(item, "click", function() {
								lib.layer.remove(settings.selector);
							})
						);
					});
					dojo.query("body").forEach(function(item) {
						theValue.push(
							dojo.connect(item, "click", function(evt) {
								if( evt.target == dojo.query("body")[0] )
								{ lib.layer.remove(settings.selector); }
							})
						);
					});
					lib.data.nonModalEvents.push( { key : theKey, value : theValue} );
				}
				else if( (settings.method == "remove") && (eventIndex != -1) ) /* Remove event is IS setup */				{
					for( var x = 0; x < lib.data.nonModalEvents[eventIndex].value.length; x++ )
					{ dojo.disconnect( lib.data.nonModalEvents[eventIndex].value[x] ); }
					lib.data.nonModalEvents.splice(eventIndex, 1);
				}
			},
			nonModalEventIndexFinder : function(key) {
				var foundIndex = -1;
				for( var x = 0; x < lib.data.nonModalEvents.length; x++)
				{
					if( lib.data.nonModalEvents[x].key == key )
					{ 
						foundIndex = x;
						break;
					}
				}
				return foundIndex;
			},
			ie6Fix : function(selector,action) {
				if(lib.utils.isIE6())
				{  
					var fixId = selector + "-iframe";
					var exists = dojo.query(fixId).length > 0 ? true : false;
					
					if(action == "r" && exists)
					{ dojo.query(fixId).forEach(function(layerNode) { dojo._destroyElement(layerNode); }); }
					
					if( ((action == "a") || (action == "u")) && !exists)
					{
						var fixHTML = '<iframe width="100%" height="100%" frameborder="0" src="/css/blank.gif" style="filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);"><!-- --></iframe>';
						lib.layer.createDiv(fixId);
						dojo.query(fixId)[0].innerHTML = fixHTML;
						exists = dojo.query(fixId).length > 0 ? true : false;
					}
					
					if( (action == "a" || "u") && exists)
					{
						dojo.query(fixId).style({
							position : dojo.query(selector).style("position"),
							height : dojo.query(selector).style("height")+"px",
							width : dojo.query(selector).style("width") + "px",
							top : dojo.query(selector).style("top") + "px",
							left : dojo.query(selector).style("left") + "px",
							zIndex : dojo.query(selector).style("zIndex")-1
						});
					}
				}
			},
			center : function(selector, settings) {
				var wPosition = lib.screen.position();
				var wSize = lib.screen.size();
			
				var left = 0;
				left = (( wSize[0] - dojo.coords(dojo.query(selector)[0]).w ) / 2);
				left = ( left < 0 ) ? 20 : left;
				if( dojo.coords(dojo.query(selector)[0]).w < wSize[0] )
				{ left += wPosition[0]; }
				
				var top = 0;
				top = (( wSize[1] - dojo.coords(dojo.query(selector)[0]).h ) / 2);
				top = ( top < 0 ) ? 20 : top;
				if( dojo.coords(dojo.query(selector)[0]).h < wSize[1] )
				{ top += wPosition[1]; } 
				
				dojo.query(selector).style({ top : top+"px", left : left+"px" });
				lib.layer.ie6Fix(selector,"u");
			},
			closeButton : function( selector, layerSelector ) {
				dojo.query(layerSelector + " " + selector).connect("click", function(evt) {
					evt.preventDefault();
					lib.layer.remove(layerSelector);	
				});
			}
		},
		utils : {
			isIE6 : function() {
				var IE6 = /msie|MSIE 6/.test(navigator.userAgent);
				return IE6;
			},
			timestamp : function() {
				return new Date().getTime();
			},
			strTrim : function(s) {
       			return s.replace(/^\s+|\s+$/g, "");
   			},
   			getPosition : function( selector ) {
				var sP = lib.screen.position();
				var positions = [];
				dojo.query(selector).forEach(function( element ) {
					var offset = dojo.coords(element);
					positions[positions.length] = [ offset.x + sP[0], offset.y + sP[1] ];
				
				});
				return positions
			},
			strTruncate : function(selector, settings) { /* carefull as this is using innerhtml */
				var settings = dojo.mixin({
					length : 20,
					postfix : "..."
				}, settings);
				
				settings.length -= settings.postfix.length;
				dojo.query(selector).forEach(function(entry) {
					var text = entry.innerHTML;
					if( text.length > settings.length )
					{
						var tIndex = settings.length-1;
						while( ( text.charAt(tIndex) != " ") && (tIndex > 0) )
						{ tIndex--; } 
												
						tIndex = ( tIndex == 0 ) ? settings.length : tIndex+1;
						entry.innerHTML = text.substr(0,tIndex) + settings.postfix;	
					}
				});
			},
			getDocumentHeight : function() {
			   var D = document;
			   return Math.max(
			   	Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
			      Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
			      Math.max(D.body.clientHeight, D.documentElement.clientHeight)
			   );
			},
			getDocumentWidth : function() {
			   var D = document;
			   return Math.max(
			   	Math.max(D.body.scrollWidth, D.documentElement.scrollWidth),
			      Math.max(D.body.offsetWidth, D.documentElement.offsetWidth),
			      Math.max(D.body.clientWidth, D.documentElement.clientWidth)
			   );
			}
		},
		func : {
			formSetup : function() {
				/* Basicly Stylesheet Entries */
				/*
					div.FormArea {}
					div.FormArea div.FormEntry { border: 1px solid #fff; padding: 5px; margin-bottom: 15px; }
					div.FormArea div.FormEntry label { display: block; margin-bottom: 5px; font-weight: bold; }
					div.FormArea div.FormEntry label.optional { font-weight: normal; }
					div.FormArea div.FormError { border: 1px solid red; background-color: #fff; }
					div.FormArea div.FormError .ErrorText { display: block; margin-bottom: 5px; }
					.FormFieldHighlight { background-color: yellow; }
				*/
				var formSelector = ".FormArea";
				var globalErrorClass = "ErrorText";
				var formFieldHighlightClass = "FormFieldHighlight";
				var formEntryErrorClass = "FormError";
				var formEntryClass = "FormEntry";
				var inputs = formSelector + " input," + formSelector + " select," + formSelector + " textarea";
				
				dojo.query(formSelector + " ." + globalErrorClass).forEach(function( errorEntry ) {
					var formEntry = errorEntry.parentNode;
					while( !dojo.hasClass(formEntry, "FormEntry") )
					{ formEntry = formEntry.parentNode; }
					dojo.query( formEntry ).addClass( formEntryErrorClass );
					dojo.query("input[type=text]", formEntry).addClass("FormFieldErrorHightlight");
				});
				
				dojo.query(inputs).forEach(function( input ) {
					dojo.connect( input, "focus", function() {
						if( (dojo.query(input).attr("type") != "image") && (dojo.query(input).attr("type") != "radio") && (dojo.query(input).attr("type") != "checkbox") )
						{ dojo.query(input).addClass( formFieldHighlightClass ); }
					});
					dojo.connect( input, "blur", function() {
						dojo.query(input).removeClass( formFieldHighlightClass );
					});
				});
					
				dojo.query(formSelector + " select").forEach(function( select ) {
					dojo.connect( select, "mousedown", function() {
						dojo.query(select).addClass( formFieldHighlightClass );
					});
				});
			}
		},
		obj : {
			itemSlider : function(settings) {
				if(arguments.length > 0)
				{ this.init(settings); }	
			},
			pageOverlay : function(settings) {
				if(arguments.length > 0)
				{ this.init(settings); }
			}
		},
		about : function() {
			
		}
	}
	
/* itemSlider Object Code */
lib.obj.itemSlider.prototype.init = function(settings) {
	settings = dojo.mixin({
		viewport: "#widget-slider-viewport",
		content: "#widget-slider-content",
		next: "#widget-slider-next",
		prev: "#widget-slider-prev",
		first: "#widget-slider-first",
		last: "#widget-slider-last",
		item: "div",
		direction: "vertical",
		showAmount: 3,
		interval : 300,
		circular : false,
		preMoveCallback : null,
		postMoveCallback : null
	}, settings);
    
	this.viewport = settings.viewport;
	this.content = settings.content;
	this.next = settings.next;
	this.prev = settings.prev;
	this.first = settings.first;
	this.last = settings.last;
	this.interval = settings.interval;
	this.item = settings.item;
	this.direction = settings.direction;
	this.showAmount = settings.showAmount;
	this.circular = settings.circular;
	this.sliderInfo = new Object();
	this.sliderInfo.index = 0;
	this.sliderInfo.end = dojo.query(this.item).length - this.showAmount;
	this.preMoveCallback = settings.preMoveCallback;
	this.postMoveCallback = settings.postMoveCallback;
	
   this.nextEvent = [];
   this.prevEvent = [];
   this.firstEvent = [];
   this.lastEvent = [];
    
    // fix overflwo for items not showing (should be FF only?)
    dojo.query(this.item + " *").forEach(function(element) {
    	if( dojo.query(element).style("overflow") == "auto" )
    	{ dojo.query(element).addClass("is__overflow"); }
    });
    dojo.query(this.item).forEach(function(element) {
    	if( dojo.query(element).style("overflow") == "auto" )
    	{ dojo.query(element).addClass("is__overflow"); }
    });
    
    var thisSlider = this;
    if( dojo.query( this.viewport ).length > 0 )
    {
    	this.overflowBeforeMove();
		this.overflowAfterMove();
    	
		dojo.query(this.next).style({ display: "none" });
    	dojo.query(this.prev).style({ display: "none" });
		if(this.circular && ( dojo.query(this.item).length > this.showAmount))
		{
			dojo.query(this.prev).style({ display : "block" });
			dojo.query(this.next).style({ display : "block" });
		}
		else if( !this.circular && ( dojo.query(this.item).length > this.showAmount))
		{ dojo.query(this.next).style({ display : "block" }); }
		
    	if( this.direction == "vertical" )
		{ this.sliderInfo.itemSize = dojo.query(this.item).style("height")[0]; }
		else
		{ 
			this.sliderInfo.itemSize = dojo.query(this.item).style("width")[0];
			dojo.query(this.content).style({ width : (this.sliderInfo.itemSize * dojo.query(this.item).length) + "px" });
		}
    	
    	this.removeEvents();
    	
    	dojo.query(this.next).connect("click", function(evt) { evt.preventDefault(); });
    	dojo.query(this.prev).connect("click", function(evt) { evt.preventDefault(); });
    	dojo.query(this.first).connect("click", function(evt) { evt.preventDefault(); });
    	dojo.query(this.last).connect("click", function(evt) { evt.preventDefault(); });
    	
    	this.createEvents();
    	
    	/* Stop the browser from scrolling this area */
    	dojo.query(this.viewport).connect("scroll", function(evt) {
    		dojo.query(evt.target)[0].scrollTop =  0;
    		dojo.query(evt.target)[0].scrollLeft = 0;
    	});
    	/* ------------------ */
    }
};

lib.obj.itemSlider.prototype.removeEvents = function() {
	for(var i = 0; i < this.prevEvent.length; i++)
	{ dojo.disconnect( this.prevEvent[i] ); }
	for(var i = 0; i < this.nextEvent.length; i++)
	{ dojo.disconnect( this.nextEvent[i] ); }	
	for(var i = 0; i < this.firstEvent.length; i++)
	{ dojo.disconnect( this.firstEvent[i] ); }	
	for(var i = 0; i < this.lastEvent.length; i++)
	{ dojo.disconnect( this.lastEvent[i] ); }	
};

lib.obj.itemSlider.prototype.createEvents = function() {
	this.removeEvents(); /* make sure events are removed before we add a set */
	
	var currObj = this;
	dojo.query(currObj.next).forEach( function(button, i) {
  		currObj.nextEvent[i] = dojo.connect( button, "click", function(evt) {
  			currObj.forward();
  		});
  	});
  	dojo.query(currObj.prev).forEach( function(button, i) {
  		currObj.prevEvent[i] = dojo.connect( button, "click", function(evt) {
  			currObj.backward();
  		});
  	});
  	dojo.query(currObj.first).forEach( function(button, i) {
  		currObj.firstEvent[i] = dojo.connect( button, "click", function(evt) {
  			currObj.toFirst();
  		});
  	});
  	dojo.query(currObj.last).forEach( function(button, i) {
  		currObj.lastEvent[i] = dojo.connect( button, "click", function(evt) {
  			currObj.toLast();
  		});
  	});
};

lib.obj.itemSlider.prototype.move = function() {
	this.removeEvents();
  	this.overflowBeforeMove();
  	
  	/* Make index is in range */
	if(this.circular)
	{
		if( this.sliderInfo.index > this.sliderInfo.end )
		{ this.sliderInfo.index = 0; }
		else if( this.sliderInfo.index < 0 )
		{ this.sliderInfo.index = this.sliderInfo.end }
	}
	else
	{
		if( this.sliderInfo.index > this.sliderInfo.end )
		{ this.sliderInfo.index = this.sliderInfo.end; }
		else if( this.sliderInfo.index < 0 )
		{ this.sliderInfo.index = 0 }
	}
	/* --------------- */
  	
	/* show/hide buttons */
	if( !this.circular )
	{
		if( this.sliderInfo.index == this.sliderInfo.end )
		{  dojo.query(this.next).style({ display : "none" }); }
		else if(this.sliderInfo.end > 0 )
		{  dojo.query(this.next).style({ display : "block" }); }
		
		if( this.sliderInfo.index == 0 )
		{ dojo.query(this.prev).style({ display : "none" }); }
		else
		{ dojo.query(this.prev).style({ display : "block" }); }
	}
	/* ----------------------- */
  	
	if(dojo.isFunction(this.preMoveCallback))
	{ this.preMoveCallback(); }
	
	/* Move the item */
	var currObj = this;
	var newPos = this.sliderInfo.index * this.sliderInfo.itemSize * -1;
	if (this.direction == "vertical") 
	{ var params = { top: { end: newPos, unit: "px" }}; }
	else
	{ var params = { left: { end: newPos, unit: "px" }}; }
	
	dojo.animateProperty({
		node: dojo.query(currObj.content)[0],
		duration: this.interval,
		properties: params,
		onEnd : function() {
			currObj.overflowAfterMove();	
			currObj.createEvents();
			if(dojo.isFunction(currObj.postMoveCallback))
			{ currObj.postMoveCallback(); }
		}
	}).play();
	/* ---------------------- */
};


lib.obj.itemSlider.prototype.forward = function() {
	this.sliderInfo.index++;
	this.move();
};

lib.obj.itemSlider.prototype.backward = function() {
	this.sliderInfo.index--;
	this.move();
};

lib.obj.itemSlider.prototype.toFirst = function() {
	this.sliderInfo.index = 0;
	this.move();
};

lib.obj.itemSlider.prototype.toLast = function() {
	this.sliderInfo.index = this.sliderInfo.end;
	this.move();
};

lib.obj.itemSlider.prototype.overflowBeforeMove = function() {
	dojo.query(this.item).forEach(function(item, i) {
		if( dojo.hasClass(item, "is__overflow") )
		{ dojo.query(item).style({ overflow: "hidden" }); }
		dojo.query(".is__overflow", item).forEach(function( element ) {
			dojo.query(element).style({ overflow: "hidden" });
		});
	});
};

lib.obj.itemSlider.prototype.overflowAfterMove = function() {
	var currObj = this;
	dojo.query(currObj.item).forEach(function(item, i) {
  		if( dojo.hasClass(item, "is__overflow") && ( (i >= currObj.sliderInfo.index) && (i < (currObj.sliderInfo.index + currObj.showAmount)) ) )
  		{ dojo.query(item).style({ overflow: "auto" }); }
  		dojo.query(".is__overflow", item).forEach(function( element ) {
			if( (i >= currObj.sliderInfo.index) && (i < (currObj.sliderInfo.index + currObj.showAmount)) )
			{ dojo.query(element).style({ overflow: "auto" }); }
		});
  	});
};
/* ----------------------- */	
	

/* pageOverlay */
lib.obj.pageOverlay.prototype.init = function(settings){
	var settings = dojo.mixin({
		selector : "#widget-pageOverlay"
	}, settings);
	
	this.resizeEvent = null;
	this.selector = settings.selector;
	this.addOverlay();
	
	var myOverlay = this;
	this.resizeEvent = dojo.query(window).connect("resize", function() { myOverlay.resize(); });
	this.interval = setInterval(function(){
		if( lib.utils.getDocumentHeight() > lib.screen.size()[1] ){
			myOverlay.resize();
		}
	},250);
};	

lib.obj.pageOverlay.prototype.resize = function(){
	dojo.query(this.selector).style({
		height : lib.screen.size()[1] + "px",
		width : lib.screen.size()[0] + "px"
	});
	
	if( lib.utils.getDocumentWidth() > lib.screen.size()[0] ) {
		dojo.query(this.selector).style({ width : lib.utils.getDocumentWidth() + "px" }); 
	}
	
	if( lib.utils.getDocumentHeight() > lib.screen.size()[1] ) {
		dojo.query(this.selector).style({ height: lib.utils.getDocumentHeight() + "px" });
	}
	else {
		dojo.query(this.selector).style({ height: lib.screen.size()[1] + "px" });	
	}
	
	lib.layer.ie6Fix(this.selector,'u');
};

lib.obj.pageOverlay.prototype.addOverlay = function(){
	lib.layer.create( this.selector, { xPos : 0, yPos : 0, nonModal : false });
	dojo.query(this.selector).style({
		position: "absolute",
		width: "100%",
		height: "100%"
	});
	lib.layer.ie6Fix(this.selector,'u');
	this.resize();
};

lib.obj.pageOverlay.prototype.removeOverlay = function(){
	lib.layer.remove(this.selector);
	clearInterval(this.interval);
};
/* ------------------ */	

dojo.addOnLoad(function() {
	
	/* Layer Manager */
	lib.layer.initManager();
	
	/* Form Setup */
	lib.func.formSetup();
});	
	
})();