var htmlHead;
var htmlBookinfo;

var partners = new Array();

var stopSearch = false;

partners[0] = new Array("1", "Amazon.com (New) ", "0", "0", "#", "amazon.gif");
partners[1] = new Array("2", "Amazon.com (Used)", "0", "0", "#", "amazon.gif");
partners[2] = new Array("3", "Half.com                  ", "0", "0", "#", "half.gif");
partners[3] = new Array("4", "BunchesOfBooks.com", "0", "0", "#", "bunches.gif");
partners[4] = new Array("5", "BiggerBooks.com     ", "0", "0", "#", "bigger.gif"); 
partners[5] = new Array("6", "AbeBooks.com          ", "0", "0", "#", "abe.gif");
partners[6] = new Array("7", "BookByte.com (New)", "0", "0", "#", "bookbyte.gif");
partners[7] = new Array("8", "BookByte.com (Used)", "0", "0", "#", "bookbyte.gif");
partners[8] = new Array("9", "A1Books.com           ", "0", "0", "#", "a1books.gif");
partners[9] = new Array("10", "Alibris.com               ", "0", "0", "#", "alibris.gif");
partners[10] = new Array("11", "Textbooks.com (New)", "0", "0", "#", "textbooks.gif");
partners[11] = new Array("12", "Textbooks.com (Used)", "0", "0", "#", "textbooks.gif");
partners[12] = new Array("14", "Buy.com                     ", "0", "0", "#", "buy.gif");
partners[13] = new Array("15", "Barnes & Noble        ", "0", "0", "#", "bn.gif");
partners[14] = new Array("16", "ValoreBooks.com     ", "0", "0", "#", "valore.gif");
partners[15] = new Array("17", "Walmart                     ", "0", "0", "#", "walmart.gif");
partners[16] = new Array("18", "eBay.com                     ", "0", "0", "#", "ebay.gif");
partners[17] = new Array("19", "BetterWorld.com                     ", "0", "0", "#", "wsddd.gif");
partners[18] = new Array("20", "BooksAMillion.com                     ", "0", "0", "#", "wsddd.gif");
partners[19] = new Array("21", "eŅampus.com                    ", "0", "0", "#", "wsddd.gif");
partners[20] = new Array("22", "Chegg.com (Rental)           ", "0", "0", "#", "wsddd.gif");
//partners[21] = new Array("23", "Chegg.com (New)              ", "0", "0", "#", "wsddd.gif");
//partners[22] = new Array("24", "Chegg.com (Used)             ", "0", "0", "#", "wsddd.gif");

//partners[16] = new Array("13", "BookCloseouts.com", "0", "0", "#");

// booksamillion.com http://www.dpbolvw.net/click-2184336-42121?isbn={{ISBN}}
// ichapters http://www.anrdoezrs.net/click-2184336-10434990 - cannot do ISBN

// cannot link directly:
//Abe
//A1
//Buy

//var urlVT = "http://www.affordabook.com/vtx.php";
var urlVT = "vtx.php";

function serializeArray(arr) {
	var out = "";

	for (var i=0; i<arr.length; i++) {
		if (arr[i][0]=="17")
			out += arr[i][0] + "_" + arr[i][2] + "_" + arr[i][3] + "_" + arr[i][4] + "|";
		else
			out += arr[i][0] + "_" + arr[i][2] + "_" + arr[i][3] + "|";
	}

	return out;
}

function stopSearchX() {
	stopSearch = true;
	return;
}

function xmlhttpPost(strURL) {
	var xmlHttpReq;

	// Mozilla/Safari
	if (window.XMLHttpRequest) {
		xmlHttpReq = new XMLHttpRequest();
	}
	// IE
	else if (window.ActiveXObject) {
		xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		return;
	}

	xmlHttpReq.open('GET', strURL, true);
	xmlHttpReq.setRequestHeader("Connection", "close");
	xmlHttpReq.onreadystatechange = function() {
		if (xmlHttpReq.readyState == 4) {
			updatePartners(xmlHttpReq.responseText);
		}
	}

	xmlHttpReq.send(null);

	return;
}

function updatePartners(str) {
	var tmp = str.split('|', 5);

	for (var i=0; i<partners.length; i++) {
		if (partners[i][0]==tmp[3]) {
			partners[i][2] = tmp[1];
			partners[i][3] = tmp[2];
			partners[i][4] = tmp[4];
			if (i==16) {
				//alert(tmp[4]);
			}
		}
	}

	return;
}

function partnersNotEmpty() {
	var done = 0;

	for (var i=0; i<partners.length; i++) {
		if (partners[i][4]!="#") {
			done++;
		}
	}

	return done;
}

function sortByColumn(arr) {
	var tmp = new Array();

	for (var i=0; i<arr.length; i++) {
		for (var j=0; j<arr.length; j++) {
			if (parseFloat(arr[i][2])!="-1" && parseFloat(arr[j][2])!="-1") {
				var sum1 = parseFloat(arr[i][2]) + parseFloat(arr[i][3]);
				var sum2 = parseFloat(arr[j][2]) + parseFloat(arr[j][3]);

				if (sum1<sum2) {
					tmp = arr[i];
					arr[i] = arr[j];
					arr[j] = tmp;
				}
			}
		}
	}

	return;
}

function arr2str2d(arr, x, y) {
	var out = "";

	for (var i=0; i<arr.length; i++) {
		out += "#"+i+"\t";
		for (var j=0; j<4; j++) {
			out += arr[i][j]+"\t";
		}
		out += "\n";
	}

	out += x+"-"+y;

	return out;
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	
	if(isNaN(num)) num = "0";

	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();

	if(cents<10) cents = "0" + cents;

	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 (((sign)?'':'-') + '$' + num + '.' + cents);
}

