var markerInfoSimpleMaxWidth=658
var markerInfoSimpleMinWidth=217
var markerInfoSimpleMaxHeight=436
var markerInfoSimpleMinHeight=58


var markerInfoSimpleOpenOnSelect=null;
var markerInfoSimpleCloseOnSelect=null;
var markerInfoSimpleOverflowSelect=null;

var markerInfoSimpleOpenOnEvents=[
	E_MARKER_NONE
	,E_MARKER_DRAGEND
	,E_MARKER_DRAGSTART
	,E_MARKER_DRAG
	,E_MARKER_CLICK
	,E_MARKER_DBLCLICK
	,E_MARKER_MOUSEOVER
	,E_MARKER_MOUSEOUT
	,E_MARKER_MOUSEUP
	,E_MARKER_MOUSEDOWN
]

var markerInfoSimpleCloseOnEvents=[
	E_MARKER_NONE
	,E_MARKER_DRAGEND
	,E_MARKER_DRAGSTART
	,E_MARKER_DRAG
	,E_MARKER_CLICK
	,E_MARKER_DBLCLICK
	,E_MARKER_MOUSEOVER
	,E_MARKER_MOUSEOUT
	,E_MARKER_MOUSEUP
	,E_MARKER_MOUSEDOWN
]

function markerPutInfoSimpleOverflow(node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]

	var x,event;
	if(!markerInfoSimpleOverflowSelect)
	{
		markerInfoSimpleOverflowSelect=new SelectBox('markerInfoSimpleOverflow','infoWindowSimple',function(option){markerSetInfoSimpleOverflow(option.value)})
		markerInfoSimpleOverflowSelect.setOptions(optionsOverflow)
		markerInfoSimpleOverflowSelect.selectedIndex=0//nodeObj.marker.infoSimpleOverflow;
	}
	
	markerInfoSimpleOverflowSelect.draw()
}

function markerInfoWindowSimpleSetup(node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]
	editPutBlockformats('simple')
	markerPutInfoSimpleOpenOn(node)
	markerPutInfoSimpleCloseOn(node)
	markerPutInfoSimpleOverflow(node)
}

function markerPutInfoSimpleHTML(node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]
	var doc=editDoc['simple']
	if(doc)
	{
		if(!doc.body && ((isIE)?doc.readyState!='complete':true))
		{
			setTimeout('markerPutInfoSimpleHTML(\''+node+'\')',10)
			return;
		}
		doc.body.innerHTML=nodeObj.marker.infoSimple
		//if(isIE)doc.selection.empty();
	}
}

function markerResetInfoSimple(node,change)
{
	//GLog.write('markerResetInfoSimple '+node)
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]
	
	if(nodeObj.infoOpen==1)
	{
		gmap.getInfoWindow().reset(nodeObj.latLng, [new GInfoWindowTab('',nodeObj.marker.infoSimpleWrap)], nodeObj.marker.infoSimpleSize , nodeObj.marker.infoOffset)
	}
}

function markerGetInfoSimpleOpts(node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]
	return {maxWidth:nodeObj.marker.infoSimpleMaxWidth}
}

function markerSetInfoSimpleOpenOn(event,node)
{
	if(!node)
	{
		if(mapNodes[currentNode].type=='marker')node=currentNode;
		else node=markerPresetUid;
	}
	var nodeObj=mapNodes[node]
	nodeObj.marker.infoSimpleOpenOn=event
	nodePutInfoSimpleIcon(node)
	markerSetHasOn(node)
}


function markerPutInfoSimpleOpenOn(node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]

	var x,event;
	if(!markerInfoSimpleOpenOnSelect)
	{
		markerInfoSimpleOpenOnSelect=new SelectBox('markerInfoSimpleOpenOn','infoWindowSimple',function(option){markerSetInfoSimpleOpenOn(option.value)})
		var options=[]
		for(x=0;x<markerInfoSimpleOpenOnEvents.length;x++)
		{
			event=markerInfoSimpleOpenOnEvents[x]
			options.push({value:event,text:eventStr[event]})
		}
		markerInfoSimpleOpenOnSelect.setOptions(options)
	}
	markerInfoSimpleOpenOnSelect.selectedIndex=nodeObj.marker.infoSimpleOpenOn;
	markerInfoSimpleOpenOnSelect.draw()
}


