function GetFTManage(){
	//var url = strHostRoot + "/FamilyTree/FTManage.aspx?JTN=" + document.getElementById("chkJustNames").checked
	//	url += "&SR=" + document.getElementById("chkRelation").checked
	//MyMenuFrame.src = url;

	GetFTMemberList()
	SetOptions1()
	ShowMsg()
}

function GetFTSample(s){
	MyMenuFrame.src = strHostRoot + "/FamilyTree/FTSamples.aspx?Sample=" + s
}

function GetFTMemberList(){
	if(window.top.bolRefreshMembersList) window.top.MyMenuFrame1.src = strHostRoot + "/FamilyTree/FTMemberList.aspx"
	window.top.bolRefreshMembersList=true;
}

function SelectFTData(){
	document.getElementById("txtFTDataCopy").select();
}

function SetActivePerson(PrsnID){
	bolRefreshMembersList=false;
    var intActiveTab = ActiveTabGet()

    //the following call make sures that the respective tab options are enabled
    if(intActiveTab == 1){
		document.getElementById("divSTATS").style.display="none";
		document.getElementById("divSTATS").style.visibility="hidden";

	    document.getElementById("divALL_MEMBERS").style.display="";
	    document.getElementById("divALL_MEMBERS").style.visibility="visible";
    }

	if(document.getElementById("selViewMode").selectedIndex == 0){
	    document.getElementById("selViewMode").selectedIndex = 1
	    SelectTab(2)
	}

    if(intActiveTab < 2 || intActiveTab > 3){
        document.getElementById("selViewMode").selectedIndex = 1
        SelectTab(2)
    }

	window.frames['ifSearch1'].document.getElementById("hdnMode").value = "CHANGE_CURRENT_PERSON"
	window.frames['ifSearch1'].document.getElementById("hdnPrsnID").value = PrsnID
    
	SetOptions1()
	//document.frmFTManage.submit()
	//window.parent.MsgWndHide()
}

function EmailFTData(){
	document.getElementById("hdnMode").value = "EMAIL_FT_DATA"
	document.frmFTManage.submit()
}

function NewFT(){
	document.getElementById("hdnMode").value = "NEW"
	document.frmFTManage.submit()
}

function ViewFT(){
	document.getElementById("hdnMode").value = "LOGIN"
	document.frmFTManage.submit()
}

function DecryptData(){
	if(document.getElementById("txtKeyword").value =="" || document.getElementById("txtFTData").value ==""){
		alert("Please provide Keyword and Family Tree Data.")
		return false;
	}
	document.getElementById("hdnMode").value = "DECRYPT_DATA"
	document.frmFTManage.submit()
}

function CleanUpFT(){
	document.getElementById("hdnMode").value = "CLEANUP_FT_DATA"
	document.frmFTManage.submit()
}


function RetrieveByEmail(eml){
	window.parent.document.getElementById("selViewMode").selectedIndex=0;
	//window.parent.ChangeView()
	//window.top.bolRefreshMembersList=true;	//Do not change the position
	
	document.getElementById("hdnMode").value = "RETRIEVE_BY_EMAIL"

	if(eml)document.getElementById("txtEml").value=eml;

	document.frmFTManage.submit()
}

function VerifyEmail(){
	if(document.getElementById("txtEml")){
		if(!isEmail(document.getElementById("txtEml").value)){
			alert("Please provide valid Email")
			document.getElementById("txtEml").focus();
			return false;
		}
	}

	window.parent.SetOptions1()
}


function ModifyPrsnName(PrsnID,PrsnName){
	window.parent.ModifyPersonName(PrsnID,PrsnName)
}

function DelPrsn(PrsnID){
	if(confirm("Do you want to delete this member?")){
		document.getElementById("hdnMode").value = "DELETE_PERSON"
		document.getElementById("hdnPrsnID").value = PrsnID
		window.parent.SetOptions1()
		//document.frmFTManage.submit()
	}
}

