﻿function showRadialSearch(townid, postcodeid, regionid, radialid)
{
	var radial=document.getElementById(radialid);
	var region=document.getElementById(regionid);
	if(null!=radial&&null!=region)
	{
		if(''==document.getElementById(townid).value&&''==document.getElementById(postcodeid).value)
		{
			radial.disabled=true;
			radial.options[0].selected=true;
		}
		else 
		{
			radial.disabled=false;
		}
	}
}

function showRadialSearchQS(townid, postcodeid, radialid)
{
    var radial=document.getElementById(radialid);
    if(null!=radial)
    {
        if((''==document.getElementById(townid).value&&''==document.getElementById(postcodeid).value))
        {
            radial.disabled=true;
            radial.options[0].selected=true;
        }
        else 
        {
            radial.disabled=false;
        }
    }
}
 
function showRegion(regionid, radialid)
{
	var radial=document.getElementById(radialid);
	var region=document.getElementById(regionid);
	if(null!=radial&&null!=region)
	{
		if(radial.options[0].selected==false)
		{
			region.disabled=true;
			region.options[0].selected=true;
		}
		else
		{
			region.disabled=false;
		}
	}
}

function CheckNumeric(obj){if(null!=obj){var RegExp = /^(-)?(\d*)(\.?)(\d*)$/;if(null==obj.value.match(RegExp)){alert('The value must be numeric');}}}

function GreaterThan(obj1, obj2){
    if(null!=obj1 && null!=obj2){
        var RegExp = /^(-)?(\d*)(\.?)(\d*)$/;
        if(null!=obj1.value.match(RegExp) && null!=obj2.value.match(RegExp)){
            if(parseFloat(obj1.value) < parseFloat(obj2.value)){return false;}
            else {return true;}
        }
        else {return true;}
    }
    else {return true;}
}

function CheckDate(obj)
{
    if(obj){
        if (!dateValidation(obj))
        {
            alert("please enter date in the format dd/mm/yyyy");
            setTimeout(function(){obj.focus()}, 10);
        }
    }
    return false;
}

function dateValidation (obj){
    var strDate = obj.value;
    var strDelimiter='/';
    var arrDateParts;
    if (strDate!='' && strDate!='dd/mm/yyyy'){
        if (strDate.indexOf(strDelimiter) != -1) {
	        arrDateParts=strDate.split(strDelimiter);
	        if (arrDateParts.length != 3) {
		        return false;
	        }else{
		        if (isdate(arrDateParts[0],arrDateParts[1],arrDateParts[2])){
			        return true;
		        }else{return false;}	
	        }
        }
        else{return false;}
    }else{return true;}
}

function isdate(d, m, y) { 
    if	(isNaN(parseInt(d)) && isNaN(parseInt(m)) && isNaN(parseInt(y)) )
        {return false}
    else if	(isNaN(parseInt(y)))
        {return false}		
    else if ((y.length != 4) || ((y.substring(0,2) != '18') && (y.substring(0,2) != '19') && (y.substring(0,2) != '20') && (y.substring(0,2) != '21'))){
        return false;
    }else if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) { 
        if ((d > 0) && (d < 32)) { return true } else { return false } 
    } 
    else if (m == 4 || m == 6 || m == 9 || m == 11) { 
        if ((d > 0) && (d < 31)) { return true } else { return false } 
    } 
    else if (m == 2) { 
        if (((y % 4) == 0) & (((y % 100) != 0) || ((y % 400) == 0))) { 
	        if ((d > 0) && (d < 30)) { return true } else { return false } 
        } 
        else { 
	        if ((d > 0) && (d < 29)) { return true } else { return false } 
        } 
    } 
    else { 
        return false; 
    } 
} 

function validateForm()
{
    var nCount = 0;
    if (document.getElementById('sStreet').value != '' || document.getElementById('sTown').value != ''){nCount++;}
    if (document.getElementById('sPostCode').value != ''){nCount++;}
    var i = document.getElementById('liRegionID').selectedIndex;
    if (document.getElementById('liRegionID').options[i].value != '0'){
	        nCount++;
    }
    if (nCount > 1){
        alert('Please use ONLY ONE of the three options under Location.'); //Please use ONLY ONE of the three options under Location
        
        document.getElementById('sStreet').focus();
        return false;
    }
    //  check town has been entered when street has been entered
    if (document.getElementById('sStreet').value != '' && document.getElementById('sTown').value == '') {
        alert('Please enter a Town for the Street'); //Please enter a Town for the Street
        document.getElementById('sTown').focus();
        document.getElementById('sTown').select();
        return false;
    }
    //check size 'from' is less than 'to'
    if(!GreaterThan(document.getElementById('sSizeTo'),document.getElementById('sSizeFrom'))){
        alert('Size From must be less than Size To.');
        return false;
    }
    //check price 'min' is less than 'max'
    if(!GreaterThan(document.getElementById('sPriceTo'),document.getElementById('sPriceFrom'))){
        alert('Maximum Price must be less than Minimum Price.');
        return false;
    }
    //check rent 'min' is less than 'max'
    if(!GreaterThan(document.getElementById('sRentMaximum'),document.getElementById('sRentMinimum'))){
        alert('Maximum Rent must be less than Minimum Rent.');
        return false;
    }
    return true;
}

function validateQuickSearchForm()
{
    if (document.getElementById('sTown').value != '' && document.getElementById('sPostCode').value != ''){
        alert('Please use ONLY ONE of the two options under Location.');
        
        document.getElementById('sTown').focus();
        return false;
    }
    
    //check size 'from' is less than 'to'
    if(!GreaterThan(document.getElementById('sSizeTo'),document.getElementById('sSizeFrom'))){
        alert('Size From must be less than Size To.');
        return false;
    }
    return true;
}

