var dom = (document.getElementById) ? true : false;
var ns5 = ((navigator.userAgent.indexOf("Gecko")>-1) && dom) ? true: false;
var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
var ns4 = (document.layers && !dom) ? true : false;
var ie4 = (document.all && !dom) ? true : false;
var nodyn = (!ns5 && !ns4 && !ie4 && !ie5) ? true : false;

// resize fix for ns4
var origWidth, origHeight;
if (ns4) {
	origWidth = window.innerWidth; origHeight = window.innerHeight;
	window.onresize = function() { if (window.innerWidth != origWidth || window.innerHeight != origHeight) history.go(0); }
}

// avoid error of passing event object in older browsers
if (nodyn) { event = "nope" }

///////////////////////  CUSTOMIZE HERE   ////////////////////
// settings for tooltip 
// Do you want tip to move when mouse moves over link?
var tipFollowMouse= true;	
// Be sure to set tipWidth wide enough for widest image
var tipWidth= 300;
var offX= 20;	// how far from mouse to show tip
var offY= 12; 
var tipFontFamily= "Verdana, arial, helvetica, sans-serif";
var tipFontSize= "8pt";
var tipFontColor= "#000000";
var tipBgColor= "#DDECFF"; 
var tipBorderColor= "#000080";
var tipBorderWidth= 3;
var tipBorderStyle= "ridge";
var tipPadding= 4;

