﻿var map = null;
var gdir = null;
var geocoder = null;
var htmlResultHolder = '';
var htmlResults = '';
var arrHtml = [];
var arrHtmlTo = [];
var arrHtmlFrom = [];
var arrRestaurantMarker = [];
var i = 0;
var kingMarker;
var lastMarkerLocation;
var overlayInstance = null;
var streetPano = new GStreetviewPanorama();
var zoomControl = new GLargeMapControl3D();
var zoomControlPosition = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(35, 50));
var typeControl = new GMapTypeControl();
var typeControlPosition = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(40, 7));
var typeControlPositionAdjusted = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(57, 7));
var restaurantIcon = new GIcon(G_DEFAULT_ICON);

var CONTENT = BK.local.RESTAURANT_LOCATOR;

restaurantIcon.image = '/images/locator/marker.png';
restaurantIcon.shadow = '/images/locator/transparent.gif';
restaurantIcon.iconSize = new GSize(60, 62);
restaurantIcon.imageMap = [0,0, 60,0, 60,62, 0,62];
restaurantIcon.infoWindowAnchor = new GPoint(23, 8);

function setDefaultLocation() {
	$.ajax({
		url: WebServiceUrl + '?format=jsonp',
		type: 'GET',
		async: 'false',
		dataType: 'jsonp',
		jsonp: 'jsoncallback',
		success: function(data) {
			$('#location').val(data.City + ' ' + data.State);
			searchRequestedLocation(data.City + ' ' + data.State);
		},
		error: function() {
			$('#location').val(CONTENT.DEFAULT_SEARCH_LOCATION);
			searchRequestedLocation(CONTENT.DEFAULT_SEARCH_LOCATION);
		}
	});
}

function getDirections() {
	var opts = {};

	var saddr = document.getElementById("saddr").value;
	var daddr = document.getElementById("daddr").value;

	gdir.load("from: " + saddr + " to: " + daddr, opts);
}

function toggleError(blnError, strMessage) {
	$('#SectionHeader p').empty();
	if (blnError) {
		$('#SectionHeader p').addClass('error');
		$('#SectionHeader p').append(strMessage);
	} else {
		$('#SectionHeader p').removeClass('error');
		$('#SectionHeader p').append(CONTENT.INSTRUCTION_BEGIN + ' BK&#174; ' + CONTENT.INSTRUCTION_END);
	}
}

function toggleOverlay() {
	if (!overlayInstance) {
		overlayInstance = new GStreetviewOverlay();
		map.addOverlay(overlayInstance);
	} else {
		map.removeOverlay(overlayInstance);
		overlayInstance = null;
	}
}

function handleError(errorCode) {
	$('#street_pano').removeClass('pano_view');
	$('#pano_overlay').removeClass('pano_view');
	$('#peg_king').show();
	kingMarker.setLatLng(lastMarkerLocation);

	return;
}

function onDragEnd() {
	var latlng = kingMarker.getLatLng();
	kingMarker.setImage('/images/locator/marker-king-right.png');
	streetPano = new GStreetviewPanorama(document.getElementById('street_pano'));
	toggleOverlay();

	GEvent.addListener(streetPano, 'error', handleError);

	streetPano.setLocationAndPOV(latlng);
	$('#street_pano').addClass('pano_view');
	$('#pano_overlay').addClass('pano_view');
	$('#peg_king').hide();
}

function onDragStart() {
	kingMarker.setImage('/images/locator/marker-king-left.png');
	lastMarkerLocation = kingMarker.getLatLng();
	map.closeExtInfoWindow();
	toggleOverlay();
}

