﻿function COccupation(Name, MonsterId)
{
    this.Name = Name;
    this.Selected = false;
    this.memory = new Array();
	this.MonsterId = MonsterId;
}

function CJobCat(Name, Id) {
		this.Name = Name;
		this.Id = Id;
		this.Occupations = new Array();
		this.hasSelected = 0;
		this.memory = new Array();
}

var Id; // Temp var to implement static var in recursive function
var mSelector = null; // global id of the component
var runedOnce = false; // for click away function
var selectionChanged = false; // for memory retain functionality

/////////////////////////
// class
//   CMultipleSelector
/////////////////////////

function CMultipleSelector(fileSource, instanceName, maxno)
{

	// Properties

	this.MaxSelection = maxno;
	this.Source = fileSource;
	this.InstanceName = instanceName;
	this.xmlRequest = false;
	this.xml = false;
	var jobCategories = new Array();
	this.jobCategories = jobCategories;
	this.currentUI = 0;

	mSelector = this;

	this.Initialize = LoadAndTraverseXML;


	this.fillCategories = FillCategories;
	this.fillOccupations = FillOccupations;
	this.switchUI = switchUI;
	this.ExpandCollapse = ExpandCollapse;
	this.Expand = Expand;
	this.Collapse = Collapse;
	this.CheckUncheckAll = CheckUncheckAll;
	this.closeSelector = closeSelector;
	this.reopenSelector = reopenSelector;
	this.ClickHandler = ClickHandler;
	this.OccupationClickHandler = OccupationClickHandler;
	this.ChangeSelection = ChangeSelection;
	this.PushSelection = PushSelection;
	this.OutputWidget = OutputWidget;
	this.UnselectAll = UnselectAll;

}

function traverse(tree, obj) {
    if(tree.hasChildNodes()) {
			if (tree.tagName == "Category")
			{
				// retain ID for next pass
				try
				{
					Id = tree.attributes.getNamedItem("id").value;
				}
				catch (e){}

			} else if (tree.tagName == "Name")
			{
			    //alert(tree.childNodes[0].nodeValue);
				// Add job category to the array
				var cat = new CJobCat(tree.childNodes[0].nodeValue, Id);
				obj.jobCategories.push(cat);
			} else if (tree.tagName == "Occupation")
			{
				// Add occupation to the occupations array in current category

				var occ = new COccupation(tree.childNodes[0].nodeValue, tree.attributes.getNamedItem("MonsterId").value);
				obj.jobCategories[obj.jobCategories.length-1].Occupations.push(occ);
			}

			// Next pass
			for(var i=0; i<tree.childNodes.length; i++) traverse(tree.childNodes[i], obj);

	}
}

function LoadAndTraverseXML()
{

	document.getElementById("category").childNodes[0].innerHTML = "Please wait ...";
	document.getElementById("occupation").childNodes[0].innerHTML = "Please wait ...";

    if(typeof ActiveXObject == "function")
    {

        this.xmlRequest = new ActiveXObject("Microsoft.XMLDOM");
        this.xmlRequest.async = false;

        this.xmlRequest.load(this.Source);

        //alert("Everything went ok. Loaded XML");

        for (var i=0;i<this.xmlRequest.documentElement.childNodes.length; i++)
        {

            if (this.xmlRequest.documentElement.childNodes[i].nodeType == 1)
                traverse(this.xmlRequest.documentElement.childNodes[i], this);
        }

		document.getElementById("category").childNodes[0].innerHTML = this.CatSelectMessage;
		document.getElementById("occupation").childNodes[0].innerHTML = this.OcSelectMessage;

        this.fillCategories();
    }
    else if( document.implementation && document.implementation.createDocument )
        {


            this.xmlRequest = document.implementation.createDocument("", "", null);
            this.xmlRequest.load(this.Source);
            this.xmlRequest.onload = function(CallerObject) {
		                                return function() {


			                                    //alert("Everything went ok. Loaded XML");

                                                for (var i=0;i<CallerObject.xmlRequest.documentElement.childNodes.length; i++)
                                                {
                                                    if (CallerObject.xmlRequest.documentElement.childNodes[i].nodeType == 1)
                                                        traverse(CallerObject.xmlRequest.documentElement.childNodes[i], CallerObject);
                                                }
												document.getElementById("category").childNodes[0].innerHTML = CallerObject.CatSelectMessage;
												document.getElementById("occupation").childNodes[0].innerHTML = CallerObject.OcSelectMessage;


                                                CallerObject.fillCategories();
                                                //CallerObject.FillOcupations();


		                                }

	                                } (this);


        }
        else
        {
            alert("no xml support");
            document.write("</body>");

        }

		if ((!window.addEventListener))
		{
			window.attachEvent("onload", BrowserBackWA);
		}
}

