function swapProductImage(src){
	$("#lrgprodimage").attr('src',src);
}

function toggleFooter(){
	var state = $("#footer_meta").css('display');
	if(state == 'none'){
		$("#footer_meta").slideDown("800");
		$("#footer_toggle").attr('src','im/base/icon_minus.gif');
	}else{
		$("#footer_meta").slideUp("800");
		$("#footer_toggle").attr('src','im/base/icon_plus.gif');
	}
	return false;
}
/****FUNCTION FOR SHOWING/HIDING SUBMENUS********************************/

//fcn for show/hide submenus
//functions to show/hide the disclaimer balloon
timer = null;
activetab = null;

function showMenu(id){

if(activetab == id){
	if(timer) clearTimeout(timer);
}else{
	activetab = id;
}

$("#"+id).show();

//make the parent tab active
var par = id.substring(8);
$("#nav > li[title='"+par+"']").addClass('act');
}

function hideMenu(id){
timer = setTimeout("doHide('"+id+"')",0050);
}

function doHide(id){
$("#"+id).hide();
//make the parent tab active
var par = id.substring(8);
$("#nav > li[title='"+par+"']").removeClass('act');
}
/****FUNCTION TO VALIDATE CONTACT FORM********************************/
function validateContact(){
	var err_count = 0;
	var err_message = "Please correct the following errors:";
	
	var nq = $("#email_inquiry").val();
	var nm = $("#email_name").val();
	var em = $("#email_address").val();
	var ms = $("#email_message").val();
	var cp = $("#email_captcha").val();

	// name
	if(isEmpty(nm) || !isName(nm)){
		err_count++;
		err_message += "<br />- Please provide your name";
		$("#name_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#name_feedback").html('');
	}

	// inquiry
	if(isEmpty(nq)){
		err_count++;
		err_message += "<br />- Please provide your inquiry type";
		$("#inquiry_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#inquiry_feedback").html('');
	}
	
	// email
	if(isEmpty(em) && !isEmail(em)){
		err_count++;
		err_message += "<br />- Please provide a valid email address";
		$("#address_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#address_feedback").html('');
	}
	
	// message
	if(isEmpty(ms)){
		err_count++;
		err_message += "<br />- Please provide a message";
		$("#message_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#message_feedback").html('');
	}
	
	// captcha
	if(cp != 'animal'){
		err_count++;
		err_message += "<br />- Please choose a good pet";
		$("#captcha_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#captcha_feedback").html('');
	}
	
	if(err_count > 0){
		$("#form_errors").html(err_message);
		$("#form_errors").show();
		//window.location = '#form_errors'
		return false;
	}else{
		$("#form_errors").html('');
		$("#form_errors").hide();
		return true;
	}
	
}

