var oldValue = false, reloadreq = false, findresults = false,showedBlockId = "init";
function getSelText()
{
    var txt = false;
    if (window.getSelection)
    {
        txt = window.getSelection();
    }
    else if (document.getSelection)
    {
        txt = document.getSelection();
    }
    else if (document.selection)
    {
        txt = document.selection.createRange().text;
    }
    return txt;
}

function validate(form) {
    var trimmed = trim(form.r.value);
    if( trimmed.length == 0 ) {
        return false;

    }
    form.r.value = trimmed;
}

function trim(string) {
	return string.replace(/^\s+/,'').replace(/\s+$/,'').replace(/\s{2,}/,' ');
}

if(document.addEventListener){ //code for Moz
	document.addEventListener("keydown",handler,false);
}else{
	document.attachEvent("onkeydown",handler); // code for IE
}

function handler(e) {
	if(typeof window.event!="undefined"){
		e=window.event;// code for IE
	}
	if(e.type=="keydown" && e.shiftKey && e.keyCode == 13){
		submitComment();
	} 
}


function makeRequest(url, parameters, callback) {
	reloadreq = false;
	if (window.XMLHttpRequest) {
		reloadreq = new XMLHttpRequest();
		if (reloadreq.overrideMimeType) {
			reloadreq.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) {
		try {
			reloadreq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				reloadreq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
			}
		}
	}
	if (!reloadreq) {
		return false;
	}
	try {
		if (callback) {
			reloadreq.onreadystatechange = callback;
		}
		reloadreq.open('GET', url + parameters, true);
		reloadreq.send(null);
	} catch (e) {
	}
}

function submitComment() {
	var selectedText = getSelText();
	var newValue = prompt('OLD: '+selectedText + '  NEW:', '');
	if (newValue) {
		makeRequest("change", "?newvalue=" + newValue.replace(/&/g,"%26") + "&oldValue=" + selectedText.toString().replace(/&/g,"%26"));
	}
}

function realodkey() {
	if (reloadreq.readyState == 4) {
		if (reloadreq.status == 200) {
			var center = document.getElementById("keyreq"), parent = center.parentNode;
			text = document.createElement("div");
			text.innerHTML = reloadreq.responseText;
			parent.replaceChild(text,center);
		}
	}
}

function requestkey() {
	var partnerForm = document.getElementById("keyreq");
	if( !partnerForm ) {
		return;
	}
	makeRequest("gp", "?agree=" + partnerForm.agree.value + "&domain=" + partnerForm.domain.value, realodkey);
}

function loadLink(link) {
	makeRequest(link, '', reloadCenter);
}
function loadMain() {
	if (findresults) {
		var center = document.getElementById("center");
		center.innerHTML = findresults;
	}
}

function sendFeedback() {
	var feedBackForm = document.getElementById("feedback");
	if( !feedBackForm ) {
		return;
	}
	makeRequest("feedback","?feedback="+feedBackForm.feedback.value.replace(/&/g,"%26"));
	var parent = feedBackForm.parentNode, text = document.createElement("h2");
	text.innerHTML = "Thank you!";
	
	parent.replaceChild(text,feedBackForm);
}

function submitData() {
	var submitDataForm = document.getElementById("f");
	if( !feedBackForm ) {
		return;
	}
	makeRequest("s", "?t="+submitDataForm.title.value.replace(/&/g,"%26")+"&c=" + submitDataForm.comments.value.replace(/&/g,"%26"), reloadCenter);
}

function hide(id) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'none';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'none';
		}
		else { // IE 4
			document.all.id.style.display = 'none';
		}
	}
}

function show(id) {
	//safe function to show an element with a specified id
	hide(showedBlockId);

	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'block';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'block';
		}
		else { // IE 4
			document.all.id.style.display = 'block';
		}
	}
	showedBlockId = id;
}

