var PMeLocW = null;

	// defining the pre search function which is called just before the Search is executed. 
	// Required argument is only query.
	var profileMePreSearchFunc = function(query)    
	{
	    PMeLocW.setSelectedTab('GeographicLocation');
	}
	  
	// This function is called by the LocationWidget when a user click on the Select link.
	// The required argument is (geoID, detailID, detailName, geoName, locationTypeName)
	var profileMeSelectFunc = function(geoID, detailID, detailName, geoName, locationTypeName)
	{        
	    var form = document.forms.addDest;
	    if (!form)
	    { 
	        alert("no form is found");
	        return false;
	    }
	    
	    if (selectedCategory == '')
	    { 
	        alert("Category is not selected");
	        form.type.value = "";
	        form.geo.value = "";
	        return false;
	    }
	    
	    form.geo.value = geoID;
	    form.type.value = selectedCategory;
	    form.submit();
	}

  function checkRequired()
  {
     return true;
  }
  
  function editAboutMe(id1, id2)
  {
    if (!id1 || !id2) 
    {
      return;
    }
    document.getElementById(id1).style.display = "block"; // display the edit box 
    document.getElementById(id2).style.display = "none"; // hide the data display boxes 
    var msgBox = document.getElementById('msgBox'); // get the message box 
    if (msgBox)
    {
        msgBox.style.display = "none"; // hide the message box       
    }      
  }
  
  function editTravelLog(id1, id2, sCat, hCat)  
  {
    if (!id1 || !id2) 
    {
        return;
    }
    selectedCategory = sCat; 
    document.getElementById(id1).style.display = "block"; // display the div
    document.getElementById(id2).style.display = "none";  // hide the div 
    var msgBox = document.getElementById('msgBox'); // get the message box 
    if (msgBox)
    {
        msgBox.style.display = "none"; // hide the message box       
    }      
    
    if (sCat == '')  // hide all
    {
        document.getElementById("knownpd").style.display = "none"; // hide the display div 
        document.getElementById("dreampd").style.display = "none"; // hide the display div 
        document.getElementById("knownpt").style.display = "none"; // hide the display div 
        document.getElementById("dreampt").style.display = "none"; // hide the display div 
    }
    else
    {
        document.getElementById(sCat + "d").style.display = "block"; // display the locations which are edited 
        document.getElementById(sCat + "t").style.display = "block"; // display the locations which are edited 
        document.getElementById(hCat  + "d").style.display = "none";  // hide the display div 
        document.getElementById(hCat  + "t").style.display = "none";  // hide the display div 
        // set the focus in the input field of the location widget
        PMeLocW.setFocus();
    }
      
  }

	function checkDelSelected(mCat)
	{
	    var isSelected = false;
	    var delSize = 0;
	    var myForm;
	    
	    if (mCat == 'knownp')
	    {
	        delSize = delSizeKnownp;
	        myForm = document.getElementById('delDestknownp');        
	    }
	    else if (mCat == 'dreamp')
	    {
	        delSize = delSizeDreamp;
	        myForm = document.getElementById('delDestdreamp');        
	    }
	    
	    if (!myForm)
	    { 
	        alert("no form is found");
	        return false;
	    }
	    
	    return true;
	}

  function showLocWgt(eventObj, bShow, sName)
  {
      var xOffset = 10;
      var yOffset = 10;
      if (bShow)
      {
          document.getElementById('locationWidget').style.display = 'block'; 
      }
      else
      {
          document.getElementById('locationWidget').style.display = 'none'; 
      }
  }
  
  function moveLocWgt(eventObj, bShow)
  {
      var xOffset = 10;
      var yOffset = 10;
      if (bShow)
      {
          // move popup div to current cursor position 
          // (add scrollTop to account for scrolling for IE)
          var newXCoordinate =(eventObj.pageX) ? eventObj.pageX + xOffset : eventObj.x + xOffset +((document.body.scrollLeft) ? document.body.scrollLeft : 0);
          var newYCoordinate =(eventObj.pageY) ? eventObj.pageY + yOffset : eventObj.y + yOffset +((document.body.scrollTop) ? document.body.scrollTop : 0);
          // stop event from bubbling up any farther
          eventObj.cancelBubble = true;
          var styleObj = document.getElementById('helpful').style;
          styleObj.left = newXCoordinate;
          styleObj.top = newYCoordinate;
          styleObj.display = 'inline'; 
          return true;
      }
      else
      {
          document.getElementById('helpful').style.display = 'none'; 
      }
  }
  
  
  //member location
  var memberLocHtml;
  function memberLocationEditMode() {
    memberLocHtml = $("locationBlock").innerHTML;
    $("locationBlock").innerHTML = '<input id="suggestLocation" type="text" name="txtUserInput" size="30" autocomplete="off" /><input type="hidden" id="suggestLocation_hidden" name="suggestLocation_hidden"/><input type="submit" name="submit" value="' + travelmap_027 + '" onclick="editMemberLocation();" /> <a href="#" onclick="cancelMemberLocation(); return false;">(' + travelmap_028 + ')</a>';
    new Autocompleter.Ajax.Json2($("suggestLocation"), "/TypeAheadJson?action=GEO", {
        ajaxOptions: {method:'get'},
        postVar: 'query',
        inheritWidth: false,
        onSelect: function(elemt, resObj) {
          $("suggestLocation_hidden").value = resObj.value; 
        }
    });
    //$("locationBlock").innerHTML = '<input id="suggestLocation" type="text" name="txtUserInput" size="30" autocomplete="off" /><input type="submit" name="submit" value="' + travelmap_027 + '" onclick="editMemberLocation();" /> <a href="#" onclick="cancelMemberLocation(); return false;">(' + travelmap_028 + ')</a>';
    //suggest = new TextSuggest('suggestLocation', 'TypeAhead', { trapEnterOnKeyDown: 1, action: 'editMemberLocation'});
  }

  function editMemberLocation() {
    var locid = $("suggestLocation_hidden").value;
    if (!locid || locid == "") {
      $("suggestLocation_error").style.display = 'inline';
    }
    else {
      $("suggestLocation_error").style.display = 'none';
      var resFunc = function(res) {
        var in_data = eval("(" + res.responseText + ")");
        pinMemberLocation(in_data);
      }
      var req = new HttpRpc('/CommunityTravelMap', function(res){}, resFunc);
      var params = new UrlParams();
      params.add('a', 'MEM_LOC');
      params.add('lid', locid);
      params.add('nogmap', 1);
      req.sendRequest(params.toString());
    }
  }
  
  function cancelMemberLocation() {
    $("locationBlock").innerHTML = memberLocHtml;
  }
  
  var curLoc;
  function pinMemberLocation(loc) {
    curLoc = loc;
    var sb = new StringBuffer(); 
    sb.append('<span id="location">');
    sb.append(loc.name);
    sb.append('</span> <a href="javascript:memberLocationEditMode();">(' + travelmap_017 + ')</a>'); 
    $("locationBlock").innerHTML = sb.toString();
    $("staticLocationBlock").innerHTML = loc.name;
  }

  function findPos(obj)
  {
  	var curleft = curtop = 0;
  	if (obj.offsetParent)
  	{
  		curleft = obj.offsetLeft
  		curtop = obj.offsetTop
  		while (obj = obj.offsetParent)
  		{
  			curleft += obj.offsetLeft
  			curtop += obj.offsetTop
  		}
  	}

  	return [curleft,curtop];
  }
  function getEventPosition(event)
  {
    if (!event && window.event)
      event = window.event;
    var x = y = 0;
    if (event.clientX) {
      x = event.clientX;
      y = event.clientY;
    } else if (event.pageX) {
      x = event.pageX;
      y = event.pageY;
    }
    return [x,y];
  }