function MarkerManager(map,opt_opts){var me=this;me.map_=map;me.mapZoom_=map.getZoom();me.projection_=map.getCurrentMapType().getProjection();opt_opts=opt_opts||{};me.tileSize_=MarkerManager.DEFAULT_TILE_SIZE_;var maxZoom=MarkerManager.DEFAULT_MAX_ZOOM_;if(opt_opts.maxZoom!=undefined){maxZoom=opt_opts.maxZoom}me.maxZoom_=maxZoom;me.trackMarkers_=opt_opts.trackMarkers;var padding;if(typeof opt_opts.borderPadding=="number"){padding=opt_opts.borderPadding}else{padding=MarkerManager.DEFAULT_BORDER_PADDING_}me.swPadding_=new GSize(-padding,padding);me.nePadding_=new GSize(padding,-padding);me.borderPadding_=padding;me.gridWidth_=[];me.grid_=[];me.grid_[maxZoom]=[];me.numMarkers_=[];me.numMarkers_[maxZoom]=0;GEvent.bind(map,"moveend",me,me.onMapMoveEnd_);me.removeOverlay_=function(marker){map.removeOverlay(marker);me.shownMarkers_--};me.addOverlay_=function(marker){map.addOverlay(marker);me.shownMarkers_++};me.resetManager_();me.shownMarkers_=0;me.shownBounds_=me.getMapGridBounds_()};MarkerManager.DEFAULT_TILE_SIZE_=1024;MarkerManager.DEFAULT_MAX_ZOOM_=17;MarkerManager.DEFAULT_BORDER_PADDING_=100;MarkerManager.MERCATOR_ZOOM_LEVEL_ZERO_RANGE=256;MarkerManager.prototype.resetManager_=function(){var me=this;var mapWidth=MarkerManager.MERCATOR_ZOOM_LEVEL_ZERO_RANGE;for(var zoom=0;zoom<=me.maxZoom_;++zoom){me.grid_[zoom]=[];me.numMarkers_[zoom]=0;me.gridWidth_[zoom]=Math.ceil(mapWidth/me.tileSize_);mapWidth<<=1}};MarkerManager.prototype.clearMarkers=function(){var me=this;me.processAll_(me.shownBounds_,me.removeOverlay_);me.resetManager_()};MarkerManager.prototype.getTilePoint_=function(latlng,zoom,padding){var pixelPoint=this.projection_.fromLatLngToPixel(latlng,zoom);return new GPoint(Math.floor((pixelPoint.x+padding.width)/this.tileSize_),Math.floor((pixelPoint.y+padding.height)/this.tileSize_))};MarkerManager.prototype.addMarkerBatch_=function(marker,minZoom,maxZoom){var mPoint=marker.getPoint();if(this.trackMarkers_){GEvent.bind(marker,"changed",this,this.onMarkerMoved_)}var gridPoint=this.getTilePoint_(mPoint,maxZoom,GSize.ZERO);for(var zoom=maxZoom;zoom>=minZoom;zoom--){var cell=this.getGridCellCreate_(gridPoint.x,gridPoint.y,zoom);cell.push(marker);gridPoint.x=gridPoint.x>>1;gridPoint.y=gridPoint.y>>1}};MarkerManager.prototype.isGridPointVisible_=function(point){var me=this;var vertical=me.shownBounds_.minY<=point.y&&point.y<=me.shownBounds_.maxY;var minX=me.shownBounds_.minX;var horizontal=minX<=point.x&&point.x<=me.shownBounds_.maxX;if(!horizontal&&minX<0){var width=me.gridWidth_[me.shownBounds_.z];horizontal=minX+width<=point.x&&point.x<=width-1}return vertical&&horizontal};MarkerManager.prototype.onMarkerMoved_=function(marker,oldPoint,newPoint){var me=this;var zoom=me.maxZoom_;var changed=false;var oldGrid=me.getTilePoint_(oldPoint,zoom,GSize.ZERO);var newGrid=me.getTilePoint_(newPoint,zoom,GSize.ZERO);while(zoom>=0&&(oldGrid.x!=newGrid.x||oldGrid.y!=newGrid.y)){var cell=me.getGridCellNoCreate_(oldGrid.x,oldGrid.y,zoom);if(cell){if(me.removeFromArray(cell,marker)){me.getGridCellCreate_(newGrid.x,newGrid.y,zoom).push(marker)}}if(zoom==me.mapZoom_){if(me.isGridPointVisible_(oldGrid)){if(!me.isGridPointVisible_(newGrid)){me.removeOverlay_(marker);changed=true}}else{if(me.isGridPointVisible_(newGrid)){me.addOverlay_(marker);changed=true}}}oldGrid.x=oldGrid.x>>1;oldGrid.y=oldGrid.y>>1;newGrid.x=newGrid.x>>1;newGrid.y=newGrid.y>>1;--zoom}if(changed){me.notifyListeners_()}};MarkerManager.prototype.removeMarker=function(marker){var me=this;var zoom=me.maxZoom_;var changed=false;var point=marker.getPoint();var grid=me.getTilePoint_(point,zoom,GSize.ZERO);while(zoom>=0){var cell=me.getGridCellNoCreate_(grid.x,grid.y,zoom);if(cell){me.removeFromArray(cell,marker)}if(zoom==me.mapZoom_){if(me.isGridPointVisible_(grid)){me.removeOverlay_(marker);changed=true}}grid.x=grid.x>>1;grid.y=grid.y>>1;--zoom}if(changed){me.notifyListeners_()}};MarkerManager.prototype.addMarkers=function(markers,minZoom,opt_maxZoom){var maxZoom=this.getOptMaxZoom_(opt_maxZoom);for(var i=markers.length-1;i>=0;i--){this.addMarkerBatch_(markers[i],minZoom,maxZoom)}this.numMarkers_[minZoom]+=markers.length};MarkerManager.prototype.getOptMaxZoom_=function(opt_maxZoom){return opt_maxZoom!=undefined?opt_maxZoom:this.maxZoom_};MarkerManager.prototype.getMarkerCount=function(zoom){var total=0;for(var z=0;z<=zoom;z++){total+=this.numMarkers_[z]}return total};MarkerManager.prototype.addMarker=function(marker,minZoom,opt_maxZoom){var me=this;var maxZoom=this.getOptMaxZoom_(opt_maxZoom);me.addMarkerBatch_(marker,minZoom,maxZoom);var gridPoint=me.getTilePoint_(marker.getPoint(),me.mapZoom_,GSize.ZERO);if(me.isGridPointVisible_(gridPoint)&&minZoom<=me.shownBounds_.z&&me.shownBounds_.z<=maxZoom){me.addOverlay_(marker);me.notifyListeners_()}this.numMarkers_[minZoom]++};GBounds.prototype.containsPoint=function(point){var outer=this;return(outer.minX<=point.x&&outer.maxX>=point.x&&outer.minY<=point.y&&outer.maxY>=point.y)};MarkerManager.prototype.getGridCellCreate_=function(x,y,z){var grid=this.grid_[z];if(x<0){x+=this.gridWidth_[z]}var gridCol=grid[x];if(!gridCol){gridCol=grid[x]=[];return gridCol[y]=[]}var gridCell=gridCol[y];if(!gridCell){return gridCol[y]=[]}return gridCell};MarkerManager.prototype.getGridCellNoCreate_=function(x,y,z){var grid=this.grid_[z];if(x<0){x+=this.gridWidth_[z]}var gridCol=grid[x];return gridCol?gridCol[y]:undefined};MarkerManager.prototype.getGridBounds_=function(bounds,zoom,swPadding,nePadding){zoom=Math.min(zoom,this.maxZoom_);var bl=bounds.getSouthWest();var tr=bounds.getNorthEast();var sw=this.getTilePoint_(bl,zoom,swPadding);var ne=this.getTilePoint_(tr,zoom,nePadding);var gw=this.gridWidth_[zoom];if(tr.lng()<bl.lng()||ne.x<sw.x){sw.x-=gw}if(ne.x-sw.x+1>=gw){sw.x=0;ne.x=gw-1}var gridBounds=new GBounds([sw,ne]);gridBounds.z=zoom;return gridBounds};MarkerManager.prototype.getMapGridBounds_=function(){var me=this;return me.getGridBounds_(me.map_.getBounds(),me.mapZoom_,me.swPadding_,me.nePadding_)};MarkerManager.prototype.onMapMoveEnd_=function(){var me=this;me.objectSetTimeout_(this,this.updateMarkers_,0)};MarkerManager.prototype.objectSetTimeout_=function(object,command,milliseconds){return window.setTimeout(function(){command.call(object)},milliseconds)};MarkerManager.prototype.refresh=function(){var me=this;if(me.shownMarkers_>0){me.processAll_(me.shownBounds_,me.removeOverlay_)}me.processAll_(me.shownBounds_,me.addOverlay_);me.notifyListeners_()};MarkerManager.prototype.updateMarkers_=function(){var me=this;me.mapZoom_=this.map_.getZoom();var newBounds=me.getMapGridBounds_();if(newBounds.equals(me.shownBounds_)&&newBounds.z==me.shownBounds_.z){return}if(newBounds.z!=me.shownBounds_.z){me.processAll_(me.shownBounds_,me.removeOverlay_);me.processAll_(newBounds,me.addOverlay_)}else{me.rectangleDiff_(me.shownBounds_,newBounds,me.removeCellMarkers_);me.rectangleDiff_(newBounds,me.shownBounds_,me.addCellMarkers_)}me.shownBounds_=newBounds;me.notifyListeners_()};MarkerManager.prototype.notifyListeners_=function(){GEvent.trigger(this,"changed",this.shownBounds_,this.shownMarkers_)};MarkerManager.prototype.processAll_=function(bounds,callback){for(var x=bounds.minX;x<=bounds.maxX;x++){for(var y=bounds.minY;y<=bounds.maxY;y++){this.processCellMarkers_(x,y,bounds.z,callback)}}};MarkerManager.prototype.processCellMarkers_=function(x,y,z,callback){var cell=this.getGridCellNoCreate_(x,y,z);if(cell){for(var i=cell.length-1;i>=0;i--){callback(cell[i])}}};MarkerManager.prototype.removeCellMarkers_=function(x,y,z){this.processCellMarkers_(x,y,z,this.removeOverlay_)};MarkerManager.prototype.addCellMarkers_=function(x,y,z){this.processCellMarkers_(x,y,z,this.addOverlay_)};MarkerManager.prototype.rectangleDiff_=function(bounds1,bounds2,callback){var me=this;me.rectangleDiffCoords(bounds1,bounds2,function(x,y){callback.apply(me,[x,y,bounds1.z])})};MarkerManager.prototype.rectangleDiffCoords=function(bounds1,bounds2,callback){var minX1=bounds1.minX;var minY1=bounds1.minY;var maxX1=bounds1.maxX;var maxY1=bounds1.maxY;var minX2=bounds2.minX;var minY2=bounds2.minY;var maxX2=bounds2.maxX;var maxY2=bounds2.maxY;for(var x=minX1;x<=maxX1;x++){for(var y=minY1;y<=maxY1&&y<minY2;y++){callback(x,y)}for(var y=Math.max(maxY2+1,minY1);y<=maxY1;y++){callback(x,y)}}for(var y=Math.max(minY1,minY2);y<=Math.min(maxY1,maxY2);y++){for(var x=Math.min(maxX1+1,minX2)-1;x>=minX1;x--){callback(x,y)}for(var x=Math.max(minX1,maxX2+1);x<=maxX1;x++){callback(x,y)}}};MarkerManager.prototype.removeFromArray=function(array,value,opt_notype){var shift=0;for(var i=0;i<array.length;++i){if(array[i]===value||(opt_notype&&array[i]==value)){array.splice(i--,1);shift++}}return shift};/**
 * @author Nivaria Innova Team
 */

