// JavaScript Document
function getElementValueById(sElementId)
{
	if(typeof(document.getElementById(sElementId)!="undefined"))
	{
		return(document.getElementById(sElementId).value);
	}
	return false;
}

function setElementValueById(sElementId, sValue)
{
	if(typeof(document.getElementById(sElementId)!="undefined"))
	{
		document.getElementById(sElementId).value = sValue;
		return true;
	}
	return false;
}

function getTopPositionById(sId)
{
	var oElement = document.getElementById(sId);
	var iTop = oElement.offsetTop;

	while((oElement = oElement.offsetParent) !== null)
	{
		iTop += oElement.offsetTop;
	}

	return iTop;
}

function setFocusById(strId)
{
	var obj = document.getElementById(strId);
	obj.focus();
	obj.select();
}

function removeElement(oElement)
{
	if(typeof(oElement) == "object")
	{
		if(typeof(oElement.parentNode) == "object" && oElement.parentNode !== null)
		{
			oElement.parentNode.removeChild(oElement);
		}
	}
	return true;
}

function ToggleViewById(sElementId)
{
	if(typeof(document.getElementById(sElementId)!="undefined"))
	{
		var oElement = document.getElementById(sElementId);
		if(oElement.style.display == "block")
		{
			oElement.style.display = "none";
		}
		else
		{
			oElement.style.display = "block";
		}
	}
}

function EnumObjProperties(o)
{
	var sList="";
	for (var p in o){sList += p+":"+typeof(p)+"\n";}
	return sList;
}

function ReplaceSubstr(sText, sTextToFind, sTextToReplace)
{
	var aText = sText.split(sTextToFind);
	if(aText.length === 0)
	{
		return(sText);
	}
	else
	{
		sText = aText[0];
		for(var i=1; i<aText.length; i++)
		{
			sText += aText[i]+sTextToReplace;
		}
		return(sText);
	}
}

