if(!s_scot_root_path) var s_scot_root_path = '';
//var img_checkbox_chk = s_scot_root_path + "images/_common_blue/scot/checkbox_checked.gif";
//var img_checkbox = s_scot_root_path + "images/_common_blue/scot/checkbox.gif";

var img_checkbox_chk = "scot/images/_common_blue/icons/checkbox_checked.gif";
var img_checkbox = "scot/images/_common_blue/icons/checkbox.gif";

var img_session_open = s_scot_root_path + "images/_common_blue/icons/plus.gif";
var img_session_close = s_scot_root_path + "images/_common_blue/icons/minus.gif";
var img_loading = s_scot_root_path + "images/_common_blue/scot/loading.gif";


var global_parent = null;
var reg_username = null;
var reg_password = null;

// reset select boxes
function reset_local(txt) {
	document.post.reset();
	// reset keyword search text
	if(txt != null)
		document.getElementById('keyword').value = txt;
	// reset checkmarks
	var els = document.getElementsByTagName('img');
	for(var el in els) {
		if(els[el] != 'undefined' && els[el] != null && els[el].src) {
			if(els[el].src.match(/_checked\./i)) {
				var elid = els[el].getAttribute('id');
				// skip media: abstract,poster as well as marked sessions,tracks
				if(elid && (elid == 'media_abstract_img' || elid.substring(5, 0) == 'mark_' || elid.substring(12, 0) == 'publication_'))
					continue;

				els[el].src = els[el].src.replace(/_checked\./i, '.');
				// check for input tag & uncheck it
				if(elid != 'undefined' && elid != null) {
					elid = elid.replace(/_img/, '');
					var eltag = document.getElementById(elid);
					if(eltag != 'undefined' && eltag != null)
						eltag.checked = '';
				}
			}
		}
	}
} // function reset_local

// recursive checkbox check function
function checkbox_check(id) {
	var elid = id + (b_bookmarks ? '_bookmarks' : '');
	var element = document.getElementById(elid);
	if(element == null && (element = document.getElementById(elid)) == null)
		return;
	elid = null;

	var extension = '_img' + (b_bookmarks ? '_bookmarks' : '');
	var parentid = element.getAttribute('parentid');
	var selfid = element.getAttribute('selfid');

	if(global_parent != null && selfid != global_parent.getAttribute('selfid')) {
		if(element.checked && !global_parent.checked) {
			element.checked = false;
			document.getElementById(id + extension).src = img_checkbox;
		} else if(!element.checked && global_parent.checked) {
			element.checked = true;
			document.getElementById(id + extension).src = img_checkbox_chk;
		}
	} else {
		if (element.checked) {
			element.checked = false;
			document.getElementById(id + extension).src = img_checkbox;
		} else {
			element.checked = true;
			document.getElementById(id + extension).src = img_checkbox_chk;
		}
	}

	if(selfid != null && selfid > 0) {
		var els = document.getElementsByName('topic_id[]');
		for(var i = 0; i < els.length; i++) {
			if(els[i].getAttribute('parentid') == selfid)
				checkbox_check(els[i].getAttribute('id'));
		}
	} // mark subtree
}

function check_topics(id) {
	var element = document.getElementById(id);
	if(element == null)
		return;

	global_parent = element;
	checkbox_check(id);
}

function check_normal(id) {
	global_parent = null;
	checkbox_check(id);
}

function register_cb(e) {
	if (e != 1) {
		document.getElementById('errors_container').style.visibility = 'visible';
		var ul = document.getElementById('errors');
			ul.innerHTML = '';
		for (var i in e)
			ul.innerHTML += '<li>' + e[i] + '</li>';
	} else {
		document.getElementById('errors_container').style.visibility = 'hidden';
		document.getElementById('errors').innerHTML = '';

		var t = document.getElementById('regtab');
		t.innerHTML = '';
		t.innerHTML += '<p align="center">' + s_register_thanks + '</p>';
		// t.innerHTML += '<p align="center"><a href="javascript:var url = document.location.href;document.location.href = url;">' + s_register_reload + '</a></p>';
		t.innerHTML += '<p align="center"><a href="#" onclick="x_check_login(reg_username, reg_password, login_cb); return false;">' + s_register_reload + '</a></p>';
	}
}

