var Request = {
    QueryString : function(key)
    {
        var qs = document.location.search;       
        qs = qs.substring(1,qs.length).split("&");
        var keyValuePairs = [];
		
        for (var i=0; i < qs.length; i++) {
            keyValuePairs[i] = qs[i].split("=");   
        }

        for (var i=0; i < keyValuePairs.length; i++) {
            if (keyValuePairs[i][0] == key) {
                return unescape(keyValuePairs[i][1]);
            }
        }
        return null;
	}
};

var popWin;
function newWindowOpen(strURL,wWidth,wHeight)
{
 if(popWin && !popWin.closed){
     popWin.location.replace(strURL);
 }
 else {
	var strProperties = 'width=' + wWidth + ',height=' + wHeight + ',status=0,toolbar=0,location=0,scrollbars=1,resizable=1';
	popWin = window.open(strURL,'',strProperties);
 }
 popWin.focus();
}

var elo = new Object();


elo.searchBroker = {

    "searchQuery" : "",
    "objForm" : {},

    "googleSearch" : {
        "url" : "http://www.google.com/search",
        "queryString" : "?q=%qry%"
    },

    "ecSearch" : {
        "url" : "http://www.episcopalchurch.org/cps/rde/xchg/episcopal/elo-search.xsl/elo-search-results.htm",
        "queryString" : "?qry=%qry%&primitivesearch=yes&articles=yes&dept=all&res=15&sp=elo.htm&srp=elo-search-results.htm&rdt=liveserver&sa=yes"
	},

    "eloSearch" : {
        "url" : "http://www.episcopalchurch.org/cps/rde/xchg/episcopal/elo-search.xsl/elo-search-results.htm",
        "queryString" : "?qry=%qry%&primitivesearch=yes&articles=yes&dept=all&res=15&sp=elo.htm&srp=elo-search-results.htm&rdt=liveserver&sa=yes"
    },

    initialize : function(obj) {
        this.objForm = obj;
        this.searchQuery = obj.qry.value;
        this.makeSearchRequest(this.objForm);
    },

    buildSearchCriteria : function(obj) {
        var sUrl = obj.url;
        var qs = obj.queryString.replace("%qry%",this.searchQuery);
        document.location.href = sUrl + qs;
    },

    buildGoogleSearchCriteria : function(obj) {
        var sUrl = obj.url;
        var qs = obj.queryString.replace("%qry%",this.searchQuery);
		newWindowOpen(sUrl + qs,"800","600");
		//document.location.href = sUrl + qs;
    },
	
    makeSearchRequest : function(obj) {

        switch(obj.search_selector[obj.search_selector.selectedIndex].value) {
            case "0" : this.buildSearchCriteria(this.eloSearch);
                        break;
            case "1" : this.buildSearchCriteria(this.ecSearch);
                        break;
            case "2" : this.buildGoogleSearchCriteria(this.googleSearch);
                        break;
        }
    }
}




elo.navItem = function() {
	this.populateItem = this.populateItem;
}

elo.navStrip = function(maxMenuItems) {	
	this._maxMenuItems = maxMenuItems;

	this.writeNavStrip = this.writeNavStrip;
	this.addItem = this.addItem;
	this.getRandomizedObjectArray = this.getRandomizedObjectArray;
	this.getRandomNumber = this.getRandomNumber;
}

elo.navItem.prototype =  {

"_itemGUID":1,
"_imageUrl":"",
"_imageLink":"",
"_linkTitle":"",
"_linkDescription":"",
"_selected":false,

populateItem:function(imageUrl,imageLink,linkTitle,linkDescription) {
	this._imageUrl = imageUrl;
	this._imageLink = imageLink;
	this._linkTitle = linkTitle;
	this._linkDescription = linkDescription;
}

}

