// JavaScript Document

function init()
{
	document.getElementById("site_items").value="";
}

function makeXMLHttpRequestObject()
{	
	var XMLHttpRequestObject = false;

	if (window.XMLHttpRequest)
	{	XMLHttpRequestObject = new XMLHttpRequest();
	} else if (window.ActiveXObject)
	{	XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHttp");
	}
	
	return XMLHttpRequestObject;
}

function addComment()
{
	var addCommentObject = makeXMLHttpRequestObject();	//make XMLHttpRequestObject
	
	var num = Math.random();
	
	var commentcontent = document.getElementById("cmntcontent").value;	//get the comment itself
	var photoid = document.getElementById("cmntphoto").value;	//get the photo the comment belongs to
	var user = document.getElementById("cmntuser").value;	//get the user the comment belongs to
	var code = document.getElementById("code").value;	//get the user the comment belongs to
	
	var obj = document.getElementById("comments");
	var errorobj = document.getElementById("commenterror");	

	if (addCommentObject)
	{	addCommentObject.open("POST", "js/ajax/comments.php");	//open the file
		addCommentObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		
		addCommentObject.onreadystatechange = function()
		{	if (addCommentObject.readyState != 4)
			{	errorobj.innerHTML = "Adding comment...";
			} else if (addCommentObject.readyState == 4 && addCommentObject.status == 200)
			{	
				var result = addCommentObject.responseText;
				if (result == "fail0")
				{	errorobj.innerHTML = "<span style='color:#FF0000;'>Security Code Wrong.</span>";
				} else if (result == "fail1")
				{	errorobj.innerHTML = "<span style='color:#FF0000;'>Name can't be blank!</span>";
				} else if (result == "fail2")
				{	errorobj.innerHTML = "<span style='color:#FF0000;'>Comment can't be blank!</span>";
				} else if (result == "fail3")
				{	errorobj.innerHTML = "Database error, please try again later.";
				} else
				{	obj.innerHTML = result;
					errorobj.innerHTML = "";
					document.getElementById("cmntuser").value = "";
					document.getElementById("cmntcontent").value = "";
					document.getElementById("code").value = "";
					document.getElementById("securityimage").src = "security-image.php?width=100&height=20&id=" + num;
					hideAddComment();
				}
				delete addCommentObject;	//free XMLHttpRequest object from memory
				addCommentObject = null;
			}
		}
		
		addCommentObject.send("subcomment=1&photoid="+photoid+"&user="+user+"&content="+commentcontent+"&code="+code);
	} else
	{	alert("Cannot create XMLHttpObject");
	}
}

function reloadResults()
{
	var ajaxObject = makeXMLHttpRequestObject();	//make XMLHttpRequestObject
	
	var items = document.getElementById("site_items").value;	//get the items to search for
		
	var results = document.getElementById("site_results");	

	if (ajaxObject)
	{	ajaxObject.open("POST", "js/getdata.php");	//open the file
		ajaxObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		
		ajaxObject.onreadystatechange = function()
		{	if (ajaxObject.readyState != 4)
			{	results.innerHTML = "<span class=\"loading\"><img src=\"img/loading.gif\" /> Loading search results...</span>";
			} else if (ajaxObject.readyState == 4 && ajaxObject.status == 200)
			{	
				var response = ajaxObject.responseText;
				results.innerHTML = response;
				
				delete ajaxObject;	//free XMLHttpRequest object from memory
				ajaxObject = null;
			}
		}
		
		ajaxObject.send("query=results&items="+items);
	} else
	{	alert("Cannot create XMLHttpObject");
	}
}

function reloadCloud()
{
	var ajaxObject = makeXMLHttpRequestObject();	//make XMLHttpRequestObject
	
	var items = document.getElementById("site_items").value;	//get the items to search for
	
	var results = document.getElementById("site_cloud");	

	if (ajaxObject)
	{	ajaxObject.open("POST", "js/getdata.php");	//open the file
		ajaxObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		
		ajaxObject.onreadystatechange = function()
		{	if (ajaxObject.readyState != 4)
			{	results.innerHTML = "<span class=\"loading\"><img src=\"img/loading.gif\" /> Loading new cloud...</span>";
			} else if (ajaxObject.readyState == 4 && ajaxObject.status == 200)
			{	
				var response = ajaxObject.responseText;
				results.innerHTML = response;
				
				delete ajaxObject;	//free XMLHttpRequest object from memory
				ajaxObject = null;
			}
		}
		
		ajaxObject.send("query=cloud&items="+items);
	} else
	{	alert("Cannot create XMLHttpObject");
	}
}

