var d1 = null;
var d2 = null;

function Goto(page, pos, func)
  {

  var xmlHttp;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      try
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      catch (e)
        {
        alert("Your browser does not support AJAX!");
        return false;
        }
      }
    }

    a = pos;
    loader = setTimeout("ShowLoader()", 1000);

    xmlHttp.onreadystatechange=function()
      {
      if(xmlHttp.readyState==4)
        {
	if (pos.length > 0)
	{
		clearTimeout(loader);
		document.getElementById(pos).innerHTML=xmlHttp.responseText;
		if (func)
		{
			func();
		}
	}
        }
      }

    var found = false;
    for (var i = 0; i < page.length; i++)
    {
	if (page.charAt(i) == '?')
	{
		found = true;
		break;
	}
    }

    var date = new Date();
    var timestamp = date.getTime();

    if (found == true)
    {
    	xmlHttp.open("GET",page + "&time=" + timestamp,true); 
    }
    else
    {
    	xmlHttp.open("GET",page + "?time=" + timestamp,true); 
    }

    xmlHttp.send(null);
  }

function Query(page, func)
  {
  var xmlHttp;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      try
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      catch (e)
        {
        alert("Your browser does not support AJAX!");
        return false;
        }
      }
    }
    xmlHttp.onreadystatechange=function()
      {
        if(xmlHttp.readyState==4)
        {	
		var a;
		a = xmlHttp.responseText;
		if (func)
		{
			func(a);
		}
        }
      }

    var found = false;
    for (var i = 0; i < page.length; i++)
    {
	if (page.charAt(i) == '?')
	{
		found = true;
		break;
	}
    }

    var date = new Date();
    var timestamp = date.getTime();

    if (found == true)
    {
    	xmlHttp.open("GET",page + "&time=" + timestamp,true); 
    }
    else
    {
    	xmlHttp.open("GET",page + "?time=" + timestamp,true); 
    }

    xmlHttp.send(null);
  }

function QueryAndWait(page)
{
  var xmlHttp;
  try
    {
    // Firefox, Opera 8.0+, Safari
    xmlHttp=new XMLHttpRequest();
    }
  catch (e)
    {
    // Internet Explorer
    try
      {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      }
    catch (e)
      {
      try
        {
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
      catch (e)
        {
        alert("Your browser does not support AJAX!");
        return false;
        }
      }
    }

    var found = false;
    for (var i = 0; i < page.length; i++)
    {
	if (page.charAt(i) == '?')
	{
		found = true;
		break;
	}
    }

    var date = new Date();
    var timestamp = date.getTime();

    if (found == true)
    {
    	xmlHttp.open("GET",page + "&time=" + timestamp,false); 
    }
    else
    {
    	xmlHttp.open("GET",page + "?time=" + timestamp,false); 
    }

    xmlHttp.send(null);
    return xmlHttp.responseText;
}

function launchEnquireForm(dt,propID)
{	
	URL="enquiryForm.php?dt=" + dt + "&propertyID=" + propID;
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=510,height=560');");	
}

function launchSendToFriendForm(propID)
{	
	URL="sendToFriend.php?propertyID=" + propID;
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=510,height=560');");	
}

function launchBookAVisitForm(propID)
{	
	URL="bookavisit.php?propertyID=" + propID;
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=510,height=480');");	
}

function SendToFriend()
{
	var valid = true;
	var yourName = document.getElementById("yourname").value;
	var theirName = document.getElementById("theirname").value;
	var yourEmail = document.getElementById("youremail").value;
	var theirEmail = document.getElementById("theiremail").value;
	var message = document.getElementById("message").value;
	var propName = document.getElementById("propname").value;
	var subject = "MAP - Martina Lennon Properties - Recommendation (" + propName + ")";
		
	if (document.getElementById("yourname").value.length == 0)
	{
		alert('Your Name is a required field');
		document.getElementById("yourname").focus();
		valid = false;
	}
	else if (document.getElementById("youremail").value.length == 0)
	{
		alert('Your E-mail is a required field');
		document.getElementById("youremail").focus();
		valid = false;
	}
	else if (document.getElementById("theirname").value.length == 0)
	{
		alert('Their Name is a required field');
		document.getElementById("theirname").focus();
		valid = false;
	}
	else if (document.getElementById("theiremail").value.length == 0)
	{
		alert('Their E-mail is a required field');
		document.getElementById("theiremail").focus();
		valid = false;
	}
	else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById("youremail").value) == false)
	{
		alert('Your E-mail does not appear to be valid');
		document.getElementById("youremail").focus();
		valid = false;
	}
	else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById("theiremail").value) == false)
	{
		alert('Their E-mail does not appear to be valid');
		document.getElementById("theiremail").focus();
		valid = false;
	}
	
	if (valid == false)
	{
		return;
	}

	if (valid == true)
	{
		var page = "emailSendTo.php?from_name=" + yourName + "&from_email=" + yourEmail + "&to_name=" + theirName + "&to_email=" + theirEmail + "&topic=" + subject + "&msg=" + message.replace(/\n/g,"<br/>");
	Query(page, SendToFriendResult);
	}
}

