function createRequestObject(){
	var request_o;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer"){
		request_o = new ActiveXObject("Microsoft.XMLHTTP");
	} else{
		request_o = new XMLHttpRequest();
	}
	return request_o;
}

var http = createRequestObject();

function showLoadingAnimation(div) {
   document.getElementById(div).innerHTML = '<center><br /><br /><img src="/images/loading.gif" /><br/><br/></center>';

}

function validateEmail(email) {
  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  if (reg.test(email)==false) {
    return 0;
  } else {
     return 1;
   }
}

function newlineToBreak(myString){
  var r = new RegExp('\n', 'g');
  myString = myString.replace(r,'<br />');
  return myString;
}

function fadeoutElement(divID) {
  setTimeout(function(){
  $(divID).fadeOut("slow");

}, 3000);
}

function fadeinElement(divID) {

  $(divID).fadeIn("slow");


}

function updateEmail() {

  var newEmail = document.getElementById('newEmail').value;
  var errors = 0;

  if (!validateEmail(newEmail)) {
   errors = 1;
   alert('Be sure to enter a valid email address.');
   return;
  }

  if (errors==0) {

   http.open('get','process_ajax.php?action=updateEmail&newEmail='+newEmail);
   http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
        //fadeinElement("#updateEmailConsole");
        document.getElementById('updateEmailDiv').innerHTML = response;
        //fadeoutElement("#updateEmailConsole");
    }
  };
  http.send(null);

  }

}

function submitNewslink() {

  var url   = document.getElementById('url').value;

  if (url=='' || url=='Paste link here...') {
   alert('Be sure to enter a valid link/url.');
   return;
  }

  var tomatch= /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/

     if (!tomatch.test(url)){

         alert("URL invalid. Try again.");
         return;
     }


  var email = document.getElementById('email').value;
  if (email !=='') {
  if (!validateEmail(email)) {
   alert('Be sure to enter a valid email address.');
   return;
  }
  }


  showLoadingAnimation('newslinkDiv');
   http.open('get','process_ajax_public.php?action=submitNewslink&email='+email+'&url='+url);
   http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
        //fadeinElement("#updateEmailConsole");
        document.getElementById('newslinkDiv').innerHTML = response;
        //fadeoutElement("#updateEmailConsole");
    }
  };
  http.send(null);


}

function updatePassword() {

  var currentPassword = document.getElementById('currentPassword').value;
  var newPassword = document.getElementById('newPassword').value;
  var confirmNewPassword = document.getElementById('newPasswordConfirm').value;
  var errors = 0;

  if (currentPassword=='' || currentPassword.length < 6) {
   errors = 1;
   document.getElementById('currentPassword').style.background='#ffff66';
   alert('Please enter your current password.');
   return;
  } else document.getElementById('currentPassword').style.background='#ffffcc';

  if (newPassword=='' || newPassword.length < 8) {
    errors = 1;
    document.getElementById('newPassword').style.background='#ffff66';
    alert('Please enter your new password.');
    return
  } else document.getElementById('newPassword').style.background='#ffffcc';

  if (confirmNewPassword=='' || confirmNewPassword.length < 8 || (newPassword !== confirmNewPassword)) {
   errors = 1;
   document.getElementById('newPasswordConfirm').style.background='#ffff66';
   alert('Be sure the confirmation password matches and your password is at least 8 characters in length.');
   return;
  } else document.getElementById('newPasswordConfirm').style.background='#ffffcc';

  if (errors==0) {
   http.open('get','process_ajax.php?action=updatePassword&current='+currentPassword+'&newPassword='+newPassword+'&confirm='+confirmNewPassword);
   http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
        fadeinElement("#passwordConsole");
        document.getElementById('passwordConsole').innerHTML = response;

        fadeoutElement("#passwordConsole");
        //document.getElementById('passwordConsole').style.display='none';
        //document.getElementById('passwordConsole').innerHTML='';
        document.getElementById('currentPassword').value='';
        document.getElementById('newPassword').value='';
        document.getElementById('newPasswordConfirm').value='';

    }
  };
  http.send(null);

  }

}

function submitSiteProblem(reportedByID) {


  var problemID = document.getElementById('problem').value;
  if (problemID==0) {
    alert('Select a problem to report.');
    return;
  }

  var comments = document.getElementById('comments').value;
  if (comments=='') {
    alert('Please describe the problem.');
    return;
  }

  showLoadingAnimation('siteProblemDiv');

  http.open('get','process_ajax_public.php?action=submitSiteProblem&reportedByID=' + reportedByID + '&problemID='+problemID+'&comments='+comments);


  http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
      document.getElementById('siteProblemDiv').innerHTML = response;
    }
  };
  http.send(null);

}

