// javascript for new ic, August 2008
// -----------------------------------------------------------------------
document.onkeyup = enterCheck;
// ---------------------------------------------------------------------
function enterCheck(e){
	var keyID = (window.event) ? event.keyCode : e.keyCode; // works for IE and FF
	if ((keyID == 13) && (document.getElementById("search").style.display == "block")){
		recsearch();}
}
// ---------------------------------------------------------------------
// get ajax object
function getXHR(){
	var XHObject;
	if (window.XMLHttpRequest){  // later browsers and IE7
		XHObject = new XMLHttpRequest();
	}
	else{
		XHObject = new ActiveXObject("Microsoft.XMLHTTP"); // assume IE6
	}
	return XHObject;
}
// ajax post common
function ajaxcommon(url,noparams){
	http = getXHR();
	http.open("POST", url, true); 
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", noparams);
	http.setRequestHeader("Connection", "close");
}
// ---------------------------------------------------------------------
// to process clear button click - delete results and clear search form
function clearsearch(){
	document.getElementById("results").style.display="none";
	document.getElementById("resultslegend").style.display="none";
	document.getElementById("resultssep").style.display="none";
	var f = document.getElementById("searchform");
	var m = document.getElementById("p_meat");
	var f = document.getElementById("p_fish");
	var g = document.getElementById("p_game");
	var v = document.getElementById("p_veg");
	var o = document.getElementById("p_other");
	var t = document.getElementById("p_type");
	for (i=0; i<m.length; i++){if (m[i].selected){m[i].selected = false}} 
	for (i=0; i<f.length; i++){if (f[i].selected){f[i].selected = false}} 
	for (i=0; i<g.length; i++){if (g[i].selected){g[i].selected = false}} 
	for (i=0; i<v.length; i++){if (v[i].selected){v[i].selected = false}} 
	for (i=0; i<o.length; i++){if (o[i].selected){o[i].selected = false}} 
	for (i=0; i<t.length; i++){if (t[i].selected){t[i].selected = false}} 
	document.getElementById("p_text").value = "";
}
// ---------------------------------------------------------------------
// process contact form
function contactform(){
	var cform = document.getElementById("contform");
	var contactError = false;
	name = cform.cname.value;
	email = cform.cemail.value;
	mbody = cform.cbody.value;
	erm = document.getElementById("erbody");
	if (mbody == ""){
		erm.innerHTML = " - please enter mail text";
		contactError = true;}
	else{
		erm.innerHTML = "";}
	erm = document.getElementById("ername");
	if (name == ""){		
		erm.innerHTML = " - please enter your name";
		contactError = true;}
	else{
		erm.innerHTML = "";}
	erm = document.getElementById("eremail");
	if (email == ""){		
		erm.innerHTML = " - please enter address";
		contactError = true;}
	else{
		erm.innerHTML = "";}
	if (!echeck(email)){
		erm.innerHTML = " - invalid address";
		contactError = true;}
	if (contactError){
		return;}
	url='html/mail.php';
	params='cbody=' + mbody + '&cname=' + name + '&cemail=' + email;
	ajaxcommon(url, params.length);
	http.onreadystatechange = function(){
		if(http.readyState == 4 && http.status == 200) {
			//alert(http.responseText);
			if (http.responseText == "OK"){ // good response from php
				cform.cbody.value = " ";
				cform.cname.value = " ";
				cform.cemail.value = " ";
				alert("Mail sent, thank you");
			}
		}
	}
	http.send(params);
}
//  DHTML email validation script. 
// Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
function echeck(str) {
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false;}
		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false;}
		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false;}
		 if (str.indexOf(at,(lat+1))!=-1){
		    return false;}
		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false;}
		 if (str.indexOf(dot,(lat+2))==-1){
		    return false;}
		 if (str.indexOf(" ")!=-1){
		    return false;}
 		 return true;					
}
// -----------------------------------------------------------------------
// process edit recipe link
function edit(){
	window.location = "../admin/receditor.php";
}
// ---------------------------------------------------------------------
// *new* used to populate recipe area on home page from search
function section(section){
	//s= document.getElementById(section).style.display;
	s= document.getElementById(section);
	if (s.style.display == "block"){
		s.style.display="none";
		return;
	}
	else{	
		s.style.display="block";
	}
	url='html/section.php';
	params='s=' + section;
	//alert(params);
	ajaxcommon(url, params.length);
	http.onreadystatechange = function(){
		if(http.readyState == 4 && http.status == 200) {
			//alert(http.responseText);
			s.innerHTML = http.responseText;
		}
	}
	http.send(params);
}
// ---------------------------------------------------------------------
// used to flip recipe area on home page between display and non-display
function flip(area){
	s= document.getElementById(area).style.display;
	if (s == "block"){
		document.getElementById(area).style.display="none";
	}
	else{
		/*if (document.getElementById("search").style.display == "block"){
			document.getElementById("search").style.display="none";}*/
		document.getElementById(area).style.display="block";
	}
}
// ---------------------------------------------------------------------
// used to flip search area 
function flipsearch(){
	if (document.getElementById("search").style.display == "block"){ // if already displayed then hide
		document.getElementById("search").style.display="none";
		return;
		}
	document.getElementById("ne").style.display="none"; // else ensure other areas are not displayed
	//document.getElementById("recent").style.display="none"; 
	document.getElementById("ss").style.display="none"; // else ensure other areas are not displayed
	document.getElementById("sc").style.display="none";
	document.getElementById("sv").style.display="none";
	document.getElementById("sa").style.display="none";
	document.getElementById("wb").style.display="none";
	document.getElementById("mf").style.display="none";
	document.getElementById("mb").style.display="none";
	document.getElementById("ml").style.display="none";
	document.getElementById("mg").style.display="none";
	document.getElementById("mp").style.display="none";
	document.getElementById("mc").style.display="none";
	document.getElementById("mv").style.display="none";
	document.getElementById("ve").style.display="none";
	document.getElementById("pu").style.display="none";
	document.getElementById("results").style.display="none";
	document.getElementById("search").style.display="block";
}
// ---------------------------------------------------------------------
// function to set cookie and give browser warning
function init(){
	m = document.cookie.indexOf("measure="); 
	if (m != -1){ // if cookie set, nothing to do
		return;}
	var date = new Date();
	date.setTime(date.getTime()+(2*365*24*60*60*1000)); // set for 2 years
	var expires = "; expires="+date.toGMTString();
	document.cookie = "measure=imp"+expires+"; path=/"; // default to imperial
	var bser = 0;
	if (navigator.appVersion.indexOf('MSIE 6') != -1){
		bser = "6";}
	if (navigator.userAgent.indexOf('MSIE 7') != -1){
		bser = "7";}
	if (bser != 0){
		alert ("You are using IE"+bser+" which is not supported by this site. Please use Firefox 3 or Google Chrome for a much better user experience");}
}
// ---------------------------------------------------------------------
// used to display/hide recipe thumbnail on mouseover/mouseoff of index rec title
function rollover(thumb){
	a = 'r' + thumb.substring(1); // id of recipe link
	h = document.getElementById(a).offsetHeight;
	if (h < 30){
		single = true;}
	else{
		single = false;}
	obj = document.getElementById(thumb); // thumbnail div 
	l = document.getElementById(a).offsetLeft;
	t = document.getElementById(a).offsetTop;
	obj.style.left = l + "px"; //same as link
	if (navigator.appName == "Netscape"){
		offset_d = 38; // offset for double line link
		offset_s = 22;} // single line
	else {
		offset_d = 34; // offset for double line link
		offset_s = 20;} // single line
	if (single){
		obj.style.top = t + offset_s + "px";}
	else{
		obj.style.top = t + offset_d + "px";}
	//alert(obj.style.top);
		obj.style.overflow = "visible";
	obj.style.display= "block";
}
function rollout(thumb){
	document.getElementById(thumb).style.display="none";
}
// ----------------------------------------------------------------------------
// process search request
function recsearch(){ 
	var f = document.getElementById("searchform");
	var meat = "";
	var m = document.getElementById("p_meat");
	var fish = "";
	var f = document.getElementById("p_fish");
	var game = "";
	var g = document.getElementById("p_game");
	var veg = "";
	var v = document.getElementById("p_veg");
	var other = "";
	var o = document.getElementById("p_other");
	var type = "";
	var t = document.getElementById("p_type");
	for (i=0; i<m.length; i++){if (m[i].selected){meat+= m[i].value + "/";}} // assemble post parameter
	for (i=0; i<f.length; i++){if (f[i].selected){fish+= f[i].value + "/";}} // assemble post parameter
	for (i=0; i<g.length; i++){if (g[i].selected){game+= g[i].value + "/";}} // assemble post parameter
	for (i=0; i<v.length; i++){if (v[i].selected){veg+= v[i].value + "/";}} // assemble post parameter
	for (i=0; i<o.length; i++){if (o[i].selected){other+= o[i].value + "/";}} // assemble post parameter
	for (i=0; i<t.length; i++){if (t[i].selected){type+= t[i].value + "/";}} // assemble post parameter
	if (meat.length > 0){meat = meat.slice(0, -1);} // take off last /
	if (fish.length > 0){fish = fish.slice(0, -1);} // take off last /
	if (game.length > 0){game = game.slice(0, -1);} // take off last /
	if (veg.length > 0){veg = veg.slice(0, -1);} // take off last /
	if (other.length > 0){other = other.slice(0, -1);} // take off last /
	if (type.length > 0){type = type.slice(0, -1);} // take off last /
	keyw = document.getElementById("p_text").value;
	var url = "html/search.php";
	var params = "func=search&meat="+meat+"&fish="+fish+"&game="+game+"&veg="+veg+"&other="+other+"&type="+type+"&keyw="+keyw;
	//alert(params);
	ajaxcommon(url, params.length);
	http.onreadystatechange = function() {
		if(http.readyState == 4 && http.status == 200) {
			//alert(http.responseText);
			resdata = http.responseText.split("|"); // split pixelheight|recipedata
			if (resdata[0] == "0"){ // 0 indicates error, error message in results area
				alert(resdata[1]);}
			else{
				var res = document.getElementById("results");
				document.getElementById("search").style.display="none"; // hide search form
				document.getElementById("resultslegend").style.display="block"; // display results legend
				document.getElementById("resultssep").style.display="block"; // & separator
				res.style.display = "block";
				//res.style.height = resdata[0] + "px";
				res.innerHTML = resdata[1];
				//res.style.overflow = "visible";
				//alert(res.innerHTML);
			}
		}
	}
	http.send(params);
}
// ---------------------------------------------------------------------
// function to toggle measure
function togglemeasure(){
	if (document.cookie.length == 0){ // if cookie set, nothing to do
		alert("Toggle not performed - cookies not enabled?");
		return;}
	m = document.cookie.indexOf("measure="); 
	if (m == -1){
		alert("Toggle not performed - cookies not enabled?");
		return;
	}
	m+= 8; //position at value
	c = unescape(document.cookie.substr(m, 3));
	if (c == "imp"){
		c = "met";
		}
	else{
		c = "imp";}
	var date = new Date();
	date.setTime(date.getTime()+(2*365*24*60*60*1000)); // set for 2 years
	var expires = "; expires="+date.toGMTString();
	document.cookie = "measure="+c+expires+"; path=/"; 
	if (c == "imp"){
		alert("Measures now set to imperial");}
	else{
		alert("Measures now set to metric");}
}
// -------------------new search----------------------------------------
// function when listbox item is clicked
function lclick(item_id){
	i = document.getElementById(item_id);
	if (i.style.backgroundColor == ""){
		i.style.backgroundColor = "#d0d0d0";}
	else{
		i.style.backgroundColor = "";}
}
// function when search button is clicked
var list = Array(); // global for two functions below
function rsearch(){
	//list = document.getElementsByName("meat");
	meat = get_codes("meat");
	fish = get_codes("fish");
	game = get_codes("game");
	veg = get_codes("veg");
	other = get_codes("other");
	type = get_codes("type");
	keyw = document.getElementById("p_text").value;
	var url = "html/search.php";
	var params = "func=search&meat="+meat+"&fish="+fish+"&game="+game+"&veg="+veg+"&other="+other+"&type="+type+"&keyw="+keyw;
	//alert(params);
	ajaxcommon(url, params.length);
	http.onreadystatechange = function() {
		if(http.readyState == 4 && http.status == 200) {
			//alert(http.responseText);
			resdata = http.responseText.split("|"); // split pixelheight|recipedata
			if (resdata[0] == "0"){ // 0 indicates error, error message in results area
				alert(resdata[1]);}
			else{
				var res = document.getElementById("results");
				document.getElementById("search").style.display="none"; // hide search form
				document.getElementById("resultslegend").style.display="block"; // display results legend
				document.getElementById("resultssep").style.display="block"; // & separator
				res.style.display = "block";
				res.innerHTML = resdata[1];
			}
		}
	}
	http.send(params);
}
function get_codes(list_name){
	list = document.getElementsByName(list_name);
	var codes = "";
	for (i=0; i<list.length; i++){
		if (list[i].style.backgroundColor != ""){ // if item has been selected
			codes += list[i].id + "/"; // get ccode
		}
	}
	if (codes != ""){
		codes = codes.slice(0, -1);} // take off last /
	return codes;
}
// to process clear button click - delete results and clear search form
function clrsearch(){
	document.getElementById("results").style.display="none";
	document.getElementById("resultslegend").style.display="none";
	document.getElementById("resultssep").style.display="none";
	clr_codes("meat");
	clr_codes("fish");
	clr_codes("game");
	clr_codes("veg");
	clr_codes("other");
	clr_codes("type");
	document.getElementById("p_text").value = "";
}
function clr_codes(list_name){
	list = document.getElementsByName(list_name);
	for (i=0; i<list.length; i++){
		if (list[i].style.backgroundColor != ""){ // if item has been selected
			list[i].style.backgroundColor = "";
		}
	}
	
}