var ncmGMap = {
	version: "1.1.0",
	
	createMap: function(object,centerField,options) {
		var initMapType = function() {
	    	if(!object.map) return;
	        switch(object.simplefields["MAP_VIEW"]) {
	          case "G_NORMAL_MAP":
	              object.map.setMapType(G_NORMAL_MAP);
	              break;
	          case "G_SATELLITE_MAP":
	              object.map.setMapType(G_SATELLITE_MAP);
	              break;
	          case "G_HYBRID_MAP":
	              object.map.setMapType(G_HYBRID_MAP);
	              break; 
	          case "G_PHYSICAL_MAP":
	        	  object.map.setMapType(G_PHYSICAL_MAP);
	        	  break;
	        }      
		};
	
		var initMapControls = function() {
	      	if(!object.map) return;
	        if(!object.simplefields["MAP_CONTROLS"]) return;
	        if(typeof(object.simplefields["MAP_CONTROLS"])=="object") {
	              for(var i=0;i<object.simplefields["MAP_CONTROLS"].length;i+=1) {
	                    initOneMapControl(object.simplefields["MAP_CONTROLS"][i]);
	              }
	        } else {
	              initOneMapControl(object.simplefields["MAP_CONTROLS"]);
	        }
		};
	
		var initOneMapControl = function(controlName) {
	        if(!object.map) return;
	        switch(controlName) {
	              case "GLargeMapControl":
	                    object.map.addControl(new google.maps.LargeMapControl());
	                    break;
	              case "GSmallMapControl":
	                    object.map.addControl(new google.maps.SmallMapControl());
	                    break;
	              case "GSmallZoomControl":
	                    object.map.addControl(new google.maps.SmallZoomControl());
	                    break;
	              case "GScaleControl":
	                    object.map.addControl(new google.maps.ScaleControl());
	                    break;
	              case "GMapTypeControl":
	                    object.map.addControl(new google.maps.MapTypeControl());
	                    break;
	              case "GOverviewMapControl":
	                    object.map.addControl(new google.maps.OverviewMapControl());                  
	                    break;                        
	        }
		};
	
		var initMarkerManager = function() {
			var mgrOptions = { 
				borderPadding: parseInt(object.constructor.getProperty("markerManager_borderPadding")),
				maxZoom: parseInt(object.constructor.getProperty("markerManager_maxZoom")),
				trackMarkers: false
			};
			object.markerMngr = new MarkerManager(object.map,mgrOptions);
		};
	
		var initMapBounds = function(centerPoint,distanceField) {
	        var lat = centerPoint.latRadians();
	        var lng = centerPoint.lngRadians();
			var radius = 6731; /* earth's mean radius in km*/
	        var distance = object.simplefields[distanceField]?object.simplefields[distanceField]:1;
	        var dr = distance / radius;
			var brng = -45 * Math.PI / 180;
			var upperLeftLat = Math.asin(Math.sin(lat) * Math.cos(dr) + Math.cos(lat) * Math.sin(dr) * Math.cos(brng));
			var upperLeftLng = lng + Math.atan2(Math.sin(brng) * Math.sin(dr) * Math.cos(lat), Math.cos(dr) - Math.sin(lat) * Math.sin(upperLeftLat));
			brng = 135 * Math.PI / 180;
			var lowerRightLat = Math.asin(Math.sin(lat) * Math.cos(dr) + Math.cos(lat) * Math.sin(dr) * Math.cos(brng));
			var lowerRightLng = lng + Math.atan2(Math.sin(brng) * Math.sin(dr) * Math.cos(lat), Math.cos(dr) - Math.sin(lat) * Math.sin(lowerRightLat));
			upperLeftLng = (upperLeftLng + Math.PI) % (2 * Math.PI) - Math.PI;
			lowerRightLng = (lowerRightLng + Math.PI) % (2 * Math.PI) - Math.PI;
	        object.bounds["minx"] = upperLeftLng * (180 / Math.PI);
	        object.bounds["maxy"] = upperLeftLat * (180 / Math.PI); 
	        object.bounds["maxx"] = lowerRightLng * (180 / Math.PI);
	        object.bounds["miny"] = lowerRightLat * (180 / Math.PI);
	    };
	
		var initEBubble = function() {
			if(!object.map) return;
			if(object.simplefields["USE_EBUBBLE"]){
				if(window["ebubble"+object.id]) {
					object["ebubble"] = new EBubble(object.map,window["ebubble"+object.id]["bgimage_url"],new google.maps.Size(window["ebubble"+object.id]["bgimage_w"],window["ebubble"+object.id]["bgimage_h"]), new google.maps.Size(window["ebubble"+object.id]["inner_w"],window["ebubble"+object.id]["inner_h"]), new google.maps.Point(window["ebubble"+object.id]["inner_off_x"],window["ebubble"+object.id]["inner_off_y"]), new google.maps.Point(window["ebubble"+object.id]["anchor_x"],window["ebubble"+object.id]["anchor_y"]), true, window["ebubble"+object.id]["img_close"], window["ebubble"+object.id]["img_close_h"]);      
				}
			}
		};
	
		/*Initialize the scale of map*/
	    object.scale = object.simplefields["MAP_SCALE"]?parseInt(object.simplefields["MAP_SCALE"]):13;
		var coord = ncmGMap.getDefaultCoordinates(object,centerField);
		var point = null;
	    /*Creating map object*/
	    if(!ncm.isIE6) {
			$jq(ncm.concat("#map",object.id)).each(function(i){
				object.map = new google.maps.Map2(this);
				point = new google.maps.LatLng(coord[0],coord[1]);
				try {
					object.center = point;
				} catch(mErr){}
				object.map.setCenter(point,object.scale);
				initEBubble();
				google.maps.Event.addListener(object.map,"click",function(overlay,point) {
					if(point==null || typeof(point)=="undefined") return;
					if(object.constructor.inPreview) {
						$jq("#coord_y"+object.id).html(""+point.lat());
						$jq("#coord_x"+object.id).html(""+point.lng());
					}
					if(object["ebubble"]) {
						object["ebubble"].hide();
					}
				});
				initMapType();
				initMapControls();
				initMarkerManager();
			});
	    } else {
	    	point = {lat:coord[0],lng:coord[1],latRadians:function(){return this.lat*Math.PI/180.0;},lngRadians:function(){return this.lng*Math.PI/180.0;}};
	    }	
		if(options && options.setBounds) {
			initMapBounds(point,options.distanceField);
		}
	},
	
	geoCodeAddress: function(object,address) {
		var res = [0,0];
		var jspfile = object.constructor.getProperty("jsp_ncm_gmap");
		if(jspfile=="") jspfile = "/components/helpers/googlemaps/ncmgmap.jsp";
		var params = ncm.concat("action=0&address=",address?address:"","&apikey=",object.constructor.getProperty("google_api_key"),"&country=",object.constructor.getProperty("geocode_base_country"));
		$jq.ajax({
	    	async: false,
	        type: "POST",
	        url: jspfile,
	        data: params,
	        dataType: "json",
	        error: function(request,msg,ex) {
	           ncm.showError(msg,ex,request,object.constructor.inPreview,object.constructor.jsp_utils);
	        },
	        success: function(json) {
				if(json.status) {
					if(json.status==""+G_GEO_SUCCESS) {
						res[0] = parseFloat(json.lat);
						res[1] = parseFloat(json.lng);
					} else {
						var msg = address;
						msg += "\n";
						if(json.status == "" + G_GEO_BAD_REQUEST) {
							msg += object.constructor.getProperty("G_GEO_BAD_REQUEST");
						} else if(json.status == "" + G_GEO_SERVER_ERROR) {
							msg += object.constructor.getProperty("G_GEO_SERVER_ERROR");
						} else if(json.status==""+G_GEO_MISSING_ADDRESS){
							msg += object.constructor.getProperty("G_GEO_MISSING_ADDRESS");
						} else if(json.status==""+G_GEO_UNKNOWN_ADDRESS) {
							msg += object.constructor.getProperty("G_GEO_UNKNOWN_ADDRESS");
						} else if(json.status==""+G_GEO_UNAVAILABLE_ADDRESS) {
							msg += object.constructor.getProperty("G_GEO_UNAVAILABLE_ADDRESS");
						} else if(json.status==""+G_GEO_BAD_KEY) {
							msg += object.constructor.getProperty("G_GEO_BAD_KEY");
						} else if(json.status==""+G_GEO_TOO_MANY_QUERIES) {
							msg += object.constructor.getProperty("G_GEO_TOO_MANY_QUERIES");
						} else {
							msg += object.constructor.getProperty("lang_not_found");
						}
						ncm.showDialog(object.id,msg,true);					
					}
				}
	        }
	    });
		return res;
	}, 

	getMapType: function(object) {
	    if(!object.map) return G_NORMAL_MAP;
	    switch(object.simplefields["MAP_VIEW"]) {
			case "G_NORMAL_MAP":
			    return G_NORMAL_MAP;
			    break;
			case "G_SATELLITE_MAP":
			    return G_SATELLITE_MAP;
			    break;
			case "G_HYBRID_MAP":
			    return G_HYBRID_MAP;
			    break;            
	    }
	},

	showDefaultMap: function(object) {
		if(!object) return;
		var coord = ncmGMap.getDefaultCoordinates(object);
		if(object.map) {
			object.map.setCenter(new google.maps.LatLng(coord[0],coord[1]),object.scale);
			/*Clearing some variables*/
			object.map.clearOverlays();
		} else {
			ncmGMap.drawStaticMap(object);
		}	
		if(object.markerMngr){
			object.markerMngr.clearMarkers();
			object.markerMngr.refresh();
		}	
	},

	getDefaultCoordinates: function(object,centerField) {
		var res = [0,0];
		if(object) {
			res[0] = object.simplefields["MAP_DEFAULT_LATITUDE"]?object.simplefields["MAP_DEFAULT_LATITUDE"]:0;
			res[1] = object.simplefields["MAP_DEFAULT_LONGITUDE"]?object.simplefields["MAP_DEFAULT_LONGITUDE"]:0;
			if(res[0]==0 && res[1]==0) {
				if(!centerField) centerField = "MAP_CENTER";
				var centerFieldVal = object.simplefields[centerField];
				if(!centerFieldVal) centerFieldVal="";
				var pat = new RegExp("\\s*-?\\d+\\.?\\d*\\s*,\\s*-?\\d+\\.?\\d*\\s*");
				if(pat.test(centerFieldVal)) {
					var coords = centerFieldVal.split(/\s*,\s*/);
					res[0] = parseFloat($jq.trim(coords[0]));
					res[1] = parseFloat($jq.trim(coords[1]));
				} else {
					res = ncmGMap.geoCodeAddress(object,centerFieldVal?centerFieldVal:"");				
				}
				if(res[0]==0 && res[1]==0) {
					res = [28.47063,-16.25137];
				}
			} 
		}
		return res;
	},
	
	getDefaultRequestParams: function(object) {
		var params = "";
		if(object) {
			params = ncm.getComponentConstructorParams(object,object.constructor,false);
		}
		return params;
	},
	
	initDirections: function(object) {
		if(!object) return;
		if(!object.map) return;
		$jq(ncm.concat("#directions",object.id)).each(function(i){
			object.directions = new google.maps.Directions(object.map,this);
		});
		if(object.directions==null) {
			object.directions = new google.maps.Directions(object.map);			
		}
		google.maps.Event.addListener(object.directions, "error", function(){
			var msg = "";
			switch(object.directions.getStatus().code) {
				case G_GEO_BAD_REQUEST:
					msg = object.constructor.getProperty("G_GEO_BAD_REQUEST");
					break;
				case G_GEO_SERVER_ERROR:
					msg = object.constructor.getProperty("G_GEO_SERVER_ERROR");
					break;
				case G_GEO_MISSING_ADDRESS:
					msg = object.constructor.getProperty("G_GEO_MISSING_ADDRESS");
					break;
				case G_GEO_UNKNOWN_ADDRESS:
					msg = object.constructor.getProperty("G_GEO_UNKNOWN_ADDRESS");
					break;
				case G_GEO_UNAVAILABLE_ADDRESS:
					msg = object.constructor.getProperty("G_GEO_UNAVAILABLE_ADDRESS");
					break;
				case G_GEO_BAD_KEY:
					msg = object.constructor.getProperty("G_GEO_BAD_KEY");
					break;
				case G_GEO_TOO_MANY_QUERIES:
					msg = object.constructor.getProperty("G_GEO_TOO_MANY_QUERIES");
					break;
				default:
					msg = object.constructor.getProperty("lang_not_found");						
					break; 
			}
			ncm.showDialog(object.id,msg,false);
		});
		google.maps.Event.addListener(object.directions,"load",function(){
			$jq(ncm.concat("#directionstop",object.id)).css("display","block");
		});
	},

	initCustomControls: function(object,arrControls) {
		if(!object) return;
		if(!object.map) return;
		
		var initOneCustomControl = function(arrFields) {
			if(!object.map) return;
			var localFields = new Array();
			for(var i=0;arrFields!=null && i<arrFields.length;i+=1) {
				localFields[arrFields[i].name] = arrFields[i].value;
			}
			var newCtrl = null;
			switch(localFields["CONTROL"]) {
				case "GLocalSearch":
					newCtrl = new google.maps.LocalSearch();
					break;
				default:
					newCtrl = null;
					break;	
			}
			var newCtrlPos = null;
			switch(localFields["POSITION"]){
				case "G_ANCHOR_BOTTOM_RIGHT":
					newCtrlPos = G_ANCHOR_BOTTOM_RIGHT;
					break;
				case "G_ANCHOR_BOTTOM_LEFT":
					newCtrlPos = G_ANCHOR_BOTTOM_LEFT;
					break;
				case "G_ANCHOR_TOP_RIGHT":
					newCtrlPos = G_ANCHOR_TOP_RIGHT;
					break;
				case "G_ANCHOR_TOP_LEFT":
					newCtrlPos = G_ANCHOR_TOP_LEFT;
					break;
			}
			var newCtrlOff = new google.maps.Size(localFields["OFFSET_X"]!=null?localFields["OFFSET_X"]:0,localFields["OFFSET_Y"]!=null?localFields["OFFSET_Y"]:0);
			if(newCtrl!=null && newCtrlPos!=null) {
				object.map.addControl(newCtrl, new google.maps.ControlPosition(newCtrlPos,newCtrlOff));			
			}
		};
		
		for(var i=0;arrControls!=null && i<arrControls.length;i+=1) {
			var oneCtrl = arrControls[i];
			initOneCustomControl(oneCtrl.simplefields);
		}
	},

	initSearcher: function(object) {
		if(!object) return;
		if(ncm.isIE6) return;
		var jspfile = object.constructor.getProperty("jsp_search");
		if(jspfile=="") jspfile= new String("components/mashups/googlemaps/googlemaps-search.jsp");
		var params = ncm.getComponentConstructorParams(object,object.constructor);
		params = ncm.concat(params,"&xsltPath=",object.constructor.getProperty("xsl_search"));
		$jq.ajax({
	    	async: true,
	    	type: "POST",
	    	url: jspfile,
	    	data: params,
	    	dataType: "json",
	    	error: function(request,msg,ex) {
	       		ncm.showError(msg,ex,request,object.constructor.inPreview,object.constructor.jsp_utils);
	    	},
	    	success: function(json) {
				if(json.html) {
					$jq(ncm.concat("#mapsearch",object.id)).html(json.html);
				}
	    	}
		});
	},
	
	initSubcategories: function(object) {
		if(!object) return;
		if(ncm.isIE6) return;
		var jspfile = object.constructor.getProperty("jsp_subcategory");
		if(jspfile=="") jspfile= new String("components/mashups/googlemaps/googlemaps-subcategory.jsp");
		var params = ncm.getComponentConstructorParams(object,object.constructor);
		params = ncm.concat(params,"&xsltPath=",object.constructor.getProperty("xsl_subcategory"));
		$jq.ajax({
	    	async: true,
	    	type: "POST",
	    	url: jspfile,
	    	data: params,
	    	dataType: "json",
	    	error: function(request,msg,ex) {
	       		ncm.showError(msg,ex,request,object.constructor.inPreview,object.constructor.jsp_utils);
	    	},
	    	success: function(json) {
				if(json.html) {
					$jq(ncm.concat("#subcategory",object.id)).html(json.html);
				}
	    	}
		});
	},

	initMapIcon: function(object,mapicon) {
		if(ncm.isIE6) return;
		if(mapicon) {
			object.icon.image = document.location["href"].substr(0,document.location["href"].lastIndexOf("/")+1)+mapicon;
		} else {
			object.icon.image = "";
		}
	},
	
	createMarker: function(object,point,id,item,aFields,tCode) {
		if(!object) return;
		if(ncm.isIE6) return;
		var marker = null;
		var itemIcon = null;
		if (item["icon"]) {
			itemIcon = item["icon"];
		} else if(item["mapicon"]) {
			itemIcon = item["mapicon"];
		}	
		if (itemIcon) {
			/*Initialize icon image*/
	      	var customIcon = new google.maps.Icon();
	      	customIcon.iconSize = new google.maps.Size(parseInt(object.constructor.getProperty("base_icon_width")), parseInt(object.constructor.getProperty("base_icon_height")));
	      	customIcon.shadowSize = new google.maps.Size(parseInt(object.constructor.getProperty("base_shadow_width")), parseInt(object.constructor.getProperty("base_shadow_height")));
	      	customIcon.iconAnchor = new google.maps.Point(parseInt(object.constructor.getProperty("base_anchor_x")), parseInt(object.constructor.getProperty("base_anchor_y")));
	      	customIcon.infoWindowAnchor = new google.maps.Point(parseInt(object.constructor.getProperty("info_window_anchor_x")), parseInt(object.constructor.getProperty("info_window_anchor_y")));
	      	customIcon.infoShadowAnchor = new google.maps.Point(parseInt(object.constructor.getProperty("info_shadow_anchor_x")), parseInt(object.constructor.getProperty("info_shadow_anchor_y")));
	      	customIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
			customIcon.image = document.location["href"].substr(0,document.location["href"].lastIndexOf("/")+1)+itemIcon;
			marker = new google.maps.Marker(point,{icon:customIcon});
		} else if($jq.trim(object.icon.image)!="") {
			marker = new google.maps.Marker(point,{icon:object.icon});
		} else {
			marker = new google.maps.Marker(point);
		}
		marker.value = id;
		google.maps.Event.addListener(marker,"mouseover",function(){
			var myHtml = tCode;
			for(var i=0;i<aFields.length;i+=1){
				var val = item[aFields[i]];
				myHtml = myHtml.replace(new RegExp("\{fields:"+i+"\}","g"),val);
			}
			var moretext = object.simplefields["TITLEDETAIL"];
			if(moretext==null || $jq.trim(moretext)=="") 
				moretext=object.constructor.getProperty("lang_more_info");
			var details = "";
			if (!object.simplefields["NO_MORE_INFO"]) {
				details = ncm.concat("<a href=\"",item.moreinfo_url?item.moreinfo_url:ncm.concat(object.simplefields["DETAILSPAGE"],"?step=3&PROID=",id),"\" title=\"",moretext,"\" >",moretext,"<\/a>");
			}	
			myHtml = myHtml.replace(/\{moreinfo\}/g,details);
			myHtml = myHtml.replace(new RegExp("\{fields:[0-9]+\}","g"),"");
			if(object["ebubble"]) {
				object["ebubble"].openOnMarker(marker,myHtml);			
			} else {
				object.map.openInfoWindowHtml(point,myHtml);	
			}
		});
		if(typeof(object.points)!="undefined") {
			object.points.push(point);	
		}
		object.markersBatch.push(marker);
		return marker;
	},

	createStaticMarker: function(object,point) {
		if(!object) return;
		if(typeof(object.points)!="undefined") {
			object.points.push(point);	
		}
		object.markersBatch.push(point.lat+","+point.lng+",blue");
	},
	
	drawMarkers: function(object) {
		if(!object) return;
		if(!object.map && !ncm.isIE6) return;
		if(!ncm.isIE6) {
			/*Putting all markers in map*/
			object.markerMngr.clearMarkers();
			object.markerMngr.addMarkers(object.markersBatch,parseInt(object.constructor.getProperty("markerManager_minZoom")));
			object.markerMngr.refresh();
			/*Recalculating the center of map after the last marker has added*/	
			if(object.simplefields["RECALC_CENTER"]) {
				var avgpoint = ncmGMap.getAvaragePoint(object);
				var newZoom = object.scale;
				if (object.constructor.getProperty("adjust_zoom") == "1") {
					if (object.bounds) {
						if (!(object.bounds["minx"] == 0 && object.bounds["miny"] == 0 && object.bounds["maxx"] == 0 && object.bounds["maxy"] == 0)) {
							var sw = new google.maps.LatLng(object.bounds["miny"], object.bounds["minx"]);
							var ne = new google.maps.LatLng(object.bounds["maxy"], object.bounds["maxx"]);
							var b = new google.maps.LatLngBounds(sw, ne);
							newZoom = object.map.getBoundsZoomLevel(b);
						}
					}
				}	
				if(avgpoint!=null) object.map.setCenter(avgpoint,newZoom);	
			}
		} else {
			ncmGMap.drawStaticMap(object);
		}	
	},
	
	drawStaticMap: function(object,isPath){
		var mapSrc = ncm.concat("http://maps.google.com/staticmap?size=",object.simplefields["MAP_WIDTH"],"x",object.simplefields["MAP_HEIGHT"],"&maptype=mobile");
		if(!object.markersBatch || object.markersBatch.length===0) {
			var cc = ncmGMap.getDefaultCoordinates(object);
			mapSrc = ncm.concat(mapSrc,"&center=",cc[0],",",cc[1],"&zoom=",object.scale);
		} else {
			if(isPath){
				mapSrc = ncm.concat(mapSrc,"&path=rgba:0xff0000ff,weight:5|");
			} else {	
				mapSrc = ncm.concat(mapSrc,"&markers=");
			}
			mapSrc = ncm.concat(mapSrc,object.markersBatch.join("|"));
		}
		mapSrc = ncm.concat(mapSrc,"&key=",object.constructor.getProperty("google_api_key"),"&sensor=false");
		var img = ncm.concat("<img src=\"",mapSrc,"\" title=\"\" \/>");
		$jq(ncm.concat("#map",object.id)).html(img);
	},
	
	getAvaragePoint: function(object) {
		if(ncm.isIE6) return;
		var point = null;
		if(object && typeof(object.points)!="undefined") {
			if(object.bounds) {
		        object.bounds["minx"] = 0.0;
		        object.bounds["maxy"] = 0.0; 
	    	    object.bounds["maxx"] = 0.0;
	        	object.bounds["miny"] = 0.0;
			}
			if(object.points.length > 0) {
				var sumlat = 0.0, sumlng = 0.0, minlat = 0.0, maxlat = 0.0, minlng = 0.0, maxlng = 0.0;
				$jq.each(object.points, function(arrIndex, value){
					sumlat += this.lat();
					sumlng += this.lng();
					if (arrIndex === 0) {
						minlat = maxlat = this.lat();
						minlng = maxlng = this.lng();
					}
					else {
						minlat = Math.min(minlat, this.lat());
						maxlat = Math.max(maxlat, this.lat());
						minlng = Math.min(minlng, this.lng());
						maxlng = Math.max(maxlng, this.lng());
					}
				});
				if(object.constructor.getProperty("recalc_center_method") == "avg") {
					point = new google.maps.LatLng(sumlat/object.points.length, sumlng/object.points.length);
				} else {
					point = new google.maps.LatLng((minlat+maxlat)/2.0, (minlng+maxlng)/2.0);
				}
				if(point.lat()==0 && point.lng()==0) {
					point = null;
				}
				if(object.constructor.getProperty("adjust_zoom")=="1") {
					if(object.bounds) {
						var pdelta = object.constructor.getProperty("adjust_zoom_delta");
						var delta = 0.05;
						if($jq.trim(pdelta)!=="") {
							delta = parseFloat(pdelta);
						}
						object.bounds["maxy"] = maxlat + delta; 
	    	    		object.bounds["maxx"] = maxlng + delta;
	        			object.bounds["miny"] = minlat - delta;
		        		object.bounds["minx"] = minlng - delta;
					}
				}
			}	
		}
		if(point == null) {
			var coord = ncmGMap.getDefaultCoordinates(object); 
			point = new google.maps.LatLng(coord[0],coord[1]);
		}	
		return point;
	}
}/**
 * @author Nivaria Innova Team
 */