function createKingIcon(latlng, boolInitialLoad) {
	var kingPixel = new GPoint();
	var kingLatLngPoint = new GSize();
	var currentProjection = G_NORMAL_MAP.getProjection();

	if (!boolInitialLoad) {
		map.removeOverlay(kingMarker);
	}

	kingPixel = currentProjection.fromLatLngToPixel(latlng, map.getZoom());

	var kingOffset = parseInt(($('#map').width() / 3), 10);
	// use to offset king location
	kingPixel.x = kingPixel.x - kingOffset;
	kingPixel.y = kingPixel.y + 130;

	kingLatLngPoint = currentProjection.fromPixelToLatLng(kingPixel, map.getZoom(), false);

	var kingIcon = new GIcon(G_DEFAULT_ICON);
	kingIcon.image = '/images/locator/marker-king-right.png';
	kingIcon.shadow = '/images/locator/transparent.gif';
	kingIcon.imageMap = [0, 0, 47, 0, 47, 83, 0, 83];
	kingIcon.iconSize = new GSize(47, 83);
	kingIcon.iconAnchor = new GPoint(24, 83);
	kingIcon.infoWindowAnchor = new GPoint(24, 83);
	kingMarker = new GMarker(kingLatLngPoint, { icon: kingIcon, draggable: true });
	lastMarkerLocation = kingLatLngPoint;
	map.addOverlay(kingMarker);

	GEvent.addListener(kingMarker, 'dragend', onDragEnd);
	GEvent.addListener(kingMarker, 'dragstart', onDragStart);
}

function clickKingControl(boolInitialLoad) {
	$('#peg_king').one('mousedown', function(event) {
		$('#peg_king img').attr('src', '/images/locator/control-king-off.png');
		$('#peg_king').unbind('mouseenter');
		$('#peg_king').unbind('mouseleave');

		latlng = map.getCenter();
		if ($('#TilesFlash').hasClass('flash-replaced')) {
			createKingIcon(latlng, boolInitialLoad);
		}
		return false;
	});
}

function createKingControl() {
	if (jQuery.fn.flash) {
		var kingPosition = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(43, 324));
		kingPosition.apply(document.getElementById('the_king'));
		map.getContainer().appendChild(document.getElementById('the_king'));
	}
}

function fromHere(i) {
	map.closeExtInfoWindow();
	arrRestaurantMarker[i].openExtInfoWindow(map, 'restaurant_infowindow', arrHtmlFrom[i], { beakOffset: 20 });
}

function toHere(i) {
	map.closeExtInfoWindow();
	arrRestaurantMarker[i].openExtInfoWindow(map, 'restaurant_infowindow', arrHtmlTo[i], { beakOffset: 20 });
}

function infoClick(i) {
	map.closeExtInfoWindow();
	arrRestaurantMarker[i].openExtInfoWindow(map, 'restaurant_infowindow', arrHtml[i], { beakOffset: 20 });
}

function createRestaurantMarker(latlng, htmlStoreInfo, gInfoWindowHtml, gInfoWindowToHtml, gInfoWindowFromHtml, intIcon, strCulturePrefix) {
	restaurantIcon.image = '/cms' + strCulturePrefix + 'cms_out/digital_assets/graphics/pages/marker-alpha' + intIcon + '.png';
	var restaurantMarker = new GMarker(latlng, restaurantIcon);

	var i = arrRestaurantMarker.length;

	GEvent.addListener(restaurantMarker, 'click', function() {
		$('#search_results ul li').removeClass('active');
		$('#search_results ul li').removeClass('prev_border_active');
		$('#search_results ul li#result' + i).addClass('active');
		$('#search_results ul li#result' + i).prev().addClass('prev_border_active');

		restaurantMarker.openExtInfoWindow(map, 'restaurant_infowindow', gInfoWindowHtml, { beakOffset: 20 });
	});

	GEvent.addListener(restaurantMarker, 'mouseover', function() {
		restaurantMarker.setImage('/cms' + strCulturePrefix + 'cms_out/digital_assets/graphics/pages/marker-alpha' + intIcon + '.png');
	});
	GEvent.addListener(restaurantMarker, 'mouseout', function() {
		restaurantMarker.setImage('/cms' + strCulturePrefix + 'cms_out/digital_assets/graphics/pages/marker-alpha' + intIcon + '.png');
	});

	arrRestaurantMarker[i] = restaurantMarker;
	arrHtml[i] = gInfoWindowHtml;
	arrHtmlTo[i] = gInfoWindowToHtml;
	arrHtmlFrom[i] = gInfoWindowFromHtml;

	var strRestaurantDetail;

	if (RestaurantID > 0 && i === 0) {
		strRestaurantDetail = ' active';
		restaurantMarker.openExtInfoWindow(map, 'restaurant_infowindow', gInfoWindowHtml, { beakOffset: 20 });
	} else {
		strRestaurantDetail = '';
	}

	htmlResultHolder += '<li id="result' + intIcon + '" class="bk_result' + strRestaurantDetail + '"><p class="result_marker"><a href="javascript:infoClick(' + i + ')" onmouseover="arrRestaurantMarker[' + i + '].setImage(\'/cms' + strCulturePrefix + 'cms_out/digital_assets/graphics/pages/marker-alpha' + intIcon + '.png\')" onmouseout="arrRestaurantMarker[' + i + '].setImage(\'/cms' + strCulturePrefix + 'cms_out/digital_assets/graphics/pages/marker-alpha' + intIcon + '.png\')"><img src="/cms' + strCulturePrefix + 'cms_out/digital_assets/graphics/pages/result-alpha' + intIcon + '.png" alt="" width="36" height="72" /><\/a></p>' + htmlStoreInfo + '</li>';

	i++;

	return restaurantMarker;
}

