
// Setting HTML needed for make and show result lists

Site.Searcher.photoaddress=[];
Site.Searcher.photoaddressBig=[];
Site.Searcher.photoaddressBig2=[];

Site.Searcher.html_list_start='<div id="listLevel" style="display: block; position: relative;"><ul id="list" style="display: block;">';

Site.Searcher.html_list_item=function(id, text_objectid, text_item, text_js_action,text_js_otheractions){
	//alert(id+"  -  "+ text_objectid+"  -  "+ text_item+"  -  "+ text_js_action+"  -  "+text_js_otheractions);
	var html;
		html='<li class="listRowTemplate_template" '+text_js_otheractions+' onclick="javascript:' + text_js_action + '" style="cursor:pointer;"  style="visibility: visible;">';
		html+='<div class="rowTitleDiv_template"><div class="rowTitleTable_template "><div class="rowTitle_template">'+text_item+'</div></div></div><div class="rowArrow_template"></div></li>';
	return html;
	}
	
Site.Searcher.html_shadow='<div class="shadow" />';	

Site.Searcher.html_list_end='</ul></div>'+Site.Searcher.html_shadow;

Site.q;



/********************
   Searching for Addresses, get list and markers
/********************/

/* FUNCTION SEARCHADDRESS
     Returns list of coincident addresses and show markers on the map
*/

