/*
 * String manipulation
 */

function Trim( p_string ) {
	if (typeof p_string != "string") {
		return p_string;
	}

	var t_string = p_string;
	var t_ch = '';

	// Trim beginning spaces

	t_ch = t_string.substring( 0, 1 );
	while ( t_ch == " " ) {
		t_string = t_string.substring( 1, t_string.length );
		t_ch = t_string.substring( 0, 1 );
	}

	// Trim trailing spaces

	t_ch = t_string.substring( t_string.length-1, t_string.length );
	while ( t_ch == " " ) {
		t_string = t_string.substring( 0, t_string.length-1 );
		t_ch = t_string.substring( t_string.length-1, t_string.length );
	}

	return t_string;
}


/*
 * Cookie functions
 */

function GetCookie( p_cookie ) {
	var t_cookie_name = "CITIHRD_" + p_cookie;
	var t_cookies = document.cookie;
	t_cookies = t_cookies.split( ";" );

	var i = 0;
	while( i < t_cookies.length ) {
		var t_cookie = t_cookies[ i ];

		t_cookie = t_cookie.split( "=" );

		if ( Trim( t_cookie[ 0 ] ) == t_cookie_name ) {
			return( t_cookie[ 1 ] );
		}
		i++;
	}

	return -1;
}

function SetCookie( p_cookie, p_value ) {
	var t_cookie_name = "CITIHRD_" + p_cookie;
	var t_expires = new Date();

	t_expires.setTime( t_expires.getTime() + (365 * 24 * 60 * 60 * 1000));

	document.cookie = t_cookie_name + "=" + p_value + "; expires=" + t_expires.toUTCString() + ";";
}


/*
 * Collapsible element functions
 */

var g_div_history       = 0x0001;
var g_div_bugnotes      = 0x0002;
var g_div_bugnote_add   = 0x0004;
var g_div_bugnotestats  = 0x0008;
var g_div_upload_form   = 0x0010;
var g_div_monitoring    = 0x0020;
var g_div_sponsorship   = 0x0040;
var g_div_relationships = 0x0080;
var g_div_filter        = 0x0100;
var g_div_basic_info    = 0x0200;
var g_div_advance_info  = 0x0400;
var g_div_extra_info 	= 0x0800;
var g_div_educations 	= 0x1000;
var g_div_career	 	= 0x2000;
var g_div_references 	= 0x4000;
var g_div_misc		 	= 0x8000;

/* List here the sections open by default */
var g_default_view_settings = 
	g_div_history | 
	g_div_bugnotes |
	g_div_bugnote_add |
	g_div_bugnotestats |
	g_div_upload_form |
	g_div_monitoring |
	g_div_sponsorship |
	g_div_relationships |
	g_div_basic_info |
	g_div_advance_info |
	g_div_extra_info |
	g_div_educations |
	g_div_career     |
	g_div_references |
	g_div_misc       ;


function GetViewSettings() {
	var t_cookie = GetCookie( "VIEW_SETTINGS" );

	if ( -1 == t_cookie ) {
		t_cookie = g_default_view_settings;
	} else {
		t_cookie = parseInt( t_cookie );
	}

	return t_cookie;
}

function SetDiv( p_div, p_cookie_bit ) {
	var t_view_settings = GetViewSettings();
	if( t_view_settings & p_cookie_bit ) {
		document.getElementById( p_div + "_open" ).style.display = "";
		document.getElementById( p_div + "_closed" ).style.display = "none";
	} else {
		document.getElementById( p_div + "_open" ).style.display = "none";
		document.getElementById( p_div + "_closed" ).style.display = "";
	}
}

function ToggleDiv( p_div, p_cookie_bit ) {
	var t_view_settings = GetViewSettings();
	t_view_settings ^= p_cookie_bit;
	SetCookie( "VIEW_SETTINGS", t_view_settings );
	SetDiv( p_div, p_cookie_bit );
}

/* Check checkboxes */
function checkall( p_formname, p_state) {
	var t_elements = (eval("document." + p_formname + ".elements"));

	for (var i = 0; i < t_elements.length; i++) {
    	if(t_elements[i].type == 'checkbox') {
      		t_elements[i].checked = p_state;
   		}
  	}
}

// global code to determine how to set visibility
var a = navigator.userAgent.indexOf("MSIE");
var style_display;

if (a!= -1) {
  style_display = 'block';
} else {
  style_display = 'table-row';
}
style_display = 'block';

function setDisplay(idTag, state) 
{
  if(!document.getElementById(idTag)) alert('SetDisplay(): id '+idTag+' is empty');
  // change display visibility
  if ( state != 0 ) {
      document.getElementById(idTag).style.display = style_display;
  } else {
      document.getElementById(idTag).style.display = 'none';
  }
}

function toggleDisplay(idTag) 
{
  setDisplay( idTag, (document.getElementById(idTag).style.display == 'none')?1:0 );
}

/* Append a tag name to the tag input box, with repect for tag separators, etc */
function tag_string_append( p_string ) {
	t_tag_separator = document.getElementById('tag_separator').value;
	t_tag_string = document.getElementById('tag_string');
	t_tag_select = document.getElementById('tag_select');
	if ( t_tag_string.value != '' ) {
		t_tag_string.value = t_tag_string.value + t_tag_separator + p_string;
	} else {
		t_tag_string.value = t_tag_string.value + p_string;
	}
	t_tag_select.selectedIndex=0;
}

	var oi = 0;
	var eid = 0;
	var rid;

	function cloneAndInsert(IdOfElement,target,IdOfNo)
	{
		if (eid == 0)
		{
			element = document.getElementById(IdOfElement);
			eid = 1;
			rid = eid;
		}
		else
		{
			element = document.getElementById(IdOfElement+'2');
			eid = 0;
			rid = eid;
		}
	element = element.cloneNode(true);
	oi++;
	element.id = element.id + oi;
	new_element = document.getElementById(target).appendChild(element);
	var no = document.getElementsByName(IdOfNo);
	var i;
	for (i=0;i<no.length;i++)
	{
		var xno = i+1;
		no[i].innerHTML = xno + ".";
	}

	return true;
	}

	function RemoveClone(IdOfElement,source)
	{
		if (rid == 0)
		{
			
			IdOfElement = IdOfElement + '2' + oi;
			rid = 1;
			eid = rid;
		}
		else
		{
			IdOfElement = IdOfElement + oi;
			rid = 0;
			eid = rid;
		}	
	
	element = document.getElementById(IdOfElement)
	oi--;
	if (oi < 0)
	{ 
		oi = 0; 
	}
	
	rem_element = document.getElementById(source).removeChild(element);
	return true;
	}