function addTag(tag)
{
	var result = "";
	var basket = document.getElementById("site_basket");
	var items = document.getElementById("site_items");
	var exist = false;
	var newlist = tag;
	
	if (items.value != "")
	{	var tags = items.value.split(",");
		var numtags = tags.length;
		
		if (numtags > 6)	//check if over limit
		{	exist = true;
		}
		
		for (var i=0; i<numtags; i++)	//check for repeat
		{	if (tags[i] == tag)
			{	exist = true;
			}
		}
		
		if (exist == false)	//if its ok, add to list
		{	newlist = items.value + "," + tag;
			items.value = newlist;
		}

	} else
	{	items.value = newlist;
	}
	
	var tags = items.value.split(",");
	
	var numtags = tags.length;
	
	for (var i=0; i<numtags; i++)
	{
		if (tags[i] != "")
		{	result += "<li id=\""+tags[i]+"\" class=\"fade\">" + tags[i] + " <a href=\"#\" onclick=\"return delTag('"+tags[i]+"')\" title=\"Remove tag from basket\"><img src=\"img/basket_remove.gif\" border=\"0\" /></a></li>";
		}
	}
	
	basket.innerHTML = "<ul>" + result + "</ul>";
	
	document.getElementById("site_query").value = "";
	
	Fat.fade_element(tag);
	
	if (exist == false)
	{	reloadCloud();
		reloadResults();
	}
	
	return false;
}

function delTag(tag)
{
	var result = "";
	var basket = document.getElementById("site_basket");
	var items = document.getElementById("site_items");
	var newlist = "";
	
	if (items.value != "")
	{	var tags = items.value.split(",");
		var numtags = tags.length;
		
		for (var i=0; i<numtags; i++)
		{	if (tags[i] != tag)
			{	newlist += "," + tags[i];
			}
		}
		
		if (newlist.length > 1 && newlist.charAt(0) == ",")
		{	newlist = newlist.substr(1);
		}
		
		items.value = newlist;
	}
	
	if (items.value  == "" || items.value == null)
	{	return clearTags();
	}
	
	var tags = items.value.split(",");
	
	var numtags = tags.length;
	
	for (var i=0; i<numtags; i++)
	{
		if (tags[i] != "")
		{	result += "<li id=\""+tags[i]+"\" class=\"fade\">" + tags[i] + " <a href=\"#\" onclick=\"return delTag('"+tags[i]+"')\" title=\"Remove tag from basket\"><img src=\"img/basket_remove.gif\" border=\"0\" /></a></li>";
		}
	}
	
	basket.innerHTML = "<ul>" + result + "</ul>";
	
	reloadCloud();
	reloadResults();
	
	return false;
}

function clearTags()
{	
	document.getElementById("site_items").value = "";
	document.getElementById("site_basket").innerHTML = "<strong>Tag Basket</strong><br /><br />This is where you include up to 7 tags to search.<br /><br />Click on a tag or enter a tag in the textbox to the right.";
	
	reloadCloud();
	reloadResults();
	
	return false;
}


function submitVote(rating)
{
	var addVoteObject = makeXMLHttpRequestObject();	//make XMLHttpRequestObject
	
	var siteid = document.getElementById("siteid").value;	//get the site id
	
	var obj = document.getElementById("rating");
	var errorobj = document.getElementById("ratemsg");	

	if (addVoteObject)
	{	addVoteObject.open("POST", "js/ajax/vote.php");	//open the file
		addVoteObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		
		addVoteObject.onreadystatechange = function()
		{	if (addVoteObject.readyState != 4)
			{	errorobj.innerHTML = "Sending vote...";
			} else if (addVoteObject.readyState == 4 && addVoteObject.status == 200)
			{	
				var result = addVoteObject.responseText;
				if (result == "fail0")
				{	errorobj.innerHTML = "<span style='color:#FF0000;'>Site does not exist.</span>";
				} else if (result == "fail1")
				{	errorobj.innerHTML = "<span style='color:#FF0000;'>Already Voted.</span>";
				} else if (result == "fail2")
				{	errorobj.innerHTML = "<span style='color:#FF0000;'>Database Error.</span>";
				} else
				{	obj.innerHTML = result;
					errorobj.innerHTML = "<span style='color:#FF0000;'>Thanks for voting.</span>";
				}
				delete addVoteObject;	//free XMLHttpRequest object from memory
				addVoteObject = null;
			}
		}
		
		addVoteObject.send("addvote=1&siteid="+siteid+"&rating="+rating);
	} else
	{	alert("Cannot create XMLHttpObject");
	}
}

function reportLink(broken)
{
	var reportObject = makeXMLHttpRequestObject();	//make XMLHttpRequestObject
	
	var siteid = document.getElementById("siteid").value;	//get the siteid
	
	if (reportObject)
	{	reportObject.open("POST", "js/ajax/report.php");	//open the file
		reportObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		
		reportObject.onreadystatechange = function()
		{	if (reportObject.readyState != 4)
			{
			} else if (reportObject.readyState == 4 && reportObject.status == 200)
			{	
				var result = reportObject.responseText;
				if (result == "fail0")
				{	alert('Site does not exist');
				} else if (result == "fail1")
				{	alert('Database Error.');
				} else if (result == "fail2")
				{	alert('Site has already been reported. Thank you.');
				} else
				{	if (broken == 1)
					{	alert('Broken link has been reported, thank you.');
					} else
					{	alert('Inappropiate link has been reported, thank you.');
					}
				}
				delete reportObject;	//free XMLHttpRequest object from memory
				reportObject = null;
			}
		}
		
		reportObject.send("report=1&siteid="+siteid+"&broken="+broken);
	} else
	{	alert("Cannot create XMLHttpObject");
	}
}


