/***********************************************
* Cool DHTML tooltip script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/
document.onmouseout = hideddrivetip;
var offsetxpoint=-60 //Customize x offset of tooltip
var offsetypoint=20 //Customize y offset of tooltip
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""

function ietruebody(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(thetext, thecolor, thewidth){
	if (ns6||ie){
		if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
			if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
				tipobj.innerHTML=thetext
				enabletip=true
				return false
	}
}

function positiontip(e){
	if (enabletip){
	var curX=(ns6)?e.pageX : event.x+ietruebody().scrollLeft;
	var curY=(ns6)?e.pageY : event.y+ietruebody().scrollTop;
	//Find out how close the mouse is to the corner of the window
	var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
	var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20

	var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000

	//if the horizontal distance isn't enough to accomodate the width of the context menu
	if (rightedge<tipobj.offsetWidth)
		//move the horizontal position of the menu to the left by it's width
		tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
	else if (curX<leftedge)
		tipobj.style.left="5px"
	else
		//position the horizontal position of the menu where the mouse is positioned
		tipobj.style.left=curX+offsetxpoint+"px"

		//same concept with the vertical position
			if (bottomedge<tipobj.offsetHeight)
				tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
			else
				tipobj.style.top=curY+offsetypoint+"px"
				tipobj.style.visibility="visible"
	}
}

function hideddrivetip(){
	if (ns6||ie){
		enabletip=false
		tipobj.style.visibility="hidden"
		tipobj.style.left="-1000px"
		tipobj.style.backgroundColor=''
		tipobj.style.width=''
	}
}
/*autoTab*/
var isNN = ( navigator.appName.indexOf( "Netscape" ) != -1 ); 
 
function autoTab( input,len, e ) { 

	var keyCode	= ( isNN ) ? e.which : e.keyCode; 
	var filter	= ( isNN ) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46]; 
	if( input.value.length >= len && !containsElement( filter, keyCode )) { 
	input.value = input.value.slice( 0, len ); 
	input.form[( getIndex( input ) + 1 ) % input.form.length].focus(); 
	} 
	return true; 
} 
 
function containsElement( arr, ele ) { 
	var found = false, index = 0; 
	while( !found && index < arr.length ) 
	if( arr[index] == ele ) { 
		found = true; 
	} else { 
		index++; 
	} 
	return found; 
} 
 
function getIndex( input ) { 
	var index = -1, i = 0, found = false; 
	while ( i < input.form.length && index == -1 ) 
	if ( input.form[i] == input ) { 
		index = i; 
	} else { 
		i++; 
	} 
	return index; 
} 
/*endautoTab*/

/*client side validation scripts for me */
function comparePhone(control, args, lbl){
	var re1 = new RegExp('[0-9][0-9][0-9]$');
	var re2 = new RegExp('[0-9][0-9][0-9]$');
	var re3 = new RegExp('[0-9][0-9][0-9][0-9]$');
	var re4 = new RegExp('[0-9][0-9]?[0-9]?[0-9]?[0-9]?$');

	if (document.all(control + 'Areacode').value.match(re1)
				&& document.all(control + 'Prefix').value.match(re2)
				&& document.all(control + 'Suffix').value.match(re3)) 
			{	
				if (document.all(control + 'Ext') != null
					&& document.all(control + 'Ext').value.length > 0)
				{
					if (document.all(control + 'Ext').value.match(re4))
					{			
						lbl.style.color = 'black';
						args.IsValid = true;
					}else{
						lbl.style.color= 'red';
						args.IsValid = false;
					}
				}else{
					lbl.style.color= 'black';
					args.IsValid = true;
				}	
			}else{
				args.IsValid = false;
				lbl.style.color = 'red';
			}

}

function phoneValidateNotReq(oSrc, args){
	regExp =  /validate/gi;
	control = oSrc.id.replace(regExp, '');	
	
	var lbl = document.all('lbl' + control);	
	
	if (document.all(control + 'Areacode').value.length != 0
		|| document.all(control + 'Prefix').value.length != 0
		|| document.all(control + 'Suffix').value.length != 0) 
	{
		comparePhone(control, args, lbl);
	}else{
		args.IsValid = true;
		lbl.style.color = 'black';
	}
}

function phoneValidate(oSrc, args){
	regExp =  /validate/gi;
	control = oSrc.id.replace(regExp, '');
	
	var lbl = document.all('lbl'+ control);
	
	comparePhone(control, args, lbl);
}


/*end client validation scripts*/

function popup(mylink, windowname)
{
	if (! window.focus)return true;
		var href;
	if (typeof(mylink) == 'string')
		href=mylink;
	else
		href=mylink.href;
	window.open(href, windowname, 'width=650,height=500,scrollbars=no');
	return false;
}

document.onmousemove=positiontip

