var deleteOrder = "Are you sure you want to delete this order?"
var copyOrder = "All specials and coupons will be recalculated."
var deleteShipment = "All order items link to this shipment will need to be assigned to another shipment. Are you sure you want to delete this shipment?"
var deleteSpecial = "Are you sure you want to delete this special? It will not longer work for your customers."
var deleteCoupon = "Are you sure you want to delete this coupon? It will not longer work for your customers."
var deleteList = "Are you sure you want to delete this list?"
var deleteListItems = "Are you sure you want to delete the selected list items?"
var deleteBrand = "Are you sure you want to delete this brand? All products in this brand will no longer show up on the web site."
var deletePage = "Are you sure you want to delete this page? All links to this page will be broken."
var deletePayment = "Are you sure you want to delete this payment?"
var cancelCouponWizard = "Are you sure you want to cancel the coupon wizard? Your changes will be lost."
var cancelSpecialWizard = "Are you sure you want to cancel the special wizard? Your changes will be lost."
var editProcessedPayment = "This payment has already been processed. Are you sure you want to edit it?"
var deleteProcessedPayment = "This payment has already been processed. Are you sure you want to delete it?"
var deleteCategory = "Are you sure you want to delete this category? \n\n Each product that uses this category as its primary category will have a new primary category assigned from their secondary categories. If there are no other categories assigned for these products, they will no longer appear on the web site until you assign them a new primary category!"
var deleteDivision = "Are you sure you want to delete this division?"
var deleteProduct = "Are you sure you want to delete this product?"
var deleteOption = "Are you sure you want to delete this option?"
var deleteProductCategory = "Are you sure you want to remove this product from this category?"
var deleteBlogTopic = "Are you sure you want to delete this blog topic? All blog entries associated with this topic will be unassigned."

var browserType;

if (document.layers) {browserType = "nn4"}
if (document.all) {browserType = "ie"}
if (window.navigator.userAgent.toLowerCase().match("gecko")) 
{
	browserType= "gecko"
}

// Hide Element
function hide(elementid) {
	if (browserType == "gecko" )
		document.poppedLayer = eval('document.getElementById("' + elementid + '")');
	else if (browserType == "ie")
		document.poppedLayer = eval('document.getElementById("' + elementid + '")');
	else
		document.poppedLayer = eval('document.layers["' + elementid + '"]');
	
	document.poppedLayer.style.display = "none";
}

// Show Element
function show(elementid, block) {
	if (browserType == "gecko" )
		document.poppedLayer = eval('document.getElementById("' + elementid + '")');
	else if (browserType == "ie")
		document.poppedLayer = eval('document.getElementById("' + elementid + '")');
	 else
		document.poppedLayer = eval('document.layers["' + elementid + '"]');
	
	if ( block )
		document.poppedLayer.style.display = "block";
	else
		document.poppedLayer.style.display = "inline";
}	

function disableKey( e, code )
{
	var key;     
	
	if(window.event)
		key = window.event.keyCode; //IE
	else
		key = e.which; //firefox     

	return (key != code);
}

function toggleEditableTextBox( checkBoxId, textBoxId )
{
	textbox = document.getElementById( textBoxId );
	checkBox = document.getElementById( checkBoxId );
	
	if ( checkBox.checked )
		textbox.readOnly = false;
	else
		textbox.readOnly = true;
}

function allowKeyStroke( id )
{
	if ( document.getElementById(id).checked )
		return true;
	else
	{
		return false;
	}
}

//function alphaNumericCheck( id ){
//	
//	var regex = /^[0-9]+$/;  //^[0-9a-zA-z]+$/
//	var textBox = document.getElementById( id );
//	
//	if( regex.test(textBox.value.replace("$", "")))
//	{
//		alert("true")
//		return true;
//	}
//	else
//		return false;
//}

function loadQuantityDiscount( txtPrice, txtQuantityPrice )
{
	var price = document.getElementById( txtPrice );
	var quantityPrice = document.getElementById( txtQuantityPrice  );
	
	price.value = quantityPrice.value;
}