function submitProfileReport(reportedByID,profileID) {

  var violationID = document.getElementById('violation').value;
  if (violationID==0) {
    alert('Select a violation to report.');
    return;
  }

  var comments = document.getElementById('comments').value;

  showLoadingAnimation('reportProfileDiv');
  http.open('get','process_ajax.php?action=reportProfile&profileID='+profileID+'&reportedByID='+reportedByID+'&violationID='+violationID+'&comments='+comments);

  http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
      document.getElementById('reportProfileDiv').innerHTML = response;
    }
  };
  http.send(null);

}

function hideAddImageDiv() {
 //document.getElementById('loader').innerHTML ='<center><img src="/images/loading.gif" border="0" /></center>';

 setTimeout(function(){
  window.location='images.php?error=timeout';

}, 15000);

 document.getElementById('addImageDiv').style.display='none';
  document.getElementById('loader').style.display='block';

//document.getElementById('loader').innerHTML='<center><img src='/images/loading.gif' /></center>';


}

function addToFavorites(ownerID,favoriteID) {

  document.getElementById('favoriteButtonDiv').innerHTML = '<center><img src="/images/loading.gif" /></center>';

  http.open('get','process_ajax.php?action=addToFavorites&ownerID='+ownerID+'&favoriteID='+favoriteID);

  http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
      document.getElementById('favoriteButtonDiv').innerHTML = response;
    }
  };
  http.send(null);

}

function addImage() {
  http.open('get','process_ajax.php?action=addImage');

  http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
      document.getElementById('addImageDiv').innerHTML = response;
    }
  };
  http.send(null);

}

function deleteFavorite(id,ownerID) {
 showLoadingAnimation('bodyContainer');
 http.open('get','process_ajax.php?action=deleteFavorite&id='+id+'&ownerID='+ownerID);

  http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
      window.location='favorites.php';
    }
  };
  http.send(null);

}


function sendMessage(senderID,recipientID,page,originalMessageID) {

  var senderCopy = 0;
  var subject = document.getElementById('subject').value;
  var message = document.getElementById('message').value;
  if (subject == '') { alert('You must type something into the subject line.'); return; }
  if (message == '') { alert('You must type something into the message body.'); return; }
  message = newlineToBreak(message);

  if (page == 1) showLoadingAnimation('sendMessageInnerDiv');
  if (page == 2) showLoadingAnimation('yourReplyDiv');

  var queryString = '';
  queryString += '&recipientID='+recipientID;
  queryString += '&senderID='+senderID;
  queryString += '&message='+message;
  queryString += '&subject='+subject;
  queryString += '&page='+page;
  queryString += '&originalMessageID='+originalMessageID;

  http.open('get','process_ajax.php?action=sendMessage'+queryString);
  http.onreadystatechange = function() {
    if(http.readyState == 4){
      if (page ==1) {
        var response = http.responseText;
        document.getElementById('sendMessageInnerDiv').innerHTML = response + '<br /><center><img src="/images/loading.gif" /></center><br />';
        setTimeout("window.location='profile.php?id=" + originalMessageID + "';", 3000);
      }
      if (page ==2) setTimeout("window.location='mail.php';", 1000);
    }
  };
  http.send(null);

}

function blockUser(ownerID,blockedID,page) {
  showLoadingAnimation('mail');
  http.open('get','process_ajax.php?action=blockUser&ownerID='+ownerID+'&blockedID='+blockedID);
  http.onreadystatechange = function() {
    if(http.readyState == 4){
      if (page=='mail') setTimeout("window.location='mail.php';", 2000);
    }
  };
  http.send(null);
}

function deleteMessage(messageID,ownerID,page) {

  //alert('123'); return;
  showLoadingAnimation('mail');

  http.open('get','process_ajax.php?action=deleteMessage&messageID='+messageID+'&ownerID='+ownerID+'&page='+page);
  http.onreadystatechange = function() {
    if(http.readyState == 4){
      if (page=='sentMail') setTimeout("window.location='sent_mail.php';", 640);
      if (page=='mail') setTimeout("window.location='mail.php';", 640);
    }
  };
  http.send(null);

}

function deleteImage(ownerID,imageID) {

  showLoadingAnimation('editImageInnerDiv');
  http.open('get','process_ajax.php?action=deleteImage&imageID='+imageID+'&ownerID='+ownerID);

  http.onreadystatechange = function() {
    if(http.readyState == 4){
      window.location = 'images.php';
    }
  };
  http.send(null);

}

function updateImage(ownerID,imageID,page) {
  var setProfileImageChecked = 0;

  if (document.getElementById('setProfileImage').checked == 1) setProfileImageChecked = 1;
  var imageCaption = document.getElementById('imageCaption').value;
  document.getElementById('editImageDiv').style.display = 'none';
  http.open('get','process_ajax.php?action=updateImage&imageID='+imageID+'&ownerID='+ownerID+'&setProfileImage='+setProfileImageChecked+'&imageCaption='+imageCaption);
  http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
      window.location = page;
    }
  };
  http.send(null);
}

