var img_Plus = new Image();
var img_Minus = new Image();
img_Plus.src = "./plus.gif";
img_Minus.src = "./minus.gif";
var doc="document.";
var st="";
var isIE=false;

if(navigator.appName == "Microsoft Internet Explorer"){
	doc += "all.";
	st = ".style";
	isIE = true;
}

function details(event){
var detailed=false;
var obj;
	if(isIE)
		obj=event.srcElement;
	else
		obj=event.target;

 // IE will send click event when you press <SPACE> so ignore the keypress.
	if(isIE && event.keyCode == 32) return;
	if(event.type != "click" && event.keyCode != 10 && event.keyCode != 13) return;
	detailed = document.getElementById(obj.id + "_details").style.display == 'block';
	if(detailed){
		obj.src = img_Plus.src;
		document.getElementById(obj.id + "_details").style.display = 'none';
	}else{
		obj.src = img_Minus.src;
		document.getElementById(obj.id + "_details").style.display = 'block';
	}
}

var Range = null;
var Bar = unescape("%u007C");  // %u2502 for vertical bar
var ReOrder = true;
var Compose = false;
var CurrentElementIndex = 0;

function SwapElements(Ele_1, Ele_2){
var tmp = "";
	if(Ele_1.title == Ele_2.title){
		tmp = Ele_2.innerHTML;
		Ele_2.innerHTML = Ele_1.innerHTML;
		Ele_1.innerHTML = tmp;
		return Ele_2.sourceIndex;
	}
return Ele_1.sourceIndex;
}

function SetSelPoi(event){
var tmpRange = null;
var i = 0;
	if(Compose){
		Range = document.selection.createRange();
		tmpRange = Range.duplicate();	// We are using duplicate range so that the selected text (if any)
		tmpRange.collapse(false);		// remain selected untill keypress event. Otherwise it would be
		tmpRange.text = Bar;			// overwritten by the Bar or would be collapsed.
		tmpRange.move("character", -1);
	} else if(ReOrder) {
		if(isIE) {
			eleSource = window.event.srcElement;
		} else {
			eleSource = event.target;
		}

		while(eleSource != null) {
			if(eleSource.id && eleSource.id.indexOf("Ele_") == 0) {
//				alert(eleSource.id);
				CurrentElement = eleSource;
				break;
			} else {
				eleSource = eleSource.parentNode;
			}
		}
// IE Specific block start //
		for(i=0; i < (document.all.length); i++)
			if(document.all[i].id.indexOf("Ele_") == 0 && document.all[i].contains(eleSource)){
				CurrentElementIndex = i;
				break;
			}
// IE Specific block end //
	}
}

function UnsetSelPoi(){
	if(Range == null) return;
	Range.collapse(false);
	Range.expand("character");
	if(Range.text == Bar) Range.text = "";
}

function typing(){
	if(ReOrder || Range == null) return;
	Range.text = String.fromCharCode(event.keyCode);
	event.keyCode=0;
}

function FindSibling(collection, index, direction){
var i;
	for(i=index+direction; i>0 && i<=collection.length; i+=direction)
		if(collection[i].id.indexOf("Ele_") == 0)
			return collection[i];
}

function SpetialKyes(event) {
var CurrentElement, OtherElement;

	if(isIE) {
		event = window.event;
	}

	if(Compose) {
		if(Range == null) return;
		switch(event.keyCode)
		{
			case 46:	Range.moveEnd("character", 2);
						Range.text = Bar;
						Range.move("character", -1);
						break;
			case  8:	if(Range.text.length == 0)	Range.moveStart("character", -1);
						Range.text = "";
						break;
			case  39:	UnsetSelPoi();
						Range.move("character", 1);
						Range.text = Bar;
						Range.move("character", -1);
						document.selection.empty();
						break;
			case  37:	UnsetSelPoi();
						Range.move("character", -1);
						Range.text = Bar;
						Range.move("character", -1);
						document.selection.empty();
						break;
		}
	} else if(ReOrder) {
		switch(event.keyCode)
		{
			case  39:	if(CurrentElementIndex < (document.all.length - 1))
							CurrentElementIndex = SwapElements(document.all[CurrentElementIndex], FindSibling(document.all, CurrentElementIndex, +1));
						break;
			case  37:	if(CurrentElementIndex > 0)
							CurrentElementIndex = SwapElements(document.all[CurrentElementIndex], FindSibling(document.all, CurrentElementIndex, -1));
						break;
		}
	}
}

