/* Form Functions */
function storeLocatorSubmit(formName, command, distanceFromUser, pageChangeDirection, shopID, submitYesNo) {
	// Get the Form Object
	var frmObj = (typeof formName == "object") ? formName :	document.forms[formName];

	// If Postcode length is greater than 4, less than 10 and DOES NOT have a space in it, add on
	var pcObj = frmObj.postcode;
	if (typeof pcObj != "undefined") {
		var pcStr = pcObj.value;
		if (pcStr.indexOf(" ") == -1 && pcStr.length > 4 && pcStr.length < 10) {
			pcStr = pcStr.substring(0, pcStr.length-3) + " " + pcStr.substring(pcStr.length-3);
			frmObj.postcode.value = pcStr;
		}
	}
	// If Parameter is -1, leave alone, else if NOT null, use parse, or set to ""
	if (command != -1) frmObj.command.value = (command != null) ? command : "";
	if (distanceFromUser != -1) frmObj.distanceFromUser.value = (distanceFromUser != null) ? distanceFromUser : "";
	if (pageChangeDirection != -1) frmObj.pageChangeDirection.value = (pageChangeDirection != null) ? pageChangeDirection : "";
	if (shopID != -1) frmObj.shopID.value = (shopID != null) ? shopID : "";

	// Submit if submitYesNo equals true
	if (submitYesNo) frmObj.submit();
}
function resetPostcode() {
	/**
	 * blank the postcode field
	 */
	document.forms['orangeStoreForm'].elements['postcode'].value = "";
}
function resetDropdown() {
	/**
	 * blank the dropdown field
	 */
	document.forms['orangeStoreForm'].elements['townName'].selectedIndex = 0;
}
function PreviousPage() { changePage('prev'); } // goto previous page
function NextPage() { changePage('next'); } // goto next page
function changePage(direction) {
	/**
	 * goto next or previous page
	 */
	storeLocatorSubmit('formStoreLocatorResults','changePage','',direction,'',true);
}
function getShopDetail(shopID, storeDistance) {
	/**
	 * goto the single shop detail page
	 */
	storeLocatorSubmit('formStoreLocatorResults','shopDetail',storeDistance,'',shopID,true);
}

/* Multi Map functions */
var mmClient = "oranges"; // Multi Map Client
var mmWidth = 305; // Multi Map Width
var mmHeight = 262; // Multi Map Height
var mmScales = new Array(5000,10000,25000,50000,100000,500000,1000000); // Multi Map Scales
var mmScale = 1; // Multi Map Scale
var mmPC = ""; // Multi Map Postcode
var mmDistance = ""; // Distance from Postcode

function mmSaveDistance(distance) {
	mmDistance = distance;
}
function mmSetPC(parsePC, mapScale) {
	/**
	 * Set Multi Map Postcode to parsed Postcode
	 */
	mmPC = parsePC;
	if (mapScale >= 0) mmScale = mapScale;
	mmGetMap(-1);
}
function mmGetMap(InOut) {
	/**
	 * Sets the Multi Map image source to the new scale
	 */
	var changeImage = true;
	if (InOut != -1) changeImage = mmZoom(InOut);
	if (changeImage) document.mmImage.src = "http://www.multimap.com/clients/gif.cgi?client="+mmClient+"&width="+mmWidth+"&height="+mmHeight+"&pc="+mmPC+"&scale="+mmScales[mmScale];
}
function mmZoom(InOut) {
	if (mmPC != "") {
		// Only Zoom when you've clicked to view map
		var zoom;
		if ((InOut && mmScale == 0) || (!InOut && mmScale == mmScales.length-1)) {
			alert("You are already zoomed "+((InOut)?"in":"out")+" to the most detailed level available.");
		} else {
			for (zoom=0; zoom<mmScales.length; zoom++) {
				if (zoom == mmScale) {
					zoom += (InOut) ? -1 : 1;
					mmScale = zoom;
					return true;
				}
			}
		}
	}
	return false;
}
function mmBlankMap() {
	if (document.mmImage) document.mmImage.src = '/images/locator/blank_map.gif';
}

/* Print Function */
function printMap(oC, strStoreID, strStoreName) {
	var defaultURL = servletPath+'/redirect?url=/stores/print_details.jsp&storeID='+strStoreID;
	if (mmPC != "") {
		// get MAP Values
		defaultURL += '&printMap=true';
		defaultURL += '&mapScale='+mmScale;
	}
	defaultURL += '&distance='+mmDistance;
	genericPopup(defaultURL, 530, 360, 'left=250,top=250,scrollbars=no,menubars=no,status=no');
}

/* show Stores page */
function showStoresOffset(offset) {
	var frm = document.forms['pager'];
	frm.offset.value = offset;
	frm.submit();
}

/* Submit to Single Store info page */
function storeAction(obj, storeId, storeName, DistanceKmKey, DistanceKmValue, DistanceMilesKey, DistanceMilesValue) {
	var frm = document.forms['singleStore'];
	frm.elements['orangeStoreId'].value = storeId;
	if (DistanceKmValue) frm.elements[DistanceKmKey].value = DistanceKmValue;
	if (DistanceMilesValue) frm.elements[DistanceMilesKey].value = DistanceMilesValue;
	frm.submit();
}

/* Show Premier Stores */
function showPremierStores() {
	var frm = document.forms['searchByStoreType'];
	frm.elements['premierStore'].value = 'Y';
	frm.submit();
}