var nav = (document.layers) ? true : false;
var ie = (document.all) ? true : false;
var name1,name2,per
var message = ""
var col;
var max=1,len,index=0,pos=0,timer;
text = new Array(message);
function start()
{
//	document.Numerology.reset();
	clearTimeout(timer);
	col = "white";
	if(start.arguments.length > 0)
	{
		max=start.arguments.length;
		for(i = 0; i < max; i++)
			text[i] = start.arguments[i];
		col = "red";
	}
	len = text[0].length;
	
	index = 0;
	pos = 0;
	timer = setTimeout("display()", 70);
}
function display() 
{
	str ='<font size = "3" face="Arial" color='+col+'>'+ text[index].substring(0, pos) + "_";

	if (ie)
		lay.innerHTML = str;
	else if(nav)
	{
		document.lay.document.write(str)
		document.lay.document.close()
	}
	if(pos++ == len) 
		{
			pos = 0; 
			timer = setTimeout("display()", 2000); 
			if(++index == max) index = 0; 
			len = text[index].length;
		} 
	else
		timer = setTimeout("display()", 50);
}
function ShowLayer()
{
	if (document.all)
		document.write('<div id = "lay" STYLE="position:absolute; top:250; left:325; width:165;  height:110; font-family:verdana; font-size:10pt; background-color:grey; z-index:2"></div>');
	else if(document.layers)
		document.write('<LAYER ID = "lay" position="absolute" top="250" left="325" width="165" height="110" bgcolor="white" z-index="2"></LAYER>');0
}
function getRealName(name)
{
		var asc, tName, flag = 1;
		name = name.replace(/ /g,"");
		name = name.toUpperCase();
		for(i=0; (i < name.length && flag != 0); i++)
		{
			asc = name.charCodeAt(i);
			if (!((asc >= 65 && asc <= 90) || (asc >= 97 && asc <= 122) || (asc == 32)))
			{
/*				name = name.substring(0,i) + name.substring(i+1,name.length);
				i--; */
				flag = 0;
			} 
		}
		if(flag) 
		{
			for(i=0; i < name.length; i++)
			{
				if(name.charAt(0) != name.charAt(i))
					return(name);
			}
		}
			return("Err");
}
function Numero()
{
	var fName,pName="",placeName="",dtValue;
	This = document.Numerology;
	fName = getRealName(This.fName.value);
	dtValue = isDate();
	if(fName == "Err")	
	{
		alert("Enter your full name correctly");
		document.Numerology.fName.focus()
		return(false);
	}
	else if(dtValue == 0)
	{
		alert("Enter your Birth day correctly");
		document.Numerology.dt.focus()
		return(false);
	}
	else
	{
		getValues(fName,pName,placeName,dtValue);
		return(true);
	}
}
function isDate()
{
	This = document.Numerology;
	mIndex = This.mn.selectedIndex;
	monthVal = mIndex;
	dIndex = This.dt.selectedIndex;
	dateVal = dIndex;
	yearVal = parseInt(This.yr.value);

	today = new Date();	
	if(mIndex == 0 || dIndex == 0 || isNaN(yearVal) || yearVal < 1900 || yearVal > today.getFullYear())
		return(0);
	else
		return(new Date(monthVal + "/" + dateVal + "/" + yearVal));
}
function getValues(fName,pName,placeName,dtValue)
{
	var zNo = new Array();
	birthNo = dTotal(dtValue.getDate());
	zNo = zodiacNo(dtValue);
	pNo = textNo(pName);
	finalNo = textNo(fName);
	placeNo = textNo(placeName);
	perNo = periodicityNo(dtValue.getYear());
	rArray = new Array();
	rArray[0] = birthNo;
	if(zNo.length > 1)
		rArray = rArray.concat(zNo[0],zNo[1]);
	else
			rArray = rArray.concat(zNo[0]);
	rArray = rArray.concat(pNo,finalNo,placeNo)
	getMessage(rArray);
	This = document.Numerology;
	This.dtValue.value = dtValue.getMonth()+1 + " " +dtValue.getDate() + " " + dtValue.getFullYear();
	total = ""
	for(i=0;i<rArray.length;i++)
		total = total + rArray[i];
	This.total.value = total;
	This.gen.value = gen;
	This.pos.value = pos;
	This.neg.value = neg;
	This.cmp.value = cmp;
	This.luk.value = luk;
	return(true); 
}	
function periodicityNo(val)
{
	if (val < 100)
		return(val);
	else
		return (periodicityNo( val % 10 + parseInt(val/10)));
}
function textNo(name)
{
	var value = 0;
	for(i = 0; i < name.length; i++)
	{
		switch(name.charAt(i))
		{
			case 'A': case 'I': case 'J': case 'Q': case 'Y':	value = value + 1; break;
			case 'B': case 'K': case 'R':	value = value + 2; break;
			case 'C': case 'G': case 'L': case 'S': value = value + 3; break;
			case 'D': case 'M': case 'T':	value = value + 4; break;
			case 'E': case 'H': case 'N': case 'X':	value = value + 5; break;
			case 'U': case 'V': case 'W':	value = value + 6; break;
			case 'O': case 'Z':	value = value + 7; break; 
			case 'P': case 'F':	value = value + 8; break;
		}
	}	
	value = dTotal(value);
	return(value);
}



function dTotal(val)
{
	if (val < 10)
		return(val);
	else
		return (dTotal( val % 10 + parseInt(val/10)));
}

function zodiacNo(bDay)
{
	var mn = bDay.getMonth();
	var dt = bDay.getDate();
	var zNo = new Array();
	switch (mn)
	{
		case 0 :	zNo[0] = 8;
					break;
		case 1 :	if(dt <= 18 || dt == 20)
						zNo[0] = 8;
					else if(dt == 19)
					{
						zNo[0] = 3; zNo[1] = 8;
					}
					else
						zNo[0] = 3;
					break;
		case 2 :	if(dt <= 20)
						zNo[0] = 3;
					else
						zNo[0] = 9;
					break;
		case 3 :	if(dt <= 19)
						zNo[0] = 9;
					else
						zNo[0] = 6;
					break;
		case 4 :	if(dt <= 20)
						zNo[0] = 6;
					else
						zNo[0] = 5;
					break;
		case 5 :	if(dt <= 20)
						zNo[0] = 5;
					else
					{
						zNo[0] = 2; zNo[1] = 7;
					}
					break;
		case 6 :	if(dt <= 20)
					{
						zNo[0] = 2; zNo[1] = 7;
					}
					else
					{
						zNo[0] = 1; zNo[1] = 4;
					}
					break;
		case 7 :	if(dt <= 20)
					{
						zNo[0] = 1; zNo[1] = 4;
					}
					else
						zNo[0] = 5;
					break;
		case 8 :	if(dt <= 20)
						zNo[0] = 5;
					else
						zNo[0] = 6;
					break;
		case 9 :	if(dt <= 20)
						zNo[0] = 6;
					else
						zNo[0] = 9;
					break;
		case 10 :	if(dt <= 20)
						zNo[0] = 9;
					else
						zNo[0] = 3;
					break;
		case 11 :	if(dt <= 20)
						zNo[0] = 3;
					else
						zNo[0] = 8;
					break;
		default : alert("False");
	}
	return(zNo);
}