// JavaScript Document
var cur_id = '';
var PostAfterGet = false;
var DelPostAfterGet = false;
var PostAfterGetEdit = false;
var checkInterval = '';

function checkUploaded(result)
{
	clearTimeout(checkInterval);
	var status = window.frames["upload_iframe"].document.getElementsByTagName("body")[0].innerHTML;	
	if(status == 'true')
	{
		url = SiteName+'/getrequests/ancestry_content.php?rand='+Math.random() * 11111111111111111111;	
		cur_id = 'ancestry_container';			 
		GetFormData(url, cur_id);
		alert(result);		
	}
	else
	if(status == 'false')
	{
		url = SiteName+'/getrequests/ancestry_content.php?rand='+Math.random() * 11111111111111111111;	
		cur_id = 'ancestry_container';			 
		GetFormData(url, cur_id);
		alert(result);		
	}
	else
		var checkInterval = setTimeout("checkUploaded('"+result+"')", 111);	
}

function CheckFileUploaded(result)
{
	var checkInterval = setTimeout("checkUploaded('"+result+"')", 111);	
}

function ProcessPostRequest() {
  if (request.readyState == 4) {
	 if (request.status == 200) {
		 result = request.responseText;		 
		 if(PostAfterGet)
		 {
			 PostAfterGet = false;			 
			 document.frm_file.action = SiteName+'/files/upload_image.php?image_id='+result;
			 document.frm_file.submit();
			 
			 //check the result status each two seconds and if true only GetFormData
			 CheckFileUploaded('Your request has been registered successfully.');
		 }
		 
		 if(DelPostAfterGet)
		 {
			 DelPostAfterGet = false;			 
			 //get the saved status
			 
			 url = SiteName+'/getrequests/ancestry_content.php?rand='+Math.random() * 11111111111111111111;	
			 cur_id = 'ancestry_container';			 
			 GetFormData(url, cur_id);
			 alert(result);
		 }
		 
		 if(PostAfterGetEdit)
		 {
			 PostAfterGetEdit = false;
			 CheckFileUploaded(result);
		 }
	 }		 
  }
}

function ends_with(hay,neddle)
{
	hay=hay.replace(/^\s*|\s*$/g,"");
	neddle_length=neddle.length;
	hay_length=hay.length;
	hay_part=hay.substring((hay_length-neddle_length),hay_length);
	return (hay_part==neddle);
}

function failure()
{
	alert('Sorry, server encountered an error!');
	url = SiteName+'/getrequests/ancestry_content.php?rand='+Math.random() * 11111111111111111111;	
	cur_id = 'ancestry_container';			 
	GetFormData(url, cur_id);
}

