
/* ************** STANDARD SCRIPTS ****************** */

function pop(url,w,h) {
	var popWin = window.open(url,'','width='+w+',height='+h+',location=no,menubar=no,scrollbars=no,toolbar=no,resizable=no');
	popWin.focus();
}

function doOver(_link,_name) {
	var img = _link.getElementsByTagName("img");
	img[0].src = "../../images/nav/" + _name + "_o.gif";
}

function doOut(_link,_name) {
	var img = _link.getElementsByTagName("img");
	img[0].src = "../../images/nav/" + _name + ".gif";
}





/* ************** VALIDATION FUNCTIONS ***************** */

/*
function val_ask_olli(form) {
	
	if (form.question.value == 'ask olli')
		form.login.value = '';
		form.password.value = '';
		form.login.focus();
		return false;
	}
	
	if ( form.question.value == '' ) {
		alert("Please enter a question");
		form.question.focus();
		return false;
	}
	if ( form.message.value == '' ) {
		alert("Please enter a message");
		form.message.focus();
		return false;
	}
	return true;
}
*/

function y2k(year) { 
	return (year < 1000) ?year + 1900 : year; 
}

function valid_dob(d,m,y) {
	m = m - 1;
	
	var sys_date = new Date();
	var today = new Date(y2k(sys_date.getYear()),sys_date.getMonth(),sys_date.getDate());
	var dob_date = new Date(y,m,d);
	
	if (dob_date > today) {
		return false;
	}
	
	return true;
}


function val_chart(form) {
	
	var baby = form.babyname.value;
	var dob_d = form.day.value;
	var dob_m = form.month.value;
	var dob_y = form.year.value;
	
	if (baby == '') {
		alert("Please enter your baby's full name");
		form.babyname.focus();
		return false;
	}
	
	if (dob_d == '' || dob_m == '' || dob_y == '') {
		alert("Please enter date of birth in format YEAR MONTH DAY using dropdowns");
		return false;
	}
	
	if (!valid_dob(dob_d, dob_m, dob_y)) {
		alert("Invalid date of birth");
		return false;
	}
	
	var message = "Two weaning charts will now be automatically generated for " + baby + ".\n";
		message += "One for the 1 - 6 week period, another for the 7 - 12 week period.\n";
		message += "These can be printed out to help you monitor the weaning process.\n";
		message += "If these popups are blocked - please use the links below the form.\n";
		message += "Click OK to generate the charts.";
	
	var url = '/site/weaning/custom_chart.php?babyname=' + baby + '&day=' + dob_d + '&month=' + dob_m + '&year=' + dob_y + '&page=';
	
	if (window.confirm(message)) {
		window.open(url + '1');
		window.open(url + '2');
		document.getElementById("chart_links").innerHTML = '<a style="color: #fff;" href="' + url + '1' + '" target="_blank">1 - 6 weeks</a>&nbsp;|&nbsp;<a style="color: #fff;" href="' + url + '2' + '" target="_blank">7 - 12 weeks</a>';
	}
	
	return false;
}

function val_new_post(form) {
	if ( form.subject.value == '' ) {
		alert("Please enter a subject");
		form.subject.focus();
		return false;
	}
	if ( form.message.value == '' ) {
		alert("Please enter a message");
		form.message.focus();
		return false;
	}
	return true;
}

function val_reg(form) {
	if ( form.fullname.value == '' ) {
		alert("Please enter your full name");
		form.fullname.focus();
		return false;
	}
	if ( form.nickname.value == '' || form.nickname.value.length < 6 || form.nickname.value.length > 12 ) {
		alert("Please enter your nickname (6 - 12 chars)");
		form.nickname.focus();
		return false;
	}
	if (!validEmail(form.login.value)) {
		alert("Please enter a valid email");
		form.login.focus();
		return false;
	}
	if (form.email.value != form.emailconf.value) {
		alert("Emails do not match");
		form.email.focus();
		return false;
	}
	if ( form.password.value == '' || form.password.value.length < 6 || form.password.value.length > 12 ) {
		alert("Please enter your password (6 - 12 chars)");
		form.password.focus();
		return false;
	}
	return true;
}

function val_login(form) {
	
	if (form.login.value == 'user name' || form.login.value == '' || form.password.value == '') {
		alert("Please enter your username and password");
		form.login.value = '';
		form.password.value = '';
		form.login.focus();
		return false;
	}
	
	if (!validEmail(form.login.value)) {
		alert("Please enter a valid email");
		form.login.focus();
		return false;
	}
	if ( form.password.value == '' || form.password.value.length < 6 || form.password.value.length > 12 ) {
		alert("Please enter your password (6 - 12 chars)");
		form.password.focus();
		return false;
	}
	return true;
}


function val_contact(form) {
	if ( form.fullname.value == '' ) {
		alert("Please enter your full name");
		form.fullname.focus();
		return false;
	}
	if (!validEmail(form.email.value)) {
		alert("Please enter a valid email");
		form.email.focus();
		return false;
	}
	if ( form.tel.value != '' && !validNum(form.tel.value) ) {
		alert("Please enter a valid contact number");
		form.tel.focus();
		return false;
	}
	return true;
}

function validNum(telno) {
	var pattern = "0123456789+-)( ";
	var i = 0;
	
	do {
		var pos = 0;
		for (var j=0;j<pattern.length;j++)
			if (telno.charAt(i)==pattern.charAt(j))
				pos = 1;
		i++;
	}
	while (pos==1 && i<telno.length)
	
	if (pos==0) return false;
	return true;
}


function validEmail(addr){
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=addr.match(emailPat)
	
	if (matchArray==null) {
		//alert("Please enter a valid email address (check @ and .'s)")
		return false
	}
	
	var user=matchArray[1]
	var domain=matchArray[2]
	
	if (user.match(userPat)==null) {
		//alert("The username doesn't seem to be valid.")
		return false
	}
	
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				//alert("Destination IP address is invalid!")
				return false
			}
		}
		return true
	}
	
	var domainArray=domain.match(domainPat)
	
	if (domainArray==null) {
		//alert("The domain name doesn't seem to be valid.")
		return false
	}
	
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
		//alert("The address must end in a three-letter domain, or two letter country.")
		return false
	}
	if (len<2) {
		//alert("This address is missing a hostname!")
		return false
	}
	return true;
}


/* ************** WEANING CALCULATOR ***************** */

function doCalc(form) {
	var num_weeks = get_num_weeks(form);
	if (num_weeks) {
		
	} else
		alert("Please enter a valid Date of Birth");
}


function get_num_weeks(form) {
	if (form.year.value == '') return false;
	if (form.month.value == '') return false;
	if (form.day.value == '') return false;
	
	var dob = new Date(form.year.value, form.month.value, form.day.value);
	var today = new Date();
	
}






