var loader = "<div class=\"loader\"></div>";

function obj(id) 
{
	return ((document.getElementById) ? document.getElementById(id) : document.all[id]);
}

function clearField(obj) 
{
	if (obj.title == obj.value) { obj.value = ""; }
}

function setField(obj) 
{
	if (obj.value == "") { obj.value = obj.title; }
}

function checkLength(id,count)
{
	maxLen = 1000; 
	var field = obj(id);
	var fieldCount = obj(count);
	if (field.value.length >= maxLen) 
	{
		alert("You have reached your maximum limit of characters allowed");
		field.value = field.value.substring(0, maxLen);
	}
	else
	{ 
		fieldCount.value = (maxLen - field.value.length) + " characters left";
	}
}

function xmlHttp() {
	if (window.XMLHttpRequest) { return new XMLHttpRequest(); } 
	else if(window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP"); }
	else { alert("Your browser doesn't support AJAX."); }
}

function trim(str, chars) 
{
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) 
{
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) 
{
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function submitForm(form,but)
{
	var but = obj(but);
	but.innerHTML = "<input type='submit' id='submitBut' style='height:0px;width:0px;line-height:0px;visibility:hidden;display:none;'>";
	document.forms[form].elements['submitBut'].click();
}

function pos(id){
	var offsetTrail = document.getElementById(id);
	var offsetLeft = 0;
	var offsetTop = 0;
	while (offsetTrail)
	{
		offsetLeft += offsetTrail.offsetLeft;
		offsetTop += offsetTrail.offsetTop;
		offsetTrail = offsetTrail.offsetParent;
	}
	if (navigator.userAgent.indexOf('Mac') != -1 && typeof document.body.leftMargin != 'undefined')
	{
		offsetLeft += document.body.leftMargin;
		offsetTop += document.body.topMargin;
	}
	return {left:offsetLeft,top:offsetTop};
}

function scroller(id)
{
	var position = pos(id).top - 30;
	$('html,body').animate({scrollTop: position},500);
}

/* ######################################################### user functions ######### */

function showUser(id) 
{
	var user = obj("userCfg" + id);
	var xmlUser = xmlHttp();

	var userDivs = document.getElementsByTagName("div");
	for (i = 0; i < userDivs.length; i++) {
		if (userDivs[i].id.indexOf("userCfg") != -1) 
		{
			if (userDivs[i].id != 'userCfg' + id)
			{
				userDivs[i].innerHTML = "";
				userDivs[i].style.display = "none";
			}
		}
	}

	(user.style.display == "none") ? user.style.display = "block" : user.style.display = "none";

	xmlUser.onreadystatechange = function() 
	{
		var user = obj("userCfg" + id);
		
		if(xmlUser.readyState == 1) {
			user.innerHTML = loader;
		}
		
		if(xmlUser.readyState == 4) {
			user.innerHTML = xmlUser.responseText;
			editGroup(id, null, null);
		}
	
	}
	xmlUser.open("GET","xml/xmlUser.php?userID=" + id, true);
	xmlUser.send(null);
}


function addGroupForm(userID) 
{
		var divAdd = obj("addGroupForm");
		divAdd.innerHTML = '<input type="text" name="group" id="group" value="" onkeydown="if (event.keyCode==13){editGroup('+userID+',\'add\');}" /><input type="button" name="button" id="button" value="&raquo;" class="submit" onclick="editGroup('+userID+',\'add\');" style=\"float:left;\" />';
}

function editGroup(userID, a, groupID) 
{
		var xmlGroup = xmlHttp();
		var group = obj("group");
		if (group) { var groupName = trim(group.value); } else { var groupName = ""; }
		var userGroups = obj("userGroups");

		if (groupName != "" && a == "add") 
		{

			xmlGroup.onreadystatechange = function() 
			{
				if(userGroups.readyState == 1) {
					userGroups.innerHTML = loader;
				}
				if(xmlGroup.readyState == 4) {
					userGroups.innerHTML = xmlGroup.responseText;	
				}
			
			}
			xmlGroup.open("GET","xml/xmlGroup.php?a=" + a + "&userID="+userID+"&group=" + group.value, true);
			xmlGroup.send(null);

		} 
		else if (a == "delete") 
		{
			xmlGroup.onreadystatechange = function() 
			{
				if(xmlGroup.readyState == 1) 
				{
					userGroups.innerHTML = loader;	
				}
				if(xmlGroup.readyState == 4) 
				{
					userGroups.innerHTML = xmlGroup.responseText;	
				}
			
			}
			xmlGroup.open("GET","xml/xmlGroup.php?a=" + a + "&userID="+userID+"&group=" + groupID, true);
			xmlGroup.send(null);
		} 
		else if (a == "edit") 
		{
			xmlGroup.onreadystatechange = function() 
			{
				if(xmlGroup.readyState == 1) 
				{
					userGroups.innerHTML = loader;	
				}
				if(xmlGroup.readyState == 4) 
				{
					userGroups.innerHTML = xmlGroup.responseText;	
					var userGroup = obj("userGroupValue"+groupID);
					var userGroupValue = userGroup.innerHTML;
					userGroup.innerHTML = "<input type='text' value='"+userGroupValue+"' id='userGroupValue' onkeydown='if (event.keyCode==13){editGroup("+userID+",\"submit\","+groupID+");}' /><img src=\"img/icons/ok.png\" width=\"16\" class=\"submit\" height=\"16\" border=\"0\" onclick=\"editGroup("+userID+",'submit','"+groupID+"');\" style=\"float:left;\" />";
				}
			
			}
			xmlGroup.open("GET","xml/xmlGroup.php?a=" + a + "&userID="+userID+"&group=" + groupID, true);
			xmlGroup.send(null);
		} 
		else if (a == "submit") 
		{
			var userGroupValue = obj("userGroupValue");
			userGroupValue = userGroupValue.value;
			xmlGroup.onreadystatechange = function() 
			{
				if(xmlGroup.readyState == 1) 
				{
					userGroups.innerHTML = loader;	
				}
				
				if(xmlGroup.readyState == 4) 
				{
					userGroups.innerHTML = xmlGroup.responseText;	
				}
			
			}
			xmlGroup.open("GET","xml/xmlGroup.php?a=" + a + "&userID="+userID+"&group=" + groupID + "&val="+escape(userGroupValue), true);
			xmlGroup.send(null);
		}
		else
		{
			xmlGroup.onreadystatechange = function() 
			{
				if(xmlGroup.readyState == 1) 
				{
					userGroups.innerHTML = loader;	
				}
				
				if(xmlGroup.readyState == 4) 
				{
					userGroups.innerHTML = xmlGroup.responseText;	
				}
			
			}
			xmlGroup.open("GET","xml/xmlGroup.php?userID="+userID+"&group=" + groupID, true);
			xmlGroup.send(null);
		}
}

/* ######################################################### file functions ######### */


function filemanagement(id, a)
{
	var addfile = obj('listFileCnt');
	var xmlfileFom = xmlHttp();
	var url = "xml/xmlFile.php?id="+id;
	
	if (a == "delfile")
	{
		url += "&a=delfile";
	}
	
	xmlfileFom.onreadystatechange = function() {
		if(xmlfileFom.readyState == 1) 
		{
			addfile.innerHTML = loader;	
		}
		if(xmlfileFom.readyState == 4) 
		{
			addfile.innerHTML = xmlfileFom.responseText;	
		}
	}
	xmlfileFom.open("GET",url, true);
	xmlfileFom.send(null);
}

function showFileSend(id)
{
	var fileSendCnt = obj('fileSendCnt'+id);
	var xmlfileFom = xmlHttp();
	
	var fileDivs = document.getElementsByTagName("div");
	for (i = 0; i < fileDivs.length; i++) {
		if (fileDivs[i].id.indexOf("fileSendCnt") != -1) 
		{
			if (fileDivs[i].id != 'fileSendCnt'+id)
			{
				fileDivs[i].innerHTML = "";
				fileDivs[i].style.display = "none";
			}
		}
	}
	(fileSendCnt.style.display == "none") ? fileSendCnt.style.display = "block" : fileSendCnt.style.display = "none";
	
	xmlfileFom.onreadystatechange = function() 
	{
		if(xmlfileFom.readyState == 1) 
		{
			fileSendCnt.innerHTML = loader;
		}
		if(xmlfileFom.readyState == 4) 
		{
			fileSendCnt.innerHTML = xmlfileFom.responseText;	
		}
	}
	xmlfileFom.open("GET","xml/xmlFileSend.php?id="+id, true);
	xmlfileFom.send(null);
}

function showSendForm(id) 
{
	var div = obj(id);
	var action = obj("action");
	action.value = id;

	var divs = document.getElementsByTagName("div");
	for (i = 0; i < divs.length; i++) 
	{
		if (divs[i].id.indexOf("SendForm") != -1) 
		{
			divs[i].style.display = "none";
			
		}
	}
	div.style.display = "block";
}

function downloadFile(id)
{
	document.location.href = "?a=downloadfile&id="+id;
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function sendFile(id)
{
	var fileSendCnt = obj('fileSend');
	fileSendCnt = fileSendCnt.parentNode;
    
    /*
	var xmlfileFom = xmlHttp();
	
	xmlfileFom.onreadystatechange = function() 
	{
		if(xmlfileFom.readyState == 1) 
		{
			fileSendCnt.innerHTML = loader;
		}
		if(xmlfileFom.readyState == 4) 
		{
			fileSendCnt.innerHTML = xmlfileFom.responseText;	
		}
	}
    */
	
	var email = obj("email");
	email = trim(escape(email.value));
	email = email.replace("%20","");
	
	var limit = obj("limit");
	limit = limit.value;
	
	var expire = obj("expire");
	expire = expire.value;
	
	var message = obj("message");
	message = message.value; //escape(message.value);
	
	var action = obj("action");
	action = action.value;
	
	var group = obj("group");
	group = group.options[group.selectedIndex].value;
    
    fileSendCnt.innerHTML = loader;
    
    $.ajax({
        type: "POST",
        url: "xml/xmlFileSend.php",
        cache: false,
        data: { a: action, id: id, email: email, group:group, limit:limit, expire:expire, message:message },
        async: true,            
        success: function(result) { fileSendCnt.innerHTML = result; }
    });
	
	//xmlfileFom.open("GET","xml/xmlFileSend.php?a="+action+"&id="+id+"&email="+email+"&group="+group+"&limit="+limit+"&expire="+expire+"&message="+message, true);
	//xmlfileFom.send(null);

}