elo.navStrip.prototype = {

"_maxMenuItems":4,
"_numberItems":0,
"_orderedItemsArr":[],
"_randomizedItemsArr":[],
"_currentLeftItem":0,

getRandomNumber:function() {
	return Math.round(Math.random()*(this._orderedItemsArr.length-1));
},

getRandomizedObjectArray:function() {
	var arrLength = this._orderedItemsArr.length;
	var numberSelected = 0;
	//var maxItems = (arrLength > this._maxMenuItems)?arrLength:this._maxMenuItems;

	var rtnArr = new Array();

	for(i=0; i < arrLength;i++) {
		var selected = false;

		while(!selected) {
			var rand = this.getRandomNumber();
			if (!this._orderedItemsArr[rand]._selected) {
				this._orderedItemsArr[rand]._selected = true;
				selected = true; 
				rtnArr[i] = this._orderedItemsArr[rand];
			}
		}
	}
	
	return rtnArr;
},
addItem:function(navItem) {
    navItem._itemGUID += this._numberItems;
	this._orderedItemsArr[this._orderedItemsArr.length] = navItem;
	this._numberItems += 1;
},

writeNavStrip:function() {
    var left = 0;
	//var randomArr = new Array();
	
	this._randomizedItemsArr = this.getRandomizedObjectArray();
	
	//randomArr = this.getRandomizedObjectArray();
	
	var divElem,aImgElem,aTxtElem,imgElem,spanElem;

	for(i=0;i<this._randomizedItemsArr.length;i++){
		var divElem = new Element("div");
		
		divElem.setProperties({
			"id" : "div_" + this._randomizedItemsArr[i]._itemGUID,
			"style" : "position:absolute; top:20px; left: " + left + "px; width:128px;"
		});
		
//		aTxtElem = new Element("a");
		aTxtElem = document.createElement("a");
		aTxtElem.setAttribute("href",this._randomizedItemsArr[i]._imageLink);
		aTxtElem.innerHTML = this._randomizedItemsArr[i]._linkTitle + "<br/>";

		aImgElem = document.createElement("a");
		aImgElem.setAttribute("href",this._randomizedItemsArr[i]._imageLink);
		imgElem = document.createElement("img");
		imgElem.setAttribute("src",this._randomizedItemsArr[i]._imageUrl);
		imgElem.setAttribute("border",0);
		imgElem.id = i;
		
		spanElem = document.createElement("span");
		spanElem.className = "description";
		spanElem.innerHTML = this._randomizedItemsArr[i]._linkDescription;

		divElem.appendChild(aTxtElem);		
		aImgElem.appendChild(imgElem);
		divElem.appendChild(aImgElem);
		divElem.appendChild(spanElem);
		
		divElem.injectInside($("words_deeds"));
		//document.getElementById("words_deeds").appendChild(divElem);

		left += 159;
	}
}

}

//base animation object, eventually to prototype as base class for other possible animations.
elo.animation = new Object();

elo.animation.xScroll = function (scrollObj,visibleWidth,step) {
    
    this._object = "";
    this._frames = "";
    this._leftScrollable = "";
    this._rightScrollable = ""; 
    this._btnObj = new Object();
	this._scroll = new Object();
	this._currentPosition = visibleWidth;
	this._step = 0;
	this._visibleWidth = 0;
	
	return {
	init : function(scrollObj,navObj,visibleWidth,step,btnObj) {
		this._object = navObj;
		this._frames = frames;
		this._btnObj = btnObj;
		this._scroll = scrollObj;
		this._step = step;
		this._currentPosition = 0;
		this._leftScrollable = false;
		this._rightScrollable = true;
		this._visibleWidth = visibleWidth;
	},
    updateScrollButtons : function() {
		
        //need to check to see what the current left item is or if its on the last item in the list. 
        //var endOfListPosition = this._object._randomizedItemsArr.length - this._object._currentLeftItem;
		var endOfListPosition = this._object._randomizedItemsArr.length;
        if (this._object._currentLeftItem == 4) {
			$("btn_left").setProperty("src",this._btnObj.leftOn);
            this._leftScrollable = true; 
            
        }
        else if (this._object._currentLeftItem == 0) {
			$("btn_left").setProperty("src",this._btnObj.leftOff);
            this._leftScrollable = false; 
        }
        
        if (this._object._currentLeftItem+4 >= endOfListPosition) {
			$("btn_right").setProperty("src",this._btnObj.rightOff);
           	this._rightScrollable = false; 
        }
        else {
			$("btn_right").setProperty("src",this._btnObj.rightOn);
    	    this._rightScrollable = true; 
        }
    },	
	scrollLeft : function() {
		var navStripObj = this._object;
		
		if (this._rightScrollable) {
			navStripObj._currentLeftItem += 4;
	 	    this.updateScrollButtons();
			this._currentPosition += this._step;
			this._scroll.scrollTo(this._currentPosition,0);
		}
    },
    
    scrollRight : function() {
        var navStripObj = this._object;
		
        if (this._leftScrollable) {
			navStripObj._currentLeftItem -= 4;
		    this.updateScrollButtons();
			this._currentPosition -= this._step;
			this._scroll.scrollTo(this._currentPosition,0);
       }
    }
	
	}
}();


