/* XML request */
var catIds = new Array();
var repIds = new Array();
var topCategories = new Array(9, 13, 20, 21, 22, 25, 32, 53, 146, 147);

function createXMLHTTPRequest() {
    var request = false;
    try {
        request = new XMLHttpRequest();
    }
    catch (e) {
        try {
            request = new ActiveXObject('Msxml2.XMLHTTP');
        }
        catch (e) {
            try {
                request = new ActiveXObject('Microsoft.XMLHTTP');
            }
            catch (e) {
                request = false;
            }
        }
    }
    return request;
}

/* Page Loader */

var bustcachevar = 1;
var loadedobjects = "";
var bustcacheparameter = "";

function loadPage(url, containerid) {
    var page_request = createXMLHTTPRequest();
    page_request.onreadystatechange = function() {
        handlepage(page_request, containerid);
    }
    if (bustcachevar)
        bustcacheparameter = (url.indexOf("?") != -1)? "&" + new Date().getTime() : "?" + new Date().getTime();
    page_request.open('GET', url + bustcacheparameter, true);
    page_request.send(null);
}

function handlepage(page_request, containerid) {
    if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1)) {
        document.getElementById(containerid).innerHTML = page_request.responseText;
	}
}

/* Stuff */

var desc = new Object();
desc[9] = '<div id="title_red"><h3>Financial Tests</h3>How much does your candidate know<br/>about Market? Find out here with bespoke<br/>tests for a number of industries.</div>';
desc[13] = '<div id="title_red"><h3>Health Care Tests</h3>Designed to assess professionals<br/>operating in Clinical services,<br/> nursing and medical administration<br/>and supporting services';
desc[20] = '<div id="title_red"><h3>Industry Knowledge Tests</h3>A range of tests based on<br />based on getting the basics right <br />	Includes: English, Maths<br /> listening and problem solving';
desc[21] = '<div id="title_red"><h3>Language and Communication Tests</h3>Sales, Marketing, Human Resources and<br/>a selection of management tests.<br/>A must before employing!';
desc[22] = '<div id="title_green"><h3>Essential Skills</h3>Do they have the right personality to succeed<br/>within the role? Assess their interpersonal skills<br/> here. Especially relevant for: Sales, Marketing<br/>and Call centre type roles';
desc[25] = '<div id="title_green"><h3>Office Skills Tests</h3>Assessments to evaluate skills in a range of office<br/>based tasks e.g. Administration, Customer Service,<br/> Office Software, Business tools, Operating Systems<br/>and Graphics packages';
desc[32] = '<div id="title_red"><h3>IT & Computer Software Tests</h3>Accounting Tests, Financial software tests<br/>and various Investment tests. Make sure<br/>everything adds up with your candidates';
desc[53] = '<div id="title_red"><h3>Commercial Tests</h3>Reading, Writing and comprehension<br/>assessments in a selection of modern<br/>languages';
desc[146] = '<div id="title_green"><h3>Psychometric Tests</h3>Programming, Database, Network, Web design,<br/>software and security assessments to name<br/>just a few of the sections available in this<br/>comprehensive suite';
desc[147] = '<div id="title_blue2"><h3>50 Most Popular Tests</h3>Browse our 50 most popular tests rated by Client demand';

var num_50 = 49;
var pages = new Array(146,22,25,0,147,32,9,53,21,20,13);

function handleLinkClick(id) {
	ajax_hideTooltip();
	for(var i=0; i<pages.length; i++) {
		if(id != pages[i])
			document.getElementById('r_'+pages[i]).className = "menu_item";
	}
    document.getElementById('r_'+id).className = "selected";

    loadPage('/ajax/get_page/' + id, 'right');
    return false;
}


function deselectAllMenuItems() {
	for(var i=0; i<pages.length; i++) {
		$('r_'+pages[i]).className = "menu_item";
	}
	if ($('r_recent')) {
		$('r_recent').className = "menu_item";
	}
}


function selectMenuItem(id) {
	document.getElementById('r_'+id).className = "selected";
}