function BrowserBackWA()
{
	document.getElementById("category").onchange();
}



function getStyleValue(object, property)
{
	var css;
	if (window.getComputedStyle!=null)
		css=getComputedStyle(object,null);
	else if (object.currentStyle!=null)
		css=object.currentStyle;
	else return null;

	return css[property];
}

function setStyleValue(object, property, value)
{
	var css;
	if (window.getComputedStyle!=null)
		css=getComputedStyle(object,null);
	else if (thi.currentStyle!=null)
		css=object.currentStyle;
	else return null;
	css.setPropertyValue(property, value);
}

function OutputWidget(CSelectMessage, MultiSelectMessage, ShortMultiSelectMessage, OSelectMessage, MaxReachedMessage, CurrentSelMessage)
{
	this.CatSelectMessage = CSelectMessage;
    this.MultiSelectMessage = MultiSelectMessage;
	this.OcSelectMessage = OSelectMessage;
	this.ShortMultiSelectMessage = ShortMultiSelectMessage;
	this.MaxReachedMessage = MaxReachedMessage;
	this.CurrentSelMessage = CurrentSelMessage;

	document.write("<div id='MnsMultiSelectorHolder'>"
	+ "<div align='right'>"
	+ "<span id='MnsMSTabSimpleLink' class='MnsMSTabSelected'><a href='javascript:mSelector.switchUI(this, 0);'>Einfach</a></span>&nbsp;"
	+ "<span id='MnsMSTabMultipleLink' class='MnsMSTabUnselected'><a href='javascript:mSelector.switchUI(this, 1);'>Mehrfach</a></span>"
	+ "</div>"
	+ "<div id='MnsMSTabSimple'>"
	+ "<span><select class='MnsSelect' id='category' name='category' style='width: 280px'  onchange='" +  this.InstanceName + ".fillOccupations(this.selectedIndex-1);'><option>" + this.CatSelectMessage + "</option></select></span>"
	+ "<span><select class='MnsSelect' id='occupation' name='fn_values' disabled style='width: 280px; margin-left: 10px' onchange='mSelector.ChangeSelection(this)' onclick='mSelector.PushSelection(this);'><option>" + this.OcSelectMessage + "</option></select></span>"
	+ "</div>"

	+ "<div id='MnsMSMessages' style='width: 230px' style='width: 230px'>" + strReplace(this.ShortMultiSelectMessage, "__MAXNO__", this.MaxSelection) + "</div><div id=\"multipleSelector\" class=\"multipleSelector\"><div style='background: white; cursor: pointer; border-width: 0 0 1px 0; border-style: solid; border-color: #A1B6CB; height: 20px;' ><table cellpadding='0' cellspacing='0' border='0' width='100%' style='background-color: white'><tr><td class='wideCombo' id='catCount' >" + this.ShortMultiSelectMessage + "</td><td valign='middle' width='20' height='20' align='center'><img src='http://media.monster.com/id/www/ejc/dropdown.gif' style='z-index: 60000; cursor: pointer' width='17' height='16' onclick='javascript: if (" + this.InstanceName + ".selectorCollapsed == true) " + this.InstanceName + ".reopenSelector(); else " + this.InstanceName + ".closeSelector();'/></td></tr></table></div><div id=\"selectorBase\"><table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"100%\" id=\"posTable\" style='overflow: scroll'></table></div><div  id=\"closeButton\" style='height: 16px'><span style='float: left; background: inherit'><a id='unselectButton' href='javascript:" + this.InstanceName + ".UnselectAll();'>Auswahl l&#246;schen</a></span><span style='float: right'><a href=\"javascript:" + this.InstanceName + ".closeSelector();\" id='closeButtonLink'>Schlie&#223;en</a>&nbsp;</span></div></div>"
	+ "</div>"
	+ "<input type='hidden' name='searchtype' id='searchtype' value='1'/>");
}