function calculateTotal()
{
	var itemTotal = document.getElementById("txtItemTotal").value.replace("$","");
	var shipping = document.getElementById("txtShipping").value.replace("$","");
	var tax = document.getElementById("txtTax").value.replace("$","");
	var discount = document.getElementById("txtDiscount").value.replace("$","");
	var total = document.getElementById("txtFinalTotal");

	if (!isFloat(itemTotal))
		itemTotal = 0.00;
		
	if (!isFloat(shipping))
		shipping = 0.00;
		
	if (!isFloat(tax))
		tax = 0.00;
		
	if (!isFloat(discount))
		discount = 0.00;
	
	total.value = ((parseFloat(itemTotal) + parseFloat(shipping) - parseFloat(discount)) + parseFloat(tax)).toFixed(2);
	total.value = "$" + total.value
}

function checkForDollarSign( currency )
{
	var textbox = document.getElementById(currency);
	
	// Remove any dollar signs in case they are in the wrong place
	textbox.value = textbox.value.replace("$", "");
	
	// Ensure that the value in the text box is a float
	if ( !isFloat(textbox.value) )
		textbox.value = "0.00";
	
	// Add a dollar sign in the correct position
	textbox.value = "$" + parseFloat(textbox.value).toFixed(2);
}

function checkForPercentSign( percent )
{
	var textbox = document.getElementById( percent );
	
	// Remove any dollar signs in case they are in the wrong place
	textbox.value = textbox.value.replace("%", "");
	
	// Ensure that the value in the text box is a float
	if ( !isFloat(textbox.value) )
		textbox.value = "0.00";
	
	// Add a percent sign in the correct position
	textbox.value = textbox.value + "%";
}

function validateNumber( id, defaultNumber )
{
	var textbox = document.getElementById( id )

	if ( !isInteger(textbox.value) )
		textbox.value = defaultNumber
}

function isFloat(s) 
{
	return (s.toString().search(/^-?[0-9.]+$/) == 0);
}

function isInteger(s) 
{
	return (s.toString().search(/^-?[0-9]+$/) == 0);
}

function setCreditCardPanels( id )
{
	var payment = document.getElementById(id)

	try
	{
		if ( payment.options[payment.selectedIndex].value == 0 )
		{
			show( "pnlNewCard" );
			show( "pnlRemember" );
			show( "pnlCardAddress" );
		}
		else
		{
			hide( "pnlNewCard" );
			hide( "pnlRemember" );
			hide( "pnlCardAddress" );
		}
	}
	catch(err)
	{
		// this is here because the panels do not exists for ie6 when editing a check
	}
	
}

function setDisplay( statusTextBoxId, panelId, block )
{
	if ( document.getElementById(statusTextBoxId).value == "true" )
		show(panelId, block );
	else
		hide(panelId);
}

function toggleDisplay( statusTextBoxId, panelId, block )
{
	if ( document.getElementById(statusTextBoxId).value == "true" )
		document.getElementById(statusTextBoxId).value = "false";
	else
		document.getElementById(statusTextBoxId).value = "true";
		
	setDisplay( statusTextBoxId, panelId, block );
}

function updateDivStatus( panelId, titleId )
{
	var html = document.getElementById( titleId ).innerHTML
	var panel = document.getElementById( panelId ).style.display
	
	if ( panel == "none" )
		html = html.replace("-", "+")
	else
		html = html.replace("+", "-")
		
	document.getElementById( titleId ).innerHTML = html
}

function addAndCloseBillingPop()
{
	var address = "";
	
	address = address + document.getElementById("txtFirstName").value + " ";
	address = address + document.getElementById("txtLastName").value + "<br />";
	address = address + document.getElementById("txtAddress1").value + "<br />";
	
	if ( document.getElementById("txtAddress2").value != "" )
		address = address + document.getElementById("txtAddress2").value + "<br />";
	
	if (document.getElementById("ddlCountry").value = "United States")
		address = address + document.getElementById("txtCity").value + ", " + document.getElementById("ddlState").value + " ";
	else
		address = address + document.getElementById("txtCity").value + "<br />" + document.getElementById("txtIntlState").value;
	
	address = address + document.getElementById("txtZip").value + "<br />";
	address = address + document.getElementById("ddlCountry").value;

	document.getElementById("pnlAddressBox").innerHTML = address;
	
	popBillingAddress.hidePopup();
}