function getRestaurantMarkers(userLatitude, userLongitude) {
	if (userLatitude !== null) {
		userLatitude = userLatitude.toString().replace('.', '_');
	}
	if (userLongitude !== null) {
		userLongitude = userLongitude.toString().replace('.', '_');
	}

	$.ajax({
		type: 'GET',
		url: CulturePrefix + 'restaurants/' + userLatitude + '/' + userLongitude + '/' + intRadius + '/' + intThreshold + '/restaurants.xml',
		data: { dblUserLatitude: userLatitude,
			dblUserLongitude: userLongitude,
			intRadius: intRadius,
			intThreshold: intThreshold
		},
		dataType: 'xml',
		success: function(xml) {
			var intCount = 0;
			var intIcon;
			var strCity = '';
			var strStateProvince = '';
			$(xml).find('Restaurant').each(function(i) {
				intIcon = (i + 1);
				if (strCity === '') {
					strCity = $(this).find('City').text();
				}
				if (strStateProvince === '') {
					strStateProvince = $(this).find('StateProvince').text();
				}
				var latlng = new GLatLng($(this).find('Latitude').text(), $(this).find('Longitude').text());
				var gInfoWindowHtml = '<h3>' + $(this).find('Address1').text() + '</h3><p>' + $(this).find('City').text() + ', ' + $(this).find('StateProvince').text() + ' ' + $(this).find('PostalCode').text() + '<br />' + $(this).find('PhoneNumber').text() + '</p>';

				var gInfoWindowToHtml = gInfoWindowHtml +
										'<br /><p>' + CONTENT.DIRECTIONS + ':<br />' + CONTENT.DIRECTIONS_TO + '&#160;&#160;<a href="javascript:fromHere(' + i + ')">' + CONTENT.DIRECTIONS_FROM + ' &gt;</a></p>' +
										'<form action="javascript:getDirections()">' +
										'<input type="text" name="saddr" id="saddr" value="' + CONTENT.DIRECTIONS_START + '" onclick="javascript:$(\'#saddr\').select();$(\'#saddr\').focus();" /><input id="directions_submit" value="" type="submit" />' +
										'<input type="hidden" id="daddr" value="' + name + '@' + latlng + '" />';

				var gInfoWindowFromHtml = gInfoWindowHtml +
										'<br /><p>' + CONTENT.DIRECTIONS + ':<br /><a href="javascript:toHere(' + i + ')">' + CONTENT.DIRECTIONS_TO + ' &gt;</a>&#160;&#160;' + CONTENT.DIRECTIONS_FROM + '</p>' +
										'<form action="javascript:getDirections()">' +
										'<input type="text" name="daddr" id="daddr" value="' + CONTENT.DIRECTIONS_END + '" onclick="javascript:$(\'#daddr\').select();$(\'#daddr\').focus();" /><input id="directions_submit" value="" type="submit" />' +
										'<input type="hidden" id="saddr" value="' + name + '@' + latlng + '"/>';

				gInfoWindowHtml += '<p id="to_from">' + CONTENT.DIRECTIONS_GET + ':<br /><a href="javascript:toHere(' + i + ', ' + latlng + ')">' + CONTENT.DIRECTIONS_TO + ' &gt;</a>&#160;&#160;<a href="javascript:fromHere(' + i + ', ' + latlng + ')">' + CONTENT.DIRECTIONS_FROM + ' &gt;</a></p></div>';

				var htmlStoreInfo = '<h3>' + $(this).find('Address1').text() + '</h3>';
				htmlStoreInfo += '<p class="address">' + $(this).find('City').text() + ', ' + $(this).find('StateProvince').text() + ' ' + $(this).find('PostalCode').text() + '<br />' + $(this).find('PhoneNumber').text() + '</p>';
				htmlStoreInfo += '<dl>';
				htmlStoreInfo += '<dt>' + CONTENT.STORE_DISTANCE + ':</dt><dd>' + $(this).find('DistanceFromSearchOrigin').text() + ' ' + CONTENT.STORE_MILES + '</dd>';
				if ($(this).find('WeekdayStoreHours').text() !== '') {
					htmlStoreInfo += '<dt>' + CONTENT.STORE_WEEKDAY + ':</dt><dd>' + $(this).find('WeekdayStoreHours').text() + '</dd>';
				}
				if ($(this).find('WeekendStoreHours').text() !== '') {
					htmlStoreInfo += '<dt>' + CONTENT.STORE_WEEKEND + ':</dt><dd>' + $(this).find('WeekendStoreHours').text() + '</dd>';
				}
				htmlStoreInfo += '</dl><p class="store_number">' + CONTENT.STORE_NUMBER + $(this).attr('ID') + '</p>';

				var restaurantMarker = createRestaurantMarker(latlng, htmlStoreInfo, gInfoWindowHtml, gInfoWindowToHtml, gInfoWindowFromHtml, intIcon, CulturePrefix);
				map.addOverlay(restaurantMarker);

				if (i === 0) {
					if ((parseFloat($(this).find('DistanceFromSearchOrigin').text()) >= 2) && (parseFloat($(this).find('DistanceFromSearchOrigin').text()) <= 4)) {
						map.setZoom(12);
					}
					if (parseFloat($(this).find('DistanceFromSearchOrigin').text()) > 4) {
						map.setZoom(11);
					}
					// WebTrends tracking for restaurant search
					dcsMultiTrack('DCS.dcsuri', CulturePrefix + 'restaurant-locator/index.html?DCSext.w_loc=' + $(this).find('City').text() + ', ' + $(this).find('StateProvince').text() + ' ' + $(this).find('PostalCode').text());
				}

				intCount++;
			});
			if (intCount > 0) {
				htmlResults = '<p id="search_summary">' + intCount + ' BURGER KING&#174; ' + CONTENT.RESULT_SUMMARY_BEGIN + ' <span>' + CONTENT.RESULT_SUMMARY_END + '</span> ' + strCity + ', ' + strStateProvince + '</p><ul>' + htmlResultHolder + '</ul>';
				$('#search_results').prepend(htmlResults);
			} else {
				toggleError(true, CONTENT.NONE_FOUND_NEAR_BEGIN + ' ' + $('#location').val() + '. ' + CONTENT.NONE_FOUND_NEAR_END);
			}
		}
	});
}

