var allChecked=false;

function addImage(fileUrl) {
	findObj('previewImage').src = fileUrl;
	findObj('imageName').value = fileUrl;
}

function addRows(parent, quantity) {
	var qty			= document.getElementById(quantity).value;
	var rowCount	= document.getElementById('rowCount').value;
	var parentNode	= document.getElementById(parent);

	qty = (qty >= 1)  ? qty: 1;
	qty = (qty <= 20) ? qty: 20;

	for (i=0; i<qty; i++) {
		var newRow		= document.createElement('tr');
		newRow.setAttribute('id', 'orderRow_'+rowCount);
		parentNode.appendChild(newRow);
		newRow.innerHTML = '<td valign="top"><a href="" onclick="return delRow(\'orderRow_'+rowCount+'\')"><img src="admin/images/del.gif" alt="" /></a></td><td valign="top"><input type="hidden" name="id['+rowCount+']" value="" /><input type="text" name="prodName['+rowCount+']" class="textbox" value="" /></td><td valign="top"><input name="productCode['+rowCount+']" type="text" class="textbox" value="" size="15" /></td><td valign="top"><textarea name="product_options['+rowCount+']" cols="30" rows="1" class="textbox"></textarea></td><td align="center" valign="top"><input id="quantity" name="quantity['+rowCount+']" type="text" class="textbox" style="text-align:center;"  onChange="updateTotals(\'all\');" value="" size="3" /></td><td valign="top"><input id="price" name="price['+rowCount+']" onChange="updateTotals(\'all\');" type="text" class="textbox" style="text-align:right;" value="" size="7" /></td>';
		rowCount++;
	}
	document.getElementById('rowCount').value = rowCount;
	return false;
}

//function addValue(parentId) {
//	var parent = document.getElementById(parentId);
//	if (!parent) return false;
//	var valueCount = document.getElementById('numValues'+parentId).value;
//	var newRow = document.createElement('div');
//	newRow.setAttribute('id','newValue'+valueCount);
//	parent.appendChild(newRow);
//	newRow.innerHTML = 'anchor(this);">';
//	valueCount++;
//	document.getElementById('numValues'+parentId).value = valueCount;
//}

function checkAll(fieldName,val) {
	var checks = findObj(fieldName)
	for (i=0; i<checks.length; i++) {
		if(val == 'true') {
			checks[i].checked = true;
		} else {
			checks[i].checked = false;
		}
	}
}

function checkUncheck(parent, className) {
	var elements = $(parent).getElementsByClassName(className);
	for (i=0;i<elements.length;i++) {
		var ele = elements[i];
		(allChecked==false) ? ele.checked='checked' : ele.checked='';
	}
	(allChecked!=true) ? allChecked=true : allChecked=false;
	return false;
}

function compareInputbox(idNo) {
	if (findObj('custom_'+idNo) != findObj('default_'+idNo)) {
		// show revert buttons
		findObj('revertLink_'+idNo).style.display = '';
		findObj('revAllLink').style.display='';
		var tds = findObj('tr_'+idNo).getElementsByTagName('td');
		for (var i = 0; i <= 2; i++) {
			tds[i].className = 'tdModified';
		}
	}
}

function decision(message, url) {
	if(confirm(message)) location.href = url;
}

function delRow(element) {
	var node	= document.getElementById(element);
	var parent	= node.parentNode;
	parent.removeChild(node);
	return false;
}

function disableSubmit(obj,msg) {
	obj.value=msg;
	obj.disabled=true;
	obj.disabled=true;
	obj.className='submitDisabled';
}

function displayStatusMsg(msgStr) { //v1.0
	status=msgStr;
	document.returnValue = true;
}

function editVal(id,val) {
	findObj(id).value = val;
}