Site.SearchAddress = function(json,product,service,ul_id){
		// declaring variables
		Site.q=json;var puntos=0;var ul=Site.get(ul_id);var html;var marker;var showpopup=false;
		var add_i_to_text='';var iconH;var iconW;var offX=0;var offY=0;
		
		// Show ItemList div
		Site.ShowObject('ItemList',true);
		
		
		
		// if no records returned exit
		if (Site.q.totalCount>0){
		
			Site.AddressMarkers = Array(Site.q.totalCount);
			
			//join product and service in one variable
			var SearchType = product+'/'+service;
			
			
			
			switch(SearchType){
					
			case 'geocoding/searchstreet':                    // FIND BY ADDRESS
					// If the addresses are full
					
					
					if(Site.q.totalCount>0 && Site.q.searchstreet[0].lon){
								// Search for photos and add into the list
								//Site.getPhotoList(Site.q.searchstreet);	
						Site.photos.get({
									address: Site.q.searchstreet
								}
								,function(json){		
											
											
											for(var i=0; i<json.photos.length; i++){
									
												if(json.photos[i].idFoto){
													
													Site.Searcher.photoaddress[i]='<img style="width:25px;height:20px;border-width:thick;border-color:#F00;" src="'+
																		Site.photosLocation+json.photos[i].idFoto+'.jpg"/>';
													
													Site.Searcher.photoaddressBig[i]='<img align="left" style="height:100px; border-width:thick;border-color:#F00;" src="'+
																		Site.photosLocation+json.photos[i].idFoto+'.jpg"/>';

												/*	Site.Searcher.photoaddressBig2[i]='<img class="photoMeddium" onclick="Site.PhotoMarkers['+i+'].showPopup();" align="left" height="70px" src="'+
																		Site.photosLocation+Site.qF[i].id+'.jpg" />'*/
																		
																										
													//Site.putHTML('photolist'+i,'<img style="width:25px;height:20px;border-width:thick;border-color:#F00;" src="'+Site.photosLocation+json.photos[i].idFoto+'.jpg"/>');
												}
												else{	Site.Searcher.photoaddress[i]='';Site.Searcher.photoaddressBig[i]='';}
											}
											
						
								// add head info to the list
								html=Site.Searcher.html_list_start;
	
								var zoom_default = 12; //EL NIVEL DE ZOOM X DEFECTO EN LAS BUSQUEDAS DE DIRECCION

								for (var i=0;i<Site.q.totalCount;i++){
									if (Site.q.searchstreet[i].lon && Site.q.searchstreet[i].lat){
				
											if (Site.q.totalCount==1){
													//Only obtain one address 			
													// set marker style
													Site.LON = Site.q.searchstreet[i].lon;
										 			Site.LAT = Site.q.searchstreet[i].lat;		
													marker='/img/markers/star.png'; 
													showpopup=true; add_i_to_text='';
													iconH=40;iconW=33;
													offX=-12;offY=-30;
													
													Site.putHTML('ItemListTitle', Site.Locale.get('tit_address'));
					
													
											}else{
													//Get more than one related address							
													// set marker style
													//marker= '/img/estrellaD'+(i+1)+'.gif'; 
													marker='/img/markers/star.png'; 
													showpopup=false; add_i_to_text=''; //(i+1)+') ';
													iconH=40;iconW=33;
													offX=-12;offY=-30;
													// Old system... Site.get_lbl ('tit_maybeyouwannasay','ItemListTitle',Site.CurrentLanguage);
													Site.putHTML('ItemListTitle', Site.Locale.get('tit_addresses') + ' (' +Site.q.totalCount +')');
					
											}
										
										var tmp;
										if(Site.q.searchstreet[i].number!=null){tmp=' ' +Site.q.searchstreet[i].number}else{tmp=''}	
											
											
										var cp;
										if(Site.q.searchstreet[i].cp!=null){cp=Site.Locale.get('lbl_postalcode') +Site.q.searchstreet[i].cp+'<br>'}else{cp=''}	
								
								
										//alert(Site.photoaddress[i]);
											
										// add ITEM information to the list
										
										html+=Site.Searcher.html_list_item(i,'address'+i,
												 add_i_to_text+Site.q.searchstreet[i].classStreet.toUpperCase()+' '+
												 Site.q.searchstreet[i].name.toUpperCase() + tmp+', '+
												 Site.q.searchstreet[i].district.toUpperCase()+'<div class="photoatlist" id="photolist'+i+'">'+Site.Searcher.photoaddress[i]+'</div>',
												 "Site.Map.CenterandZoom("+ Site.q.searchstreet[i].lon+","+ Site.q.searchstreet[i].lat+
																						","+zoom_default+","+i+");Site.Searcher.AddressDetail(" + i+");");
						
						
												// Popup HTML text content
												var html_popup_content='<div  class="popupAddressTit"><b>' +Site.Locale.get('tit_address')+
																						'</b></div>'+Site.Searcher.photoaddressBig[i]+'<br><div class="popupAddressText" onclick="Site.Map.CenterandZoom('+ 
																						Site.q.searchstreet[i].lon+','+ Site.q.searchstreet[i].lat+
																						','+zoom_default+','+i+');Site.Searcher.AddressDetail(' + i+');">'+
																						Site.q.searchstreet[i].classStreet.toUpperCase()+' '+
																				   		Site.q.searchstreet[i].name.toUpperCase()+
																				  		tmp+'<br>'+Site.q.searchstreet[i].district.toUpperCase()+'<br>'+cp+'</div>';
																						
														
													Site.LastSearched = 	Site.Locale.get('tit_address')+": "+Site.q.searchstreet[i].classStreet.toUpperCase()+' '+
																				   		Site.q.searchstreet[i].name.toUpperCase()+
																				  		tmp+'<br>'+
																				   		Site.q.searchstreet[i].district.toUpperCase();
														
												  
														
									
												// Add info related the marker on the map
												Site.Map.CreateIconMarker(i,
															  Site.q.searchstreet[i].lon,
															  Site.q.searchstreet[i].lat,
															  marker,
															  iconW,iconH,    // icon size
															  Site.AddressSearchLayer,
															 html_popup_content,
															  showpopup,
															  offX,offY // offset
															  );
											
											
									
											
											
											
									 }
									}
									
										
									//add end info to the list
									html+=Site.Searcher.html_list_end;
								
									
								
									//Inject list to ul
									Site.get(ul).dom.innerHTML=html;
									//Set zoom to the result markers area
									
									// if only one result go to see details too...
									if(Site.q.totalCount==1){
											Site.Map.CenterandZoom(Site.q.searchstreet[i-1].lon, Site.q.searchstreet[i-1].lat,12,i-1);
											Site.Searcher.AddressDetail(i-1);
											
									}else{
										Site.AddressMarkersFitZoom();
									}
									
							});
					}
					else      // NO ADDRESS COMPLETE THEN SHOW RELATED STREETS AND DRAW THE STREET  
					{ 
						
						// old system Site.get_lbl ('tit_onlythestreet','ItemListTitle',Site.CurrentLanguage);
						Site.putHTML('ItemListTitle', Site.Locale.get('tit_plazes')+' ('+Site.q.totalCount+')');
						
						html=Site.Searcher.html_list_start;
						
								for (var i=0;i<Site.q.totalCount;i++){
										html+=Site.Searcher.html_list_item(i,'address'+i,
												 Site.q.searchstreet[i].classStreet+' '+
												 Site.q.searchstreet[i].name+', '+
												 Site.q.searchstreet[i].district,
												 'Site.Map.drawStreet('+ i +',\''+Site.Locale.get('lbl_street')+' ' +  Site.q.searchstreet[i].classStreet+' '+
												 Site.q.searchstreet[i].name+', '+
												 Site.q.searchstreet[i].district+'\');');
										}
						
						
						
						html+=Site.Searcher.html_list_end;
								
						//Inject list to ul
						Site.get(ul).dom.innerHTML=html;
						//Set zoom to the result markers area
						//Site.AddressMarkersFitZoom();
						}
	
						break;
				
				
				case 'geocoding/searchintersection':             // FIND BY INTERSECTION
					
						Site.putHTML('ItemListTitle', Site.Locale.get('tit_intersections'));
						
						html=Site.Searcher.html_list_start;
						
								for (var i=0;i<Site.q.totalCount;i++){
									
								   var  htmlpopup='<div  class="popupAddressTit"><b>' +Site.Locale.get('tit_intersection')+
												'</b></div><br><div class="popupAddressText" onclick="Site.Map.CenterandZoom('+
												Site.q.searchintersection[i].lon+','+ Site.q.searchintersection[i].lat+',12,'+i+');">'+
												Site.q.searchintersection[i].classStreet1.toUpperCase()+' '+
												Site.q.searchintersection[i].nameStreet1.toUpperCase()+' '+Site.Locale.get('lbl_with')+'<br>'+
												Site.q.searchintersection[i].classStreet2.toUpperCase()+' '+
												Site.q.searchintersection[i].nameStreet2.toUpperCase()+'</div>';
																						
				   
									 var sinter=Site.q.searchintersection[i].classStreet1.toUpperCase()+' '+
												Site.q.searchintersection[i].nameStreet1.toUpperCase()+' / '+
												Site.q.searchintersection[i].classStreet2.toUpperCase()+' '+
												Site.q.searchintersection[i].nameStreet2.toUpperCase();
									
										
										Site.LastSearched = Site.Locale.get('tit_intersection') +': ' + sinter;
									
									
										html+=Site.Searcher.html_list_item(i,'address'+i,
																		  sinter,"Site.Map.CenterandZoom("+ Site.q.searchintersection[i].lon+","+ Site.q.searchintersection[i].lat+
																						",12,"+i+");");
										
											if (Site.q.totalCount==1){
															//Only obtain one address 			
															// set marker style
															marker='/img/markers/star.png'; 
															showpopup=true; add_i_to_text='';
															iconH=40;iconW=33;
															offX=-12;offY=-30;
															
															//Site.putHTML('ItemListTitle', Site.Locale.get('tit_address'));
							
															
													}else{
															//Get more than one related address							
															// set marker style
															//marker= '/img/estrellaD'+(i+1)+'.gif'; 
															marker='/img/markers/star.png'; 
															showpopup=false; add_i_to_text=(i+1)+') ';
															iconH=40;iconW=33;
															offX=-12;offY=-30;
															
															//Site.putHTML('ItemListTitle', Site.Locale.get('tit_addresses'));
							
													}
																	
										Site.Map.CreateIconMarker(i,
													  Site.q.searchintersection[i].lon,
													  Site.q.searchintersection[i].lat,
													  marker,
													  iconW,iconH,    // icon size
													  Site.AddressSearchLayer,
													  htmlpopup,
													  showpopup,
													  offX,offY // offset
													  );
																			
																			}
						
						html+=Site.Searcher.html_list_end;
								
						//Inject list to ul
						Site.get(ul).dom.innerHTML=html;
						
						Site.AddressMarkersFitZoom();
						
						break;
				
				case 'geocoding/searchdistrict':                    // FIND BY DISTRICT OR COMUNA
						
						Site.putHTML('ItemListTitle', Site.Locale.get('tit_district'));
						html=Site.Searcher.html_list_start;
						
						for (var i=0;i<Site.q.totalCount;i++){
										html+=Site.Searcher.html_list_item(i,'address'+i,
												 Site.q.searchdistrict[i].label,
												 "Site.Map.drawDistrict("+ i +");");}
					
						html+=Site.Searcher.html_list_end;
								
						//Inject list to ul
						Site.get(ul).dom.innerHTML=html;
						
						
						//Set zoom to the result markers area
						if (Site.q.totalCount==1){
								Site.Map.drawDistrict(i-1);
						}
						//Site.AddressMarkersFitZoom();
						break;
				
				case 'geocoding/streetinfobycp':                  // FIND BY POSTAL CODE
						//alert('geocoding/streetinfobycp');
						break;
				
				default:	                                                 // OTHER RESULTS
				alert('default');
						break;
						
			} //End Switch
		} // If there is more than one record...
					
}; // End search address function


