/**@author   tmat
 * -------------------- 
 * @by       tmat
 * @at       2009.02.05
 * @what     initial
 * -------------------- 
 */
 
function addComment() {
	var refs = getRefs('refs');
	
	var params = 'action=add';
	if (refs.length == 0)	{
		return;
	}else {
		params += '&refs[]='+refs.join("&refs[]=");
	}
	params += '&titel=' + encodeURIComponent(document.getElementById("comment_titel").value);
	params += '&body=' + encodeURIComponent(document.getElementById("comment_edit").value);

	
	var contact = document.getElementById("comment_contacts").value;
	if (contact < 0)	{
		if (contact == -2) {
			params += '&contactFirst=' + encodeURIComponent(document.getElementById("contactFirstName").value);
			params += '&contactLast=' + encodeURIComponent(document.getElementById("contactLastName").value);
		} else{
			contact = null;
		}
	}
	params += '&contact=' + contact; 
	 
	loadFile("GET", "/includes/comments.js.php", params, "text", "comment_header");
}

function getRefs(name) {
	var refs = [];
	var inputs = document.getElementsByTagName("input");
	for (i=0; i < inputs.length; i++){
		if (inputs[i].name == name && inputs[i].checked == true){
			refs.push(inputs[i].value)
		}
	}
	
	//$("input[name='"+name+"']").filter(":checked").each(function() { refs.push($(this).val()); });
			
	return refs;
}

function toggleRefs(el, name) {
	var checked = el.checked;
	var inputs = document.getElementsByTagName("input");
	for (i=0; i < inputs.length; i++){
		if (inputs[i].name == name)	{
			if (checked){
				inputs[i].checked = true;
			}else{
				inputs[i].checked = false;
			}
		}
	}
	//$("input[name='"+name+"']").attr("checked", $(el).is(":checked"));
}

function commentPreview() {
	var params = 'action=preview' + "&text=" + encodeURIComponent(document.getElementById("comment_edit").value);
	loadFile("GET", "/includes/comments.js.php", params, "text", "comment_preview");
}

function toggleBody(id, el) {
	var element = document.getElementById(id);
	if (element.style.display == "none") {
		el.src = "/images/general/buttons/comment_arrow_open.png";
		element.style.display = "table-row";
	} else{
		el.src = "/images/general/buttons/comment_arrow_closed.png";
		element.style.display = "none";
	}
}

function imagehover(el) {
	if (/MSIE (5\.5|6\.)/.test(navigator.userAgent) && /blank\.gif/.test(el.src))
		el = el.filters.item("DXImageTransform.Microsoft.AlphaImageLoader");
	  
	if (/_hover/.test(el.src)){
		el.src = el.src.replace(/(.*)_hover(\..{3,4}$)/,"$1$2");
	}else{
		el.src = el.src.replace(/(.*)(\..{3,4}$)/,"$1_hover$2")
	}
}

function bgimagehover(el) {
	if (!el.style.backgroundImage){
		el.style.backgroundImage = "url(/images/general/buttons/send_button.png)";
	}
	if (/_hover/.test(el.style.backgroundImage)){
		el.style.backgroundImage = el.style.backgroundImage.replace(/(.*)_hover(\..{3,4}$)/,"$1$2");
	}else{
		el.style.backgroundImage = el.style.backgroundImage.replace(/(.*)(\..{3,4}$)/,"$1_hover$2")
	}
}

function checkSpelling() {
	//+document.getElementById("spellLang").value +
	var params = "action=spell&lang=nl&text=" + encodeURIComponent(document.getElementById("comment_edit").value);
	if (window.$){
		$.get("/includes/comments.js.php?" + params,
		function(data){
			$("#comment_spelling").html(data);
		});
	}else{
		loadFile("GET", "/includes/comments.js.php", params, "text", "comment_spelling");
	}
}

function closeSpelling() {
	document.getElementById("comment_spelling").innerHTML = "";
}

function spellReplace(el, old, correct) {
	var edit = document.getElementById("comment_edit");
	edit.value = edit.value.replace(old, correct);
	el.parentNode.parentNode.removeChild(el.parentNode); // ?
	
	if (document.getElementById("comment_spelling_results").getElementsByTagName("dl").length == 0)	{
		closeSpelling();
	}
}

function showCommentLang(lang) {
	var els = document.getElementById("comment_flags").getElementsByTagName("img")
	for (i=0; i < els.length; i++) {
		if (els[i].className == "flagMark")	{
			els[i].style.display = "none";
			
		}
	}

	document.getElementById("flagMark" + lang).style.display = "block";
	updateComments(lang);
	return false;
	
}

