/**
 * @author philip.ward
 */
	function setSubtitlesVisible() {
		
		if (document.getElementById("AD").checked) {
			$("#stList").show();
		} else {
			$("#stList").hide();
		}
		return;
	}
	
	function showAdvanced() {	//	Show advanced search fields
	
		$("#advList").show();
		$("#avList").show();
		$("#noAdv").hide();
		$("#lookFor").show();
		
		return;
	}
	
	function updateList() {				//	Update list on client, with no feedback to server
	
		var askString = $("#keyword").val().toLowerCase();
		var askYear = $("#myyear").val().toLowerCase();
		var askType = $("#event_type").val().toLowerCase();
		var askLang = $("#hhsmlang").val().toLowerCase();
		var askTrans = $("#livetrans").val().toLowerCase();
		var askWhere = $("#cntry").val().toLowerCase();
		var askWhat = $("input[@name=audioStatus]:checked").val();
		
		//	Create boolean variables to avoid having to re-evaluate conditions on each iteration:
		
		var bString = new Boolean(askString != "");
		var bYear = new Boolean(askYear != "any year");
		var bType = new Boolean(askType != "any type");
		var bLang = new Boolean(askLang != "any language");
		var bTrans = new Boolean(askTrans != "any or none");
		var bWhere = new Boolean(askWhere != "any country");
		var bNoTrans = new Boolean(askTrans == "talks without translation");
		var bWhat = new Boolean(askWhat != "A");

		askWhere += "</td>"
		askYear += "</td>";
				
		var s = "Searching ";
		if (bString != false) {s += "string=" + askString + " "};
		if (bYear != false) {s += "year=" + askYear + " ";}
		if (bType != false) {s += "type=" + askType + " ";}
		if (bLang != false) {s += "lang=" + askLang + " ";}
		if (bTrans != false) {s += "trans=" + askTrans + " ";}
		if (bWhere != false) {s += "where=" + askWhere + " ";}
		
		if (bWhat != false) {
			var askSubttl = $("#stLang").val().toLowerCase();
			var bSubt = new Boolean(askSubttl != "any or none");
		}
		
//		log(s);
		
		var b = 0;	//	odd/even toggle for row display style
		var c = 0;	//	count of talks found
		var r = 0;	//	Total of talks so far
		var low;	//	innerHTML set to lower-case
		var i, j;
		
		//	Start by hiding everything except the header row:
		
		HideAllRows();
		$("#frameRow").removeClass("oddrow evenrow").show();
		
		//	Now pick out the rows we want:

		$("#resultsTable tr").each(function() {
			
			r++;
			h = $(this).html().toLowerCase();
			var ss = h.substring(0,40);
//			log ("** " + ss);
			
			//	Check for search string:
			
			if (bString != false) {
				if (h.indexOf(askString) < 0) {
					return true;
				}				
			}
			
			//	Check for year:
			
			if (bYear != false) {
				var ss = h.substring(0,40);
//				log ("** " + ss);
//				log("** " + h.indexOf(askYear));
				if (h.indexOf(askYear) < 0) {
					return true;
				}				
			}
			
			//	Check for talk type:
			
			if (bType != false) {
				if (h.indexOf(">" + askType) < 0) {
					return true;
				}
			}
			
			//	Check for language:
			
			if (bLang != false) {
				if (h.indexOf("<td>" + askLang) < 0) {
					return true;
				}
			}
			
			//	Check for translation, or no translation:
			
			if (bTrans != false) {
				
				if (bNoTrans != false) {
					if (h.indexOf("<td>english (") + h.indexOf("<td>hindi (") + h.indexOf("<td>marathi (") > 0) {
						return true;
					}
				} else {
					if (h.indexOf("(" + askTrans) + h.indexOf(askTrans + ")") + h.indexOf("( " + askTrans) < 0) {
						return true;
					}						
				}			
			}
			
			//	Check for country:
			
			if (bWhere != false) {
				if (h.indexOf(", " + askWhere) < 0) {
					return true;
				}
			}
			
			//	Check for status:
			
			if (bWhat != false) {
				switch (askWhat) {
					case "D":			//	Digitized audios
						if (h.indexOf("au_gr") < 0) {
							return true;
						}
						break;
					case "M":			//	Missing audios
						if (h.indexOf("au_") + h.indexOf("vi_") > 0) {
							return true;
						}
						break;
					case "VD":			//	Digitized videos
						if (h.indexOf("vi_gr") + h.indexOf("vi_wf") + h.indexOf("vi_ni") < 0) {
							return true;
						}
						break;
					case "VM":			//	Missing videos
						if (r < 500) {	//	Ignore anything before some time in 1981
							return true;
						}
						if (h.indexOf("vi_") > 0) {
							return true;
						}
						break;
					case "AD":			//	Available from store
						if (h.indexOf("vi_ni") + h.indexOf("vi_wf") + h.indexOf("au_ni") + h.indexOf("au_wf") < 0) {
							return true;
						}
						
						//	Check whether subtitles in a particular language are required:
						
						if (bSubt != false) {
							i = h.indexOf("subttl=");
							if (i<0) {
								return true;
							}
							j = h.indexOf(askSubttl);
							if (j<i) {
								return true;
							} 							
						}
				}
			}
			
			//	If an entry has not been eliminated, list it and give it odd- or even-row formatting:
			
			if (h.indexOf("<th>") < 0) {
				
				if (b==0) {
					r = "oddrow";
					b=1;
				} else {
					r = "evenrow";
					b=0;
				}
				$(this).show().addClass(r);
				c++;
				$("#talksCount").html(c);
			} else {
				$(this).show();	//	Header row
			}
			
		});
		
		$("#headerRow").removeClass("oddrow evenrow").show();	
		$("#talksCount").html(c);
		log(c + " talks found");	
//		report();
		 		
	}
	
	function getResults(someArg) {		//	get list of talks
	
		var excel = 'None';
	
		var url = "http://talks.sahajayogaonline.com/cgi-bin/SimpleFormLoad.pl";
		var qry = "";
		
		if (someArg == 2) {
		  qry = "excel=true";	//	Dump output to screen for cut and paste to Excel.
			alert("After the screen has finished updating, cut and paste the whole screen into an Excel spreadsheet. Refresh the screen to return to the normal display.");
		}
		
		$("#results").html("<DIV align=center><BR><H1>Querying our database, please wait...</h1></DIV>");
	
    if (someArg < 3) {
    
      qry = "type=set"; // Recover multiple values
      
      var x;
      var s;
      
      for (var i=1;i<8;i++) {
        switch(i) {
          case 1: x = "myyear"; break;
          case 2: x = "event_type"; break;
          case 3: x = "hhsmlang"; break;
          case 4: x = "livetrans"; break;
          case 5: x = "cntry"; break;
          case 6: x = "stLang"; break;
          case 7: x = "keyword"; break;
        }
        
		if (i == 7) {
			s = $("#" + x).val();
		} else {
			s = $("#" + x + " > span").html();
		}
		
//		log(x + ": '" + s + "'");
		
        
//		log(x + ": " + s);

        if (s != "Any") {
		  s=s.replace(/[ ]{2,}/gi," ");	// Replace multiple spaces with single ones
		  s=s.replace(/^\s+|\s+$/g, ''); // Remove leading and trailing trailing spaces
          s=s.replace(/, /g, ",");
          s=s.replace(/ /g, "^^^");
          s=s.replace(/,/g, "~~~");
          s=s.replace(/'/g, "~^~");
          s=s.replace(/"/g, "^~^");
          qry += "&" + x + "=" + s;
        }
      }
    }

    // specify which talks we want to take:    
 		var askWhat = $("#lookFor input:radio:checked").val();
		log("askWhat: " + askWhat);
 		qry += "&select=" + askWhat;
		
		// if we want Excel-formatted output, indicate this:
		
		if (someArg == 2) {
			qry += "&excel=true";
		}
 		
 		// Let the server know who we are and whether we have an open session:
 		
 		qry += "&user=" + $("#user").val() + "&session=" + $("#session").val();
				
    log("Call: " + qry)
    
		//	Pass the query to SimpleForm, put results in the results DIV.
		
		log("Submitting query...");
		$("#provFeedback").show();
		
		url = url + "?" + qry;
		log(url);
		
		var x = $.get(url, function(data) {
			log("Results received");
			if (someArg == 2) {
				document.title = "Talks Excel export - cut and paste into Excel";
				$("body").html(data);
			} else {
				$("#results").html(data);
			}						
			log("Results rendered");
		});
				
		log("Query submitted: qry");
		
		return;
	}
	
	function HideAllRows() {
		
		log("Hiding rows");
		$("#results tr").removeClass("oddrow evenrow").hide();
		log("Rows hidden");
		
	}
	
	$(document).ready(function(){
//				log("About to run multilist");
				$(".multilist").multiSelect({
					oneOrMoreSelected: '*',
					noneSelected: 'Any',
					selectAll: false,
					adjustWidth: false
				});				
//				log("Multilist done.");
				makeDivs();
				
				if ($("#session").val() == "") {
					$("#advList").hide();
					$("#lookFor").hide();					
				} else {
					$("#noAdv").hide();	
				}
				$("#stList").hide();
				
			});