function findObj(n, d) {
	var p,i,x;
	if (!d) d=document;
	if ((p=n.indexOf("?"))>0&&parent.frames.length){
		d=parent.frames[n.substring(p+1)].document;
		n=n.substring(0,p);
	}
	if (!(x=d[n])&&d.all) x=d.all[n];
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for (i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
	if (!x && d.getElementById) x=d.getElementById(n);
	return x;
}

function flashBasket(flashes) {
	setTimeout("flash("+flashes+")", 500);
}

function flash(flashes) {
	var targetBtn = findObj('flashBasket');
	if (flashes<=0) return;
	if ((flashes%2) == 0) {
		targetBtn.className="flashBasket";
	} else {
 		targetBtn.className="txtviewCart";
	}
	setTimeout("flash("+(flashes-1)+")", 300);
	return;
}

function getImage(imageName) {
	findObj('img').src = imageName;
}

function goToURL() { //v3.0
  var i, args=goToURL.arguments; document.returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function jumpMenu(target, object, restore) {
	eval(target+".location='"+object.options[object.selectedIndex].value+"'");
	if (restore) object.selectedIndex=0;
}

function menuBlinds() {

}

function openPopUp(url, windowName, w, h, scrollbar) {
	scrollbar = (scrollbar=='yes' || scrollbar=='true'?'true':'false');
	var winl = (screen.width - w) / 2;
	var wint = (screen.height - h) / 2;
	winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrolling='+scrollbar+',scrollbars='+scrollbar+',resizable=1';
	win = window.open(url, windowName, winprops);
	if (parseInt(navigator.appVersion) >= 4) {
		win.window.focus();
	}
}

function resizeOuterTo(w,h) {
	if (parseInt(navigator.appVersion)>3) {
		if (navigator.appName=="Netscape") {
			top.outerWidth=w;
			top.outerHeight=h;
		} else {
			top.resizeTo(w,h);
		}
	}
}

function revert(idNo,className) {
	var tds = findObj('tr_'+idNo).getElementsByTagName('td');
	for (var i = 0; i <= 2; i++) {
		tds[i].className = className;
	}
	findObj('custom_'+idNo).value = findObj('default_'+idNo).value;
	findObj('revertLink_'+idNo).style.display = 'none';
}

function revertAll(maxId) {
	for (var idNo = 1; idNo < maxId; idNo++) {
		// find array of TD's
		var tds = findObj('tr_'+idNo).getElementsByTagName('td');
		var binary = idNo.toString(2);
		for (var j = 0; j <= 2; j++) {
			// restore class
			if (binary.charAt(binary.length - 1) == "1") {
				tds[j].className = 'tdOdd';
			} else {
				tds[j].className = 'tdEven';
			}
		}
		// set default value back
		findObj('custom_'+idNo).value = findObj('default_'+idNo).value;
		// hide revert button
		findObj('revertLink_'+idNo).style.display = 'none';
	}
	// hide revert all button
	findObj('revAllLink').style.display='none';
}

function setTextOfLayer(objName,x,newText) {
	if ((obj=findObj(objName))!=null) with (obj)
		if (document.layers) {document.write(unescape(newText)); document.close();}
		else innerHTML = unescape(newText);
}

function submitDoc(formName) {
	var obj=findObj(formName);
	if (obj!=null) {
		obj.submit();
	} else {
		alert('The form you are attempting to submit called \'' + formName + '\' couldn\'t be found. Please make sure the submitDoc function has the correct id and name.');
	}
}

function reloadPage(init) {  //reloads the window if Nav4 resized
	if (init==true) with (navigator) {
		if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    		document.pgW=innerWidth; document.pgH=innerHeight;
			onresize=reloadPage;
		}
	} else if (innerWidth!=document.pgW || innerHeight!=document.pgH) location.reload();
}
reloadPage(true);

function showHideLayers() { //v6.0
  var i,p,v,obj,args=showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function stars(rating, pathImg) {
	/* Positive Stars */
	for (var i = 0; i <= rating; i++) {
		if (i>0) findObj("star"+i).src = pathImg+'1.gif';
	}
	/* Negative Stars */
	for (var i = rating+1; i <= 5; i++) {
		findObj("star"+i).src = pathImg+'0.gif';
	}
	findObj('rating_val').value=rating;
}

function toggleReg() {
	var password = findObj('password');
	var passwordConf = findObj('passwordConf');
	if (password.disabled == false && passwordConf.disabled==false) {
		password.disabled=true;
		passwordConf.disabled=true;
		password.className="textboxDisabled";
		passwordConf.className="textboxDisabled";
	} else {
		password.disabled=false;
		passwordConf.disabled=false;
		password.className="textbox";
		passwordConf.className="textbox";
	}
	password.value="";
	passwordConf.value="";
}

function toggleProdStatus(i,messageRemove, messageNotRemoved,removeImgSrc,noRemoveImgSrc){
	if(findObj('delId['+i+']').value==1) {
		var result = false;
		var className = 'textbox';
		findObj('del['+i+']').src = removeImgSrc;
		findObj('delId['+i+']').value = 0;
		// change class
		findObj('prodName['+i+']').className = "textbox";
		findObj('productCode['+i+']').className = "textbox";
		findObj('product_options['+i+']').className = "textbox";
		findObj('quantity['+i+']').className = "textbox";
		findObj('price['+i+']').className = "textbox";
		alert(messageNotRemoved);
	} else {
		var result = true;
		var className = 'textboxDisabled';
		findObj('del['+i+']').src = noRemoveImgSrc;
		findObj('delId['+i+']').value = 1;
		// change class
		findObj('prodName['+i+']').className = "textboxDisabled";
		findObj('productCode['+i+']').className = "textboxDisabled";
		findObj('product_options['+i+']').className = "textboxDisabled";
		findObj('quantity['+i+']').className = "textboxDisabled";
		findObj('price['+i+']').className = "textboxDisabled";
		alert(messageRemove);
	}

	findObj('name['+i+']').disabled = result;
	findObj('name['+i+']').className = className;

	findObj('productCode['+i+']').disabled = result;
	findObj('productCode['+i+']').className = className;

	findObj('product_options['+i+']').disabled = result;
	findObj('product_options['+i+']').className = className;

	findObj('quantity['+i+']').disabled = result;
	findObj('quantity['+i+']').className = className;

	findObj('price['+i+']').disabled = result;
	findObj('price['+i+']').className = className;
}


function toggleProductStatus() {
	return false;
}

function goUrl(element) {
	var url = document.getElementById(element).options[document.getElementById(element).selectedIndex].value;
	window.location = url;
}



/* Start Cross-Browser DHTML Menu */
function showSubMenu() {
	var objThis = this;
	for (var i = 0; i  < objThis.childNodes.length; i++) {
		if (objThis.childNodes.item(i).nodeName == "UL")	{
			objThis.childNodes.item(i).style.display = "block";
		}
	}
}

function hideSubMenu() {
	var objThis = this;
	for (var i = 0; i  < objThis.childNodes.length; i++) {
		if (objThis.childNodes.item(i).nodeName == "UL") {
			objThis.childNodes.item(i).style.display = "none";
			return;
		}
	}
}

function initialiseMenu() {
	var objLICollection = document.body.getElementsByTagName("LI");
	for (var i = 0; i < objLICollection.length; i++) {
		var objLI = objLICollection[i];
		for (var j = 0; j  < objLI.childNodes.length; j++) {
			if(objLI.childNodes.item(j).nodeName == "UL") {
				objLI.onmouseover=showSubMenu;
				objLI.onmouseout=hideSubMenu;
				for (var j = 0; j  < objLI.childNodes.length; j++) {
					if(objLI.childNodes.item(j).nodeName == "A") {
						objLI.childNodes.item(j).className = "hassubmenu";
					}
				}
			}
		}
	}
}
/* End Cross-Browser DHTML Menu */


function switchColor(prodid) {
			
	document.getElementById('MainProdImage').src = '/images/general/Loader3.gif';
	var updater = new Ajax.Request('/modules/ajax/product.php?p='+prodid,
	{
		method:'get',
		onSuccess: function(transport) {
			
			if(transport.responseText.length >= 0) {
	
				// Parse the returned JSON array
				var response = eval('('+transport.responseText+')');
				document.getElementById('add').value = response.prodid;
				if(response.instock <= 0) {

					document.getElementById('instock').innerHTML = 'Out of Stock';
					document.getElementById('addtocartbtn').innerHTML = '<b>This Product is Out of Stock</b>';

				} else {

					document.getElementById('instock').innerHTML = 'In Stock: ' + response.instock;
					document.getElementById('addtocartbtn').innerHTML = '<a href="#addcart" onClick="addToBasket(\'MainProdImage\', \'basket\', \'\',redirToCart); return false;" title="Add product to cart."><img src="/skins/ALM_Designful/styleImages/img/btn_addtocart.png" alt="Add product to cart." ></a>';

				}
				if(response.img.length > 0) {

					document.getElementById('MainProdImage').src = response.img;
					
					document.getElementById('hires').value = response.img;

				}
				document.getElementById('prodName').innerHTML = Base64.decode(response.name)+'&nbsp;&nbsp;<span id="price"></span>';
				if(response.price == '0.00') {

					document.getElementById('price').innerHTML = '$'+response.wasprice;

				} else {

					document.getElementById('price').innerHTML = '$'+response.price+'&nbsp;&nbsp;<span class="wasprice">$'+response.wasprice+'</span>';

				}
				document.getElementById('productDescription').innerHTML = Base64.decode(response.description);

				// options
				document.getElementById('options').innerHTML = Base64.decode(response.options);
				// Be sure the current product's radio button is selected
				var colorSizes = document.getElementById("colorSizes");
				var swatches = colorSizes.getElementsByTagName("div");
				for(var k=0;k<swatches.length;k++) {
				  if(swatches[k].className == 'swatchSelected') {
					  var swatchSelected = swatches[k];
					  var inputSelectProduct = swatchSelected.getElementsByTagName("input")[0];
					  inputSelectProduct.checked = "checked";
					  break;
				  }
				}
			}
		}
	});
}


function checkStock(prodid) {
	// Using an AJAX JSON call to pull the in stock amount
	var updater = new Ajax.Request('/modules/ajax/instock.php?p='+prodid,
	{
		method:'get',
		onSuccess: function(transport) {
			if(transport.responseText.length >= 0) {
				// Parse the returned JSON array
				var response = eval('('+transport.responseText+')');

				if(response.instock <= 0) {

					document.getElementById('instock').innerHTML = 'Out of Stock';
					document.getElementById('addtocartbtn').innerHTML = '<b>This Product is Out of Stock</b>';

				} else {

					document.getElementById('instock').innerHTML = 'In Stock: ' + response.instock;
					document.getElementById('addtocartbtn').innerHTML = '<a href="#addcart" onClick="addToBasket(\'MainProdImage\', \'basket\', \'\',redirToCart); return false;" title="Add product to cart."><img src="/skins/ALM_Designful/styleImages/img/btn_addtocart.png" alt="Add product to cart." ></a>';

				}
			}
		}
	});
}


function switchProductOptionImage(el, className, assignId) {
	var boxes = document.getElementsByClassName(className+'Selected');
	for (var i=0; i < boxes.length; i++) {
		boxes[i].className = className;
	}
	el.className = className+'Selected';

	var updater = new Ajax.Request('/modules/ajax/options.php?o='+assignId,
	{
		method:'get',
		onSuccess: function(transport) {
			if(transport.responseText.length == 0) {

				if(failURL.length > 0) {

					return false;

				}

			} else {
				// Parse the returned JSON array
				var response = eval('('+transport.responseText+')');

				if(response.optionImage.length > 0) {

					document.getElementById('MainProdImage').src = response.optionImage;
					document.getElementById('hires').value = response.optionImage;

				}
			}
		}
	});
}

function getProdInfo(prodId){
	var updater= new Ajax.Request('/modules/ajax/product.php?p='+prodId,
	{
		method:'get',
		onLoad: 	document.getElementById('prodDescription').innerHTML = 'loading',
		onSuccess: function(transport) {
			if(transport.responseText.length == 0) {
				if(failURL.length > 0) {

					return false;

				}

			} else {
				// Parse the returned JSON array
				var response = eval('('+transport.responseText+')');
				var desc = Base64.decode(response.description);
				document.getElementById('prodDescription').innerHTML = '<img id="MainProdImage" style="width:250px;">'+desc;
			    document.getElementById('prodName').innerHTML = Base64.decode(response.name);
				document.getElementById('MainProdImage').src = response.img.replace('270','100');
			}
		}
	});
}

function debugPrint(msg) {

	window.open("<html>", debug);
	debug.document.print(msg);

}

function selectSizeBox(boxId, baseprice, addprice ) {
	var waspricediv = document.getElementById('wasprice');
	var pricediv = document.getElementById('price');
	var el = document.getElementById(boxId);
	if (!el) return false;
	var basePrice = parseFloat(baseprice);
	var addPrice = parseFloat(addprice);
	var newPrice = parseFloat(basePrice + addPrice);
	if (isNaN(newPrice)) {

	}
	toggleSelected(el, 'sizeButton');

	//if (price == '$0.00') { price = baseprice+' '; wasprice = ' '; }
	pricediv.innerHTML  = '<span class="wasprice"></span>$'+newPrice.toFixed(2);
}


function toggleSelected(el, classname) {

	var boxes = document.getElementsByClassName(classname+'Selected');
	for (var i=0; i < boxes.length; i++) {
		boxes[i].className = classname;

	}
	el.className = classname+'Selected';

	switchColor(document.getElementById('add').value);

}

function cartLoading() {
	document.getElementById('load').style.background="url(/images/general/loader.gif)";
	document.getElementById('load').innerHTML = '<b>Adding...</b> &nbsp;&nbsp;';

}

function cartLoaded() {
        var errMessage = document.getElementById('cartError');
        if (!errMessage) {
                document.getElementById('load').style.background="white";
                document.getElementById('load').style.color="black";
                document.getElementById('load').innerHTML = 'Added.';
                document.getElementById('added').innerHTML = document.forms[0].quan.value + ' added to cart. &nbsp;&nbsp;';
        }
}

function checkOptions(){

	var sizefield = document.getElementById('sizeField');
	var colorselected = document.getElementById('colorSelected');


	if (!sizefield && !colorselected) return true;

	if (sizefield && sizefield.value == '') {
		alert ('Please select a size');
		return false;
	}
	return true;
}

function checkRequiredOptions() {
	var vases = document.getElementsByName('productOptions[Select_a_Vase]');
	var vaseSelected = 0;
	var deliveryDate = 0;
    var enteredAddress = 0;

	// Check for a selected Vase option
	for (var i=0; i < vases.length; i++) {

		if (vases[i].checked) {

			vaseSelected = true;

		}

	}

	// Check for a Delivery Date
	if(document.getElementById('deliveryDate').value.length > 0) {

		deliveryDate = true;

	}

	// Check for a selected Ship to field
	if(document.getElementById('shipTo').options[document.getElementById('shipTo').selectedIndex].value == 'enteraddress') {

        if(document.getElementById('customer_name').value != '' && document.getElementById('address1').value != '' && document.getElementById('city').value != '' && document.getElementById('zip').value != '') enteredAddress = 1;

    } else {
        enteredAddress = 1;
    }

	if(vaseSelected && deliveryDate && enteredAddress) {

		return true;

	} else {

		return false;

	}

}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*86400000));
		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);
}

function enableFields(divid,key) {
	var div = document.getElementById(divid);
	if (!div) return false;
	if (divid == 'delDate'+key) {
		document.getElementById('calendar'+key).style.display = "block";
		return;
	}
	var fields = div.getElementsByTagName('div');
	for (var i=0; i<fields.length; i++) {
		if (fields.item(i).id != '') {
			var fieldname = fields.item(i).id;
			var option = fields.item(i).title;
				var fieldContent = fields.item(i).innerHTML;
				switch(option) {
					case 'textarea':
						fields.item(i).innerHTML = fieldname+':<br><textarea name="' + fieldname + '[' + key + ']" style="width:100%;" rows="3">' + fieldContent + '</textarea>';
					break;
					default:
						fields.item(i).innerHTML = fieldname+':<br> <input type="text" value="' + fieldContent + '" name="' + fieldname + '[' + key + ']" maxlength="255">';
					}
			
		}
	}

}