/*--------------------------------------------------------------
Name:	 JavaScript Include
Author:  K. Wilson 15-Oct-2003
History: 1.0 Initial release
--------------------------------------------------------------*/


// Used throughout site to allow popup windows
function popup(url){
window.open(url,'','status=yes, scrollbars=yes, left=50, top=50, height=500px, width=700px');
}

function ShowDate(){

// Get today's current date.
var now = new Date();

// Array list of days.
var days = new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');

// Array list of months.
var months = new Array('January','February','March','April','May','June','July','August','September','October','November','December');

// Calculate the number of the current day in the week.
var date = ((now.getDate()<10) ? "0" : "")+ now.getDate();

// Calculate four digit year.
function fourdigits(number)	{
	return (number < 1000) ? number + 1900 : number;
								}

// Join it all together
today =  days[now.getDay()] + ", " +
              months[now.getMonth()] + " " +
               date + ", " +
                (fourdigits(now.getYear())) ;

// Print out the data.
document.write(today);

}
  
function CheckDateInput(Event)
{ if   ((Event.keyCode > 7 && Event.keyCode < 10) || (Event.keyCode > 27 && Event.keyCode < 30) || (Event.keyCode > 47 && Event.keyCode < 58) || Event.keyCode == 47)
  {
  	Event.returnValue = Event.keyCode ;
  }
  else
  {
  	Event.cancelBubble = true ;
  	Event.returnValue = false ;
  }
}


function CheckInteger(Event)
{ if   ((Event.keyCode > 7 && Event.keyCode < 10) || Event.keyCode == 13 || Event.keyCode == 46 || (Event.keyCode > 27 && Event.keyCode < 30) || Event.keyCode > 47 && Event.keyCode < 58)
  {
  	Event.returnValue = Event.keyCode ;
  }
  else
  {
  	Event.cancelBubble = true ;
  	Event.returnValue = false ;
  }
}


function CheckIntegerWithSpace(Event)
{ if   ((Event.keyCode > 7 && Event.keyCode < 10) || Event.keyCode == 13 || (Event.keyCode > 27 && Event.keyCode < 30) || Event.keyCode > 47 && Event.keyCode < 58 || Event.keyCode == 32)
  {
  	Event.returnValue = Event.keyCode ;
  }
  else
  {
  	Event.cancelBubble = true ;
  	Event.returnValue = false ;
  }
}


function CheckAlphanumeric(Event)

{  if   ((Event.keyCode > 7 && Event.keyCode < 10) || 
  	(Event.keyCode > 27 && Event.keyCode < 30) ||
  	(Event.keyCode > 47 && Event.keyCode < 58) ||
        (Event.keyCode > 64 && Event.keyCode < 91) ||
        (Event.keyCode > 96 && Event.keyCode < 123)||
	Event.keyCode == 13 )
  {
  	Event.returnValue = Event.keyCode ;
  }
  else
  {
  	Event.cancelBubble = true ;
  	Event.returnValue = false ;
  }
}

function CheckAlphanumericWithSpace(Event)

{  if   ((Event.keyCode > 7 && Event.keyCode < 10) || 
  	(Event.keyCode > 27 && Event.keyCode < 30) ||
	(Event.keyCode == 32) ||
  	(Event.keyCode > 47 && Event.keyCode < 58) ||
        (Event.keyCode > 64 && Event.keyCode < 91) ||
        (Event.keyCode > 96 && Event.keyCode < 123)||
	Event.keyCode == 13 )
  {
  	Event.returnValue = Event.keyCode ;
  }
  else
  {
  	Event.cancelBubble = true ;
  	Event.returnValue = false ;
  }
}



function CheckDate(Field)

