<?php

	/**
	 * Elgg friends picker
	 * Lists the friends picker
	 * 
	 * @package Elgg
	 * @subpackage Core
	 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
	 * @author Curverider Ltd
	 * @copyright Curverider Ltd 2008
	 * @link http://elgg.org/
	 * 
	 * @uses $vars['entities'] The array of ElggUser objects
	 */

	// Let the system know that the friends picker is in use
		global $pickerinuse;
		$pickerinuse = true;

	// Initialise internalname
		if (!isset($vars['internalname'])) {
			$internalname = "friend";
		} else {
			$internalname = $vars['internalname'];
		}
		
	// Initialise values
		if (!isset($vars['value'])) {
			$vars['value'] = array();
		} else {
			if (!is_array($vars['value'])) {
				$vars['value'] = (int) $vars['value'];
				$vars['value'] = array($vars['value']);
			}
		}

	// Initialise whether we're calling back or not
		if (isset($vars['callback'])) {
			$callback = $vars['callback'];
		} else {
			$callback = false;
		}
		
	// We need to count the number of friends pickers on the page.
		if (!isset($vars['friendspicker'])) {
			global $friendspicker;
			if (!isset($friendspicker)) $friendspicker = 0;
			$friendspicker++;
		} else {
			$friendspicker = $vars['friendspicker'];
		}

		$users = array();
		$activeletters = array();
		
	// Are we displaying form tags and submit buttons?
	// (If we've been given a target, then yes! Otherwise, no.)
		if (isset($vars['formtarget'])) {
			$formtarget = $vars['formtarget'];
		} else {
			$formtarget = false;
		}
		
	// Sort users by letter
		if (is_array($vars['entities']) && sizeof($vars['entities']))
			foreach($vars['entities'] as $user) {
				
				$letter = strtoupper(substr($user->name,0,1));
				if ($letter >= "0" && $letter <= "9") {
					$letter = "0";
				}
				if (!isset($users[$letter])) {
					$users[$letter] = array();
				}
				$users[$letter][$user->name] = $user;
				
			}
		
	if (!$callback) {
			
?>

<div class="friends_picker">

<?php

	if (isset($vars['content'])) echo $vars['content'];

	
?>

	<div id="friends_picker_placeholder<?php echo $friendspicker; ?>">

<?php
	
	}
	
	if (!isset($vars['replacement'])) {
	
		if ($formtarget) {
?>

	<script language="text/javascript">
		$(function() { // onload...do
		$('#collectionMembersForm<?php echo $friendspicker; ?>').submit(function() {
			var inputs = [];
			$(':input', this).each(function() {
				if (this.type != 'checkbox' || (this.type == 'checkbox' && this.checked != false)) {
					inputs.push(this.name + '=' + escape(this.value));
				}
			});
			jQuery.ajax({
				type: "POST",
				data: inputs.join('&'),
				url: this.action,
				success: function(){
     				$('a.collectionmembers<?php echo $friendspicker; ?>').click();
   				}

			});
			return false;
        })
      })

	</script>

	<!-- Collection members form -->
	<form id="collectionMembersForm<?php echo $friendspicker; ?>" action="<?php echo $formtarget; ?>" method="post"> <!-- action="" method=""> -->

<?php

		}

?>

	<div class="friendsPicker_wrapper">
	<div id="friendsPicker<?php echo $friendspicker; ?>">
		<div class="friendsPicker_container">
<?php

	// Initialise letters
		$letter = 'A';
		while (1 == 1) {
?>
			<div class="panel" title="<?php echo $letter; ?>">
				<div class="wrapper">
					<h3><?php echo $letter; ?></h3>					
					
<?php

			if (isset($users[$letter])) {
				ksort($users[$letter]);
				
				echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
				$col = 0;
				
				foreach($users[$letter] as $friend) {
					if ($col == 0) echo "<tr>";
					
					//echo "<p>" . $user->name . "</p>";
					$label = elgg_view("profile/icon",array('entity' => $friend, 'size' => 'tiny', 'override' => true)); 
					$options[$label] = $friend->getGUID();
					if (in_array($friend->getGUID(),$vars['value'])) {
						$checked = "checked = \"checked\"";
						if (!in_array($letter,$activeletters))
							$activeletters[] = $letter;
					} else {
						$checked = "";
					}

?>

			<td>
			
				<input type="checkbox" <?php echo $checked; ?> name="<?php echo $internalname; ?>[]" value="<?php echo $options[$label]; ?>" />
			
			</td>

			<td >
			
				<div style="width: 25px; margin-bottom: 15px;">
<?php

				echo $label;
			
?>
				</div>
			</td>
			<td style="width: 200px; padding: 5px;">
<?php

					echo $friend->name;
				
?>
			</td>
<?php
					
					$col++;
					if ($col == 3){
						echo "</tr>";
						$col = 0;
					}
				}
				if ($col < 3) echo "</tr>";
				
				echo "</table>";
				
			}

?>
			
				</div>
			</div>
<?php			
			if ($letter == 'Z') break;
			$letter++;
		}
		
?>
		</div>
		
<?php

	if ($formtarget) {

		if (isset($vars['formcontents']))
			echo $vars['formcontents'];
		
?>
		<input type="submit" class="submit_button" value="<?php echo elgg_echo('save'); ?>" />
		<!--  onclick="$('a.collectionmembers<?php echo $friendspicker; ?>').click();"  -->
		<input type="button" class="cancel_button" value="<?php echo elgg_echo('cancel'); ?>" onclick="$('a.collectionmembers<?php echo $friendspicker; ?>').click();" />
		</form>
		
<?php

	}

?>
		
	</div>
	</div>
	
<?php
	} else {
		echo $vars['replacement']; 
	}
	if (!$callback) {

?>
			
	</div>
</div>


<?php

	}

	if (!isset($vars['replacement'])) {
?>

<script type="text/javascript">
		// initialise picker
		$("div#friendsPicker<?php echo $friendspicker; ?>").friendsPicker(<?php echo $friendspicker; ?>);
</script>
<script>
	$(document).ready(function () {
	// manually add class to corresponding tab for panels that have content
<?php
	if (sizeof($activeletters) > 0)
		$chararray = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
		foreach($activeletters as $letter) {
			$tab = strpos($chararray, $letter) + 1;
?>
	$("div#friendsPickerNavigation<?php echo $friendspicker; ?> li.tab<?php echo $tab; ?> a").addClass("tabHasContent");
<?php
		}

?>
	});
</script>

<?php

	}

?>