function instantiateMap(latlng, zoom, pan) {
	map.setCenter(latlng, zoom);
	map.addControl(zoomControl, zoomControlPosition);
	map.addControl(typeControl, typeControlPosition);
	map.setMapType(G_NORMAL_MAP);
	map.panBy(new GSize(pan, 0));
	if ($('#TilesFlash').hasClass('flash-replaced')) {
		createKingControl();
	}
}

function setContentWidthHeight() {
	var intContentHeight = ($('#SectionFooter').position().top - 122);

	$('#map').css({ 'height': intContentHeight });
	$('#results_container').css({ 'height': intContentHeight });
	$('#search_results').css({ 'height': intContentHeight });
	$('#search_results ul').css({ 'height': intContentHeight });
	$('#directions_results').css({ 'height': (intContentHeight - 10) });
	$('#street_pano').css({ 'height': intContentHeight });
	streetPano.checkResize();

	var intContentWidth = ($('#results_container').position().left + 9);
	$('#map').css({ 'width': intContentWidth });
}

//Need this to be global
function searchRequestedLocation(searchRequest) {
	if (trim(searchRequest, ' ') == '') {
		geocoder.getLatLng(CONTENT.DEFAULT_COUNTRY, function(latlng) {
			$('#location').val(CONTENT.DEFAULT_COUNTRY);
			instantiateMap(latlng, 4, 0);
		});
	} else {
		geocoder.getLatLng(searchRequest, function(latlng) {
			if (!latlng) {
				toggleError(true, CONTENT.NO_RESULTS_BEGIN + ' \'' + $('#location').val() + '\' ' + CONTENT.NO_RESULTS_END);
			} else {
                geocoder.getLocations(searchRequest, function(addresses) {
                    if(addresses.Placemark[0].AddressDetails.Accuracy < 4) {
                        toggleError(true, CONTENT.ACCURACY_TO_LOW);
                    } else {
                        getRestaurantMarkers(userLatitude, userLongitude);
                    }
                });
			
				toggleError(false, '');
				$('#search_results').css({ right: '0px' });
				$('#search_results').empty();
				$('#search_results').show();
				$('#directions_results').hide();
				$('#directions_results').empty();
				$('#directions_results').append('<p id="close_directions"><a href="#">X</a></p>');
				$('#street_pano').removeClass('pano_view');
				$('#pano_overlay').removeClass('pano_view');
				$('#peg_king').show();

				instantiateMap(latlng, 13, 0);

				map.closeInfoWindow();
				map.closeExtInfoWindow();
				map.clearOverlays();

				var userIcon = new GIcon(G_DEFAULT_ICON);
				userIcon.image = '/images/locator/marker-user.png';
				userIcon.shadow = '/images/locator/transparent.gif';
				userIcon.imageMap = [0, 0, 23, 0, 23, 35, 0, 35];
				userIcon.iconSize = new GSize(51, 44);
				userIcon.iconAnchor = new GPoint(12, 35);
				userIcon.infoWindowAnchor = new GPoint(12, 35);
				var userMarker = new GMarker(latlng, { icon: userIcon });
				map.addOverlay(userMarker);

				var userLatitude = latlng.lat();
				var userLongitude = latlng.lng();

				gdir = new GDirections(map, document.getElementById('directions_results'));

				var reasons = [];
				reasons[G_GEO_SUCCESS] = CONTENT.DIRECTIONS_SUCCESS;
				reasons[G_GEO_MISSING_ADDRESS] = CONTENT.DIRECTIONS_ERROR_1;
				reasons[G_GEO_UNKNOWN_ADDRESS] = CONTENT.DIRECTIONS_ERROR_2;
				reasons[G_GEO_UNAVAILABLE_ADDRESS] = CONTENT.DIRECTIONS_ERROR_3;
				reasons[G_GEO_BAD_KEY] = CONTENT.DIRECTIONS_ERROR_4;
				reasons[G_GEO_TOO_MANY_QUERIES] = CONTENT.DIRECTIONS_ERROR_5;
				reasons[G_GEO_SERVER_ERROR] = CONTENT.DIRECTIONS_ERROR_6;
				reasons[G_GEO_BAD_REQUEST] = CONTENT.DIRECTIONS_ERROR_7;
				reasons[G_GEO_MISSING_QUERY] = CONTENT.DIRECTIONS_ERROR_8;
				reasons[G_GEO_UNKNOWN_DIRECTIONS] = CONTENT.DIRECTIONS_ERROR_9;

				GEvent.addListener(gdir, 'error', function() {
					var code = gdir.getStatus().code;
					var reason = 'Code ' + code;
					if (reasons[code]) {
						reason = reasons[code];
					}

					toggleError(true, reason);
				});

				GEvent.addListener(gdir, 'load', function() {
					toggleError(false, '');
					$('#directions_results').show();
					$('#search_results').hide();
					map.closeExtInfoWindow();
					map.clearOverlays();
				});
			}
		});
	}
}