{   if (Field.value == '') return true

    DateValues = Field.value.split('/')

    if (DateValues.length != 3) { alert('Incomplete date.'); Field.focus(); return false }

    if (DateValues[2].length == 2)

    {   YearValue = parseInt(DateValues[2], 10)

        if (YearValue < 30) YearValue = YearValue + 2000; else YearValue = YearValue + 1900
    }

    else

        if (DateValues[2].length == 4)

        {   YearValue = parseInt(DateValues[2], 10)

            if (YearValue < 1930 || YearValue > 2029) { alert('Invalid year number (acceptable range is 1930 - 2029).'); Field.focus(); return false }
        }

        else

        {   alert('Year must be 2 or 4 digits.'); Field.focus(); return false }

    if (DateValues[0].length != 2)  {   alert('Day must be 2 digits.'); Field.focus(); return false }
    if (DateValues[1].length != 2)  {   alert('Month must be 2 digits.'); Field.focus(); return false }


    MonthValue = parseInt(DateValues[1], 10)

    if (MonthValue < 1 || MonthValue > 12 || isNaN(MonthValue)) { alert('Invalid month number.'); Field.focus(); return false }

    var DaysInMonth = new Array( 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 )

    DayValue = parseInt(DateValues[0], 10);

    if (DayValue == 0 || DayValue > DaysInMonth[MonthValue] || isNaN(DayValue)) { alert('Invalid day number.'); Field.focus(); return false }

    if (YearValue % 4 > 0 && MonthValue == 2 && DayValue == 29) { alert(YearValue + ' is not a leap year.'); Field.focus(); return false }

    return true
}


function CheckEmail(address) {
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(address)){
	return (true)
	}
	return (false)
}


function MaxChars(oThis, iMax) {
	if (oThis.value.length >= iMax) {
		alert('This field has reached its limit of '+iMax+' characters.');
		return false;
	}
}


// Form validation

function ValidateSearch(form){

	if (form.propref.value=='')
	{
		if (form.city.value=='')
		{
			alert('You must enter a location');
			return false;
		}
	}

}

function ValidateLogin(form) {

	if (form.email.value==''){alert('Please enter your email address'); form.email.focus(); return false}
	if (form.password.value==''){alert('Please enter your password'); form.password.focus(); return false}
}

function ValidateForgottenPassword(form) {
	if (form.email.value==''){alert('Please enter your email address'); form.email.focus(); return false}
}

function ValidateStep1(form) {

	if (form.title.value==''){alert('Please select your title'); form.title.focus(); return false}
	if (form.firstname.value==''){alert('Please enter your first name'); form.firstname.focus(); return false}
	if (form.lastname.value==''){alert('Please enter your last name'); form.lastname.focus(); return false}
	if (form.country.value==''){alert('Please select your country of residence'); form.country.focus(); return false}
	if (form.email.value==''){alert('Please enter your email address'); form.email.focus(); return false}
	if (form.telephone.value==''){alert('Please enter your contact telephone number'); form.telephone.focus(); return false}
	if (form.password.value==''){alert('Please specify a password so you can log into the site once registered'); form.password.focus(); return false}
	if (form.passwordconfirm.value==''){alert('Please confirm the password you specified above'); form.passwordconfirm.focus(); return false}
	if (form.password.value!=form.passwordconfirm.value){alert('The password you specified is not the same as the confirmed password'); form.passwordconfirm.focus(); return false}
	if (form.howheard.value==''){alert('Please tell us how you found our website'); form.howheard.focus(); return false}

	// Ensure at least one of the contact no.s is checked
		
	if (!form.showtelephone.checked){
			if (!form.showtelevening.checked){
				if (!form.showmobile.checked){
					alert('Please tick at least one contact no. to be be displayed');
					return false;
					}
				}
	}

}

	function ValidateStep2(form) {

		if (form.propertyaddress1.value==''){alert('Please enter the first line of the property\'s address'); form.propertyaddress1.focus(); return false}
		if (form.propertycity.value==''){alert('Please enter the property\'s town or city'); form.propertycity.focus(); return false}
		if (form.propertycounty.value==''){alert('Please enter your county'); form.propertycounty.focus(); return false}
		if (form.propertytype.value==''){alert('Please enter the property type'); form.propertytype.focus(); return false}
		if (form.saleorlet.value==''){alert('Please specify if this is a sale or letting'); form.saleorlet.focus(); return false}
		if (form.askingprice.value==''){alert('Please enter the monthly rent'); form.askingprice.focus(); return false}
		if (form.currency.value==''){alert('Please select a currency'); form.currency.focus(); return false}
		if (form.receptionrooms.value==''){alert('Please enter the number of reception rooms'); form.receptionrooms.focus(); return false}
		if (form.bedrooms.value==''){alert('Please enter the number of bedrooms'); form.bedrooms.focus(); return false}
		if (form.bathrooms.value==''){alert('Please enter the number of bathrooms'); form.bathrooms.focus(); return false}
		if (form.heating.value==''){alert('Please specify the type of central heating'); form.heating.focus(); return false}
		if (form.parking.value==''){alert('Please specify the type of parking'); form.parking.focus(); return false}
		if (form.garden.value==''){alert('Please specify the type of garden'); form.garden.focus(); return false}
		if (form.description.value==''){alert('Please enter a description of the property\n\nNote: A maximum of 500 characters will be displayed'); form.description.focus(); return false}
		if (form.description.value.length > 500) {alert('The description is too long.  Please enter no more than 500 characters.'); form.description.focus(); return false}
	}

