//============================== Friend Request Related Section ==============================
// Check friend request after 3 seconds
setTimeout("check_friend_request();", 3*1000);

function check_friend_request()
{
	var strURL = "get_friend_request_json.php?timestamp="+getTimeStamp();

	var xmlHttp = createRequestObject();		// Make the XMLHttpRequest object
	xmlHttp.open("GET", strURL, true);			// Open a connection to the server (True = asynchronous mode)
	xmlHttp.onreadystatechange = function ()
	{
		if (xmlHttp.readyState != 4) return;	// We only want readyState = 4 (received result)	
		if(xmlHttp.status==200)
		{
			var xmlHttp_Data = xmlHttp.responseText;
			if (xmlHttp_Data != "")
			{
				var objResult = null;
				try
				{
					objResult = eval('(' + xmlHttp_Data + ')');
				}
				catch (err)
				{
					alert("ERROR:" + err.name + "\n" + err.message);
				}
				
				if (objResult)
				{
					if(objResult.rspstat == "ok")
					{
						if(objResult.ygp_device)
						{
							var strFriend_UID, strSerial_No, strRequest_Device_Name, strRequest_Div_Name = "";
							if (objResult.ygp_device.length)
							{
								for (i=0; i < objResult.ygp_device.length; i++)
								{
									strFriend_UID = objResult.ygp_device[i].user_id;
									strSerial_No = objResult.ygp_device[i].serial_no;
									switch(objResult.ygp_device[i].product_type)
									{
										case "1":
											strRequest_Device_Name = "Desk-top Frame";
											break;
											
										case "2":
											strRequest_Device_Name = "Photo Catcher";
											break;
											
										default:
											alert_box("Unknown Product Type:" + objResult.ygp_device[i].product_type);
											return false;
									}
									strRequest_Device_Name += " - " + objResult.ygp_device[i].mac_alias;
									strRequest_Div_Name = "divFriend_Request_"+strFriend_UID+"|"+strSerial_No;
		
									strHTML = $("divFriend_Request").innerHTML;
									strHTML = ygp_compile(strHTML, "Friend_Name", strFriend_UID);
									strHTML = ygp_compile(strHTML, "Request_Device_Name", strRequest_Device_Name);
									strHTML = ygp_compile(strHTML, "Request_Div_Name", strRequest_Div_Name);
									$("container").innerHTML += "<div id='"+strRequest_Div_Name+"' style='position:absolute;top:0;left:0;width:486px;height:240px;visibility:hidden'>" +strHTML + "</div>";

									showBox(strRequest_Div_Name);
								}
							}
							else
							{
								strFriend_UID = objResult.ygp_device.user_id;
								strSerial_No = objResult.ygp_device.serial_no;
								
								switch(objResult.ygp_device.product_type)
								{
									case "1":
										strRequest_Device_Name = "Desk-top Frame";
										break;
										
									case "2":
										strRequest_Device_Name = "Photo Catcher";
										break;
										
									default:
										alert_box("Unknown Product Type:" + objResult.ygp_device.product_type);
										return false;
								}
								
								strRequest_Device_Name += objResult.ygp_device.mac_alias;
								strRequest_Div_Name = "divFriend_Request_"+strFriend_UID+"|"+strSerial_No;
	
								strHTML = $("divFriend_Request").innerHTML;
								strHTML = ygp_compile(strHTML, "Friend_Name", strFriend_UID);
								strHTML = ygp_compile(strHTML, "Request_Device_Name", strRequest_Device_Name);
								strHTML = ygp_compile(strHTML, "Request_Div_Name", strRequest_Div_Name);
								$("container").innerHTML += "<div id='"+strRequest_Div_Name+"' style='position:absolute;top:0;left:0;width:486px;height:240px;visibility:hidden'>" +strHTML + "</div>";
	
								showBox(strRequest_Div_Name);
							}
						}
						else
						{
							// No friend request found so nothing need to be done! :-)
						}
					}
					else
					{
						if(objResult.message)
						{
							alert(objResult.message);
						}
						else
						{
							alert(xmlHttp_Data);
						}
					}
				}
			}
			else
			{
				alert("Time out!?");
			}
		}
	}
	xmlHttp.send(null);								// Send the request
}

function respond_request(strDiv_Name, intResponse)
{
	if((intResponse == 1) || (intResponse == 2))
	{
		var strURL = "save_friend_request_json.php";
		strURL += "?UID=" + strDiv_Name.replace("divFriend_Request_","").replace("|","&SNO=");
		strURL += "&r=" + intResponse;
		strURL += "&timestamp=" + getTimeStamp();
		
		var xmlHttp = createRequestObject();		// Make the XMLHttpRequest object
		xmlHttp.open("GET", strURL, true);			// Open a connection to the server (True = asynchronous mode)
		xmlHttp.onreadystatechange = function ()
		{
			if (xmlHttp.readyState != 4) return;	// We only want readyState = 4 (received result)	
			if(xmlHttp.status==200)
			{
				hideBox(strDiv_Name);
				
				var xmlHttp_Data = xmlHttp.responseText;
				if (xmlHttp_Data != "")
				{
					var objResult = null;
					try
					{
						objResult = eval('(' + xmlHttp_Data + ')');
					}
					catch (err)
					{
						alert("ERROR:" + err.name + "\n" + err.message);
					}
					
					if (objResult)
					{
						if(objResult.rspstat == "ok")
						{
	//						alert("Update ok!");
						}
						else
						{
							if(objResult.message)
							{
								alert(objResult.message);
							}
							else
							{
								alert(xmlHttp_Data);
							}
						}
					}
				}
				else
				{
					alert("Time out!?");
				}
			}
		}
		xmlHttp.send(null);								// Send the request
	}
	else
	{
		// Delay request..
		var strURL = "delay_friend_request_json.php";
		strURL += "?UID=" + strDiv_Name.replace("divFriend_Request_","").replace("|","&SNO=");
		strURL += "&timestamp=" + getTimeStamp();
		
		var xmlHttp = createRequestObject();		// Make the XMLHttpRequest object
		xmlHttp.open("GET", strURL, true);			// Open a connection to the server (True = asynchronous mode)
		xmlHttp.onreadystatechange = function ()
		{
			if (xmlHttp.readyState != 4) return;	// We only want readyState = 4 (received result)	
			if(xmlHttp.status==200) 	hideBox(strDiv_Name);
		}
		xmlHttp.send(null);								// Send the request
	}
}