//Set color settings
function TVPropsSet(){
	var props = "BGClr,LnClr,TextClr,BrdrClr,BGImg"
	var a = props.split(",")

	for(b in a){
		try{
			var x = document.getElementById("txt" + a[b] + "1").value
			var y = document.getElementById("txt" + a[b] + "2").value

			
			if(x != ''){
				if(a[b] == "BGImg"){window.parent.document.getElementById('tdBGImg1').style.backgroundImage="url(" + x + ")" }
				window.parent.document.getElementById("txt" + a[b] + "1").value = x
				//window.parent.document.getElementById("td" + a[b] + "1").value = x
				window.parent.document.getElementById("td" + a[b] + "1").style.backgroundColor = x
			}
		}
		catch (e){}
		try{
			if(y != ''){
				if(a[b] == "BGImg"){window.parent.document.getElementById('tdBGImg2').style.backgroundImage="url(" + y + ")"}
				window.parent.document.getElementById("txt" + a[b] + "2").value = y
				//window.parent.document.getElementById("td" + a[b] + "2").value = y
				window.parent.document.getElementById("td" + a[b] + "2").style.backgroundColor = y
			}
		}
		catch (e){}
	}
}

function SetPageSettings1(){
	window.parent.MyMenuFrameDoc = document;
	document.getElementById("divFTView").onselectstart=NoSelect

	if(document.getElementById("txtKeyword")) document.getElementById("txtKeyword").focus();
	if(document.getElementById("txtPrsnName")) document.getElementById("txtPrsnName").focus();
	if(!document.getElementById("txtPrsnName") && document.getElementById("txtEml")) document.getElementById("txtEml").focus();

	window.parent.document.getElementById("txtTitle").value = document.getElementById("hdnViewTitle").value
	TVPropsSet()
	
	window.parent.HideDiv("divMsg")

	if(window.parent.MyMenuFrameDoc1) window.parent.GetFTMemberList()

	//If PrsnID is present, popup the new person add window
	if(parseInt(document.getElementById("hdnPrsnID").value) > 0){
		if(document.getElementById("hdnMode").value == "ADDNEW"){
			window.parent.NewPersonAdd()

			document.getElementById("hdnMode").value = "ALL_MEMBERS"
			window.parent.document.getElementById("selViewMode").selectedIndex=1;
			window.parent.ChangeView();
		}
	}
}


function SetPageSettings2(){
	window.parent.MyMenuFrameDoc1 = document;
}

function SetPrimaryPerson(PrsnID){
	bolRefreshMembersList=false;

	try{
		if(window.frames['ifSearch1']) window.frames['ifSearch1'].SetActivePerson(PrsnID)
	}
	catch(ex){}

	//alert(window.parent.MyMenuFrameDoc.window) //.window.SetActivePerson(obj.value)
}

function AddNewPerson(){
	if(document.getElementById("txtPrsnName") && document.getElementById("txtPrsnName").value == ""){
		alert("Please enter your name.")
		document.getElementById("txtPrsnName").focus();
		return false;
	}

	if(!isEmail(document.getElementById("txtEml").value)){
		alert("Please provide valid Email")
		document.getElementById("txtEml").focus();
		return false;
	}

	document.getElementById("hdnMode").value = "ADDNEW"
	document.frmFTManage.submit()
}


function PersonAddKeyPress(e){
	var key = ""
	var name = ""
	var srcObj = ""

	if (navigator.appName.indexOf("Netscape") != -1){
		key = e.which;
		name = e.target.name;
		srcObj = e.target;
	} 
	else{
		key = window.event.keyCode;
		name = e.srcElement.name;
		srcObj = e.srcElement;
	}

	if(key == 13 && name == "txtPrsnName"){
		document.getElementById("txtFamiName").focus();
	}

	if(key == 13 && name == "txtFamiName"){
		document.getElementById("txtEml").focus();
	}

	if(key == 13 && name == "txtEml"){
		document.getElementById("txtPassword").focus();
	}

	if(key == 13 && name == "txtPassword"){
		AddNewPerson()
	}
}

function RetrieveByEmailKeyPress(e){
	var key = ""
	var name = ""
	var srcObj = ""

	if (navigator.appName.indexOf("Netscape") != -1){
		key = e.which;
		name = e.target.name;
		srcObj = e.target;
	} 
	else{
		key = window.event.keyCode;
		name = e.srcElement.name;
		srcObj = e.srcElement;
	}

	if(key == 13 && name == "txtEml"){
		VerifyEmail()
	}
}