function SendContactUs()
{
	var valid = true;
		
	var subjectIdx = document.getElementById("subject").selectedIndex;
	var subject = document.getElementById("subject")[subjectIdx].value;
	var subjectTxt = document.getElementById("subject")[subjectIdx].text;

	if (document.getElementById("name").value.length == 0)
	{
		alert("Name is a required field");
		document.getElementById("name").focus();
		valid = false;
	}
	else if (document.getElementById("email").value.length == 0)
	{
		alert("E-mail is a required field");
		document.getElementById("email").focus();
		valid = false;
	}
	else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById("email").value) == false)
	{
		alert("Invalid e-mail address specified");
		document.getElementById("email").focus();
		valid = false;
	}
	else if (document.getElementById("phonenum").value.length == 0)
	{
		alert("Phone Number is a required field");
		document.getElementById("phonenum").focus();
		valid = false;
	}
	else if (document.getElementById("msg").value.length == 0)
	{
		alert("Message is a required field");
		document.getElementById("msg").focus();
		valid = false;
	}
	else if (subjectTxt == '')
	{
		alert("Subject is a required field");
		valid = false;
	}
	
	if (valid == false)
	{
		return;
	}

	var page = "email.php?contact_name=" + document.getElementById("name").value + "&contact_email=" + document.getElementById("email").value  + "&phonenum=" + document.getElementById("phonenum").value  + "&topic=" + subjectTxt + "&msg=" + document.getElementById("msg").value.replace(/\n/g,"<br/>");
	Query(page, EmailResult);
}