// tooltip content goes here (image, description, optional bgColor, optional textcolor)
var messages = new Array();
// multi-dimensional arrays containing: 
// image and text for tooltip
// optional: bgColor and color to be sent to tooltip
messages[0] = new Array('images/spacer.gif', 'Divorce - In South Carolina, a divorce may be obtained on fault or no-fault grounds: (1) No Fault: South Carolina statutes provide that a divorce can be granted upon a finding that the Husband and Wife have lived separate and apart, without cohabitation, for a period of one year. (2)	Fault: Requires a finding that a party has: (a)	committed adultery (adultery); (b)	deserted the other party for a period of one year (desertion); (c)	physically abused the other party (physical cruelty; or (d)	been habitually drunk or on drugs (habitual drunkenness) If fault grounds are established, a party may be entitled to a divorce from the other party within three months from the date of filing for the divorce.  If a divorce is pursued on no-fault grounds, the spouses must be separated for a year before filing for the divorce.',"#FFFFFF");
messages[1] = new Array('images/spacer.gif','Child Custody - The issue of child custody arises when a Husband and Wife separate or divorce.  There are two basic types of legal custody, sole custody and joint custody.  The judge considers the BEST INTERESTS of the child when making a custody determination.  Factors a court may consider in determining the BEST INTERESTS of the child include: (a) The relative fitness of each parent  (b) Who is the primary caretaker of the child (c) The amount of time a parent can spend with the child (d) Education and parenting skills of each parent (e) Each parents conduct  - immoral or illegal, (f) Resources and attributes of each parent. No one factor, alone, will solely determine the custody of a child.  Rather, the judge, with the assistance of a court-appointed guardian ad litem, will consider all the facts and circumstances surrounding the case before making a determination.',"#DDECFF");
messages[2] = new Array('images/spacer.gif','Child Support - The amount of child support to be paid by the non-custodial parent is governed by statute and based upon the South Carolina Child Support Guidelines.  The Guidelines are based on the gross income of each parent and take into consideration other expenses for the children (for example, day care expenses, payment of medical insurance, and the existence of other children from a previous relationship in the home).  Except in unusual circumstances, the guidelines do not consider the actual living expenses of each parent (cost of home or apartment, utilities, etc.).  Child support can be paid directly to the custodial parent or indirectly to the custodial parent through the Family Court.  Failure to timely pay child support can subject a parent to the contempt powers of the court, including fines and even jail time.','#003366','white');
messages[3] = new Array('images/spacer.gif', 'Name Change - Prior to 2002, the process for obtaining a name change was fairly straightforward. Due, in part, to enhanced security around the country, the process for obtaining a legal name change has become much more complicated.  If a woman desires to go back to her maiden name pursuant to a divorce action, that request may be pled in the divorce action and is generally granted as a matter of course.  However, if the request if not made pursuant to a divorce, the court may require the following inquiries be made: criminal background check, DSS check (for abuse and neglect of children, fingerprint check, and sexual predator registry, and bankruptcy check).',"#FFFFFF");
messages[4] = new Array('images/spacer.gif', 'Equitable Distribution -  Equitable distribution involves identifying assets (house, cars, personal property) acquired during the marriage and dividing the assets fairly between the parties.  As a general rule, property acquired prior to the marriage is not subject to distribution; however, the existence of non-marital property may affect an equitable distribution.  Factors the court may consider in equitable distribution include: * Length of marriage * Marital and non-marital assets * Misconduct of either party * Child custody * Income of each spouse.',"#DDECFF");
messages[5] = new Array('images/spacer.gif', 'Spousal Support -  A grant of spousal support/ alimony is the means by which the court may ensure that a spouse maintains the same or similar standard of living that he/she enjoyed during the marriage.  Types of spousal support/alimony include: *Permanent alimony * Lump sum alimony * Rehabilitative alimony * Reimbursement alimony. Factors involved in an award of spousal support/alimony include: * Duration of the marriage * Standard of living during the marriage * Spouses need for additional education/training to support himself/herself * Spouses income and ability to pay alimony * Misconduct of spouse.',"#FFFFFF");
messages[6] = new Array('images/spacer.gif', 'Adoption - The procedures for adoption are complicated and strictly regulated by statute.  Adoption proceedings often occur in conjunction with proceedings for Termination of Parental Rights.  The regulations differ depending on the relationship of the prospective parent to the child, for example, a court may waive certain requirements when the prospective parent is already the childs stepparent.  To grant  an adoption, the court needs to find that the adoption is in the best interests of the child.  The court will appoint a guardian ad litem to represent the interests of the child in the adoption proceedings.',"#DDECFF");
messages[7] = new Array('images/spacer.gif', 'Paternity - The issue of paternity arises when a man or a woman is not certain that the man is the father of a particular child.  The mother or father can request a paternity test.  The test is usually conducted by taking a sample from the mouth or by a blood test.  If paternity is established, the man is bestowed with all the legal rights and responsibilities of a father, including the right to request custody or visitation and the duty to pay child support.',"#FFFFFF");
messages[8] = new Array('images/spacer.gif', 'Premarital/Prenuptial Agreements - A premarital/prenuptial agreement is a contract entered into between two prospective spouses prior to their marriage.  Most often, premarital agreements are tailored to protect one spouse who has significant assets prior to the marriage to make certain that, in the event of a divorce, the other spouse will have no claim to said assets.  There is little case law in South Carolina regarding premarital agreements, and questions remain regarding their enforceability.',"#FFFFFF");
// preload images that are to appear in tooltip
// from arrays above
if (document.images) {
	var theImgs = new Array();
	for (var i=0; i<messages.length; i++) {
  	theImgs[i] = new Image();
		theImgs[i].src = messages[i][0];
  }
}

// to layout image and text, 2-row table, image centered in top cell
// these go in var tip in doTooltip function
// startStr goes before image, midStr goes between image and text
var startStr = '<table width="' + tipWidth + '"><tr><td align="center" width="100%"><img src="';
var midStr = '" border="0"></td></tr><tr><td valign="top">';
var endStr = '</td></tr></table>';

