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 = '';
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';
}