function createRequestObject()
{
	var ro;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer")
	{
		ro = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else
	{
		ro = new XMLHttpRequest();
	}
	return ro;
}

function handleResponse(oXmlHttp)
{
	switch (oXmlHttp.readyState)
	{
	case 2:
	case 3:
		alert("ok!");
		break;
	case 4:
		alert("not ok!");
		break;
	default:
		break;
	}
}

function AspCall(sAction, sParameters)
{
	var oXMLHTTP = createRequestObject();
	var url="/includes/AspCallBack.asp?action=" + sAction + "&p=" + sParameters;
	oXMLHTTP.open( "POST", url, false );
//	oXMLHTTP.onreadystatechange = handleResponse(oXMLHTTP);
	oXMLHTTP.send( '');

	if(oXMLHTTP.readyState == 4)
	{
		return oXMLHTTP.responseText;
	}
}

function onLoadPlanner()
{
	var HTMLdivElements = document.getElementsByTagName("div");
	var sElementClass;
	for(var i=0; i<HTMLdivElements.length; i++)
	{
		sElementClass = HTMLdivElements[i].className;
		if(sElementClass.indexOf("planner_cell") !== -1)
		{
			HTMLdivElements[i].onmouseover = function()
				{
					if(this.className.indexOf("planner_cell_reserved") == -1)
					{
						if(this.className.indexOf("planner_cell_selected") !== -1)
						{
							this.className = ReplaceSubstr(this.className, "planner_cell_selected", " planner_cell_selected_hover");
						}
						else
						{
							this.className = ReplaceSubstr(this.className, "planner_cell", " planner_cell_hover");
						}
					}
//					console.info(this.className);
				};

			HTMLdivElements[i].onmouseout = function()
				{
					this.className = ReplaceSubstr(this.className, "_hover", "");
				};

			HTMLdivElements[i].onclick = function()
				{
					if(this.className.indexOf("planner_cell_reserved") == -1)
					{
						if(this.className.indexOf("planner_cell_selected") !== -1)
						{
							this.className = ReplaceSubstr(this.className, "planner_cell_selected", " planner_cell");
							AspCall("db", UnSetBusyInDB(this));
							this.innerHTML = "";
						}
						else
						{
							if(!document.getElementById("selUser").value)
							{
								alert("Seleziona utente!");
							}
							else
							{
								this.className = ReplaceSubstr(this.className, "planner_cell", " planner_cell_selected");
								AspCall("db", SetBusyInDB(this));
								if(document.getElementById("selUser").tagName.toLowerCase() != "input")
								{
									this.innerHTML = document.getElementById("selUser").value;
									console.info(document.getElementById("selUser").tagName);
								}
							}
						}
					}
				};
		}
	}

	var HTMLaElements = document.getElementsByTagName("a");
	for(i=0; i<HTMLaElements.length; i++)
	{
		if(HTMLaElements[i].className == "calendarLink")
		{
			HTMLaElements[i].style.display = "none";
		}
	}
}

function SetBusyInDB(oElement)
{
//get user:
	var sIdUser = document.getElementById("selUser").value;

//get resource:
	var aElements = oElement.id.split("_");
	var sIdResource = aElements[2];

//get date:
	var sCurrentDate = document.getElementById("planner_header_current_day").firstChild.nodeValue;
	sCurrentDate = sCurrentDate.substr(6,4)+"-"+sCurrentDate.substr(3,2)+"-"+sCurrentDate.substr(0,2)+"T";
	var iDate = parseInt(aElements[3], 10);
	var sStartDate;
	var sEndDate;
	if(iDate%100 === 0)
	{
		sStartDate = iDate/100+":00:00";
		sEndDate = iDate/100+":30:00";
	}
	else
	{
		sStartDate = parseInt(iDate/100, 10)+":30:00";
		sEndDate = (1+parseInt(iDate/100, 10))+":00:00";
	}

	if(sStartDate.length == 7)
	{
		sStartDate = "0" + sStartDate;
	}

	if(sEndDate.length == 7)
	{
		sEndDate = "0" + sEndDate;
	}

	sStartDate = sCurrentDate + sStartDate;
	sEndDate = sCurrentDate + sEndDate;

	var sInsertSQL = "INSERT INTO [Planner] ([IdResource] ,[IdUser] ,[StartDate] ,[EndDate]) VALUES (" + sIdResource + ", " + sIdUser + ", '" + sStartDate + "', '" + sEndDate + "')";
	return(sInsertSQL);
}

function UnSetBusyInDB(oElement)
{
//get resource:
	var aElements = oElement.id.split("_");
	var sIdResource = aElements[2];

//get date:
	var sCurrentDate = document.getElementById("planner_header_current_day").firstChild.nodeValue;
	sCurrentDate = sCurrentDate.substr(6,4)+"-"+sCurrentDate.substr(3,2)+"-"+sCurrentDate.substr(0,2)+"T";
	var iDate = parseInt(aElements[3], 10);
	var sStartDate;
	var sEndDate;
	if(iDate%100 === 0)
	{
		sStartDate = iDate/100+":00:00";
		sEndDate = iDate/100+":30:00";
	}
	else
	{
		sStartDate = parseInt(iDate/100, 10)+":30:00";
		sEndDate = (1+parseInt(iDate/100, 10))+":00:00";
	}

	if(sStartDate.length == 7)
	{
		sStartDate = "0" + sStartDate;
	}

	if(sEndDate.length == 7)
	{
		sEndDate = "0" + sEndDate;
	}

	sStartDate = sCurrentDate + sStartDate;
	sEndDate = sCurrentDate + sEndDate;

	var sDeleteSQL = "DELETE FROM [Planner] WHERE IdResource = " + sIdResource + " AND StartDate = '" + sStartDate + "' AND EndDate = '" + sEndDate + "'";
	return(sDeleteSQL);
}
