var page, category, categoryname;
var linkMap = new Array();
var cardsperpage = 16;

var displaycards = function(json) {
		// Transform the JSON results into an unordered list of links.
		
		var data = document.getElementById("data");
		
		//alert("in json calldata" + data + "::" + json.length);
		
		var startingrecord = (page-1)*cardsperpage;
		var endingrecord = Math.min(json.length, startingrecord + cardsperpage);
		var numpages = Math.ceil(json.length / cardsperpage);
		var cnt = 0;
		var table=document.createElement('table');
		table.cellspacing='0';
		table.cellpadding='0';
		table.border='0';
		var tbdy=document.createElement('tbody');
		
		table.appendChild(tbdy);
		
		for (var i = startingrecord; i < endingrecord; ++i) {
			
			if(cnt % 4 == 0)
			{
				/*
				tr = document.createElement("TR");
				tbdy.appendChild(tr);
				td = document.createElement("TD");
				tr.appendChild(td);
				td.innerHTML = '<hr/>';
				td = document.createElement("TD");
				tr.appendChild(td);
				td.innerHTML = '<hr/>';
				td = document.createElement("TD");
				tr.appendChild(td);
				td.innerHTML = '<hr/>';
				td = document.createElement("TD");
				tr.appendChild(td);
				td.innerHTML = '<hr/>';
				*/
				
				tr = document.createElement("tr");
				tbdy.appendChild(tr);
				
				cnt = 0;
				
			}
			cnt ++;
			
			var entry = json[i];
			//alert("trying to append");
			
			tr.appendChild(displaycard(i, entry, cnt));
			
			//data.appendChild(displaycard(i, entry));
			//alert("append done");
		}
		
	
		data.appendChild(table);
		
		//alert("data.inner:" + data.innerHTML);
		
		//document.write(table);
		
		
		
		var li = document.createElement("li");
		li.className = "pageLinks tc";
				
		/*
		for ( var i = 1; i <= numpages; i++ ) {
			if ( page == i ) 
			{
			  var b = document.createElement("b");
			  b.innerHTML = "&nbsp;&nbsp;" + i + "&nbsp;&nbsp;";
			  li.appendChild(b);
			} 
			else 
			{
			  var a = document.createElement("a");
			  //linkMap["a-page-" + i] = "lookupproducts(" + i + ",'" + category + "','" + escape(categoryname) + "')";
			  
			  //linkMap["a-page-" + i] = "lookupproducts(" + i + ",'" + category +  "')";
			  
			  
			  if(i == 3)
			  {
			  	alert(_getPageLinkAsString(page-1));
			  }
			  
			  linkMap["a-page-" + i] = _getPageLinkAsString(page-1);
			  
			  a.setAttribute("id", "a-page-" + i);
			  a.setAttribute("href", "javascript:void(0)");
			  a.onclick = function() { eval(linkMap[this.id]); return false; };
			  a.innerHTML=i;
			  li.appendChild(a);
			  
			  var text = document.createTextNode("  ");
			  li.appendChild(text);
			  
			}
		}
		*/
		
		/*
		for ( var i = 1; i <= numpages; i++ ) {
			if ( page == i ) 
			{
			  var b = document.createElement("b");
			  b.innerHTML = "&nbsp;&nbsp;" + i + "&nbsp;&nbsp;";
			  li.appendChild(b);
			} 
			else 
			{
			  var a = document.createElement("a");
			  a.setAttribute("href", "javascript:void(0)");
			  
			  //var link1 = eval(_getPageLinkAsString(i));			  
			  //a.href = link1;
			  
			  a.onclick = function() { eval(linkMap[i]); return false; };
			  a.innerHTML=i;
			  li.appendChild(a);
			  
			  var text = document.createTextNode("  ");
			  li.appendChild(text);

			  
			}
		}//for
		*/
		
		//page = 1;
		var alreadyadded = false;
		if ( page > 1 ) {
			//alert("page > 1");
			var firstPage = document.createElement("a");
			linkMap["a-first"] = _getPageLinkAsString(1);
			firstPage.setAttribute("id", "a-first");
			firstPage.setAttribute("href", "javascript:void(0)");
			firstPage.onclick = function() { eval(linkMap[this.id]); return false; };
			firstPage.innerHTML="<br/>First Page";
			li.appendChild(firstPage);
			li.appendChild(document.createTextNode(" | "));
			data.appendChild(li);
			
			alreadyadded = true;

			var a = document.createElement("a");
			linkMap["a-prev"] = _getPageLinkAsString(page-1);
			a.setAttribute("id", "a-prev");
			a.setAttribute("href", "javascript:void(0)");
			a.onclick = function() { eval(linkMap[this.id]); return false; };
			a.innerHTML="Prev Page";
			li.appendChild(a);
			
			var text = document.createTextNode(" | ");
			li.appendChild(text);
		}
		
		if ( page < numpages ) {
			var a = document.createElement("a");
			linkMap["a-next"] = _getPageLinkAsString(page+1);
			a.setAttribute("id", "a-next");
			a.setAttribute("href", "javascript:void(0)");
			a.onclick = function() { eval(linkMap[this.id]); return false; };
			if(alreadyadded == true){
				a.innerHTML="Next Page";
			}
			else
			{
				a.innerHTML="<br/>Next Page";
			}
			li.appendChild(a);
			
			var text = document.createTextNode(" | ");
			li.appendChild(text);

			var lastPage = document.createElement("a");
			linkMap["a-last"] = _getPageLinkAsString(numpages);
			lastPage.setAttribute("id", "a-last");
			lastPage.setAttribute("href", "javascript:void(0)");
			lastPage.onclick = function() { eval(linkMap[this.id]); return false; };
			lastPage.innerHTML="Last Page";
			li.appendChild(lastPage);		
			li.appendChild(document.createTextNode(" | "));
			data.appendChild(li);
		}
		
		/*
		var categoryheader = document.getElementById("categoryheader");
		categoryheader.innerHTML = "";
		var categoryheadertext = document.createTextNode(categoryname + " ~ Page " + page + " of " + numpages + " ");
		if ( page > 1 ) {
			var prevPageTop = document.createElement("a");
			linkMap["a-prev-top"] = _getPageLinkAsString(page-1);
			prevPageTop.setAttribute("id", "a-prev-top");
			prevPageTop.setAttribute("href", "javascript:void(0)");
			prevPageTop.onclick = function() { eval(linkMap[this.id]); return false; };
			var img = document.createElement("img");
			img.setAttribute("src", "http://www.printe-z.com/images/pub/arr_right.gif");
			prevPageTop.appendChild(img);
			categoryheader.appendChild(prevPageTop);			
		}
		categoryheader.appendChild(categoryheadertext);
		if ( page < numpages ) {
			var nextPageTop = document.createElement("a");
			linkMap["a-next-top"] = _getPageLinkAsString(page+1);
			nextPageTop.setAttribute("id", "a-next-top");
			nextPageTop.setAttribute("href", "javascript:void(0)");
			nextPageTop.onclick = function() { eval(linkMap[this.id]); return false; };
			var img = document.createElement("img");
			img.setAttribute("src", "http://www.printe-z.com/images/pub/arr_left.gif");
			nextPageTop.appendChild(img);
			categoryheader.appendChild(nextPageTop);
		}
		*/


		
		//lookupcategories();
}

