function ServerSideCallAjax(PageToCall, PostData, CallBackFunction)
{
    var MiniAjaxCallBackFunction = CallBackFunction;
    var xmlHttp;
    try
    {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    }
    catch (e)
    {
        // Internet Explorer
        try
        {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
                alert("Your browser does not support AJAX!");
                return false;
            }
        }

    }

    xmlHttp.onreadystatechange = function()
    {
        if (xmlHttp.readyState == 4)
        {
            MiniAjaxCallBackFunction(xmlHttp.responseText);
            //eval(MiniAjaxCallBackFunction2 + "('" + escape(xmlHttp.responseText) + "')");
        }
    }

    if (PostData != null)
    {
        xmlHttp.open("POST", PageToCall, true);
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

        PostData = PostData.replace(/[+]/g, "%2b"); //.replace(/\s/g, "+");
    }
    else
    {
        xmlHttp.open("GET", PageToCall, true);
    }

    xmlHttp.send(PostData);
    
}


function MiniAjax(AspPageToCall, CallBackName)
{
	var MiniAjaxCallBackFunction = CallBackName;
	var xmlHttp;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
		
	}

	xmlHttp.onreadystatechange=function()
	{
		if(xmlHttp.readyState==4)
		{
			eval(MiniAjaxCallBackFunction + "('" + xmlHttp.responseText.replace("'", "&#39;") + "')");
		}
	}
	
	xmlHttp.open("GET",AspPageToCall,true);
	xmlHttp.send(null);
}

function BoolToInt(BoolValue)
{
	if(BoolValue == true) return 1;
	return 0;                                      
}

function Now()
{
	var curdate = new Date();
	var D = curdate.getDate() + "-" + (1+ curdate.getMonth()) + "-" + curdate.getFullYear();
	return D;
}



function SyncNote(WithPostBack)
{                                      
	var PostBackString = "";
	
	if(parseInt(WithPostBack) == 1)
	{
		var DateOut = "";
		if(document.getElementById("NoteDeadline").value.length > 0)
		{
			var d = document.getElementById("NoteDeadline").value.split("-");
			try
			{
				DateOut = d[2] + "-" + d[1] + "-" + d[0];
				//DateOut = d[0] + "-" + d[1] + "-" + d[2];
				
			}
			catch(err)
			{
				DateOut = "";
			}
		}
		
		//d = Date.parse(document.getElementById("NoteDeadline").value);
		//alert(d[2] + "-" + d[1] + "-" + d[0]);
		var W_HPR = BoolToInt(document.getElementById("Watch_HPR").checked);
		var W_FAS = BoolToInt(document.getElementById("Watch_FAS").checked);
		var W_RAB = BoolToInt(document.getElementById("Watch_RAB").checked);
		var W_VGR = BoolToInt(document.getElementById("Watch_VGR").checked);
		var W_TFA = BoolToInt(document.getElementById("Watch_TFA").checked);
		var W_UND = BoolToInt(document.getElementById("Watch_UND").checked);

		var C_HPR = document.getElementById("Content_HPR").innerHTML;
		var C_FAS = document.getElementById("Content_FAS").innerHTML;
		var C_RAB = document.getElementById("Content_RAB").innerHTML;
		var C_VGR = document.getElementById("Content_VGR").innerHTML;
		var C_TFA = document.getElementById("Content_TFA").innerHTML;
		var C_UND = document.getElementById("Content_UND").innerHTML;
		
		if(W_HPR == 1 && document.getElementById("Watch_HPR").FieldModified == true) W_HPR = 2;
		if(W_FAS == 1 && document.getElementById("Watch_FAS").FieldModified == true) W_FAS = 2;
		if(W_RAB == 1 && document.getElementById("Watch_RAB").FieldModified == true) W_RAB = 2;
		if(W_VGR == 1 && document.getElementById("Watch_VGR").FieldModified == true) W_VGR = 2;
		if(W_TFA == 1 && document.getElementById("Watch_TFA").FieldModified == true) W_TFA = 2;
		if(W_UND == 1 && document.getElementById("Watch_UND").FieldModified == true) W_UND = 2;
			
		if(C_HPR.length > 1) C_HPR = C_HPR.substring(1, C_HPR.length - 1);
		if(C_FAS.length > 1) C_FAS = C_FAS.substring(1, C_FAS.length - 1);
		if(C_RAB.length > 1) C_RAB = C_RAB.substring(1, C_RAB.length - 1);
		if(C_VGR.length > 1) C_VGR = C_VGR.substring(1, C_VGR.length - 1);
		if(C_TFA.length > 1) C_TFA = C_TFA.substring(1, C_TFA.length - 1);
		if(C_UND.length > 1) C_UND = C_UND.substring(1, C_UND.length - 1);
		
		//alert(C_HPR);
		
		//Teksten skal ikke opdateres i SQL alligevel, så bare nulstil data, så input-validatoren ikke afviser teksten
		if(C_HPR.substring(0, 5).toLowerCase() == "<span") C_HPR = "";
		if(C_FAS.substring(0, 5).toLowerCase() == "<span") C_FAS = "";
		if(C_RAB.substring(0, 5).toLowerCase() == "<span") C_RAB = "";
		if(C_VGR.substring(0, 5).toLowerCase() == "<span") C_VGR = "";
		if(C_TFA.substring(0, 5).toLowerCase() == "<span") C_TFA = "";
		if(C_UND.substring(0, 5).toLowerCase() == "<span") C_UND = "";
		
		PostBackString = 
			"&NoteAction=" + document.getElementById("NoteAction").value + 
			"&NoteText=" + escape(document.getElementById("NoteText").value) + //.replace(/\n/g, "|||") + //.replace(/Æ/g, "&#198;").replace(/Ø/g, "&#216;").replace(/Å/g, "&#197;") + 
			"&NoteDeadline=" + DateOut + 
			"&Watch_HPR=" + W_HPR + 
			"&Watch_FAS=" + W_FAS + 
			"&Watch_RAB=" + W_RAB + 
			"&Watch_VGR=" + W_VGR + 
			"&Watch_TFA=" + W_TFA +
			"&Watch_UND=" + W_UND +
			"&Content_HPR=" + escape(C_HPR) + 
			"&Content_FAS=" + escape(C_FAS) + 
			"&Content_RAB=" + escape(C_RAB) + 
			"&Content_VGR=" + escape(C_VGR) + 
			"&Content_TFA=" + escape(C_TFA) +
			"&Content_UND=" + escape(C_UND);
	}

	if(document.getElementById('_unr') == null) 
	{
		//Wait a second - it may still be loading
		setTimeout('SyncNote(' + WithPostBack + ')', 1000);
	}
	else 
	{
		//alert(PostBackString);
		MiniAjax("../commoncore/syncnote.asp?unr=" + document.getElementById('_unr').value + PostBackString, "SyncNoteAfter");
	}
}