function SendBookAVisit()
{
	var valid = true;
		
	var tit = document.getElementById("title").value;
	var fn = document.getElementById("firstname").value;
	var ln = document.getElementById("lastname").value;
	var ph = document.getElementById("phone").value;
	var email = document.getElementById("youremail").value;

	var dtIdx = document.getElementById("dt").selectedIndex;
	var dt = document.getElementById("dt")[dtIdx].value;
	var dtTxt = document.getElementById("dt")[dtIdx].text;

	var tiIdx = document.getElementById("time").selectedIndex;
	var ti = document.getElementById("time")[tiIdx].value;
	var tiTxt = document.getElementById("time")[tiIdx].text;
	
	var ref = document.getElementById("ref").value;
	
	if (document.getElementById("title").value.length == 0)
	{
		alert("Title is a required field");
		document.getElementById("title").focus();
		valid = false;
	}
	else if (document.getElementById("firstname").value.length == 0)
	{
		alert("First name is a required field");
		document.getElementById("firstname").focus();
		valid = false;
	}
	else if (document.getElementById("lastname").value.length == 0)
	{
		alert("Last name is a required field");
		document.getElementById("lastname").focus();
		valid = false;
	}
	else if (document.getElementById("phone").value.length == 0)
	{
		alert("Phone is a required field");
		document.getElementById("phone").focus();
		valid = false;
	}
	else if (document.getElementById("youremail").value.length == 0)
	{
		alert("E-mail is a required field");
		document.getElementById("youremail").focus();
		valid = false;
	}
	else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById("youremail").value) == false)
	{
		alert("Invalid e-mail address specified");
		document.getElementById("youremail").focus();
		valid = false;
	}

	if (valid == false)
	{
		return;
	}
	
	var msg = "<b>Name:</b> " + tit + " " +  fn + " " + ln + "</br>" +
	"<b>Phone:</b> " + ph + "</br>" +
	"<b>E-mail:</b> " + email + "</br>" + "</br>" +
	"<b>Preferred Viewing Time:</b>" + "</br>" +
	"<b>Date:</b> " + dtTxt + "</br>" +
	"<b>Time:</b> " + tiTxt + "</br>" + "</br>" +
	"<b>Message:</b> " + document.getElementById("message").value.replace(/\n/g,"<br/>");

	var page = "email.php?contact_name=" + tit + " " +  fn + " " + ln + "&contact_email=" + email  + "&topic=Book A Visit Request (" + ref + ")" + "&msg=" + msg;
	Query(page, BookAVisitRes);
}

function SendContactUs_p()
{
	var valid = true;
	var subIdx = document.getElementById("subject").selectedIndex;
	var subValue = document.getElementById("subject").value;
	var subText = document.getElementById("subject").options[subIdx].text;
	alert(subIdx);
	alert(subValue);
	alert(subText);

	if (document.getElementById("name").value.length == 0)
	{
		document.getElementById("err_name").innerHTML = "<font color='white'><b>* Campo exigido.</b></font>";
		valid = false;
	}
	if (document.getElementById("email").value.length == 0)
	{
		document.getElementById("err_email").innerHTML = "<font color='white'><b>* Campo exigido.</b></font>";
		document.getElementById("email").focus();
		valid = false;
	}
	else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById("email").value) == false)
	{
		document.getElementById("err_email").innerHTML = "<font color='white'><b>* E_mail address inválido especific.</b></font>";
		document.getElementById("email").focus();
		valid = false;
	}
	if (document.getElementById("phonenum").value.length == 0)
	{
		document.getElementById("err_phonenum").innerHTML = "<font color='white'><b>* Campo exigido.</b></font>";
		document.getElementById("phonenum").focus();
		valid = false;
	}
	if (document.getElementById("msg").value.length == 0)
	{
		document.getElementById("err_msg").innerHTML = "<font color='white'><b>* Campo exigido.</b></font>";
		document.getElementById("msg").focus();
		valid = false;
	}
	else if (subText == '')
	{
		document.getElementById("err_subject").innerHTML = "<font color='white'><b>* Campo exigido.</b></font>";
		valid = false;
	}
	
	if (valid == false)
	{
		return;
	}

	var page = "email.php?contact_name=" + document.getElementById("name").value + "&contact_email=" + document.getElementById("email").value  + "&topic=" + subText + "&msg=" + document.getElementById("msg").value.replace(/\n/g,"<br/>");
	Query(page, EmailResultP);
}