var displaycard = function(num, json) {
	
	//alert("displaycard::" + num);
	var li = document.createElement("td");
	li.width='144';
	li.valign='top';
	
	var link = 'http://hqinvitations.cceasy.com' + json.aff_link;
		
	/*
	var largeImageDiv = document.createElement("div");
	largeImageDiv.setAttribute("id", "uc" + (num+1));
	largeImageDiv.style.zIndex = 100;
	largeImageDiv.style.marginLeft = "50px";
	largeImageDiv.style.marginTop = "-100px";
	largeImageDiv.style.cssFloat = "right";
	largeImageDiv.style.position = "absolute";
	largeImageDiv.style.display = "none";
	largeImageDiv.onmouseover = function() { this.style.display='block' }
	largeImageDiv.onmouseout = function() { this.style.display='none' }
	
	var largeImageHref = document.createElement("a");
	largeImageHref.setAttribute("id", "li" + (num+1));
	largeImageHref.setAttribute("href", "javascript:void(0)");
	linkMap[largeImageHref.id] = link;
	largeImageHref.onclick = function() { location.href = linkMap[this.id]; return false;}
		
	var largeImageImg = document.createElement("img");
	largeImageImg.setAttribute("src",  "http://www.hqinvitations.com/itemimages/wedding/large/" + json.image_link);
	largeImageImg.style.borderStyle = "none";
	largeImageHref.appendChild(largeImageImg);
	largeImageDiv.appendChild(largeImageHref);
	li.appendChild(largeImageDiv);
	
	*/
	
	var smallImageDiv = document.createElement("div");
	smallImageDiv.setAttribute("id", "c" + (num+1));
	smallImageDiv.style.position = "relative";
	//smallImageDiv.onmouseover = function() { document.getElementById("u" + this.id).style.display = "block"; }
	//smallImageDiv.onmouseout = function() { document.getElementById("u" + this.id).style.display = "none"; }
	
	var a = document.createElement("a");
	linkMap["a" + (num+1)] = link;
	a.setAttribute("id", "a" + (num+1));
	a.setAttribute("href", "javascript:void(0)");
	a.onclick = function() { window.location=linkMap[this.id]; return false; };
	
	var img = document.createElement("img");
	img.setAttribute("src", "/itemimages/" + json.image_link);
	img.style.borderStyle = "none";
	a.appendChild(img);
	smallImageDiv.appendChild(a);
	li.appendChild(smallImageDiv);
	
	var p = document.createElement("p");
	p.className = "tc";
	var span = document.createElement("span");
	span.className = "fc_grey";	
	var b = document.createElement("b");
	b.innerHTML = json.title;
	var hr = document.createElement("hr");
	var b2 = document.createElement("p");
	b2.innerHTML = '(' + json.content + ')';
	span.appendChild(b);
	//span.appendChild(hr);
	//span.appendChild(b2);
	var br = document.createElement("br");
	var span2 = document.createElement("span");
	span2.className="fc_red";
	span2.innerHTML="";
	p.appendChild(span);
	p.appendChild(br);
	p.appendChild(span2);
	li.appendChild(p);
	return li;
}