function setMapDefaultLocation(strCountry) {
	$('#search_results').empty();
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		geocoder = new GClientGeocoder();
		geocoder.setBaseCountryCode(strCountry);
	}

	geocoder.getLatLng(strCountry, function(latlng) {
		if (strDefaultLocation == '') {
			setDefaultLocation();
		} else {
			$('#location').val(strDefaultLocation);
			searchRequestedLocation(strDefaultLocation);
		}
		/*
		if (strDefaultLocation === '') {
		instantiateMap(latlng, 4, 0);
		} else {
		$('#location').val(strDefaultLocation);
		searchRequestedLocation(strDefaultLocation);
		}
		*/
	});
}

jQuery(document).ready(function() {
	arrCulturePrefix = CulturePrefix.split('/');
	strLanguage = arrCulturePrefix[1];
	strCountry = arrCulturePrefix[2];

	$(document).unload(
	  function() {
	  	GUnload();
	  }
	);

	setContentWidthHeight();
	setMapDefaultLocation(strCountry);

	clickKingControl(true);

	$(window).resize(function(event) {
		map.removeControl(typeControl);
		setContentWidthHeight();
		map.addControl(typeControl, typeControlPositionAdjusted);
	});

	$('#SectionHeader form').submit(function(event) {
		htmlResults = '';
		htmlResultHolder = '';
		arrHtml = [];
		arrHtmlTo = [];
		arrHtmlFrom = [];
		arrRestaurantMarker = [];

		clickKingControl(false);
		$('#peg_king img').attr('src', '/images/locator/control-king.png');
		$('#peg_king').bind('mouseenter', function() {
			$('#peg_king img').attr('src', '/images/locator/control-king-hover.png');
		});
		$('#peg_king').bind('mouseleave', function() {
			$('#peg_king img').attr('src', '/images/locator/control-king.png');
		});

		var searchRequest = $('#location').val();

		searchRequestedLocation(searchRequest);

		return false;
	});

	$('#peg_king').mouseenter(function() {
		$('#peg_king img').attr('src', '/images/locator/control-king-hover.png');
	});
	$('#peg_king').mouseleave(function() {
		$('#peg_king img').attr('src', '/images/locator/control-king.png');
	});

	$('#search_display a').click(function(event) {
		var intContentWidth = ($('#map').css('width'));
		if ($(this).hasClass('expanded')) {
			$('#results_container').animate({ right: '-324px' },
										 250,
										 'swing',
										 function() {
										 	$('#results_container a').removeClass('expanded');
										 	$('#results_container a').addClass('collapsed');
										 });
			intContentWidth = parseInt(intContentWidth, 10) + 328;
			$('#map').css({ width: intContentWidth + 'px' });
			$('#pano_overlay a').animate({ right: '50px' }, 250, 'swing');
			map.panBy(new GSize(200, 0));
		} else if ($(this).hasClass('collapsed')) {
			$('#results_container').animate({ right: '0px' },
										 250,
										 'swing',
										 function() {
										 	$('#results_container a').removeClass('collapsed');
										 	$('#results_container a').addClass('expanded');
										 });
			intContentWidth = parseInt(intContentWidth, 10) - 328;
			$('#map').animate({ width: intContentWidth + 'px' }, 250, 'swing');
			$('#pano_overlay a').animate({ right: '367px' }, 250, 'swing');
			map.panBy(new GSize(-200, 0));
		}
		map.checkResize();
		return false;
	});

	$('#location').click(function(event) {
		$(this).focus();
		$(this).select();
		return false;
	});

	$('#print_map').click(function(event) {
		window.print();

		return false;
	});

	$('#pano_overlay').click(function(event) {
		streetPano.remove();
		$('#street_pano').removeClass('pano_view');
		$('#pano_overlay').removeClass('pano_view');
		$('#peg_king').show();
		
		return false;
	});

	$('#close_directions').live('click', function(event) {
		gdir.clear();
		$('#search_results').show();
		$('#directions_results').hide();
		$('#directions_results').empty();
		$('#directions_results').append('<p id="close_directions"><a href="#">Close</a></p>');

		if ($('#location').val() === '') {
			if (strDefaultLocation == '') {
				setDefaultLocation();
			} else {
				$('#location').val(strDefaultLocation);
				searchRequestedLocation(strDefaultLocation);
			}
			/*
			searchRequestedLocation(strDefaultLocation);
			$('#location').val(strDefaultLocation);
			*/
		} else {
			searchRequestedLocation($('#location').val());
		}

		return false;
	});

	$('#location_submit').mouseover(function() {
		$(this).css({ 'background-position': 'bottom left' });
	}).mouseout(function() {
		$(this).css({ 'background-position': 'top left' });
	});

	$('#search_results ul li').live('mouseover', function() {
		$(this).prev().addClass('prev_border');
	}).live('mouseout', function() {
		$(this).prev().removeClass('prev_border');
	}).live('click', function() {
		$('#search_results ul li').removeClass('active');
		$('#search_results ul li').removeClass('prev_border_active');
		$(this).addClass('active');
		$(this).prev().addClass('prev_border_active');
		window.location.href = $(this).find('p.result_marker a').attr('href');
	});
});