
var blockOnEffect;
var blockUid;
var dataLeft;

//* Basic Functions to handle events from Childs

function containsDOM (container, containee) {
  var isParent = false;
  do {
    if ((isParent = container == containee))
      break;
    try {containee = containee.parentNode;}
	catch (e) {containee = null} 
  }
  while (containee != null);
  return isParent;
}

function checkMouseEnter (element, evt) {
  if (element.contains && evt.fromElement) {
    return !element.contains(evt.fromElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

function checkMouseLeave (element, evt) {
  if (element.contains && evt.toElement) {
    return !element.contains(evt.toElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}


//* Show Big Box
function showBigBox(usrid)
{	
 if(blockOnEffect != true)
 {
 	//get img Sizes
 	var imgSizes = $("imgsizes_" + usrid).innerHTML.split(';');
 	
 	$("netbox_" + usrid).className = 'bignetworkbox';
	$("content_" + usrid).className = 'contentoutline';
	$("shadow4_" + usrid).className = 'shadow4';
	$("shadow3_" + usrid).className = 'shadow3';
	$("shadow2_" + usrid).className = 'shadow2';
	$("shadow1_" + usrid).className = 'shadow1';
	$("networkbox_pic_" + usrid).className = 'bignetworkbox_pic';
	$("pic_" + usrid).width  = imgSizes[2];
	$("pic_" + usrid).height = imgSizes[3];
	$("data_left_" + usrid).className = 'bignetworkbox_data_left';
	$("data_right_" + usrid).className = 'bignetworkbox_data_right';
	$("data_left_" + usrid).innerHTML = $("data_left_big_" + usrid).innerHTML;
	$("btn_data_right_" + usrid).style.display = '';
	$("links_" + usrid).style.display = '';
  }
  else
  {
	//save selected uid while effect is running
	if(blockUid != usrid) blockUid = usrid;
  }
}

//* Hide Big Box
function showSmallBox(usrid)
{	
 if(blockOnEffect != true)
 {
 	//get img Sizes
 	var imgSizes = $("imgsizes_" + usrid).innerHTML.split(';');
 	
 	$("netbox_" + usrid).className = 'smallnetworkbox';
	$("content_" + usrid).className = '';
	$("shadow4_" + usrid).className = '';
	$("shadow3_" + usrid).className = '';
	$("shadow2_" + usrid).className = '';
	$("shadow1_" + usrid).className = '';
	$("networkbox_pic_" + usrid).className = 'smallnetworkbox_pic';
	$("pic_" + usrid).width  = imgSizes[0];
	$("pic_" + usrid).height = imgSizes[1];	
	$("data_left_" + usrid).className = 'smallnetworkbox_data_left';
	$("data_right_" + usrid).className = 'smallnetworkbox_data_right';
	$("data_left_" + usrid).innerHTML = $("data_left_small_" + usrid).innerHTML;
	$("btn_data_right_" + usrid).style.display = 'none';
	$("links_" + usrid).style.display = 'none';
 }
}

//* Show Big Box Sub Options
function network_show_options(from, to, usrid)
{
  	//alert("from: " + from + "to: " + to + "UID: " + usrid);
    if(usrid) $("links_border_" + usrid).style.height = "20px";
 	if(to.substr(0,4) == 'opt_') blockOnEffect = false;
 	else blockOnEffect = true;
  	$(from).style.display = 'none';
  	$(to).style.display = '';
	//Effect.Appear($(to), {duration: 0.5});
	if(usrid) setTimeout(function() {$("links_border_" + usrid).style.height = "";}, 50)
}

//* Show Options Help
function showHelp(usrid, helpType)
{
    if ($("helpLayer_" + usrid).style.display == 'none' && helpType != 1)
    {
 	 $("helpLayer_" + usrid).innerHTML = $("help" + helpType).innerHTML;
 	 $("helpLayer_" + usrid).zindex = 100000;
	 Effect.Appear($("helpLayer_" + usrid), {duration: 0.8});
	}
	else if ($("helpLayer_" + usrid).style.display == '')
	{
	 $("helpLayer_" + usrid).innerHTML = "";
 	 $("helpLayer_" + usrid).zindex = -1;
	 $("helpLayer_" + usrid).style.display = 'none';
	}
}

//* Show Rights Submenus
var tmpBlock;
function showRights(usrid, block)
{
 fields = new Array("privateRights_", "studyRights_", "businessRights_", "skillRights_")
 
 if (block == "timerShow")
 {
  for(i=0;i<fields.length;i++) 
  {
   if($(fields[i] + usrid).style.display == "") {tmpBlock = fields[i]; $(fields[i] + usrid).style.display = "none";}
  }
  Effect.Appear($("timer_" + usrid), {duration: 0.5});
 }
 else if (block == "timerHide")
 {
  for(i=0;i<fields.length;i++) 
  {
   $("timer_" + usrid).style.display = "none";
   Effect.Appear($(tmpBlock + usrid), {duration: 0.5});
  }
 }
 else if ($(block + usrid).style.display == "none")
 {
  for(i=0;i<fields.length;i++) 
  {
   $(fields[i] + usrid).style.display = "none";
  }
 
  Effect.Appear($(block + usrid), {duration: 0.5});
 }
}


//GET RIGHTS
function getParams(usrid)
{
 parents = new Array("privateRights_", "studyRights_", "businessRights_", "skillRights_")
 var params = '';
 for(i=0;i<parents.length;i++) 
 {
  childN = $(parents[i] + usrid).childNodes;
  x=0;
  while(x < childN.length - 1)
  { 
   if (childN[x].type == "checkbox") 
   {
    if(childN[x].checked == true) check = 1;
    else check = 0;
    params = params + childN[x].name + "=" + check + "&";
   }
   x++;
  }
 }
 if(editMode == true)
 {
  params = params + "editnetprofile=1&group=" + $("netprofiles_" + usrid).value;
 }
 else
 {	
  params = params + "newnetprofile=1&group=" + encodeURIComponent($("netprofile_text_" + usrid).value);
 }
 return params;
}


//SET RIGHTS
function setRights(result, usrid)
{
 //alert(result);
 if (result == 'clear') tmpUID = usrid;
 parents = new Array("privateRights_", "studyRights_", "businessRights_", "skillRights_")
 e=0;
 
 for(i=0;i<parents.length;i++) 
 {
  childN = $(parents[i] + tmpUID).childNodes;
  x=0;
  while(x < childN.length - 1)
  { 
   if (childN[x].type == "checkbox") 
   {
    if(result != 'clear')
    {
     if (result.substr(e,1) == 1) childN[x].checked = true;
     else  childN[x].checked = false;
     e++;
    }
    else {childN[x].checked = false;}
   }
   x++;
  }
 }
 if (result != 'clear') setTimeout(function(){showRights(tmpUID, "timerHide");}, 500)
}


//GET Group Rights
function updateRights(usrid)
{
 tmpUID = usrid;
 group = $("netprofiles_" + usrid).options[$("netprofiles_" + usrid).selectedIndex].text;
 if ($("netprofiles_" + usrid).value == "newprofile" || $("netprofiles_" + usrid).value == "") 
 {
  try {$("netprofiles_text_" + usrid).value = ""; $("for_all_users").style.display = "none";}catch(err){}
  setRights('clear', ''); 
  showRights('', 'privateRights_');
 }
 else 
 {
 try {$("netprofiles_text_" + usrid).value = group; $("for_all_users").style.display = "";}catch(err){}
 
 showRights(usrid, "timerShow");
 
 var url = "ajax_request.php?goto=network&fetch=rights&task=get&group=" + $("netprofiles_" + usrid).value;
 var AJXres = new Ajax.Request(url, 
	{
  	 method: 'GET',
  	 onSuccess: function (transport){setRights(transport.responseText)}
  	});
 }
}

var editMode;
var loadValues = false;
function editNetProfile(usrid)
{
 if($('netprofiles_' + usrid).value != '')
 {
  editMode = true;
  $('netprofile_text_' + usrid).value = $("netprofiles_" + usrid).options[$("netprofiles_" + usrid).selectedIndex].text; 
  $('netprofile_text_' + usrid).disable(); 
  if (loadValues == true) updateRights(usrid); 
  network_show_options('basic_rights_' + usrid, 'advanced_rights_' + usrid);
 }
}

function newNetProfile(usrid)
{
 loadValues = true;
 $('netprofile_text_' + usrid).value = ""; 
 $('netprofile_text_' + usrid).enable(); 
 setRights('clear', usrid); 
 network_show_options('basic_rights_' + usrid, 'advanced_rights_' + usrid);  
}


// AJAX - Functionality

var tmpUID;
var tmpTaskType;

function req_send(task, usrid, taskType)
{
 	var url = "ajax_request.php" + task;
 	try {var loc = $("menu_location").innerHTML}catch(err){var loc = ''}
 	if (taskType == 'add' || taskType == 'rights')
	{
	 var params;
     try {var reqTxt = encodeURIComponent($("request_text_" + usrid).value)}catch(err){var reqTxt = ''}
     try {if($('netprofiles_'+ usrid).value != "" && $('existing_rights_'+ usrid).checked) var existing_rights = true}catch(err){var existing_rights = false};
	 
	 if ($('business_rights_' + usrid).checked == true)
	 {
	  params = "newnetprofile=0&group=bus&location=" + loc + "&reqTxt=" + reqTxt;
	 }
	 else if($('private_rights_' + usrid).checked == true)
	 {
	  params = "newnetprofile=0&group=priv&location=" + loc + "&reqTxt=" + reqTxt;
	 }
	 else if(existing_rights == true && editMode != true)
	 {
	  params = "newnetprofile=0&group=" + $("netprofiles_" + usrid).value + "&location=" + loc + "&reqTxt=" + reqTxt;
	 }
	 else if($("netprofile_text_" + usrid).value != "" && ($('new_rights_' + usrid).checked == true || (existing_rights == true && editMode == true)))
	 {
	  params = getParams(usrid);
	  params = params + "&location=" + loc + "&reqTxt=" + reqTxt;
	 }
	 else
	 {
	  alert($("networkbox_please_select").innerHTML);	
	  return;
	 }
	}
 	else params = '';
 	//alert (params);
 	tmpUID = usrid;
 	tmpTaskType = taskType;
 	blockOnEffect = true;
    
	if(loc == "profile") var cssclass = "profileheadbox_";
    else				 var cssclass = "bignetworkbox_";
 	
 	$("links_" + tmpUID).innerHTML = "<div id='links_border_" + tmpUID + "' class='" + cssclass + "links_border'><span><img src='image/symbols/timer.gif'></span>&nbsp;Anfrage wird bearbeitet.</div>";
 	$("links_border_" + tmpUID).style.paddingBottom = "3px";
 	
	var AJXres = new Ajax.Request(url, 
	{
  	 method: 'post',
  	 parameters: params,
  	 onSuccess: function (transport){req_eval(transport.responseText)}
  	});
}

function req_eval(json)
{
	json = json.substring(1,json.length-1);
	
	try
	{
	  var menu_location = $("menu_location").innerHTML;
	}
	catch(err)
	{
	  var menu_location = '';		
	}
	
	//alert ("TASK:" + tmpTaskType + "MENU:" + menu_location);
	//alert (json);
	
	if(tmpTaskType == "delete")
	{
	  if (menu_location != '' && menu_location != "profile")  	effectHide();
	  else														reqReady(json);	 
	}
	else if(tmpTaskType == "rights")
	{
	  if (menu_location == json) 	effectHide();
	  else							reqReady(json); 
	}
	else if(tmpTaskType == "cancel")
	{
	  if (menu_location == 'outgoing') 	{effectHide(); reduceInOut('sub_outgoing');}
	  else								reqReady(json); 
	}
	else if(tmpTaskType == "ignore")
	{
	  if (menu_location == 'incoming') 	{effectHide(); reduceInOut('sub_incoming');}
	  else								reqReady(json); 
	}
	else if(tmpTaskType == "add")
	{
	  if (menu_location == 'incoming') 	{effectHide(); reduceInOut('sub_incoming');}
	  else								reqReady(json);	 
	}
	else
	{
	  reqReady(json);
	} 	 	
}

function reduceInOut(inout)
{
 var string = $(inout).firstChild.nodeValue;
 number = parseInt(string.substring((string.length - 2), (string.length - 1))) - 1;
 if(number > 0) $(inout).firstChild.nodeValue = string.substring(0 ,(string.length - 2)) + number + ")";
 else			$(inout).firstChild.nodeValue = string.substring(0 ,(string.length - 4));
}
	
function effectHide()
{
 $("netbox_count").innerHTML = parseInt($("netbox_count").innerHTML) - 1;
 blockOnEffect = true; 
 blockUid = ''; 
 setTimeout(function(){ blockOnEffect = false; 
	  					if(parseInt($("netbox_count").innerHTML) == 0) $("networkbox_no_records").style.display = '';
	  					if(!empty(blockUid)) showBigBox(blockUid); }, 302); 
 Effect.Fade($("netbox_" + tmpUID),{duration: 0.30}); 
 tmpUID = ''; 
 tmpTaskType = '';
}
	
function reqReady(json)
{
 try {var loc = $("menu_location").innerHTML}catch(err){var loc = ''}
 if(loc == "profile") var cssclass = "profileheadbox_";
 else				  var cssclass = "bignetworkbox_";
 setTimeout(function() {$("links_" + tmpUID).innerHTML = "<div id='links_border_" + tmpUID + "' class='" + cssclass + "links_border'><span>Erfolg!</span></div>"; $("links_border_" + tmpUID).style.paddingBottom = "3px";}, 500)
 setTimeout(function() {$("links_" + tmpUID).innerHTML = "<div id='links_border_" + tmpUID + "' class='" + cssclass + "links_border'>" + json + "</div>"; $("links_border_" + tmpUID).style.paddingBottom = ""; tmpUID = ''; tmpTaskType = ''; blockOnEffect = false;}, 1300)	
}


//**** NETPROFILES FORM ****//

function delNetProfile()
{
 if($('netprofiles_').value != "newprofile")
 {
  if(($('existing_rights').checked == true && $('movein_netprofiles').value != "") || $('business_rights').checked == true || $('private_rights').checked == true)
  {
   var delmsg = $("delmsg").innerHTML.split("+");
   var agree = confirm(delmsg[0] + " " + $("netprofiles_text_").value + " " + delmsg[1]);
   if (agree) 	
   {
    $('task').value = "delete";
    $('delete_group').value = $('netprofiles_').value;
    document.NetProfileForm.submit();
   }
  }
  else
  {
   alert ($('pleaseSelect').innerHTML);
  }
 }
}

function show_move_delete()
{
 var childs = $('movein_netprofiles').childElements();
 for (var i=0; i<childs.length; i++) if(childs[i].value == $('netprofiles_').value) {childs[i].remove(); break;}
 
 network_show_options('edit_profile', 'move_del_profile'); 
 $('btn_move_del_close').show(); 
 $('btn_move_del').hide();
 $('netprofiles_').disable();
 $('netprofiles_text_').disable();
 $('deleteSubmit').show(); 
 $('editSubmit').hide();
}

function hide_move_delete()
{
 var childs = $('movein_netprofiles').childElements();
 for (var i=0; i<childs.length; i++) childs[i].remove();
 
 var childs = $('netprofiles_').childElements();
 for (var i=1; i<childs.length; i++) $('movein_netprofiles').options[i] = new Option(childs[i].value,childs[i].value);
 
 network_show_options('move_del_profile', 'edit_profile'); 
 $('btn_move_del_close').hide(); 
 $('btn_move_del').show();
 $('netprofiles_').enable();
 $('netprofiles_text_').enable();
 $('editSubmit').show(); 
 $('deleteSubmit').hide();
}