	
	/* Cookie handler */
	function readCookie(cookieName) {
	  var docCookies = document.cookie;
	  var startIndex = docCookies.indexOf(cookieName);
	  if (startIndex == -1) return false;
	  startIndex += cookieName.length + 1;
	  var endIndex = docCookies.indexOf(";",startIndex);
	  if (endIndex == -1) endIndex = docCookies.length;
	  var cookieValue = docCookies.substring(startIndex, endIndex);
	  return unescape(cookieValue);
	}
	
	function setCookie(cookieName,cookieValue) {
 		var today = new Date();
 		var expire = new Date();
		expire.setTime(today.getTime() + 3600000*24*10000);
 		document.cookie = cookieName+"="+escape(cookieValue)+ ";expires="+expire.toGMTString();
	}

	/* set nav state when page loads */
	function pageload() {
		if ( readCookie('hidenav') == 1) {
			hideMe();
		}
	}
	/* this takes framed page and removes the frameset */
	function changePage() {
		if(top != self) top.location = document.location;
	}

	/* set class of current page in nav */
	function setNav(navid) {
		if(document.getElementById(navid)) {
			document.getElementById(navid).className = 'current';
		}
	}

	function toggleNav() {
		if (hidenav == 1) {
		 	showMe();
		}
		else {
			hideMe();
		}
	}
	
	function hideMe() {
		//document.getElementById('leftnav').style.margin-right = '5 px';
		document.getElementById('leftnav').style.width = '15px';
		document.getElementById('leftnav-inner').style.width = '10px';
		document.getElementById('leftnav-inner').style.display = 'none';
		document.getElementById('mygif').src = '/images/show_menu.gif';
		document.getElementById('mygif').alt = 'show menu';
		//document.getElementById('mygif').width = 15;
		//document.getElementById('mygif').height = 15;
		//document.getElementById('main-content-page').style.width = '98%';
		hidenav = 1;
		document.cookie = "hidenav=1; path=/";
	}
		
	function showMe() {
		//document.getElementById('leftnav').style.margin-right = '10 px';
		document.getElementById('leftnav').style.width = '160px';
		document.getElementById('leftnav-inner').style.width = 'auto';
		document.getElementById('leftnav-inner').style.display = 'inline';
		document.getElementById('mygif').src = '/images/hide_menu.gif';
		document.getElementById('mygif').alt = 'hide menu';
		//document.getElementById('mygif').width = 150;
		//document.getElementById('mygif').height = 15;
		//document.getElementById('main-content-page').style.width = '80%';
		hidenav = 0;
		document.cookie = "hidenav=0; path=/";
	}
	
	// for definitions on the join pages;  pub is optional and anything there indicates they're a small publisher;
	function showJoinDefs(a, ht, pub) {
		var sp = '';
		if (pub) {
			sp = '?sp=1';
		}
		return window.open("/content/account-type-definitions.cfm" + sp + "#" + a, 'SignupDefs', 'width=450,height=' + ht + ',left=50,top=50,resizable=no,scrollbars=0');
	}

	//for cvv window links
	function showCvv() {
		return window.open('/content/securitycode.cfm', 'seccd', 'width=485,height=520,left=50,top=50,resizable=no,scrollbars=0');
	}
	
	
	//for signup code 
	function uplToggle(action) {
		if (action == 'disable') {
			document.myForm.upload_type[1].checked = true;
			document.myForm.upload_type[0].disabled = true;
			document.myForm.upload_type[1].disabled = true;
		} else {
			document.myForm.upload_type[0].disabled = false;
			document.myForm.upload_type[1].disabled = false;
		}
	}
	
	// For switching the UK address fields
	function changeLabels(sel) {
//			var myElement = document.getElementById("theForm",this)][lookupIdByTagId("theCountry",this)];
//			var myIndex = myElement.selectedIndex;
			var ukFlag = false;
			if(sel.options[sel.selectedIndex].value == "GBR") {
				ukFlag = true;
			}
			
			if(ukFlag)
			{
				// UK Labels
				if (document.getElementById("lastNameLabel"))
					document.getElementById("lastNameLabel").innerHTML = 'Surname';
				if (document.getElementById("altLastNameLabel"))
					document.getElementById("altLastNameLabel").innerHTML = 'Surname';
				document.getElementById("cityLabel").innerHTML = 'Town/city';
				document.getElementById("stateLabel").innerHTML = 'County';
				document.getElementById("zipLabel").innerHTML = 'Postcode';
				document.getElementById("st_state").size = 30;
				document.getElementById("st_state").maxLength = 50;
			}
			else
			{
				// US labels
				if (document.getElementById("lastNameLabel"))
					document.getElementById("lastNameLabel").innerHTML = 'Last name';
				if (document.getElementById("altLastNameLabel"))
					document.getElementById("altLastNameLabel").innerHTML = 'Last name';
				document.getElementById("cityLabel").innerHTML = 'City';
				document.getElementById("stateLabel").innerHTML = 'state/province';
				document.getElementById("zipLabel").innerHTML = 'Zip/postal code';
				document.getElementById("st_state").size = 5;
				document.getElementById("st_state").maxLength = 5;
			}
		}			

	// For switching the UK address fields in the CC signup form
	function changeCcLabels(sel) {
			var ukFlag = false;
			if(sel.options[sel.selectedIndex].value == "GBR") {
				ukFlag = true;
			}
			
			if(ukFlag)
			{
				// UK Labels
				document.getElementById("ccCityLabel").innerHTML = 'Town/city';
				document.getElementById("ccStateLabel").innerHTML = 'County';
				document.getElementById("ccZipLabel").innerHTML = 'Postcode';
				document.getElementById("ccstate").size = 30;
				document.getElementById("ccstate").maxLength = 50;
			}
			else
			{
				// US labels
				document.getElementById("ccCityLabel").innerHTML = 'City';
				document.getElementById("ccStateLabel").innerHTML = 'State/province';
				document.getElementById("ccZipLabel").innerHTML = 'Zip/postal code';
				document.getElementById("ccstate").size = 5;
				document.getElementById("ccstate").maxLength = 5;
			}
		}			


	// function to load the calendar window.
	function ShowCalendar(FormName, FieldName)
	{
		window.open("/ops/datepop.cfm?FormName=" + FormName + "&FieldName=" + FieldName, "CalendarWindow", "width=220,height=240");
	}

	/* ************************** */	
	//for "fillkill" forms
	function changeRadio(myelement, myvalue) {
		myObj = document.getElementsByName(myelement);
		//myObj = eval('document.fillkill.'+ myelement);
		myObj[myvalue].checked = true;
	}
	function changeAll(ord_no, myvalue) {
		myArr = document.fillkill.elements;
		var lastname = '';
		var thisname = '';
		for(i=0; i < myArr.length; i++) {
			thisname = myArr[i].name;
			if (lastname != thisname && thisname.indexOf('O' + ord_no + '_', 0) == 0 ) {
				
				//alert("lastname=" + lastname + ";  thisname=" + thisname + " ; radio=" + myvalue); 
				changeRadio(thisname, myvalue);
			}
			lastname = thisname;
		}
	}
	function submitForm(){
		document.fillkill.submit();
	}
	/* ************************** */	

	/* ***  ISBN CHECKER  ***** */
	function isLegalISBN(myvar) {
		var ISBN = myvar;
		var next;
		var mult;
		var check = 0;
		var digits = "0123456789";

		if (ISBN.length != 10 && ISBN.length != 13) {
			return false;
		}
		for (var i = 1; i < ISBN.length; i++) {
			next = ISBN.charAt(i-1);
			if (next < '0' || next > '9') {
				return false;
			} else {
				if (ISBN.length == 10) {
					mult = i;
				} else {
					if (i % 2 == 1) {
						mult = 1;
					} else {
						mult = 3;
					}
				}
     		check += mult * (next-'0');
			}
		}
		next = ISBN.charAt(ISBN.length-1);
		next = next.toUpperCase();
		if (ISBN.length == 10) {
	   		check %= 11;
			if (check == 10) {
				check = 'X';
			} else {
				check = digits.charAt(check);
			}
		} else {
			check %= 10;
			if (check == 0) {
				check = '0';
			} else {
				check = digits.charAt(10-check);
			}
		}
		if (next == check) {
			return true;
		} else {
			return false;
		}
	}

	function addPop(title,author,isbn,type) {
		if (!type || (type != 'B' && type != 'M' && type != 'V') ) {type = 'B'};
		var hgt = Math.floor(screen.height * .85);
		var wdt = Math.floor(screen.width * .85);
		var authstr = "";
		if (type == "M") authstr = "Artist";
		else if (type == "V") authstr = "Director";
		else authstr = "Author";
		open("/ops/aim_catalog_search.cfm?BFMsg=1&EAN=" + isbn + "&Title=" + title + "&" + authstr + "=" + author + "&Type=" + type, 'Addpopup', 'width=' + wdt + ',height=' + hgt + ',left=50,top=50,resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=yes');
	}
	
	function showPriceDefs(a) {
		if ( a == 'Competitive Price'){ a = 'ALIB_DRV';}
		if ( a == 'Alibris Average'){ a = 'ALIB_AVG';}
		if ( a == 'Alibris Minimum'){ a = 'ALIB_MIN';}
		if ( a == 'Recent Sales Average'){ a = 'ALIB_SLD';}
		if ( a == 'Amazon Average'){ a = 'AMZN_AVG';}
		if ( a == 'Amazon Minimum'){ a = 'AMZN_MIN';}
		if ( a == 'Recommended Price'){ a = 'REC_PRICE';}
		if ( a == 'Alibris Sales Index'){ a = 'ALIB_SINDEX';}
		return window.open("/content/pricing-service-definitions.cfm#" + a, 'PriceDefs', 'width=450,height=250,left=50,top=50,resizable=no,scrollbars=0');
	}


	function showDateDisclaimer() {
		return window.open('date_disclaimer.cfm', 'date_disclaimer', 'width=240,height=180,left=100,top=100,resizable=no,scrollbars=0');
	}
	
	function popTutorial(url) {
		newwindow=window.open(url,'tutorial','height=595,width=799,toolbar=No,location=No,scrollbars=no,status=No,resizable=no,fullscreen=No'); 
		newwindow.focus(); 
		void(0);
	}

	// Redesigned dashboard. Persist visibility state of info panels
	function toggleDashDiv(idNum){
		
		var divId = 'd'+idNum;
		var linkId = divId+'Link';
		var cValue = readCookie('dashdivs');
		var divValue = 'v';
		var newDivValue = 'v';
		var divSettings=new Array();
			
		if(cValue){
			divSettings = cValue.split("_");
			divValue = divSettings[idNum-1].charAt(2);
		} 
		
		if(document.getElementById(linkId) && document.getElementById(divId)) {
			if (divValue == 'h'){
				// if it was hidden, apply visible settings
				document.getElementById(linkId).innerHTML = 'Hide'; 
				document.getElementById(divId).style.visibility='visible';
				newDivValue = 'v';
			} else {
				document.getElementById(linkId).innerHTML = 'Show';
				document.getElementById(divId).style.visibility='hidden';
				newDivValue = 'h';
			}
		}
		// Don't forget to set cookie
		setCookie('dashdivs',cValue.replace(divId+divValue,divId+newDivValue));
	}

	function initDashDivs(){
		// cookie format:  name -> dashdivs
		//				   value -> d[1..5]_[h,v] , for example d1v_d2h_d3h_d4v_d5v
		// d1 .. d5 -> div ids
		// v -> visible, h -> hidden
		
		var cValue = readCookie('dashdivs');
		if(!cValue){
			// set cookie for first time, default is all visible.
			setCookie('dashdivs','d1v_d2v_d3v_d4v_d5v');
		}
		
		var divSettings=new Array();
		divSettings = cValue.split("_");
	
		for (x in divSettings){
			var divId = 'd'+ (Number(x) + Number(1));
			var linkId = divId+'Link';
			var divValue = divSettings[x].charAt(2);
				
			//alert("Working on:"+divId+"  "+linkId+" -value is:"+divValue);
			if (divValue == 'h'){
				document.getElementById(linkId).innerHTML = 'Show'; 
				document.getElementById(divId).className='box hidden';
			} else {
				document.getElementById(linkId).innerHTML = 'Hide'; 
				document.getElementById(divId).className='box';
			}			
		}
	}		


function hideFloatingDiv(which) {
  (document.getElementById) ? dom = true : dom = false;  
  if (dom) {document.getElementById(which).style.visibility='hidden';}
}

function showFloatingDiv(which) {
  (document.getElementById) ? dom = true : dom = false;
  if (dom) {document.getElementById(which).style.visibility='visible';}
}