/****FUNCTION TO VALIDATE PRODUCT REGISTRATION FORM*********************/
function validateForm(){
	var err_count = 0;
	var err_message = "Please correct the following errors:";
	
	var fn = $("#first_name").val();
	var ln = $("#last_name").val();
	var ad = $("#street_address").val();
	var ci = $("#city").val();
	var st = $("#state").val();
	var zp = $("#zip_code").val();
	var co = $("#country").val();
	var te = $("#telephone").val();
	var em = $("#email").val();
	
	var pm = $("#product_model").val();
	var se = $("#serial_number").val();
	var da = $("#date_of_purchase_month").val()+'/'+$("#date_of_purchase_day").val()+'/'+$("#date_of_purchase_year").val();

	// firstname
	if(isEmpty(fn) || !isName(fn)){
		err_count++;
		err_message += "<br />- Please provide your first name";
		$("#first_name_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#first_name_feedback").html('');
	}

	// lastname
	if(isEmpty(ln) || !isName(ln)){
		err_count++;
		err_message += "<br />- Please provide your last name";
		$("#last_name_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#last_name_feedback").html('');
	}
	
	// street address
	if(isEmpty(ad) || !isAddress(ad)){
		err_count++;
		err_message += "<br />- Please provide your street address";
		$("#street_address_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#street_address_feedback").html('');
	}
	
	// city
	if(isEmpty(ci)){
		err_count++;
		err_message += "<br />- Please provide your city";
		$("#city_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#city_feedback").html('');
	}
	
	// state
	if(isEmpty(st)){
		err_count++;
		err_message += "<br />- Please provide your state";
		$("#state_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#state_feedback").html('');
	}
	
	// zip code
	if(isEmpty(zp)){
		err_count++;
		err_message += "<br />- Please provide your zip code";
		$("#zip_code_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#zip_code_feedback").html('');
	}
	// country
	if(isEmpty(co)){
		err_count++;
		err_message += "<br />- Please provide your country";
		$("#country_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#country_feedback").html('');
	}
	// telephone
	if(!isEmpty(te) && !isPhoneNumber(te) ){
		err_count++;
		err_message += "<br />- Please provide a valid telephone number";
		$("#telephone_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#telephone_feedback").html('');
	}
	
	// email
	if(!isEmpty(em) && !isEmail(em)){
		err_count++;
		err_message += "<br />- Please provide a valid email address";
		$("#email_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#email_feedback").html('');
	}
	
	// product model
	if(isEmpty(pm)){
		err_count++;
		err_message += "<br />- Please provide your product model";
		$("#product_model_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#product_model_feedback").html('');
	}
	
	// serial number
	if(isEmpty(se)){
		err_count++;
		err_message += "<br />- Please provide your serial number";
		$("#serial_number_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#serial_number_feedback").html('');
	}
	
	// date of purchase
	if(!isDate(da)){
		err_count++;
		err_message += "<br />- Please provide your date of purchase";
		$("#date_of_purchase_feedback").html('<img src="im/base/form_error.gif" alt="error" />');
	}else{
		$("#date_of_purchase_feedback").html('');
	}
	
	if(err_count > 0){
		$("#form_errors").html(err_message);
		$("#form_errors").show();
		//window.location = '#form_errors'
		return false;
	}else{
		$("#form_errors").html('');
		$("#form_errors").hide();
		return true;
	}
	
}

/****FUNCTION TO JUMP TO A URL******************************************/
function jumpURL(url){
	window.location = url;
}

/****GET THE MEASURE SANS PX*******************************************/
		
function sansPX(str){
	var tempMeasure = str;
	if(tempMeasure == ''){return 0;}
	else {
		if(tempMeasure.substring(tempMeasure.length-2, tempMeasure.length) == 'px'){
			var asInt = tempMeasure.substring(0, tempMeasure.length-2);
			return asInt;
		}else{
			return tempMeasure;
		}
	}
	
}

/****USED FOR DEALER LOCATOR MAP**************************************/

function buildSearchMap(address){
	var zoom = 9;
	var center = false;
	
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(address,function(point){
		var ord = parseLatLong(point.toString());
		mapResultsString(address,ord[0],ord[1],zoom,center);
	});
	
}

function mapResultsString(searchTerm,lat,lon,zoom,center){
	var pars = 'term='+searchTerm+'&lat='+lat+'&long='+lon;
	
	$.ajax({
	type: "POST",
	url: "ajax.map-results.php",
	data: pars,
	success: function(msg){
		if(msg == 0){ 
			//alert('Sorry, no dealers matched your search.');
			window.location = '/dealers/?fail';
		}
		
		//$("geodata").text(msg);
			var json = eval(msg);
			loadMap(json,zoom,center);
			topResults(json);
	}
	});
}

function topResults(locations){

	var htmlstring = '';
	
	for(i=0;i<locations.length;i++){
		
		var title = locations[i].name;
		var address = locations[i].address;
		var city = locations[i].city;
		var state = locations[i].state;
		var zipcode = locations[i].zipcode;
		var phone = locations[i].phone;		
		
		htmlstring += '<p><strong>'+title+'</strong><br />'+address+'<br />'+city+', '+state+' '+zipcode+'<br />'+phone+'</p>';
		
		//only load up to 5
		if(i > 4) break;
	}
	
	htmlstring = '<h3>Top '+i+' results near you:</h3>'+htmlstring+'<h4><a href="/dealers/">View all locations</a></h4>';
	$("#search_results").html(htmlstring);
	
	$("#search_results").slideDown('slow');
}