function DecryptKeyPress(e){
	var key = ""
	var name = ""
	var srcObj = ""

	if (navigator.appName.indexOf("Netscape") != -1){
		key = e.which;
		name = e.target.name;
		srcObj = e.target;
	} 
	else{
		key = window.event.keyCode;
		name = e.srcElement.name;
		srcObj = e.srcElement;
	}


	if(key == 13 && name == "txtKeyword"){
		document.getElementById("txtFTData").focus();
	}

	if(key == 13 && name == "txtFTData"){
		DecryptData();
	}
}

function UpdatePrsnNameKeyPress(e){
	var key = ""
	var name = ""
	var srcObj = ""

	if (navigator.appName.indexOf("Netscape") != -1){
		key = e.which;
		name = e.target.name;
		srcObj = e.target;
	} 
	else{
		key = window.event.keyCode;
		name = e.srcElement.name;
		srcObj = e.srcElement;
	}

	if(key == 13 && name == "txtPrsnName"){
		document.getElementById("txtFamiName").focus();
	}

	if(key == 13 && name == "txtFamiName"){
		document.getElementById("txtPhotoURL").focus();
		//UpdatePrsnName()
	}

	if(key == 13 && name == "txtPhotoURL"){
		document.getElementById("txtSortOrder").focus();
		//UpdatePrsnName()
	}

	if(key == 13 && name == "txtSortOrder"){
		document.getElementById("imgUpdateSubmit").focus();
		//UpdatePrsnName()
	}


}


function MemberAddKeyPress(e){
	var key = ""
	var name = ""
	var srcObj = ""

	if (navigator.appName.indexOf("Netscape") != -1){
		key = e.which;
		name = e.target.name;
		srcObj = e.target;
	} 
	else{
		key = window.event.keyCode;
		name = e.srcElement.name;
		srcObj = e.srcElement;
	}

	if(key == 13 && name == "txtPrsnName"){
		document.getElementById("txtFamiName").focus();
	}

	if(key == 13 && name == "txtFamiName"){
		AddNewMember()
	}
}

	function OnEscapeKeyPress(e){
		var key = ""
		var name = ""
		var srcObj = ""

		if (navigator.appName.indexOf("Netscape") != -1){
			key = e.which;
			name = e.target.name;
			srcObj = e.target;
		} 
		else{
			key = window.event.keyCode;
			name = e.srcElement.name;
			srcObj = e.srcElement;
		}

		if(key == 27){	//Not working for Firefox
			window.parent.MsgWndHide()
		}
	}