var displaycategories = function(json) {
		
		var data = document.getElementById("categories");
		
		for (var i = 0; i < json.length; ++i) {
			var entry = json[i];

			var rightNav = document.createElement("li");
			var img = document.createElement("img");
			img.setAttribute("src", "http://www.printe-z.com/images/pub/rightMenu_arr.gif");
			//var lc = "lookupproducts(1," + entry.position + ",'" + entry.content + "')";
			
			var lc = "lookupproducts(1," + entry.position  + ")";
			
			var href = entry.category_link;
			
			// + "?page=1&category=" + entry.position + "&categoryname=" + escape(entry.content);
			
			var a = _createJavascriptLink("c" + i, document.createTextNode(entry.content), href, lc, false);
			rightNav.appendChild(img);
			rightNav.appendChild(a);
			data.appendChild(rightNav);
			var topNavCategory = document.getElementById("top" + entry.parent);
			if ( topNavCategory != null ) {
				var topNav = document.createElement("li");
				var topNavLink = _createJavascriptLink("d" + i, document.createTextNode(entry.content), href, lc, false);
				topNav.appendChild(topNavLink);
				topNavCategory.appendChild(topNav);
			}
		}	
}

var _createJavascriptLink = function(id, inner, href, fn, needsEval) {
	var a = document.createElement("a");
	a.setAttribute("id", id);
	a.setAttribute("href", href == null ? "javascript:void(0)" : href);
	linkMap[id] = href == null ? fn : href;
	if ( needsEval ) {
		a.onclick = function() { eval(linkMap[this.id]); return false; };
	} else {
		a.onclick = function() { window.location=linkMap[this.id]; return false; };
	}
	a.appendChild(inner);
	return a;
}

