var arOfIds; var arOfArgs; var arOfRecipes; var arMsgs; function ajaxConn() { this.send = ajaxConn_send; var req; if (window.XMLHttpRequest) req = new XMLHttpRequest(); else if (window.ActiveXObject) req = new ActiveXObject("Microsoft.XMLHTTP"); this.req = req; } function getRecipeData(reply, requestType) { var start = reply.indexOf("/form"); var end = reply.indexOf("/table"); return reply.substr(start + 9, end - start - 10); } function ajaxConn_send(address, clientData, callBack, arCallBackArg) { var out = ""; var conn = this; if(clientData != null) out = clientData; this.req.open("GET", address, true); this.req.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); this.req.setRequestHeader("Content-Length", out.length); this.req.onreadystatechange = ajaxConn_callBackIn; this.callBack = callBack; this.req.send(out); function ajaxConn_callBackIn() { if(conn.req == null) return; if(conn.req.readyState != 4) return; if (conn.req.status == 200) { var text = conn.req.responseText; var resp; try { resp = getRecipeData(text, arCallBackArg); if(arCallBackArg == undefined) { /* var regExp1 = new RegExp(" ", "g"); resp = resp.replace(regExp1, " "); var regExp2 = new RegExp("", "g"); resp = resp.replace(regExp2, ""); */ arMsgs = new Array(0); if(resp.indexOf(""); resp = resp.substr(pos + 5, resp.length - pos - 5); resp = showRecipesWithOneRecipeContent(resp, arCallBackArg); } }catch(ex) { var msg = "Failed to execute the response scripts.\n(Error name: " + ex.name + "; Error message: " + ex.message + ")"; alert(msg + "\nURL: " + address + "\n Post data: " + clientData); return; } try { conn.callBack(resp, arCallBackArg); // resp must be from eval(text); }catch(ex1) { var funct = conn.callBack.toString(); var ind = funct.indexOf("("); funct = funct.substring(0, ind); var msg1 = "Failed to execute the callback " + funct + ".\n(Error name: " + ex1.name + "; Error message: " + ex1.message + ")"; alert(msg1); } } else { alert("There was a problem retrieving the data:\n" + conn.req.statusText + "\nURL = '" + address + "'\nResponse Text = '" + text + "'"); } } } function transformHrefToTrOnClick(input) { var arOfRows = input.split(""); var len = arOfRows.length; arOfIds = new Array(len - 1); arOfArgs = new Array(len - 1); arOfRecipes = new Array(len - 1); var ret = "
 
"; for(i = 0; i < len; i++) { var str = arOfRows[i]; var pos = str.indexOf(""); var msgsLen = subMsgs.length - 2; if(msgsLen > 0) { arMsgs = new Array(msgsLen); for(j = 1; j < msgsLen + 1; j++) { arMsgs[j - 1] = subMsgs[j]; } } } if(pos > 1) { str = str.substr(pos + 9, str.length - pos - 9); var subStrs = str.split("'>"); arOfIds[i] = i; arOfArgs[i] = subStrs[0]; arOfRecipes[i] = subStrs[1]; } else { continue; } } if(arMsgs.length > 0) { for(i = 0; i < arMsgs.length; i++) { ret = ret + "
" + arMsgs[i] + "
"; } } for(i = 0; i < len - 1; i++) { ret = ret + "
" + "" + "
" + arOfRecipes[i] + "
"; } return ret; } function showRecipesWithOneRecipeContent(recipeContent, id) { var ret = "
 
"; if(arMsgs.length > 0) { for(i = 0; i < arMsgs.length; i++) { ret = ret + "
" + arMsgs[i] + "
"; } } for(i = 0; i < arOfIds.length; i++) { ret = ret + "
" + "" + "
" + arOfRecipes[i] + "
"; if(i == id) { ret = ret + "" + recipeContent + "
"; } else { ret = ret + ""; } } return ret; } function handleSubmit() { var ajax = new ajaxConn(); var searchString = window.document.getElementById("searchStr").value; var testString = searchString; testString = testString.replace(/ /g, ""); if(testString.length > 0) { var targetUrl = 'http://www.froglingo.com/ccc/web_query_recipe "' + searchString + '"'; targetUrl = targetUrl.replace(/ /g, "%20"); targetUrl = targetUrl.replace(/"/g, "%22"); ajax.send(targetUrl, null, displayResponse); } else { resetPage(); } return false; } function handleSubmitRecipe(url, arg) { var ajax = new ajaxConn(); var targetUrl = 'http://www.froglingo.com/ccc/' + url; targetUrl = targetUrl.replace(" ", "%20"); targetUrl = targetUrl.replace(/"/g, "%22"); ajax.send(targetUrl, null, displayResponse, arg); return false; } function displayResponse(resp, arg) { if(resp.indexOf(""; } window.document.getElementById('queryResult').innerHTML = resp; /* if(arg != undefined) { window.document.getElementById(arg).scrollTop = window.document.getElementById(arg).offsetTop; } */ } function resetPage() { window.document.getElementById("searchStr").value = ""; window.document.getElementById('queryResult').innerHTML = " "; arOfIds = new Array(0); arOfArgs = new Array(0); arOfRecipes = new Array(0); arOfMsgs = new Array(0); }