function SyncNoteAfter(res)
{
	//document.getElementById("save_note").innerHTML = res;
	var Note = eval("(" + res + ")");
	
	if(Note.noteerror != null && Note.noteerror != "Data not found")
	{
		ShowNote(0) ;
	}
	else
	{
		//Note.Data.NoteText = Note.Data.NoteText.replace(/&#229;/g, "å").replace(/&#34;/g, "\"").replace(/&#39;/g, "'").replace(/&#248;/g, "ø").replace(/&#230;/g, "æ").replace(/<br>/g, "\n").replace(/&#198;/g, "Æ").replace(/&#216;/g, "Ø").replace(/&#197;/g, "Å");
		document.getElementById("NoteAction").value = Note.Data.NoteAction;
		document.getElementById("NoteText").value = unescape(Note.Data.NoteText.replace(/\+/g, " "));
//		document.getElementById("NoteText").value = Note.Data.NoteText; //.substring(1, 203);
		document.getElementById("NoteDeadline").value = Note.Data.NoteDeadline;
		


		document.getElementById("NoteWatch").style.display = (Note.Data.ShowWatch == 0) ? "none" : "";
		document.getElementById("updown2").src = (Note.Data.ShowWatch == 0) ? "../images/expand.jpg" : "../images/collapse.jpg";
		document.getElementById("Watch_HPR").checked = (Note.Data.Watch_HPR == 0) ? false : true;
		document.getElementById("Watch_FAS").checked = (Note.Data.Watch_FAS == 0) ? false : true;
		document.getElementById("Watch_RAB").checked = (Note.Data.Watch_RAB == 0) ? false : true;
		document.getElementById("Watch_VGR").checked = (Note.Data.Watch_VGR == 0) ? false : true;
		document.getElementById("Watch_TFA").checked = (Note.Data.Watch_TFA == 0) ? false : true;
		document.getElementById("Watch_UND").checked = (Note.Data.Watch_UND == 0) ? false : true;

		if(Note.Data.Content_HPR.length > 0) document.getElementById("Content_HPR").innerHTML = "(" + Note.Data.Content_HPR.replace(/&#39;/g, "'") + ")";
		if(Note.Data.Content_FAS.length > 0) document.getElementById("Content_FAS").innerHTML = "(" + Note.Data.Content_FAS.replace(/&#39;/g, "'") + ")";
		if(Note.Data.Content_RAB.length > 0) document.getElementById("Content_RAB").innerHTML = "(" + Note.Data.Content_RAB.replace(/&#39;/g, "'") + ")";
		if(Note.Data.Content_VGR.length > 0) document.getElementById("Content_VGR").innerHTML = "(" + Note.Data.Content_VGR.replace(/&#39;/g, "'") + ")";
		if(Note.Data.Content_TFA.length > 0) document.getElementById("Content_TFA").innerHTML = "(" + Note.Data.Content_TFA.replace(/&#39;/g, "'") + ")";
		if(Note.Data.Content_UND.length > 0) document.getElementById("Content_UND").innerHTML = "(" + Note.Data.Content_UND.replace(/&#39;/g, "'") + ")";



		document.getElementById("NoteInfo").innerHTML = Note.Data.Info;

		if(Note.noteerror != null && Note.noteerror == "Data not found") 
		{
			document.getElementById("notetarget").style.color = "red";
			ShowNote(0); 
		}
		else 
		{
			document.getElementById("notetarget").style.color = "green";
			ShowNote(1);
		}
		AlterBehandlingInfo();
		
		document.getElementById("vis_er_opdateret").style.display = "";
		setTimeout('HideIsUpdated()', 1000);
	}

}

function HideIsUpdated()
{
	document.getElementById("vis_er_opdateret").style.display = "none";
}

function DivShowHide(TagID)
{
	var Target = document.getElementById(TagID)
	var PicTarget = null;
	if(TagID = "NoteWatch") PicTarget = document.getElementById("updown2");
	else PicTarget = document.getElementById("updown");
	
	if(Target.style.display == "none")
	{
		Target.style.display = "";
		if(PicTarget) 
		{
			PicTarget.src = "../images/collapse.jpg";
		}
	}
	else
	{
		Target.style.display = "none";
		if(PicTarget) 
		{
			PicTarget.src = "../images/expand.jpg";
		}
	}
}

function SelectAdd(TargetObject, SelectText, SelectValue)
{
	//alert(TargetObject + " " + SelectText + " " + SelectValue);
	        // Create an Option object        

    var opt = document.createElement("option");

    // Add an Option object to Drop Down/List Box
    TargetObject.options.add(opt);

    // Assign text and value to Option object
    opt.text = SelectText;
    opt.value = SelectValue;
 
}

function SelectDelete(TargetObject)
{
   //var Source = document.getElementById("TargetObject").selectedIndex;
   
  //var elSel = document.getElementById('selectX');
  var i;
  for (i = TargetObject.length - 1; i>=0; i--) {
    if (TargetObject.options[i].selected) {
      TargetObject.remove(i);
    }
  }
}


function SelectMove(Source, Target)
{
	var SourceObject = document.getElementById(Source);
	var TargetObject = document.getElementById(Target);
	
	var SelectedOption = SourceObject.selectedIndex;
	
	if(SelectedOption == -1) return;
	
	SelectAdd(TargetObject, SourceObject.options[SelectedOption].text, SourceObject.options[SelectedOption].value);
	
	SelectDelete(SourceObject);
	
	SelectSort(TargetObject);
	
	//alert(Source + " " + Target);

 
}

function compareOptionText(a,b) {
  /*
   * return >0 if a>b
   *         0 if a=b
   *        <0 if a<b
   */
  // textual comparison
  return a.text!=b.text ? a.text<b.text ? -1 : 1 : 0;
  // numerical comparison
//  return a.text - b.text;

}

function SelectSort(list) 
{
  var items = list.options.length;
  // create array and make copies of options in list
  var tmpArray = new Array(items);
  for ( i=0; i<items; i++ )
  {
    tmpArray[i] = new Option(list.options[i].text,list.options[i].value);
  }
  
  // sort options using given function
  tmpArray.sort(compareOptionText);
  // make copies of sorted options back to list
  for ( i=0; i<items; i++ )
  {
    list.options[i] = new Option(tmpArray[i].text,tmpArray[i].value);
  }

} 

function GetSelectValues(SourceID)
{
	var TargetObject = document.getElementById(SourceID);
	var ReturnString = "";
	
	for (var i = 0; i< TargetObject.length; i++) 
	{
		if(ReturnString.length > 0) ReturnString += ",";
		ReturnString += TargetObject.options[i].value;
	}
	
	return ReturnString;
}


function Get_Cookie(name) 
{
   var start = document.cookie.indexOf(name+"=");
   var len = start+name.length+1;
   if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
   if (start == -1) return null;
   var end = document.cookie.indexOf(";",len);
   if (end == -1) end = document.cookie.length;
   return unescape(document.cookie.substring(len,end));
}

function Set_Cookie(name,value,expires,path,domain,secure) 
{
    var cookieString = name + "=" +escape(value) +
       ( (expires) ? ";expires=" + expires.toGMTString() : "") +
       ( (path) ? ";path=" + path : "") +
       ( (domain) ? ";domain=" + domain : "") +
       ( (secure) ? ";secure" : "");
    document.cookie = cookieString;
}