function loadSubjects() {
	document.getElementById("pgSubjects").innerHTML = "Loading...";
	document.getElementById("pgCourses").innerHTML = "";
	document.getElementById("pgCRNs").innerHTML = "";
	document.getElementById("pgISBNs").innerHTML = "";

	var xmlHttpReq;

	// Mozilla/Safari
	if (window.XMLHttpRequest) {
		xmlHttpReq = new XMLHttpRequest();
	}
	// IE
	else if (window.ActiveXObject) {
		xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		return;
	}

	xmlHttpReq.open('GET', urlVT, true);
	xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttpReq.setRequestHeader("Connection", "close");
	xmlHttpReq.onreadystatechange = function() {
		if (xmlHttpReq.readyState == 4) {
			document.getElementById("pgSubjects").innerHTML = xmlHttpReq.responseText;
		}
	}

	xmlHttpReq.send(null);
}

function loadCourses(sid) {
	document.getElementById("pgCourses").innerHTML = "Loading...";
	document.getElementById("pgCRNs").innerHTML = "";
	document.getElementById("pgISBNs").innerHTML = "";

	var xmlHttpReq;

	// Mozilla/Safari
	if (window.XMLHttpRequest) {
		xmlHttpReq = new XMLHttpRequest();
	}
	// IE
	else if (window.ActiveXObject) {
		xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		return;
	}

	xmlHttpReq.open('GET', urlVT+'?s='+sid, true);
	xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttpReq.setRequestHeader("Connection", "close");
	xmlHttpReq.onreadystatechange = function() {
		if (xmlHttpReq.readyState == 4) {
			document.getElementById("pgCourses").innerHTML = xmlHttpReq.responseText;
		}
	}

	xmlHttpReq.send(null);
}

function loadCRNs(cid) {
	document.getElementById("pgCRNs").innerHTML = "Loading...";
	document.getElementById("pgISBNs").innerHTML = "";

	var xmlHttpReq;

	// Mozilla/Safari
	if (window.XMLHttpRequest) {
		xmlHttpReq = new XMLHttpRequest();
	}
	// IE
	else if (window.ActiveXObject) {
		xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		return;
	}

	xmlHttpReq.open('GET', urlVT+'?c='+cid, true);
	xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttpReq.setRequestHeader("Connection", "close");
	xmlHttpReq.onreadystatechange = function() {
		if (xmlHttpReq.readyState == 4) {
			document.getElementById("pgCRNs").innerHTML = xmlHttpReq.responseText;
		}
	}

	xmlHttpReq.send(null);
}

function loadISBNs(crnid) {
	document.getElementById("pgISBNs").innerHTML = "Loading...";

	var xmlHttpReq;

	// Mozilla/Safari
	if (window.XMLHttpRequest) {
		xmlHttpReq = new XMLHttpRequest();
	}
	// IE
	else if (window.ActiveXObject) {
		xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		return;
	}

	xmlHttpReq.open('GET', urlVT+'?crn='+crnid, true);
	xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttpReq.setRequestHeader("Connection", "close");
	xmlHttpReq.onreadystatechange = function() {
		if (xmlHttpReq.readyState == 4) {
			document.getElementById("pgISBNs").innerHTML = xmlHttpReq.responseText;
		}
	}

	xmlHttpReq.send(null);
}

function pausecomp(millis) {
	var date = new Date();
	var curDate = null;

	do {
		curDate = new Date();
	} 
	while(curDate-date < millis);
} 

function emailpage(title, isbn) {
	var name = document.getElementById("name").value;
	var email = document.getElementById("friendemail").value;

	document.getElementById("name").value = "";
	document.getElementById("friendemail").value = "";

	var xmlHttpReq;

	// Mozilla/Safari
	if (window.XMLHttpRequest) {
		xmlHttpReq = new XMLHttpRequest();
	}
	// IE
	else if (window.ActiveXObject) {
		xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		return;
	}

	var parameters = "email="+email+"&name="+escape(name)+"&isbn="+isbn+"&title="+escape(title);
	
	xmlHttpReq.open('POST', 'emailpage2.php', true);
	xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttpReq.setRequestHeader("Content-length", parameters.length);
	xmlHttpReq.setRequestHeader("Connection", "close");
	xmlHttpReq.onreadystatechange = function() {
		if (xmlHttpReq.readyState == 4) {
			alert("E-mail sent!");
		}
	}

	xmlHttpReq.send(parameters);
	
}

	function cInt(str) {
		return Math.round(parseFloat(str)*100)/100;
	}

	function round(num) {
		return Math.round(num*100)/100;
	}

function placeDiv(strName) {
	var dvB = document.getElementById(strName);
	var dvC = document.getElementById('header');

	dvB.style.left = getLeft(dvC) + dvC.offsetWidth + 10;
	dvB.style.top = 100;
}

function getLeft(ll) {
	if (ll.offsetParent)
		return (ll.offsetLeft + getLeft(ll.offsetParent));
	else 
		return (ll.offsetLeft);
}

function isdefined(variable) {
	return (typeof(window[variable]) == "undefined") ? false : true;
}

function popupMultiISBN() {
	var child = window.open('popup_multi_isbn.php','mywin','width=500,height=500,toolbar=1,resizable=1,scrollbars=1');
	if (child.opener == null) child.opener = self;
}

function trim(str) {
	return str.replace(/(^\s+)|(\s+$)/g, "");
}
