var ns4=document.layers?true:false;
var ie4=document.all?true:false;
var ns6=document.getElementById&&!document.all?true:false;

var noMoreDebugErrors = false;
function resetDebug(){
	noMoreDebugErrors = false;
}
function debug(t){
	if(!noMoreDebugErrors){
		if(!confirm(t)){
			noMoreDebugErrors = true;
			setTimeout("resetDebug()",1000);
		}
	}
}


function getAbsolutePosition(element) {
  var r = { x: element.offsetLeft, y: element.offsetTop };
  if (element.offsetParent) {
    var tmp = getAbsolutePosition(element.offsetParent);
    r.x += tmp.x;
    r.y += tmp.y;
  }
  return r;
}
  



function isNumber(val){
	return !(new RegExp("[^\\d]")).test(val);
}

function hide(d){
	if(d.id){
		d.style.display="none";
	}else{
		try{
			hide(getid(d));
		}catch(e){
			debug("Error: hide element '"+d+"' caught error '"+e.message+"'.");
		}
	}
}
function show(d){
	if(d.id){
		d.style.display="";
	}else{
		try{
			show(getid(d));
		}catch(e){
			debug("Error: show element '"+d+"' caught error '"+e.message+"'.");
		}
	}
}
function toggle(d){
	if(d.id){
		if("none" == d.style.display){
			d.style.display="";
		}else{
			d.style.display="none";
		}
	}else{
		try{
			toggle(getid(d));
		}catch(e){
			debug("Error: show element '"+d+"' caught error '"+e.message+"'.");
		}
	}
}
function getid(name){
	return document.getElementById(name);
}

function findParentTagName(id,name){
	if(!id){
		return null;
	}
	if(id.tagName == name){
		return id;
	}
	return findParentTagName(id.parentNode,name);
}

function hoverlink(t,m){
	if(1 == m){
		t.className = 'likeLink';
	}else{
		t.className = '';
	}
}

/*
function stringFilter(textString) {
	if(!textString) return null;
	valuesToBeFiltered = "[]";
	var i; var returnString = "";
	for (i = 0; i < textString.length; i++) {
	returnString
	var c = textString.charAt(i);
	if (valuesToBeFiltered.indexOf(c) == -1) returnString += c;
	}
	filteredString = returnString;
	return filteredString;
}
*/

function setCookie(name,value,days){
	var expires = "";
	if (days){
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		expires = "; expires="+date.toGMTString();
	}
	document.cookie = name+"="+escape(value)+expires+"; path=/";
}

function getCookie(name){
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++){
		var c = ca[i];
		while (c.charAt(0)==' '){
			c = c.substring(1,c.length);
		}
		if (c.indexOf(nameEQ) === 0){
			return unescape(c.substring(nameEQ.length,c.length));
		}
	}
	return null;
}
function deleteCookie(name){
	createCookie(name,"",-1);
}

function getURLencodedValue(urlData,getName){
	var segarray = urlData.split("&");
	for(i in segarray){
		var pairs = segarray[i].split("=");
		var n = unescape(pairs[0]);
		var v = unescape(pairs[1]);
		if(n == getName){
			return v;
		}
	}
	return null;
}

function getTodayDate(){
	var testDate = new Date();
	var newM = testDate.getMonth()+1;
	var newD = testDate.getDate();
	var newY = testDate.getFullYear();
	newM = ((newM < 10 ? "0" : "") + newM);
	newD = ((newD < 10 ? "0" : "") + newD);
	return newM + "/" + newD + "/" + newY;
}

/* BEGIN form validation functions */

function validateDate(dateText){
	var ds = dateText.split("/");
	var testDate = new Date(ds[2],ds[0]-1,ds[1]);
	var newM = testDate.getMonth()+1;
	var newD = testDate.getDate();
	var newY = testDate.getFullYear();
	newDate = newM + "/" + newD + "/" + newY;
	if(newDate == dateText){
		return true;
	}
	newM = ((newM < 10 ? "0" : "") + newM);
	newD = ((newD < 10 ? "0" : "") + newD);
	newDate = newM + "/" + newD + "/" + newY;
	if(newDate == dateText){
		return true;
	}
	return false;
}

