var isDHTML = 0;
var isLayers = 0;
var isAll = 0;
var isID = 0;
var navActive = false;
var previousMainMenu = null;
var previousSubMenu = null;
var prevMenu = null;
var newTop = new Number();
var newLeft = new Number();
var oldCallie = null;
var prevOver = '';
var cat = null;
var subcat = null;
var mode = null;
var submode = null;
var id = null;
var linkID = null;
var prodName = '';

if (document.getElementById) {
	isID = 1;
	isDHTML = 1;
}else {
	if (document.all) {
		isAll = 1;
		isDHTML = 1;
	}else {
		browserVersion = parseInt(navigator.appVersion);
		if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) {
			isLayers = 1;
			isDHTML = 1;
		}
	}
}


/*
* Change a DHTML object
*/
function changeDiv(the_div)
{
	var the_style = getStyleObject(the_div);
	if (the_style != false) {
		if(the_style.display == 'none'){
			the_style.display = 'block';
		}else{
			the_style.display = 'none';
		}
	}
}

/*
* Clear all DIVs with specified
* prefix, then change specified DIV's
* display property
*/
function selectSubProperty(the_div, the_prefix){
	
	// hide all other engine pulldowns
	hideAll(the_prefix);
	
	// then show specified div
	changeDiv(the_div,'block');
	
}

/*
* hide all objects with specified prefix
*/
function hideAll(prefix)
{
	tmp = "";

	// get all DIV ids
	var theItems = document.getElementsByTagName("DIV");
	for (i=0;i<theItems.length;i++){
		
		theName = new String(theItems[i].id);
		if(theName.indexOf(prefix) > -1){
			tmp += theName + '\n';
			changeDiv(theName,'none');
		}
	}
}

/*
* get the style of an object
*/
function getStyleObject(objectId) {
	if (document.getElementById && document.getElementById(objectId)) {
		return document.getElementById(objectId).style;
	} else if (document.all && document.all(objectId)) {
		return document.all(objectId).style;
	} else {
		return false;
	}
}

/**
* Enable/disable form elements
*/
function changeDisabled(formObj,current){
	for(i=0; i< formObj.length; i++){
		element = formObj.elements[i];
		if(	(
				element.type == 'select-multiple' || 
				element.type == 'select-one' || 
				element.type == 'text' || 
				element.type == 'textarea' || 
				element.type == 'checkbox' || 
				element.type == 'file' || 
				element.type == 'button'
			) && element.name != current
		){
			element.disabled = false;	
		}
	}
	// change country to US if region is US
	if(formObj.elements[current].value == 1){
		formObj.elements['country'].value = 1;
	}else{
		formObj.elements['state'].value = -1;	
	}
}

/**
* Category section - Update the value of 'theMode' and 
* submit form when user clicks to remove a selected image
*/
function catRemoveImage(formObj){
	formObj.elements['theMode'].value = "DELETE_IMAGE";
	formObj.submit();
}

/**
* Function used by admin category section to confirm that a valid
* category has been selected.
*/
function checkSelectedCat(formObj)
{
	// submit the form if a valid category has
	// been selected
	if(formObj.elements['selectCat'].value > 0){
		formObj.elements['theMode'].value = "EDIT";
		formObj.elements['imageCatID'].value = formObj.elements['selectCat'].value;
		formObj.submit();
		return true;	
	}else{
		return false;	
	}
}

/**
* Function used by admin category section to confirm that a valid
* product has been selected.
*/
function checkProductSelected(formObj)
{
	// submit the form if a valid category has
	// been selected
	if(formObj.elements['select_pid'].value > 0){
		formObj.elements['theMode'].value = "EDIT";
		formObj.elements['pid'].value = formObj.elements['select_pid'].value;
		formObj.submit();
		return true;	
	}else{
		return false;	
	}
}

function myConfirm(formObj,name,msg,msg2){
	var id = new Number(formObj.elements[name].value);
	if(id > 0){
		return confirm(msg);
	}else{
		alert(msg2);
		return false;	
	}
}

function confirmAppSelected(formObj){
	var sel_id = new Number(formObj.elements['app_id'].value);
	if(sel_id > 0){
		return true;
	}else{
		alert("Please select an application to edit.");
		return false;	
	}
}

// confirm that an application has been selected - for deletion
function deleteApp(formObj){
	var del_id = new Number(formObj.elements['app_id'].value);
	if(del_id > 0){
		if(confirm('Are you sure?')){
			return true;
		}else{
			return false;	
		}
	}else{
		alert('Select application to delete.');
		return false;	
	}
}

// change the submitted form's action to direct to a specific anchor
function changeAnchor(theAnchor)
{
	document.forms[0].action += theAnchor;	
}


/*
* General pull-down submission check
* @args theValue
* @args formObj
*/
function checkSelectChange(theValue,formObj){
	if(theValue > 0){
		formObj.submit();	
	}	
}

// check category selected on admin page
function checkCat(value,anchorName,id){
	if(value >= 1 || value == "-1"){
		document.forms[0].elements['anchor'].value = anchorName;
		document.forms[0].elements['app_index'].value = id;
		document.forms[0].elements['update_mode'].value = anchorName;
		document.forms[0].action += "#" + anchorName;
		document.forms[0].submit();
	}else{
		return false;
	}
}

// see which orders to print
function printOrders(formObj,newWidth,newHeight,url,singleOrderNum){
	
	var id = new Array();
	
	// count number of checked orders
	if(singleOrderNum==null){
		for(i=0;i<formObj.elements.length;i++){
			temp = new String(formObj.elements[i].name);
			if(temp.match(/print_/) && formObj.elements[i].checked){
				temp = temp.replace(/[^0-9]/g,"");
				id[id.length] = temp;
			}
		}
	}else{
		id[id.length] = singleOrderNum;
	}
	
	// pass selected order numbers to php
	if(id.length == 0){
		alert('Please select at least one order to print');	
	}else{
		openWin(newWidth,newHeight,url + '&id=' + id,1)
	}
	
	return false;
}

