var idInfoWindow = false;

var CIcon = function(point, ord, name, description, type, geoPoint, advId, advIcon, flickr, acts2){					 
	//refactoring: extração do CPlanos2Map.plot
	
	//alert([point, ord, name, description, type, geoPoint, advId, advIcon, flickr]);
	
	this.getSize = function() {
		return new cl.publiguias.planos.Size(0, 0);
	};

	this.getDrawingOffset = function() {
		return new cl.publiguias.planos.Size(0, 0);
	};
	
	this.getHtml = function() {
		var addFunction = '';
		var insertContent = '';
		var classItem = type;
		var _ord = ord;
		var plotBg = '';
		var id = _ord;
		var classItemMini = false;
		var _advId = advId;
		var acts;
		
		classItem = type;
		classItemMini = type + 'Mini';
		
		if(!idInfoWindow){
			idInfoWindow = 11 //GLOBAL - Inicia no 11 para não causar conflito com os outros plots
		}
		
		//Endereços
		if (type == 'Address'){
			var insertCode = [];
			insertCode.push('<a href="javascript://" class="localidad" id="aPlot' + id + '" onclick="setLoc(\'' + id + '\',' + geoPoint._latitude + ' + \',\' + ' + geoPoint._longitude + ');return false">Definir como mi localidad</a>');
			insertCode.push('<p class="off" id="pPlot' + id + '">'+name+'</p>');
			acts = 'address';
			insertContent = insertCode.join('');
			insertCode = null;
		
		//BusinessAd / BusinessAdFree
		} else if (type == 'BusinessAd' || type == 'BusinessAdFree'){
			var insertCode = [];
			insertCode.push('<ul class="businessTags min_tags">' + $D.get('businessTags' + ord).innerHTML + '</ul>');
			
			if ($D.get('maisInfo' + ord)){
				insertCode.push('<a href="' + $D.get('maisInfo' + ord).href + '"  target="_blank">Más info</a>');	
			}			
			acts = 'BusinessAd';
			insertContent = insertCode.join('');
			insertCode = null;
			
		//BusinessAdTop
		} else if (type == 'BusinessAdTop'){
			if (advIcon == null){
				classItem = 'BusinessAd';
				imgContent = _ord;
				_advId = null;
			} else {
				classItem = 'BusinessAdTop';
				imgContent = '<img src="' + advIcon + '" class="businessAdTopIcon" />';
			}
			acts = 'BusinessAdTop';
			classItemMini = '';
			
		//Icon / Bullet / Panoramico / Flickr')){
		} else if ((type == 'Icon') || (type == 'Bullet') || (type == 'Panoramico') || (type == 'Flickr')){
			classItem = '';
			classItemMini = 'Mini';
			_ord = '<img src="' + ord + '" />';
			idInfoWindow += 1;
			id = idInfoWindow;
			if (type == 'Bullet') {
				insertContent = '<div class="bulletContent" id="bulletContent' + id + '"> </div>\n<div class="bulletBg"><!-- --></div>';
				acts = 'bullet';
				imgContent = _ord;
			} else if (type == 'Icon') {
				insertContent = '<div class="iconContent"> </div>';
				addFunction = 'showIpointDetail(($D.getElementsByClassName(\'iconContent\',\'div\',(this.parentNode))[0]),'+ advId +');';
				acts = 'icon';
				description = '';
			} else if (type == 'Panoramico') {
				classItem = 'Panoramico';
				insertContent = '<div id="iconContent' + id + '" class="iconContent"> </div><div class="iconBg"><!-- --></div>';
				acts = 'icon';
				imgContent = _ord;
			} else if(type == 'Flickr') {
				classItem = 'Flickr';
				acts = 'flickr';
			}
		} 
		if (!classItemMini) {
			classItemMini = classItem;
		}
		
		//abrir div do balão
		var infoContent = [];
		infoContent.push('<div id="infoWindowPlot' + id +'" class="plot' + classItem + '" rel="' + geoPoint._longitude + ',' + geoPoint._latitude + '">');
		
		//conteúdo do balão
		//Geral
		if (type != 'BusinessAdTop' && type != 'Bullet' && type != 'Panoramico' && type != 'Flickr') {
			infoContent.push('\n	<div class="infoWindowPlot" onclick="map.plotOpen(\'' + id + '\',null,\'' + acts + '\');' + addFunction + 'return false;" onmouseover="plotMouseOver(\'' + id + '\')">' + _ord + '</div>');
			infoContent.push('\n	<div class="boxContainer">');
			infoContent.push('\n		<div class="infoWindowHover" onmouseover="plotMouseOver(\'' + id + '\');" onmouseout="plotMouseOut(\'' + id + '\')" onclick="map.plotOpen(\'' + id + '\',null,\'' + acts + '\');' + addFunction + 'return false;">');
			infoContent.push('\n			<em class="plot' + classItemMini + '">' + _ord + '</em>');
			infoContent.push('\n			<h4 id="namePlot' + id + '" title="' + name + '">' + name + '</h4>');
			infoContent.push('\n		</div>');
			infoContent.push('\n		<div class="topBox">');
			infoContent.push('\n			<div class="infoWindowContainer">');
			infoContent.push('\n				<div class="plotContainer">');
			infoContent.push('\n					<em class="plot' + classItemMini + '">' + _ord + '</em>');
			infoContent.push('\n					<a href="javascript://" class="infoClose" onclick="$D.get(\'infoWindowPlot' + id + '\').className=\'plot' + classItem + '\';$D.removeClass(($D.get(\'infoWindowPlot' + id + '\').parentNode),\'openZindex\');return false"> </a>');
			infoContent.push('\n					<h4 id="namePlot' + id + '">' + name + '</h4>');
			infoContent.push('\n					' + description + insertContent);
			infoContent.push('\n				</div>');
			infoContent.push('\n			</div>');
			infoContent.push('\n		</div>')
			infoContent.push('\n		<div class="bottomBox"><!-- --></div>');
			infoContent.push('\n	</div>');
		
		//BusinessAdTop / Panoramico / Bullet
		} else if( type == 'BusinessAdTop' || type == 'Panoramico' || type == 'Bullet') {
			infoContent.push('<div id="infoContainer' + id + '"> </div>');
			//infoContent.push('	<div class="infoWindowPlot" onclick="map.plotOpen(\'' + id + '\',\'' + _advId + '\',\'' + acts + '\');' + addFunction + ';return false;">'+ imgContent + '</div>');
			infoContent.push('	<div class="infoWindowPlot" onclick="map.plotOpen(\'' + id + '\',\'' + _advId + '\',\'' + acts2 + '\');' + addFunction + ';return false;">'+ imgContent + '</div>');
			infoContent.push('	' + insertContent);
		
		//Flickr window	
		} else if (type == 'Flickr') {
			infoContent.push('	<div id="thumbFlickr'+id+'" class="infoWindowFlickrThumb" onmouseout="map.plotShrink(\'' + id + '\');" onmouseover="map.plotExpand(\'' + id + '\');" onclick="map.plotOpen(\'' + id + '\',\'' + _advId + '\',\'' + acts + '\');' + addFunction + ';return false;">');
			infoContent.push('		<div class="flickrOverlayMini"><!-- --></div>');
			infoContent.push('		<img id="flickrImage'+id+'" class="flickrPhoto" src="'+flickr.image+'" alt="'+flickr.title+'" title="'+flickr.title+'" width="20" height="20" onerror="this.parentNode.parentNode.parentNode.style.display=\'none\'; " />');
			infoContent.push('	</div>');
			infoContent.push('	<div id="balloonFlickr'+id+'" style="display:none">');
			infoContent.push('		<a id="linkFlickr'+id+'" href="http://www.flickr.com/photos/'+flickr.owner+'/'+flickr.id+'/" title="'+flickr.title+'" target="_blank"><!--//--></a>');
			infoContent.push('		<div class="title">');
			infoContent.push('			<strong>'+flickr.title+'</strong><br />');
			infoContent.push('			<a href="http://www.flickr.com/photos/'+flickr.owner+'/" target="_blank">'+flickr.ownername+'</a>');
			infoContent.push('			<a href="http://www.flickr.com" border="0" target="_blank" class="flickrLogo"><img src="img/logoFlickr.png" alt="Flickr.com" /></a>');
			infoContent.push('		</div>');
			infoContent.push('	</div>');
		}
		
		//extrair o nome do tipo de icone do path da imagem para acrescentar à sombra;
		var _rxp = new RegExp("(icn-)(.*)(\.png)");
		var _rxp2 = new RegExp("flickr");
		var extract = _rxp.exec(ord);
		var _class = (extract!=null)? "icn" + extract[2] : ((!_rxp2.test(ord)) ? "icnflickr" : "" ) ;
		
		//adicionar div de sombra
		infoContent.push('<div class="shadow '+_class+'"><!--//--></div>');
		
		//fechar div do balão
		infoContent.push('</div>');
		
		return infoContent.join('');
	}
}