function toggle() {
var edtFlag = false;
var rdoEditMode = document.getElementById("rdoEditMode");
var rdoViewMode = document.getElementById("rdoViewMode");

	edtFlag = document.getElementById("rdoEdit").checked;
	ReOrder = document.getElementById("rdoReorder").checked;
	Compose = document.getElementById("rdoCompose").checked;

	rdoEditMode.style.display = edtFlag ? "block" : "none";
	rdoViewMode.style.display = edtFlag ? "none" : "block";

	document.body.onkeypress = edtFlag ? typing : null;
	document.body.onkeydown = edtFlag ? SpetialKyes : toggle;
	document.body.onmousedown = edtFlag ? UnsetSelPoi : null;
	document.body.onmouseup = edtFlag ? SetSelPoi : null;

	if(!(edtFlag && Compose)){
		UnsetSelPoi();
		Range = null;
	}

	if(!(edtFlag && ReOrder)){
		CurrentElementIndex = 0;
	}
}

var SkilledIndex = new Array();
var SkilledElements = new Array();

function SkillTest(E1, E2) {
	return (E1[0] == E2[0]) ? 0 : ((E1[0] < E2[0]) ? -1 : 1);
}

function Arrange(SortType) {
	if(SortType == "Skill") {
		SkilledIndex.sort(SkillTest);
		for(i = 0; i < SkilledElements.length; i++)
			document.getElementById("Ele_" + SkilledElements[i][0]).innerHTML = SkilledElements[SkilledIndex[i][1]][1];
	} else if(SortType == "Normal") {
		for(i = 0; i < SkilledElements.length; i++) {
			document.getElementById("Ele_" + SkilledElements[i][0]).innerHTML = SkilledElements[i][1];
		}
	}
}

function init() {
var i = 0, j = 0, k = 0, CategoryNo = -1;
var Levels = new Array("[Excellent]", "[Good]", "[Enough]", "[Know]", "[Learning]");
var colAllSpan = document.getElementsByTagName("span");

	for(i = 0; i < colAllSpan.length; i++) {
		if(colAllSpan.item(i).id.indexOf("Ele_") == 0) {
			for(j = 0; j < Levels.length; j++) {
				if(isIE) {
					strTextContent = colAllSpan.item(i).innerText;
				} else {
					strTextContent = colAllSpan.item(i).textContent;
				}
				if(strTextContent.indexOf(Levels[j]) >= 0) {
					itmElement = colAllSpan.item(i);
					itmSiblingElement = FindSibling(colAllSpan, i, -1);
					if(itmSiblingElement != null && itmElement.title != itmSiblingElement.title) CategoryNo++;
					SkilledElements[k] = new Array(colAllSpan.item(i).id.substr(4), colAllSpan.item(i).innerHTML);
					SkilledIndex[k] = new Array((j + (CategoryNo * Levels.length)), k);
					k++;
					break;
				}
			}
		}
	}
}

function legends(event) {
var permission = false;
	if(event.type != "click" && event.keyCode != 32) return;
	permission = confirm("This will open a popup window. Continue?\n\nOk to continue\nCancel to open the document in current window");

	if(permission) {
		if(isIE) {
			window.showHelp("legends.html");
		} else {
			window.open("legends.html", "_blank", "height=500,width=750,status=yes,toolbar=no,menubar=no,location=no");
		}
	} else {
		location.href = "legends.html";
	}

	if(isIE) {
		event.returnValue = false;
	} else {
		event.preventDefault();
	}
}

