/*
form fields validation for update_preferences page
*/
function update_prefs_form_validation() {
	var form = document.update_prefs_form;
	var translate = form.translate;
	var input,i;
	
	input = document.getElementsByTagName('input');
	
	// check to see if at least one product is selected
	var product_selected = 0;
	var language_selected = 0;
	
	if (!update_prefs_form_js_validate()) {
		return false;
	}
	
	for (i = 0; i < input.length; i++) {
		filter_product = /products/;
		if (filter_product.test(input[i].name) && input[i].checked) {
			product_selected++;
		}
	}
	for ( i = 0; i < form.right.options.length - 1; i++) {
		form.right.options[i].selected = 'selected';
		language_selected++;
	}
	
	if (product_selected == 0) {
		alert('Please select at least one product.');
		return false;
	}
	
	if (language_selected == 0) {
		alert('Please select at least one language.');
		return false;	
	}
	
	return true;
}


/*
used in translation_language_pack page to select/unselect all checkboxes in a group
*/
function change_stat(is_check) {
	if (is_check) {
		 check_all();
	} else {
		uncheck_all();
	}
}

/*
used in translation_language_pack page to select
all the displayed translations in order to change their valid status
*/
function check_all() {
	var input,i;
	input = document.getElementsByTagName('input');
	
	filter_validate = /valid_status/;
	for (i = 0; i < input.length; i++) {
		if (filter_validate.test(input[i].name) && !input[i].checked) {
			input[i].checked = true;
		}
	}
}


/*
used in translation_language_pack page to unselect
all the displayed translations in order to change their valid status
*/
function uncheck_all() {
	var input,i;
	input = document.getElementsByTagName('input');
	
	filter_validate = /valid_status/;
	for (i = 0; i < input.length; i++) {
		if (filter_validate.test(input[i].name) && input[i].checked) {
			input[i].checked = false;
		}
	}
}

/*
used in translation_language_pack page to check if at least one checkbox is checked
*/
function verify_checkboxes() {
	var input,i, nr;
	input = document.getElementsByTagName('input');
	
	nr = 0;
	filter_validate = /valid_status/;
	for (i = 0; i < input.length; i++) {
		if (filter_validate.test(input[i].name) && input[i].checked) {
			nr++;
		}
	}
	
	if (nr > 0) {
		return true;
	} else {
		alert('Please select at least one translation.');
		return false;
	}
}

function delete_translation() {
	if (verify_checkboxes()) {
		var answer = confirm('Selected translations will be deleted. Are you sure?');
			if (!answer) {				
				return false;
			} else {
				document.getElementById('translations_validate').value=1;
				document.getElementById('new_status').value='remove'; document.getElementById('translations_form').submit();
			}
	} else {
		return false;
	}
}

function upload_en_form_validate() {
	var form = document.upload_en_form;
	var version = document.getElementById('version');
	var product = document.getElementById('product');	
	var type = document.getElementById('type');
	var tag = document.getElementById('tag');
	var english_pack_exists = document.getElementById('english_pack_exists');
	var filepath = document.getElementById('enfile');
	
	document.getElementById('ajax_alert').innerHTML = '';
	document.getElementById('html_alert').innerHTML = '';
	
	if (!upload_en_form_js_validate()) {
		return false;
	}
	
	xajax_en_pack_exists(product.value, version.value, type.value, tag.value, filepath.value);
	
	return false;
}


/*
form fields validation for upload_translation_pack page
*/
function upload_translation_form_validate() {
	var form = document.upload_translation_form;
	var version = document.getElementById('version');
	var language = document.getElementById('language');
	var product = document.getElementById('product');
	var file = document.getElementById('translationfile');
	
	
	if (!upload_translation_form_js_validate()) {
		return false;
	}
	
	file_extension_validate = /(.*)((\.php)|(\.tar.gz)|(\.sh))$/;
	if (!file_extension_validate.test(file.value)) {
		alert('You can upload only .php, .tar.gz or .sh files!');
		return false;
	}
	
	form.submit();
}

/*
in english_language_packs, when product filter is changed, we will reset type and version
*/
function reset_version_tag_type() {
	document.getElementById('select_version').value = 0;
	document.getElementById('select_type').value = 0;
	//document.getElementById('select_tag').value = 0;
}