function ChangeSelection(combobox)
{
 //alert(combobox.selectedIndex-1);
    selectionChanged = true;
    prev = this.jobCategories[document.getElementById("category").selectedIndex - 1].memory.pop();
    if (prev >= 0)
    {
        this.jobCategories[document.getElementById("category").selectedIndex - 1].Occupations[prev].Selected = false;
        this.jobCategories[document.getElementById("category").selectedIndex - 1].hasSelected --;
    }

    if (combobox.selectedIndex >= 1)
    {
        this.jobCategories[document.getElementById("category").selectedIndex - 1].Occupations[combobox.selectedIndex-1].Selected = true;
        this.jobCategories[document.getElementById("category").selectedIndex - 1].hasSelected ++;
    }

}

function PushSelection(combobox)
{
    //alert(combobox.selectedIndex-1);
    this.jobCategories[document.getElementById("category").selectedIndex - 1].memory.push(combobox.selectedIndex-1);
}


function FillCategories()
{
	for (var i=0; i<this.jobCategories.length; i++)
	{
		// Add Category
		//var oOption = document.createElement("OPTION");
		catCombo = document.getElementById("category");
		//alert(this.jobCategories[i].Name);
		catCombo.options[catCombo.options.length] = new Option(this.jobCategories[i].Name, this.jobCategories[i].Id);
		//oOption.innerText = this.jobCategories[i].Name;
		//oOption.value = this.jobCategories[i].Id;
	}
}

function FillOccupations(categoryId)
{
	selectionChanged = true;
	// Add Occupations
	occObj = document.getElementById("occupation");
	occObj.disabled = false;
	occObj.innerHTML = "";
	if (categoryId >= 0)
	{
	occObj.options[occObj.options.length] = new Option(this.OcSelectMessage, this.jobCategories[categoryId].Occupations[0].MonsterId.substring(0, this.jobCategories[categoryId].Occupations[0].MonsterId.indexOf(".")))


		for (var j=0; j<this.jobCategories[categoryId].Occupations.length; j++)
		{
			occObj.options[occObj.options.length] = new Option(this.jobCategories[categoryId].Occupations[j].Name, this.jobCategories[categoryId].Occupations[j].MonsterId)

			if (this.jobCategories[categoryId].Occupations[j].Selected) {
			    occObj.options[j+1].selected = true;
			}

		}
	} else {
		occObj.disabled = true;
		occObj.options[occObj.options.length] = new Option(this.OcSelectMessage, 0)
	}
}

//////////////
// Tabs
//////////////

function ReorderTabs()
{
	simpletab = document.getElementById("MnsMSTabSimple");
	simpletabheader = document.getElementById("MnsMSTabSimpleLink");
}

//////////////
// BIG UI
//////////////

function RepositionSelector()
{
    var posx = findPosX(document.getElementById("MnsMSTabSimple"));
    var posy = findPosY(document.getElementById("MnsMSTabSimple"));
	//alert(getStyleValue(document.getElementById("MnsMSTabSimple"), "left"));

    ms = document.getElementById("multipleSelector");
	ms.style.zIndex = "30000";
   // ms.style.left = posx + "px";
  //  ms.style.top = posy + "px";
}