function SearchProperties()
{
	var count = 0;
	var extra = "";
	
	var businessCbo = document.getElementById("business");
	var businessIdx = businessCbo.options[businessCbo.selectedIndex].value;
	
	var propTypeCbo = document.getElementById("propType");
	var propTypeIdx = propTypeCbo.options[propTypeCbo.selectedIndex].value;
	
	var numOfBedroomsCbo = document.getElementById("bedrooms");
	var numOfBedroomsIdx = numOfBedroomsCbo.options[numOfBedroomsCbo.selectedIndex].value;
	
	var regionCbo = document.getElementById("rgn");
	var regionIdx = regionCbo.options[regionCbo.selectedIndex].value;
	
	var referenceSearch = document.getElementById("reference").value;
	
	var priceBandCbo = document.getElementById("price");
	var priceBandIdx =  priceBandCbo.options[priceBandCbo.selectedIndex].value;
	
	if(businessIdx != "")
	{
		extra = extra + "&business=" + businessIdx;		
		count = count + 1;
	}

	if(propTypeIdx != "")
	{
		extra = extra + "&propType=" + propTypeIdx;			
		count = count + 1;
	}
	
	if(numOfBedroomsIdx != "")
	{
		extra = extra + "&bedrooms=" + numOfBedroomsIdx;			
		count = count + 1;
	}

	if(regionIdx != "")
	{
		extra = extra + "&region=" + regionIdx;			
		count = count + 1;
	}
	
	if(referenceSearch != "")
	{
		extra = extra + "&reference=" + referenceSearch.replace(/\s/g, "");			
		count = count + 1;
	}

	if(priceBandIdx != "")
	{
		extra = extra + "&priceBand=" + priceBandIdx;			
		count = count + 1;
	}
		
	var page = "propertylistings.php?search=true" + extra;
	window.location = page;
}

function SearchPropertiesPort()
{
	var count = 0;
	var extra = "";
	
	var businessCbo = document.getElementById("business");
	var businessIdx = businessCbo.options[businessCbo.selectedIndex].value;
	
	var propTypeCbo = document.getElementById("propType");
	var propTypeIdx = propTypeCbo.options[propTypeCbo.selectedIndex].value;
	
	var numOfBedroomsCbo = document.getElementById("bedrooms");
	var numOfBedroomsIdx = numOfBedroomsCbo.options[numOfBedroomsCbo.selectedIndex].value;
	
	var regionCbo = document.getElementById("rgn");
	var regionIdx = regionCbo.options[regionCbo.selectedIndex].value;
	
	var referenceSearch = document.getElementById("reference").value;
	
	var priceBandCbo = document.getElementById("price");
	var priceBandIdx =  priceBandCbo.options[priceBandCbo.selectedIndex].value;
	
	if(businessIdx != "")
	{
		extra = extra + "&business=" + businessIdx;		
		count = count + 1;
	}

	if(propTypeIdx != "")
	{
		extra = extra + "&propType=" + propTypeIdx;			
		count = count + 1;
	}
	
	if(numOfBedroomsIdx != "")
	{
		extra = extra + "&bedrooms=" + numOfBedroomsIdx;			
		count = count + 1;
	}

	if(regionIdx != "")
	{
		extra = extra + "&region=" + regionIdx;			
		count = count + 1;
	}
	
	if(referenceSearch != "")
	{
		extra = extra + "&reference=" + referenceSearch.replace(/\s/g, "");			
		count = count + 1;
	}

	if(priceBandIdx != "")
	{
		extra = extra + "&priceBand=" + priceBandIdx;			
		count = count + 1;
	}
		
	var page = "propertylistings_p.php?search=true" + extra;
	window.location = page;
}

function SendEnquiry()
{
	var valid = true;
	var theName = document.getElementById("name").value;
	var theEmail = document.getElementById("email").value;
	var message = document.getElementById("message").value;
	var propname = document.getElementById("propname").value;
	var subject = "Enquiry from Website: " + propname;
		
	if (document.getElementById("name").value.length == 0)
	{
		alert('Name is a required field');
		document.getElementById("name").focus();
		valid = false;
	}
	else if (document.getElementById("email").value.length == 0)
	{
		alert('E-mail is a required field');
		document.getElementById("name").focus();
		valid = false;
	}
	else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById("email").value) == false)
	{
		alert('Invalid e-mail address');
		document.getElementById("email").focus();
		valid = false;
	}
	else if (document.getElementById("message").value.length == 0)
	{
		alert('Message is a required field');
		document.getElementById("message").focus();
		valid = false;
	}
	if (valid == false)
	{
		return;
	}

	if (valid == true)
	{
		var page = "email.php?contact_name=" + theName + "&contact_email=" + theEmail  + "&topic=" + subject + "&msg=" + message.replace(/\n/g,"<br/>");
	Query(page, EnquiryResult);
	}
}

