var isDOM = (document.getElementById || document.all || document.layers) ? true : false;
var isNS = (navigator.appName == "Netscape") ? true : false;
var isNS6=(isDOM && isNS) ? true : false;
var notNS6=(!isDOM && isNS) ? true : false;
var isIE=(!isNS && isDOM)? true : false;
var debug;

document.domain	=	_domain;	/* access denied problem with IE */

function deg2rad(deg)
	{
	return Math.PI * ( parseInt(deg) / 180 );
	}
function rad2deg(rad)
	{
	return 180 * ( parseFloat(rad) / Math.PI );
	}
function defaultSelect(dfe,key)
	{
	for(i=0; i<dfe.length;i++)
		{
		if (key==dfe[i].value)
			{
			dfe[i].selected = true;
			return;
			}
		}
	number = dfe.length - 1;
	dfe[number].selected = true; // set custom to true, not found in the list
	}

function delay(secs)
	{ /* gap is in millisecs */
	gap = secs * 1000;
	var then,now; then=new Date().getTime();
		now=then;
	while((now-then)<gap)
		{
		now=new Date().getTime();
		}
	}

function confirmMe(where,msg)
	{
	var agree = confirm(msg);
	if (agree) { goHere(where) ; }
	}
function goHere(where)
	{
	location.replace(where);
	window.focus();
	}
function returnRandom(min,max)
	{
	return (Math.round((Math.random()*(max-min))+min));
	}
function reloadMe()
	{
	location.reload();
	}


function doAjax(url,method,params,id)
	{
	// id is DIV ID
	myAjax = new Ajax.Updater(id, url, {method: method, parameters: params});
	}

function getPositionDIV(id){
	obj = document.getElementById(id);
		var left = 0;
		var top  = 0;
		
		
		while (obj.offsetParent){
			left += obj.offsetLeft;
			top  += obj.offsetTop;
			obj   = obj.offsetParent;
		}
		left += obj.offsetLeft;
		top  += obj.offsetTop;
			

		return {x:left, y:top};
	}
function setPositionDIV(id,x,y){
	obj = document.getElementById(id);
		obj.style.top	= "" + y + "px";
		obj.style.left	= "" + x + "px";

	}
function setInnerDIV(id,myS)
	{
	obj = document.getElementById(id);
		obj.innerHTML = myS;

	}
function setStyleDIV(id,styles)
	{
	obj = document.getElementById(id);
	// styles is array
	for (var key in styles)
		{
		var value = styles[key];

		eval("obj.style."+key+" = '"+value+"';");
		}

	}
function getStyleDIV(id,styles)
	{
	obj = document.getElementById(id);
	myR = {};
	// styles is array
	for (var key in styles)
		{
		eval("var value =  obj.style."+key+";");
		if(value != undefined)
			{
			myR.key = value;
			}
			else
				{
				myR.key = "undefined";
				}
		}
	return myR;
	}
function toggleDIV(id)
	{
	obj = document.getElementById(id);

	var args = toggleDIV.arguments;
		extra = (args[1]) ? args[1] : false;

	if(extra)
		{
		obj.style.visibility = (obj.style.visibility == "hidden") ? "visible" : "hidden";
		}
		else
			{
			obj.style.display = (obj.style.display == "none") ? "block" : "none";
			}

	}
function hideDIV(id)
	{
	obj = document.getElementById(id);

	var args = hideDIV.arguments;
		extra = (args[1]) ? args[1] : false;

	//alert(obj.style.display);

	if(extra)
		{
		obj.style.visibility = "hidden";
		}
		else
			{
			obj.style.display = "none";
			}

	}
function showDIV(id)
	{
	obj = document.getElementById(id);

	var args = showDIV.arguments;
		extra = (args[1]) ? args[1] : false;

	//alert(obj.style.display);

	if(extra)
		{
		obj.style.visibility = "visible";
		}
		else
			{
			obj.style.display = "block";
			}

	}
function validNumber(myNumber)
	{
	// verify that the field is a number
	myTest = !(isNaN(myNumber-0));

	return myTest;
	}