function switchUI(ThisObj, UIStyle)
{
	this.currentUI = UIStyle;
	switch (this.currentUI)
	{
		case 1:
			var divs = document.getElementsByTagName("div");
			for(var i=0; i<divs.length; i++)
			{
				if (divs[i].className == "module")
				{
					divs[i].style.visibility = "hidden";
				}
			}
			// Change ST value
			document.getElementById("searchtype").value = "2";
			// Switch Tabs
			document.getElementById("MnsMSTabSimpleLink").className = "MnsMSTabUnselected";
			document.getElementById("MnsMSTabMultipleLink").className = "MnsMSTabSelected";
			// Hide Combos
			document.getElementById("occupation").style.visibility = "hidden";
			document.getElementById("category").style.visibility = "hidden";

			document.getElementById("MnsMSMessages").style.visibility = "visible";
			// Empty selector


			document.getElementById("posTable").parentNode.removeChild(document.getElementById("posTable"));
			var temp = document.createElement("TABLE");
			temp.id = "posTable";
			temp.cellSpacing = "0";
			temp.cellPadding = "0";
			temp.border = "0";

			document.getElementById("selectorBase").appendChild(temp);





			// Fill with categories
			for (var i=0; i<this.jobCategories.length; i++)
			{
			    if (selectionChanged == true)
				{

				    for (var j=0; j<this.jobCategories[i].Occupations.length; j++)
				    {
				        if (i == document.getElementById("category").selectedIndex - 1)
				        {
				            //alert("here");
				            if (j != document.getElementById("occupation").selectedIndex - 1 && this.jobCategories[i].Occupations[j].Selected)
				            {
				                this.jobCategories[i].Occupations[j].Selected = false;
				                this.jobCategories[i].hasSelected--;
				            }

				        } else {
				            if (this.jobCategories[i].Occupations[j].Selected)
				            {
				                this.jobCategories[i].Occupations[j].Selected = false;
				                this.jobCategories[i].hasSelected--;
				            }
				        }
				    }
				}

				row = document.getElementById("posTable").insertRow(-1);
				row.width = "100%";
				//row.style.overflow = "hidden";
				td1 = row.insertCell(-1);
				td1.innerHTML = "<img src='http://media.monster.com/id/www/ejc/expand.gif' id='exp" + i + "' width='9px' height='9px' onClick='" + this.InstanceName + ".ExpandCollapse(" + i + ", this);' style='cursor: pointer; padding-left: 3px'/>";
				td1.width = "14px";
				td1.height = "20px";
				td1.align = "center";
				td1.vAlign = "middle";

				td2 = row.insertCell(-1);
				strHTML = "<input type='checkbox'  value='" + this.jobCategories[i].Id + "' onClick='" + this.InstanceName + ".CheckUncheckAll(" + i + ", this);'";
	            if (this.jobCategories[i].hasSelected == this.jobCategories[i].Occupations.length) strHTML += " checked ";
	            strHTML += ">";
				strHTML = "&nbsp;";
	            td2.innerHTML = strHTML;
				td2.width = "1";
				td2.height = "20";
				td2.style.width = "10px";
				td2.align= "center";
				td2.vAlign = "middle";

				td3 = row.insertCell(-1);
				td3.innerHTML = "<label for='exp" + i + "'>" + this.jobCategories[i].Name + "</label>";
				td3.vAlign = "middle";
				td3.className = "regularText";
				td3.width = "";

				blankRow = document.getElementById("posTable").insertRow(-1);
				blankCell = blankRow.insertCell(-1);
				blankCell.colSpan = 3;
				blankCell.style.height = "1px";



				//alert(selectionChanged);


				//if (this.jobCategories[i].hasSelected == this.jobCategories[i].Occupations.length) this.ExpandCollapse(i, td1.children(0));
				if (this.jobCategories[i].hasSelected)
				{
				    this.ExpandCollapse(i, td1.childNodes[0]);
					td3.style.fontWeight = "bold";
				    if (selectionChanged)
				    {


				       // alert(blankCell.children(0).rows(document.getElementById("occupation").selectedIndex-1).tagName);
				        blankCell.childNodes[0].rows[document.getElementById("occupation").selectedIndex-1].scrollIntoView(false);
				    }
				} else  {

				    if (selectionChanged && i == document.getElementById("category").selectedIndex-1)
				    {
				        this.ExpandCollapse(i, td1.childNodes[0]);
				        document.getElementById("selectorBase").scrollTop = i*20;
				    }
				}




			}


			var noCat = 0;
			var noOcup = 0;

			for (var i = 0; i < this.jobCategories.length; i++)
			{
				if (this.jobCategories[i].hasSelected > 0)
				{
					noCat++;
					noOcup += this.jobCategories[i].hasSelected;
				}
			}



			if (noOcup > 0)
			{
				document.getElementById("MnsMSMessages").innerHTML = strReplace(this.CurrentSelMessage, "__CURRENTNO__", noOcup);
				document.getElementById("MnsMSMessages").color = "#333333";
			} else {
				document.getElementById("MnsMSMessages").innerHTML = strReplace(this.ShortMultiSelectMessage, "__MAXNO__", this.MaxSelection);
				document.getElementById("MnsMSMessages").color = "#333333";
			}

			// Display Big Thingy
			RepositionSelector();
			document.getElementById("multipleSelector").style.visibility = "visible";
			document.getElementById("multipleSelector").style.overflow = "visible";
			//alert(this.selectorCollapsed);

			this.reopenSelector();
			//document.body.onclick = this.ClickHandler;

			document.getElementById("js").onsubmit = function()
			{
				for (var i = 0; i < mSelector.jobCategories.length; i++)
				{
					if (mSelector.jobCategories[i].hasSelected > 0)
					{
						for (var j=0; j < mSelector.jobCategories[i].Occupations.length; j++)
						{
							if (mSelector.jobCategories[i].Occupations[j].Selected)
							{
								var obj = document.createElement("INPUT");
								obj.type="hidden";
								obj.name = "fn_values";
								obj.value = mSelector.jobCategories[i].Occupations[j].MonsterId;
								document.getElementById("selectorBase").appendChild(obj);
							}
						}
					}
				}

				return true;
			};
			break;
		case 0:
			// Change ST value
			document.getElementById("searchtype").value = "1";

			document.getElementById("MnsMSTabSimpleLink").className = "MnsMSTabSelected";
			document.getElementById("MnsMSTabMultipleLink").className = "MnsMSTabUnselected";

			document.getElementById("MnsMSMessages").style.visibility = "hidden";

			this.closeSelector();
			// Show Combos
			document.getElementById("occupation").style.visibility = "visible";
			document.getElementById("category").style.visibility = "visible";
			// Hide Big Thingy
			document.getElementById("multipleSelector").style.visibility = "hidden";
			document.getElementById("multipleSelector").style.overflow = "hidden";
			document.getElementById("catCount").style.visibility = "hidden";
			runedOnce = false;

			document.body.onclick = null;
			document.getElementById("js").onsubmit = null;
			selectionChanged = false;
                        // reshowing the ads
			var divs = document.getElementsByTagName("div");
			for(var i=0; i<divs.length; i++)
			{
				if (divs[i].className == "module")
				{

				divs[i].style.visibility = "visible";
				}
			}
			break;
	}

	this.currentUI = (this.currentUI > 0 ? 0 : 1);
}