function markerPutInfoSimpleCloseOn(node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]

	var x,event;
	if(!markerInfoSimpleCloseOnSelect)
	{
		markerInfoSimpleCloseOnSelect=new SelectBox('markerInfoSimpleCloseOn','infoWindowSimple',function(option){markerSetInfoSimpleCloseOn(option.value)})
		var options=[]
		for(x=0;x<markerInfoSimpleCloseOnEvents.length;x++)
		{
			event=markerInfoSimpleCloseOnEvents[x]
			options.push({value:event,text:eventStr[event]})
		}
		markerInfoSimpleCloseOnSelect.setOptions(options)
	}
	markerInfoSimpleCloseOnSelect.selectedIndex=nodeObj.marker.infoSimpleCloseOn;
	markerInfoSimpleCloseOnSelect.draw()
}



function markerSetInfoSimpleCloseOn(event,node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]

	nodeObj.marker.infoSimpleCloseOn=event
	nodePutInfoSimpleIcon(node)
	markerSetHasOn(node)
}

function markerBuildInfoSimple(node)
{
	//GLog.write('markerBuildInfoSimple('+node+')')
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]

	if(nodeObj.marker.infoSimple)
	{
		var initWidth=nodeObj.marker.infoSimpleMaxWidth;
		var width=initWidth
		var height=0
		var element=document.getElementById('sizeTest');
		element.innerHTML='';
		element.position='';
		element.style.height='';	
		element.style.width='';	
		element.position='absolute';
		element.innerHTML=nodeObj.marker.infoSimple;
		element.style.width=width+'px';
		height=element.offsetHeight;
		do
		{
			if(width>=nodeObj.marker.infoSimpleMinWidth)element.style.width=--width+'px';
			else break;
		}
		while(element.offsetHeight==height)
		++width
		if(width<nodeObj.marker.infoSimpleMinWidth)width=nodeObj.marker.infoSimpleMinWidth;
		if(width>nodeObj.marker.infoSimpleMaxWidth)width=nodeObj.marker.infoSimpleMaxWidth;
		if(height<nodeObj.marker.infoSimpleMinHeight)height=nodeObj.marker.infoSimpleMinHeight;
		if(height>nodeObj.marker.infoSimpleMaxHeight)height=nodeObj.marker.infoSimpleMaxHeight;
	}
	else
	{
		var width=nodeObj.marker.infoSimpleMinWidth;
		var height=nodeObj.marker.infoSimpleMinHeight;
	}
	return {size:new GSize(width,height),HTML:'<DIV STYLE="width:'+width+'px;height:'+height+'px"><DIV STYLE="overflow:'+nodeObj.marker.infoSimpleOverflow+';position:absolute;top:0px;left:0px;width:'+width+'px;height:'+height+'px">'+nodeObj.marker.infoSimple+'</DIV></DIV>'}
}

function markerRebuildInfoSimple(node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]

	var build=markerBuildInfoSimple(node)
	nodeObj.marker.infoSimpleWrap=build.HTML
	nodeObj.marker.infoSimpleSize=build.size
}

function markerSetInfoSimpleOverflow(overflow,node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]

	nodeObj.marker.infoSimpleOverflow=overflow
	
	markerRebuildInfoSimple(node)
	markerResetInfoSimple(node,true)
}

function markerSetInfoSimpleMinWidth(width,node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]

	width=parseInt(width)
	if(width>markerInfoTabbedMaxWidth)width=markerInfoTabbedMaxWidth;
	if(width<markerInfoTabbedMinWidth)width=markerInfoTabbedMinWidth;
	if(width>nodeObj.marker.infoSimpleMaxWidth)
	{
		nodeObj.marker.infoSimpleMaxWidth=width
		document.getElementById("markerSetInfoSimpleMaxWidth").value=width
	}
	nodeObj.marker.infoSimpleMinWidth=width
	document.getElementById("markerSetInfoSimpleMinWidth").value=width
	markerRebuildInfoSimple(node)
	markerResetInfoSimple(node,true)
}