function validateContactForm()
{
    if (document.getElementById('sFirstName').value==''){
        alert('Please enter a first name.');
        setTimeout(function(){document.getElementById('sFirstName').focus()}, 10);
        return false;
    }
    else if (document.getElementById('sLastName').value==''){
        alert('Please enter a last name.');
        setTimeout(function(){document.getElementById('sLastName').focus()}, 10);
        return false;
    }
    else if (document.getElementById('sEmail').value==''){
        alert('Please enter an email address.');
        setTimeout(function(){document.getElementById('sEmail').focus()}, 10);
        return false;
    }
    else if (document.getElementById('sContactNumber').value==''){
        alert('Please enter a contact number.');
        setTimeout(function(){document.getElementById('sContactNumber').focus()}, 10);
        return false;
    }
    else if (document.getElementById('sMessage').value==''){
        alert('Please enter a message.');
        setTimeout(function(){document.getElementById('sMessage').focus()}, 10);
        return false;
    }
    else{
        return true;
    }
}


function setSavedPropLinks(microsite){
    if (!document.getElementsByTagName) return false;
    
    var links = document.getElementsByTagName("a");
    for (var i=0; i < links.length; i++) {
        if (links[i].id.match("lnkSaveProp")) {
            var propertyId = links[i].id.substring(11);//everything after 'lnkSaveProp'
            var lnk = document.getElementById('lnkSaveProp' + propertyId);
	        if(lnk){
	            setSavedPropLink(lnk, propertyId, microsite);
	        }
	    }
	 }
}

function saveProp(propertyId, microsite){
    var cookieName = 'savedproperties' + ':' + microsite;
    if(Get_Cookie(cookieName)){
        if(propSaved(propertyId, microsite) == -1){
            var strSavedProps = Get_Cookie(cookieName);
            strSavedProps += propertyId + ',';
            Set_Cookie(cookieName, strSavedProps, 365, '/');
        }
	}
	else{
	    Set_Cookie(cookieName, propertyId + ',', 365, '/');
	}
	var lnk = document.getElementById('lnkSaveProp' + propertyId);
	if(lnk){
	    setSavedPropLink(lnk, propertyId, microsite);
	}
}

function removeProp(propertyId, microsite){
    var cookieName = 'savedproperties' + ':' + microsite;
    if(Get_Cookie(cookieName)){
        var strSavedProps = Get_Cookie(cookieName);
        var arrProps = strSavedProps.split(',');
        var propIndex = propSaved(propertyId, microsite);
        if(propIndex > -1){
            arrProps.splice(propIndex,1);
            Set_Cookie(cookieName, arrProps.join(), 365, '/');
        }
    }
    var lnk = document.getElementById('lnkSaveProp' + propertyId);
	if(lnk){
	    setSavedPropLink(lnk, propertyId, microsite);
	}
}

//returns index of saved item or -1 if item is not found
function propSaved(propertyId, microsite){
    var cookieName = 'savedproperties' + ':' + microsite;
    if(Get_Cookie(cookieName)){
        var strSavedProps = Get_Cookie(cookieName);
        var arrProps = strSavedProps.split(',');
        for ( i = 0; i < arrProps.length; i++ ){
            if(propertyId == arrProps[i]){
                return i;
            }
        }
    }
    return -1;
}

function setSavedPropLink(link, propertyId, microsite){
    var lnkHTML='';
    if(propSaved(propertyId, microsite) == -1){
        link.href="javascript:saveProp('" + propertyId + "', '" + microsite + "');";
	    lnkHTML = "<img src='images/save.gif' alt='save property' \/>Save&#160;property";
    }
    else{
        link.href="javascript:removeProp('" + propertyId + "', '" + microsite + "');";
	    lnkHTML = "<img src='images/remove.gif' alt='remove property' \/>Remove&#160;property";
    }
    link.innerHTML = lnkHTML;
}

function Set_Cookie( name, value, expires, path, domain, secure ) 
{
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime( today.getTime() );

    /*
    if the expires variable is set, make the correct 
    expires time, the current script below will set 
    it for x number of days, to make it for hours, 
    delete * 24, for minutes, delete * 60 * 24
    */
    if ( expires )
    {
        expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date( today.getTime() + (expires) );

    document.cookie = name + "=" +escape( value ) +
    ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
    ( ( path ) ? ";path=" + path : "" ) + 
    ( ( domain ) ? ";domain=" + domain : "" ) +
    ( ( secure ) ? ";secure" : "" );
}

// this fixes an issue with the old method, ambiguous values 
// with this test document.cookie.indexOf( name + "=" );
function Get_Cookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f
	
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );
		
		
		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
	
		// if the extracted name matches passed check_name
		if ( cookie_name == check_name )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}
function showMap(id)
{
    var mapurl = "map.aspx?propertyid=" + id;
    window.open(mapurl, "", "height=530,width=680,scrollbars=no,resizable=no,toolbar=no,statusbar=no,menubar=no,location=no");
}
function showGallery(id)
{
    var galurl ="ImageGallery.aspx?propertyid=" + id;
    window.open(galurl, "", "height=750,width=800,scrollbars=no,resizable=yes,toolbar=no,statusbar=no,menubar=no,location=no");
}
function openContactForm(id)
{
    var formurl = "Contact.aspx?propertyid=" + id;
    window.open(formurl, "", "height=600,width=530,scrollbars=no,resizable=yes,toolbar=no,statusbar=no,menubar=no,location=no");
}