function ExpandCollapse(index, thisObj)
{

	if (thisObj.src.indexOf("http://media.monster.com/id/www/ejc/expand.gif") != -1)
	{
		thisObj.src = "http://media.monster.com/id/www/ejc/collapse.gif";
		this.Expand(index, thisObj);
	} else {
		thisObj.src = "http://media.monster.com/id/www/ejc/expand.gif";
		this.Collapse(index, thisObj);
	}

}

function Expand(index, thisObj)
{
	blankRow = document.getElementById("posTable").rows[index*2+1];

	var nTable = document.createElement("TABLE");
	blankRow.cells[0].appendChild(nTable);

	nTable.style.marginLeft = "10px";

	for (var i=0; i<this.jobCategories[index].Occupations.length; i++)
	{
		row = nTable.insertRow(-1);

		td1 = row.insertCell(-1);
		strHTML = "<input type='checkbox' id='ck" + index + "_" + i + "' style='width: 15px' value='" + this.jobCategories[index].Occupations[i].MonsterId + "' onclick=\"" + this.InstanceName + ".OccupationClickHandler(this, " + index + ", " + i + ");\"";
	    //alert(this.jobCategories[index].Occupations[i].Selected);
	    if (this.jobCategories[index].Occupations[i].Selected) strHTML += " checked";
	    strHTML += ">";

	   //alert(strHTML);

	    td1.innerHTML = strHTML;

		td1.width = "20";
		td1.height = "20";
		td1.align= "center";
		td1.vAlign = "middle";

		td2 = row.insertCell(-1);
		td2.innerHTML = "<label for='ck" + index + "_" + i + "'>" + this.jobCategories[index].Occupations[i].Name + "</label>";
		td2.vAlign = "middle";
		td2.className = "regularText";
	}
}

function Collapse(index, thisObj)
{
	blankRow = document.getElementById("posTable").rows[index*2+1];
	dChild = blankRow.cells[0].childNodes[0];
	blankRow.cells[0].removeChild(dChild);
}

