/* **************	*/
/* CORE CLASSES 	*/
/* **************	*/


var site = {
	url	: "http://www.pmcc4thwatch.org.ph/",
	title	: "Pentecostal Missionary CHURCH OF CHRIST (4th Watch)"
}

// -- ADD BOOKMARKS
function cc_addBookmark() {

	
	if(document.all) {
		// -- FOR IE ONLY	
		if(!window.opera)
			window.external.AddFavorite(site.url, site.title);
	}
}

// -- SET HOMEPAGE
function cc_setHomepage(pObj) {
	// -- FOR IE
	if(document.all) {
		pObj.style.behavior='url(#default#homepage)'; pObj.setHomePage(site.url);
	}
}




// ---------.---------.---------.---------.---------.---------.---------.
/* -- MAKE PROTOTYPE FOR EXISTING THINGS */
/* --THIS WILL JOIN THE ARRAY WITHOUT NULLS */
Array.prototype.joinAndDiscardNulls = function(pJoiner) {
	var arrayTemp = this;
	var tempStr = "";
	
	/* GATHER ALL THOSE WHICH IS NOT NULL */
	for(var rx=0; rx < arrayTemp.length; rx++) {
		if(arrayTemp[rx]!=null && arrayTemp[rx]!="")
			tempStr += 
				(rx!=0 ? " " : "") +
				arrayTemp[rx];
	}
	
	return tempStr;
}
// ---------.---------.---------.---------.---------.---------.---------.
/* -- TRY TO MAKE TRIM FUNCTIONS ON STRINGS */
// -- LTRIM
String.prototype.ltrim = function() {
	var that = this;
	var finalStr = that;
	var x=0;
	
	// -- HUNT FOR NON-SPACE, START FROM LEFT
	if(that) {
		for(var x=0; x<that.length; x++) {
			var tChar = that.substr(x, 1);
			if(tChar!=" " && tChar!="\t" && tChar!="\r" && tChar!="\n") break;
		}
		
		var finalStr = that.substr(x);
	}
	return finalStr;
}
// -- RTRIM
String.prototype.rtrim = function() {
	var that = this;
	var finalStr = that;
	var x=0;
	
	// -- HUNT FOR NON-SPACE, START FROM LEFT
	if(that) {
		for(var x=that.length-1; x>=0; x--) {
			var tChar = that.substr(x, 1);
			if(tChar!=" " && tChar!="\t" && tChar!="\r" && tChar!="\n") break;
		}
		x++;	
		var finalStr = that.substring(0, x);
	}
	return finalStr;
}
// -- PLAIN TRIM
String.prototype.trim = function() {
	var that = this;
	var finalStr = that.ltrim().rtrim();
	return finalStr;
}



/* ---------.---------.---------.---------.---------.---------.--------- */
/* ADD/REMOVE CLASS */

// -- ADD CLASS
function DOM_addClass(pObj, pClass) {
	var t_className = pObj.className;
	t_className =  (" "+t_className+" ").split(" "+pClass+" ").join("");
	t_className += " "+pClass;
	t_className =  t_className.split(" ").joinAndDiscardNulls(" ");
	
	pObj.className = t_className;
}
// -- REMOVE CLASS
function DOM_removeClass(pObj, pClass) {
	var t_className = pObj.className;
	t_className =  (" "+t_className+" ").split(" "+pClass+" ").join("");
	t_className =  t_className.split(" ").joinAndDiscardNulls(" ");
	
	pObj.className = t_className;
}



// ---------.---------.---------.---------.---------.---------.---------.
/* GET COMPUTED STYLE:  */
// http://www.robertnyman.com/2006/04/24/get-the-rendered-style-of-an-element/
function getStyle(el, prop) {
	if (document.defaultView && document.defaultView.getComputedStyle) {
		return document.defaultView.getComputedStyle(el, null)[prop];
	} else if (el.currentStyle) {
		return el.currentStyle[prop];
	} else {
		return el.style[prop];
	}
}