var QueryResultsMap = $jq.createNcmClass({
	fields:{
		id: null,
		simplefields: {},
		requestParams:[],
		map: null,
		scale: 13,
		icon: null,
		markerMngr: null,
		markersBatch: [],
		directions: null,
		points: [],
		triggers: {},               /*Objects that affects me*/
		triggersMap: [],            /*Map for objects that affects me*/
		bounds: []					/*Bounds to adjust zoom when calculate the average point*/
	},
	prototype:{
		initComponent: function(jsonData) {
			/*Initialize request parameters*/
			this.initializeRequestParams();
			/*Initialize icon*/
			if(!QueryResultsMap["baseIcon"]){
				QueryResultsMap["baseIcon"] = ncm.isIE6?{}:new google.maps.Icon();
				QueryResultsMap["baseIcon"]["shadow"] = "http://www.google.com/mapfiles/shadow50.png";
				if(!ncm.isIE6) {
					QueryResultsMap["baseIcon"]["iconSize"] = new GSize(parseInt(QueryResultsMap.getProperty("base_icon_width")), parseInt(QueryResultsMap.getProperty("base_icon_height")));
					QueryResultsMap["baseIcon"]["shadowSize"] = new GSize(parseInt(QueryResultsMap.getProperty("base_shadow_width")), parseInt(QueryResultsMap.getProperty("base_shadow_height")));
					QueryResultsMap["baseIcon"]["iconAnchor"] = new GPoint(parseInt(QueryResultsMap.getProperty("base_anchor_x")), parseInt(QueryResultsMap.getProperty("base_anchor_y")));
					QueryResultsMap["baseIcon"]["infoWindowAnchor"] = new GPoint(parseInt(QueryResultsMap.getProperty("info_window_anchor_x")), parseInt(QueryResultsMap.getProperty("info_window_anchor_y")));
					QueryResultsMap["baseIcon"]["infoShadowAnchor"] = new GPoint(parseInt(QueryResultsMap.getProperty("info_shadow_anchor_x")), parseInt(QueryResultsMap.getProperty("info_shadow_anchor_y")));
				}	
			}	
			this.icon = ncm.isIE6?{}:new google.maps.Icon(QueryResultsMap["baseIcon"]);
			/*Creating map object*/
			ncmGMap.createMap(this);
			if(!this.map && !ncm.isIE6) return;
			ncmGMap.initDirections(this);
			this.initMapMarkers(null,false,jsonData);
			/*Initialize events for pager*/
			if(!this.simplefields["PAGER"]){
				ncm.setPagerEvents(this,this.getWrapperSelector());
			}
			/*Bind custom events*/
			ncm.bindCustomEvent(ncm.customEvents["ncmValueChange"],this.getSelector(),this,"loadData");
		},
		
		initMapMarkers: function(parameters,reload,jsonData) {
			if(!this.map && !ncm.isIE6) return;
			if(parameters && (parameters.indexOf("GMAP_FROM=")!==-1 || parameters.indexOf("GMAP_TO=")!==-1)){
				this.searchDirections(parameters);
				return;
			}
			var Me = this;
			var m_process = function(json) {
				if(json.hasSubcategory && !reload) {
					ncmGMap.initSubcategories(Me);
				}
				if(json.customcontrols && json.customcontrols.length && !reload) {
					ncmGMap.initCustomControls(Me,json.customcontrols);
				}
				/*Initialize icon image*/
				ncmGMap.initMapIcon(Me,json.mapicon);
				/*Clearing some variables*/ 
				if(reload) {
					if(Me.map) Me.map.clearOverlays();
					Me.markersBatch = [];
					Me.points = [];
				}
				/*Creating markers*/
				if (!json.ids) {
					ncm.showDialog(Me.id,QueryResultsMap.getProperty("lang_no_result"),false);
				} else {
					if (json.ids.length === 0) {
						ncm.showDialog(Me.id,QueryResultsMap.getProperty("lang_no_result"),false);
					} else {
						$jq.each(json.ids,function(i,value) {
							var item = json[ncm.concat("item_",value)];
							var lat = 0;
							var lng = 0;
							if (json.geotype == 0) {
								lat = item[json.geofields[0]];
								lng = item[json.geofields[1]];
							} else {
								var address = [];
								$jq.each(json.geofields,function(j,gvalue) {
									if(item[gvalue]) {
										address.push(item[gvalue]);	
									}
								});
								var coord = ncmGMap.geoCodeAddress(Me,address.join(", "));
								lat = coord[0];
								lng = coord[1];
							}
							if (lat != 0 && lng != 0) {
								if(!ncm.isIE6) {
									var point = new google.maps.LatLng(lat, lng);
									ncmGMap.createMarker(Me, point, value, item, json.infofields, json.infotemplate);
								} else {
									var point = {lat:lat,lng:lng};
									ncmGMap.createStaticMarker(Me,point);
								}	
							}
						});
					}	
				}	
				ncmGMap.drawMarkers(Me);	
	    	};
			
			if (jsonData) {
				m_process(jsonData);
			} else {
				var jspfile = ncm.concat("components/mashups/googlemaps/googlemaps-queryresults-",this.id,".jsp");
				var params = ncm.concat($jq.param(ncm.serializeJSONToObject(this["requestParams"])),"&infoTpl=",QueryResultsMap.getProperty("info_window_template"));
				if(parameters) {
					params = ncm.concat(params,"&",parameters);
				}
				$jq.ajax({
					async: true,
					type: "POST",
					url: jspfile,
					data: params,
					dataType: "json",
					error: function(request, msg, ex){
						ncm.showError(msg, ex, request, QueryResultsMap.inPreview, QueryResultsMap.jsp_utils);
					},
					success: function(json){
						m_process(json);
					}
				});
			}	
		},
		
		searchDirections: function(parameters) {
			if(ncm.isIE6) return;
			var objParams = ncm.transformParamsStringToObject(parameters);
			var arrParamsNames = ncm.getParametersNamesFromString(parameters);
			var dir_from = "";
			var dir_to = "";
			$jq.each(arrParamsNames,function(ind,val){
				var paramName = val.replace(/DS[0-9]+\./ig,"");
				if(paramName==="GMAP_FROM"){
					dir_from = objParams[val];
				}
				if(paramName==="GMAP_TO"){
					dir_to = objParams[val];
				}
			});
			if(!dir_from || !dir_to){
				ncm.showDialog(this.id,QueryResultsMap.getProperty("lang_wrong_fromto"),false);
			} else {
				var query = ncm.concat("from: ",dir_from," to: ",dir_to);
				this.directions.load(query,{locale:QueryResultsMap.getProperty("directions_options_locale")});
			}	
		},
		
		getSelector: function() {
			return ncm.concat("#map",this.id);
		},
		 
		getWrapperSelector: function(){
			return ncm.concat("#gmap-wrapper-",this.id);
		},
		 
		loadData: function(parameters){
			this.initMapMarkers(parameters,true);
			if(!this.simplefields["PAGER"]){
				var Me = this;
				var p = ncm.serializeJSONToObject(this["requestParams"]);
				if(parameters){
					$jq.extend(p,ncm.transformParamsStringToObject(parameters));
				}
				$jq.post(ncm.concat("components/mashups/googlemaps/pager_",this.id,".jsp"),p,function(html){
					$jq(ncm.concat("#pager-holder-",Me.id)).html(html);
					ncm.setPagerEvents(Me,Me.getWrapperSelector());
				},"html");
			}
		}
	}
});/**
* Ceva form management class
* @author rmglez Nivaria Innova Team
*/
var NcmCevaForm = $jq.createNcmClass({
      fields: {
	      id : null,
	      simplefields : {},
	      eventsListeners: {},	  /*Events listeners*/
	      eventsListenersAdv: {},	      /*Events listeners of the component*/
	      triggers: {},		  /*Values of triggers*/
	      triggersMap: []	      /*Triggers map*/	      
      },
      
      prototype: {
	      initComponent: function(data) {
		      this.initEvents();
	      },
	      
	      initEvents: function() {
		      ncm.bindCustomEvent(ncm.customEvents["ncmValueChange"],this.getFormSelector(),this,"reload");
	      },
	      actionButton: function(button, btId, validate, buttonPage) {
		      var Me = this;  
                  ncm.exec(window,"showDisabledLayer");          
		      try {
			      updateRTEs();		      
		      }catch(err){}
		      try {			      
			      ComboDouble.update(true);
		      }catch(err){}
		      var frm = $jq(Me.getFormSelector());
		      if (!validate || (validate && frm.valid())) {
			      $jq("#bt" + btId).attr("value", "true");
			      var dialog = $jq('#dialog_' + btId);
			      if (dialog.length > 0) {
				      openDialog('#dialog_' + btId);
			      } else {
				    if (this.simplefields["AJAX_MODE"]) {
                    	      var data = ncm.concat($jq(this.getFormSelector()).serialize(),"&formId=",this.id,"&ajaxMode=1");
                    	      $jq.ajax({
                        	      type: "POST",
                        	      url: buttonPage,
                        	      data: data,
                        	      success: function(json){
						    ncm.exec(window,"hideDisabledLayer");
                            	      ncm.triggerEvent(ncm.customEvents["ncmSuccess"], ["", Me.id]);
						    frm.parents(".floating-roc").hide("slow");
						    $jq("#page-disabling-mask").hide();
						    ncm.showDialog(Me.id,NcmCevaForm.getProperty("lang_success"),false);
                        	      },
                        	      error: function(json){
						    ncm.exec(window,"hideDisabledLayer");
                            	      ncm.triggerEvent(ncm.customEvents["ncmError"], ["", Me.id]);
						    frm.parents(".floating-roc").hide("slow");
						    $jq("#page-disabling-mask").hide();
						    ncm.showDialog(Me.id,NcmCevaForm.getProperty("lang_error"),false);
                        	      }
                    	      });
                	      } else {
		    		  window.onbeforeunload = function() {};
				      frm.submit();
				    }
			      }
			      return false;
		      } else {
			      try {
				      ComboDouble.update(false);
			      } catch (err) {      }
			      $jq(".error:first").focus();
		      }
		      ncm.exec(window,"hideDisabledLayer");
		      return false;
	      },
	      
	      reload: function(params,reload){
		      if (reload) {
			      this.loadData(params);
		      }
	      },
	      loadData: function(params){
		      var Me = this;
		      if(window["showDisabledLayer"]){
			      if($jq.isFunction(window["showDisabledLayer"])){
				      showDisabledLayer();
			      }
		      }
		      $jq.post(ncm.concat("sub_",this.id,".jsp"),params,function(html){
			      $jq(Me.getFormSelector()).replaceWith(html);
			      Me.initEvents();
			      if(window["hideDisabledLayer"]){
				      if($jq.isFunction(window["hideDisabledLayer"])){
					      hideDisabledLayer();
				      }
			      }
		      },"html");
	      },
			
		resetForm: function(){
			var Me = this;
			$jq(Me.getFormSelector() + " select").each(function(i){
				var id = $jq(this).parent().attr("id").replace("combo","");
				$jq(this).find('option:first').attr('selected', 'selected');
				$jq("#list_text_"+id).text( this.options[this.selectedIndex].text);
			});
		},

	      getButtonsSelector: function() {
		      var selector = this.getFormContainerSelector();
		      selector += " div.form-action button.btnSend";
		      return selector;
	      },
	      getFormSelector: function() {
		      var selector = "#FRM"+this.id;
		      return selector;
	      },
	      getFormContainerSelector: function() {
		      var selector="#form-content" + this.id;
		      return selector;
	      }
      }
});
/**
* Combo management class
* @author rmglez, Nivaria Innova Team
*/