function checkForName()
{
	if (( document.getElementById("txtFirstName").value == "" ) || ( document.getElementById("txtLastName").value == "" ))
	{
		alert("Customer's full name is required.");
		return false;
	}
}

function viewReceipt( oid )
{
	window.open("/admin/order/receipt.aspx?oid=" + oid, "receipt_" + oid, "width=1000,height=700,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes");
}

function viewPackingSlip( oid )
{
	window.open("/admin/order/packing-slip.aspx?oid=" + oid, "packingSlips_" + oid, "width=1000,height=700,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes");
}

var browserType;

if (document.layers) {browserType = "nn4"}
if (document.all) {browserType = "ie"}
if (window.navigator.userAgent.toLowerCase().match("gecko")) 
{
	browserType= "gecko"
}

// Maxamize window size
function maximize() {
  window.moveTo(0, 0);
  window.resizeTo(screen.width, screen.height);
}
	
function selectAll(id) {
    document.getElementById(id).focus();
    document.getElementById(id).select();
}

function hideQuickSearch(elementid) 
{
	createCookie("hideSearch","true",1)
	hide(elementid,"false");
}

function showQuickSearch(elementid) 
{
	createCookie("hideSearch","false",1)
	show(elementid,"false");

}

function toggleMoreOptions(elementid) 
{
	if (readCookie("moreOptions") == "true") 
	{
		createCookie("moreOptions","false",1)
		hide(elementid,"false");
	}
	else
	{
		createCookie("moreOptions","true",1)
		show(elementid,"false");
	}
}

function showMoreOptions(elementid) 
{
	createCookie("moreOptions","true",1)
	show(elementid,"false");
}

function hideShoppingCart(elementid) 
{
	createCookie("hideCart","true",1)
	hide(elementid,"false");

}

function showShoppingCart(elementid) 
{
	createCookie("hideCart","false",1)
	show(elementid,"false");
	
	return false;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}


var b_timer = null; // blink timer
var b_on = true; // blink state
var blnkrs = null; // array of spans

function blink() {
	var tmp = document.getElementsByTagName("span");
	
	if (tmp) {
		blnkrs = new Array();
		var b_count = 0;
		
		for (var i = 0; i < tmp.length; ++i) {
			if (tmp[i].className == "blink") {
				blnkrs[b_count] = tmp[i];
				++b_count;
			}
		}

		// time in m.secs between blinks
		// 500 = 1/2 second
		blinkTimer(2500);
	}
}

function blinkTimer(ival) {
	if (b_timer) {
		window.clearTimeout(b_timer);
		b_timer = null;
	}
	
	blinkIt();
	b_timer = window.setTimeout('blinkTimer(' + ival + ')', ival);
}

function blinkIt() {
	for (var i = 0; i < blnkrs.length; ++i) {
		if (b_on == true) {
			if (browserType == "ie")
				blnkrs[i].style.visibility = "hidden";
			else
				opacity(blnkrs[i].id, 99, 30, 2500)
		}
		else {
			if (browserType == "ie")
				blnkrs[i].style.visibility = "visible";
			else
				opacity(blnkrs[i].id, 30, 99, 2500)
		}
	}
	b_on =!b_on;
} 


function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")"; 
} 