elo.flash = function(flashId,flvParamsObj) {
	
	(flashId) ?  this._flashObjectId = flashId : this._flashObjectId = "player";

	this._flvParamsObj = flvParamsObj;
    this._staticFlashVars = "&showdigits=false&showicons=false&autostart=false&showfsbutton=false&repeat=false";
	
	this.buildFlvPlayer = function(optionsObj) {
		UFO.create(optionsObj, this._flashObjectId);		
	}

    this.changeMovie = function(flv,title,summary,divid) {
        this._flvParamsObj.flashvars = "file=" + flv;
        this._flvParamsObj.flashvars += this._staticFlashVars;
        this._flvParamsObj.videotitle = title;
        this._flvParamsObj.textsummary = summary;
        
        //playerInfoDiv.innerHTML = obj.textsummary;
        //swap movie divs
        //play new movie
        this.buildFlvPlayer(this._flvParamsObj);
        this.setPlayerInfo();
    }

	this.setPlayerInfo = function() {
            var movieTitle = document.getElementById("movie_title");
            movieTitle.innerHTML = this._flvParamsObj.videotitle;
    }  
}

elo.effects = function(activeObj) {

    this._activeObject = activeObj;
    this._activeObject.className = "selected";
    this.swapClass = function(obj,className) {
        obj.className = className;
        this._activeObject.className = "unselected";
        this._activeObject = obj;
    }
}

elo.videoHomePage = function(movieID,flvParamsObj) {
    this._fl = new elo.flash("player");
    this._pageEffects = "";
    this._currentMovieID = movieID;
    this._flvParamsObj = flvParamsObj;
    this._staticFlashVars = "&showdigits=false&showicons=false&autostart=false&showfsbutton=false&repeat=false";

    this.setPlayerInfo = function() {
        var playerInfoDiv = document.getElementById("player_info");
        if (document.getElementById("movie_title") == null) {
            var movieTitle = document.createElement("h3");
            var movieSummary = document.createElement("p");
            movieTitle.setAttribute("id","movie_title");
            movieSummary.setAttribute("id","movie_summary");
            movieTitle.innerHTML = this._flvParamsObj.videotitle;
            movieSummary.innerHTML = this._flvParamsObj.textsummary
            playerInfoDiv.appendChild(movieTitle);
            playerInfoDiv.appendChild(movieSummary);
        }
        else {
            var movieTitle = document.getElementById("movie_title");
            movieTitle.innerHTML = this._flvParamsObj.videotitle;
            var movieSummary = document.getElementById("movie_summary");
            movieSummary.innerHTML = this._flvParamsObj.textsummary
        }
    }
    this.buildInitialMovie = function() {
        this._pageEffects = new elo.effects(document.getElementById("d_0"));
        this._flvParamsObj.flashvars += this._staticFlashVars;
        this._fl.buildFlvPlayer(this._flvParamsObj);
        this.setPlayerInfo();
    }
    this.changeMovie = function(flv,title,summary,divid) {
        this._pageEffects.swapClass(document.getElementById(divid),"selected");
        this._flvParamsObj.flashvars = "file=" + flv;
        this._flvParamsObj.flashvars += this._staticFlashVars;
        this._flvParamsObj.videotitle = title;
        this._flvParamsObj.textsummary = summary;
        
        //playerInfoDiv.innerHTML = obj.textsummary;
        //swap movie divs
        //play new movie
        this._fl.buildFlvPlayer(this._flvParamsObj);
        this.setPlayerInfo();
    }
}