var Combo = $jq.createNcmClass({
	fields: {
		id: null,                   
		selectors: null,            /*Combo selectors*/
        simplefields: {},           /*Simple fields*/
		formSelector: String(""),   /*Form selector*/
		eventsListeners: {},        /*Events listeners*/
		eventsListenersAdv: {},		/*Events listeners of the component*/
		triggers: {},               /*Values of triggers*/
		triggersMap: [],            /*Triggers map*/		
		selectedValue: null         /*Stores the selected values before the combo is refreshed*/
	},
	prototype: {
		initComponent: function(data) {			
			this.selectors = data["selectors"];
			for (var i = 0; i < this.selectors.length; i++) {
				this.selectors[i] = this.getSelector(i);
			}
			this.initCombo();
		},
		
		initCombo: function() {
			for (var i = 0; i < this.selectors.length; i++) {
				this.initSelectEvents(this.selectors[i]);
				this.initSearchEvents(this.selectors[i]);
				// listen to refresh requests
				ncm.bindCustomEvent(ncm.customEvents["ncmValueChange"],this.selectors[i],this,"refresh",this.selectors[i]);
			}
		},
		
		initSearchEvents : function(selector) {
			var Me = this;
			var searchButtonSelector = this.getSearchButtonSelector();
			$jq(searchButtonSelector).click(function() { 
				var keyword = $jq(Me.getSearchSelector()).val();
				if(keyword.length >= 3 || keyword.length == 0) {
					Me.refresh(keyword, true, selector, true);
				}else{
					alert("Introduzca al menos 3 letras para poder buscar.");
				}
			});
		},
		
		initSelectEvents : function(selector) {
			var Me = this;
			// initialize event trigger
			$jq(selector).change(function() {
				Me.prepareChangeEvent(selector);
			});  
		},

		initMaskEvents : function() {
			for (var i = 0; i < this.selectors.length; i++) {
				this.prepareChangeEvent(this.selectors[i]);
			}	
		},
		  
		prepareChangeEvent : function(selector) {
			var Me = this;		
			var objId = this.getObjId(selector);
			var param = "dataId=" + this.id;			
			param += "&parentDS="+this.simplefields["DATASOURCE"]+"&DS"+this.simplefields["DATASOURCE"]+".ID=";
			$jq(selector).find("option:selected").each(function() {
				param += $jq(this).val();
				param += "&sourceObj="+objId;			
				ncm.triggerCustomEvent(ncm.customEvents["ncmValueChange"],Me,param);
			});  
		},
	  
		/**
		* Empty the combo
		*/
		emptyMask : function(selector) {
			var combo = $jq(selector);
			this.selectedValue = combo.children("option:selected").val();
			combo.empty();
		},
	  
		/**
		* Fill the from combo with the data parameter
		*/
		fillData : function(selector, data) {
			var combo = $jq(selector);
			combo.html(data);
			var selected = null;
			if (this.selectedValue) {
				selected = combo.children("option[value='"+this.selectedValue+"']");
			}
			if (!selected) {
				selected = combo.children("option")[0];
			}
			if (selected) {
				$jq(selected).attr("selected","selected");
			}
			combo.attr("class", combo.attr("class") );
			this.prepareChangeEvent(selector);      
		},
	  
		/**
		* Refresh the combo filtering the objects with the values stored in params
		*/
		refresh : function(params, reload, selector, isSearch) {
			var objId = this.getObjId(selector);
			var sourceObjId = params.substr(params.indexOf("&sourceObj=") + 11, params.length);
			if (objId == sourceObjId || isSearch) {
				var Me = this;
				if (isSearch)
					params = "keyword=" + params;
				params +="&inPreview=" + Combo.inPreview;
				params +="&language=" + Combo.language;
				params +="&pageUrl=" + Combo.pageUrl;
				params +="&channel=" + Combo.channel;
				params +="&issueId=" + Combo.issueId;
				params +="&DS=" + this.simplefields["DATASOURCE"];
				params +="&maskId=" + this.id;
				this.emptyMask(selector);
				var jspfile = (isSearch==true) ? Combo.getProperty("jsp_search") : Combo.getProperty("jsp_loadrelated");
				$jq.ajax({
					async: true,
					type: "POST",
					url: jspfile,
					data: params,
					dataType: "json",
					error: function(request,msg,ex) {
						ncm.showError(msg,ex,request);
						result = false;
					},
					success: function(json) {
						if(json!=null) {
							var html = '<option value="">'+Combo.getProperty("text_select")+'</option>';
							for (var i = 0; i < json.length; i++) {
								html += '<option value="'+json[i].id+'">'+json[i].name+'</option>';
							}
							Me.fillData(selector, html);
						}
					}
				});
			}
		},
	  
		getSelector: function(i) {
			var selector = "[name='" + this.selectors[i] + "']";
			return selector;
		},
		
		getObjId: function(selector) {
			var name = selector.substring(7, selector.length - 2);
			var fldInfo = name.split(":");
			if (fldInfo.length == 3) {
				return fldInfo[2];
			}
			return -1; 
		},
		
		getSearchSelector : function() {
			var selector = "#search_" + this.id;
			return selector;
		},
		
		getSearchButtonSelector : function() {
			var selector = "[name='btsearch_" + this.id + "']";
			return selector;
		}

	}
});

