var lastText='';				      
function expandTextarea(textArea){
  if(lastText==textArea.value) return;
  lastText=textArea.value;

  while (textArea.rows > 1 && textArea.scrollHeight < textArea.offsetHeight){
    textArea.rows--;
  }

  while (textArea.scrollHeight > textArea.offsetHeight){
    if(textArea.rows > 30) break;
    textArea.rows++;
  }
  if(textArea.rows > 30) textArea.style.overflow='auto';
  return;
}

function disableReturn(id){
    $('#'+id).keypress(function(e){if(e.which==13) return false;});
}

function delarge(){
    var floatBG = document.getElementById('floatBG');
    var floatContent = document.getElementById('floatContent');
    var floatBox = document.getElementById('floatBox');
    var floatWrap = document.getElementById('floatWrap');
    floatWrap.style.display='none';
    floatBG.style.display='none';
    floatContent.innerHTML = '';
}
function enlarge(url){
    var floatContent = document.getElementById('floatContent');
    var floatBox = document.getElementById('floatBox');
    var floatWrap = document.getElementById('floatWrap');
    var floatBG = document.getElementById('floatBG');
    var pageHeight = document.body.clientHeight;
    var windowHeight = document.documentElement.clientHeight;
    var windowWidth = document.documentElement.clientWidth;
    var scrollOffset = document.documentElement.scrollTop;
    var margin = 50;

    //floatBG.style.height=pageHeight+'px';
    floatBG.style.display='block';

    floatWrap.style.display='block';
    floatBox.style.top = (margin + scrollOffset)+'px';
    floatBox.style.height = (windowHeight-margin-margin) + 'px';
    floatBox.style.width = Math.min(1000, (windowWidth-margin-margin))+'px';

    var mapHeight = (windowHeight-margin-margin - 35);
    floatContent.style.height=mapHeight + 'px';

    floatContent.innerHTML = '<iframe width=100% height=100% frameborder=0 marginwidth=0 marginheight=0 src="'+url+'"></iframe>';
}

function initMap(box, lat, lng, zoom, nocontrol){
    if (GBrowserIsCompatible()) {
	map = new GMap2(document.getElementById(box));
	map.setCenter(new GLatLng(lat, lng), zoom);
	if(nocontrol);
	else map.addControl(new GSmallMapControl());

	map.clearOverlays();
	var marker = new GMarker(new GLatLng(lat, lng));
	map.addOverlay(marker);
    }
}

function dialogAjax(url, title){
    showDialog('defaultDialog', title, 'Loading...');
    doajax('defaultDialogContent', url, '');
}

function closeDialog(dialog){
    var div = $('#'+dialog);
    div.fadeOut('normal');
}

function showDialog(dialog, title, content){
    var div = $('#'+dialog);
    var scrollTop = document.body.scrollTop;
    $('#defaultDialogTitle').html(title);
    $('#defaultDialogContent').html(content);

    div.fadeIn('fast');
    div.css('top', scrollTop+100+'px').css('left', 150+'px');
}

var map;
var g_scrollEnabled=0;
function showAddress() {
  var address = document.getElementById('address').value;
  if (geocoder) {
    //    geocoder.setViewport(map.getBounds());
    geocoder.getLatLng(address,
		       function(point) {
			 if (!point) {
			   alert(address + " not found");
			 } else {
			   map.setCenter(point, 11);
			   var lat=point.lat();
			   var lng=point.lng();
			   updateCoords(lat,lng);
			 }
		       });
  }
}

function initializeAddmap(lat, lng, zoom) {
  if (GBrowserIsCompatible()) {
      map = new GMap2(document.getElementById("map_canvas"));
    map.setCenter(new GLatLng(lat, lng), zoom);
    map.addControl(new GSmallMapControl());
    //map.enableGoogleBar();

    map.clearOverlays();
    var marker = new GMarker(new GLatLng(lat, lng));
    map.addOverlay(marker);

    GEvent.addListener(map, "moveend", function() {
	var center = map.getCenter();
	var lat = center.lat();
	var lng = center.lng();
	map.clearOverlays();
        var mymarker = new GMarker(center);
        map.addOverlay(mymarker);
	updateCoords(lat,lng);

      });
    geocoder = new GClientGeocoder();
  }
}
function updateCoords(lat,lng){
    if(!g_scrollEnabled){
	map.enableScrollWheelZoom();
	g_scrollEnabled=1;
    }
  document.getElementById('coordinates').innerHTML=lat.toFixed(2)+', '+lng.toFixed(2);
  document.getElementById('lat').value=lat;
  document.getElementById('lng').value=lng;
}

function enhover(button){
    var b = $('#'+button);
    b.hover(function(){ b.css('background-position','0% 15%');},
			function(){ b.css('background-position', '0% 0%');});
}

function redirect(url){
    document.location.href=url;
}
function doSubmit(formname, posturl, div, callback) {
    var params = $('#'+formname).serialize();
    $.ajax({cache:false, url:posturl,
		data:params,
		type:'POST',
		success:function(html){$('#'+div).html(html);
		if(callback) callback();}});
}
function doSubmitLoad(formname, posturl, div, loader) {
    $('#'+loader).show();
    var params = $('#'+formname).serialize();
    $.ajax({cache:false, url:posturl,
		data:params,
		type:'POST',
		success:function(html){$('#'+div).html(html);
		$('#'+loader).hide();
	    }});
}

function doajaxConfirm(div, url, message){
    var r = confirm(message);
    if(r) doajax(div, url);
}

function doajaxLoad(div, url, params, loader){
    $('#'+loader).show();
    $.ajax({cache:false, url:url,data:params,success:function(html){
		$('#'+div).html(html);
		$('#'+loader).hide();
            }});
}
function doajax(div, url, params, anchor){
    $.ajax({cache:false, url:url,data:params,success:function(html){$('#'+div).html(html); 
		if(anchor) $('#'+anchor).focus();
	    }});
}

function createRequestObject() {
  var ro;
  var browser = navigator.appName;
  if(browser == "Microsoft Internet Explorer"){
    ro = new ActiveXObject("Microsoft.XMLHTTP");
  }else{
    ro = new XMLHttpRequest();
  }
  return ro;
}
