// JavaScript Document
var MyApp = {};

MyApp.googleOnLoadCallback = new Array();
var currentHeaderBanner = 0;
var currentPromoBanner = 0;
	
MyApp.init = function() {
	$(document).ready(function(event) {		
		
		$(".loadregpagebtn").click(function(ev) {
			ev.preventDefault();
			if(!document.getElementById("hiddencolorboxbtn")) {
				var btn = document.createElement("a");
				btn.id = "hiddencolorboxbtn";
				document.body.appendChild(btn);
			}
			var url = $(this).metadata().url;
			$("#hiddencolorboxbtn").colorbox({
				open : true,
				html : "<div style='width:600px;height:640px;position:relative;overflow:auto'><p style='width:100%;text-align:center;position:absolute;'><img src='" + Pms.sitePath + "image/loadingwheel.gif' height='200' style='margin-top:150px;' /></p><iframe src='" + url + "' frameborder='0' style='position:absolute;width:600px;height:640px' scrollbars='no' allowtransparency='false'></iframe></div>",
				width : 650,
				height : 640,
				onCleanup : function() {
				}
			});
			document.getElementById("cboxLoadedContent").style.overflow = "hidden";
		});
		
		$(".mobileupdates .mobilenofld").click(function(ev) {
			this.style.color = "#626262";
			this.value = this.value.replace(/[^0-9.]+/i, "");
		});
		
		$(".readmorelist").click(function(ev) {
			ev.preventDefault();
			var targetlist = $(this).metadata().targetlist;
			$("#" + targetlist + " li:gt(4)").show('normal');
			$(this).hide();
		});
		
		if($(".headerbannerdesc").length > 0) {
			MyApp.initHomepage();
		}
		var handlePreviewInput = function(event) {
			$(this).removeClass("previewinput");		
			if($(this).hasClass("password")) {
				// $(this).attr("type", "password");
				// this.type = "password";
				$(this).attr("disabled", true).hide();
				$(this).after("<input type='password' name='password' id='passwordfld' class='logininput' />");
				$(this).next().focus();
			}
			this.value = "";
		};
		$(".previewinput").click(handlePreviewInput);
		$(".previewinput").focus(handlePreviewInput);
		
		$(".socnetwrapper .balloonwrapper").mouseover(function(ev) {
			var balloon = $(this).find(".footer-balloon");
			$(balloon).css("top", "-80px");
			$(balloon).css("left", "-115px");
			$(balloon).show();
		});
		
		$(".socnetwrapper .balloonwrapper").mouseout(function(ev) {
			var balloon = $(this).find(".footer-balloon");
			$(balloon).hide();
		});
		
		$("#emailpagefld").click(function(event) {
			var val = $(this).val();
			if(val.indexOf(" ") > 0) {
				$(this).val("");	
			}
		});
	});
}

MyApp.regDepartmentLabel = function(selec) {
	$(selec).change(function(ev) {
		MyApp.loadDepartmentLabel(selec);
	});
	MyApp.loadDepartmentLabel(selec);
}

MyApp.loadDepartmentLabel = function(selec) {
	var val = $(selec).val();
	var texts = {
		"Contacts" : "What can we help you with?",
		"Sales" : "What solutions does your business need?",
		"Directions" : ""
	};
	var text = texts[val];
	if(text == "") {
		// load google map
		$("#registerform").hide();
		$("#contactgooglemap").show();
		$("#contactgooglemap .map").html('<iframe width="100%" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=2534+Madison+Avenue,+Kansas+City,+MO&amp;sll=39.052429,-94.471671&amp;sspn=0.007715,0.021136&amp;ie=UTF8&amp;hq=&amp;hnear=2534+Madison+Ave,+Kansas+City,+Jackson,+Missouri+64108&amp;ll=39.08164,-94.595139&amp;spn=0.00583,0.013754&amp;z=16&amp;iwloc=A&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&amp;source=embed&amp;hl=en&amp;geocode=&amp;q=2534+Madison+Avenue,+Kansas+City,+MO&amp;sll=39.052429,-94.471671&amp;sspn=0.007715,0.021136&amp;ie=UTF8&amp;hq=&amp;hnear=2534+Madison+Ave,+Kansas+City,+Jackson,+Missouri+64108&amp;ll=39.08164,-94.595139&amp;spn=0.00583,0.013754&amp;z=16&amp;iwloc=A" style="color:#0000FF;text-align:left">View Larger Map</a></small>');
	} else {
		$("#departmentlabel").html(text);	
	}
}

MyApp.headerbannerInt = 0;