var jso258018 = {"simplefields":[{"name":"DATASOURCE","value":"62"},{"name":"MAP_CENTER","value":"28.200347149003644, -16.57516473904252"},{"name":"MAP_WIDTH","value":320},{"name":"MAP_HEIGHT","value":592},{"name":"MAP_SCALE","value":"9"},{"name":"MAP_VIEW","value":"G_NORMAL_MAP"},{"name":"MAP_CONTROLS","value":["GSmallZoomControl","GMapTypeControl"]},{"name":"DETAILSPAGE"},{"name":"TITLEDETAIL"},{"name":"RECALC_CENTER","value":false},{"name":"NO_MORE_INFO","value":true},{"name":"PAGER","value":false}],"datatype":"GOOGLE_MAPS_QUERYRESULTS","properties":[{"name":"google_api_key","value":"ABQIAAAAiZTgSvhtKNd774Z7omaprhQLN1F5CS2k4nG58HVoejjHXQjDzBQoKlDMAfyi-WUgZ5RSAF10f-Vy_g "},{"name":"xsl_search","value":"googlemaps-search.xsl"},{"name":"jsp_search","value":"components/mashups/googlemaps/googlemaps-search.jsp"},{"name":"js_ncm_gmap","value":"components/helpers/googlemaps/ncmgmap.js"},{"name":"lang_more_info","value":"Más info"},{"name":"lang_no_result","value":"No se han encontrado los resultados"},{"name":"lang_not_found","value":"no ha sido encontrado"},{"name":"lang_wrong_fromto","value":"Tiene que introducir las dos direcciones para buscar la ruta"},{"name":"base_icon_width","value":"27"},{"name":"base_icon_height","value":"46"},{"name":"base_shadow_width","value":"0"},{"name":"base_shadow_height","value":"0"},{"name":"base_anchor_x","value":"20"},{"name":"base_anchor_y","value":"35"},{"name":"info_window_anchor_x","value":"9"},{"name":"info_window_anchor_y","value":"2"},{"name":"info_shadow_anchor_x","value":"180"},{"name":"info_shadow_anchor_y","value":"290"},{"name":"info_window_template","value":"skin_map_info"},{"name":"recalc_center_method","value":"center"},{"name":"directions_options_locale","value":"es_ES"},{"name":"G_GEO_BAD_REQUEST","value":"Su request de dirección no puede ser parseado correctamente"},{"name":"G_GEO_SERVER_ERROR","value":"Error del servidor. No puedo parsear el request de dirección."},{"name":"G_GEO_MISSING_ADDRESS","value":"Falta la dirección para request."},{"name":"G_GEO_UNAVAILABLE_ADDRESS","value":"Geocode para esta dirección no puede ser resuelto por rasones legales."},{"name":"G_GEO_BAD_KEY","value":"El clave es inválido para este sitio."},{"name":"G_GEO_TOO_MANY_QUERIES","value":"Ha sobrepasado el limite de requests para periodo de 24 horas"},{"name":"G_GEO_UNKNOWN_ADDRESS","value":"El punto geográfico correspondiente con esta dirección no ha sido encontrado."},{"name":"geocode_base_country","value":"ES"},{"name":"markerManager_borderPadding","value":"100"},{"name":"markerManager_maxZoom","value":"19"},{"name":"markerManager_minZoom","value":"7"}],"dataid":258018}; 
       
    jso258018["RELATIONS"] = [];