function popMe()
	{
		// myLocation, windowName, parameters of popup, internal or external	
		//	           "javascript:popMeExt('tellafriend.html?who=alumni','eCardWindow','resizable=1,toolbar=1,location=1,directories=0,status=1,menubar=0,scrollbars=1,width=740,height=600,left=center,top=center','internal');"

	var args = popMe.arguments;

	if (window.screen) 
		{
		var screenAvailWidth	= screen.availWidth  ;
		var screenAvailHeight	= screen.availHeight ;
		}
// undefined to empty
	if(typeof screenAvailWidth == "undefined"){screenAvailWidth = "";}
	if(typeof screenAvailHeight == "undefined"){screenAvailHeight = "";}


	if(args[0]){myLocation=args[0];}else{myLocation="";}
	if(args[1]){windowName=args[1];}else{windowName="genericPopup";}
	if(!args[2]){parameters="resizable=1,toolbar=1,location=1,directories=0,status=0,menubar=1,scrollbars=1,width=800,height=500,left=130,top=10";}else{parameters=args[2];}

var regExp = /(\S*)(width\=)(\S+)(\,)(\S*)(height=)(\S+)(\,)(\S*)(left\=)(\S+)(\,)(top\=)(\S+)(\,*)/
var result = parameters.match(regExp);
// result[3]= value to right of left=
// result[6]= value to right of top= 
if (result != null)
	{
	// redo left
	switch(result[11].toString())
		{
		default:
			// number
			myNumber = parseInt(result[11]);
		break;
		case "right":
			// myNumber = parseInt(screenAvailWidth-width);
			(screenAvailWidth) ? myNumber = parseInt(parseInt(screenAvailWidth)-result[3]) : myNumber = 0;
		break;
		case "center":
			// myNumber = parseInt((screenAvailWidth-width)/2);
			(screenAvailWidth) ? myNumber = parseInt((parseInt(screenAvailWidth)-result[3])/2) : myNumber = 0;
		break;
		}
		myVar = "left="+result[11].toString();
			myNewVar = "left="+myNumber;
		parameters = parameters.split(myVar).join(myNewVar);

	// redo top
	switch(result[14].toString())
		{
		default:
			// number
			myNumber = parseInt(result[14]);
		break;
		case "bottom":
			// myNumber = parseInt(screenAvailHeight-height);
			(screenAvailHeight) ? myNumber = parseInt(parseInt(screenAvailHeight)-result[7]) : myNumber = 0;
		break;
		case "center":
			// myNumber = parseInt((screenAvailHeight-height)/2);
			(screenAvailHeight) ? myNumber = parseInt((parseInt(screenAvailHeight)-result[7])/2) : myNumber = 0;			
		break;
		}
		myVar = "top="+result[14].toString();
			myNewVar = "top="+myNumber;
		parameters = parameters.split(myVar).join(myNewVar);		
	}

// if left=left, left=0
// if left=right, left=screenAvailWidth-width : 100 if not set
// if left=center, left=(screenAvailWidth-width)/2  : 50 if not set

// if top=top, top=0;
// if top = bottom, top=screenAvailHeight-height : 100 if not set
// if top=center, top=(screenAvailHeight-height)/2  : 50 if not set

/*
var screenWidth = "{screenWidth}";
	var screenHeight = "{screenHeight}";
	var screenAvailWidth = "{screenAvailWidth}";
	var screenAvailHeight = "{screenAvailHeight}";
	*/
	if(!args[3]){myMethod="internal";}else{myMethod=args[3];}

	if(myMethod=="internal")
		{
		// internal window
		eval('var '+windowName+' = window.open(myLocation,"'+windowName+'",parameters);');
		eval(windowName+'.focus();');
		}
		else if(myMethod == "external")
			{
			myExit=escape(myLocation);
			myCurrent=escape(location.href);

			//external window
			var exitPopupWindow = window.open(_popMe+"myCurrent="+myCurrent+"&myExit="+myExit,"exitPopupWindow",parameters);
			exitPopupWindow.focus();
			}
			else
				{
				alert(document.domain);
				// document write in new window
				if(!args[4]){myString="testing";}else{myString=args[4];}
					
				alert(myString);
					eval('var '+windowName+' = window.open(myLocation,"'+windowName+'",parameters);');
						// window opener callback to allow this?	... need an actual file so IE doesn't give security error (devil)					
						eval(windowName+'.document.write(myString);');							
							eval(windowName+'.document.close();');
						eval(windowName+'.focus();');

						
						
				}
	

	//return (eval(windowName));
	}

function isFunction(a) {
    return typeof a == 'function';
}
function isObject(a) {
    return (a && typeof a == 'object') || isFunction(a);
}
function isArray(a) {
    return isObject(a) && a.constructor == Array;
}

function getSearch()
	{
	var myArr = null;
	var myS = document.URL.indexOf('search/');
	if (myS != -1)
		{
		myArr = document.URL.substring(myS+7, document.URL.length).split(',');
		}
	return myArr;
	}
function getVARS()
	{
	var myIndex = document.URL.indexOf('?');
	var myKeys = "";
	var myValues = "";	
	if (myIndex != -1)
		{
		var pairs = document.URL.substring(myIndex+1, document.URL.length).split('&');		
			for (var i=0; i<pairs.length; i++)
				{
				nameVal = pairs[i].split('=');
				if(nameVal[0])
					{
					eval(unescape(nameVal[0])+" = '" + unescape(nameVal[1]) + "';");
					//alert(unescape(nameVal[0])+" = '" + unescape(nameVal[1]) + "';");
					
					}
				}		
		}
	}




function validField(myField)
	{
		// verify that it is not empty
	if(myField == "")
		{
		return false;
		}
		else
			{
			return true;
			}
	}
function validEmail(myEmail)
	{
	// returns true or false
	// m@m.com9 should not be valid :::::::  var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	return(filter.test(myEmail));
	}