// Make sure all options are checked before user can add
// an item to cart
function validateProd(formObj)
{
	var errors = new Array();
	var message = new String();
	var tmp = new String();
	var asc_prods = new Array();
	
	// 1) check quantity
	var quantity = new String(formObj.elements['quantity'].value);
	quantity = quantity.replace(/[^0-9]/g,"");
	if(quantity.length == 0){
		errors[errors.length] = "please enter a quanity";	
	}
	
	// 2) see if there are any options & make srue they're selected
	if(formObj.elements['main_option']){
		if(formObj.elements['main_option'].length > 0){
			checked = 0;
			for(i=0;i<formObj.elements['main_option'].length;i++)
			{
				if(formObj.elements['main_option'][i].checked){
					checked = 1;
					break;
				}
			}
			if(!checked){
				errors[errors.length] = "Please select product option";
			}
		}
	}
	
	// 3) see if there are any associated proudcts
	for(i=0;i<formObj.elements.length;i++){
		tmp = new String(formObj.elements[i].name);
		if(tmp.match(/asc_prod_/)){
			
			// add associated product objects to an array
			asc_prods[asc_prods.length] = formObj.elements[i];	
		}	
	}
	
	// 4) see if associated products have options
	for(i=0;i<asc_prods.length;i++){
		if(asc_prods[i].checked){
			
			// pull out actual product name from checkbox name
			name = new String(asc_prods[i].name);
			name = name.replace(/^.+[0-9]_/,"");
			tmp = new String(asc_prods[i].name);
			tmp = tmp.replace(/asc_prod_/,"");
			tmp = tmp.replace(/_.+/,"");
			if(tmp.length > 0){

				// 5) make sure associated product options are selected
				if(formObj.elements["prod_" + tmp + "_option"]){
					var checked = 0;
					for(j=0; j<formObj.elements["prod_" + tmp + "_option"].length; j++){
						if(formObj.elements["prod_" + tmp + "_option"][j].checked){
							checked = 1;
							break;
						}
					}
					if(!checked){
						errors[errors.length] = name + "\n - Please select option";
					}
				}
			}
		}
	}
	
	// 6) show errors if there are any, return true if there are none
	if(errors.length > 0){
		message = "";
		for(i=0;i<errors.length;i++)
		{
			message += errors[i] + '\n\n';
		}	
		alert(message);
		return false;
	}else{
		return true;	
	}
}

function checkQuantity(form){

	var value = new String(form.elements['quantity'].value);
	var size = new String(form.elements['size'].value);
	var message = new String("");
	var error = false;
	value = trimString(value);
	size = trimString(size);
	if(value.match(/[^0-9]/) || value.length == 0){
		message += "please enter a numeric quantity.\n '"+value+"' is not a valid number.";
		error = true;
	}
	if(size.match(/SELECT SIZE/) || size.length == 0){
		message += "please select a size.";
		error = true;
	}
	if(error){
		alert(message);
		return false;
	}else{
		return true;
	}
}

/* ???? */
function confirmCatChange(value)
{
	var msg = "Change associated category hierarchy?";
	if(confirm(msg)){
		return true;
	}else{
		return false;
	}
}

function confirmDelete(message,submode,id){
	if(confirm(message)){
		window.location = "?submode="+submode+"&id="+id;
	}else{
		return false;
	}
}



function findDOM(objectID,withStyle){

	if (withStyle == 1) {
		if (isID) {
			if(document.getElementById(objectID).style != null){
				return (document.getElementById(objectID).style); 
			}
		}else { 
			if (isAll) {
				if(document.all[objectID].style != null){
					return (document.all[objectID].style); 
				}
			}else {
				if (isLayers) {
					if(document.layers[objectID] != null){
						return (document.layers[objectID]);
					}
				}
			};
		}
	}else {
		if (isID) {
			if(document.getElementById(objectID) != null){
				return (document.getElementById(objectID)); 
			}
		}else { 
			if (isAll) {
				if(document.all[objectID] != null){
					return (document.all[objectID]); 
				}
			}else {
				if (isLayers) {
					if(document.layers[objectID] != null){
						return (document.layers[objectID]); 
					}
				}
			};
		}
	}
}

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function openWin(width,height,url,scroll){
	var top = Math.ceil((screen.height/2)-(height/2));
	var left = Math.ceil((screen.width/2)-(width/2));
	if(height >= screen.height - 66){
		height = screen.height - 66;
		top = 0;
	}
	newWin = window.open(url,'newWin','WIDTH='+width+",HEIGHT="+height+",TOP="+top+",LEFT="+left+",menubar=0,scrollbars="+scroll+",titlebar=0,toolbar=0");
	newWin.focus();
}

function trimString(text){
	text = new String(text);
	text = text.replace(/^\s+/,'');
	text = text.replace(/\s+$/,'');
	return text;
}

// This enables the checkout button
function acceptTerms(checkbox,checkOutUrl){
	var checkout = document.getElementById('checkoutLink');
	if(checkbox.checked){
		checkout.firstChild.src = checkout.firstChild.src.replace('button.checkout.disabled.gif','button.checkout.gif');
		checkout.href = checkOutUrl + '?terms=1';
	}else{
		checkout.firstChild.src = checkout.firstChild.src.replace('button.checkout.gif','button.checkout.disabled.gif');
		checkout.href = null;
	}
}