// JavaScript Document

function myclear(field_name, form_name, value_to_clear, value_in_field){
	//alert(value_to_clear+"    "+value_in_field);
	if(value_to_clear == value_in_field){
		eval("document."+form_name+"."+field_name+".value=\"\"");
	}
}

	
function roundIt(){
	//just a dummy function now... should be removed from html source...
}

//validate email form
function validate_email(){
	alert("Klicka ok om du vill skicka meddelandet.");
	var str="Du har inte angett följande:\n";
	var error = 0;
	if(document.epost.EmailFrom.value != "" &&
	   document.epost.EmailFrom.value != "Ange din e-post här"){
			//email is ok (or atleast someting is in the field... check more closly later)
		}
	else{
			//email isn't ok
			str += "e-post\n";
			error = 1;
		}
	if(document.epost.Subject.value != "" &&
		   document.epost.Subject.value != "Skriv vad ärendet gäller här"){
			//subject is ok
		}
	else{
			//subject isn't ok
			str += "ämne\n";
			error = 1;
		}
		if(document.epost.Namn.value != "" &&
		   document.epost.Namn.value != "Skriv ditt namn här"){
			//name is ok
		}
	else{
			//name isn't ok
			str += "namn\n";
			error = 1;
		}
		if(document.epost.message.value != ""){
			//message is ok
		}
	else{
			//message isn't ok
			str += "meddelande\n\n";
			error = 1;
		}
		if(document.epost.Namn.value != "" &&
		   document.epost.Namn.value != "VIKTIGT: Skriv människa i detta fält." && (document.epost.kontroll.value == "människa" || document.epost.kontroll.value == "Människa" )){
			//message is ok
		}
	else{
			//message isn't ok
			str += "Skriv människa i kontroll fältet.";
			error = 1;
		}
		//if we have error alert or else submit the mail.
	if(error == 1){
		alert(str);
	}
	else{
		//alert("submitted");
		document.epost.submit();
	}
}	
//end validate email form

//mathsymbolizer

	var _newlines = 1; //global, ugly... I know

	function add_code(code){
		if(code=='{new_line}'){
			_newlines = _newlines+1;
		}
		var id = "math_code";
		var tArea;
		if (document.getElementById)
			tArea = document.getElementById(id);
		else if (document.all)
			tArea = document.all[id];
		else if (document.layers)
			tArea = document.layers[id];

		//insert at cursor
		//IE support
		if (document.selection) {
			tArea.focus();
			sel = document.selection.createRange();
			sel.text = code;
		}
		//MOZILLA/NETSCAPE support
		else if (tArea.selectionStart || tArea.selectionStart == 0) {
			var startPos = tArea.selectionStart;
			var endPos = tArea.selectionEnd;
			tArea.value = tArea.value.substring(0, startPos)+code+tArea.value.substring(endPos, tArea.value.length);
			tArea.setSelectionRange(startPos+code.length, startPos+code.length);
		}
		else {
			//just append :(
			tArea.value+=code;
		}
		load_image();
		tArea.focus();
	}
	
	function find_arg(){
		var id = "math_code";
		var tArea;
		if (document.getElementById)
			tArea = document.getElementById(id);
		else if (document.all)
			tArea = document.all[id];
		else if (document.layers)
			tArea = document.layers[id];
			
		//IE support
		//hate microsoft stupid way of getting a simple thing as caret position...
		if (document.selection) {
			var range = tArea.createTextRange();
			range.moveToPoint(window.event.x,window.event.y); 
			range.moveStart('textedit',-1); 
			//alert("There are " + range.text.length + " characters proceeding the carat."); 
			caret_pos = range.text.length;
			//alert(caret_pos);
			var left_arg = tArea.value.lastIndexOf("<", caret_pos);
			var right_arg = tArea.value.indexOf(">", caret_pos);
			//alert(left_arg);
			//alert(right_arg);
			if(left_arg > 0 && right_arg > 0 && right_arg > left_arg && tArea.value.substr(left_arg+1, right_arg-left_arg-1).search("<") == -1){
				//alert(left_arg+"sfs"+right_arg);
				range.collapse("true");
				range.moveStart("character", left_arg);
				range.moveEnd("character", right_arg-left_arg+1);
				range.select();
			}
			
		}
		//MOZILLA/NETSCAPE support
		else if (tArea.selectionStart || tArea.selectionStart == 0) {
			var startPos = tArea.selectionStart;
			var endPos = tArea.selectionEnd;
			var left_arg = tArea.value.lastIndexOf("<", endPos);
			var right_arg = tArea.value.indexOf(">", startPos);
			if(left_arg > 0 && right_arg > 0 && right_arg > left_arg && tArea.value.substr(left_arg+1, right_arg-left_arg-1).search("<") == -1){
				tArea.setSelectionRange(left_arg, right_arg+1);
			}
		}
	}
	
	function init(){
		if(document.getElementById("math_code").value == ""){
			document.getElementById("math_image").src="http://www.pluggakuten.se/cgi-bin/mimetex.cgi?Formel\\ area";
		}
		else{
			document.getElementById("math_image").src="http://www.pluggakuten.se/cgi-bin/mimetex.cgi?"+document.getElementById("math_code").value;
		}
		document.getElementById("math_code").focus();
	}
	
	function load_image(){
		//tinyMCE.getContent();
		//var inst = tinyMCE.instances[0];
		document.getElementById("math_image").src="http://www.pluggakuten.se/cgi-bin/mimetex.cgi?"+document.getElementById("math_code").value;
		document.getElementById("bbcode").value ="";
		document.getElementById("math_code").focus();
	}

	function generate_bb(){
		document.getElementById("bbcode").value = "[tex]"+document.getElementById("math_code").value+"[/tex]";
		document.getElementById("math_code").focus();
	}
	
	function select_BB(){
		//document.getElementById("bbcode").focus();
		document.getElementById("bbcode").select();
	}
	
	function toggle_visible(id){
		var el = document.getElementById(id);
		if(el.style.display=="block"){
			el.style.display="none";
		}
		else{
		el.style.display="block";
		}
		document.getElementById("math_code").focus();
	}
	
	//end mathsymbolizer
	
	