function CheckUncheckAll(index, thisObj)
{

	blankRow = document.getElementById("posTable").rows[index*2+1];
	var oTable = blankRow.cells[0].childNodes[0];
	//alert(table.tagName);
	if (oTable == undefined)
	{

	    //alert(posTable.rows(index*2).cells(0).children(0));
	    document.getElementById("posTable").rows[index*2].cells[0].firstChild.src = "http://media.monster.com/id/www/ejc/collapse.gif";
		this.Expand(index, thisObj);
		oTable = blankRow.cells[0].childNodes[0];
	}

	this.jobCategories[index].hasSelected = (thisObj.checked == true ? 0: this.jobCategories[index].Occupations.length);
	for (var i=0; i<oTable.rows.length; i++)
	{
		checkbox = oTable.rows[i].cells[0].childNodes[0];
		checkbox.checked = (thisObj.checked == true ? true : false);
		this.jobCategories[index].hasSelected += (thisObj.checked == true ? 1 : -1);
		this.jobCategories[index].Occupations[i].Selected = checkbox.checked;
	}
}

function UnselectAll()
{
	for (var i=0; i<this.jobCategories.length; i++)
	{
		this.jobCategories[i].hasSelected = 0;

		for (var j=0; j<this.jobCategories[i].Occupations.length; j++)
		{
			this.jobCategories[i].Occupations[j].Selected = false;
		}


		try
		{
			this.Collapse(i, null);

		}
		catch (err)
		{

		}

		document.getElementById("posTable").rows[i*2].cells[0].firstChild.src = "http://media.monster.com/id/www/ejc/expand.gif";
		document.getElementById("posTable").rows[i*2].cells[2].style.fontWeight = "normal";
	}

	document.getElementById("MnsMSMessages").innerHTML = strReplace(this.ShortMultiSelectMessage, "__MAXNO__", this.MaxSelection);
	document.getElementById("MnsMSMessages").color = "#333333";
}

function closeSelector()
{
var divs = document.getElementsByTagName("div");
			for(var i=0; i<divs.length; i++)
			{
				if (divs[i].className == "module")
				{

				divs[i].style.visibility = "visible";
				}
			}
//	var noCat = 0;
//	var noOcup = 0;
//
//	for (var i = 0; i < this.jobCategories.length; i++)
//	{
//		if (this.jobCategories[i].hasSelected > 0)
//		{
//			noCat++;
//			noOcup += this.jobCategories[i].hasSelected;
//		}
//	}
//
	document.getElementById("closeButton").style.visibility = "hidden";
	document.getElementById("selectorBase").style.visibility = "hidden";
//	document.getElementById("catCount").innerHTML = "(" + noOcup + " occupations in " + noCat + " categories selected)";
	document.getElementById("multipleSelector").style.height = "20px";
	document.getElementById("multipleSelector").style.overflow = "hidden";
	document.getElementById("catCount").style.visibility = "visible";
	//alert(document.getElementById("catCount").innerHTML);

	//document.getElementById("catCount").innerHTML = this.MultiSelectMessage;
	//document.getElementById("MnsMSMessages").color = "#333333";
	this.selectorCollapsed = true;
}

function reopenSelector()
{
var divs = document.getElementsByTagName("div");
			for(var i=0; i<divs.length; i++)
			{
				if (divs[i].className == "module")
				{

				divs[i].style.visibility = "hidden";
				}
			}
	document.getElementById("closeButton").style.visibility = "visible";
	document.getElementById("selectorBase").style.visibility = "visible";
	document.getElementById("multipleSelector").style.overflow = "visible";
	document.getElementById("multipleSelector").style.height = "";
	document.getElementById("catCount").style.visibility = "visible";
	document.getElementById("catCount").innerHTML = this.MultiSelectMessage;
	this.selectorCollapsed = false;
}

function ClickHandler(mevent)
{

    if (!runedOnce) { runedOnce = true; return; }

    if (!mevent) mevent = window.event;

    src = mevent.srcElement;
    if (!src) src = mevent.target;

    inside = false;
    while (src.nodeName != "BODY")
    {
        if (src.id == "multipleSelector")
        {
            inside = true;
            break;
        }
        src = src.parentNode;
    }

    if (!inside)
    {

        mSelector.closeSelector();
    }

}