function handleTestClick(id) {
	deselectAllMenuItems();
  selectMenuItem(id);


	document.getElementById("reports_pane").style.display = "block";
	$("search_pane").hide();
	$("quicklinks_pane").hide();
	$("recent_tests_pane").hide();

	var ar = document.getElementById("teststable").getElementsByTagName("div");
	for(var j=0; j<ar.length; j++) {
		//alert("csb" + pages[j]);
		csb = "csb" + id;
		if(ar[j].id != csb) {
			ar[j].style.display="none";
		} else {
			ar[j].style.display="block";
		}
	}

	if(id == 147) {
		if(folders) {
			document.getElementById("reports_pane").style.display = "block";
			document.getElementById("search_pane").style.display = "none";
			document.getElementById("quicklinks_pane").style.display = "none";
			folders.unfold_category(id);
			folders.set_loading(false);
		} else {
			alert("nie ma foldersa");
		}
	}
	else if(id == 20) {
		if(folders) {
			folders.unfold_category(id);
			folders.set_loading(false);
		} else {
			alert("nie ma foldersa");
		}
	}
	else if(id == 0) {
		document.getElementById("reports_pane").style.display = "none";
		document.getElementById("search_pane").style.display = "none";
		document.getElementById("quicklinks_pane").style.display = "block";
	} else {
		folders.unfold_category(folders.Tree[id][0]);
		folders.set_loading(false);
	}


	var startingHTML = "";

	document.getElementById("test_logo").innerHTML = '<img src="/images/assess_list/test_img_' + id +'.jpg">';

	if(id == 146 || id == 22 || id == 25) {
		startingHTML = '<div id="title_green">';
	}
	else if(id == 32 || id == 9 || id == 53 || id == 21 || id == 20 || id ==13) {
		startingHTML = '<div id="title_red">';
	}
	else {
		document.getElementById("test_info").innerHTML = desc[id];
		return false;
	}

	args= new Array(id,
	'test_info',
	startingHTML,
	'</div>');
	xajax.call("categorydescription", args, 1);
	//if(folders)
		//folders.Loaded = new Array();

    //loadPage('/member/gettest/' + id, 'right');
    return false;
}

function lightEntry(id, b) {
    if(document.getElementById('r_'+id).className != "selected") {
        if(b)
            document.getElementById('r_'+id).className = "menu_item2";
        else
            document.getElementById('r_'+id).className = "menu_item";
    }
}

function lightEntry2(id, b) {
    if(document.getElementById(id).className != "selected") {
        if(b)
            document.getElementById(id).className = "cl_nav_item2";
        else
            document.getElementById(id).className = "cl_nav_item";
    }
}


function handleLinkClick_50(cnt, id, rid) {
    for (var i = 0; i < num_50; i++) {
        var nid = "i_" + i;
        if(id != nid)
            document.getElementById(nid).className = "item_50";
    }
    document.getElementById(id).className = "item_50_sel";
    ajax_showTooltip('/ajax/get_tooltip_content/' + rid + '/0/0/0/0', document.getElementById(cnt));
    return false;
}

function lightEntry_50(id, b) {
    if(document.getElementById(id).className != "item_50_sel") {
        if(b)
            document.getElementById(id).className = "item_50_hov";
        else
            document.getElementById(id).className = "item_50";
    }
}

function tooltip_close(qt, is_se) {
    ajax_hideTooltip();

	if(qt == 0) {
    	for (var i = 0; i < num_50; i++) {
        	var nid = "i_" + i;
	        document.getElementById(nid).className = "item_50";
    	}
	} else {
//	offTree(qt, md, rid, scope);
//	clearAll(gid, qt, 0);
	//var check = document.getElementById(
										if(is_se)
										s_clear(qt);
										else
clear(qt);
/*		for(var i = 0; i < qt; i++) {
			var nid = "x_t_" + md + i;
			document.getElementById(nid).className = "tree_item";
	    }*/
	}
}

function light_tree(id, b) {
    if(document.getElementById(id).className != "tree_item_sel") {
        if(b)
            document.getElementById(id).className = "tree_item_hov";
        else
            document.getElementById(id).className = "tree_item";
    }
}

function searchBoxKeyCapture(e)
{
	e= e || window.event;
	//document.getElementById('leftbottombutton').disabled = true;
	var keynum;
	var keychar;
	var numcheck;
	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}
	if(keynum == 13) {
		var text = document.getElementById('searchInput').value;
		if(text.length != 0) {
			processSearch('searchInput');
			e.returnValue = false;
			return false;
		}
	}
	return true;
}

function processSearch(id)
{
	var cat_id = -1;
	var query = document.getElementById(id).value;
	$("reports_pane").hide();
	$("search_pane").show();
	$("quicklinks_pane").hide();
	$("recent_tests_pane").hide();


	xajax_preloadSearchResultsJSON(query);
	/*var categoriesTables = document.getElementById("s_teststable").getElementsByTagName("table");
	for(var i=0; i<categoriesTables.length; i++) {
		var rows = categoriesTables[i].getElementsByTagName("td");
		for(var j=0; j<rows.length; j++) {
			if(rows[j].id.match(/s_t[0-9]+/)) {
				cat_id = rows[j].id.substring(3, rows[j].id.length);
				searchfolders.unfold_category(cat_id);
				//searchfolders.loading = false;
				//searchfolders.set_loaded(cat_id);
			}
		}
	}*/
}