var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
function LZ(x) {return(x<0||x>9?"":"0")+x}

function formatDate(date,format) {
	format=format+"";
	var result="";
	var i_format=0;
	var c="";
	var token="";
	var y=date.getYear()+"";
	var M=date.getMonth()+1;
	var d=date.getDate();
	var E=date.getDay();
	var H=date.getHours();
	var m=date.getMinutes();
	var s=date.getSeconds();
	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	// Convert real date parts into formatted versions
	var value=new Object();
	if (y.length < 4) {y=""+(y-0+1900);}
	value["y"]=""+y;
	value["yyyy"]=y;
	value["yy"]=y.substring(2,4);
	value["M"]=M;
	value["MM"]=LZ(M);
	value["MMM"]=MONTH_NAMES[M-1];
	value["NNN"]=MONTH_NAMES[M+11];
	value["d"]=d;
	value["dd"]=LZ(d);
	value["E"]=DAY_NAMES[E+7];
	value["EE"]=DAY_NAMES[E];
	value["H"]=H;
	value["HH"]=LZ(H);
	if (H==0){value["h"]=12;}
	else if (H>12){value["h"]=H-12;}
	else {value["h"]=H;}
	value["hh"]=LZ(value["h"]);
	if (H>11){value["K"]=H-12;} else {value["K"]=H;}
	value["k"]=H+1;
	value["KK"]=LZ(value["K"]);
	value["kk"]=LZ(value["k"]);
	if (H > 11) { value["a"]="PM"; }
	else { value["a"]="AM"; }
	value["m"]=m;
	value["mm"]=LZ(m);
	value["s"]=s;
	value["ss"]=LZ(s);
	while (i_format < format.length) {
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
			}
		if (value[token] != null) { result=result + value[token]; }
		else { result=result + token; }
		}
	return result;
	}



function attachDate(node) {
	var elem = document.createElement("div");
	elem.id = "date_cont";
	elem.innerHTML = formatDate(new Date(),"EE, MMM dd, yyyy");

	document.getElementById(node).appendChild(elem);
}

function attachPreviousPageLink(node,objOptions) {
	var divElem = document.createElement("div");	
	var aElem = document.createElement("a");
	aElem.setAttribute("href","javascript:history.back();");
	
	//if (typeof(objOptions.className) != "undefined") aElem.class = objOptions.className;
	
	aElem.innerHTML = objOptions.linkText;
	divElem.appendChild(aElem);
	document.getElementById(node).appendChild(divElem);
}


function JumpMenu(selObj,restore){
	var theFullString = selObj.options[selObj.selectedIndex].value;

	if (restore) selObj.selectedIndex=0;

	var theLength = theFullString.length;
	var endPos = theFullString.indexOf("~");
	var endPos2 = theFullString.lastIndexOf("~");
	var theUrl, theTarget, theParent;

	if (endPos==0){ theUrl = theFullString.substring(1,endPos2);}
	else if (endPos > 0) {theUrl = theFullString.substring(0,endPos);}
	else {theUrl = theFullString;}
	
	endPos2++;

	if (endPos2 < theLength) {theTarget = theFullString.substring(endPos2,theLength)}
	else {theTarget = "window:Main";}

	if (theTarget == "window:New") {window.open(theUrl);}
	else if (theTarget == "window:Main") {eval("parent.location='"+theUrl+"'");}
}