/*
in translation_language_packs, when product filter is changed, we will reset type, language and version
*/
function reset_version_language_type() {
	document.getElementById('select_version').value = 0;
	document.getElementById('select_language').value = 0;
	document.getElementById('select_type').value = 0;
}

/*
in translation_language_packs, when product filter is changed, we will reset language and version
*/
function reset_version_language() {
	document.getElementById('select_version').value = 0;
	document.getElementById('select_language').value = 0;
}

/*
in translation_language_packs, filter is changed, we will reset translations pagination and comments pagination
*/
function reset_pagination() {
	document.getElementById('comments_page').value = 1;
	document.getElementById('translations_page').value = 1;
}


/*
used to navigate between comments pages
*/
function paginate_comments(translations_page) {
	var form = document.getElementById['translations_form'];
	document.getElementById('translations_page').value = translations_page;
}


/*
used to navigate between translations pages
*/
function paginate_translations(page) {
	var form = document.getElementById['translations_form'];
	document.getElementById('translations_page').value = page;
	form.submit();
}


/*
shows the comment form assigned to a translation
*/
function post_comment(translation_id, comment_box_header) {
	if (document.getElementById('comment_box').style.display == "none") {
		document.getElementById('comment_box').style.display = "block";
	}
	document.getElementById('translation_id').value = translation_id;
	document.getElementById('comment_box_header').innerHTML = comment_box_header;
	
	document.getElementById('comment').focus();
}


/*
shows the comment form assigned to a translation
*/
function post_reply(comment_id, comment_box_header) {
	var reply_box = 'reply_form_' + comment_id;
	if (document.getElementById(reply_box).style.display == "none") {
		document.getElementById(reply_box).style.display = "block";
	}
	document.getElementById('parent_comment_id').value = comment_id;
	document.getElementById(reply_box+ '_header').innerHTML = comment_box_header;
	
	document.getElementById(reply_box + 'content').focus();
}

/*
hide the reply comment form
*/
function hide_reply_box(comment_id) {
	document.getElementById('reply_form_' + comment_id).innerHTML = '';
}



/*
validate the comment field
*/
function validate_comment_box() {
	var form = document.getElementById('translations_form');
	var comment = document.getElementById('comment');
	
	if (is_comment_valid(comment)) {
		document.getElementById('add_comment').value = 1;
		form.submit();
	} else {
		return false;
	}
}

/*
validate the reply comment content
*/
function validate_reply_box(parent_comment_id, box_id) {
	var content = document.getElementById(box_id);
	
	if (is_comment_valid(content)) {
		xajax_register_reply_comment(parent_comment_id, content.value);
		return true;
	} else {
		return false;
	}
}


/*
validate the reply comment content
*/
function show_hide_reply_content(comment_id) {
	var content = document.getElementById('reply_content_' + comment_id).innerHTML;
	
	if (content.length == 0) {
		xajax_get_reply_details(comment_id); return false;
	} else {
		document.getElementById('reply_content_' + comment_id).innerHTML = '';
	}
	return false;
}

/*
show/hide reply comment form
*/
function show_hide_reply_form(comment_id, comment_header) {
	var content = document.getElementById('reply_form_' + comment_id).innerHTML;
	
	if (content.length == 0) {
		xajax_post_reply_comment(comment_id, comment_header);
	} else {
		document.getElementById('reply_form_' + comment_id).innerHTML = '';
	}
	return false;
}

/*
hide the comment form
*/
function hide_comment_box() {
	if (document.getElementById('comment_box').style.display == "block") {
		document.getElementById('comment_box').style.display = "none";
	}
	document.getElementById('translation_id').value = '';	
}

/*
different kinds of field validations
*/
function is_comment_valid(obj) {
	if (empty_obj(obj)) {
		html_alert('Write some words in your comment.');
		document.getElementById('comment').focus();
		return false;
	}
	
	return true;
}

/*
checks if a object is empty
*/
function empty_obj(obj) {
	var val = obj.value;
	var re = RegExp('^[ ]*$');
	if (re.test(val)) {
		return true;
	}
	return false;
}