MyApp.initHomepage = function() {
	
	MyApp.loadHeaderBanner(0);
	function movenextMainBanner() {
		currentHeaderBanner++;						
		if(currentHeaderBanner == $(".headerbanner").length) {
			currentHeaderBanner = 0;
		}
		MyApp.loadHeaderBanner(currentHeaderBanner);		
	}
	MyApp.headerbannerInt = setInterval(function() {
		movenextMainBanner();										 
	}, 6000);
	MyApp.loadPromoBanner(0);
	
	$(".headerbannerthumbs li a").click(function(ev) {
		var ind = $(".headerbannerthumbs:first li a").index(ev.target);
		clearTimeout(MyApp.headerbannerInt);
		MyApp.loadHeaderBanner(ind);
	});
	
	/*
	$(".headerbannernext").click(function(event) {
		currentHeaderBanner++;						
		if(currentHeaderBanner == $(".headerbanner").length) {
			currentHeaderBanner = 0;
		}
		MyApp.loadHeaderBanner(currentHeaderBanner);
	});
	*/
	
	$(".promobannernext").click(function(ev) {
		ev.preventDefault();
		if($(this).hasClass("disabled")) {
			return;
		}
		currentPromoBanner++;						
		if(currentPromoBanner == $(".promobanner").length) {
			currentPromoBanner = 0;
		}
		MyApp.loadPromoBanner(currentPromoBanner);
	});	
	
	$(".promobannerprev").click(function(ev) {
		ev.preventDefault();
		if($(this).hasClass("disabled")) {
			return;
		}
		currentPromoBanner--;						
		if(currentPromoBanner < 0) {
			currentPromoBanner = 0;
		}
		MyApp.loadPromoBanner(currentPromoBanner);
	});
	
}

MyApp.loadHeaderBanner = function(index) {
	// alert($(".headerbannerswrapper").length);
	$(".headerbannerswrapper").stop().scrollTo({
		top : '0px',
		left : (index * 1000) + 'px'
	}, 800);
	var desc = $(".headerbannerswrapper td:eq(" + index + ") div").html();
	$(".headerbannerdesc").html(desc);
	$(".headerbannerthumbs li a").removeClass("selected");
	$(".headerbannerthumbs li a:eq(" + index + ")").addClass("selected");
}

MyApp.loadPromoBanner = function(index) {
	// alert($(".headerbannerswrapper").length);
	var totalbanners = $(".promobannerswrapper img").length;
	if(index == (totalbanners - 1)) {
		$(".promobannernext").addClass("disabled");	
	} else {
		$(".promobannernext").removeClass("disabled");	
	}
	
	if(index == 0) {
		$(".promobannerprev").addClass("disabled");	
	} else {
		$(".promobannerprev").removeClass("disabled");	
	}
	$(".promobannerswrapper .inner").stop().scrollTo({
		top : '0px',
		left : (index * 365) + 'px'
	}, 800);
}

MyApp.showAddress = function(address, targetdiv) {

	var map = new GMap2(document.getElementById(targetdiv));
	var geocoder = new GClientGeocoder();
			
	geocoder.getLatLng(
		address,
		function(point) {
			if (!point) {
				alert(address + " cannot be found in Google Maps");
			} else {
				map.setCenter(point, 13);
				var marker = new GMarker(point);
				map.addOverlay(marker);
				marker.openInfoWindowHtml(address);
			}
		}
	);
	  
}

MyApp.getClosestRetailer = function(callurl, opt) {
	
	if(!opt) {
		opt = {};
	}
	
	if(!opt.callback) {
		opt.callback = function(response) {};	
	}
	
	var city = google.loader.ClientLocation.address.city;
	var region = google.loader.ClientLocation.address.region;
	var lat = google.loader.ClientLocation.latitude;
	var lon = google.loader.ClientLocation.longitude;
	var url = callurl + '?city=' + city + '&region=' + region + '&lat=' + lat + '&lon=' + lon;
	// alert(url);
	GabeUtil.ajaxRequest('get', url, {
		onLoad : function(response) {
			opt.callback(response);
		}
	}, 'json');
	
}

MyApp.submitCartCheckout = function() {
	var html = '';
	jQuery.each($(".quantityfld"), function(i, val) {
		var quantity = parseInt($(val).val(), 10);
		if(quantity <= 0) {
			return;
		}
		// <input type=checkbox name=item_rye value="a-8010^rye^loaf of Rye^2.22^1">
		var itemcode = $(val).metadata().itemcode;
		var name = $(val).metadata().name;
		var weight = $(val).metadata().weight;
		var price = $(val).metadata().price;
		html += '<input type="hidden" name="item_' + itemcode + '" value="a-8010^' + itemcode + '^' + name + '^' + price + '^' + quantity + '^^^^' + weight + '">' + "\n";
	});
	$("#cartcheckoutform .products").html(html);
	// alert(html);
	$("#cartcheckoutform").submit();
	$(".productinfowrapper").hide();
	$("#americart-wrapper").show();
	// alert(html);
}

