var popUpWin=0;

function popUpWindow(width, height, URLStr)
  {
    if (typeof(SymRealWinOpen)!="undefined")
        window.open = SymRealWinOpen;

    var left = (screen.width/2) - width/2;
    var top = (screen.height/2) - height/2;
    if(popUpWin)
      {
        if(!popUpWin.closed) popUpWin.close();
      }
    popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
    if (popUpWin==null)
        ; //alert("Please enable popups for this site");
    else
        popUpWin.focus()
  }

function popUpWindowFlexible(width, height, URLStr)
  {
    if (typeof(SymRealWinOpen)!="undefined")
        window.open = SymRealWinOpen;

    var left = (screen.width/2) - width/2;
    var top = (screen.height/2) - height/2;
    if(popUpWin)
      {
        if(!popUpWin.closed) popUpWin.close();
      }
    popUpWin = open(URLStr, 'popUpWin', 'toolbar=no,location=no,directories=no,status=Yes,menubar=no,scrollbars=Yes,resizable=Yes,copyhistory=yes,width='+width+',height='+height+',left='+left+', top='+top+',screenX='+left+',screenY='+top+'');
    if (popUpWin==null)
        alert("Please enable popups for this site, this site only uses popups for legitimate purposes");
    else
        popUpWin.focus()
  }

function getElement(id)
  {
  	return typeof(getElement)=="undefined" ?
           document.all[id] : document.getElementById(id);
  }

function getElementName(name)
  {
    var el = document.getElementsByName(name);
    if (el.length)
        return el[0];
    else
        return null;
  }

function httpStateChange()
  {
	if (xmlhttp.readyState == 4) {
		if (xmlhttp.status==200)
			eval(xmlhttp.responseText);
	}
}

xmlhttp =  false;

function dynamicExecute(path)
  {
	if (!xmlhttp)
		xmlhttp = new XMLHttpRequest();	  
  	xmlhttp.abort();
  	xmlhttp.open('GET', path, true);
  	xmlhttp.onreadystatechange = httpStateChange;
  	xmlhttp.send(null);
  }
  
globalPath='';
globalTimeoutID = window.setTimeout('', 10);

function executeQueue()
  {
    dynamicExecute(globalPath);
  }
  
function dynamicQueue(path)
  {
    globalPath = path;
    window.clearTimeout(globalTimeoutID);
    globalTimeoutID = window.setTimeout(executeQueue, 100);
  }

function searchPopup(me)
  {
  	var ms;
  	Today = new Date();
  	ms = Today.getMilliseconds();
    	var name = me.name;
  	dynamicQueue("/searchPopup.php?type=" + name + "&value=" + escape(me.value) + "&ms=" + String(ms));
  }

function searchPopupPostcode(me, localityField)
  {
    var locality = getElementName(localityField);
    if (!locality || locality.type!='text') return;

  	var ms;
  	Today = new Date();
  	ms = Today.getMilliseconds();
    	var name = me.name;
  	dynamicQueue("/searchPopup.php?type=" + name + "&value=" + escape(me.value) + "&locality=" + escape(locality.value) + "&ms=" + String(ms));
  }

function clearPopup(name)
  {
  	var el = getElement(name + "Select");
  	el.innerHTML = '';
  	showPopup(name, false);
  }

function loadPopupLocationState(name, data)
  {
  var html = '';
	for (var key in data)
	  {
      var text  = String(data[key]).replace(/--EXTRA--/,', ');
      var value = String(data[key]).replace(/--EXTRA--.*/,'');
      var postcode = String(data[key]).replace(/.*--EXTRA--/,'');
      html += '<div><a class="selection" href="javascript:updatePopupLS(\'' + value +  '\', \'' + postcode +  '\',\'' + name + '\')">' + text + '</a></div>';
	  }
   var popup = getElement(name + "Select")
   popup.innerHTML = html;
	 showPopup(name, true);
  }

function updatePopupLS(text, postcode, name)
  {
    var el = getElementName(name);
  	el.value = text;
  	
  	var postcodeName = name.replace(/LocationState/,'PostCode');
    var el = getElementName(postcodeName);
    el.value = postcode;

  	showPopup(name, false);
  }

function loadPopup(name, data)
  {
  var html = '';
	for (var key in data)
	  {
      html += '<div><a class="selection" href="javascript:updatePopup(\'' + String(data[key]).replace(/\'/,'\\\'') +  '\',\'' + key +  '\',\'' + name + '\')">' + data[key] + '</a></div>';
	  }
   var popup = getElement(name + "Select")
   //alert(popup.tagName); return;
   popup.innerHTML = html;
	 showPopup(name, true);
  }

function updatePopup(text, key, name)
  {
    var el = getElementName(name);
	  el.value = text;
	  showPopup(name, false);
	  var el = getElementName(name + "Id");
	  if (el)
        el.value = key;
  }

popupList = {};

function hidePopups()
  {
	for (var popup in popupList)
		showPopup(popup, false); 
  }
  
function checkHidePopup(event)
  {
	if (!event) return;
	if (event.srcElement) 
		var el = event.srcElement;
	else if (event.target)
		var el = event.srcElement;
	else
		return;
	var inPopup = false;
	while (el)
	  {
		if (el.className=='popupbox')
		  {
			inPopup=true;
			break;
		  }
		el = el.parentNode;  
	  }
	if (!inPopup)
		hidePopups();
  }

function showSurrounding(show)
  {
	var el = getElementName('distance');
	if (!el) return;
	if (show)
		el.style.display='';
	else
		el.style.display='none';
  }

function showPopup(name, show)
  {
  	var idName = name +  'Popup';
	var el = getElement(idName);
	if (!el) return;
	popupList[name] = true;
	if (show)
		el.style.display='block';
	else
		el.style.display='none';
	if (name=='category' || name=='location')
		showSurrounding(!show);
  }
  
inTear = false;
function displayTear(no)
  {
	 resetTear();
	 inTear = window.setTimeout('displayTearDelayed(' + String(no) + ')', 1000);	  
  }
  
function displayTearDelayed(no)
  {
	if (!inTear) return;
	if (openMarker)
        openMarker.closeInfoWindow();
    openMarker = false;
    var marker = markers[no];
    var point = marker.getPoint();
    GEvent.trigger(marker, "click");
    globalMap.setCenter(point, 15);
    openMarker = marker;
	inTear = false;
  }
    
function resetTear()
  {
	if (inTear)
		window.clearTimeout(inTear);
	inTear = false;
  }
  
function submitStep(step)
  {
	document.forms.mainform['gotostep'].value = step;
	document.forms.mainform.submit();
  }

function setCookie (name, value)
  {
    var date = new Date();
    if (typeof(date.setFullYear)!="undefined")
       date.setFullYear(date.getFullYear()+2);
    else
       date.setYear(date.getYear()+2);
    document.cookie = name + "=" + escape(value) + ";path=/;expires=" + date.toGMTString();
  }

function setScreenSizeCookie()
  {
    var width = window.screen.availWidth;
  	setCookie('ScreenWidth', width);
  }
  
setScreenSizeCookie();