function check_register() {
	document.getElementById('errors_container').style.visibility = 'hidden';
	document.getElementById('errors').innerHTML = '';
	var sal = document.getElementsByName('r_salutation');
	var salutation = '';

	try {
		if (document.getElementsByName('r_salutation')[0].checked)
			salutation = document.getElementsByName('r_salutation')[0].value;
		else if (document.getElementsByName('r_salutation')[1].checked)
			salutation = document.getElementsByName('r_salutation')[1].value;
		else if (document.getElementsByName('r_salutation')[2].checked)
			salutation = document.getElementsByName('r_salutation')[2].value;
	} catch(e) {}

	var title = document.getElementById('r_academictitle').value;
	var firstname = document.getElementById('r_firstname').value;
	var lastname = document.getElementById('r_lastname').value;
	var email = document.getElementById('r_email').value;
	var username = document.getElementById('r_username').value;
	var password = document.getElementById('r_password').value;
	var password2 = document.getElementById('r_password2').value;

	reg_username = username;
	reg_password = (password == password2) ? password : null;

	x_register(salutation, title, firstname, lastname, email, username, password, password2, register_cb);
}

function find_account_cb(e) {
	if (e != '') {
		var er = document.getElementById('fpwerror');
		er.innerHTML = e;
	} else {
		document.getElementById('fpwerror').innerHTML = '';

		var t = document.getElementById('tab');
		t.innerHTML = '';
		t.innerHTML += '<p align="center" style="padding-top: 50px; font-weight: bold">' + s_password_confirm + '</p>';
	}
}

function check_data() {
	document.getElementById('fpwerror').innerHTML = '';
	var lastname = document.getElementById('lastname').value;
	var email = document.getElementById('email').value;

	x_find_account(lastname, email, find_account_cb);
}

function erro_cb(e) {
	if (e != '') {
		alert(e);
	} else {
		// x_get_my_sessions(person_id, my_sessions_cb);
		x_refresh_bookmarks(person_id, my_bookmarks_cb);
	}
}

function initializeLinks(el, pre_id) {
	var links = el.getElementsByTagName('a');
	var id = '';
	var cnt = 0;
	var link = null;

	for(var i = 0; i < links.length; i++) {
		link = links[i];
		if(link.className == 'lWOn') {
			cnt++;
			id = pre_id + cnt;
			link.setAttribute('id', id);
			mylightWindow.initializeWindow(id);
		}
	}
}


function my_bookmarks_cb(result) {
	if(document.getElementById('bookmarks')) {
		var el = document.getElementById('bookmarks');
		el.innerHTML = '';
		el.innerHTML = result;
		initializeLinks(el, 'bookmark_link_');
	}
}

