
/**
		Date object extension to compare dates
	**/
	// compare the current date only and check if the compare date 
	// is after the current date
	Date.prototype.beforeDate = function(date) {
		return ( (this.getFullYear() < date.getFullYear()) || (this.getFullYear() == date.getFullYear()) &&
		(this.getMonth() < date.getMonth()) ||
		(this.getFullYear() == date.getFullYear()) &&
		(this.getMonth() == date.getMonth()) &&
		(this.getDate() <= date.getDate()));
	}

	// compare the current date only and check if the compare date 
	// is before the current date
	Date.prototype.afterDate = function(date) {
		return ((this.getFullYear() > date.getFullYear()) ||
		 (this.getFullYear() == date.getFullYear() && (this.getMonth() > date.getMonth()) ) ||
		 (this.getFullYear() == date.getFullYear() && (this.getMonth() >= date.getMonth()) && (this.getDate() >= date.getDate())));
	}


function isArray(obj) {
	if (typeof obj == 'object') {  
		var criterion = obj.constructor.toString().match(/array/i); 
		return (criterion != null);  
	}
	return false;
}


function isString(obj) {
	if (typeof obj == 'string') {
		return true;
	}
	
	if (typeof obj == 'object') {  
		var criterion = obj.constructor.toString().match(/string/i); 
 		return (criterion != null);  
 	}
 	return false;
}

function refreshPage(interval, url) {
	
	if (typeof(interval) == "undefined") {
		interval = 5000;
	}
	if (typeof(url) != "undefined") {
		setTimeout ("doRefresh(\"" + url + "\")", interval);
	} else {
		setTimeout ("doRefresh()", interval);
	}
}

function redirect(url, interval) {
	
	if (interval != null && typeof(interval) == "undefined") {
		interval = 5000;
	}
	if (url != null && typeof(url) != "undefined") {
		setTimeout ("doRefresh(\"" + url + "\")", interval);
	}
}


function doRefresh(url) {
	if (typeof(url) != "undefined") {
		document.location.href=url;
	} else {
		document.location.reload();
	}
}

function popUp(id, page, width, height) {
	eval("popUp" + id + "=window.open('" + page + "','','toolbar=0,scrollbars=0,location=0,status=1,menubars=0,resizable=1,width=" + width + ",height=" + height + "')")
}


function showStatus(sMsg) {
    window.status = sMsg ;
    return true;
}


function hideElements(elements, hide) {
	if ((elements != "undefined" && elements != null) && isArray(elements)) {
  		if (hide == "undefined" || hide == null) {
      		hide = true;
      	}
      	
      	if (hide == true) {
      		// remove elements
      		for (i in elements) {
	      		var element = document.getElementById(elements[i]);
				if(element != null && typeof(element) != "undefined"){
					element.style.display="none";
				}
			}
      	} else {
      		// bring rows back
      		for (i in elements) {
	    		element = document.getElementById(elements[i]);
	    		if(typeof(element) != "undefined" && element != null){
					element.style.display="";
				}
			}
      	}
  	}
}

function safeSetText(element, text){
	var elem = $("#" + element); 
	if(elem != null && elem.length > 0) {
		elem[0].innerText = text;
	}
}

function safeSetHtml(element, htmltext){
	var elem = $("#" + element); 
	if(elem != null && elem.length > 0) {
		elem[0].innerHTML = htmltext;
	}
}



