var oXHR function encodeNameAndValue(sName, sValue) { var sParam = encodeURIComponent(sName); sParam += "="; sParam += encodeURIComponent(sValue); return sParam; } function createXHR() { if( typeof XMLHttpRequest != "undefined" ) { return new XMLHttpRequest(); } else if (window.ActiveXObject) { //var aVersions = [ "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0"]; var aVersions = [ "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"]; for( var i=0; i < aVersions.length; i++ ) { try { var oXHR = new ActiveXObject(aVersions[i]); return oXHR; } catch (oError) { //Do nothing } } } throw new Error("XMLHttp object could not be created."); } function getObj(name) { if (document.getElementById) { this.obj = document.getElementById(name); } else if (document.all) { this.obj = document.all[name]; } else if (document.layers) { this.obj = document.layers[name]; } } //AJAX function urlencode(str) { //escapes everything for PHP str = escape(str); str = str.replace('+', '%2B'); str = str.replace('%20', '+'); str = str.replace('*', '%2A'); str = str.replace('/', '%2F'); str = str.replace('@', '%40'); //alert(str) return str; } function urldecode(str) { str = str.replace('+', ' '); str = unescape(str); return str; } //asynchronous calls function addOption(myopt) { var myval = new getObj(myopt); if( myval.obj.value.length < 1 ) { alert('this area was empty'); } oXHR = createXHR() if( oXHR == null ) { alert('Your browser does not support AJAX!'); return; } var url = 'ajaxFuncs.php'; var params = 'ajid=addOption'; params += '&type=' + myopt; params += '&value=' + myval.obj.value; oXHR.open("POST",url,true); oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); oXHR.setRequestHeader("Content-length", params.length); oXHR.setRequestHeader("Connection", "close"); oXHR.onreadystatechange = function () { if( oXHR.readyState == 4 ) { if( oXHR.status == 200 || oXHR.status == 304 ) { if( oXHR.responseText == 'expired' ) { weHaveExpired(); } else { if( oXHR.responseText == 1 ) { myval.obj.value = ''; var myform = new getObj('editform'); myform.obj.submit(); } else { var m = new getObj('genmes'); m.obj.innerHTML += '
Error Occured in addOption'; } } } else { alert('error oXHR.statusText = ' + oXHR.statusText); weHaveTimedOut(); } } }; oXHR.send(params); } //echo '',$value,' //'; function editItem(mykey,t) { var lock = new getObj('lock'); if( (undefined === t || t == '') && lock.obj.value != '' ) { alert('Please finish editing or cancel your current item \nbefore editing another.'); return; } var tdl = new getObj('l' + mykey); var tdr = new getObj('r' + mykey); var tdb = new getObj('b' + mykey); if( t == 'c' ) { var ov = new getObj('ov'); tdl.obj.innerHTML = ov.obj.value; lock.obj.value = ''; return; } if( lock.obj.value == 's' ) { var ov = new getObj('ov'); var newname = new getObj('newname'); if( newname.obj.value < 1 ) { alert('New name must contain letters'); return; } oXHR = createXHR() if( oXHR == null ) { alert('Your browser does not support AJAX!'); return; } var thispage = new getObj('thispage'); var url = 'ajaxFuncs.php'; var params = 'ajid=saveItem'; params += '&p=' + urlencode(thispage.obj.value); params += '&v=' + urlencode(newname.obj.value); params += '&k=' + mykey; oXHR.open("POST",url,true); oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); oXHR.setRequestHeader("Content-length", params.length); oXHR.setRequestHeader("Connection", "close"); oXHR.onreadystatechange = function () { if( oXHR.readyState == 4 ) { if( oXHR.status == 200 || oXHR.status == 304 ) { if( oXHR.responseText == 'expired' ) { weHaveExpired(); } else { if( oXHR.responseText == 1 ) { tdl.obj.innerHTML = newname.obj.value; lock.obj.value = ''; } else { alert('An error has occured. Please try again later'); tdl.obj.innerHTML = ov.obj.value; lock.obj.value = ''; } } } else { alert('error oXHR.statusText = ' + oXHR.statusText); weHaveTimedOut(); } } }; oXHR.send(params); } else { var temp = tdl.obj.innerHTML; var ov = temp; temp += '
'; temp += 'New name: '; temp += ' '; temp += ''; temp += '
'; tdl.obj.innerHTML = temp; lock.obj.value = 's'; } } function deleteItem(mykey,conf) { var lock = new getObj('lock'); if( conf == '' && lock.obj.value != '' ) { alert('Please Delete or Cancel the current recurring signup before deleting another signup'); } else { if( conf == '' ) { lock.obj.value = 'C'; var str = '
Are you sure you want to
delete this item?

'; str += ' '; str += '
'; var tdr = new getObj('r' + mykey); tdr.obj.innerHTML = str; } else if( conf == 'Y' ) { var tdr = new getObj('r' + mykey); tdr.obj.innerHTML = '
Processing...
'; delItem(mykey); } else { var tdr = new getObj('r' + mykey); var str = ''; str += ''; tdr.obj.innerHTML = str; lock.obj.value = ''; } } } function delItem(mykey) { oXHR = createXHR() if( oXHR == null ) { alert('Your browser does not support AJAX!'); return; } var thispage = new getObj('thispage'); var url = 'ajaxFuncs.php'; var params = 'ajid=deleteItem'; params += '&itemID=' + mykey; params += '&p=' + urlencode(thispage.obj.value); oXHR.open("POST",url,true); oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); oXHR.setRequestHeader("Content-length", params.length); oXHR.setRequestHeader("Connection", "close"); oXHR.onreadystatechange = function () { if( oXHR.readyState == 4 ) { if( oXHR.status == 200 || oXHR.status == 304 ) { if( oXHR.responseText == 'expired' ) { weHaveExpired(); } else { var tdr = new getObj('r' + mykey); var lock = new getObj('lock'); if( oXHR.responseText == '1' ) { tdr.obj.innerHTML = '
Deleted
'; } else { tdr.obj.innerHTML = 'ERROR
' + oXHR.responseText; } lock.obj.value = ''; } } else { weHaveTimedOut(); } } }; oXHR.send(params); } function getTable(myopt) { oXHR = createXHR() if( oXHR == null ) { alert('Your browser does not support AJAX!'); return; } var url = 'ajaxFuncs.php'; var params = 'ajid=getTable'; params += '&type=' + myopt; oXHR.open("POST",url,true); oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); oXHR.setRequestHeader("Content-length", params.length); oXHR.setRequestHeader("Connection", "close"); oXHR.onreadystatechange = function () { if( oXHR.readyState == 4 ) { if( oXHR.status == 200 || oXHR.status == 304 ) { if( oXHR.responseText == 'expired' ) { weHaveExpired(); } else { if( oXHR.responseText != 0 ) { var divName = myopt + 'table'; var div = new getObj(divName); div.obj.innerHTML = oXHR.responseText; } else { var m = new getObj('genmes'); m.obj.innerHTML = 'Error Occured in getTable'; } } } else { alert('error oXHR.statusText = ' + oXHR.statusText); weHaveTimedOut(); } } }; oXHR.send(params); } function showRecipe(rID) { var minusimg = 'img/bx-minus.gif'; var plusimg = 'img/bx-plus.gif'; var row = new getObj('r' + rID); var img = new getObj('i' + rID); if( row.obj.style.display != 'none' ) { row.obj.style.display = 'none'; img.obj.src = plusimg; return 0; } var mycell = new getObj('d' + rID); if( mycell.obj.innerHTML != '' ) { row.obj.style.display = ''; img.obj.src = minusimg; return 0; } else { mycell.obj.innerHTML = 'Retrieving Recipe...'; row.obj.style.display = ''; } oXHR = createXHR() if( oXHR == null ) { alert('Your browser does not support AJAX!'); return; } var url = 'ajaxFuncs.php'; var params = 'ajid=getRecipe'; params += '&recipeID=' + rID; oXHR.open("POST",url,true); oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); oXHR.setRequestHeader("Content-length", params.length); oXHR.setRequestHeader("Connection", "close"); oXHR.onreadystatechange = function () { if( oXHR.readyState == 4 ) { if( oXHR.status == 200 || oXHR.status == 304 ) { if( oXHR.responseText == 'expired' ) { weHaveExpired(); } else { if( oXHR.responseText != 0 ) { mycell.obj.innerHTML = oXHR.responseText; img.obj.src = minusimg; } else { mycell.obj.innerHTML = 'Error Occured while getting the recipe'; } } } else { alert('error oXHR.statusText = ' + oXHR.statusText); weHaveTimedOut(); } } }; oXHR.send(params); } function setStatus(rID,opt) { var sID = new getObj('s' + rID); sID.obj.innerHTML = 'Setting Status...'; oXHR = createXHR() if( oXHR == null ) { alert('Your browser does not support AJAX!'); return; } var url = 'ajaxFuncs.php'; var params = 'ajid=setStatus'; params += '&recipeID=' + rID; params += '&stat=' + opt; oXHR.open("POST",url,true); oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); oXHR.setRequestHeader("Content-length", params.length); oXHR.setRequestHeader("Connection", "close"); oXHR.onreadystatechange = function () { if( oXHR.readyState == 4 ) { if( oXHR.status == 200 || oXHR.status == 304 ) { if( oXHR.responseText == 'expired' ) { weHaveExpired(); } else { sID.obj.innerHTML = oXHR.responseText; if( oXHR.responseText != 'Error!' ) { getButtonOptions(rID,opt); } } } else { alert('error oXHR.statusText = ' + oXHR.statusText); weHaveTimedOut(); } } }; oXHR.send(params); } function getButtonOptions(rID,opt) { var ih = ''; if( opt != 'E' ) { if( opt != 'N' ) { ih += ''; } if( opt != 'V' ) { ih += ''; } } if( opt != 'T' ) { ih += ''; } if( opt != 'D' ) { ih += ''; } ih += ''; var x = new getObj('x' + rID); x.obj.innerHTML = ih; } function editRecipe(rID) { window.location = 'editrecipe.php?recipeID=' + rID; } function newRecipe() { var toClear = ['recipetitle','dishID','cuisineID','prepID','occasionID','serves','ingredients','preparation','cooksinfo']; var eles = ["firstname","lastname","ctphone","hcc","recipetitle","gradyear","dishID","cuisineID","prepID","occasionID","ingredients","preparation"]; for( var i in toClear ) { temp = new getObj(toClear[i]); temp.obj.value = ''; } for( var i in eles ) { temp = new getObj(eles[i]); temp.obj.style.backgroundColor = '#fff'; } var mes = new getObj('mess'); var rectable = new getObj('rectable'); var saverecipe = new getObj('saverecipe'); mes.obj.innerHTML = ''; mes.obj.style.display = 'none'; rectable.obj.style.display = ''; saverecipe.obj.value = 'Submit Recipe'; saverecipe.obj.disabled = false; } function submitRecipe(stype) { var saverecipe = new getObj('saverecipe'); saverecipe.obj.value = 'Saving...Please Wait'; saverecipe.obj.disabled = true; oXHR = createXHR() if( oXHR == null ) { alert('Your browser does not support AJAX!'); return; } var pfn = new getObj('firstname'); var pmn = new getObj('middlename'); var pln = new getObj('lastname'); var pmdn = new getObj('maidenname'); var phcc = new getObj('hcc'); var pgy = new getObj('gradyear'); var pcp = new getObj('ctphone'); var pce = new getObj('ctemail'); var rt = new getObj('recipetitle'); var rd = new getObj('dishID'); var rcu = new getObj('cuisineID'); var rp = new getObj('prepID'); var ro = new getObj('occasionID'); var rse = new getObj('serves'); var rin = new getObj('ingredients'); var rpr = new getObj('preparation'); var rci = new getObj('cooksinfo'); //loadingGrfx('on','Processing ',''); var url = 'ajaxFuncs.php'; if( stype == 'A' ) { var params = 'ajid=saveRecipe'; } else { var params = 'ajid=updateRecipe'; var rID = new getObj('recipeID'); params += '&recipeID=' + urlencode(rID.obj.value); } params += '&pfn=' + urlencode(pfn.obj.value) params += '&pmn=' + urlencode(pmn.obj.value) params += '&pln=' + urlencode(pln.obj.value) params += '&pmdn=' + urlencode(pmdn.obj.value) params += '&phcc=' + urlencode(phcc.obj.value) params += '&pgy=' + urlencode(pgy.obj.value) params += '&pcp=' + urlencode(pcp.obj.value) params += '&pce=' + urlencode(pce.obj.value) params += '&rt=' + urlencode(rt.obj.value) params += '&rd=' + rd.obj.value; params += '&rcu=' + rcu.obj.value; params += '&rp=' + rp.obj.value; params += '&ro=' + ro.obj.value; params += '&rse=' + rse.obj.value; params += '&rin=' + urlencode(rin.obj.value) params += '&rpr=' + urlencode(rpr.obj.value) params += '&rci=' + urlencode(rci.obj.value) oXHR.open("POST",url,true); oXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); oXHR.setRequestHeader("Content-length", params.length); oXHR.setRequestHeader("Connection", "close"); oXHR.onreadystatechange = function () { if( oXHR.readyState == 4 ) { if( oXHR.status == 200 || oXHR.status == 304 ) { if( oXHR.responseText == 'expired' ) { weHaveExpired(); } else { var result = oXHR.responseText; var mes = new getObj('mess'); if( result == 1 ) { if( stype == 'A' ) { var rectable = new getObj('rectable'); rectable.obj.style.display = 'none'; var temp = '
Thank you for sending us your recipe!

'; temp += '
'; mes.obj.innerHTML = temp; mes.obj.style.display = 'block'; } else { window.location = 'viewrecipes.php'; return; } } else if( result == 2 ) { if( stype == 'A' ) { saverecipe.obj.value = 'Save Recipe'; } else { saverecipe.obj.value = 'Save Changes'; } saverecipe.obj.disabled = false; mes.obj.innerHTML = 'An unspecified error has occured. Sorry!'; mes.obj.style.display = 'block'; } else { var strings = result.split(':'); var temp = ''; if( strings[0] != 'NA' ) { var elsb = strings[0].split(','); for( var i in elsb ) { temp = new getObj(elsb[i]); temp.obj.style.backgroundColor = '#faa'; } alert('Oops! We need some more information before we can submit your recipe!\n\nPlease fill in the boxes highlighted in red and submit your recipe again.'); } if( strings[1] != 'NA' ) { var elsg = strings[1].split(','); for( var i in elsg ) { temp = new getObj(elsg[i]); temp.obj.style.backgroundColor = '#fff'; } } saverecipe.obj.value = 'Save Recipe'; saverecipe.obj.disabled = false; mes.obj.innerHTML = '
Please correct the boxes highlighted in red
'; mes.obj.style.display = 'block'; } } } else { weHaveTimedOut(); } } }; oXHR.send(params); } // fieldname, warningname, remainingname, maxchars function CheckFieldLength(fn,wn,rn,mc) { var len = fn.value.length; if (len > mc) { fn.value = fn.value.substring(0,mc); len = mc; } document.getElementById(wn).innerHTML = len; document.getElementById(rn).innerHTML = mc - len; } // table row ID function shFieldLength(trID) { var tr = new getObj(trID); tr.obj.style.display == 'none' ? tr.obj.style.display = '' : tr.obj.style.display = 'none'; } function weHaveExpired() { window.location = 'index.php'; } function weHaveTimedOut() { var mes = new getObj('messages'); mes.obj.innerHTML = 'We have timed out'; mes.obj.style.display = 'block'; loadingGrfx('off','',''); } //usage on a tr tag:onmouseover='highlight(this)' onmouseout='unhighlight(this)' function highlight(obj) { obj.style.backgroundColor='#C3C5DF'; obj.style.cursor='pointer'; } function unhighlight(obj) { obj.style.backgroundColor=''; obj.style.cursor='default'; }