/**
 * Copyright (c) Amnesia 2007
 * All rights reserved 
 * http://www.amnesia.com.au
 * @author Drew Foehn
 */
if(typeof amnesia == "undefined") var amnesia = new Object();
amnesia.Page = new function() {
	var init = false;

	var addBookmark = function(msg) {
		if(!msg) msg = '';
		var title = document.title + ' ' + msg;
		var url = document.location;
		if (window.sidebar){
			window.sidebar.addPanel(title, url,'');//Mozilla Firefox Bookmark
		} else if( window.external ){
			window.external.AddFavorite( url, title);//IE Favorite
		} else if(window.opera && window.print){
			return true;//Opera Hotlist
		}
	};

	var getScrollPos = function(){
	  var scrollX, scrollY;
	  if (document.all){
	     if (!document.documentElement.scrollLeft)
	        scrollX = document.body.scrollLeft;
	     else
	        scrollX = document.documentElement.scrollLeft;
	     if (!document.documentElement.scrollTop)
	        scrollY = document.body.scrollTop;
	     else
	        scrollY = document.documentElement.scrollTop;
	  } else {
	     scrollX = window.pageXOffset;
	     scrollY = window.pageYOffset;
	  }
	  return {x:scrollX,y:scrollY};
	}
	var onLoad = function(f) {
    	var prev=window.onload;
    	window.onload=function(){ if(prev)prev(); f(); }
	};
	var parseQuery = function(q_str){
		var pairHalves;
		var queryVars = {};
		if(q_str == '') return;
		var N_V_pairs = q_str.split("&");
		var l = N_V_pairs.length;
		for(var i=0; i<l; i++){
			pairHalves = N_V_pairs[i].split("=");
			queryVars[pairHalves[0]] = unescape(pairHalves[1]);
		}
		return queryVars;
	}
	var setElementWidth = function(eid, newW, m){
		document.getElementById(eid).style.width = newH + m;
	}
	var setElementHeight = function(eid, newH, m){
		document.getElementById(eid).style.height = newH + m;
	}
	var setElementSize = function(eid, newW, newH){
		setElementWidth(eid, newW);
		setElementHeight(eid, newH);
	}
	var scrollToTop = function(){
		self.scrollTo(0,0);
	}
	var scrollToBottom = function(){
		self.scrollTo(0,3000);
	}
	var setScrollPos = function(numPos){
		self.scrollTo(0,numPos);
	}
	var scrollTo = function(x,y){
		document.scrollBy(x,y);	
	}
	var setFocus = function(e) {
		if(e) { 
			document.getElementById(eid).focus();
		} else {
			window.focus();
		}
	}
	var openWindow = function(params) {
		 window.open(params.url,params.name,params.options);
	}

	this.addBookmark = addBookmark;
	this.getScrollPos = getScrollPos;
	this.onLoad = onLoad;
	this.openWindow = openWindow;
	this.parseQuery = parseQuery;
	this.setFocus = setFocus;
	this.scrollTo = scrollTo;
	this.scrollToBottom = scrollToBottom;
	this.scrollToTop = scrollToTop;
	this.setScrollPos = setScrollPos;
	this.setElementSize = setElementSize;
	this.setElementHeight = setElementHeight;
	this.setElementWidth = setElementWidth;
		
	this.init = init;
}

Page = amnesia.Page;