function PostData(url, parameters) {
	request = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		request = new XMLHttpRequest();
		if (request.overrideMimeType) {		
		request.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
	 try {
		request = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
	}
	
	if (!request) {		
	 failure();
	 setTimeout("finish()",2000);
	 return false;
	}
	
	request.onreadystatechange = ProcessPostRequest;
	request.open('POST', url, true);
	request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	request.setRequestHeader("Content-length", parameters.length);
	request.setRequestHeader("Connection", "close");
	request.send(parameters);
}

function GetFormData(url, cur_id)
{	
	var getrequest = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		getrequest = new XMLHttpRequest();
		if (getrequest.overrideMimeType) {		
		getrequest.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
	 try {
		getrequest = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
		try {
		   getrequest = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {}
	 }
	}
	if (!getrequest) {	 
	 document.getElementById(cur_id).innerHTML = 'failed';
	 return false;
	}
	
	getrequest.open('GET', url, true);
	getrequest.onreadystatechange = function() {
		if(getrequest.readyState == 4) {
		  	result1 = getrequest.responseText;			
			document.getElementById(cur_id).innerHTML = result1;
		}
	};	
	getrequest.send(null);
}

function AddRelation(relation, my_id)
{
	//alert(relation+my_id);
	document.getElementById('main_div').style.display = "block";
	document.getElementById('myform_div').style.display = "block";
	document.getElementById('myform_div').innerHTML = '<div style="position:relative; top:100px; left:150px;"><img src="'+SiteName+'/images/loading_bool.gif'+'" style="border:none;" /></div>';
	cur_id = "myform_div";
	var url = SiteName+"/getrequests/frm_add_me.php?relation="+relation+"&my_id="+my_id+"&rand="+Math.random()*11111111111111111111;
	GetFormData(url, cur_id);
}

//for children, the add function should contain mom and dad ids
function AddChildren(relation, my_id, spouse_id, my_gender)
{
	document.getElementById('main_div').style.display = "block";
	document.getElementById('myform_div').style.display = "block";
	document.getElementById('myform_div').innerHTML = '<div style="position:relative; top:100px; left:150px;"><img src="'+SiteName+'/images/loading_bool.gif'+'" style="border:none;" /></div>';
	cur_id = "myform_div";
	var url = SiteName+"/getrequests/frm_add_me.php?relation="+relation+"&my_id="+my_id+"&spouse_id="+spouse_id+"&my_gender="+my_gender+"&rand="+Math.random()*11111111111111111111;
	GetFormData(url, cur_id);
}


function InsertUser(frm, relation)
{
	document.getElementById(cur_id).style.display = "none";
	document.getElementById('main_div').style.display = "none";
	//alert(relation);
	document.getElementById('ancestry_container').innerHTML = '<div style="position:absolute; top:200px; left:300px;" align="center">Working on your request...<br /><img src="'+SiteName+'/images/loading_bool.gif'+'" style="border:none;" /></div>';
	
	if(relation == 'Father')
		var id = 'dad_id';
		
	if(relation == 'Mother')
		var id = 'mom_id';
	
	if(relation == 'Spouse')
		var id = 'spouse_id';
		
	if(relation == 'Children')
		var id = 'child_id';
		
	var parameters = "my_id="+frm.my_id.value+"&case="+id;
	if(relation == 'Children')
		parameters += "&my_gender="+frm.my_gender.value+"&spouse_id="+frm.spouse_id.value;
	parameters += "&first_name="+frm.fname.value;
	parameters += "&last_name="+frm.lname.value;
	if(frm.gender[0].checked)
		parameters += "&gender=m";
	else
		parameters += "&gender=f"
		
	if(frm.transgender)
	{
		if(frm.transgender.checked)
			parameters += "t";
	}
		
	if(frm.birthmonth.value == 'NA')
		parameters += "&birthdate="+frm.birthyear.value;
	else
		parameters += "&birthdate="+frm.birthyear.value+'/'+frm.birthmonth.value;
	
	if(frm.deathmonth.value == 'NA')
		parameters += "&deathdate="+frm.deathyear.value;
	else
		parameters += "&deathdate="+frm.deathyear.value+'/'+frm.deathmonth.value;
		
	//parameters += "&file="+frm.display_image.value;
	PostAfterGet = true;		
	PostData(SiteName+'/postrequests/save_me.php', parameters);
}

function ValidateFields(frm, relation)
{
	//fields fname, lname, gender, birthyear, deathyear
	var msg = '';
	if(frm.fname.value == "")
	{
		msg += '\nYou have not entered first name.';
	}
	
	if(frm.lname.value == "")
	{
		msg += '\nYou have not entered last name.';
	}
	
	if(frm.gender[0].checked == false && frm.gender[1].checked == false)
	{
		msg += '\nYou have not selected a gender.';
	}
	
	if(frm.birthyear.value == 'NA')
	{
		msg += '\nYou have not selected a birthyear.';
	}
	
	if(frm.deathyear.value != 'NA')
	{
		if(parseInt(frm.birthyear.value) > parseInt(frm.deathyear.value))
		{
			msg += '\nDeath year can not be earlier than birth year.';
		}
		else
		if(parseInt(frm.birthyear.value) == parseInt(frm.deathyear.value))
		{
			if(!(isNaN(frm.birthmonth.value) && isNaN(frm.deathmonth.value)) && (parseInt(frm.birthmonth.value) >parseInt(frm.deathmonth.value)))
			{
				msg += '\nDeath month can not be greater than birth month.';
			}
		}
	}
	
	if(!ends_with(frm.display_image.value, ".jpg") && frm.display_image.value != '')
	{
		msg += '\nPlease select a JPG image or leave the field blank.';
	}
	
	if(msg == '')
	{
		
		InsertUser(frm, relation);		
	}		
	else
	{
		alert(msg);
		return false;
	}
}

function exit_form()
{
	document.getElementById('myform_div').innerHTML = '';
	document.getElementById('myform_div').style.display = "none";
	document.getElementById('main_div').style.display = "none";	
}



function DeleteMe(my_id)
{
	if(confirm("Are you sure that you want to delete the node in the family tree?"))
	{
		//delete me and my ancestors, my reference to my wife and my reference to my child		
		document.getElementById('main_div').style.display = "none";
		document.getElementById('ancestry_container').innerHTML = '<div style="position:absolute; top:200px; left:300px;" align="center">Working on your request...<br /><img src="'+SiteName+'/images/loading_bool.gif'+'" style="border:none;" /></div>';		
		
		DelPostAfterGet = true;
		var parameters = "del_id="+my_id;
		PostData(SiteName+'/postrequests/delete_me.php', parameters);
	}
	else
		return false;
}

function EditMe(my_id)
{
	//just change the photo information and name birthdate informations
	document.getElementById('main_div').style.display = "block";
	document.getElementById('myform_div').style.display = "block";
	document.getElementById('myform_div').innerHTML = '<div style="position:relative; top:100px; left:150px;"><img src="'+SiteName+'/images/loading_bool.gif'+'" style="border:none;" /></div>';
	cur_id = "myform_div";
	var url = SiteName+"/getrequests/frm_edit_me.php?id="+my_id+"&rand="+Math.random()*11111111111111111111;
	GetFormData(url, cur_id);
}

function ValidateEditFields(frm)
{
	var msg = '';
	if(frm.fname.value == "")
	{
		msg += '\nYou have not entered first name.';
	}
	
	if(frm.lname.value == "")
	{
		msg += '\nYou have not entered last name.';
	}
	
	if(frm.gender[0].checked == false && frm.gender[1].checked == false)
	{
		msg += '\nYou have not selected a gender.';
	}
	
	if(frm.birthyear.value == 'NA')
	{
		msg += '\nYou have not selected a birthyear.';
	}
	
	if(frm.deathyear.value != 'NA')
	{
		if(parseInt(frm.birthyear.value) > parseInt(frm.deathyear.value))
		{
			msg += '\nDeath year can not be earlier than birth year.';
		}
		else
		if(parseInt(frm.birthyear.value) == parseInt(frm.deathyear.value))
		{
			if(!(isNaN(frm.birthmonth.value) && isNaN(frm.deathmonth.value)) && (parseInt(frm.birthmonth.value) >parseInt(frm.deathmonth.value)))
			{
				msg += '\nDeath month can not be greater than birth month.';
			}
		}
	}
	
	if(!ends_with(frm.display_image.value, ".jpg") && frm.display_image.value != '')
	{
		msg += '\nPlease select a JPG image or leave the field blank.';
	}
	
	if(msg == '')
	{
		frm.action = SiteName+'/files/upload_image.php?image_id='+frm.my_id.value;
		frm.submit();
		EditUser(frm);		
	}		
	else
	{
		alert(msg);
		return false;
	}
}


function EditUser(frm)
{
	document.getElementById(cur_id).style.display = "none";
	document.getElementById('main_div').style.display = "none";
	document.getElementById('ancestry_container').innerHTML = '<div style="position:absolute; top:200px; left:300px;" align="center">Working on your request...<br /><img src="'+SiteName+'/images/loading_bool.gif'+'" style="border:none;" /></div>';
	
	var parameters = "my_id="+frm.my_id.value;
	parameters += "&first_name="+frm.fname.value;
	parameters += "&last_name="+frm.lname.value;
		
	if(frm.birthmonth.value == 'NA')
		parameters += "&birthdate="+frm.birthyear.value;
	else
		parameters += "&birthdate="+frm.birthyear.value+'/'+frm.birthmonth.value;
	
	if(frm.deathmonth.value == 'NA')
		parameters += "&deathdate="+frm.deathyear.value;
	else
		parameters += "&deathdate="+frm.deathyear.value+'/'+frm.deathmonth.value;
		
	PostAfterGetEdit = true;		
	PostData(SiteName+'/postrequests/edit_me.php', parameters);
}