////////////////////////////////////////////////////////////
//  initTip	- initialization for tooltip.
//		Global variables for tooltip. 
//		Set styles for all but ns4. 
//		Set up mousemove capture if tipFollowMouse set true.
////////////////////////////////////////////////////////////
var tooltip, tipcss;
function initTip() {
	if (nodyn) return;
	tooltip = (ns4)? document.tipDiv.document: (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
	tipcss = (ns4)? document.tipDiv: tooltip.style;
	if (ie4||ie5||ns5) {	// ns4 would lose all this on rewrites
		tipcss.width = tipWidth+"px";
		tipcss.fontFamily = tipFontFamily;
		tipcss.fontSize = tipFontSize;
		tipcss.color = tipFontColor;
		tipcss.backgroundColor = tipBgColor;
		tipcss.borderColor = tipBorderColor;
		tipcss.borderWidth = tipBorderWidth+"px";
		tipcss.padding = tipPadding+"px";
		tipcss.borderStyle = tipBorderStyle;
	}
	if (tooltip&&tipFollowMouse) {
		if (ns4) document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = trackMouse;
	}
}

window.onload = initTip;

/////////////////////////////////////////////////
//  doTooltip function
//			Assembles content for tooltip and writes 
//			it to tipDiv
/////////////////////////////////////////////////
var t1,t2;	// for setTimeouts
var tipOn = false;	// check if over tooltip link
function doTooltip(evt,num) {
	if (!tooltip) return;
	if (t1) clearTimeout(t1);	if (t2) clearTimeout(t2);
	tipOn = true;
	// set colors if included in messages array
	if (messages[num][2])	var curBgColor = messages[num][2];
	else curBgColor = tipBgColor;
	if (messages[num][3])	var curFontColor = messages[num][3];
	else curFontColor = tipFontColor;
	if (ns4) {
		var tip = '<table bgcolor="' + tipBorderColor + '" width="' + tipWidth + '" cellspacing="0" cellpadding="' + tipBorderWidth + '" border="0"><tr><td><table bgcolor="' + curBgColor + '" width="100%" cellspacing="0" cellpadding="' + tipPadding + '" border="0"><tr><td>'+ startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr + '</td></tr></table></td></tr></table>';
		tooltip.write(tip);
		tooltip.close();
	} else if (ie4||ie5||ns5) {
		var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
		tipcss.backgroundColor = curBgColor;
	 	tooltip.innerHTML = tip;
	}
	if (!tipFollowMouse) positionTip(evt);
	else t1=setTimeout("tipcss.visibility='visible'",100);
}

var mouseX, mouseY;
function trackMouse(evt) {
	mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
	mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.scrollTop;
	if (tipOn) positionTip(evt);
}

/////////////////////////////////////////////////////////////
//  positionTip function
//		If tipFollowMouse set false, so trackMouse function
//		not being used, get position of mouseover event.
//		Calculations use mouseover event position, 
//		offset amounts and tooltip width to position
//		tooltip within window.
/////////////////////////////////////////////////////////////
function positionTip(evt) {
	if (!tipFollowMouse) {
		mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
		mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.scrollTop;
	}
	// tooltip width and height
	var tpWd = (ns4)? tooltip.width: (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
	var tpHt = (ns4)? tooltip.height: (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
	// document area in view (subtract scrollbar width for ns)
	var winWd = (ns4||ns5)? window.innerWidth-20+window.pageXOffset: document.body.clientWidth+document.body.scrollLeft;
	var winHt = (ns4||ns5)? window.innerHeight-20+window.pageYOffset: document.body.clientHeight+document.body.scrollTop;
	// check mouse position against tip and window dimensions
	// and position the tooltip 
	if ((mouseX+offX+tpWd)>winWd) 
		tipcss.left = (ns4)? mouseX-(tpWd+offX): mouseX-(tpWd+offX)+"px";
	else tipcss.left = (ns4)? mouseX+offX: mouseX+offX+"px";
	if ((mouseY+offY+tpHt)>winHt) 
		tipcss.top = (ns4)? winHt-(tpHt+offY): winHt-(tpHt+offY)+"px";
	else tipcss.top = (ns4)? mouseY+offY: mouseY+offY+"px";
	if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
}

function hideTip() {
	if (!tooltip) return;
	t2=setTimeout("tipcss.visibility='hidden'",100);
	tipOn = false;
}