$jq(function(){  
	  $jq("div#map258018").css({  
	      width: "320px",  
	      height: "592px"  
	  });     
    });
if(window["QueryResultsMap"]){   
    if(QueryResultsMap["instances"]==null){   
	  QueryResultsMap.initProperties($jq.extend({     
	      datatype: "GOOGLE_MAPS_QUERYRESULTS",     
	      json: jso258018     
	  },page_options));     
    }   
}
var jso258035 = {"simplefields":[{"name":"DATASOURCE","value":"62"},{"name":"MAP_CENTER","value":"27.965294915211132, -15.575637789443135"},{"name":"MAP_WIDTH","value":320},{"name":"MAP_HEIGHT","value":267},{"name":"MAP_SCALE","value":"9"},{"name":"MAP_VIEW","value":"G_NORMAL_MAP"},{"name":"MAP_CONTROLS","value":["GSmallZoomControl"]},{"name":"DETAILSPAGE"},{"name":"TITLEDETAIL"},{"name":"RECALC_CENTER","value":false},{"name":"NO_MORE_INFO","value":true},{"name":"PAGER","value":false}],"datatype":"GOOGLE_MAPS_QUERYRESULTS","properties":[{"name":"google_api_key","value":"ABQIAAAAiZTgSvhtKNd774Z7omaprhQLN1F5CS2k4nG58HVoejjHXQjDzBQoKlDMAfyi-WUgZ5RSAF10f-Vy_g "},{"name":"xsl_search","value":"googlemaps-search.xsl"},{"name":"jsp_search","value":"components/mashups/googlemaps/googlemaps-search.jsp"},{"name":"js_ncm_gmap","value":"components/helpers/googlemaps/ncmgmap.js"},{"name":"lang_more_info","value":"Más info"},{"name":"lang_no_result","value":"No se han encontrado los resultados"},{"name":"lang_not_found","value":"no ha sido encontrado"},{"name":"lang_wrong_fromto","value":"Tiene que introducir las dos direcciones para buscar la ruta"},{"name":"base_icon_width","value":"27"},{"name":"base_icon_height","value":"46"},{"name":"base_shadow_width","value":"0"},{"name":"base_shadow_height","value":"0"},{"name":"base_anchor_x","value":"20"},{"name":"base_anchor_y","value":"35"},{"name":"info_window_anchor_x","value":"9"},{"name":"info_window_anchor_y","value":"2"},{"name":"info_shadow_anchor_x","value":"180"},{"name":"info_shadow_anchor_y","value":"290"},{"name":"info_window_template","value":"skin_map_info"},{"name":"recalc_center_method","value":"center"},{"name":"directions_options_locale","value":"es_ES"},{"name":"G_GEO_BAD_REQUEST","value":"Su request de dirección no puede ser parseado correctamente"},{"name":"G_GEO_SERVER_ERROR","value":"Error del servidor. No puedo parsear el request de dirección."},{"name":"G_GEO_MISSING_ADDRESS","value":"Falta la dirección para request."},{"name":"G_GEO_UNAVAILABLE_ADDRESS","value":"Geocode para esta dirección no puede ser resuelto por rasones legales."},{"name":"G_GEO_BAD_KEY","value":"El clave es inválido para este sitio."},{"name":"G_GEO_TOO_MANY_QUERIES","value":"Ha sobrepasado el limite de requests para periodo de 24 horas"},{"name":"G_GEO_UNKNOWN_ADDRESS","value":"El punto geográfico correspondiente con esta dirección no ha sido encontrado."},{"name":"geocode_base_country","value":"ES"},{"name":"markerManager_borderPadding","value":"100"},{"name":"markerManager_maxZoom","value":"19"},{"name":"markerManager_minZoom","value":"7"}],"dataid":258035}; 
       
    jso258035["RELATIONS"] = [];
$jq(function(){  
	  $jq("div#map258035").css({  
	      width: "320px",  
	      height: "267px"  
	  });     
    });