function addToEmailList() {
  var emailAddress = document.getElementById('emailAddress').value;
  if (!validateEmail(emailAddress)) {
    alert('Please enter a valid email address.');
    return;
  }


  showLoadingAnimation('emailAddressListDiv');
  http.open('get','process_ajax_public.php?action=addToMailingList&emailAddress='+emailAddress);

  http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
      document.getElementById('emailAddressListDiv').innerHTML = response;
    }
  };
  http.send(null);

}


function showEditImageDiv(ownerID,imageID,page) {

  document.getElementById('editImageInnerDiv').innerHTML = '<br/><center><span style="font-size:14pt;font-weight:bold;color:#ff0000;">Loading...</span><br/><br/><img src="/images/loading.gif" /></center><br/><br/>';
  document.getElementById('editImageDiv').style.display = 'block';
  document.getElementById('editImageDiv').style.left = ((document.documentElement.clientWidth/2) -220)+'px';
  document.getElementById('editImageDiv').style.top = '40px';

  http.open('get','process_ajax.php?action=populateEditImageDiv&imageID='+imageID+'&ownerID='+ownerID+'&page='+page);

  http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
      document.getElementById('editImageInnerDiv').innerHTML = response;
    }
  };
  http.send(null);
}

function showSendMessageDiv(senderID,recipientID,filename,profileToView) {

  document.getElementById('sendMessageInnerDiv').innerHTML = '<br/><center><br/><br/><img src="/images/loading.gif" /></center><br/><br/>';
  document.getElementById('sendMessageDiv').style.display = 'block';
  document.getElementById('sendMessageDiv').style.left = ((document.documentElement.clientWidth/2) -290)+'px';
  document.getElementById('sendMessageDiv').style.top = '40px';

  http.open('get','process_ajax.php?action=populateSendMessageDiv&senderID='+senderID+'&recipientID='+recipientID+'&filename='+filename+'&profileToView='+profileToView);

  http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
      document.getElementById('sendMessageInnerDiv').innerHTML = response;
    }
  };
  http.send(null);
}

function getMouseX(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX
  }
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0}

  return tempX;
}

function getMouseY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
    tempY = event.clientY + document.body.scrollLeft
  } else {  // grab the x-y pos.s if browser is NS
    tempY = e.pageY
  }
  // catch possible negative values in NS4
  if (tempX < 0){tempY = 0}
  return tempY;
}

function validateSendToFriend(memberID) {
 var errors = 0;
 var errorBGColor = '#ffff99';
 var bgColor = '#eeeeee';

 var toName = document.getElementById('toName').value;
 var toEmail = document.getElementById('toEmail').value;
 var fromName = document.getElementById('fromName').value;
 var fromEmail = document.getElementById('fromEmail').value;

 var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

 if (toName == '') {
   document.getElementById('toName').style.background = errorBGColor;
   errors = 1;
 } else { document.getElementById('toName').style.background = bgColor; }

 if (toEmail == '') {
   document.getElementById('toEmail').style.background = errorBGColor;
   errors = 1;
 } else { document.getElementById('toEmail').style.background = bgColor; }

  if (fromName == '') {
   document.getElementById('fromName').style.background = errorBGColor;
   errors = 1;
 }  else { document.getElementById('fromName').style.background = bgColor; }

 if (fromEmail == '') {
   document.getElementById('fromEmail').style.background = errorBGColor;
   errors = 1;
 } else { document.getElementById('fromEmail').style.background = bgColor; }

  if (reg.test(toEmail)==false) {
     document.getElementById('toEmail').style.background = errorBGColor;
   errors = 1;
  }

  if (reg.test(fromEmail)==false) {
     document.getElementById('fromEmail').style.background = errorBGColor;
   errors = 1;
  }


 if (!errors) {
   document.getElementById('sendToFriendDiv').style.display = 'none';
   var message = document.getElementById('messageToFriend').value;
   var getString = '&memberID='+memberID+'&toName='+toName+'&toEmail='+toEmail+'&fromName='+fromName+'&fromEmail='+fromEmail+'&message='+message;
   http.open('get','process_ajax.php?action=sendEmailToFriend'+getString);

   http.onreadystatechange = function() {
    if(http.readyState == 4){

    }
  };
  http.send(null);

 }


}

function saveDistanceRestriction(ownerID) {

  var restrictDistance = $("#restrictDistance").val();
 //alert('OwnerID: '+ownerID+' Distance: '+distance);

   http.open('get','process_ajax.php?action=saveDistanceRestriction&ownerID='+ownerID+'&restrictDistance='+restrictDistance);

  http.onreadystatechange = function() {
    if(http.readyState == 4){
      var response = http.responseText;
      document.getElementById('restrictDistanceDiv').innerHTML = response;
    }
  };
  http.send(null);

}
