// JavaScript Document

function show_elm_by_id(id,show) {
	elm = $(id)
	if (!elm) return
	elm.style.display = (show) ? '' : 'none';
}

function go_to_rid(id) {
	form = document.tab_form
	form.rid.nav_path = ''
	form.rid.value = id
	form.submit()
}

function set_visibility_class_by_id(elmID,show) {
	elm = document.getElementById(elmID)
	if (elm == null) return
	if (show)
		elm.className = elm.className.replace("invisible","visible");
	else {
		elm.className = elm.className.replace("invisible","visible");
		elm.className = elm.className.replace("visible","invisible");
	}
}

function do_player_login(player_obj,password_obj) {
	clear_file_fields();
	player_id = player_obj.options[player_obj.selectedIndex].value;
	player_obj.selectedIndex = 0;
	password = password_obj.value;
	password_obj.value = "";
	//alert("Company " + company + " Password " + password)
	document.tab_form.player_id.value = player_id;
	document.tab_form.player_password.value = password;
	document.tab_form.page_cmd.value = "login";
	document.tab_form.submit();
}


function do_company_login(company_obj,password_obj) {
	clear_file_fields();
	company = company_obj.options[company_obj.selectedIndex].value;
	company_obj.selectedIndex = 0;
	password = password_obj.value;
	password_obj.value = "";
	//alert("Company " + company + " Password " + password)
	document.tab_form.company_number.value = company;
	document.tab_form.company_password.value = password;
	document.tab_form.submit();
}

function do_logout() {
	clear_file_fields();
	document.tab_form.page_cmd.value = "logout";
	document.tab_form.player_id.value = "";
	document.tab_form.player_password.value = "";
	document.tab_form.submit();
}

function faq_arae_cahanged(area) {
	clear_file_fields();
	document.tab_form.faq_area.value = area;
	document.tab_form.submit();
}

function do_upload() {
	document.tab_form.page_cmd.value = "upload";
	document.tab_form.submit();
}

function show_directory_company(number) {
	clear_file_fields();
	document.tab_form.subtab.value = "Yellow Pages";
	document.tab_form.directory_company.value = number;
	document.tab_form.submit();
}
function show_directory_player(number) {
	clear_file_fields();
	document.tab_form.subtab.value = "White Pages";
	document.tab_form.directory_player.value = number;
	document.tab_form.submit();
}
function show_member(member_num,nav_path) {
	clear_file_fields();
	document.tab_form.nav_path.value = nav_path;
	document.tab_form.directory_player.value = member_num;
	document.tab_form.submit();
}
function do_cmd(cmd) {
	clear_file_fields();
	document.tab_form.page_cmd.value = cmd;
	document.tab_form.submit();
}
function do_cmd_with_files(cmd) {
	document.tab_form.page_cmd.value = cmd;
	document.tab_form.submit();
}
function clear_file_fields() {
/*	
	len = document.tab_form.elements.length
	has_files = false;
	values = new Array(len)
	for (i=0;i<len;i++) {
		values[i] = document.tab_form.elements[i].value
		if (document.tab_form.elements[i].type == "file") {
			values[i] = ""
			has_files = true;
		}
	}
	
	if (has_files) {
		document.tab_form.reset()
		for (i=0;i<len;i++)
			document.tab_form.elements[i].value = values[i]
	}
*/
}

function download_file(id) {
	document.file_download_form.file_id.value =id;
	document.file_download_form.submit();
}

function DoNothing() {
}

function selectAll(formObj, check) {
	for (var i=0;i < formObj.length;i++) {
		fldObj = formObj.elements[i];
		if (fldObj.type == 'checkbox') { 
			fldObj.checked = check; 
		}
	}
}

function numsSelected(formObj) {
	num = 0
	for (var i=0;i < formObj.length;i++) {
		fldObj = formObj.elements[i];
		if (fldObj.type == 'checkbox') { 
			if (fldObj.checked)
				num++;
		}
	}
	return num;
}