var jso258050 = {"simplefields":[{"name":"DATASOURCE","value":"62"},{"name":"MAP_CENTER","value":"28.459033019728043, -14.10873407498002"},{"name":"MAP_WIDTH","value":320},{"name":"MAP_HEIGHT","value":318},{"name":"MAP_SCALE","value":"9"},{"name":"MAP_VIEW","value":"G_NORMAL_MAP"},{"name":"MAP_CONTROLS","value":["GSmallZoomControl"]},{"name":"DETAILSPAGE"},{"name":"TITLEDETAIL"},{"name":"RECALC_CENTER","value":false},{"name":"NO_MORE_INFO","value":true},{"name":"PAGER","value":false}],"datatype":"GOOGLE_MAPS_QUERYRESULTS","properties":[{"name":"google_api_key","value":"ABQIAAAAiZTgSvhtKNd774Z7omaprhQLN1F5CS2k4nG58HVoejjHXQjDzBQoKlDMAfyi-WUgZ5RSAF10f-Vy_g "},{"name":"xsl_search","value":"googlemaps-search.xsl"},{"name":"jsp_search","value":"components/mashups/googlemaps/googlemaps-search.jsp"},{"name":"js_ncm_gmap","value":"components/helpers/googlemaps/ncmgmap.js"},{"name":"lang_more_info","value":"Más info"},{"name":"lang_no_result","value":"No se han encontrado los resultados"},{"name":"lang_not_found","value":"no ha sido encontrado"},{"name":"lang_wrong_fromto","value":"Tiene que introducir las dos direcciones para buscar la ruta"},{"name":"base_icon_width","value":"27"},{"name":"base_icon_height","value":"46"},{"name":"base_shadow_width","value":"0"},{"name":"base_shadow_height","value":"0"},{"name":"base_anchor_x","value":"20"},{"name":"base_anchor_y","value":"35"},{"name":"info_window_anchor_x","value":"9"},{"name":"info_window_anchor_y","value":"2"},{"name":"info_shadow_anchor_x","value":"180"},{"name":"info_shadow_anchor_y","value":"290"},{"name":"info_window_template","value":"skin_map_info"},{"name":"recalc_center_method","value":"center"},{"name":"directions_options_locale","value":"es_ES"},{"name":"G_GEO_BAD_REQUEST","value":"Su request de dirección no puede ser parseado correctamente"},{"name":"G_GEO_SERVER_ERROR","value":"Error del servidor. No puedo parsear el request de dirección."},{"name":"G_GEO_MISSING_ADDRESS","value":"Falta la dirección para request."},{"name":"G_GEO_UNAVAILABLE_ADDRESS","value":"Geocode para esta dirección no puede ser resuelto por rasones legales."},{"name":"G_GEO_BAD_KEY","value":"El clave es inválido para este sitio."},{"name":"G_GEO_TOO_MANY_QUERIES","value":"Ha sobrepasado el limite de requests para periodo de 24 horas"},{"name":"G_GEO_UNKNOWN_ADDRESS","value":"El punto geográfico correspondiente con esta dirección no ha sido encontrado."},{"name":"geocode_base_country","value":"ES"},{"name":"markerManager_borderPadding","value":"100"},{"name":"markerManager_maxZoom","value":"19"},{"name":"markerManager_minZoom","value":"7"}],"dataid":258050}; 
       
    jso258050["RELATIONS"] = [];
$jq(function(){  
	  $jq("div#map258050").css({  
	      width: "320px",  
	      height: "318px"  
	  });     
    });
var jso273189 = {"simplefields":[{"name":"SITE","value":"www.archiauto.com"}],"datatype":"GOOGLE_SITE_SEARCH","dataid":273189}; 
       
    jso273189["RELATIONS"] = [];   
       
	     
		   
		      
			  try {  
				var jso273195 = {"simplefields":[]};  
				var jso_cf = [];  
				  
				jso273195["complexfields"] = jso_cf;  
				jso273189["RELATIONS"].push(jso273195);  
			  } catch(err) {alert(err);}  
			  if(!ncm.customEventsTriggers["273191"]){   
				ncm.customEventsTriggers["273191"] = [];   
			  }   
			  ncm.customEventsTriggers["273191"].push(273189);
var googleSiteSearchInitialized = false;  
    var searchControl = null;   
    function cseLoaded() {     
	  searchControl = new google.search.SearchControl();   
	  var siteSearch = new google.search.WebSearch();   
	  siteSearch.setSiteRestriction("www.archiauto.com");   
	  var options = new google.search.SearcherOptions();   
	  options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);   
	  searchControl.addSearcher(siteSearch,options);   
	  var drawOptions = new google.search.DrawOptions();   
	  drawOptions.setDrawMode( google.search.SearchControl.DRAW_MODE_LINEAR );  
	  var cse_helper = $jq(ncm.concat("<","div id='cse_helper'",">","<","\/div",">"));  
	  drawOptions.setSearchFormRoot(cse_helper[0]);  
	  searchControl.draw(document.getElementById("gsearch-results"),drawOptions);   
	  searchControl.execute(document.getElementById('fake-gsc-input').value);   
	  googleSiteSearchInitialized = true;   
    }
function hidePopup( rocid ){
        if ( $jq(rocid).data("blocked")==undefined || ! $jq(rocid).data("blocked") ){
                $jq( rocid ).hide("slow");
	        $jq("#page-disabling-mask").hide();
        }
}
function placePopup( selector, e ){
  /*if ( ( e.clientX + $jq(selector).width() ) > ( window.innerWidth - 100 ) ){*/
      $jq(selector).css("left", e.clientX-$jq(selector).width()-60+"px");
  /*} else {
      $jq(selector).css("left", e.clientX+10+"px");
  }*/
  /*$jq(selector).css("top", e.clientY+10+"px");*/
  $jq(selector).css("top", e.clientY-$jq(selector).height()-8+"px");
}
var jso56315 = {"properties":[{"name":"css_panel","value":"lib/jquery-login-panel/css/loginpanel.css"},{"name":"js_panel","value":"lib/jquery-login-panel/js/loginpanel.js"},{"name":"js_png_fix","value":"lib/jquery-login-panel/js/pngfix/supersleight-min.js"},{"name":"jsp_panel","value":"lib/jquery-login-panel/jsp/loginpanel.jsp"},{"name":"lang_text_default","value":"Bienvenido visitante!"},{"name":"lang_login_register"},{"name":"lang_close","value":"Cerrar"},{"name":"lang_close_session","value":"Cerrar sesión"},{"name":"lang_login_title","value":"Entrada de Usuario"},{"name":"lang_username","value":"Usuario"},{"name":"lang_password","value":"Contraseña"},{"name":"lang_remember","value":"Recordarme"},{"name":"lang_lost_password","value":"¿Olvidaste su contraseña?"},{"name":"lang_login","value":"Entrar"},{"name":"lang_username_empty","value":"Tiene que introducor el nombre de usuario"},{"name":"lang_password_empty","value":"Tiene que introducir su contraseña"},{"name":"lang_not_active","value":"Su cuenta de usuario no está activada"},{"name":"lang_not_found","value":"Usuario con este nombre o contraseña no existe"},{"name":"lang_welcome","value":"Bienvenido"},{"name":"lang_error_close_session","value":"No puedo cerrar la sesión de usuario"},{"name":"lang_forgot_title","value":"Olvidé mi contraseña"},{"name":"lang_mail","value":"Email"},{"name":"lang_send","value":"Enviar"},{"name":"lang_return","value":"Volver"},{"name":"lang_project_title","value":"BaseProject"},{"name":"lang_not_send","value":"No puedo enviar el correo con su contraseña nueva"},{"name":"lang_send_ok","value":"Hemos enviado el correo con su nueva contraseña a su email"},{"name":"lang_mail_no_user","value":"Usuario con este email no ha sido encontrado"}]};  
    $jq.extend(jso56315,{"simplefields":[{"name":"NAME","value":"Panel de Login"},{"name":"DATASOURCE1","value":"82"},{"name":"DATASOURCE2","value":"69"},{"name":"DATASOURCE3"},{"name":"EMAIL_TITLE"},{"name":"EMAIL_SUBJECT"},{"name":"EMAIL_TEXT"}]});  
      
    jso56315["RELATIONS"] = [];
$jq(function(){  
	      var options = {   
    datatype: "LOGIN_PANEL",   
    language: "ES",   
    jsp_utils: "components/components-utils.jsp",   
    pageUrl: "direcciones_886.jsp",   
    channel: "DEFAULT",   
    inPreview: false,   
    issueId: 3,  
    skin: "func_include_css",  
    json: jso56315   
};   
if(window["NcmLoginPanel"]){   
    NcmLoginPanel.initProperties(options);   
}  
	  });
function hidePopup( rocid ){
        if ( $jq(rocid).data("blocked")==undefined || ! $jq(rocid).data("blocked") ){
                $jq( rocid ).hide("slow");
	        $jq("#page-disabling-mask").hide();
        }
}
function placePopup( selector, e ){
  /*if ( ( e.clientX + $jq(selector).width() ) > ( window.innerWidth - 100 ) ){*/
      $jq(selector).css("left", e.clientX-$jq(selector).width()-60+"px");
  /*} else {
      $jq(selector).css("left", e.clientX+10+"px");
  }*/
  /*$jq(selector).css("top", e.clientY+10+"px");*/
  $jq(selector).css("top", e.clientY-$jq(selector).height()-8+"px");
}
var jso167823 = {"properties":[{"name":"css_default","value":""},{"name":"js_default","value":"components/ceva/ncmcevaform.js"},{"name":"js_validation","value":"lib/jquery-validate/jquery.validate.js"},{"name":"js_additional_methods","value":"lib/jquery-validate/additional-methods.js"},{"name":"js_common_validators","value":"components/ceva/validation/validators.js"},{"name":"lang_required_field","value":"Campo obligatorio"},{"name":"lang_unload_message","value":"Los cambios no se guardarán"},{"name":"lang_success","value":"Gracias por rellenar este formulario.  Nos pondremos en contacto con usted lo antes posible para ofrecerle la prueba de conducción."},{"name":"lang_error","value":"Lo sentimos. En este momento no podemos enviar su pedido. Intentalo más tarde."}]};  
    $jq.extend(jso167823,{"simplefields":[{"name":"NAME","value":"Formulario de cita previa"},{"name":"PARENT_DATASOURCE"},{"name":"DATASOURCE","value":"83"},{"name":"HIDETITLE","value":true},{"name":"READONLY","value":false},{"name":"INPREVIEW","value":false},{"name":"UNLOAD_MESSAGE","value":false},{"name":"AJAX_MODE","value":false}]});  
      
    jso167823["RELATIONS"] = [];
$jq(function(){   
     
 
 
 
var options = {     
    datatype: "FI_FORM",     
    language: "ES",     
    jsp_utils: "components/components-utils.jsp",     
    pageUrl: "direcciones_886.jsp",     
    channel: "DEFAULT",     
    inPreview: false,     
    issueId: 3,     
    skin: "FUNC_JS_INIT_PROPERTIES",   
    pageId: 886,   
    json: jso167823     
};     
if(window["NcmCevaForm"]){   
    if(NcmCevaForm["instances"]==null){  
	  NcmCevaForm.initProperties(options);     
    }  
}   
});
var jso186664 = {"properties":[{"name":"text_select","value":"Todos"},{"name":"default","value":"CAT,ITEM,LIST"},{"name":"default_style","value":"m"},{"name":"default_size","value":"8"},{"name":"field_separator","value":"--"},{"name":"js_default","value":"components/ceva/mask/combo/combo.js"},{"name":"jsp_loadrelated","value":"components/ceva/mask/loadrelated.jsp"},{"name":"jsp_search","value":"components/ceva/mask/loadsearch.jsp"},{"name":"search_name","value":"Buscar"}]};  
    $jq.extend(jso186664,{"simplefields":[{"name":"NAME","value":"Combo"},{"name":"PARENT_DATASOURCE"},{"name":"DATASOURCE"},{"name":"STYLE","value":"l"},{"name":"HIDE_INITIAL_DATA","value":false}]});  
      
    jso186664["RELATIONS"] = [];
