function ajaxCallback(requestedPage,args,oncomplete,onerror) {
	var requestObj = null;
  var responseDiv = document.getElementById('responseout');
  if(!responseDiv) {responseDiv = document.createElement('div');}
	responseDiv.innerHTML="Started...";
	if (window.XMLHttpRequest) {
		requestObj = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) {
		try {
			requestObj = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				requestObj = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
  }
	requestObj.onreadystatechange = function() {
		responseDiv.innerHTML = 'Please Wait, Loading...';
		if(requestObj.readyState == 4) {
			if(requestObj.status == 200) {
				responseDiv.innerHTML = 'Done';
				oncomplete(requestObj.responseText);
			}
			else {
				responseDiv.innerHTML='Error: returned status code ' + requestObj.status + ':' + requestObj.statusText;				
        onerror(requestObj);
			}
		}
	};
	var currentTime = new Date();
	requestObj.open('POST', requestedPage + '?time='+currentTime.getTime(), true);
	requestObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  requestObj.send(args);
	return(false);
}
function onError(result) {
  alert('Error: returned status code ' + result.status + ': ' + result.statusText);
}
function $get(id) {return document.getElementById(id);}
function $find(name) {return document.getElementsByName(name);}
function editTier(id) {
  args = 'callback=edittier&id='+id;
  ajaxCallback('ajaxFunctions.asp', args, onTierEdited, onError);  
}
function onTierEdited(result) {
  var obj = eval('('+result+')');
  document.Form1.hiddenid.value = obj.results[0].id;
  document.Form1.tier_name.value = obj.results[0].tier_name;
  document.Form1.gold_pricing.value = obj.results[0].gold_pricing;
  document.Form1.sterling_pricing.value = obj.results[0].sterling_pricing;
  document.Form1.optional_pricing.value = obj.results[0].optional_pricing;  
  popDiv();
}
function forgotPassword() {
  var email = document.loginForm.email.value;
  if(email.length > 0) {
    ajaxCallback('admin/ajaxFunctions.asp','callback=forgotpass&email='+email,onEmailFound,onError);
  } else {
    alert('Please enter the email address you used to sign up and then click the link again.')
  }
}
function onEmailFound(result) {
  //alert(result);
  alert('Check your email in a few moments for your new password');
}
function popDiv() {
  var theDiv = document.getElementById('editContentDiv');  
  var theBackground = document.getElementById('backgroundDiv');
  theDiv.style.display = '';
  theBackground.style.display = '';
  theDiv.className = 'center';
  if(document.all) {
    window.onscroll = function () {
      theBackground.style.top = document.body.scrollTop;
    };
    theDiv.style.left = (document.body.clientWidth - theDiv.style.width.replace('px',''))/2 + "px";
    theDiv.style.top = ((document.body.clientHeight + document.documentElement.scrollTop) - theDiv.style.height.replace('px',''))/2 + "px";
    theBackground.style.position = 'absolute';
  }else {
    theDiv.style.left = (window.innerWidth - theDiv.style.width.replace('px',''))/2 + "px";
    theDiv.style.top = ((window.innerHeight + document.body.scrollTop) - theDiv.style.height.replace('px',''))/2 + "px";
  }
}
function closeEditContentDiv() {
  var editContentDiv = document.getElementById('editContentDiv');
  var theBackground = document.getElementById('backgroundDiv');
  theBackground.style.display = 'none';
  editContentDiv.style.display = 'none';
}
function deleteUser(userId) {
  if(confirm('Are you sure you want to delete this user?'))
  ajaxCallback('ajaxFunctions.asp','callback=deleteuser&userid='+userId,onUserDeleted,onError);
}
function onUserDeleted(result) {
  var theRow = document.getElementById('row'+result);
  if(theRow)
    theRow.parentNode.removeChild(theRow);
}
function saveChanges() {
  var id = $find('hiddenid')[0].value;
  var firstname = $find('firstname')[0].value;
  var lastname = $find('lastname')[0].value;
  var email = $find('email')[0].value;
  var phonenumber = $find('phonenumber')[0].value;
  var shippingaddress = $find('shippingaddress')[0].value;
  var billingaddress = $find('billingaddress')[0].value;
  var companyname = $find('companyname')[0].value;
  var pass = $find('password')[0].value;
  var accounttypes = $find('accounttype');
  var updateemailpass = $find('updateemailpass')[0].checked;
  var approved = $find('approved')[0].checked;
  var accounttype = '',pricingtier = '';
  for(i=0;i<accounttypes.length;i++) {
    if(accounttypes[i].checked) {
      accounttype = accounttypes[i].value;
    }
  }
  var tiers = $find('tier');
  for(i=0;i<tiers.length;i++){
    if(tiers[i].checked == true){
      pricingtier = tiers[i].value;
    }
  }
  args = 'callback=saveuser&id='+id+'&approved='+approved+'&pricingtier='+pricingtier+'&firstname='+firstname+'&lastname='+lastname+'&email='+email+'&phonenumber='+phonenumber+'&shippingaddress='+shippingaddress+'&billingaddress='+billingaddress+'&companyname='+companyname+'&pass='+pass+'&accounttype='+accounttype+'&updateemailpass='+updateemailpass;
  ajaxCallback('ajaxFunctions.asp', args, onUserSaved,onError);
}
function onUserSaved(result) {
  $find('password')[0].value = "";
  $find('verifypassword')[0].value = "";
  $find('updateemailpass')[0].checked = false;
  closeEditContentDiv();
  ascDesc = 'DESC';
  sortColumn('approved');
}
function editUser(id) {  
  ajaxCallback('ajaxFunctions.asp','callback=edituser&userid='+id,onUserEdited,onError);
}
function onUserEdited(result) {
  var obj = eval('('+result+')');
  $find('hiddenid')[0].value = obj.results[0].id;
  $find('firstname')[0].value = obj.results[0].first_name;
  $find('lastname')[0].value = obj.results[0].last_name;
  $find('email')[0].value = obj.results[0].email;
  $find('phonenumber')[0].value = obj.results[0].phone_number;
  $find('shippingaddress')[0].value = obj.results[0].shipping_address;
  $find('billingaddress')[0].value = obj.results[0].billing_address;
  $find('companyname')[0].value = obj.results[0].company_name;
  $find('approved')[0].checked = obj.results[0].approved;
  var tiers = $find('tier');
  for(i=0;i<tiers.length;i++){
    if(tiers[i].value == obj.results[0].pricing_tier){
      tiers[i].checked = true;
    }
  }
  var accounttypes = $find('accounttype');
  for(i=0;i<accounttypes.length;i++) {
    if(accounttypes[i].value == obj.results[0].account_type) {
      accounttypes[i].checked = 'checked';
    }
  }
  popDiv();
}
var ascDesc = 'ASC'
function sortColumn(columnName) {
  ascDesc = (ascDesc == 'ASC')? 'DESC':'ASC';
  ajaxCallback('ajaxFunctions.asp','callback=getusertable&sortkey='+columnName+'&ascDesc='+ascDesc,onUserTableSorted,onError);
}
function onUserTableSorted(result) {
  $get('usertableDiv').innerHTML = result;
}
function checkForm() {
  var first = document.Form1.firstname.value;
  var last = document.Form1.lastname.value;
  var email = document.Form1.email.value;
  var pass = document.Form1.password.value;
  var verify = document.Form1.verifypassword.value;
  var shipping = document.Form1.shippingaddress.value;
  var billing = document.Form1.billingaddress.value;
  var company = document.Form1.companyname.value;
  
  var goodForm = true;
  goodForm = (goodForm && first.length>0)? true:false;
  goodForm = (goodForm && last.length>0)? true:false;
  goodForm = (goodForm && email.length>0)? true:false;
  goodForm = (goodForm && shipping.length>0)? true:false;
  goodForm = (goodForm && billing.length>0)? true:false;
  goodForm = (goodForm && company.length>0)? true:false;

  if(goodForm && pass == verify) {
    document.getElementById('checkPassMessage').innerHTML = '&nbsp;';
    return(true);
  } else if(goodForm) {
    document.getElementById('checkPassMessage').innerHTML = 'Your password must match in both fields above';
    return(false);
  } else {
    document.getElementById('checkPassMessage').innerHTML = 'Please enter all required fields.';
    return(false);
  }
}