function showCommentsFor(el) {
	var inputs = el.parentNode.parentNode.parentNode.parentNode.getElementsByTagName("input");
	for (i=0; i < inputs.length; i++)  {
		inputs[i].removeAttribute("checked");
	}
	el.parentNode.getElementsByTagName("input")[0].setAttribute("checked", "checked");
	updateComments();
	return false;
}

function updateComments(lang) {
	var refs = getRefs('viewRefs');
	var params = 'action=comments';
	if (refs.length > 0){
		params += '&refs[]='+refs.join("&refs[]=");
		
	}
	if (lang){
		params += '&lang=' + lang;
		
	}
	loadFile("GET", "/includes/comments.js.php", params, "text", "comment_block");
	return false;
	
}
	
function clearInput() {
	el = document.getElementById("comment_header");
	el.parentNode.removeChild(el);
}   

function showNewContact() {
	document.getElementById("newContact").style.display = "inline";
}

function hideNewContact() {
	document.getElementById("newContact").style.display = "none";
}

function getSelection(el){
	if (document.selection)	{
		return document.selection.createRange().text;
	}
	if (el.setSelectionRange){
		return el.value.substring(el.selectionStart,el.selectionEnd);
	}
	return false;
}

function replaceSelection(el, text){
	if (document.selection){
		el.focus();
		var range = (this.range) ? this.range : document.selection.createRange();
		range.text = text;
		range.select();
	} else if (el.setSelectionRange){
		var selectionStart = el.selectionStart;
		el.value = el.value.substring(0,selectionStart) + text + el.value.substring(el.selectionEnd);
		el.setSelectionRange(selectionStart + text.length, selectionStart + text.length);
	}
}

function commentBold() {
	var el = document.getElementById("comment_edit");
	replaceSelection(el, "[b]" + getSelection(el) + "[/b]");
	return false;
}

function commentUnderline() {
	var el = document.getElementById("comment_edit");
	replaceSelection(el, "[u]" + getSelection(el) + "[/u]");
	return false;
}function commentTitle() {
	var el = document.getElementById("comment_edit");
	replaceSelection(el, "[title]" + getSelection(el) + "[/title]");
	return false;
}

function commentList() {
	var el = document.getElementById("comment_edit");
	replaceSelection(el, "[list]" + getSelection(el) + "[/list]");
	return false;
}

function commentListItem() {
	var el = document.getElementById("comment_edit");
	replaceSelection(el, "[*]" + getSelection(el));
	return false;
}

function commentClean() {
	var el = document.getElementById("comment_edit");
	replaceSelection(el, getSelection(el).replace(/\[(.*?)\]/g, ""));
	return false;
}

function hasClass(el, className) {
	return el.className.match(new RegExp('(\\s|^)'+className+'(\\s|$)'));
}

function addClass(el, className) {
	if (!hasClass(el, className)){
		el.className += " " + className;
	}
}

function removeClass(el, className){
	if (hasClass(el, className)){
		el.className = el.className.replace(new RegExp('(\\s|^)'+className+'(\\s|$)'),' ');
	}
}

function starRemoveHover(el) {
	var stars = getStars(el);
	for (i=0; i < stars.length; i++){
		removeClass(stars[i], "hover");
	}
}

function starHover(el, index){
	var stars = getStars(el.parentNode);
	for (i=0; i < stars.length && i < index; i++){
		addClass(stars[i], "hover");
	}
}

function getStars(el) {
	var stars = [];
	var els = el.childNodes;
	for (i=0; i < els.length; i++){
		if (els[i].nodeType == 1){
			stars.push(els[i]);
		}
	}
	return stars;
}

function starVote(el, rating, refs) {
	var params = 'rating='+rating+ '&refs[]='+refs.join("&refs[]=");
	loadFile("GET", "/includes/rating.js.php", params, "text", el.parentNode.id);
	
}

function Numbers(e){
	var keynum;
	var keychar;
	var numcheck;
	var commacheck;

	if(window.event) { // IE
		keynum = e.keyCode;
	}else if(e.which) {// Netscape/Firefox/Opera
		keynum = e.which;
	}
	if(keynum==8){
		return true;
	}
	keychar = String.fromCharCode(keynum);
	numcheck = /\d/;
	commacheck = /[,]|\r/;
	return (numcheck.test(keychar)||commacheck.test(keychar));
}