var _getPageLinkAsString = function(p) {
	var link = "window.location=location.pathname";
	if ( p != 1 ) {
		//link += " + '?page=" + p + "&category=" + category + "&categoryname=" + escape(categoryname) + "'"
		link += " + '?page=" + p + "'";
	}
	return link;
}

var lookupproducts = function (p, c) {
	
	//alert("lookupproducts " + p + "::" + c + ":: " + cname + "::" + xname);
	
	page = p;
	category = c;
	//categoryname = cname;
	//document.getElementById("banner").style.display = ( p == 1 && c == "%25" ) ? "block" : "none";
	//document.getElementById("paragraph").style.display = ( p == 1 ) ? "block" : "none";
	
	var url = "/query.php?c=" + c + "&p=1&cb=displaycards";
	
	/*
	if(xname != undefined)
	{
		url = url + "&x=" .xname;
	}
	*/
	
	
	lookup(url, "data");
}


var lookuptopproducts = function () {
	
	//alert("lookupproducts " + p + "::" + c + ":: " + cname + "::" + xname);
	
	//page = p;
	//category = c;
	//categoryname = cname;
	//document.getElementById("banner").style.display = ( p == 1 && c == "%25" ) ? "block" : "none";
	//document.getElementById("paragraph").style.display = ( p == 1 ) ? "block" : "none";
	
	var url = "/topProducts.php?cb=displaycards";
	
	lookup(url, "data");
}



var lookupproducts1 = function (p, c, cname, xname) {
	
	//alert("lookupproducts " + p + "::" + c + ":: " + cname + "::" + xname);
	
	page = p;
	category = c;
	categoryname = cname;
	//document.getElementById("banner").style.display = ( p == 1 && c == "%25" ) ? "block" : "none";
	//document.getElementById("paragraph").style.display = ( p == 1 ) ? "block" : "none";
	
	var url = "/query.php?c=" + c + "&p=1&cb=displaycards";
	
	/*
	if(xname != undefined)
	{
		url = url + "&x=" .xname;
	}
	*/
	
	
	lookup(url, "data");
}

var lookupcategories = function () {
	lookup("/query.php?t=category&s=3&cb=displaycategories", "categories");
}

var lookup = function(url, divId) {
		var div = document.getElementById(divId);
		
		
		//alert("in lookup: " + url + "::" + divId);
		
		
		if ( div ) {
			//removeOldJSONScriptNodes();
			removeOldResults(divId);
			
			//alert("div is there so in here");

			// Add a script element with the src as the user's Google Base query.
			// JSON output is specified by including the alt=json-in-script argument
			// and the callback funtion is also specified as a URI argument.
			var scriptElement = document.createElement("script");
			//scriptElement.setAttribute("id", "jsonScript");
			scriptElement.setAttribute("src", url);
			scriptElement.setAttribute("type", "text/javascript");
			document.documentElement.firstChild.appendChild(scriptElement);
			
			//alert("successful");
		}
}

function removeOldResults(divId) {
		var div = document.getElementById(divId);
		
		//alert(div.innerHTML);
		
		div.innerHTML = "";
}

function getUrlParameter( name ) {
		var regexS = "[\\?&]"+name+"=([^&#]*)";
		var regex = new RegExp( regexS );
		var results = regex.exec( window.location.href );
		return results == null ? null : unescape(results[1]);
}