function my_sessions_cb(sessions) {
	var ul = document.getElementById('my_sessions');
	ul.innerHTML = '';

	if (sessions[0]) {
		ul.innerHTML = '';
		for (var i in sessions) {
			ul.innerHTML += '<li class="my_session">';
			if (sessions[i][1].length > 8) {
				ul.innerHTML += '<div class="my_day">' + sessions[i][2] + '</div>';
				ul.innerHTML += '<div class="my_time">' + sessions[i][3] + '</div>';
				ul.innerHTML += '<div style="clear:both"><a href="' + s_url + '&session=' + sessions[i][0] + '">' + sessions[i][1] + '</a></div>';
			}
			else {
				ul.innerHTML += '<div class="my_nr"><a href="' + s_url + '&session=' + sessions[i][0] + '">' + sessions[i][1] + '</a></div>';
				ul.innerHTML += '<div class="my_day">' + sessions[i][2] + '</div>';
				ul.innerHTML += '<div class="my_time">' + sessions[i][3] + '</div>';
			}
			ul.innerHTML += '</li>';
		}
	}
	x_get_my_publications(person_id, my_publications_cb)
}
function my_publications_cb(pubs) {
	var ul = document.getElementById('my_sessions');

	if (pubs[0]) {
		ul.innerHTML += '<div><br clear="all"/></div>';
		for (var i in pubs) {
			ul.innerHTML += '<li class="my_session">';
			ul.innerHTML += '<div class="my_nr"><a href="' + s_url + '&abstract=' + pubs[i][0] + '">' + pubs[i][1] + '</a></div>';
			ul.innerHTML += '</li>';
		}
	}
}
function tracks_of_session_cb(result) {
	if(result[0] && result[1]) {
		var ul = document.getElementById('session_tracks_' + result[0]);

		ul.innerHTML = result[1];
		ul.setAttribute('loaded', 'loaded');
		initializeLinks(ul, 'track_link_' + result[0] + '_');
	}
}
function toggle_tracks(session_id, a, bookmark) {
	var s_bookmark = bookmark ? '_bookmarks' : '';
	var ul = document.getElementById('session_tracks_' + session_id + s_bookmark);
	var img = a.getElementsByTagName('img')[0];

	if(ul.style.display == 'block') {
		img.src = img_session_open;
		ul.style.display = 'none';
	}
	else {
		img.src = img_session_close;
		ul.style.display = 'block';

		if (!ul.getAttribute('loaded') && !bookmark) {
			ul.innerHTML = '<li><img src="' + img_loading + '" alt="" align="absmiddle" hspace="5" /> <em>Please wait while loading</em></li>';
			x_get_tracks_of_session(session_id, tracks_of_session_cb);
		}
	}
}
function mark_session(id) {
	if (person_id == 0) {
		alert(s_login_alert);
		return false;
	}

	if (document.getElementById('session_' + id).className == 'session_marked') {
		if(!confirm(s_remove_bookmark)) return false;

		document.getElementById('session_' + id).className = 'session';
		x_unmark_session(person_id, id, erro_cb);
	} else {
		document.getElementById('session_' + id).className = 'session_marked';
		x_mark_session(person_id, id, erro_cb);
	}

	checkbox_check('mark_' + id);
}
function mark_track(sid, tid) {
	if (person_id == 0) {
		alert(s_login_alert);
		return false;
	}

	if (document.getElementById('track_' + sid + '_' + tid).className == 'track_marked') {
		if(!confirm(s_remove_bookmark)) return false;

		document.getElementById('track_' + sid + '_' + tid).className = 'track';
		x_unmark_track(person_id, sid, tid, erro_cb);
	} else {
		document.getElementById('track_' + sid + '_' + tid).className = 'track_marked';
		x_mark_track(person_id, sid, tid, erro_cb);
	}

	checkbox_check('mark_' + sid + '_' + tid);
}
function mark_publication(id) {
	if (person_id == 0) {
		alert(s_login_alert);
		return false;
	}

	if (document.getElementById('publication_' + id).className == 'session_marked') {
		if(!confirm(s_remove_bookmark)) return false;

		document.getElementById('publication_' + id).className = 'session';
		x_unmark_publication(person_id, id, erro_cb);

		document.getElementById('publication_' + id + '_favorite_marked').style.display = 'none';
		document.getElementById('publication_' + id + '_favorite').style.display = '';
	} else {
		document.getElementById('publication_' + id).className = 'session_marked';
		x_mark_publication(person_id, id, erro_cb);

		document.getElementById('publication_' + id + '_favorite_marked').style.display = '';
		document.getElementById('publication_' + id + '_favorite').style.display = 'none';
	}


//	checkbox_check('publication_' + id);
/*
	if(document.getElementById('pub_marked_span_' + id).className == 'is_marked') {
		if(!confirm(s_remove_bookmark)) return false;

		document.getElementById('pub_marked_span_' + id).className = 'is_unmarked';
		x_unmark_publication(person_id, id, erro_cb);
		document.getElementById('pub_marked_img_' + id).src = document.getElementById('pub_marked_img_' + id).src.replace(/_delete\./i, '_add.');
		document.getElementById('pub_marked_span_' + id).innerHTML = 'add to my bookmarks';
	} else {
		document.getElementById('pub_marked_span_' + id).className = 'is_marked';
		x_mark_publication(person_id, id, erro_cb);
		document.getElementById('pub_marked_img_' + id).src = document.getElementById('pub_marked_img_' + id).src.replace(/_add\./i, '_delete.');
		document.getElementById('pub_marked_span_' + id).innerHTML = 'remove from my bookmarks';
	}
*/
}
function login_cb(r) {
	if (r == 'failed') {
		document.getElementById('login_error').style.visibility = 'visible';
		return false;
	}

	if (b_lightwindow && parent.location.href) {
		s = parent.location.href;
		parent.location.href = s.split('#')[0] + '&publication=' + r + '#publication_' + r;
	} else {
		s = document.location.href;
		document.location.href = s.split('#')[0] + '&publication=' + r + '#publication_' + r;
	}

/*
	testing:
	width = 500;
	height = 500;
	if (b_lightwindow && parent.location.href) {
		parent.mylightWindow.options.dimensions.external.width = width;
		parent.mylightWindow.options.dimensions.external.height = height;
		parent.mylightWindow.setupDimensions('reset');
	}
	document.location.href = r;
*/
}
// mark functions for bookmarks
function mark_session_bookmarks(id) {
	if (person_id == 0) {
		alert(s_login_alert);
		return false;
	}

	if (document.getElementById('session_' + id + '_bookmarks').className == 'session_marked') {
		if(!confirm(s_remove_bookmark)) return false;

		document.getElementById('session_' + id + '_bookmarks').className = 'session';
		x_unmark_session(person_id, id, erro_cb);
	} else {
		document.getElementById('session_' + id + '_bookmarks').className = 'session_marked';
		x_mark_session(person_id, id, erro_cb);
	}

	checkbox_check('mark_' + sid);
}
function mark_track_bookmarks(sid, tid) {
	if (person_id == 0) {
		alert(s_login_alert);
		return false;
	}

	if (document.getElementById('track_' + sid + '_' + tid + '_bookmarks').className == 'track_marked') {
		if(!confirm(s_remove_bookmark)) return false;

		document.getElementById('track_' + sid + '_' + tid + '_bookmarks').className = 'track';
		x_unmark_track(person_id, sid, tid, erro_cb);
	} else {
		document.getElementById('track_' + sid + '_' + tid + '_bookmarks').className = 'track_marked';
		x_mark_track(person_id, sid, tid, erro_cb);
	}

	checkbox_check('mark_' + sid + '_' + tid);
}
function mark_publication_bookmarks(id) {
	if (person_id == 0) {
		alert(s_login_alert);
		return false;
	}

	if (document.getElementById('publication_' + id + '_bookmarks').className == 'session_marked') {
		if(!confirm(s_remove_bookmark)) return false;

		document.getElementById('publication_' + id + '_bookmarks').className = 'session';
//		alert('x_unmark_publication(' + person_id + ', ' + id + ', ' + erro_cb + ')');
		x_unmark_publication(person_id, id, erro_cb);
	} else {
		document.getElementById('publication_' + id + '_bookmarks').className = 'session_marked';
//		alert('x_mark_publication(' + person_id + ', ' + id + ', ' + erro_cb + ')');
		x_mark_publication(person_id, id, erro_cb);
	}

//	checkbox_check('publication_' + id);
}
// change navigation
function navigateto(target) {
	var e = null;

	for(var i in a_navigation) {
		if(a_navigation[i] != target) {
			e = document.getElementById('navi_' + a_navigation[i]);
			if(!e)
				continue;
			e.className = (e.className == 'navi') ? 'navi navi_inactive' : e.className;
		}
	}

	e = document.getElementById('navi_' + target);
	if(!e)
		return false;
	e.className = 'navi';
}