function removeElement(id)
{
   var Node = document.getElementById(id);
   if(Node != null) {
	   Node.style.display = "none";
	   Node.parentNode.removeChild(Node);
   }
}

function getUpperCategory(id)
{
	var isTop = 0;

	for(var i=0; i<searchfolders.Tree.length; i++) {
		if(searchfolders.Tree[i] != undefined) {
			for(var j=0; j<searchfolders.Tree[i].length; j++) {
				for(var k=0; k<topCategories.length; k++) {
					if(topCategories[k] == i) {
						isTop = 1;
					}
				}
				if(searchfolders.Tree[i][j] == id && isTop == 0) {
					return i;
				}
				isTop = 0;
			}
		}
	}

	return -1;
}

function insertReportsJSON(responce) {
	eval("var Resp = "+responce);

	var reportCount1 = 0;
	var reportCount2 = 0;
	var reportCount3 = 0;
	var reportCount4 = 0;
	var parentpadleft = 0;
	var upperCat = 0;
	var temp = null;

	//remove previous search results
	if(repIds.length > 0) {
		for(var j=0; j<repIds.length; j++) {
			removeElement("s_"+repIds[j]);
			searchfolders.LoadedRep[repIds[j]] = false;
		}
	}

	catIds.clear();

	//we have to remember loaded search reports
	for(var i=0; i<Resp.reports.length; i++) {
		searchfolders.LoadedRep[Resp.reports[i].id] = true;
	}

	for(var i=0; i<searchfolders.Tree.length; i++)
	{
		for(var r=0; r<Resp.reports.length; r++)
		{
			if(Resp.reports[r].parent == i && Resp.reports[r].found == 0)
			{
				Resp.reports[r].found = 1;
				temp = document.getElementById("s_t"+i);
				if(temp != null) {
					parentpadleft = temp.style.paddingLeft;
				} else {
					continue;
				}
				catIds.append("s_c"+i);
				sdwig = 28;
				parentpadleft = parseInt(parentpadleft.substr(0, parentpadleft.length - 2)) - sdwig;
				parentpadleft = parentpadleft.toString()+"px";
				var fragment = document.createDocumentFragment();
				var tmpRow = document.createElement("TR");
				tmpRow.setAttribute("id", "s_"+Resp.reports[r].id);
				tmpRow.setAttribute("style", Resp.reports[r].style);
				fragment.appendChild(tmpRow);

				var tmpTd = document.createElement("TD");
				// it has to be blank to be compatible with 50 most popular tests
				tmpTd.innerHTML = "";
				tmpRow.appendChild(tmpTd);
				var tmpTd = document.createElement("TD");
				tmpTd.className = "cellItem";
				tmpTd.style.paddingTop = "5px";
				tmpTd.style.textAlign = "left";
				if(folders.Selected[Resp.reports[r].id]) {
					tmpTd.innerHTML = "<input id=\"s_cb"+Resp.reports[r].id+"\" name=\""+Resp.reports[r].checkbox_name+"\" value=\"checkbox\" onclick=\"checkbox_checker(this);\" type=\"checkbox\" checked style=\"margin-left: "+parentpadleft+"; float: left; margin-right: 10px;\" /><input name=\""+Resp.reports[r].hidden_input_name+"\" value=\"checkbox\" type=\"hidden\" /><span><label id=\"s_i"+Resp.reports[r].id+"\" for=\"s_cb"+Resp.reports[r].id+"\">"+Resp.reports[r].text+"</label></span>";
				} else {
					tmpTd.innerHTML = "<input id=\"s_cb"+Resp.reports[r].id+"\" name=\""+Resp.reports[r].checkbox_name+"\" value=\"checkbox\" onclick=\"checkbox_checker(this);\" type=\"checkbox\" style=\"margin-left: "+parentpadleft+"; float: left; margin-right: 10px;\" /><input name=\""+Resp.reports[r].hidden_input_name+"\" value=\"checkbox\" type=\"hidden\" /><span style='display: inline;'><label id=\"s_i"+Resp.reports[r].id+"\" for=\"s_cb"+Resp.reports[r].id+"\">"+Resp.reports[r].text+"</label></span>";
				}
				tmpRow.appendChild(tmpTd);

				tmpTd = document.createElement("TD");
				tmpTd.className = "cellPrice";
				tmpTd.innerHTML = "&pound;"+Resp.reports[r].price.toFixed(2);
				tmpRow.appendChild(tmpTd);

				tmpTd = document.createElement("TD");
				tmpTd.className = "cellActions";
				tmpTd.innerHTML = '<a href="#" onclick="return xajax_testinfo('+Resp.reports[r].id+', this)"><img src="/images/order_reports/actions_info.gif" alt="" title="tooltip: Click to view report description" /></a>';

				tmpRow.appendChild(tmpTd);
				if(folders.Selected[Resp.reports[r].id]) {
					tmpRow.className = new classNames(tmpRow.className).add("row_selected");
				}
				temp = document.getElementById("s_e"+i);
				if(temp != null) {
					temp.parentNode.insertBefore(fragment, document.getElementById("s_e"+i));
				} else {
					continue;
				}
				reportCount1++;
			}
		}
		if(searchfolders.Tree[i] != undefined)
		{
			for(var j=0; j<searchfolders.Tree[i].length; j++)
			{
				for(var r=0; r<Resp.reports.length; r++)
				{
					if(Resp.reports[r].parent == searchfolders.Tree[i][j] && Resp.reports[r].found == 0)
					{
						Resp.reports[r].found = 1;
						temp = document.getElementById("s_t"+searchfolders.Tree[i][j]);
						if(temp != null) {
							parentpadleft = temp.style.paddingLeft;
						} else {
							continue;
						}
						catIds.append("s_c"+searchfolders.Tree[i][j]);
						catIds.append("s_c"+i);
						upperCat = getUpperCategory(i);
						if(upperCat != -1) {
							catIds.append("s_c"+upperCat);
						}
						sdwig = 28;
						parentpadleft = parseInt(parentpadleft.substr(0, parentpadleft.length - 2)) - sdwig;
						parentpadleft = parentpadleft.toString()+"px";
						var fragment = document.createDocumentFragment();
						var tmpRow = document.createElement("TR");
						tmpRow.setAttribute("id", "s_"+Resp.reports[r].id);
						tmpRow.setAttribute("style", Resp.reports[r].style);
						fragment.appendChild(tmpRow);

						var tmpTd = document.createElement("TD");
						// it has to be blank to be compatible with 50 most popular tests
						tmpTd.innerHTML = "";
						tmpRow.appendChild(tmpTd);
						var tmpTd = document.createElement("TD");
						tmpTd.className = "cellItem";
						tmpTd.style.paddingTop = "5px";
						tmpTd.style.textAlign = "left";
						if(folders.Selected[Resp.reports[r].id]) {
							tmpTd.innerHTML = "<input id=\"s_cb"+Resp.reports[r].id+"\" name=\""+Resp.reports[r].checkbox_name+"\" value=\"checkbox\" onclick=\"checkbox_checker(this);\" type=\"checkbox\" checked style=\"margin-left: "+parentpadleft+"; float: left; margin-right: 10px;\" /><input name=\""+Resp.reports[r].hidden_input_name+"\" value=\"checkbox\" type=\"hidden\" /><span style='display: inline;'><label id=\"s_i"+Resp.reports[r].id+"\" for=\"s_cb"+Resp.reports[r].id+"\">"+Resp.reports[r].text+"</label></span>";
						} else {
							tmpTd.innerHTML = "<input id=\"s_cb"+Resp.reports[r].id+"\" name=\""+Resp.reports[r].checkbox_name+"\" value=\"checkbox\" onclick=\"checkbox_checker(this);\" type=\"checkbox\" style=\"margin-left: "+parentpadleft+"; float: left; margin-right: 10px;\" /><input name=\""+Resp.reports[r].hidden_input_name+"\" value=\"checkbox\" type=\"hidden\" /><span style='display: inline;'><label id=\"s_i"+Resp.reports[r].id+"\" for=\"s_cb"+Resp.reports[r].id+"\">"+Resp.reports[r].text+"</label></span>";
						}
						tmpRow.appendChild(tmpTd);

						tmpTd = document.createElement("TD");
						tmpTd.className = "cellPrice";
						tmpTd.innerHTML = "&pound;"+Resp.reports[r].price.toFixed(2);
						tmpRow.appendChild(tmpTd);

						tmpTd = document.createElement("TD");
						tmpTd.className = "cellActions";
						tmpTd.innerHTML = '<a href="#" onclick="return xajax_testinfo('+Resp.reports[r].id+', this)"><img src="/images/order_reports/actions_info.gif" alt="" title="tooltip: Click to view report description" /></a>';

						tmpRow.appendChild(tmpTd);
						if(folders.Selected[Resp.reports[r].id]) {
							tmpRow.className = new classNames(tmpRow.className).add("row_selected");
						}
						temp = document.getElementById("s_e"+searchfolders.Tree[i][j]);
						if(temp != null) {
							temp.parentNode.insertBefore(fragment, document.getElementById("s_e"+searchfolders.Tree[i][j]));
						} else {
							continue;
						}

						reportCount2++;
					}
				}
			}
		}
	}

	var foundCat = 0;
	repIds.clear();
	for(var r=0; r<Resp.reports.length; r++)
	{
		repIds.append(Resp.reports[r].id);
	}

	var categoriesTables = document.getElementById("s_teststable").getElementsByTagName("table");
	for(var i=0; i<categoriesTables.length; i++) {
		var rows = categoriesTables[i].getElementsByTagName("tr");
		for(var j=0; j<rows.length; j++) {
			if(rows[j].id.match(/s_c[0-9]+/)) {
				rows[j].style.display = "";
				for(var k=0; k<catIds.length; k++) {
					if(rows[j].id == catIds[k]) {
						foundCat = 1;
						searchfolders.set_loaded(catIds[k].substring(3, catIds[k].length));
						searchfolders.set_unfolded(catIds[k].substring(3, catIds[k].length));
					}
				}
				if(foundCat == 0) {
					rows[j].style.display = "none";
				}
				else {
					foundCat = 0;
				}
			}
		}
	}
}