function revertText(index, occindex)
{
	//alert(index + " " + occindex);
	//alert(document.getElementById("posTable").rows[index*2+1].cells[0].childNodes[0].rows[occindex].cells[1].innerHTML);// = text;
	document.getElementById("posTable").rows[index*2+1].cells[0].childNodes[0].rows[occindex].cells[1].innerHTML = "<label for='ck" + index + "_" + occindex + "'>" + mSelector.jobCategories[index].Occupations[occindex].Name + "</label>";
	document.getElementById("posTable").rows[index*2+1].cells[0].childNodes[0].rows[occindex].cells[1].style.fontWeight = "normal";
	document.getElementById("posTable").rows[index*2+1].cells[0].childNodes[0].rows[occindex].cells[1].style.color = "#333333";
}

function OccupationClickHandler(obj, index, occIndex)
{
    this.jobCategories[index].hasSelected += (obj.checked == true ? 1 : -1);
    //alert(obj.checked);
    this.jobCategories[index].Occupations[occIndex].Selected = obj.checked;
    //alert(this.jobCategories[index].Occupations[occIndex].Selected);

	var noCat = 0;
	var noOcup = 0;

	for (var i = 0; i < this.jobCategories.length; i++)
	{
		if (this.jobCategories[i].hasSelected > 0)
		{
			noCat++;
			noOcup += this.jobCategories[i].hasSelected;
		}
	}


    if (obj.checked == false)
	{
		if (this.jobCategories[index].hasSelected == 0) document.getElementById("posTable").rows[index*2].cells[2].style.fontWeight = "normal";
		if (noOcup == 0)
			{
				document.getElementById("MnsMSMessages").innerHTML = strReplace(this.ShortMultiSelectMessage, "__MAXNO__", this.MaxSelection);
				document.getElementById("MnsMSMessages").color = "#333333";
			} else {
				document.getElementById("MnsMSMessages").innerHTML = strReplace(this.CurrentSelMessage, "__CURRENTNO__", noOcup);
				document.getElementById("MnsMSMessages").color = "#333333";
			}


	}  else {

		if (noOcup >= this.MaxSelection)
		{


			if (noOcup == this.MaxSelection)
			{
				document.getElementById("MnsMSMessages").innerHTML = strReplace(this.MaxReachedMessage, "__MAXNO__", this.MaxSelection);
				//document.getElementById("MnsMSMessages").color = "#cc0000";
			} else {

				obj.parentNode.parentNode.childNodes[1].innerHTML = strReplace(this.MaxReachedMessage, "__MAXNO__", this.MaxSelection);
				obj.parentNode.parentNode.childNodes[1].style.fontWeight = "bold";
				obj.parentNode.parentNode.childNodes[1].style.color = "#cc0000";
				setTimeout("revertText(" + index + ", " + occIndex + ")", 1000);
				this.jobCategories[index].hasSelected -= 1;
				//alert(obj.checked);
				this.jobCategories[index].Occupations[occIndex].Selected = false;
				obj.checked = false;
			}
		} else {

			document.getElementById("MnsMSMessages").innerHTML = strReplace(this.CurrentSelMessage, "__CURRENTNO__", noOcup);
		document.getElementById("MnsMSMessages").color = "#333333";

			document.getElementById("posTable").rows[index*2].cells[2].style.fontWeight = "bold";
			if (this.jobCategories[index].hasSelected == this.jobCategories[index].Occupations.length)
			{
				///// BIG SELECT

				this.ExpandCollapse(index, document.getElementById("posTable").rows[index*2].cells[0].childNodes[0]);
			}
		}
    }
}

function findPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (1) {
            curleft+=obj.offsetLeft;
            if (!obj.offsetParent) {
                break;
            }
            obj=obj.offsetParent;
        }
    } else if (obj.x) {
        curleft+=obj.x;
    }
    return curleft;
}
function findPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (1) {
            curtop+=obj.offsetTop;
            if (!obj.offsetParent) {
                break;
            }
            obj=obj.offsetParent;
        }
    } else if (obj.y) {
        curtop+=obj.y;
    }
    return curtop;
}

function strReplace(s, r, w){
     return s.split(r).join(w);
}