function form_is_modified(oForm) {
	var el, opt, hasDefault, i = 0, j;
	while (el = oForm.elements[i++]) {
		switch (el.type) {
			case 'text' :
			case 'textarea' :
			case 'hidden' :
				if (el.value != el.defaultValue) return true;
				break;
			case 'checkbox' :
			case 'radio' :
				if (el.checked != el.defaultChecked) return true;
				break;
			case 'select-one' :
			case 'select-multiple' :
				j = 0, hasDefault = false;
				while (opt = el.options[j++])
					if (opt.defaultSelected) hasDefault = true;
				j = hasDefault ? 0 : 1;
				while (opt = el.options[j++]) 
					if (opt.selected != opt.defaultSelected) return true;
				break;
		}
	}
	return false;
}

function number_key_filter(input_element, e, num_int, num_decimals)
{
	var key;
	var keychar;
	var current_value;
	var decimal_index;
	var len;
	current_value = input_element.value;
	len=current_value.length;
	
	if (window.event)
		key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;

	keychar = String.fromCharCode(key);

	// Single decimal point
	decimal_index = current_value.indexOf(".");
	is_integer = (decimal_index == -1);

	// If last char is a decimal point, adjust integer value
	if ((!is_integer) && decimal_index == len-1) {
		var i;
		for(i=0; i<num_int-len+1;i++) {
			current_value=" "+ current_value;
		}
		input_element.value = current_value;
		len=current_value.length;
	}

	if ( keychar == "." ) {
		//alert(current_value + " Index: " + current_value.indexOf("."));
		if (is_integer && num_decimals>0) {
			return true;
		}
		else {
			return false;
		}
	}
	
	// control keys
	if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27)  )
	   return true;

	// numbers
	else if ((("0123456789").indexOf(keychar) > -1)) {
		if ((!is_integer) && (len >= num_decimals + num_int + 1))
			return false;
		else
			if(is_integer && (len >= num_int))
				return false;
				
		return true;
	}

	return false;
}

function validate_range(element,value,min,max) {
	if (value == "")
		return true;

	// Get number and fraction
	point_index = value.indexOf(".");
	if (point_index == -1) {
		number   = value
		fraction = ""
	}
	else {
		number   = value.substr(0,point_index)
		fraction = value.substr(point_index + 1,2)
	}
	
	while (number.substr(0,1) == "0")
		number = number.substr(1,200)
	
	if (number.length > 5) {
		alert('Value must have no more than 5 digits before the decimal point and 2 digits after it (00000.00)');
		element.focus();
		return false;
	}
	
	if (fraction == "")
		element.value = number
	else {
		if (number == "") number = "0";
		element.value = number + "." + fraction
	}
	if (min != "") {
		if (element.value < parseInt(min)) {
			alert('Value: ' + element.value + ' is smaller than the minimum value: ' + min );
			element.focus();
			return false;
		}
	}
	if (max != "") {
		if (element.value > parseInt(max)) {
			alert('Value: ' + element.value + ' is greater than the maximum value: ' + max );
			element.focus();
			return false;
		}
	}
	
	return true;
}

function check_warning_threshold(input,warning_threshold, value)
{
	if (value*1 >= warning_threshold*1) {
		alert ('Please make sure you really wanted to set this field to ' + value);
		//input.focus();
	}
}

function do_df_field_action(action,value) {
	//alert(action + "(" + value + ")")

	if (action == "show") {
		elem = document.getElementById("tr_field_" + value);
		elem.style.display = "inline";
	}
	if (action == "hide") {
		elem = document.getElementById("tr_field_" + value);
		elem.style.display = "none";
	}
	if (action == "show_section") {
		elem = document.getElementById("section_div_" + value);
		elem.style.display = "block";
	}
	if (action == "hide_section") {
		elem = document.getElementById("section_div_" + value);
		elem.style.display = "none";
	}
}

function getDescendantById(elm,id) {
	var elm, result
	
	for (i=0;i<elm.childNodes.length;i++) {
		if (elm.childNodes[i].getAttribute('id') == id) return elm.childNodes[i]
	}

	for (i=0;i<elm.childNodes.length;i++) {
		result = getDescendantById(elm.childNodes[i],id)
		if (result) return result
	}
	
	return null
}