var tempEmailNode;

function checkIfExists(node)
{
	//Only called if portal enabled.
	var email = node.value;
	tempEmailNode = node;

	var id = ''; 
	try{
		id = $('ID').value; //reg form has hidden ID
	} catch (e) {}
	
	var url = 'ajaxUniqueCheck.asp';
	var pars = 'tableName=Contacts' 
		     + '&fieldName=HomeEmail'
			 + '&requiresignin=false'
			 + '&bSystemWide=true'
			 + '&oid='+id
			 + '&val=' + escape(email)			 
			 + '&rnd='+ (Math.random() * Date.parse(new Date()));
			 
	var target = '';
		
	var myAjax = new Ajax.Updater(target, url, { method: 'get', parameters: pars, onComplete: function (r){										
									if(r.responseText.indexOf("is not a unique") > -1)
									{
										if(confirm("This email address is already in our system. Click OK to go to the portal. If you would like to change your email address, click Cancel."))
										{
											window.location.href = document.getElementById('portalLink').href + "&UserID=" + email;
										}
										else
										{
											tempEmailNode.value = "";
											tempEmailNode.focus();
										}
									}
								} });
}

function postRegFee(buttonNode,suffix)
{
	buttonNode.disabled = "true";
	$('postMsg').innerHTML = "";
	
	var familyID = escape($('familyID').value);
	var trantype = escape($('trantype_'+suffix).value);
	var trandate = escape($('trandate_'+suffix).value);
	var tranfee = escape($('tranfee_'+suffix).value);
	var trandisc = escape($('trandisc_'+suffix).value);
	var tranamt = escape($('tranamt_'+suffix).value);
	var trannote = escape($('trannote_'+suffix).value);
	var trantax = 0;
	if ( $('trantax_'+suffix) ) trantax = escape($('trantax_'+suffix).value);
	
	var tranqty = escape($('tranqty_'+suffix).value);
	
	var url = 'studentenroll.asp';
	var hdrs = ['HTTP_xml','on'];		
	var pars = 'familyID='+familyID+'&trantype='+trantype+'&trandate='+trandate+'&tranamt='+tranamt+'&tranfee='+tranfee+'&trandisc='+trandisc+'&trannote='+trannote+'&trantax='+trantax+'&tranqty='+tranqty+'&action=postRegFee&rnd='+ (Math.random() * Date.parse(new Date())) ;
	var target = 'postMsg';
	//alert(pars);		
	
	if ($('spin')) $('spin').style.display='';

	var myAjax = new Ajax.Request(url, {
					method: 'get', 
					parameters: pars, 
					requestHeaders: hdrs,
					onComplete: function(resp) {								
							$('spin').style.display='none';
							//alert(resp.responseText);
							$('postMsg').innerHTML = 'Transaction Posted';
							}
					}	);
}

function postFee(buttonNode,sid,cid,id)
{
	buttonNode.disabled = "true";
	
	$('postMsg').innerHTML = "";
	
	var trandate = escape($('trandate_'+id).value);
	var tranfee = escape($('tranfee_'+id).value);
	var trandisc = escape($('trandisc_'+id).value);
	var tranamt = escape($('tranamt_'+id).value);
	var trannote = escape($('trannote_'+id).value);
	var trantax = 0;
	if ( $('trantax_'+id) ) trantax = escape($('trantax_'+id).value);	
	
	var tranqty = escape($('tranqty_'+id).value);	
		
	var url = 'studentenroll.asp';
	var hdrs = ['HTTP_xml','on'];		
	var pars = 'sid='+escape(sid)+'&cid='+escape(cid)+'&trandate='+trandate+'&tranamt='+tranamt+'&tranfee='+tranfee+'&trandisc='+trandisc+'&trannote='+trannote+'&trantax='+ trantax +'&tranqty='+ tranqty +'&action=postfee&rnd='+ (Math.random() * Date.parse(new Date())) ;
	var target = 'postfeeresults';
	//alert(pars);		
	
	if ($('spin')) $('spin').style.display='';

	var myAjax = new Ajax.Request(url, {
					method: 'get', 
					parameters: pars, 
					requestHeaders: hdrs,
					onComplete: function(resp) {								
							$('spin').style.display='none';
							$('postMsg').innerHTML = 'Transaction Posted';
							}
					}	);

}

