/*
 * Determine IE version.
 */
 var Browser = {
  Version: function() {
    var version = 999; 
    if (navigator.appVersion.indexOf("MSIE") != -1) {
      version = parseFloat(navigator.appVersion.split("MSIE")[1]);
     }
    return version;
  }
}

function clickclear(thisfield, defaulttext) {
  if (thisfield.value == defaulttext) {
    thisfield.value = "";
  }
}

function clickrecall(thisfield,defaulttext){
    if (thisfield.value == "") {
      	thisfield.value = defaulttext;
  	}
}

function submit(id) {
	var form = document.getElementById(id);
	form.submit();
}

/*
 * Remove item from shopping cart
 */
function removeItem(id){
	var quantityField = document.getElementById(id);
	quantityField.value=0;
}


/*
 * update menus when shipping options change
 */
function updateShipping() {
	var country = document.getElementById("country");
	var state = document.getElementById("state");

		
	if (country.options[country.selectedIndex].text == "United States") {
		state.disabled = false;
	} else {
		state.disabled = true;
	}
	
}

/*
 * utility for creating cross browser XMLHttpRequest objects
 */
function getNewRequest() {
	
	if (typeof XMLHttpRequest == 'undefined') {
		XMLHttpRequest = function () {
		  var msxmls = ['MSXML3', 'MSXML2', 'Microsoft']
		  for (var i=0; i < msxmls.length; i++) {
		    try {
		      return new ActiveXObject(msxmls[i]+'.XMLHTTP')
		    }
		    catch (e) { }
		  }
		  return null;
		}
	}
	return new XMLHttpRequest();
}

function BMShowElement(id) {
	var emailForm = document.getElementById(id);
	if (emailForm != null) {
		emailForm.style.display = "block";
	}
}

function BMHideElement(id) {
	var emailForm = document.getElementById(id);
	if (emailForm != null) {
		emailForm.style.display = "none";
	}
}

function showEmailThankYou() {
	BMHideElement("emailToFriend");
	BMShowElement("emailToFriendThankYou");
}

function submitEmailToFriend(itemCode) {

	if (itemCode == null) {
		return;
	}
	
	
	if (Browser.Version() <= 6 || getNewRequest() == null) {
		alert("We're sorry! your browser does not appear to support this functionality.\nWe recommend you upgrade your browser to the latest version.");
		return;
	}
	
	
	xmlReq = getNewRequest();
	
	
	//get user info
	username = document.getElementById("emailToFriendName");
	useremail = document.getElementById("emailToFriendEmail");
	userfriendemail = document.getElementById("emailToFriendFriendEmail");
	comments = document.getElementById("emailToFriendMessage");
	nameValue = "";
	emailValue = "";
	friendEmailValue = "";
	commentsValue = "";
	
	//validate
	errorMessage = "";
	var re = /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i;

	if (username != null) {
		nameValue = username.value;
		if (nameValue == "")
			errorMessage += "- You need to include your name.\n";
	}
	
	if (useremail != null) {
		emailValue = useremail.value;
		if (emailValue == "")
			errorMessage += "- You need to include your email address.\n";
		else
			if (!emailValue.match(re))
				errorMessage += "- Your email address doesn't appear to be properly formatted.\n";
	}
	
	if (userfriendemail != null) {
		friendEmailValue = userfriendemail.value;
		if (friendEmailValue == "")
			errorMessage += "- You need to include your friend's email address.\n";
		else 
			if (!friendEmailValue.match(re))
				errorMessage += "- Your friend's email address doesn't appear to be properly formatted.\n";
	}
	
	if (comments != null) {
		commentsValue = comments.value;
	}		
	
	
	if (errorMessage != "") {
		errorMessage = "Oops, looks like there was a problem:\n" + errorMessage;
		alert(errorMessage);
	} else {
		
		//encode values
		var pairs = [];
		var regexp = /%20/g;
		
		pairs.push("name="+encodeURIComponent(nameValue).replace(regexp,"+"));
		pairs.push("email="+encodeURIComponent(emailValue).replace(regexp,"+"));
		pairs.push("friendemail="+encodeURIComponent(friendEmailValue).replace(regexp,"+"));
		pairs.push("itemCode="+encodeURIComponent(itemCode).replace(regexp,"+"));
		pairs.push("message="+encodeURIComponent(commentsValue).replace(regexp,"+"));
		
			
		//send the info
		xmlReq.open('POST', "/EmailToFriend", true);
		xmlReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	   	xmlReq.send(pairs.join('&'));
	   	
	   	//close the form window and say thanks
	   	showEmailThankYou();		 
	   	
	   	//log to addthis
	   	
	   	var decoratedUrl = addthis.addClickTag(window.location.href,"email");
	   	addthis.logShare(decoratedUrl);
	}
	   	
	
}
function showMe(e,ie) {
	if (ie && Browser.Version() <= ie) return;
	
	var el = document.getElementById(e);
	if (el != null) {
		el.style.visibility = "visible";
	}
}
function hideMe(e) {
	var el = document.getElementById(e);
	if (el != null) {
		el.style.visibility = "hidden";
	}
}

function hideMag() {
	var i=0;
	while (document.getElementById("mag"+i)) {
		hideMe("mag"+i);
		i++;
	}
}

var enlargeActive = false;
var enlarged = false;
function enlargeMouseOver() {
	enlargeActive = true;
}
function enlargeMouseOut() {
	enlargeActive = false;
}
function counter(i,t) {
	if (i == null) return false;
	if (t == null) return false;
	if (Browser.Version() <= 6 || getNewRequest() == null) return false;
	if (t == "enlarge" && enlargeActive == false) return false;
	if (t == "enlarge" && enlarged == true) return false;
	if (t == "enlarge") enlarged = true;
	xmlReq = getNewRequest();
	var pairs = [];
	var regexp = /%20/g;
	pairs.push("i="+encodeURIComponent(i));
	pairs.push("t="+encodeURIComponent(t));
	xmlReq.open('POST', "/count", true);
	xmlReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   	xmlReq.send(pairs.join('&'));
   	return true;
}

/*
 * functions for drop down menus
 */
var timeout	= 250;
var closetimer = 0;
var oldtimers = [];
var ddmenuitem = 0;

// open hidden layer
function menuOpen(id) {	

	// cancel close timer
	menuCancelClosetime();

	// close old layers
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
	
	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';
}

//close all layers
function menuClose() {
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
}

//timer for close all
function menuClosetime() {
	if (closetimer) oldtimers.push(closetimer);
	closetimer = window.setTimeout(menuClose, timeout);
}

// cancel close timer
function menuCancelClosetime() {
	while (oldtimers.length > 0) window.clearTimeout(oldtimers.pop());
	if (closetimer) {
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

// close layer when click-out
document.onclick = menuClose; 