function getSelectOption(e){
	return e.options[e.selectedIndex];
}
function getSelectText(e){
	return e.options[e.selectedIndex].text;
}
function getSelectValue(el){
	return el.options[el.selectedIndex].value;
}
function getFormField(f){
	return getForm()[f];
}
function validateField(f,s){
	var msg = "Form validation error: ";
	var err = "";
	try{
err += "1 ";
		var el;
err += "1a ";
		if(f.tagName){
err += "1b ";
			el = f;
err += "1c ";
		}else{
err += "1d ";
			el = getid(f);
err += "1e ";
		}
err += "2 ";
		if(!el){
err += "3 ";	
			el=getFormField(f);
		}
err += "4 ";	
		var val="";
		
err += "5 ";	
		if(el.tagName == "SELECT"){
err += "6 ";	
			val = getSelectValue(el);
err += "7 ";	
			msg = "Missing selection: ";
err += "8 ";	
		}else{
err += "9 ";	
			val = el.value.replace(/^\s*|\s*$/g,'');
err += "10 ";	
			msg = "Missing Input: ";
err += "11 ";	
		}
err += "12 ";	
		if(val.length > 0){
err += "13 ";	
			return true;
		}
err += "14 ";	
		if(s){
err += "15 ";	
			alert(msg + s);
err += "16 ";	
			el.scrollIntoView();
err += "17 ";
			try{
err += "18 ";	
				el.focus();
			}catch(ex){
			}
err += "19 ";	
		}
	}catch (ex){
		return confirm("Error occurred while validating field " + f + ": " + ex + ": " + err);
	}

	return false;
}

/* END form validation functions */


/* TODO: get rid of this kludge function */
function openWin(url,name,setting){
	alert("global.js openWin() deprecated");
	var settings1 = "toolbar=no,status=no,address=no,scrollbars=yes,resizable=yes,width=850,height=600,top=25,left=25";
	var settings2 = "toolbar=no,status=no,address=no,resizable=yes,width=850,height=470,top=25,left=25";
	var settings3 = "toolbar=no,status=no,address=no,resizable=yes,width=965,height=600,top=25,left=25";
	var settings4 = "toolbar=no,status=no,address=no,resizable=no,width=200,height=210,top=120,left=120";
	var settings5 = "toolbar=no,status=no,address=no,resizable=yes,width=965,height=700,top=50,left=50";
	var w = document.body.offsetWidth - 20;//screen.width;
	var h = document.body.offsetHeight - 30;//screen.height;

	var settings6 = "toolbar=no,status=no,address=no,resizable=yes,width="+w+",height="+h+",top=0,left=0";
	eval("winOpen = window.open('"+url+"','"+name+"',"+setting+")");
	winOpen.focus();
}


/* BEGIN Help-related functions */

function createHelpEvents(idnode, e){
	try{
		idnode.setAttribute("helpid",e.id + "");
		idnode.onmouseover = showHelp;
		idnode.onmouseout = clearHelp;
		idnode.className += " helpEnabled";
		
		var ch = idnode.childNodes;
		var chl = ch.length;
		for(var j=0;j<chl;j++){
			if(ch[j].nodeType == 1){
				createHelpEvents(ch[j],e);
			}
		}	
	}catch (ex){
	}
}

function scanForHelpNodes(){
	var hc = top.getid("help-text");
	if(hc.hasChildNodes()){
		for(var i=0;i<hc.childNodes.length;i++){
			var e = hc.childNodes[i];
			if(e.nodeType == 1){
				var idname = e.getAttribute("helpid");
				var idnode = getid(idname);
				if(idnode){
					createHelpEvents(idnode,e);
				}
			}
		}
	}
}

function initHelp(path){
	scanForHelpNodes();
	clearHelp();
}

function clearHelp(){
	top.clearTopHelp();
}

function showHelp(e){
	var targ;
	if (!e){
		e = window.event;
	}
	if (e.target){
		targ = e.target;
	}else if (e.srcElement){
		targ = e.srcElement;
	}
	if (targ.nodeType == 3){ // safari bug
		targ = targ.parentNode;
	}
	var n = targ.getAttribute("helpid");
	return top.showTopHelp(n);
}

/* END Help-related functions */


function registration_cancel(){
	if(confirm("Are you sure you want to cancel registration?")){
		document.location = "login.jsp";
	}
}

/*
function recolorTable(tn){
	var t = getid(tn);
	var rows = t.rows;
	var b = 0;
	for(var i=0;i<t.rows.length;i++){
		if(t.rows[i].style.display == ""){
			t.rows[i].className = "row" + b;
			b = !b;
		}
	}

}
function addTableRow(id, tr){
	var tbody = document.getElementById(id).getElementsByTagName("TBODY")[0];
	tbody.appendChild(tr);
}
*/

function centerDialog(d){
  var x = Math.round((document.body.clientWidth - d.offsetWidth) / 2);
  var y = Math.round((document.body.clientHeight - d.offsetHeight) / 2) + document.body.scrollTop;
  d.style.left = x + "px";
  d.style.top = y + "px";
}