// =========================== FTDefault.aspx related functions

	function NewPersonAdd(){
		MsgWndShow("", "Add New Family Member", 250, 350, 550, 115, strHostRoot + "/FamilyTree/FTPersonManage.aspx")
	}

	function NewPersonAdd1(PrsnID){
		MsgWndShow("", "Add New Family Member", 250, 350, 550, 115, strHostRoot + "/FamilyTree/FTPersonManage.aspx?FTPrsnID=" + PrsnID)
	}

	function ModifyRelation(){
		MsgWndShow("", "Set/Update Relations", 250, 350, 500, 135, strHostRoot + "/FamilyTree/FTPersonManage.aspx?hdnMode=MODIFY_RELATION")
	}

	function ModifyPersonName(PrsnID,PrsnName){
		MsgWndShow("", "Update Person Info", 350, 100, 350, 220, strHostRoot + "/FamilyTree/FTPersonManage.aspx?hdnMode=MODIFY_PERSON_NAME&PRSNID=" + PrsnID + "&PRSNNAME=" + PrsnName)
	}


	function FTHelp(TopicID){
		MsgWndShow("", "Family Tree Help", 350, 120, 400, 300, strHostRoot + "/FamilyTree/FTHelp.aspx?#" + TopicID)
	}

	function FTBGImage(obj){
		var html = document.getElementById("divBGImg").innerHTML
		html = html.replace(/txtBGImgPick/g,"txtBGImgPick1")
		MsgWndShow(html, "Background Image", 550, 130, 450, 300)

		document.getElementById("txtBGImgPick1").value = document.getElementById(obj.id.toString().replace(/tdBGImg/g,"txtBGImg")).value
	}
 
	function DesignTemplateShow(){
		var html = document.getElementById("divDesignTemplates").innerHTML
		MsgWndShow2(html, "Apply a Design Template to Family Tree", -150, 10, 450, 300)
	}

	function ClearAll(){
	    SelectTab(1)
		try{window.frames['ifSearch1'].document.getElementById("hdnMode").value = "RESET"}
		catch(e){}
		
		document.getElementById("selViewMode").selectedIndex=0;
		ChangeView()
		var url = strHostRoot + "/FamilyTree/FTManage.aspx?hdnMode=RESET"
		MyMenuFrame.src = url;
	}

	function GetViewURL(){
	    var dt = new Date().toString()

		var url = ""
			if(document.getElementById("divALL_MEMBERS").style.visibility == "visible"){
				url += "JTN=" + document.getElementById("chkJustNames").checked
				url += "&SR=" + document.getElementById("chkRelation").checked	//Show relations
				url += "&SFN=" + document.getElementById("chkFamiName").checked	//Show Family name
			}
			
			if(document.getElementById("divTV_1").style.visibility == "visible"){
				url += "Male=" + document.getElementById("chkMale1").checked	//Male
				url += "&Female=" + document.getElementById("chkFemale1").checked	//Female
				url += "&LnClr=" + escape(document.getElementById("txtLnClr1").value)	//Line color
				url += "&TxtClr=" + escape(document.getElementById("txtTextClr1").value)	//Text color
				url += "&BGClr=" + escape(document.getElementById("txtBGClr1").value)	//Background color
				url += "&BrdrClr=" + escape(document.getElementById("txtBrdrClr1").value)	//Box border color
				url += "&BGImg=" + escape(document.getElementById("txtBGImg1").value)	//Background image
				url += "&ShowImgs=" + document.getElementById("chkShowImage1").checked	//Show images
				if(window.frames['ifSearch1'].document.getElementById("chkNamesOnly")){
				    url += "&JTN=" + window.frames['ifSearch1'].document.getElementById("chkNamesOnly").checked
				}
			}

			if(document.getElementById("divTV_2").style.visibility == "visible"){
				url += "Male=" + document.getElementById("chkMale2").checked	//Male
				url += "&Female=" + document.getElementById("chkFemale2").checked	//Female
				url += "&LnClr=" + escape(document.getElementById("txtLnClr2").value)	//Line color
				url += "&TxtClr=" + escape(document.getElementById("txtTextClr2").value)	//Text color
				url += "&BGClr=" + escape(document.getElementById("txtBGClr2").value)	//Background color
				url += "&BrdrClr=" + escape(document.getElementById("txtBrdrClr2").value)	//Box border color
				url += "&BGImg=" + escape(document.getElementById("txtBGImg2").value)	//Background image
				url += "&ShowImgs=" + document.getElementById("chkShowImage2").checked	//Show images
			}

			if(document.getElementById("divTV_3").style.visibility == "visible"){
				url += "Male=" + document.getElementById("chkMale3").checked	//Male
				url += "&Female=" + document.getElementById("chkFemale3").checked	//Female
				url += "&LnClr=" + escape(document.getElementById("txtLnClr3").value)	//Line color
				url += "&TxtClr=" + escape(document.getElementById("txtTextClr3").value)	//Text color
				url += "&BGClr=" + escape(document.getElementById("txtBGClr3").value)	//Background color
				url += "&BrdrClr=" + escape(document.getElementById("txtBrdrClr3").value)	//Box border color
				url += "&BGImg=" + escape(document.getElementById("txtBGImg3").value)	//Background image

				if(!isPositiveInteger(document.getElementById("txtBoxW3").value) || !isPositiveInteger(document.getElementById("txtBoxH3").value) || !isPositiveInteger(document.getElementById("txtRowGap3").value)){
					alert("Value should be integer in 'Box H', 'Box W' and 'Row Gap'")
					return false;
				}
				
				url += "&BoxW=" + document.getElementById("txtBoxW3").value	//Box width
				url += "&BoxH=" + document.getElementById("txtBoxH3").value	//Box height
				url += "&RowGap=" + document.getElementById("txtRowGap3").value	//Row gap
				//url += "&LnClr=" + document.getElementById("txtLnClr3").value	//Line color
			}

			url += "&VM=" + document.getElementById("selViewMode").value	//View mode
			url += "&TITLE=" + escape(document.getElementById("txtTitle").value)	//Tree title

			if(window.frames['ifSearch1'].document.getElementById("hdnMode")){
				url += "&hdnMode=" + window.frames['ifSearch1'].document.getElementById("hdnMode").value	//Action Mode
				url += "&hdnPrsnID=" + window.frames['ifSearch1'].document.getElementById("hdnPrsnID").value	//Current person change
			}
			
			if(window.frames['ifSearch1'].document.getElementById("txtEml")){
				url += "&Eml=" + escape(window.frames['ifSearch1'].document.getElementById("txtEml").value)	//Email
			}
			
			//url += "&DT=" + dt
			
			return url;
	}


	function RefreshView(){
		try{
			window.frames['ifSearch1'].document.getElementById("hdnMode").value = document.getElementById("selViewMode").value
			SetOptions1()
		}catch(e){}
	}
	
	function ColorPickerCallBack(obj, color){
		bolRefreshMembersList=false;
		var tdID = obj.name.toString().replace(/txt/g,"td")
		document.getElementById(tdID).style.backgroundColor = color
		
		//The ColorPickerCallBack() is called from one of the calendar functions.  When the SetOptions1() is called from this function, ajax is not working right.
		setTimeout("SetOptions1()",100)
		
	}

	function SetOptions1(){
		ShowMsg()

		var m = ""
		try{
			m = window.frames['ifSearch1'].document.getElementById("hdnMode").value
		}catch (e){}

		if(m == "RETRIEVE_BY_EMAIL" || m == "DELETE_PERSON" || m == "CHANGE_CURRENT_PERSON" || m == "STATS" || m == "ALL_MEMBERS" || m == "TV_1" || m == "TV_2" || m == "TV_3"){
			var u = myTarget + "?" + GetViewURL()
			//sendData("", u, "xml", "FTViewSet");
            SendAJAXRequest("FTViewSet", '', 'plain', u);
		}
		else{
			MyMenuFrame.src = strHostRoot + "/FamilyTree/FTManage.aspx?" + GetViewURL();
		}
	}

	function FTViewSet(s){
		window.parent.HideDiv("divMsg")

		if(s == "") return false;
		
		try{
			window.frames['ifSearch1'].document.getElementById("divFTView").innerHTML = s
			//MyMenuFrameDoc.getElementById("divFTView").innerHTML = s
		}catch(e){
		    alert(e.message)
		}
	
		GetFTMemberList()
	}

	function EmailMyData(){
		var url = strHostRoot + "/FamilyTree/FTManage.aspx?hdnMode=EMAIL_MY_DATA"
		MyMenuFrame.src = url;
	}

	function PrintView(){
		window.frames['ifSearch1'].focus();
		window.frames['ifSearch1'].print();
	}
	
	function ChangeView(){
		var MyViews = document.getElementById("selViewMode")
		var viewCount = MyViews.options.length - 1

		for(i=0;i <= viewCount;i++){
			try{
				document.getElementById("div" + MyViews.options[i].value).style.display="none";
				document.getElementById("div" + MyViews.options[i].value).style.visibility="hidden";
			}
			catch(ex){
			    alert(ex.message)
				break;
			}
		}

		try{
			document.getElementById("div" + MyViews.value).style.display="";
			document.getElementById("div" + MyViews.value).style.visibility="visible";
		}catch(e){}


		if(MyViews.options[MyViews.selectedIndex].value == 'TV_3' && !document.all){
			alert("This view looks better in IE")
		}

		try{
			window.frames['ifSearch1'].document.getElementById("hdnMode").value = MyViews.value
		}catch(e){}
		
		bolRefreshMembersList=false;
		
        setTimeout("SetOptions1()",100)
		//SetOptions1()
	}



	function TreeViewPropsKeyPress(e){
		var key = ""
		var name = ""
		var srcObj = ""

		if (navigator.appName.indexOf("Netscape") != -1){
			key = e.which;
			name = e.target.name;
			srcObj = e.target;
		} 
		else{
			key = window.event.keyCode;
			name = e.srcElement.name;
			srcObj = e.srcElement;
		}

		if(key == 13){
			SetOptions1();
		}
	}

	function WideView(){
		var u = myTarget + "?" + GetViewURL();
		u += "&WideView=1"
        SendAJAXRequest("WideViewSet", '', 'plain', u);
	
		//document.getElementById("selViewMode").style.visibility="hidden"
	}
	function WideViewSet(s){
		MsgWndShow2(s, "Tree View", 10, 10, WindowAvailWidthGet(), WindowAvailHeightGet())
	}

	function HTMLGet(){
		var html = window.frames['ifSearch1'].GetHTMLSource('html')

		//var exp = new RegExp("&lt;/body","g")
		var exp = new RegExp("&lt;!--...--&gt;","g")
		html = html.replace(exp, "Visit <a target='_new' href='http://FunctionHalls.com/FamilyTree'>http://FunctionHalls.com/FamilyTree</a> to build your own Family Tree.");
		
		//This is for FF
		html = html.replace(/onload=\"SetPageSettings1\(\)\"/g, "");
		//This is for IE
		html = html.replace(/onload=SetPageSettings1\(\)/g, "");

		var s = "<table><tr><td class='RegText'>"
		s += "One way of sharing your Family Tree with other family members is to send a simple HTML file and all they have to do is open it in any borwser.<br><br>"
		s += "Please copy the HTML code below and save it in a text file with extention .html</td></tr>"
		s += "<tr><td><textarea type=text rows=5 cols=30>" + html + "</textarea></td></tr>"
		s += "</table>"

		MsgWndShow(s, "Get HTML for this Tree View", 350, 200, 350, 145,"")
	}


	function PNGGet(){
	    alert("This feature will be available soon!!!")
	    return false;
	    
		window.frames['ifSearch1'].document.getElementById("hdnMode").value = "PNG"
		//SetOptions1();
		var url = strHostRoot + "/FamilyTree/PNGMaker.aspx?" + GetViewURL()
		
		MsgWndShow2("", "Get Image of this Tree View", 50, 0, 500, 400, url)
		
	}

	function SetBGImg(obj){
		document.getElementById('txtBGImgPick1').value = obj.value

		if(document.getElementById("divTV_1").style.visibility == "visible"){
			document.getElementById('txtBGImg1').value = obj.value
			document.getElementById('tdBGImg1').style.backgroundImage="url(" + obj.value + ")"
		}
		
		if(document.getElementById("divTV_2").style.visibility == "visible"){
			document.getElementById('txtBGImg2').value = obj.value
			document.getElementById('tdBGImg2').style.backgroundImage="url(" + obj.value + ")"
		}
		
		if(document.getElementById("divTV_3").style.visibility == "visible"){
			document.getElementById('txtBGImg3').value = obj.value
			document.getElementById('tdBGImg3').style.backgroundImage="url(" + obj.value + ")"
		}

		window.top.bolRefreshMembersList=false;
		SetOptions1()
	}

	function DesignTemplateSet(obj){
		bolRefreshMembersList=false;
		var elements = "BGClr,LnClr,TextClr,BrdrClr,BGImg".split(",")
		var props = obj.value.toString().split(",")
		var sfx = ""
	
		if (props.length==1) return false;
		
		if(document.getElementById("divTV_1").style.visibility == "visible"){sfx="1"}
		if(document.getElementById("divTV_2").style.visibility == "visible"){sfx="2"}
		if(document.getElementById("divTV_3").style.visibility == "visible"){sfx="3"}

		for(e in elements){
			document.getElementById("txt" + elements[e] + sfx).value = props[e]
			
			if(elements[e] == "BGImg"){
				document.getElementById('tdBGImg' + sfx).style.backgroundImage="url(" + props[e] + ")"
			}
			else{
				document.getElementById("td" + elements[e] + sfx).style.backgroundColor = props[e]
			}
		}

        setTimeout("SetOptions1()",100)
		//SetOptions1()
	}
	
	function SubmitBGImg(){
		SetBGImg(document.getElementById('txtBGImgPick1'))
	}

	function ClearBGImgURL(){
		document.getElementById('txtBGImgPick1').value = '';
	}


	function MsgWndCallback(){
		//document.getElementById("selViewMode").style.visibility="visible"
	}

	function ShowSample(s){
		bolRefreshMembersList=true;
		document.getElementById("selViewMode").selectedIndex=0;
		window.frames['ifSearch1'].document.getElementById("hdnMode").value = s
		var u = myTarget + "?" + GetViewURL()
		
		SendAJAXRequest('FTViewSet', '', 'plain', u);
		setTimeout("GetFTMemberList()",100)
		SelectTab(2)
	}

    

// =============================================================