// JavaScript Document
var xmlHttp;
var refreshPage;   
var globalPropertyId;
var isInUse = false;

function updateShortlist( propertyId, refreshPageYesOrNo ) {
	if(isInUse) {
		return;	
	}
	isInUse = true;
	refreshPage = refreshPageYesOrNo;
	globalPropertyId = propertyId;

	xmlHttp = getXmlHttpObject();

	if (xmlHttp==null) {
		alert ("Your browser does not support AJAX.");
		return;
	} 
	
	var url="http://www.frenchidyll.co.uk/france/extras/ShortlistFunction.php";
	url= url + "?propertyId=" + propertyId;
	url= url + "&sid=" + Math.random();
	xmlHttp.onreadystatechange = stateChanged;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function stateChanged()  {
	if(xmlHttp.readyState == 4) {
		if( refreshPage == 1 ) {
			location.reload(true);
		} else {
			switch( parseInt(xmlHttp.responseText) ) {
				case 1:
					document.getElementById("addRemoveText"+globalPropertyId).innerHTML = 'Add To Shortlist';
					notify('This Property has been Successfully Removed from your Shortlist', 'visibleNotifyMsg');
					setTimeout("fade('notify'+globalPropertyId);", 1500);
					break;
				case 2:
					document.getElementById("addRemoveText"+globalPropertyId).innerHTML = 'Remove From Shortlist';
					notify('This Property has been Successfully Added to your Shortlist', 'visibleNotifyMsg');
					setTimeout("fade('notify'+globalPropertyId);", 1500);
					break;
				case 3:
					notify('Your Shortlist is full, please delete a property.', 'visibleNotifyMsg');
					setTimeout("fade('notify'+globalPropertyId);", 1500);
					break;
				default:
					notify(xmlHttp.responseText + 'Please <a href="https://www.frenchidyll.co.uk/france/myshortlist/MyShortlist.php">click here</a> to Login', 'visibleNotifyMsg');
				setTimeout("fade('notify'+globalPropertyId);", 5000);
			}
		}
	}
}


function getXmlHttpObject() {
	var xmlHttp = null;
	try {
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	} catch (e) {
		// Internet Explorer
		try {
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

var fadeTime = 1500.0;

function fade( elementName ) {
	var element = document.getElementById(elementName);
	if(element == null)
		return;
	
	if(element.FadeState == null) {
		element.FadeState = 2;
	}
	
	element.FadeState = element.FadeState == 2 ? -1 : 1;
	element.FadeTimeLeft = fadeTime;
	setTimeout("animateFade(" + new Date().getTime() + ",'" + elementName + "')", 33);
}

function animateFade(lastTick, elementName) { 
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
  var element = document.getElementById(elementName);
 
  if(element.FadeTimeLeft <= elapsedTicks) {
	element.style.opacity = '1';
	element.style.filter = 'alpha(opacity = 100)';
	element.FadeState =  2;
	notify(null, 'hiddenState');
	isInUse = false;
    return;
  }
 
  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/fadeTime
  if(element.FadeState == 1)
    newOpVal = 1 - newOpVal;

  element.style.opacity = newOpVal;
  element.style.filter = 'alpha(opacity = ' + (newOpVal * 100) + ')';
 
  setTimeout("animateFade(" + curTick + ",'" + elementName + "')", 33);
}


function notify(textMessage, visibleStateCSS) {
	// Locate and update our popup window
	object = document.getElementById('notify'+globalPropertyId);
	if( textMessage != null) {
		object.innerHTML = '<p align="center">'+ textMessage +'</p>';
	}
	object.className = visibleStateCSS;	
}

