/*
 * 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;
  }
}

/*
 * If the default value is in the field when the user clicks on it,
 * clear the input box.
 */
function clickclear(thisfield, defaulttext) {
  if (thisfield.value == defaulttext) {
    thisfield.value = "";
  }
}

/*
 * If the field contains nothing when it loses focus, put the
 * default value back
 */
function clickrecall(thisfield,defaulttext){
    if (thisfield.value == "") {
      	thisfield.value = defaulttext;
  	}
}

/*
 * Strip out all non-numeric characters. If nothing is left, set to
 * the specified default. If multiple is set, change value to the
 * next lowest multiple.
 */
function validateNumericField(thisfield, defaulttext,multiple) {

  /* strip out non numeric characters */
  thisfield.value  = thisfield.value.replace(/[^0-9]/g, ''); 
  
  /* If there's no value in the field, set it to the default */
  clickrecall(thisfield,defaulttext);

  /* if multiple is set, update the value to be the next lowest multiple */
  if (multiple != null) {
    var val = thisfield.value - 0;
    val = val - (val % multiple);
    thisfield.value = val;
  }
}

/*
 * When the user selects anything in the print options list, disable the initial text
 */
function disableOption(idToDisable) {
  if (idToDisable == null) {
  	return;
  }
  
  var option = document.getElementById(idToDisable);
  option.disabled = true;
}

/*
 * Update the print quantity box if it's set to zero.
 */
function updatePrintQuantity(id) {
	if (id == null) {
		return;
	}
	
	var quantity = document.getElementById(id);
	if (quantity.value == "0") {
	  quantity.value = "1";
	}
}

/*
 * Update the subtotal
 */
function updateSubtotal() {
	
	var quantityPrint = document.getElementById('quantityPrint').value - 0;
	var quantityNotecard = document.getElementById('quantityNotecard').value - 0;
	var printOptions = document.getElementById('printOptions');
	var selectedOption = printOptions.options[printOptions.selectedIndex];
	
	var subtotal = 0.00;
	
	//calculate print subtotal
	if (quantityPrint > 0) {
		if (selectedOption.id != 'selectPrintOptions') {
			var split = selectedOption.value.split("-");
			if (split.length == 4) {
				var price = split[3] - 0.0;
				subtotal = quantityPrint * price;
			}
		}
	}
	
	//add notecard price
	if (quantityNotecard > 0) {
		var price = 0.0;
		for (var i=0;i<notecardQuantities.length;i++){
			if (quantityNotecard <= notecardQuantities[i]) {
				price = notecardPrices[i];
				break;
			}
		}
		subtotal += (quantityNotecard * price);
	}
	
	//change the displayed subtotal
	var subtotalField = document.getElementById("subtotal");
	subtotalField.value = "$" + subtotal.toFixed(2);
}

/*
 * Submit a form
 *
 */
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;
}

/*
 * Change image source for the given image
 */
function updateImage(id, newSrc) {
	var image = document.getElementById(id);
	image.src = newSrc;
}

function toggle(divID) {
	var e = document.getElementById(divID);
	if (e.style.display == "") {
		if (e.className == "closed") {
			e.style.display = "block";
		} else {
			e.style.display = "none";
		}
	} else if (e.style.display == "none") {
		e.style.display = "block";
	} else {
		e.style.display = "none";
	}
}

/*
 * Tab functions
 */
function setTab(tabNum,totalTabs){

	if (tabNum > totalTabs)
		return;
		
	//get tabs and tab links
	var tabs = new Array();
	var tabLinks = new Array();
	var tabItems = new Array();
	for (var i=0;i<totalTabs;i++) {
		tabs[i] = document.getElementById("tab"+i);
		tabLinks[i] = document.getElementById("tabLink"+i);
		tabItems[i] = document.getElementById("tabItem"+i);
	}
	
	//hide all tabs and reset links
	for (var i=0;i<totalTabs;i++) {
		tabs[i].style.display = "none";
		tabLinks[i].href="javascript:setTab(" + i + "," + totalTabs + ");void 0;";
		tabItems[i].className="";
	}
	
	//display selected tab
	tabs[tabNum].style.display="block";
	tabLinks[tabNum].href = "javascript:this.blur();";	
	tabItems[tabNum].className = "selected";
	tabLinks[tabNum].blur();
	
}

/*
 * 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;
	}
	
}

function showEnlarge(itemCode) {
	
	if (Browser.Version() <= 6) {
		//turn off overlay, no fixed positioning for IE <= 6
		var enlargeOverlay = document.getElementById("enlargeOverlay");
		if (enlargeOverlay != null) {
			enlargeOverlay.style.display = "none";
		}
		
		//turn off shadows, no png24 support for IE <= 6
		var shadow = document.getElementById("shadow");
		if (shadow != null) {
			shadow.style.display = "none";
		}
	} 
	
	var enlargeView = document.getElementById("enlargeContainer");
	if (enlargeView == null) {
		return;
	}

	var enlargeImage = document.getElementById("enlargeImage");
	if (enlargeImage != null) {
		enlargeView.style.display = "block";
		enlargeImage.src="/images/5/" + itemCode + ".jpg";
	}
	
}

function hideEnlarge() {
	
	var enlargeView = document.getElementById("enlargeContainer");	

	if (enlargeView != null) {
		enlargeView.style.display = "none";
	}
	
}

/*
 * functions for drop down menus
 */
var timeout	= 500;
var closetimer = 0;
var oldtimers = [];
var ddmenuitem = 0;
var ddsubmenuitem = 0;

// open hidden layer
function menuOpen(id) {	

	// cancel close timer
	menuCancelClosetime();

	// close old layers
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
	if(ddsubmenuitem) ddsubmenuitem.style.visibility = 'hidden';
	
	// get new layer and show it
	ddmenuitem = document.getElementById(id);
	ddmenuitem.style.visibility = 'visible';

}
function menuOpenSub(id) {
	
	// cancel close timer
	menuCancelClosetime();

	// close old layer
	if(ddsubmenuitem) ddsubmenuitem.style.visibility = 'hidden';

	// get new layer and show it
	ddsubmenuitem = document.getElementById(id);
	if(ddsubmenuitem) ddsubmenuitem.style.visibility = 'visible';

}
// close all layers
function menuClose() {
	if(ddmenuitem) ddmenuitem.style.visibility = 'hidden';
	if(ddsubmenuitem) ddsubmenuitem.style.visibility = 'hidden';
}

//close submenu
function submenuClose() {

	if(ddsubmenuitem) ddsubmenuitem.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; 
 