// Used in Upload
function PreviewProperty(PropertyRef){

	window.open('details.asp?propref='+PropertyRef+'&preview=true','Preview','top=10, left=10, width=640, height=575, scrollbars=yes');
}

// Used in View
    function DoRedirect(){
	navigate('default.asp');
    }


// Used in Order
	function CalculateOrder(form) {
		if (form.adverttype.value=='') {alert('Please select which type of advert you require'); return false;}
		//if (form.adverttype.value=='FEATURED'){Cost=29.95} else Cost = 19.95;
		if (form.adverttype.value=='FEATURED'){Cost=29.95} else Cost = 0;
		if (form.signboard.checked==true){Cost=Cost+19.95};
		form.MC_adverttype.value = form.adverttype.value;
		form.amount.value=Cost.toFixed(2);

		if (form.amount.value==0.00){
			form.action ='freeoffer.asp';
		}
		else
			form.action = 'https://select.worldpay.com/wcc/purchase';
	}

// Used in Contact
	
	function ValidateContactForm(form){
	if (form.name.value=='') {alert('Please fill in your name'); form.name.focus(); return false}
	if (form.email.value=='') {alert('Please fill in your email address'); form.email.focus(); return false}
	if (form.telephone.value=='') {alert('Please fill in your contact telephone number'); form.telephone.focus(); return false}
	if (form.subject.value=='') {alert('Please enter a subject'); form.subject.focus(); return false}
	if (form.message.value=='') {alert('Please enter your message'); form.message.focus(); return false}
	}

// Used in login.asp

function DeleteProperty(PropertyRef, AuthCode){

	frmproperty.action = 'login.asp?propref='+PropertyRef+'&authcode='+AuthCode;
	frmproperty.mode.value = 'delete';
	frmproperty.submit();
}

// Used in view.asp
function ValidateContactVendor(form){
	
	if (form.title.value=='') {alert('Please select a your title'); form.title.focus(); return false;}
	if (form.firstname.value=='') {alert('Please enter your first name'); form.firstname.focus(); return false;}
	if (form.lastname.value=='') {alert('Please enter your last name'); form.lastname.focus(); return false;}
	if (form.email.value=='') {alert('Please enter email address'); form.email.focus(); return false;}
	if (form.contactno.value=='') {alert('Please enter a contact number'); form.contactno.focus(); return false;}
}

	
function CheckEnquiryForm(form){
	if (form.name.value=='') {alert('Please fill in your name'); form.name.focus(); return false}
	if (form.email.value=='') {alert('Please fill in your email address'); form.email.focus(); return false}
	if (!CheckEmail(form.email.value)) {alert('Invalid email address'); form.email.focus(); return false}
	if (form.telephone.value=='') {alert('Please fill in your contact telephone number'); form.telephone.focus(); return false}
	if (form.subject.value=='') {alert('Please enter a subject'); form.subject.focus(); return false}
	if (form.message.value=='') {alert('Please enter your message'); form.message.focus(); return false}
}