// ---------.---------.---------.---------.---------.---------.---------.
/* CORE FUNCTIONS */
/* SWITCHES TOGGLE BETWEEN THE TWO */
function switchToggle01 () {
	/* RECOMMENDED NAMING: swt{pName} */
	this.curSelect = null;
	this.prvSelect = null;
	
	/* SWITCHES TOGGLE TO ANOTHER OBJECT */
	this.switchTo = function (obj) {
		this.prvSelect = this.curSelect;
		this.curSelect = obj;

		/* CLEARS THE Cur CLASS */
		if(this.prvSelect) {
			/* REMOVES THE Cur CLASS */
			var classSplit = this.prvSelect.className.split(" ");
			for(var rx=0; rx<classSplit.length; rx++) {
				if(classSplit[rx]=="Cur") 
					classSplit[rx] = null;
			}
			/* MANUAL JOINING OF TEXT OR THIS WILL IMPOSE PROBLEM IN IE */
			this.prvSelect.className = classSplit.joinAndDiscardNulls(" ");
		}
		this.curSelect.className += " Cur";
	}
}

// ---------.---------.---------.---------.---------.---------.---------.
/* ADJUSTMENTS FOR IE : EVENT LISTENERS -- IE SUCKS*/
function doAddEventListener(pObj, pWhatToDo, pFunction, pT) {
	if (pObj.addEventListener){
		pObj.addEventListener(pWhatToDo, pFunction, pT); 
	} else if (pObj.attachEvent){
		pObj.attachEvent('on' + pWhatToDo, pFunction);
	}
}
function doRemoveEventListener(pObj, pWhatToDo, pFunction, pT) {
	if (pObj.removeEventListener){
		pObj.removeEventListener(pWhatToDo, pFunction, pT); 
	} else if (pObj.detachEvent){
		pObj.detachEvent('on' + pWhatToDo, pFunction);
	}
}




// ---------.---------.---------.---------.---------.---------.---------.
/* ABSOLUTE PARENT RETURNER */
/* ABSOLUTE PARENT RETURNER */
if(!this.RetRoot) {
	function RetRoot(pObj, pEnd, pTarget) {
		/* RETURN THE PARENT OF THE object */
		var str = "";
		var strWhole = "0";
		var isTerminate;
		var x = 0;
		
		if(!pTarget) pTarget = document.body;

		/* NOW, THIS IS WHAT THIS WILL DO... THE OFFSETPARENT WILL GO ON 
		   UNTIL IT ENCOUNTERS pTarget */
		do {
			/* SAVE PREVIOUS DATA */
			str = "";
			
			/* COMBINE OFFSETPARENT */
			for (var y=0; y<x; y++) {
				if(str) str += ".";
				str+= "offsetParent"; 
			}
			
			/* COMBINE THE FINAL OBJECT */
			if(str) var parObj = eval("pObj." + str);
			strWhole += " + pObj." + 
				(str ? str + "." : "") + 
				pEnd;
			
			// CHECK IF THE OBJECT IS NOW ON PARENT
			if(parObj == pTarget) break;
			x++;
		} while (!isTerminate);
		
		/* RETURN */
		return eval(strWhole);
	}
}

document.write("<SCR"+"IPT TYPE='text/javascript' SRC='"+par+"/scripts/document_functions.js'></SCR"+"IPT>");




// ---------.--------.---------.---------.---------.---------
// FUNCTION QUEUING... LIST OF FUNCS TO BE RUN AFTER BODY HAS BEEN LOADED.
// ARRAY OF FUNCTION LISTS
var func_queue = new Array();	
// THE FUNCTION. CALL THIS AFTER THE BODY PART
function func_runQueue() {
	for(var i=0; i<func_queue.length; i++) {
		// RUN EACH FUNCTION FROM QUEUE LIST
		try {
			func_queue[i]();
		}
		catch (e) {
		}
	}
	
	// CLEAR THE FUNCTION QUEUE
	func_queue = new Array();
}