function CreateControlPannel(){
	if(!isIE) return;
	document.write('<div style="width:100%;height:70px;overflow:auto;"><table border="0" style="background:ThreeDFace;border-width:2px;border-style:outset;font-size:10pt;width:100%;"><tr>');
	document.write('<td style="vertical-align:middle;text-align:left;">');
	document.write('	<b style="display:block;color:#990000;cursor:inherit;font-size:12pt;padding:4px;border-width:2px;border-style:groove;white-space:nowrap;">Dynamic Resume</b>');
	document.write('</td>');
	document.write('<td style="vertical-align:middle;text-align:left;">');
	document.write('	<fieldset id="rdoMode" style="display:block;padding:4px;border-width:2px;border-style:groove;cursor:inherit;width:13em;white-space:nowrap;">');
	document.write('	<label for="rdoView" style="white-space:nowrap;">');
	document.write('		<input type="radio" name="Mode" value="View" id="rdoView" accesskey="w" checked="checked" onclick="toggle();this.blur();" tabindex="10" />Vie<span style="text-decoration:underline">w</span> Mode');
	document.write('	</label>');
	document.write('	<label for="rdoEdit" style="white-space:nowrap;">');
	document.write('		<input type="radio" name="Mode" value="Edit" id="rdoEdit" accesskey="d" onclick="document.all.rdoReorder.checked=true;toggle();this.blur();" tabindex="11" />E<span style="text-decoration:underline">d</span>it Mode');
	document.write('	</label></fieldset>');
	document.write('</td>');
	document.write('<td style="vertical-align:middle;text-align:left;">');
	document.write('	<fieldset id="rdoViewMode" style="display:block;padding:4px;border-width:2px;border-style:groove;cursor:inherit;width:13em;white-space:nowrap;">');
	document.write('	<label for="rdoNormal">');
	document.write('		<input type="radio" name="ViewMode" value="Reorder" id="rdoNormal" accesskey="n" checked="checked" onclick="Arrange(\'Normal\');this.blur();" tabindex="12" /><span style="text-decoration:underline">N</span>ormal');
	document.write('	</label>');
	document.write('	<label for="rdoArranged">');
	document.write('		<input type="radio" name="ViewMode" value="Compose" id="rdoArranged" accesskey="a" onclick="Arrange(\'Skill\');this.blur();" tabindex="13" /><span style="text-decoration:underline">B</span>y skill level');
	document.write('	</label></fieldset>');
	document.write('');
	document.write('	<fieldset id="rdoEditMode" style="display:none;padding:4px;border-width:2px;border-style:groove;cursor:inherit;width:13em;white-space:nowrap;">');
	document.write('	<label for="rdoReorder" style="height:99%;">');
	document.write('		<input type="radio" name="EditMode" value="Reorder" id="rdoReorder" accesskey="r" checked="checked" onclick="toggle();this.blur();" tabindex="14" /><span style="text-decoration:underline">R</span>eorder');
	document.write('	</label>');
	document.write('	<label for="rdoCompose" style="height:99%;">');
	document.write('		<input type="radio" name="EditMode" value="Compose" id="rdoCompose" accesskey="c" onclick="toggle();this.blur();" tabindex="15" /><span style="text-decoration:underline">C</span>ompose');
	document.write('	</label></fieldset>');
	document.write('</td>');
	document.write('<td style="width:50%;vertical-align:middle;text-align:left;white-space:nowrap;"><label for="chkPersProf"><input type="checkbox" name="PersProf" id="chkPersProf" accesskey="n" checked="checked" onclick="document.all.Ele_9999.style.display=(this.checked)?\'block\':\'none\';this.blur();" tabindex="16" />Personal Profile</label></td>');
	document.write('</tr></table></div>');
}