MyApp.emptycart = function(url, opt) {
	
	if(!opt) {
		var opt = {};
	}
	
	if(!opt.callback) {
		opt.callback = function(response) {};	
	}
	
	GabeUtil.ajaxRequest('get', url, {
		onLoad : function(response) {
			opt.callback(response);
		}
	}, 'json');
	
}

MyApp.getcart = function(targetdiv, url, opt) {
	
	if(!opt) {
		var opt = {};
	}
	
	if(!opt.setUrl) {
		opt.setUrl = null;
	}
	
	GabeUtil.ajaxRequest('get', url, {
						 
		onLoad : function(response) {
			
			$(targetdiv).html(response);
			
			$("#cartcheckoutbtn").click(function(event) {
				MyApp.submitCartCheckout();
			});
			
			$("#cartemptybtn").click(function(event) {
				var conf = confirm("Are you sure you would like to empty your shopping cart?");
				if(!conf) {
					return;		
				}
				MyApp.emptycart("request/emptycart.php", {
					callback : function(response) {
						MyApp.getcart(targetdiv, url, opt);	
					}			  
				});
			});
			
			$(".savequantitybtn").click(function(event) {
				var id = $(this).metadata().id;
				var quantity = parseInt($(this).prev().val(), 10);
				MyApp.setcartitem(id, quantity, opt.setUrl, {
					success : function(response) {
						if(response.status == 'OK') {
							MyApp.getcart(targetdiv, url, opt);
							// window.location.href = 'cart.php';
						} else {
							alert(response.message);
						}
					}
				});
			});
			
			$(".removeproductbtn").click(function(event) {
				var conf = confirm("Would you like to remove this item from your shopping cart?");
				if(!conf) {
					return false;
				}
				var id = $(this).metadata().id;
				var quantity = 0;
				MyApp.setcartitem(id, quantity, opt.setUrl, {
					success : function(response) {
						if(response.status == 'OK') {
							MyApp.getcart(targetdiv, url, opt);
							// window.location.href = 'cart.php';
						} else {
							alert(response.message);
						}
					}
				});
			});
			
		}
		
	});
	
}

MyApp.addtocart = function(id, quantity, url, opt) {
	if(!opt) {
		var opt = {};	
	}
	if(!opt.success) {
		opt.success = function(response) {};
	}
	if(!url) {
		url = '/request/addtocart.php';
	}
	var newurl = url + '?id=' + id + '&quantity=' + quantity;
	// alert(newurl);
	GabeUtil.ajaxRequest('get', newurl, {
		onOK : function(response) {
			opt.success(response);
		},
		onERROR : function(response) {
		}
	}, 'json');
}

MyApp.setcartitem = function(id, quantity, url, opt) {
	if(!opt) {
		var opt = {};	
	}
	if(!opt.success) {
		opt.success = function(response) {};
	}
	if(!url) {
		url = '/request/setcartitem.php';
	}
	var newurl = url + '?id=' + id + '&quantity=' + quantity;
	// alert(newurl);
	GabeUtil.ajaxRequest('get', newurl, {
		onLoad : function(response) {
			// alert(response);	
		},
		onOK : function(response) {
			opt.success(response);
		},
		onERROR : function(response) {
		}
	}, 'json');
}

MyApp.registerDeleteContent = function(opt) {
	if(!opt.successCallback) {
		opt.successCallback = function(response) {
		}	
	}
	$(".deletecatbtn").click(function(event) {
		var conf = confirm("Are you sure you would like to delete this item?");
		if(!conf) {
			return;
		}
		var id = $(this).metadata().id;
		var url = 'request/deletepost.php?id=' + id + '&ts=' + Math.random();
		GabeUtil.ajaxRequest('get', url, {
			onOK : function(response) {
				opt.successCallback(response);		 
			}
		}, 'json');
	});
}

MyApp.registerAttributeDiv = function(parent) {
	$(".deleteattribute", $(parent)).click(function(event) {
		var conf = confirm("Are you sure you would like to delete this item?");
		if(!conf) {
			return;
		}
		$(this).closest("div.relatedprod").remove();
	});		
	$(".numericfield", parent).keyup(function(ev) {
		this.value = this.value.replace(/[^0-9]+/g, "");
	});
}