function BookAVisitRes(a)
{
	if (a == "True")
	{
		document.getElementById("firstname").value = "";
		document.getElementById("lastname").value = "";
		document.getElementById("youremail").value = "";
		document.getElementById("message").value = "";
		document.getElementById("phone").value = "";
		document.getElementById("title").options[0].selected=true;
		document.getElementById("dt").options[0].selected=true;
		document.getElementById("time").options[0].selected=true;
		document.getElementById("err_success").innerHTML = "<p><font color='white'><b>Message successfully sent!</b></font></p>";
	}
}

function SendToFriendResult(a)
{	
	if (a == "True")
	{
		document.getElementById("yourname").value = "";
		document.getElementById("youremail").value = "";
		document.getElementById("theirname").value = "";
		document.getElementById("theiremail").value = "";
		document.getElementById("message").value = "";
		document.getElementById("err_success").innerHTML = "<p><font color='white'><b>Send To Friend successfully sent!<br/>You can now close the window.</b></font>";
	}
}

function EnquiryResult(a)
{	
	if (a == "True")
	{
		document.getElementById("name").value = "";
		document.getElementById("email").value = "";
		document.getElementById("message").value = "";
		document.getElementById("err_success").innerHTML = "<p><font color='white'>Enquiry successfully sent! We will get back to you shortly.<br/>You can now close the window.</font>";
	}
}

function EmailResult(a)
{	
	if (a == "True")
	{
		document.getElementById("name").value = "";
		document.getElementById("email").value = "";
		document.getElementById("msg").value = "";
		document.getElementById("phonenum").value = "";
		document.getElementById("subject").options[0].selected=true;
		document.getElementById("err_success").innerHTML = "<p><font color='white'><b>Message successfully sent! We will get back to you shortly.</b></font></p>";
	}
}

function EmailResultP(a)
{	
	if (a == "True")
	{
		document.getElementById("name").value = "";
		document.getElementById("email").value = "";
		document.getElementById("msg").value = "";
		document.getElementById("subject").options[0].selected=true;
		document.getElementById("err_success").innerHTML = "<p><font color='blue'><b>Mensagem emitida com sucesso! Nós receber-lhe-emos de volta logo.</b></font></p>";
	}
}

