
	//
	// Veetro AJAX Form Handler
	//

	Veetro.EntityFlags = 
	{
		"Sales_Lead":2,
		"Customer":4,
		"Supplier":8,
		"Subscriber":16,
		"Company":32,
		"Person":64,
		"Employee":128,
		"NextOfKin":256,
		"Inactive":512
	}
	
	Veetro.AddressType = 
	{
		"Home":0,
		"Work":1,
		"Billing":2
	}

	var entity = "" //"00000000-0000-0000-0000-000000000000";
	var TemplateID = 0;
	var Template;
	var MailingListID = 0;
	var PrePopulateEmail = '';
	var sysFields;
    var Countries;
    var HasWorkAddr = false;
    var WorkAddrID = 0;
    var HasHomeAddr = false;
    var HomeAddrID = 0;
    var HasBillAddr = false;
    var BillAddrID = 0;
    var CompletionRedirect = '';
    var loggedInName = null;
    var EnableTitle = true;
    var EnableMobileCell = true;
    
	function MakeForm()
	{
	    $("VeetroForm").innerHTML = "Your form is loading, please wait...";

	    if (TemplateID != 0) {
	        var res = Veetro.Service.GetTemplateWebSafe(TemplateID);
	        Template = res.value;
	        if (Template == null) {
	            s = "This form is no longer valid.";
	            return;
	        }
	        sysFields = Veetro.Service.GetTemplateSysFieldsWebSafe(TemplateID).value;
	    }
	    
		var s = "<span id=\"vtro_msg\"></span>";
		s += "<table cellpadding=2 cellspacing=0 border=0>";
		
		
		if (entity.length == 0 || loggedInName==null) {
		    s += "<tr><td colspan=2><b>About You</b></tr>";
		    s += "<tr><td valign=top>E-Mail:</td><td valign=top><input type=\"text\" id=\"vtro_email\" onChange=\"QueryExists()\" style=\"\" value=\"" + PrePopulateEmail + "\"></td></tr>";
		    s += "<tr><td valign=top colspan=2 id=\"vtro_existsMsg\"></td></tr>";
		    if (EnableTitle)
		        s += "<tr><td valign=top>Title:</td><td valign=top><input type=\"text\" id=\"vtro_title\" style=\"\"></td></tr>";
		    s += "<tr><td valign=top>First Name:</td><td valign=top><input type=\"text\" id=\"vtro_firstname\" style=\"\"></td></tr>";
		    s += "<tr><td valign=top>Last Name:</td><td valign=top><input type=\"text\" id=\"vtro_surname\" style=\"\"></td></tr>";
		    if (EnableMobileCell)
		        s += "<tr><td valign=top>Mobile/Cell:</td><td valign=top><input type=\"text\" id=\"vtro_mobile\" style=\"\"></td></tr>";
		        
		    if (sysFields!=null)
		    {
		        for (var i=0;i<sysFields.length;i++)
		        {
		            switch (sysFields[i].Name)
		            {
		                case "Work Address":
		                    HasWorkAddr = true;
		                    s += "<tr><td valign=top colspan=2><b>Work Address</b></td></tr>";
		                    s += "<tr><td valign=top>Street</td><td valign=top>"+GetSysField("Work_Street", true)+"</td></tr>";
		                    s += "<tr><td valign=top>City</td><td valign=top>"+GetSysField("Work_Suburb")+"</td></tr>";
		                    s += "<tr><td valign=top>State/Prov</td><td valign=top>"+GetSysField("Work_StateOrProv")+"</td></tr>";
		                    s += "<tr><td valign=top>Postal Code</td><td valign=top>"+GetSysField("Work_PostalCode")+"</td></tr>";
		                    s += "<tr><td valign=top>Country</td><td valign=top>"+MakeCountryCombo("Work_Country")+"</td></tr>";
		                    s += "<tr><td valign=top>Phone</td><td valign=top>"+MakePhoneField("Work_Phone", true)+"</td></tr>";
		                    s += "<tr><td valign=top>Fax</td><td valign=top>"+MakePhoneField("Work_Fax", false)+"</td></tr>";
		                break;
		                case "Home Address":
		                    HasHomeAddr = true;
		                    s += "<tr><td valign=top colspan=2><b>Home Address</b></td></tr>";
		                    s += "<tr><td valign=top>Street</td><td valign=top>"+GetSysField("Home_Street", true)+"</td></tr>";
		                    s += "<tr><td valign=top>City</td><td valign=top>"+GetSysField("Home_Suburb")+"</td></tr>";
		                    s += "<tr><td valign=top>State/Prov</td><td valign=top>"+GetSysField("Home_StateOrProv")+"</td></tr>";
		                    s += "<tr><td valign=top>Postal Code</td><td valign=top>"+GetSysField("Home_PostalCode")+"</td></tr>";
		                    s += "<tr><td valign=top>Country</td><td valign=top>"+MakeCountryCombo("Home_Country")+"</td></tr>";
		                    s += "<tr><td valign=top>Phone</td><td valign=top>"+MakePhoneField("Home_Phone", true)+"</td></tr>";
		                    s += "<tr><td valign=top>Fax</td><td valign=top>"+MakePhoneField("Home_Fax", false)+"</td></tr>";
		                break;
		                case "Billing Address":
		                    HasBillAddr = true;
		                    s += "<tr><td valign=top colspan=2><b>Billing Address</b></td></tr>";
		                    s += "<tr><td valign=top>Street</td><td valign=top>"+GetSysField("Billing_Street", true)+"</td></tr>";
		                    s += "<tr><td valign=top>City</td><td valign=top>"+GetSysField("Billing_Suburb")+"</td></tr>";
		                    s += "<tr><td valign=top>State/Prov</td><td valign=top>"+GetSysField("Billing_StateOrProv")+"</td></tr>";
		                    s += "<tr><td valign=top>Postal Code</td><td valign=top>"+GetSysField("Billing_PostalCode")+"</td></tr>";
		                    s += "<tr><td valign=top>Country</td><td valign=top>"+MakeCountryCombo("Billing_Country")+"</td></tr>";
		                    s += "<tr><td valign=top>Phone</td><td valign=top>"+MakePhoneField("Billing_Phone", true)+"</td></tr>";
		                    s += "<tr><td valign=top>Fax</td><td valign=top>"+MakePhoneField("Billing_Fax", false)+"</td></tr>";
		                break;
		                case "Title":
		                case "First Name":
		                case "Surname":
		                case "Full Name":
		                case "E-Mail":
		                case "Mobile":
		                    break;
		                default:
		                    s += "<tr><td valign=top>"+sysFields[i].Question+"</td><td valign=top>"+GetAnswerFieldHtml(sysFields[i])+"</td></tr>";
    		                
		                    Template.Fields.push(sysFields[i]); // for commit to server
    		                
		                break;
		            }
    		        
		        }
		    }

        }
        else {
            s += "<tr><td colspan=2>You are logged in as " + loggedInName + "</td></tr>";
        }

		if (TemplateID!=0)
		    s += AppendTemplate();
		
		s += "<tr><td valign=top>&nbsp;</td><td valign=top><input type=\"button\" id=\"vtro_submit\" onClick=\"VtroSubmit();\" value=\"   Submit   \"/><span id=\"vtro_submitwait\"></span></td></tr>";
		s += "</table>";
		
		$("VeetroForm").innerHTML = s;
	}
	
	function AppendTemplate()
	{
		
		if (Template==null)
			return "<tr><td colspan=2>Invalid TemplateID \""+TemplateID+"\"</td></tr>";
			
		var s = "";
		 
		for(var i=0;i<Template.Fields.length;i++)
		{
		    // Skip sys fields here, already asked
		    if (Template.Fields[i].IsSysField
		        || Template.Fields[i].Question==null)
		        continue;
		    
		    if (s.length==0)
		        s += "<tr><td valign=top colspan=2><b>Questions</b></td></tr>";
		        
		    if (Template.Fields[i].Question.length<50)
			    s += "<tr><td valign=top>"+Template.Fields[i].Question+"</td><td valign=top>"+GetAnswerFieldHtml(Template.Fields[i])+"</td></tr>";
			else
			    s += "<tr><td colspan=2>"+Template.Fields[i].Question+"</td></tr><tr><td valign=top>&nbsp;</td><td valign=top>"+GetAnswerFieldHtml(Template.Fields[i])+"</td></tr>";
		}
		return s;
	}
	
	function MakePhoneField(name, ext)
	{
	     return "(<input type=text id=\"vtro_"+name+"_area\" style=\"width: 40px\"/>) <input type=text id=\"vtro_"+name+"_exch\" style=\"width: 60px\"/> - <input type=text id=\"vtro_"+name+"_num\" style=\"width: 60px\"/>" + (ext? " (Extension <input type=text id=\"vtro_"+name+"_ext\" style=\"width: 40px\"/>)":"");
	}
	
	function MakeCountryCombo(name)
	{
	    if (Countries==null)
	        Countries = Veetro.Service.GetCountriesWebSafe().value;
	        
	    var s = "<select id=\"vtro_"+name+"\">";
	    for(var i=0;i<Countries.length;i++)
	    {
	        s += "<option value=\""+Countries[i]+"\">"+Countries[i]+"</option>";
	    }
	    
	    s += "</select>";
	    return s;
	}
	
	function GetSysField(name, multiline)
	{
	    if (multiline)
	        return "<textarea id=\"vtro_"+name+"\" style=\"width: 200px; height: 40px\"></textarea>";
	    else
	        return "<input type=\"text\" id=\"vtro_"+name+"\"/>";
	}
	
	function GetAnswerFieldHtml(field)
	{
		var s = "";
		var id = "vtro_"+(field.IsSysField?field.Name.replace(" ","_"):"t"+field.FieldID);
		switch(field.Type)
		{
			case 0: //"TextBox_SingleLine"
				s = "<input type=\"text\" id=\""+id+"\" name=\""+id+"\" style=\""+field.CssStyle+"\">";
			break;
			case 1: //"TextBox_Multiline":
				s = "<textarea id=\""+id+"\" name=\""+id+"\" style=\""+field.CssStyle+"\"></textarea>";
			break;
			case 2: //"ComboBox"
				s = "<select id=\""+id+"\" name=\""+id+"\">";
				var options = field.Options.split('\n');
				s += "<option></option>";
				for(var i=0;i<options.length;i++)
					s += "<option value=\""+options[i]+"\">"+options[i]+"</option>";
				s += "</select>";

			break;
			case 3: //"CheckList":
				var options = field.Options.split('\n');
				for(var i=0;i<options.length;i++)
					s += "<table><tr valign=top><td><input type=\"checkbox\" id=\""+id+"_"+i+"\" name=\""+id+"_"+i+"\" value=\""+options[i]+"\"></td><td><label for=\"vtro_t"+field.FieldID+"_"+i+"\">"+options[i]+"</label></td></tr></table>";
			break;
		}
		return s;
	}
	
	var FormCache;
	function SetProgress(message, percent)
	{
		var s = "<table width=200 cellpadding=8 cellspacing=0 border=0 bgColor=#EEEEEE align=center>";
		s += "<tr><td align=center><font size=2>";
		s += "<b>Please Wait...</b>";
		s += "</font></td></tr>";
		
		s += "<tr><td align=left>";
		
		s += "<table width=\""+(percent)+"%\" cellpadding=0 cellspacing=0 border=0 style=\"border:1px solid #000000;\" bgColor=\"#003300\"><tr><td><img src=\"/images/space.gif\" width=1 height=1></td></tr></table>";
		
		s += "</td></tr>";
		s += "<tr><td><font size=1>";
		s += ""+message+"";
		s += "</font></td></tr>";
		$("VeetroForm").innerHTML = s;
	}
	function VtroSubmit()
	{
	     $("vtro_submitwait").innerHTML = "<div class=\"Loading\">Please wait...</div>";
	     setTimeout("VtroSubmitThreaded()", 100);
	}
	function VtroSubmitThreaded()
	{

	    var errors = "";
	    var p = null;
	    if (loggedInName == null) {
	        p = new Object();
	        p.CustomFields = new Array();

	        p.Email = $("vtro_email").value;
	        p.EntityHashID = entity;
	        if (EnableTitle)
	            p.Title = $("vtro_title").value;
	        p.FirstName = $("vtro_firstname").value;
	        p.Surname = $("vtro_surname").value;
	        if (EnableMobileCell)
	            p.Mobile = $("vtro_mobile").value;

	        if (p.Email.length == 0) {
	            $("vtro_email").style.backgroundColor = "#FFCCCC";
	            errors += "<li><b>Email Address</b> is required.";
	        }
	        else
	            $("vtro_email").style.backgroundColor = "";

	        if (p.FirstName.length == 0) {
	            $("vtro_firstname").style.backgroundColor = "#FFCCCC";
	            errors += "<li><b>First Name</b> is required.";
	        }
	        else
	            $("vtro_firstname").style.backgroundColor = "";

	        if (p.Surname.length == 0) {
	            $("vtro_surname").style.backgroundColor = "#FFCCCC";
	            errors += "<li><b>Surname</b> is required.";
	        }
	        else
	            $("vtro_surname").style.backgroundColor = "";
	    }
	    
		var proposal;
		var displayName = (p != null ? p.FirstName + " " + p.Surname : loggedInName);
		if (TemplateID!=0)
		{
			proposal = new Object();
			proposal.Html  = Template.Html;
			proposal.Name = Template.Name + " " + displayName;
			proposal.OriginalTemplateID = Template.TemplateID;
			proposal.Fields = new Array(Template.Fields.length);
			for(var i=0;i<Template.Fields.length;i++)
			{
			    var id = "vtro_"+(Template.Fields[i].IsSysField?Template.Fields[i].Name.replace(" ","_"):"t"+Template.Fields[i].FieldID);
				
				proposal.Fields[i] = new Object();
				proposal.Fields[i].Type = Template.Fields[i].Type;
				proposal.Fields[i].Name = Template.Fields[i].Name;
				proposal.Fields[i].Question = Template.Fields[i].Question;
				proposal.Fields[i].QuestionOrder = Template.Fields[i].QuestionOrder;
				proposal.Fields[i].Options = Template.Fields[i].Options;				
				proposal.Fields[i].FieldID = 0;
				if (proposal.Fields[i].Type==3) // checklist
				{
					proposal.Fields[i].Value = "";
					var options = Template.Fields[i].Options.split('\n');
					for(var x=0;x<options.length;x++)
					{
						if ($(id+"_"+x).checked)
						{
							if (proposal.Fields[i].Value.length>0)
								proposal.Fields[i].Value += ",";
							proposal.Fields[i].Value += options[x];
						}
					}
				}
				else if (proposal.Fields[i].Type==2) // combo
				{
					proposal.Fields[i].Value = $(id).options[$(id).selectedIndex].value;
				}
				else
					proposal.Fields[i].Value = $(id).value;

	            if (Template.Fields[i].IsSysField
			        && p!=null)
			    {
			        p.CustomFields.push(proposal.Fields[i]);
			    }
			}

		}
		
		if (HasWorkAddr)
            SetAddress(p, Veetro.AddressType.Work, "Work");
        if (HasBillAddr)
            SetAddress(p, Veetro.AddressType.Billing, "Billing");
        if (HasHomeAddr)
            SetAddress(p, Veetro.AddressType.Home, "Home");
		
		if (errors.length>0)
		{
			$("vtro_msg").innerHTML = "<div class=\"Info\"><strong>There are some errors with your submission, please amend the following:</strong> "+errors+"</div>";
			$("vtro_submitwait").innerHTML = "";
			return;	
		}
		else
			$("vtro_msg").innerHTML = "";
		
		
		FormCache = $("VeetroForm").innerHTML;

		if (loggedInName == null) {
		
		    SetProgress("Saving your details...", 30);
		    var res = Veetro.Service.SetPersonWebSafe(p);
		    if (res.error) {
		        $("VeetroForm").innerHTML = FormCache;
		        $("vtro_msg").innerHTML = "<font color=red>" + res.error.Message + "</font>";
		        $("vtro_submitwait").innerHTML = "";
		        return;
		    }
		    entity = res.value.EntityHashID;
		    
		}
		
		//SetProgress("Setting Flags...", 50);
		//res = Veetro.Service.AddEntityFlagWebSafe(entity, Veetro.EntityFlags.Sales_Lead);
        //		if (res.error) {
        //		    $("VeetroForm").innerHTML = FormCache;
        //		    $("vtro_msg").innerHTML = "<font color=red>" + res.error.Message + "</font>";
        //		    $("vtro_submitwait").innerHTML = "";
        //		    return;
        //		}
		
		
		if (proposal!=null)
		{
			SetProgress("Saving Answers...", 70);
			
			var newEntity = new Object();
			newEntity.EntityHashID = entity;
			proposal.Relation = newEntity;
			
			SetProgress("Saving Answers...", 80);
			
			res = Veetro.Service.SetProposalWebSafe(proposal);
			
			if (res.error)
		    {
		        $("VeetroForm").innerHTML = FormCache;
		        $("vtro_msg").innerHTML = "<font color=red>"+res.error.Message+"</font>";
    		    $("vtro_submitwait").innerHTML = "";
		        return;
		    }
		}
		
		if (MailingListID>0)
		{
			res = Veetro.Service.SetSubscriptionWebSafe(MailingListID, entity);
			if (res.error)
		    {
		        $("VeetroForm").innerHTML = FormCache;
		        $("vtro_msg").innerHTML = "<font color=red>"+res.error.Message+"</font>";
    		    $("vtro_submitwait").innerHTML = "";
		        return;
		    }
		}
		
		SetProgress("Complete!", 100);

		$("VeetroForm").innerHTML = "<div class=\"Info\">Thank you for your submission, " + displayName + "!</div>";
		
		if (CompletionRedirect && CompletionRedirect.length>0)
		    window.top.location = CompletionRedirect;
		    
	}
	var vto_Pass;
	function Authenticate()
	{
	    if ($("vto_password").value.length==0)
	    {
	        alert('Please enter your password.');
	        return;
	    }
	    vto_Pass = $("vto_password").value;
	    $("vtro_existsMsg").innerHTML = "<div class=\"Loading\">Please wait...</div>";
	    setTimeout("AuthenticateThreaded()", 200);
	}
	function AuthenticateThreaded()
	{
	   
	    if (entity!=null)
	    {
	        var p = Veetro.Service.GetPersonFullWebSafe(entity, vto_Pass).value;
	        if (p!=null)
	        {
	            $("vtro_existsMsg").innerHTML = "<div class=\"Info\">Thank you, " + p.FirstName + ". Your details have been pre-populated based on our current records. Any changes that you make here will update our records.</div>";
	            
	            if (EnableTitle)
	                $("vtro_title").value = p.Title != null ? p.Title : "";
			    
			    $("vtro_firstname").value = p.FirstName != null ? p.FirstName : "";
			    
			    $("vtro_surname").value = p.Surname != null ? p.Surname : "";
			    
			    if (EnableMobileCell)
			        $("vtro_mobile").value = p.Mobile != null ? p.Mobile : "";
			        
			    if (HasWorkAddr)
			        PrePopAddress(p, Veetro.AddressType.Work, "Work");
			        
			    if (HasBillAddr)
			        PrePopAddress(p, Veetro.AddressType.Billing, "Billing");
			        
			    if (HasHomeAddr)
			        PrePopAddress(p, Veetro.AddressType.Home, "Home");
			    
			    if (p.CustomFields!=null)
			    {
			        for(var i=0;i<Template.Fields.length;i++)
			        {
			            if (!Template.Fields[i].IsSysField)
			                continue;

                         var existing = null;
                         for(var x=0;x<p.CustomFields.length;x++)
                         {
                            if (p.CustomFields[x].Name==Template.Fields[i].Name)
                            {
                                existing = p.CustomFields[x].Value;
                                break;
                            }
                         }
                         
                         if (!existing)
                            continue;
                            
                         var id = "vtro_"+(Template.Fields[i].IsSysField?Template.Fields[i].Name.replace(" ","_"):"t"+Template.Fields[i].FieldID);
    				     if ($(id))
    				        $(id).value = existing;
			        }
			    }
	        }
	        else
	        {
	            $("vtro_existsMsg").innerHTML = "<div class=\"Info\">"
	            + "<p>The password provided was incorrect. Please try again, or <a href=\"javascript:SendPassword();\">click here if you do not know what your password is</a>:</p>"
			    + "<table><tr><td>Password:</td><td><input type=password id=\"vto_password\" style=\"width: 80px\" /></td><td><input type=button onclick=\"Authenticate();\" value=\"  Continue  \"/></td></tr></table>"
	            + "</div>";
	        }
	    }
	}
	
	function SetAddress(p, type, typeName)
	{
	    var o;
	    if(p.Addresses==null)
	        p.Addresses = new Array();
	    
	    for(var i=0;i<p.Addresses.length;i++)
	    {
	        //alert(p.Addresses[i].AddressType+" "+type);
	        if (p.Addresses[i].AddressType==type)
	        {
	            o = p.Addresses[i];
	        }
	    }
	    
	    if (o==null)
	    {
	        o = new Object();
	        p.Addresses.push(o);
	    }
	    
	    switch(typeName)
        {
            case "Work": 
            o.AddressID = WorkAddrID; 
            
            break;
            case "Home": 
            o.AddressID = HomeAddrID; 
            break;
            case "Billing": 
            o.AddressID = BillAddrID; 
            break;
        }
        o.AddressType = type;
	  
        o.Street = $("vtro_"+typeName+"_Street").value;
        o.Suburb = $("vtro_"+typeName+"_Suburb").value;
        o.StateOrProv = $("vtro_"+typeName+"_StateOrProv").value;
        o.PostalCode = $("vtro_"+typeName+"_PostalCode").value;
        o.Country = $("vtro_"+typeName+"_Country").value;
        
        o.Phone = ($("vtro_"+typeName+"_Phone_area").value.length>0? "("+$("vtro_"+typeName+"_Phone_area").value+") ":"")
        + $("vtro_"+typeName+"_Phone_exch").value + "-"+  $("vtro_"+typeName+"_Phone_num").value;
        o.PhoneExt = $("vtro_"+typeName+"_Phone_ext").value
        
        o.Fax = ($("vtro_"+typeName+"_Fax_area").value.length>0? "("+$("vtro_"+typeName+"_Fax_area").value+") ":"")
        + $("vtro_"+typeName+"_Fax_exch").value + "-"+  $("vtro_"+typeName+"_Fax_num").value;
        
	}
	
	function PrePopAddress(p, type, typeName)
	{
	   // alert("typeName "+typeName+" p.Addresses.length: "+p.Addresses.length)
	    for(var i=0;i<p.Addresses.length;i++)
	    {
	        //alert(p.Addresses[i].AddressType+" "+type);
	        if (p.Addresses[i].AddressType==type)
	        {
	            switch(typeName)
	            {
	                case "Work": 
	                WorkAddrID = p.Addresses[i].AddressID; 
	                break;
	                case "Home": 
	                HomeAddrID = p.Addresses[i].AddressID; 
	                break;
	                case "Billing": 
	                BillAddrID = p.Addresses[i].AddressID; 
	                break;
	            }
	            $("vtro_"+typeName+"_Street").value = p.Addresses[i].Street;
	            $("vtro_"+typeName+"_Suburb").value = p.Addresses[i].Suburb;
	            $("vtro_"+typeName+"_StateOrProv").value = p.Addresses[i].StateOrProv;
	            $("vtro_"+typeName+"_PostalCode").value = p.Addresses[i].PostalCode;
	            $("vtro_"+typeName+"_Country").value = p.Addresses[i].Country;
	              
	            var rx = new RegExp(/((\d+)[\)|\s|\-|\.]+)?(\d+)[\s|\-|\.](\d+)/g)
	            var m = rx.exec(p.Addresses[i].Phone);
	            if (m==null)
	                $("vtro_"+typeName+"_Phone_num").value = p.Addresses[i].Phone;
	            else
	            {
	                $("vtro_"+typeName+"_Phone_area").value = m[2];
                    $("vtro_"+typeName+"_Phone_exch").value = m[3];
                    $("vtro_"+typeName+"_Phone_num").value = m[4];
	            }    
	            $("vtro_"+typeName+"_Phone_ext").value = p.Addresses[i].PhoneExt;
	            
	            rx = new RegExp(/((\d+)[\)|\s|\-|\.]+)?(\d+)[\s|\-|\.](\d+)/g)
	            m = rx.exec(p.Addresses[i].Fax);
	            if (m==null)
	                $("vtro_"+typeName+"_Fax_num").value = p.Addresses[i].Fax;
	            else
	            {
	               $("vtro_"+typeName+"_Fax_area").value = m[2];
                    $("vtro_"+typeName+"_Fax_exch").value = m[3];
                    $("vtro_"+typeName+"_Fax_num").value = m[4];
	            }

	        }
	    }
	}
	
	function QueryExists()
	{
		if ($("vtro_email").value.length==0)
		return;
		$("vtro_existsMsg").innerHTML = "<div class=\"Loading\">One moment while we check for an existing account...</div>";
		setTimeout("QueryExistsThreaded()", 10);
    }
    
    function QueryExistsThreaded()
    {
        var x = Veetro.Service.EmailIsDuplicateWebSafe($("vtro_email").value);
		if (x.value!=null)
		{
			var p = Veetro.Service.GetPersonWebSafe(x.value).value;
			entity = p.EntityHashID;
			$("vtro_existsMsg").innerHTML = "<div class=\"Info\"><b>Welcome back, "+p.FirstName+"!</b>"
			+ "<p>Our records indicate that <i>"+$("vtro_email").value+"</i> is attached to a contact in our database. Please enter your password so that we can retrieve existing details on that we have file, or <a href=\"javascript:SendPassword();\">click here if you do not know what your password is</a>:</p>"
			+ "<table><tr><td>Password:</td><td><input type=password id=\"vto_password\" style=\"width: 80px\" /></td><td><input type=button onclick=\"Authenticate();\" value=\"  Continue  \"/></td></tr></table>"
			+ "</div>";
			
			
		}
		else
		{
			entity = ""; //"00000000-0000-0000-0000-000000000000";
			$("vtro_existsMsg").innerHTML = "";
		}
    }
    
    function SendPassword()
    {
        if ($("vtro_email").value.length==0)
        {
            alert('Please enter your e-mail address.');
		    return;
	    }
	    $("vtro_existsMsg").innerHTML = "<div class=\"Loading\">One moment while we e-mail you your password...</div>";
        setTimeout("SendPasswordThreaded()", 10);
    }
    
    function SendPasswordThreaded()
    {
        var p = Veetro.Service.SendPasswordWebSafe($("vtro_email").value).value;
        if (p)
            $("vtro_existsMsg").innerHTML = "<div class=\"Info\">We have e-mailed your password to <i>"+$("vtro_email").value+"</i>. Please check your inbox in a few moments and enter your account password below."
            + "<table><tr><td>Password:</td><td><input type=password id=\"vto_password\" style=\"width: 80px\" /></td><td><input type=button onclick=\"Authenticate();\" value=\"  Continue  \"/></td></tr></table>"
            + "</div>";
        else
            $("vtro_existsMsg").innerHTML = "<div class=\"Info\">We were unable to locate your details in our database. Please call or e-mail us for further assistance.</div>";
    }