// FUNCTION FILL INFO INTO ADDRESS DETAIL
Site.Searcher.AddressDetail = function(i){
	// Set variables
	var showpopup=true; var add_i_to_text=''; var html;
	
	// Set variables for send via MMS
/*
		Site.este = Site.q.searchstreet[i].utmX;
		Site.norte= Site.q.searchstreet[i].utmY;
		Site.tipoVia = Site.q.searchstreet[i].classStreet;
		Site.nombreVia = Site.q.searchstreet[i].name;
		Site.altura = Site.q.searchstreet[i].number;
		Site.comuna = Site.q.searchstreet[i].district;
		Site.ciudad ='';
		Site.numberLayer= i; 
*/
	
	Site.ShowLoading('loadingglobal',true);

	//Switch to the ItemDetail View
	Site.switchView('View_Detail');
	Site.putHTML('ItemDetailTitle',Site.Locale.get('tit_addressDetail'));
	
	//Change backbutton text
	// old system Site.get_lbl ('lbl_back','ItemDetailButton',Site.CurrentLanguage);
	Site.putHTML('ItemDetailButton', '<a href="#" onclick="Site.switchView(\'View_AddressList\');"><img border="0" src="/img/but/'+
						Site.Locale.get('lbl_back')+'"><a>');
	
	
	var tmp;
	if(Site.q.searchstreet[i].number!=null){tmp=' ' +Site.q.searchstreet[i].number}else{tmp=''}	
						

	var cp;
	//if(Site.q.searchstreet[i].cp!=null){cp='<br>'+Site.Locale.get('lbl_postalcode')+Site.q.searchstreet[i].cp}else{cp=''}	
		if(Site.q.searchstreet[i].cp!=null){cp=Site.q.searchstreet[i].cp}else{cp=''}	
		
																
						
						
	addr = Site.q.searchstreet[i].classStreet.toUpperCase()+' '+
				 Site.q.searchstreet[i].name.toUpperCase() + ' ' +tmp+'.' +
				 Site.q.searchstreet[i].district.toUpperCase();		
	
	
		
	Site.PutHashonSearch(addr.replace(/ /g,"_").replace('<br>','_'));				
	 
	
	addr = Site.q.searchstreet[i].classStreet.toUpperCase()+' '+
				 Site.q.searchstreet[i].name.toUpperCase() +
				 tmp+'<br>'+cp+
				 Site.q.searchstreet[i].district.toUpperCase();		
	
	
	Site.printAssign(addr);
	
	/*html+=Site.Searcher.html_list_item(i,'address'+i,
				 add_i_to_text+addr ,
				 "Site.Map.CenterandZoom("+ Site.q.searchstreet[i].lon+","+ Site.q.searchstreet[i].lat+
														",12,"+i+");Site.Searcher.AddressDetail(" + i+");");
	*/
				 
	if(Site.q.searchstreet[i].cp!=null){cp='<br><a target="_blank" href="http://www.correos.cl/codigo_postal/index.php">'+cp.replace('<br>','')+'</a>'}else{cp='<br>'+cp}			 
				 
	tit='<a href="#" onclick="Site.Map.CenterandZoom('+ 
																			Site.q.searchstreet[i].lon+','+ Site.q.searchstreet[i].lat+',12,'+i+');"><b>'+ 
																			Site.q.searchstreet[i].classStreet.toUpperCase()+' '+Site.q.searchstreet[i].name.toUpperCase()+tmp+
																			'</b></a>'+cp+' '+Site.q.searchstreet[i].district.toUpperCase();	
	
	
		Site.putHTML('addresslink',tit);		
	
	//Inject list to ul
	Site.putHTML('ItemAddressList',Site.Searcher.html_shadow);
	
	
	Site.ShowLoading('loadingglobal',false);
	
	
	
	
	
	
	
	//Inject content into ItemDetail box
	try{	Site.getEnvironment(i,'environment',addr);}catch(err){}
	
	//Show photos of the current center 
	Site.getPhotosEnvironment(i,4,'addressphoto',addr);
	
	
		Site.putHTML('addressphoto', Site.Searcher.photoaddressBig[i]);
	
		
	//Insert link to add phto from the address	
		
		/* Site.q.searchstreet[i].classStreet.toUpperCase()+' '+
				 Site.q.searchstreet[i].name.toUpperCase() +
				 tmp+', '+
				 Site.q.searchstreet[i].district.toUpperCase();*/
	/*	
		
	html='<a id="uploadphoto" href="/utilities/uploadphotoaddress/?l='+Site.CurrentLanguage+'&addr='+
				addr+'&idarco='+Site.q.searchstreet[i].idArc+'&city='+Site.q.searchstreet[i].city+'&via='+Site.q.searchstreet[i].classStreet+
				'&streetname='+Site.q.searchstreet[i].name+'&number='+Site.q.searchstreet[i].number+'&district='+Site.q.searchstreet[i].district+
				'&east='+Site.q.searchstreet[i].lon+'&north='+Site.q.searchstreet[i].lat+
				'" rel="lyteframe" rev="width: 750px; height: 350px; scrolling: no;">' + 
				'<img  title="'+Site.Locale.get('lbl_uploadaddressphoto')+'" border=0 src="/img/addphoto.png">' + '</a><br>';
	*/		
	
	// OPTION LIST MENU FOR AN ADDRESS
	
	Site.curdir = Site.q.searchstreet[i].classStreet + ' ' + Site.q.searchstreet[i].name+ ' '+
						Site.q.searchstreet[i].number + '. ' + Site.q.searchstreet[i].district;
	
	
	html='<a href="#" onclick="Site.clearLayer(\'PhotoLayer\');return false;">' + Site.Locale.get('lbl_ClearPhotoMarkers') + '</a>';
											html+='<br><a href="#" onclick="Site.showPhotoList(\'View_Detail\');return false;">' +
													  Site.Locale.get('lbl_ShowMorePhotos') + '</a>';
											html+='<br><a href="#" onclick="Site.chmenu(3,false);return false;">' +
													  Site.Locale.get('lbl_FindNearBusiness') + '</a>';
													  
											html+='<br>'+Site.Locale.get('lbl_howarrive') +' <a href="#" onclick="Site.howtoarrive(1,Site.curdir);">'+
														Site.Locale.get('lbl_fromhere') +' </a> '+Site.Locale.get('lbl_or') +
														' <a href="#" onclick="Site.howtoarrive(2,Site.curdir);">'+Site.Locale.get('lbl_tohere') +'</a> <br>';
														var latlon="Lat: "+Site.q.searchstreet[i].lat+"<br>Lon: "+Site.q.searchstreet[i].lon;
											html+='<a href="#" onclick="Site.putHTML(\'addlatlon\',\''+latlon+'\');return false;">'+Site.Locale.get('lbl_addlatlon')+'</a><div id="addlatlon"></div>';
											var urlocation=escape(window.location);
											html+='<br><iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://platform.twitter.com/widgets/tweet_button.html?lang=es&count=none&via=mapcity&text='+Site.Locale.get('lbl_theaddress') +Site.curdir+Site.Locale.get('lbl_ishere') +'&url='+urlocation+'" style="width:130px; height:50px;"></iframe>';
											//var html2='<br><iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://platform.twitter.com/widgets/tweet_button.html?lang=es&count=none&via=mapcity&text='+Site.Locale.get('lbl_theaddress') +Site.curdir+Site.Locale.get('lbl_ishere') +'&url='+urlocation+'" style="width:130px; height:50px;"></iframe>';
											
											//alert(html2);
											/* html+='<a href="http://twitter.com/share" class="twitter-share-button" data-text="La dirección puedes verla en #mapcity aquí" data-count="none" data-via="mapcity" data-lang="es">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>';
										
										//	html+='<br><a  id="sendMMS" onclick="Site.enviaCelular();" href="#">'+
										//			  Site.Locale.get('lbl_SendMMS') +'</a>'
										*/			
										
	Site.putHTML('ItemDetailMoreOptions',html+'<br>');
	
	
	html='<a id="uploadphoto" href="utilities/uploadphotoaddress/?l='+Site.CurrentLanguage+'&addr='+
				addr+'&idarco='+Site.q.searchstreet[i].idArc+'&city=SANTIAGO&via='+Site.q.searchstreet[i].classStreet+
				'&streetname='+Site.q.searchstreet[i].name+'&number='+Site.q.searchstreet[i].number+'&district='+Site.q.searchstreet[i].district+
				'&east='+(parseInt(Site.q.searchstreet[i].utmX)+65)+'&north='+(parseInt(Site.q.searchstreet[i].utmY)+40)+
				'" rel="lyteframe" rev="width: 780px; height: 400px; scrolling: no;">' + 
				Site.Locale.get('lbl_uploadaddressphoto') + '</a><br>';
	
	Site.putHTML('addphotoofthisaddress',html);
		
	// code necessary for 	update lyteboxitem
	LyteBox.prototype.updateLyteboxItems();
	
	
	
	
	/*if(json.enviroment)		
				S.get('entornoC').dom.innerHTML="La dirección se encuentra ubicada entre "+json.enviroment[0].calle_perp_1+" y "+json.enviroment[0].calle_perp_2+", paralela a "+json.enviroment[0].avda_para_1+" y "+json.enviroment[0].avda_para_2+", en la comuna de "+S.q.searchstreet[j].district;*/
	
	
	
	
	}





// set text to print 
Site.printAssign=function(addr){
	
		//document.getElementById('printlink').href = '/utilities/printmap/?l='+Site.CurrentLanguage+'&p='+addr.replace('<br>',' ') ;
		Site.LinkPrint = '/utilities/printmap/?l='+Site.CurrentLanguage+'&p='+addr.replace('<br>',' ') ;
	}
	
Site.getPhotoList = function(j){
	var p;
	
	Site.photos.get({
		address: Site.q.searchstreet
	}
	,function(json){		
		
		
		for(var i=0; i<json.photos.length; i++){

			
			if(json.photos[i].idFoto){
				
				Site.Searcher.photoaddress[i]='<img style="width:25px;height:20px;border-width:thick;border-color:#F00;" src="'+
							 		Site.photosLocation+json.photos[i].idFoto+'.jpg"/>';
									
				//alert(Site.Searcher.photoaddress[i]);
				
				//Site.putHTML('photolist'+i,'<img style="width:25px;height:20px;border-width:thick;border-color:#F00;" src="'+Site.photosLocation+json.photos[i].idFoto+'.jpg"/>');
			}
			else{	Site.Searcher.photoaddress[i]='';}
		}
		
		
	});
};
