	var setCookieDate = new Date();
	setCookieDate.setTime(setCookieDate.getTime() + (365*2) * 24 * 60 * 60 * 1000);
	
	function detectBrowser()
	{
		var strUsrAgnt;
		var strBrw;
		var ix;
		
		this.xplr = false;
		this.ntscp = false;
		this.version = null;

		strUsrAgnt = navigator.userAgent;
		
		strBrw = "MSIE";
		if ((ix = strUsrAgnt.indexOf(strBrw)) >= 0) {
		  this.xplr = true;
		  this.version = parseFloat(strUsrAgnt.substr(ix + strBrw.length));
		  return;
		}
		strBrw = "Netscape6/";
		if ((i = strUsrAgnt.indexOf(strBrw)) >= 0) {
		  this.ntscp = true;
		  this.version = parseFloat(strUsrAgnt.substr(ix + strBrw.length));
		  return;
		}
		strBrw = "Gecko";
		if ((i = strUsrAgnt.indexOf(strBrw)) >= 0) {
		  this.ntscp = true;
		  this.version = 6.1;
		  return;
		}
	}

	function setCookie(name, value, expires, path, domain, secure) {
		if(expires=='')expires=setCookieDate;
	  var curCookie = name + "=" + escape(value) +
	      ((expires) ? "; expires=" + expires.toGMTString() : "") +
	      ((path) ? "; path=" + path : "") +
	      ((domain) ? "; domain=" + domain : "") +
	      ((secure) ? "; secure" : "");
	  document.cookie = curCookie;
	}

	function getCookie(name) {
	  var dc = document.cookie;
	  var prefix = name + "=";
	  var begin = dc.indexOf("; " + prefix);
	  if (begin == -1) {
	    begin = dc.indexOf(prefix);
	    if (begin != 0) return null;
	  } else
	    begin += 2;
	  var end = document.cookie.indexOf(";", begin);
	  if (end == -1)
	    end = dc.length;
	  return unescape(dc.substring(begin + prefix.length, end));
	}

	function toggle(obj){
		var dido = document.getElementById(obj);
		if(dido){
			if(dido.style.display=='none'){
				dido.style.display = '';
			}
			else{
				dido.style.display = 'none';
			}
		}
		return;
	}
	
	function replacer(stringer,out,add){
		//out = ","; // replace this
		//add = ""; // with this
		temp = "" + stringer; // temporary holder

		while (temp.indexOf(out)>-1) {
		pos= temp.indexOf(out);
		temp = "" + (temp.substring(0, pos) + add + 
		temp.substring((pos + out.length), temp.length));
		}
		return temp;
	}

	function formatNumber(expr, decplaces){
		var str = "" + Math.round(eval(expr) * Math.pow(10,decplaces));
		while (str.length <= decplaces) {
			str = "0" + str;
		}
		var decpoint = str.length - decplaces;
		return str.substring(0,decpoint) + "." + str.substring(decpoint, str.length);
	}
	
	var icyWindow;
		function pageOpen(pageURL) //width, height, name, scrollbar, top, left
	{
		if(pageURL=="") pageURL = "dictionary.aspx"
		var width = pageOpen.arguments[1] ? pageOpen.arguments[1] : 500;
		if(width== 'full') width = window.screen.availWidth-10;
		var height = pageOpen.arguments[2] ? pageOpen.arguments[2] : 500;
		if(height== 'full') height = window.screen.availHeight-40;
		var name = pageOpen.arguments[3] ? pageOpen.arguments[3] : "empty";
		var scrollbar = pageOpen.arguments[4] ? "yes" : "no";
		var top = pageOpen.arguments[5] != null ? pageOpen.arguments[5] : 300;
		var left = pageOpen.arguments[6] != null ? pageOpen.arguments[6] : 300;

		if(typeof(icyWindow) != "undefined" && icyWindow.closed == false)
		{
			icyWindow.close();
		}
		icyWindow = window.open(pageURL,name,'width=' + width + ',height=' + height + ',marginwidth=0,scrollbars=' + scrollbar + ',marginheight=0');
		icyWindow.moveTo(top,left);
		icyWindow.focus();
		return false;
	}

	var orjClassName='';
	cnt = 0;
	
	function doPreviosSell(){
		iArry = document.getElementsByName('ic');
		zQty = document.getElementById('zQty');
		tPos = 0;
		for(i=0;i<iArry.length;i++){
			if(iArry[i].checked){
				if(tPos>0){
					zQty.value = document.getElementById('_zQty' + iArry[i].value).value + ';' + zQty.value;
				}
				else{
					zQty.value = document.getElementById('_zQty' + iArry[i].value).value;
				}
				tPos++;
			}
		}
	}
	
	function doWholeSell(){
		if(document.getElementById('zItems').value!=''){
			//alert(document.getElementById('zItems').value)
			document.forms.frmdocumentdItems.submit();
		}
		else{
			alert('Ooops, your shopping cart has expired!?!');
		}
	}
	
	function doSingleSell(obj)
	{

		//if(obj)obj.disabled = true;
		var item;
		if(obj) 
			item = obj.id;
		else
		{
			if(doSingleSell.arguments[2]) item = doSingleSell.arguments[2];
		}
		var itemObjs = document.getElementsByName('_zQty');
		for(i=0;i<itemObjs.length;i++){
			if(itemObjs[i].id==item){
				var qty = itemObjs[i].value;
			}
		}
		var itemObjs = document.getElementsByName('_zType');
		for(i=0;i<itemObjs.length;i++){
			if(itemObjs[i].id==item){
				var typ = itemObjs[i].value;
			}
		}
		var itemObjs = document.getElementsByName('_zDeliveryDate');
		for(i=0;i<itemObjs.length;i++){
			if(itemObjs[i].id==item){
				var deliveryDate = itemObjs[i].value;
			}
		}

		
		var itemObjs = document.getElementsByName('_zDeliveryMessage');
		for(i=0;i<itemObjs.length;i++){
			if(itemObjs[i].id==item){
				var deliveryMessage = itemObjs[i].value;
			}
		}

		var itemObjs = document.getElementsByName('_zDeliveryChoice');
		for(i=0;i<itemObjs.length;i++){
			if(itemObjs[i].id==item){
				var deliveryChoice = itemObjs[i].value;
			}
		}
		var itemObjs = document.getElementsByName('_zDeliveryCode');
		for(i=0;i<itemObjs.length;i++){
			if(itemObjs[i].id==item){
				var deliveryCode = itemObjs[i].value;
			}
		}
		var attribs = '';
		var itemObjs = document.getElementsByName('attrib');
		for(i=0;i<itemObjs.length;i++){
			if(i!=0) attribs += ',';
			attribs += itemObjs[i].value;
		}
		
		//if there is a second parameter passed to this function, add it to the productId string;
		if(doSingleSell.arguments[1]){
			item += doSingleSell.arguments[1];
		}
		
		//locate the place holders
		var itemHldr = document.getElementById('zItems');
		var qtyHldr = document.getElementById('zQty');
		var typeHldr = document.getElementById('zType');
		var deliveryDateHldr = document.getElementById('zDeliveryDate');
		var deliveryMessageHldr = document.getElementById('zDeliveryMessage');
		var deliveryChoiceHldr = document.getElementById('zDeliveryChoice');
		var deliveryCodeHldr = document.getElementById('zDeliveryCode');
		var attribHldr = document.getElementById('zAttrib');
		
		//set values to place holders
		itemHldr.value = item;
		qtyHldr.value = qty;
		if(typeHldr)typeHldr.value = typ;
		if(deliveryDate)deliveryDateHldr.value = deliveryDate;
		if(deliveryMessage)deliveryMessageHldr.value = deliveryMessage;
		if(deliveryChoice)deliveryChoiceHldr.value = deliveryChoice;
		if(deliveryCode)deliveryCodeHldr.value = deliveryCode;
		if(attribHldr)attribHldr.value = attribs;
		
		//evaluate values and return false if necessary
		if(qtyHldr.value==0||item==''){
			alert('Please enter a valid quantity.')
			if(obj)obj.disabled = false;
		}
		else if(itemHldr.value.substring(0, 3)=='FL_' && deliveryDate == ''){
			strResponse = 'You must specify a delivery date for this flower.';
			if(deliveryMessage == '')strResponse += '\n\nIt also seems that you have not specified any messages to go with this flower.\nAlthough it is not mandatory to send a message, we still encourage one.';
			alert(strResponse);
			if(obj)obj.disabled = false;
		}
		else
		{
			document.forms.frmdocumentdItems.submit();
		}
	}
	
	function formatCurrency(num){
		/* formats a number with thousands' seperators */
		num = num.toString().replace(/\$|\,/g,'');
		if(isNaN(num)) num = "0";
		num = Math.floor(num).toString();
		for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
		return num;
	}
	
	function closeMenu(event)
	{
	  var current, related;
	  if (window.event)
	  {
	    current = this;
	    related = window.event.toElement;
	  }
	  else
	  {
	    current = event.currentTarget;
	    related = event.relatedTarget;
	  }
	  if (current != related && !contains(current, related))
	    current.style.display = "none";
	}
	
	function contains(a, b)
	{
  // Return true if node a contains node b.
  while(b.parentNode)
    if((b = b.parentNode) == a)
      return true;
  return false;
	}

	var objBrw = new detectBrowser();
	var dragapproved=false;
	var z,x,y;

	function popMsg(msg,w,h,x,y)
	{
		var x, y;
		var sknCnt = document.getElementById("msgCnt");
		var content=msg;
		if(objBrw.ntscp)
			{
				//sknCnt.document.write(content);
				//sknCnt.document.close();
				sknCnt.innerHTML = content;
			}
		else
			{
				sknCnt.innerHTML = content;
			}
		
		skn = document.getElementById("msg");
		skn.style.width = w;
		skn.style.height = h;
		skn.style.display = '';
		
		x = getCookie('x');
		y = getCookie('y');
				
		if(x==null||x=='')
		{
			x = ((document.body.offsetWidth / 2) - parseInt(skn.style.width)/2);
			setCookie('x',x,setCookieDate);
		}	
		if(y==null||y=='')
		{
			y = ((document.body.offsetHeight / 2) - parseInt(skn.style.height)/2);
			if(objBrw.ntscp)y = (((document.body.offsetHeight*9) / 2) - parseInt(skn.style.height)/2); //somehow offsetheight is 9 times smaller in netscape ?!?
			setCookie('y',y,setCookieDate);
		}
		skn.style.left = x;
		skn.style.top = y;
		skn.scrollIntoView(true);
		
	}
	
	function killMsg(obj)
	{
		if(objBrw.ntscp){obj.style.visibility='hidden';}
		else if(objBrw.ntscp||objBrw.xplr)
			obj.style.display='none';
		x = obj.style.left;
		y = obj.style.top;
		setCookie('x',x,setCookieDate);
		setCookie('y',y,setCookieDate);
	}
	
	function move(e)
	{
		if(dragapproved)
		{
			z.style.left=objBrw.ntscp? temp1+e.clientX-x: temp1+event.clientX-x
			z.style.top=objBrw.ntscp? temp2+e.clientY-y : temp2+event.clientY-y
			return false
		}
	}

	function drags(e)
	{
		if (!objBrw.xplr&&!objBrw.ntscp)
		return;
		
		var firedobj=objBrw.ntscp? e.target : event.srcElement
		var topelement=objBrw.ntscp? "HTML" : "BODY"

		while(firedobj.tagName!=topelement&&firedobj.className!="drag")
		{
			firedobj=objBrw.ntscp? firedobj.parentNode : firedobj.parentElement
		}

		if(firedobj.className=="drag")
		{
			dragapproved=true
			z=firedobj
			temp1=parseInt(z.style.left+0)
			temp2=parseInt(z.style.top+0)
			x=objBrw.ntscp? e.clientX: event.clientX
			y=objBrw.ntscp? e.clientY: event.clientY
			document.onmousemove=move
			return false
		}
		else
		{
			//alert('here');
		}
	}

	function findStyleRule(styleName)
	{
	  for(i=0;i<document.styleSheets.length;i++)
	  { 
	    if(objBrw.ntscp)
	    {
				for(j=0;j<document.styleSheets[i].cssRules.length;j++)
				{
				  if (document.styleSheets[i].cssRules[j].selectorText == styleName)
				  {
				    return document.styleSheets[i].cssRules[j];
				  }
				}
	    }
	    else
	    {
				for(j=0;j<document.styleSheets(i).rules.length;j++)
				{
				  if (document.styleSheets(i).rules(j).selectorText == styleName)
				  {
				    return document.styleSheets(i).rules(j);
				  }
				}
	    }     
	  }
	}

	function tryCstmz(el,tag,val)
	{
		if(tag=='background')val = 'url(/assets/images/' + val + ')';
		sr = findStyleRule(el);
		if(sr)
		{
			sr.style[tag] = val;
			if(tag=='background')
			{
				if(sr.style.backgroundPosition)
					sr.style.backgroundPosition = tryCstmz.arguments[3];
			}
		}
	}
	
	//if(getCookie('.header')!='')tryCstmz(getCookie('.header'));
	//if(getCookie('.youRhere')!='')tryCstmz(null,getCookie('.youRhere'));
	//tryCstmz('.sideMenu','background','sideMnBg.gif','0px 0px','repeat');
	//tryCstmz('.btnAddToBasket','backgroundColor','#ffe070');
	//tryCstmz('.header','background','e10.gif','0px 0px','y');
	
	function adjustIFrameSize (iframeWindow){
	  if (iframeWindow.document.height){
	    var iframeElement = parent.document.getElementById(iframeWindow.name);
	    iframeElement.style.height = iframeWindow.document.height + 'px';
	    iframeElement.style.width = iframeWindow.document.width + 'px';
	  }
	  else if (document.all) {
	    var iframeElement = parent.document.all[iframeWindow.name];
	    if (iframeWindow.document.compatMode && iframeWindow.document.compatMode != 'BackCompat'){
	      iframeElement.style.height = iframeWindow.document.documentElement.scrollHeight + 5 + 'px';
	      iframeElement.style.width = iframeWindow.document.documentElement.scrollWidth + 5 + 'px';
			}
	    else{
	      iframeElement.style.height = iframeWindow.document.body.scrollHeight + 5 + 'px';
	    }
	  }
	}

	//***	This function will be called in every page to set the title atttibute for images
	function setTitleForImages()
	{		
		var strUserAgent = navigator.userAgent.toUpperCase();		
		if((strUserAgent.indexOf("NETSCAPE")>=0) || (strUserAgent.indexOf("OPERA")>=0) || (strUserAgent.indexOf("MAC") >= 0) || (strUserAgent.indexOf("GECKO") >= 0))
		{
			for(var intImageIndex=0;intImageIndex<document.images.length;intImageIndex++)
			{		
				document.images[intImageIndex].title = document.images[intImageIndex].alt;
			}
		}
	}

	
	//*** This function will be called in footer.asp page,customstatement.asp,shipcalculator.asp for mac sumbit key compatability.
	function setHrefForLinks()
	{
		for(var intLinkIndex=0;intLinkIndex<document.links.length;intLinkIndex++)
		{		
			if(document.links[intLinkIndex].onclick != null)
			{						
				var strTemp = document.links[intLinkIndex].onclick + "";	
				strTemp = strTemp.replace("function onclick()","");
				strTemp = strTemp.replace("{","");	
				var pos = strTemp.lastIndexOf("}");
				strTemp = strTemp.substring(0,pos);			
				strTemp = strTemp.replace("return false;","");
				strTemp = strTemp.replace("return false","");								
				if(strTemp.toUpperCase().indexOf("JAVASCRIPT:")==-1) strTemp = "JavaScript:"+strTemp;
				document.links[intLinkIndex].href = strTemp;					
			}			
		}
	}