var jsoBatch186664 = {selectors: comboSelectors["186664"]};
$jq(function(){   
     
 
 
 
var options = {     
    datatype: "MASK_COMBO",     
    language: "ES",     
    jsp_utils: "components/components-utils.jsp",     
    pageUrl: "direcciones_886.jsp",     
    channel: "DEFAULT",     
    inPreview: false,     
    issueId: 3,     
    skin: "FUNC_JS_INIT_PROPERTIES",   
    pageId: 886,   
    json: jso186664     
};     
if(window["Combo"]){   
    if(Combo["instances"]==null){  
	  Combo.initProperties(options);     
    }  
}   
});
var jso186706 = {"properties":[{"name":"text_select","value":"Todos"},{"name":"default","value":"CAT,ITEM,LIST"},{"name":"default_style","value":"m"},{"name":"default_size","value":"8"},{"name":"field_separator","value":"--"},{"name":"js_default","value":"components/ceva/mask/combo/combo.js"},{"name":"jsp_loadrelated","value":"components/ceva/mask/loadrelated.jsp"},{"name":"jsp_search","value":"components/ceva/mask/loadsearch.jsp"},{"name":"search_name","value":"Buscar"}]};  
    $jq.extend(jso186706,{"simplefields":[{"name":"NAME","value":"Combo"},{"name":"PARENT_DATASOURCE"},{"name":"DATASOURCE"},{"name":"STYLE","value":"l"},{"name":"HIDE_INITIAL_DATA","value":false}]});  
      
    jso186706["RELATIONS"] = [];
var jsoBatch186706 = {selectors: comboSelectors["186706"]};
var jso174250 = {"properties":[{"name":"text_select","value":"Todos"},{"name":"default","value":"CAT,ITEM,LIST"},{"name":"default_style","value":"m"},{"name":"default_size","value":"8"},{"name":"field_separator","value":"--"},{"name":"js_default","value":"components/ceva/mask/combo/combo.js"},{"name":"jsp_loadrelated","value":"components/ceva/mask/loadrelated.jsp"},{"name":"jsp_search","value":"components/ceva/mask/loadsearch.jsp"},{"name":"search_name","value":"Buscar"}]};  
    $jq.extend(jso174250,{"simplefields":[{"name":"NAME","value":"Combo"},{"name":"PARENT_DATASOURCE"},{"name":"DATASOURCE","value":"62"},{"name":"STYLE","value":"l"},{"name":"HIDE_INITIAL_DATA","value":false}]});  
      
    jso174250["RELATIONS"] = [];
var jsoBatch174250 = {selectors: comboSelectors["174250"]};
var jso174253 = {"properties":[{"name":"text_select","value":"Todos"},{"name":"default","value":"CAT,ITEM,LIST"},{"name":"default_style","value":"m"},{"name":"default_size","value":"8"},{"name":"field_separator","value":"--"},{"name":"js_default","value":"components/ceva/mask/combo/combo.js"},{"name":"jsp_loadrelated","value":"components/ceva/mask/loadrelated.jsp"},{"name":"jsp_search","value":"components/ceva/mask/loadsearch.jsp"},{"name":"search_name","value":"Buscar"}]};  
    $jq.extend(jso174253,{"simplefields":[{"name":"NAME","value":"Combo"},{"name":"PARENT_DATASOURCE"},{"name":"DATASOURCE","value":"158"},{"name":"STYLE","value":"l"},{"name":"HIDE_INITIAL_DATA","value":false}]});  
      
    jso174253["RELATIONS"] = [];
var jsoBatch174253 = {selectors: comboSelectors["174253"]};
$jq(function(){  
	      $jq(".title-bar").click(function(event) {  
		    var block = $jq(this).parent().next().next();  
		    if (block.attr("class") != "noclosed") {  
			  var blockClass;  
			  if (block.attr("class") == "block-closable")  
			      blockClass = "block-closed";  
			  else  
			      blockClass = "block-closable";  
			  block.attr("class", blockClass);  
			  return false;  
		    }  
	      });  
	  });
$jq(function(){ 
	      $jq("div.illustrated-text a[href^=http://]").attr("target","_blank"); 
	  });
$jq(function(){    
      
    if(window["QueryResultsMap"]) {    
        try {QueryResultsMap.register(258018,jso258018,resJSON258018);} catch(mErr) {}    
    }  
        
});
$jq(function(){    
      
    if(window["QueryResultsMap"]) {    
        try {QueryResultsMap.register(258035,jso258035,resJSON258035);} catch(mErr) {}    
    }  
        
});
$jq(function(){    
      
    if(window["QueryResultsMap"]) {    
        try {QueryResultsMap.register(258050,jso258050,resJSON258050);} catch(mErr) {}    
    }  
        
});
$jq(function(){ 
	  $jq("#main-menu-item-886").attr("class", "selected");

	  var divPopup=document.getElementById('roc344222');
	  if(divPopup) {
    	 $jq("#page-disabling-mask").show();   
           centerDiv( "#roc344222",714,261 );
           $jq("#roc344222").show();
	  }
    });
$jq(function(){   
	  $jq("div#cse form").submit(function(){   
	      if(window["google"] && window["google"]["search"]){   
		    if(!googleSiteSearchInitialized){   
			  cseLoaded();   
		    } else {  
			  searchControl.execute(document.getElementById('fake-gsc-input').value);  
		    }  
	      } else {   
		    google.load("search","1",{"callback":cseLoaded});   
	      }   
	      ncm.triggerEvent(ncm.customEvents["ncmValueChange"],["",273189]);  
	      return false;   
	  });   
	  $jq("div#cse input#fake-gsc-input").focus(function () {   
	      $jq(this).val("");   
	  });   
    });
$jq(function(){ 
	  $jq("div.form-search input.text-search").focus(function () { 
	      $jq("div.form-search input.text-search").val(""); 
	  }); 
    });
$jq(function(){  
		$jq("#roc273191 .floating-roc-close").click( function(e){  
			$jq(this).closest(".floating-roc").hide("slow"); 

			$jq("#page-disabling-mask").hide();  
		});
                ncm.bindCustomEventForSelector(ncm.customEvents["ncmValueChange"], "#roc273191", 273191, function(e){
			$jq("#page-disabling-mask").show();
			
		        $jq("#roc273191").show("slow"); 
		}); 
                ncm.bindCustomEventForSelector(ncm.customEvents["ncmSuccess"], "#roc273191", 273191, function(e){
		    $jq("#roc273191").hide("slow"); 
		}); 
                ncm.bindCustomEventForSelector(ncm.customEvents["ncmError"], "#roc273191", 273191, function(e){
		    $jq("#roc273191").hide("slow"); 
		}); 
	});
$jq(function(){ 
	      try { NcmLoginPanel.register(56315,jso56315); } catch(mErr){}  
	  });
$jq(function(){  
		$jq("#roc174622 .floating-roc-close").click( function(e){  
			$jq(this).closest(".floating-roc").hide("slow"); 

			$jq("#page-disabling-mask").hide();  
		});
                ncm.bindCustomEventForSelector(ncm.customEvents["ncmValueChange"], "#roc174622", 174622, function(e){
			$jq("#page-disabling-mask").show();
			centerDiv( "#roc174622",500,500);
		        $jq("#roc174622").show("slow"); 
		}); 
                ncm.bindCustomEventForSelector(ncm.customEvents["ncmSuccess"], "#roc174622", 174622, function(e){
		    $jq("#roc174622").hide("slow"); 
		}); 
                ncm.bindCustomEventForSelector(ncm.customEvents["ncmError"], "#roc174622", 174622, function(e){
		    $jq("#roc174622").hide("slow"); 
		}); 
	});
$jq(function(){   
     
 
    if(window["NcmCevaForm"]) {   
        try {NcmCevaForm.register(167823,jso167823);} catch(mErr) {}   
    } 
   
});
$jq(function(){ 
    $jq(".skinned_list select").each(function(ind) {
	 $jq(this).closest(".skinned_list").children(".skinned_list_text").text( this.options[this.selectedIndex].text ); 
    }) .change( function(e){
	 $jq(this).closest(".skinned_list").children(".skinned_list_text").text( this.options[this.selectedIndex].text ); 
  }); 
});
$jq(function(){   
     
 
    if (!comboReadOnly["186664"]) { 
 
    if(window["Combo"]) {   
        try {Combo.register(186664,jso186664,jsoBatch186664);} catch(mErr) {}   
    } 
 
    } 
   
});
$jq(function(){   
     
 
    if (!comboReadOnly["186706"]) { 
 
    if(window["Combo"]) {   
        try {Combo.register(186706,jso186706,jsoBatch186706);} catch(mErr) {}   
    } 
 
    } 
   
});
$jq(function(){   
     
 
    if (!comboReadOnly["174250"]) { 
 
    if(window["Combo"]) {   
        try {Combo.register(174250,jso174250,jsoBatch174250);} catch(mErr) {}   
    } 
 
    } 
   
});
$jq(function(){   
     
 
    if (!comboReadOnly["174253"]) { 
 
    if(window["Combo"]) {   
        try {Combo.register(174253,jso174253,jsoBatch174253);} catch(mErr) {}   
    } 
 
    } 
   
});
try {  
	      $jq(function() {    
  	        var c = Combo.getRegistered(186664);  
  	        if (c!=null) c.initMaskEvents();    
	      });    
        } catch(mErr) {}
try {  
	      $jq(function() {    
  	        var c = Combo.getRegistered(186706);  
  	        if (c!=null) c.initMaskEvents();    
	      });    
        } catch(mErr) {}
try {  
	      $jq(function() {    
  	        var c = Combo.getRegistered(174250);  
  	        if (c!=null) c.initMaskEvents();    
	      });    
        } catch(mErr) {}
try {  
	      $jq(function() {    
  	        var c = Combo.getRegistered(174253);  
  	        if (c!=null) c.initMaskEvents();    
	      });    
        } catch(mErr) {}