function markerSetInfoSimpleMaxWidth(width,node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]

	width=parseInt(width)
	if(width>markerInfoTabbedMaxWidth)width=markerInfoTabbedMaxWidth;
	if(width<markerInfoTabbedMinWidth)width=markerInfoTabbedMinWidth;
	if(width<nodeObj.marker.infoSimpleMinWidth)
	{
		nodeObj.marker.infoSimpleMinWidth=width
		document.getElementById("markerSetInfoSimpleMinWidth").value=width
	}
	nodeObj.marker.infoSimpleMaxWidth=width
	document.getElementById("markerSetInfoSimpleMaxWidth").value=width
	markerRebuildInfoSimple(node)
	markerResetInfoSimple(node,true)
}


function markerSetInfoSimpleMinHeight(height,node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]

	height=parseInt(height)
	if(height>markerInfoTabbedMaxHeight)height=markerInfoTabbedMaxHeight;
	if(height<markerInfoTabbedMinHeight)height=markerInfoTabbedMinHeight;
	if(height>nodeObj.marker.infoSimpleMaxHeight)
	{
		nodeObj.marker.infoSimpleMaxHeight=height
		document.getElementById("markerSetInfoSimpleMaxHeight").value=height
	}
	nodeObj.marker.infoSimpleMinHeight=height
	document.getElementById("markerSetInfoSimpleMinHeight").value=height
	markerRebuildInfoSimple(node)
	markerResetInfoSimple(node,true)
}


function markerSetInfoSimpleMaxHeight(height,node)
{
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]

	height=parseInt(height)
	if(height>markerInfoTabbedMaxHeight)height=markerInfoTabbedMaxHeight;
	if(height<markerInfoTabbedMinHeight)height=markerInfoTabbedMinHeight;
	if(height<nodeObj.marker.infoSimpleMinHeight)
	{
		nodeObj.marker.infoSimpleMinHeight=height
		document.getElementById("markerSetInfoSimpleMinHeight").value=height
	}
	nodeObj.marker.infoSimpleMaxHeight=height
	document.getElementById("markerSetInfoSimpleMaxHeight").value=height
	markerRebuildInfoSimple(node)
	markerResetInfoSimple(node,true)
}

function markerPutInfoSimple(node)
{
	//GLog.write('markerPutInfoSimple('+node+')')
	//if(node==markerPresetUid)markerPresetActive=true
	if(!node)node=markerCurrentNode
	var nodeObj=mapNodes[node]
	if(nodeObj)
	{
		var x;
		document.getElementById('markerInfoSimpleEdit').onload=null
		document.getElementById("markerSetInfoSimpleMaxWidth").value=nodeObj.marker.infoSimpleMaxWidth
		document.getElementById("markerSetInfoSimpleMinWidth").value=nodeObj.marker.infoSimpleMinWidth
		document.getElementById("markerSetInfoSimpleMaxHeight").value=nodeObj.marker.infoSimpleMaxHeight
		document.getElementById("markerSetInfoSimpleMinHeight").value=nodeObj.marker.infoSimpleMinHeight
		
		if(innerHTMLFix)
		{
			markerPutInfoSimpleOpenOn(node)
			markerPutInfoSimpleCloseOn(node)
			markerPutInfoSimpleOverflow(node)
		}
		markerInfoSimpleOpenOnSelect.selectValue(nodeObj.marker.infoSimpleOpenOn)
		markerInfoSimpleCloseOnSelect.selectValue(nodeObj.marker.infoSimpleCloseOn)
		markerInfoSimpleOverflowSelect.selectValue(nodeObj.marker.infoSimpleOverflow)

		if(sections.infoWindowSimple.sectionOpen)
		{
			editWin['simple']=document.getElementById('markerInfoSimpleEdit').contentWindow
			editDoc['simple']=editWin['simple'].document
			editDoc['simple'].designMode='On'
			editSetEvents(editDoc['simple'],'simple');
			setTimeout('markerPutInfoSimpleHTML(\''+node+'\')',0)
			if(document.createTreeWalker)textTreeWalker['simple']=document.createTreeWalker(editDoc['simple'],NodeFilter.SHOW_ALL,editTextFilter,false)
			editWin['simple'].focus();
		}
		document.getElementById('markerInfoSimpleEdit').onload=function onload(event){markerPutInfoSimpleHTML()}
	}
}