function loadMap(locations,zoom,center) {
	
	var map = new GMap2(document.getElementById("map"));
if(locations != 0){
	var cnt_lat = locations[0].latitude;
	var cnt_lon = locations[0].longitude;
	
	for(i=0;i<locations.length;i++){
		var geocoder = new GClientGeocoder();
		var address = locations[i];
		makeWindow(geocoder,address,map,zoom,cnt_lat,cnt_lon)
	}
}else{
	var geocoder = new GClientGeocoder();
	center = true;
}	
			map.setMapType(G_NORMAL_MAP);
			var customUI = map.getDefaultUI();
			customUI.maptypes.satellite = false;
			customUI.maptypes.hybrid = false;
			customUI.maptypes.physical = false;
			map.setUI(customUI);
			if(center){
				geocoder.getLatLng('Kansas City, Kansas', 
				function(point) {
					map.setCenter(point, 4);
       			});
       		}
}

function makeWindow(geocoder,address,map,zoom,clat,clon){
	
	var addr = parseJSONWindowAddress(address);
	
	if(address.address != ''){
		var point_addr = address.address+' '+address.city+', '+address.state+' '+address.zipcode;
	}else{
		var point_addr = address.latitude+','+address.longitude;
	}

  	var point = new GLatLng(address.latitude,address.longitude);
  	var center_point = new GLatLng(clat,clon);
  	map.setCenter(center_point, zoom);
	// Create our "tiny" marker icon
			var icon = new GIcon();
			icon.image = "http://greenworkstools.com/im/dealers/map_point.png";
			icon.iconSize = new GSize(19, 20);
			icon.iconAnchor = new GPoint(0,0);
			icon.infoWindowAnchor = new GPoint(5, 1);


			// Set up our GMarkerOptions object
			var marker = new GMarker(point,icon);
	map.addOverlay(marker);
	GEvent.addListener(marker, "click", function() {
	marker.openInfoWindowHtml('<p class="gwindow">'+addr+'</p>');
	});
}

function parseWindowAddress(str){
	str = str.substr(1,str.length-2);
	str = str.replace(/  /,'<br />');
	
	return str;
}

function parseJSONWindowAddress(json){
	var address = '';

	if(json.title != ''){ address += '<strong>'+json.name+'</strong><br />';}
	if(json.address != ''){ address += json.address+' <br />';}
	if(json.city != ''){ address += json.city;}
	if(json.state != ''){ address += ', '+json.state;}
	if(json.zipcode != ''){ address += ' '+json.zipcode;}
	
	address += '<br />';
	
	if(json.phone != '' ){ address += json.phone+'<br />';}
	if(json.email != '' && isEmail(json.email)){ address += '<a href="'+json.email+'">'+json.email+'</a>';}
		
	return address;
}

function setLatLong(address,row_id){
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(address,function(point){
		var ord = parseLatLong(point.toString());
		doSetLatLong(ord,row_id);
	});
}

function doSetLatLong(coords,row_id){
	var pars = 'lat='+coords[0]+'&long='+coords[1]+'&row_id='+row_id;
	
	$.ajax({
	type: "POST",
	url: "ajax.set-lat-long.php",
	data: pars
	});
}

//used for storing the lat/long of a search
function getLatLong(address,tgt){
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(address,function(point){
		var ord = parseLatLong(point.toString());
		$("#"+tgt).text(ord[0]+','+ord[1]);
	});
	
}

function parseLatLong(str){
	var str1 = str.substr(1,str.length-2);
	return str1.split(',');
}

function getLocations(){
	var addr = $("#search_map_term").val();
	var address = new Array(addr);
	loadMap(address);
	return false;
}

/****JAVASCRIPT INITS*************************************************/
window.onload = function(){

}