function centerDiv(Xwidth,Yheight,divid) 
{ 	
	// First, determine how much the visitor has scrolled 
	var scrolledX, scrolledY; 
	
	if( self.pageYOffset ) { 
		scrolledX = self.pageXOffset; 
		scrolledY = self.pageYOffset; 
	} else if( document.documentElement && document.documentElement.scrollTop ) { 
		scrolledX = document.documentElement.scrollLeft; 
		scrolledY = document.documentElement.scrollTop; 
	} else if( document.body ) { 
		scrolledX = document.body.scrollLeft; 
		scrolledY = document.body.scrollTop; 
	} 

	// Next, determine the coordinates of the center of browser's window 
	var centerX, centerY; 
	if( self.innerHeight ) { 
		centerX = self.innerWidth; 
		centerY = self.innerHeight; 
	} else if( document.documentElement && document.documentElement.clientHeight ) { 
		centerX = document.documentElement.clientWidth; 
		centerY = document.documentElement.clientHeight; 
	} else if( document.body ) { 
		centerX = document.body.clientWidth; 
		centerY = document.body.clientHeight; 
	} 

	// Xwidth is the width of the div, Yheight is the height of the 
	// div passed as arguments to the function: 
	var leftOffset = scrolledX + (centerX - Xwidth) / 2; 
	var topOffset = scrolledY + (centerY - Yheight) / 2; 
	
	// The initial width and height of the div can be set in the 
	// style sheet with display:none; divid is passed as an argument to // the function 
	var o=document.getElementById(divid); 
	var r=o.style; 
	
	r.position='absolute'; 
	r.top = topOffset + 'px'; 
	r.left = leftOffset + 'px'; 
	r.display = "block"; 
} 

function checkCardNumber( id, outId )
{
	var cardNumber = document.getElementById( id ).value;

	var re = /^(((4\d{3})|(5[1-5]\d{2})|(6011))[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4})|(3[4,7][\d\s-]{13})|(4[\d\s-]{12})$/

	if (re.test(cardNumber))
		document.getElementById( outId ).style.color = "#0daf01";
	else
		document.getElementById( outId ).style.color = "#ff0000";

	return re.test(cardNumber);
}

function testFileType( fileName, fileTypes ) 
{
	if (!fileName) return;

	dots = fileName.split(".")
	
	//get the part AFTER the LAST period.
	fileType = dots[dots.length-1];

	if (fileTypes.join(".").indexOf(fileType) != -1)
		return true;
	else
	{
		alert("Please only upload files that end in types: \n\n" + (fileTypes.join(" .")) + "\n\nPlease select a new file and try again.");
		return false;
	}
}

var TimeToFade = 1000.0;

function fade(eid)
{
	var element = document.getElementById(eid);
	
	if(element == null)
		return;
   
	if(element.FadeState == null)
	{
		if(element.style.opacity == null 
			|| element.style.opacity == '' 
			|| element.style.opacity == '1')
		{
			element.FadeState = 2;
		}
		else
		{
			element.FadeState = -2;
		}
	}
    
	if(element.FadeState == 1 || element.FadeState == -1)
	{
		element.FadeState = element.FadeState == 1 ? -1 : 1;
		element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
	}
	else
	{
		element.FadeState = element.FadeState == 2 ? -1 : 1;
		element.FadeTimeLeft = TimeToFade;
		setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
	}  
}

function animateFade(lastTick, eid)
{  
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;
  
	var element = document.getElementById(eid);
 
	if(element.FadeTimeLeft <= elapsedTicks)
	{
		element.style.opacity = element.FadeState == 1 ? '1' : '0';
		element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
		element.FadeState = element.FadeState == 1 ? 2 : -2;
		return;
	}
 
	element.FadeTimeLeft -= elapsedTicks;
	
	var newOpVal = element.FadeTimeLeft/TimeToFade;
	
	if(element.FadeState == 1)
		newOpVal = 1 - newOpVal;

	element.style.opacity = newOpVal;
	element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
  
	setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

function hideWaterMark(textboxID, text) 
{
	if (document.getElementById(textboxID).value == text)
	{
		document.getElementById(textboxID).value = '';
		document.getElementById(textboxID).style.color = '#333';
	}
}

function showWaterMark(textboxID, text) 
{
	if (document.getElementById(textboxID).value == '')
	{
		document.getElementById(textboxID).value = text;
		document.getElementById(textboxID).style.color = '#999';
	}
}