function recalcTax(suffix)
{		
	if ( !$('taxrate') ) return;
	
	var sTaxRate = $('taxrate').value;
	if( sTaxRate.length == 0 ) sTaxRate = "0.00";
	
	var rate = parseFloat(sTaxRate)/100;
	
	var origamtfield = $('tranfee_'+suffix);
	var discamtfld = $('trandisc_'+suffix);
	var netamtfld = $('tranamt_'+suffix);
	var taxamtfld = $('trantax_'+suffix);
	
	if(origamtfield && discamtfld && netamtfld && taxamtfld)
	{
		var origamt = origamtfield.value;
		var discamt = discamtfld.value;
		if(discamt.length==0) discamt = "0.00";
		var newtaxamt = 0.00;
		newtaxamt = rate * (parseFloat(origamt)-parseFloat(discamt));
		taxamtfld.value = formatCurrency(newtaxamt,true);
	}
}

function recalcTotal(el) 
{
	var id = el.id.substring(el.id.indexOf("_")+1);
	//alert(id + ' changed.');
	
	var tranamt = $('tranamt_' + id).value;
	tranamt = parseFloat(tranamt);
	if(isNaN(tranamt)) tranamt=0;
	
	var tranfee = $('tranfee_' + id).value;
	tranfee = parseFloat(tranfee);
	if(isNaN(tranfee)) tranfee=0;

	var trandisc = $('trandisc_' + id).value;
	if(trandisc.indexOf("-") == 0)
	{
		//alert("negative");
		trandisc = -parseFloat(trandisc.substring(1));
		//alert(trandisc);
	}
	else
	{
		trandisc = parseFloat(trandisc);		
	}
			
	if(isNaN(trandisc)) trandisc=0;

	var trantax = 0;
	if( $('trantax_'+id) )
		trantax = parseFloat($('trantax_'+id).value);
	
	if(isNaN(trantax)) trantax = 0;
	/*
	if (el.id.substring(0,7)=='tranamt') 
	{
		//when net amt changes, assume original amt stays the same
		//Also, net amt should never be greater than original amt.
		if (tranamt>tranfee && tranfee>0) {
			alert('Amount cannot be greater than Original amount.\nChange Original amount first.');
			return false;
		}
		if (tranfee>0) { //&& trandisc>0
			$('tranamt_' + id).value = formatCurrency(tranfee - trandisc,true);
		}
	}
	*/
	if (el.id.substring(0,7)=='tranamt') 
	{
		//when net amt changes, recalculate discount (Orig amount can no longer change)
		if (tranfee>0) { // && trandisc>0
			$('trandisc_' + id).value = formatCurrency(tranfee - tranamt + trantax,true);
		}
	}

	if (el.id.substring(0,7) =='tranfee') {
		//if orig amt changes, discount stays same and net amt changes
		if (tranfee==0) $('trandisc_' + id).value = '';
		if (tranfee>0) { //&& trandisc>=0
			if($('taxrate')) 
			{ 					
				recalcTax(id);
				trantax = parseFloat($('trantax_'+id).value);
			}
			$('tranamt_' + id).value = formatCurrency(tranfee - trandisc + trantax,true);
		}
	}

	if (el.id.substring(0,8) =='trandisc') {
		//if discount changes, recalc net amt
		//if (tranfee>0 && trandisc>=0) {
		if($('taxrate')) 
		{ 					
			recalcTax(id);
			trantax = parseFloat($('trantax_'+id).value);
		}		
		$('tranamt_' + id).value = formatCurrency(tranfee - trandisc + trantax,true);
		//}
	}
	
	if (el.id.substring(0,7) =='trantax') {
		//if tax changes, recalc net amt
		//if (tranfee>0 && trandisc>=0) { 
		
		$('tranamt_'+id).value = formatCurrency(tranfee - trandisc + trantax,true);
		//}
	}
}

function formatCurrency(num,withcents) {

	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	if (withcents)
		return (((sign)?'':'-') + '' + num + '.' + cents);
	else
		return (((sign)?'':'-') + '' + num);

}