/***********************************************
* Cool DHTML tooltip script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var offsetxpoint=-60 //Customize x offset of tooltip
var offsetypoint=20 //Customize y offset of tooltip
var ie=document.all
var ns6=document.getElementById && !document.all
var enabletip=false
if (ie||ns6)
var tipobj;

function ietruebody(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function ddrivetip(thetext, thecolor, thewidth){
	tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""
if (ns6||ie){
if (typeof thewidth!="undefined") tipobj.style.width=thewidth+"px"
if (typeof thecolor!="undefined" && thecolor!="") tipobj.style.backgroundColor=thecolor
tipobj.innerHTML=thetext
enabletip=true
//positiontip(document);
return false
}
}

function positiontip(e){
	tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""
if (enabletip){
var curX=(ns6)?e.pageX : event.clientX+ietruebody().scrollLeft;
var curY=(ns6)?e.pageY : event.clientY+ietruebody().scrollTop;
//Find out how close the mouse is to the corner of the window
var rightedge=ie&&!window.opera? ietruebody().clientWidth-event.clientX-offsetxpoint : window.innerWidth-e.clientX-offsetxpoint-20
var bottomedge=ie&&!window.opera? ietruebody().clientHeight-event.clientY-offsetypoint : window.innerHeight-e.clientY-offsetypoint-20

var leftedge=(offsetxpoint<0)? offsetxpoint*(-1) : -1000

//if the horizontal distance isn't enough to accomodate the width of the context menu
if (rightedge<tipobj.offsetWidth)
//move the horizontal position of the menu to the left by it's width
tipobj.style.left=ie? ietruebody().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
else if (curX<leftedge)
tipobj.style.left="5px"
else
//position the horizontal position of the menu where the mouse is positioned
tipobj.style.left=curX+offsetxpoint+"px"

//same concept with the vertical position
if (bottomedge<tipobj.offsetHeight)
tipobj.style.top=ie? ietruebody().scrollTop+event.clientY-tipobj.offsetHeight-offsetypoint+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsetypoint+"px"
else
tipobj.style.top=curY+offsetypoint+"px"
tipobj.style.visibility="visible"
}
}

function hideddrivetip(){
	tipobj=document.all? document.all["dhtmltooltip"] : document.getElementById? document.getElementById("dhtmltooltip") : ""
if (ns6||ie){
enabletip=false
tipobj.style.visibility="hidden"
tipobj.style.left="-1000px"
tipobj.style.backgroundColor=''
tipobj.style.width=''
//positiontip(document);
}
}


function changeLevel(theSelect, theSubject)
{
	var reg = /^\[.+\]/;
	if(theSelect.value == "pl_hs7"){
		if(theSubject.value.match(reg)){
			theSubject.value = theSubject.value.replace(reg, "[ÅK 7]");}
		else{
			theSubject.value = "[ÅK 7]" + theSubject.value;}
	}
	else if(theSelect.value == "pl_hs8"){
		if(theSubject.value.match(reg)){
			theSubject.value = theSubject.value.replace(reg, "[ÅK 8]");}
		else{
			theSubject.value = "[ÅK 8]" + theSubject.value;}
	}
	else if(theSelect.value == "pl_hs9"){
		if(theSubject.value.match(reg)){
			theSubject.value = theSubject.value.replace(reg, "[ÅK 9]");}
		else{
			theSubject.value = "[ÅK 9]" + theSubject.value;}
	}
	else if(theSelect.value == "pl_maa"){
		if(theSubject.value.match(reg)){
			theSubject.value = theSubject.value.replace(reg, "[MA A]");}
		else{
			theSubject.value = "[MA A]" + theSubject.value;}
	}
	else if(theSelect.value == "pl_mab"){
		if(theSubject.value.match(reg)){
			theSubject.value = theSubject.value.replace(reg, "[MA B]");}
		else{
			theSubject.value = "[MA B]" + theSubject.value;}
	}
	else if(theSelect.value == "pl_mac"){
		if(theSubject.value.match(reg)){
			theSubject.value = theSubject.value.replace(reg, "[MA C]");}
		else{
			theSubject.value = "[MA C]" + theSubject.value;}
	}
	else if(theSelect.value == "pl_mad"){
		if(theSubject.value.match(reg)){
			theSubject.value = theSubject.value.replace(reg, "[MA D]");}
		else{
			theSubject.value = "[MA D]" + theSubject.value;}
	}
	else if(theSelect.value == "pl_mae"){
		if(theSubject.value.match(reg)){
			theSubject.value = theSubject.value.replace(reg, "[MA E]");}
		else{
			theSubject.value = "[MA E]" + theSubject.value;}
	}
	else if(theSelect.value == "pl_maf"){
		if(theSubject.value.match(reg)){
			theSubject.value = theSubject.value.replace(reg, "[MA F]");}
		else{
			theSubject.value = "[MA F]" + theSubject.value;}
	}
	else if(theSelect.value == "pl_gy"){
		if(theSubject.value.match(reg)){
			theSubject.value = theSubject.value.replace(reg, "[GY]");}
		else{
			theSubject.value = "[GY]" + theSubject.value;}
	}
	else if(theSelect.value == "pl_hsm"){
		if(theSubject.value.match(reg)){
			theSubject.value = theSubject.value.replace(reg, "[HSM]");}
		else{
			theSubject.value = "[HSM]" + theSubject.value;}
	}
	else if(theSelect.value == "pl_none"){
		if(theSubject.value.match(reg)){
			theSubject.value = theSubject.value.replace(reg, "");}
		else{
			//none
		}
	}
}

var submit_name;
function SetName(name)
{
	submit_name = name;	
}

function validateLevel(theForm)
{
	if(theForm.req_subject && theForm.req_pl_level && submit_name == "submit")
	{
		if(theForm.req_pl_level.value == "")
		{
			alert("Du måste välja en nivå på ditt inlägg.");
			return false;
		}
		var reg = /^\[[A-ZÅÄÖ0-9\s]+\]/;
		if(!theForm.req_subject.value.match(reg))
		{
			alert("Nivån innehåller otillåtna tecken(endast stora bokstäver A-Ö samt 0-9 inom [] tillåtet).");
			return false;	
		}
		var reg = /^\[[A-ZÅÄÖ0-9\s]+\].+/;
		if(!theForm.req_subject.value.match(reg))
		{
			alert("Du måste ange en rubrik som beskriver innehållet (du har bara angivit nivå).");	
			return false;
		}
	}
	return true;	
}