function loadPage2(url, containerid) {
    var page_request = createXMLHTTPRequest();
    page_request.onreadystatechange = function() {
        handlepage2(page_request, containerid);
    }
    if (bustcachevar)
        bustcacheparameter = (url.indexOf("?") != -1)? "&" + new Date().getTime() : "?" + new Date().getTime();
    page_request.open('GET', url + bustcacheparameter, true);
    page_request.send(null);
}

function handlepage2(page_request, containerid) {
    if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1)) {
        document.getElementById(containerid).innerHTML = page_request.responseText;
	}
}



/** Candidates Section */
function makeSelected(el) {
	el.className = "cl_nav_item2 cl_selected";
	el.onmouseover = "";
	el.onmouseout = "";
}


function makeNotSelected(el) {
	el.className = "cl_nav_item";
	el.onmouseover = "lightEntry2(this.id, true);";
	el.onmouseout = "lightEntry2(this.id, false);";
}


function _make_selectet_candidates_string() {
	selected_str = "";
	for (key in Order.candidates) {
		selected_str += key+";";
	}
	return selected_str.substr(0, selected_str.length-1); //removes last ';'
}

function _get_selected_candidates_number() {
	var num = 0;
	for (key in Order.candidates) {
		num++;
	}
	return num;
}


function handleTagClick(id, page) {
	current_tag_selected = id;
	ShowLoadingSplashBig("content_container", " please wait ...", "padding:10px;");
	//this test for new tag, that may not be in list 
  for (var i=0, l=current_employer_tags_list.length;i<l;i++) 
    if (current_employer_tags_list[i]==id) {
      var t_exist=true;
      break
      }
  if (!t_exist) current_employer_tags_list[current_employer_tags_list.length]=id;
  uncheckAllCandidateGroups();

	//select pressed
	left_menu_tag = document.getElementById("left_menu_tag_"+id);
	if (left_menu_tag) {
		makeSelected(left_menu_tag);
	}

	if (page=='undefined') page=0;
	
	xajax_getCandidatesByTag(id, _make_selectet_candidates_string(), current_tag_candidates.join(";"), page);
	return;
}

function uncheckAllCandidateGroups() {
	//unselect all
	for (c=0; c<current_employer_tags_list.length;c++) {
		el = document.getElementById("left_menu_tag_"+current_employer_tags_list[c]);
		if (el) {
			makeNotSelected(el);
		}
	}
}



function candidatesSearchBoxKeyCapture(e)
{
	var key=e.keyCode || e.which;
	if (key==13){
		searchCandidates();
		return false;
	}
}

function searchCandidates() {
	search_fld = document.getElementById("searchInput");
	if (search_fld && search_fld.value!='') {
		ShowLoadingSplashBig("content_container", " Searching ...", "padding:10px;");
		xajax_searchCandidates(search_fld.value, _make_selectet_candidates_string());
	}

	uncheckAllCandidateGroups();

	return false;

}