function emailcheck(str) {
		var at="@";
		var dot=".";
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);

		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail ID");
		   return false; }

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail ID");
		   return false;	}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail ID");
		    return false; }

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID");
		    return false;  }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID");
		    return false; }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID");
		    return false; }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail ID");
		    return false; }

		 if (str.indexOf("'")>-1){
		    alert("Invalid E-mail ID");
		    return false; }

 		 return true;

}

function showdiv(div) {
	//alert(document.getElementById(div).innerHTML);
	//alert(document.getElementById(div).style.display); 
	//alert(document.getElementById(div).style.visibility); 
	document.getElementById(div).style.display="normal"; 
	document.getElementById(div).style.visibility="visible"; 
	document.getElementById(div).style.zIndex=500; 
}

function hidediv(div) {
	document.getElementById(div).style.visibility="hidden"; 
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  
  //var d=document; if(d.images){ if(!d.MM_p) d.MM_p= newArray();vari,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
  //  if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x= document.getElementById(n); return x; }
  function MM_swapImage(){//v3.0vari,j= 0,x,a=  MM_swapImage.arguments;
    document.MM_sr=newArray;for(i=0;i<(a.length-2);i+=3)if((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function isNumericKey(e)
{
var k = document.all ? e.keyCode : e.which;
//alert(k);
return ((k > 47 && k < 58) || k == 8 || k == 0 ||k==null || k==0 || k==8 || k==9 || k==13 || k==27 || k==118);
}
function isDecimalKey(e)
{
var k = document.all ? e.keyCode : e.which;
return ((k > 47 && k < 58) || k == 8 || k == 0 || k == 46);
}
function extractNumeric(el)
{
var str = el.value;
return str.replace(/\D/g,"");
}
function validNumber(el)
{
var str = el.value;
if (str=='') return true;
if (NaN(str)) {alert('number invalid');}
el.value = str.replace(/\D/g,"");

return;
return (str.replace(/\D/g,"")) ;
}


function validDate(thisDate){
 val=thisDate.value
 if (val=='') return true;
 if (val.length >= 1 && val.length < 5) {alert('Invalid Date Format.'); return false} 
 mth = val.toLowerCase().substr(0,3)
 if (mth=='jan'||mth=='feb'||mth=='mar'||mth=='apr'||mth=='may'||mth=='jun'||mth=='jul'||mth=='aug'||mth=='sep'||mth=='oct'||mth=='nov'||mth=='dec') {
	//alert(mth);
	if (val.indexOf(', 0')>0||val.indexOf(', 9')>0||val.indexOf(', 8')>0||val.indexOf(', 7')>0) {
	    if (val.indexOf(', 0')>0)
			val = val.replace(', 0',', 200');
	    else
		val = val.replace(', ',', 19');
	}
	var testdate = new Date(val);
	if (testdate=='NaN') {alert('Invalid Date Format.'); return false}
	if (val.indexOf('.')>0) {
		val=val.replace('.','');
		thisDate.value = val;
	}
	if (val.toLowerCase().substr(0,5)=='sept ') {
	    //alert(thisDate.tagName);
	    if (val.toLowerCase().substr(0,5)=='sept ') thisDate.value = val.replace('ept', 'ep');
	}
 }
 else {
 if (val.indexOf('/')==-1 && val.indexOf('-')==-1) {alert('Invalid Date Format.'); return false}
 if (val.indexOf('/')>0) {
	 if (!/^\d{1,2}\/\d{1,2}\/(\d{2}|\d{4})/.test(val)) {alert('Invalid Date Format.'); return false}
	 if (val.split('/').length!=3) {alert('Invalid Date Format.'); return false}
	 //d=new Date()
	 //Ynow=1*d.getYear()
	 //Mnow=1*d.getMonth()
	 Y=val.split('/')[2]
	 D=1*val.split('/')[1]
	 M=1*val.split('/')[0]
 }
 if (val.indexOf('-')>0) {
	 if (!/^\d{1,2}\-\d{1,2}\-(\d{2}|\d{4})/.test(val)) {alert('Invalid Date Format2.'); return false}
	 if (val.split('-').length!=3) {alert('Invalid Date Format.'); return false}
	 //d=new Date()
	 //Ynow=1*d.getYear()
	 //Mnow=1*d.getMonth()
	 Y=val.split('-')[2]
	 D=1*val.split('-')[1]
	 M=1*val.split('-')[0]
 }

 //Does Year have time following?
 if(Y.indexOf(' ')>2) {
    //alert(Y.indexOf(' '));
    t=Y.split(' ');
    Y=t[0];
 }
 if (M<1 || M>12){alert('Invalid Month: \''+M+'\''); return false}
 if (D<1 || D>31){alert('Invalid Day: \''+D+'\'');  return false}
 if (D==31 && (M==4||M==6||M==9||M==11)){alert('Invalid Day: \''+D+'\'');  return false}
 if (Y.toString().length=='2' || Y.toString().length=='4'){
    if (Y.toString().length=='4') {
	if (Y<1900 || Y>2050){
	   alert('Invalid Year'); 
	   return false; }
	}
 } else {
	alert('invalid year: \''+Y+'\''); 
	return false; 
	}
 }
 return true
}


// *************************************************************
var startyear = "1950";
var endyear = "2010";
var dat = new Date();

var curday = dat.getDate();
var curmon = dat.getMonth()+1;
var curyear = dat.getFullYear();

function checkleapyear(datea)
{
	if(datea.getYear()%4 == 0)
	{
		if(datea.getYear()% 10 != 0)
		{
			return true;
		}
		else
		{
			if(datea.getYear()% 400 == 0)
				return true;
			else
				return false;
		}
	}
return false;
}
function DaysInMonth(Y, M) {
    with (new Date(Y, M, 1, 12)) {
        setDate(0);
        return getDate();
    }
}
function datediff(date1, date2) {
    var y1 = date1.getFullYear(), m1 = date1.getMonth(), d1 = date1.getDate(),
	 y2 = date2.getFullYear(), m2 = date2.getMonth(), d2 = date2.getDate();

    if (d1 < d2) {
        m1--;
        d1 += DaysInMonth(y2, m2);
    }
    if (m1 < m2) {
        y1--;
        m1 += 12;
    }
    return [y1 - y2, m1 - m2, d1 - d2];
}

function calcage(calyear,calmon,calday)
{
//var calday = document.birthday.day.options[document.birthday.day.selectedIndex].value;
//var calmon = document.birthday.month.options[document.birthday.month.selectedIndex].value;
//var calyear = document.birthday.year.options[document.birthday.year.selectedIndex].value;
	if(curday == "" || curmon=="" || curyear=="" || calday=="" || calmon=="" || calyear=="")
	{
		alert("please fill all the values and click go -");
	}	
	else
	{
		var curd = new Date(curyear,curmon-1,curday);
		var cald = new Date(calyear,calmon-1,calday);
		var diff =  Date.UTC(curyear,curmon,curday,0,0,0) - Date.UTC(calyear,calmon,calday,0,0,0);

		var dife = datediff(curd,cald);
		//document.birthday.age.value=dife[0]+" years, "+dife[1]+" months, and "+dife[2]+" days";
		//return dife[0]+" years, "+dife[1]+" months, and "+dife[2]+" days";
		return dife[0]+" yrs, "+dife[1]+" mths";
		
		var monleft = (dife[0]*12)+dife[1];
		var secleft = diff/1000/60;
		var hrsleft = secleft/60;
		var daysleft = hrsleft/24;
		//document.birthday.months.value=monleft+" Month since your birth";	
		//document.birthday.daa.value=daysleft+" days since your birth";	
		//document.birthday.hours.value=hrsleft+" hours since your birth";
		//document.birthday.min.value=secleft+" minutes since your birth";
		var as = parseInt(calyear)+dife[0]+1;
		var diff =  Date.UTC(as,calmon,calday,0,0,0) - Date.UTC(curyear,curmon,curday,0,0,0);
		var datee = diff/1000/60/60/24;
		//document.birthday.nbday.value=datee+" days left for your next birthday";	
	}
}