function SendOwnersContactUs()
{
	var valid = true;
	document.getElementById("err_title").innerHTML = "";
	document.getElementById("err_fname").innerHTML = "";
	document.getElementById("err_sname").innerHTML = "";
	document.getElementById("err_add1").innerHTML = "";
	document.getElementById("err_add2").innerHTML = "";
	document.getElementById("err_add3").innerHTML = "";
	document.getElementById("err_fixedno").innerHTML = "";
	document.getElementById("err_mobileno").innerHTML = "";
	document.getElementById("err_email").innerHTML = "";
	document.getElementById("err_message").innerHTML = "";
	
	if (document.getElementById("title").value.length == 0)
	{
		document.getElementById("err_title").innerHTML = "<font color='white'><b>* Required field.</b></font>";
		valid = false;
	}
	if (document.getElementById("fname").value.length == 0)
	{
		document.getElementById("err_fname").innerHTML = "<font color='white'><b>* Required field.</b></font>";
		valid = false;
	}
	if (document.getElementById("sname").value.length == 0)
	{
		document.getElementById("err_sname").innerHTML = "<font color='white'><b>* Required field.</b></font>";
		valid = false;
	}
	if (document.getElementById("email").value.length == 0)
	{
		document.getElementById("err_email").innerHTML = "<font color='white'><b>* Required field.</b></font>";
		valid = false;
	}
	else if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.getElementById("email").value) == false)
	{
		document.getElementById("err_email").innerHTML = "<font color='white'><b>* Invalid e-mail address.</b></font>";
		valid = false;
	}
	if (document.getElementById("add1").value.length == 0)
	{
		document.getElementById("err_add1").innerHTML = "<font color='white'><b>* Required field.</b></font>";
		valid = false;
	}
	if (document.getElementById("add2").value.length == 0)
	{
		document.getElementById("err_add2").innerHTML = "<font color='white'><b>* Required field.</b></font>";
		valid = false;
	}
	if (document.getElementById("fixedno").value.length == 0)
	{
		document.getElementById("err_fixedno").innerHTML = "<font color='white'><b>* Required field.</b></font>";
		valid = false;
	}
	if (document.getElementById("mobileno").value.length == 0)
	{
		document.getElementById("err_mobileno").innerHTML = "<font color='white'><b>* Required field.</b></font>";
		valid = false;
	}
	if (document.getElementById("message").value.length == 0)
	{
		document.getElementById("err_message").innerHTML = "<font color='white'><b>* Required field.</b></font>";
		valid = false;
	}
	
	if (valid == false)
	{
		return;
	}

	if (valid == true)
	{
		var page = "emailOwners.php?title=" + document.getElementById("title").value + "&fname=" + document.getElementById("fname").value + "&sname=" + document.getElementById("sname").value  + "&email=" + document.getElementById("email").value  + "&add1=" + document.getElementById("add1").value + "&add2=" + document.getElementById("add2").value + "&add3=" + document.getElementById("add3").value + "&fixedno=" + document.getElementById("fixedno").value + "&mobileno=" + document.getElementById("mobileno").value + "&message=" + document.getElementById("message").value;
	Query(page, EmailOwnersResult);	}
}

function ClearOwnersContactUs()
{
	document.getElementById("err_title").innerHTML = "";
	document.getElementById("err_fname").innerHTML = "";
	document.getElementById("err_sname").innerHTML = "";
	document.getElementById("err_add1").innerHTML = "";
	document.getElementById("err_add2").innerHTML = "";
	document.getElementById("err_add3").innerHTML = "";
	document.getElementById("err_fixedno").innerHTML = "";
	document.getElementById("err_mobileno").innerHTML = "";
	document.getElementById("err_email").innerHTML = "";
	document.getElementById("err_message").innerHTML = "";
	
	document.getElementById("title").value = "";
	document.getElementById("fname").value = "";
	document.getElementById("sname").value = "";
	document.getElementById("email").value = "";
	document.getElementById("add1").value = "";
	document.getElementById("add2").value = "";
	document.getElementById("add3").value = "";
	document.getElementById("fixedno").value = "";
	document.getElementById("mobileno").value = "";
	document.getElementById("message").value = "";	
}

function EmailOwnersResult(a)
{	
	if (a == "True")
	{
		ClearOwnersContactUs();
		document.getElementById("err_success").innerHTML = "<p><font color='blue'><b>Message successfully sent! We will get back to you shortly.</b></font></p>";
	}
}

function rollover()
{
  if(!document.getElementById || !document.createTextNode){return;}
  var n=document.getElementById('nav');
  if(!n){return;}
  var lis=n.getElementsByTagName('li');
  for (var i=0;i<lis.length;i++)
  {
    lis[i].onmouseover=function()
    {
      this.className=this.className?'cur':'over';
    }
    lis[i].onmouseout=function()
    {
       this.className=this.className=='cur'?'cur':'';
    }
  }
}

shuffle = function(v)
{
	for(var j, x, i = v.length; i; j = parseInt(Math.random() * i), x = v[--i], v[i] = v[j], v[j] = x);
	return v;
};
