function SetRadioCheck (id, title, filename, contenttype)
{
    evitaGetElementById ("ViewerlinkFileName").value = filename;
    evitaGetElementById ("ViewerlinkTitle").value = title;
    evitaGetElementById ("ViewerlinkId").value = id;
    evitaGetElementById ("ViewerlinkType").value = contenttype;

}

function check(file, title, id)
{
    var editorname 	= 'p_description';   
    if (editorname.length !=0)
        document.getElementById("linkTarget").value = document.getElementById("targetframe").value;
    document.getElementById("linkFilename").value = file;
    document.getElementById("linkTitle").value = title;
    document.getElementById("linkID").value = id;
}

function doInsertIntoEditor(strEditorName, iKnowBasePath, siteid, domainid) 
{	
	var linkFileName = evitaGetElementById ("ViewerlinkFileName").value;
	var linkTitle 	 = evitaGetElementById ("ViewerlinkTitle").value;
	var linkId 	 = evitaGetElementById ("ViewerlinkId").value;
	var linkType 	 = evitaGetElementById ("ViewerlinkType").value;
	var finaltarget;

	if (linkType == "")
		alert('Velg et dokument i listen');
	else
	{
		if (!top.opener.closed)
		{
           		//insert the link.  The insertMediaFile object is documented.

			if (evitaGetElementById ("targetframe")) 
				var target = evitaGetElementById ("targetframe").value;
			else
				var target = "_new";

			var strmedia_title = linkTitle;

			if (target == "redirect") 
				finaltarget = " onclick=\"return call_ikb_homeplace(" + linkId +",'TITLE_REDIRECT'," + siteid + "," + domainid + ");\"";	
			else
				finaltarget = " target=\"" + target + "\"";
			
			if (linkType == "FILE")
			{
	          		var strmedia_path = iKnowBasePath;
	           		var strfile_name = linkId + "/" + linkFileName;

				var htmlTMLTag = "<a href='" + strmedia_path + strfile_name + "'" + finaltarget + "'>" + strmedia_title;
			}
			else
				if ((linkFileName.indexOf("http://") == -1) && (linkFileName.indexOf("https://") == -1))					
					var htmlTMLTag = "<a href='http://" + linkFileName + "'" + finaltarget + "'>" + strmedia_title; 
				else		
					var htmlTMLTag = "<a href='" + linkFileName + "'" + finaltarget + "'>" + strmedia_title;


            		htmlTMLTag = htmlTMLTag + "<" + "/a" + ">";

/* TODO: When we support inline-popups, we must support the tinyMCEPopup. Should be easy, once
         we no longer include tiny_mce_popup.js willy-nilly 
            		if (tinyMCEPopup) {
				tinyMCEPopup.execCommand('mceInsertContent', false, htmlTMLTag);
				tinyMCEPopup.close();
			}  
*/
            		if (strEditorName == "p_text" || strEditorName == "p_description") 
			{ 
				top.opener.eWebEditPro[strEditorName].pasteHTML(htmlTMLTag);
			  	top.close(); //close the library			
			}  
			else  // TinyMCE
			{
				top.opener.tinyMCE.execCommand('mceInsertContent', false, htmlTMLTag);
				top.close();
			}
		}
		else 
		{
			alert('Lenken du valgte kan ikke legges inn i dokumentet fordi editeringsvinduet ble lukket.');
		}
	}
}

function listCallback ()
{
    var list = evitaGetElementById('selectlist');

	var list_ids = new Array();
	var list_labels = new Array();
	var list_subattribs = new Array();

	// TODO: This mechanism of passing subAttribute-info MUST change!
	// We pass an array with one element for each set of subattributes
	// Each element is a TEXTUAL description of the subattributes for a single item
	// Thus, three items {a,b,c} where a and c have subattributes, will give a 
	// subattr-list with two items, containing subattrs for a and c respectiveliy

	var itemCount = 0;
	var subCount = 0;

	for (i=0; i<list.length; i++)
	{
		if (list[i].value.length == 0)
			continue;

		list_ids[itemCount] = list[i].value;
		list_labels[itemCount] = list[i].text;
		++itemCount;
		/*
		if (subAttributes[list[i].value])
		{
			list_subattribs[subCount] = subAttributes[list[i].value];
			++subCount;
		}*/
	}
	
	var cbFunction 	= 'storeValues';
	var cbClosure 	= '';
	
	var runThis = "parent.opener." + cbFunction+"(parent, cbClosure, list_ids, list_labels, list_subattribs);";
	eval(runThis);
}

function AddLink()
{
    var editorname 	= 'p_description';   
    if (editorname.length !=0)
        doInsertIntoEditor();
    else
        AddLinkToList();
}

function AddLinkToList()
{
    var file = evitaGetElementById("linkFilename").value;
    var title = evitaGetElementById("linkTitle").value;
    var id = evitaGetElementById("linkID").value;
    var target = evitaGetElementById("linkTarget").value;
    
    var maxCount = '1'; 
    var numInList = evitaGetElementById ("selectlist").length;
    if (numInList < maxCount)
    {
        var check = false;
        for (var i=0; i<evitaGetElementById ("selectlist").length; i++)
        {
            if (evitaGetElementById ("selectlist").options[i].value == id)
                check = true;
        }
        if (check == false)
        {
            listAddElement(evitaGetElementById ("selectlist"), title, id);
        }
        else
        {
            str = "Verdien er allerede i listen!";
            alert(str);
        }
    }
    else
    {
        str = "Maks antall verdier for dette attributtet er" + " " + maxCount + ".";
        alert(str); 
    }
    
}


function ReturnFromPickList(cbfunction, cbcloseure)
{
 var cbs = evitaGetElementById ("p_picklist_id");
 var txt = evitaGetElementById ("p_picklist_title");

  v1 = new Array();
  v2 = new Array();

  if (evitaGetElementById ("ViewerlinkId").value != "")
  {
		v2[0] = evitaGetElementById ("ViewerlinkTitle").value;
		v1[0] = evitaGetElementById ("ViewerlinkId").value;
  }

  if (parent.window.opener == null)
  {
	alert("Vinduet som du skal returnere til er lukket.");
	return false;
  }
  else
  {
	var runThis = "parent.opener." + cbfunction + "(parent, cbcloseure,[v1], [v2]);";
	eval(runThis);

      parent.opener.focus();

      self.close();
  }
}
// Copyright 1999-2006, e-vita as.
// Revision Date: 2006-01-13

function ikbToggleClass (action,o,c1,c2)
{
    switch (action) {
		case 'toggle':	
                           return ikbToggleClass('check',o,c1) ? ikbToggleClass('remove',o,c1) : ikbToggleClass('add',o,c1);
                  case 'swap':
                           o.className = !ikbToggleClass('check',o,c1)
                                       ? o.className.replace(c2,c1)
                                       : o.className.replace(c1,c2);
                           break;
                  case 'add':
                           if(!ikbToggleClass('check',o,c1)){o.className+=o.className?' '+c1:c1;}
                           break;
                  case 'remove':
                           var rep=o.className.match(' '+c1)?' '+c1:c1;
                           o.className=o.className.replace(rep,'');
                           break;
                  case 'check':
                           return new RegExp('\\b'+c1+'\\b').test(o.className);
                           break;
         }

         return o.className != null ? o.className : "";
}

// Newer browsers use document.getElementById, older IE-versions use document.all
function evitaGetElementById (id)
{
	if (document.getElementById)
		return document.getElementById (id);
	else
		return document.all[id];
}

function evitaInnerText (o)
{
	if (o.innerText) return o.innerText;
	else if (o.textContent) return o.textContent;
	return text = "(evitaInnerText:" + o + ")";
}

function evitaDumpSource(o)
{
  var w = window.open('');
  var d = w.document;
  d.open();
  d.write ('<html><body>');
  d.write ('<h1>Source</h1><xmp><!CDATA[');
  d.write (o.innerHTML);
  d.write (']]></xmp></body></html>');
  d.close();
}

function evitaDumpObject (header,object)
{
  var w = window.open('');
  var d = w.document;
  d.open();
  d.write ('<html><body>');
  d.write ('<h1>' + h + '</h1><xmp>');

  d.writeln ("ID = " + o.id);

  for (i in o)
    d.writeln (i + " = " + o[i] + "; ");

  d.write ('</xmp></body></html>');
  d.close();
}

function evitaTextRepositoryClass ()
{
	var textMap = new Array();
	
	this.setText = function (key, value) 
	{
		textMap[key] = value;
	}
	
	this.getText = function (key)
	{
		var value = textMap[key];
		if (value == null)
			value = "--- missing value for key= '" + key + "' ---";
		return value;
	}
}

var evitaTextRepository = new evitaTextRepositoryClass();

function evitaNvl (value, alternate)
{
	if (value != null)
		return value;
	else
		return alternate;
}

function evitaArrayCopy (value)
{
	var arr;
	if (value == null)
	{
		return value;
	}
	else
	{
		arr = new Array();
		for (o in value)
			arr[o] = value[o];
		return arr;
	}
}

function evitaAssert (bool, message)
{
	if (! bool)
		alert ('evitaAssert', message);
}

function evitaRemoveLeadingWhitespace(str)
{
    while (true)
    {
        if (str.substring(0,1) == ' ')
            str = str.substring(1, str.length);
        else
            break;
    }
    return str;
}

function evitaChkNumeric(obj,minval,maxval,comma,period,hyphen)
{
	// only allow 0-9 be entered, plus any values passed
	var checkOK = "0123456789" + comma + period + hyphen;
	var checkStr = obj.value;
	var allValid = true;
	var decPoints = 0;
	var allNum = "";
	var msg = "";

	for (i = 0;  i < checkStr.length;  i++)
	{
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j))
				break;
		if (j == checkOK.length)
		{
			allValid = false;
			break;
		}
		if (ch != ",")
			allNum += ch;
	}
	if (!allValid)
	{	
		msg = "Please enter only these values \""
		msg = msg + checkOK + "\" in the \"" + obj.name + "\" field."
		return(msg);
	}

	// set the minimum and maximum
	var chkVal = allNum;
	var prsVal = parseInt(allNum);
	if (chkVal != "" && !(prsVal >= minval && prsVal <= maxval))
	{
		msg = "Please enter a value greater than or "
		msg = msg + "equal to \"" + minval + "\" and less than or "
		msg = msg + "equal to \"" + maxval + "\" in the \"" + checkStr.name + "\" field."
		return(msg);
	}
	return(msg);
}

function evitaChkLetter(obj, checkNotOK)
{
	// do not allow any values passed in checkNotOK
	var checkStr = obj.value;
	var allValid = true;
	var decPoints = 0;
	var allNum = "";
	var msg = "";

	for (i = 0;  i < checkStr.length;  i++)
	{
		ch = checkStr.charAt(i);
		for (j = 0;  j < checkNotOK.length;  j++)
        {
			if (ch == checkNotOK.charAt(j))
            {
                allValid = false;
				break;
            }
        }
        if (allValid == false)
            break;
	}
	if (!allValid)
	{	
		msg = "Please do not enter these values \""
		msg = msg + checkNotOK + "\" in the \"" + obj.name + "\" field."
		return(msg);
	}
   
	return(msg);
}

var browserName  = '';
var fullVersion  = 0; 
var majorVersion = 0;

function checkBrowserVersion()
{
  var nVer = navigator.appVersion;
  var nAgt = navigator.userAgent;
  

  // In Internet Explorer, the true version is after "MSIE" in userAgent
  if ((verOffset=nAgt.indexOf("MSIE"))!=-1) 
  {
    browserName  = "Microsoft Internet Explorer";
    fullVersion  = parseFloat(nAgt.substring(verOffset+5));
    majorVersion = parseInt(''+fullVersion);
  }

  // In Opera, the true version is after "Opera" 
  else if ((verOffset=nAgt.indexOf("Opera"))!=-1)
  {
    browserName  = "Microsoft Internet Explorer";
    fullVersion  = parseFloat(nAgt.substring(verOffset+6));
    majorVersion = parseInt(''+fullVersion);
  }

  // In most other browsers, "name/version" is at the end of userAgent 
  else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/')) ) 
  {
    browserName  = nAgt.substring(nameOffset,verOffset);
    fullVersion  = parseFloat(nAgt.substring(verOffset+1));
    if (!isNaN(fullVersion)) 
      majorVersion = parseInt(''+fullVersion);
    else 
      {fullVersion  = 0; majorVersion = 0;}
  }

  // Finally, if no name and/or no version detected from userAgent...
  if (browserName.toLowerCase() == browserName.toUpperCase() || fullVersion==0 || majorVersion == 0 )
  {
   browserName  = navigator.appName;
   fullVersion  = parseFloat(nVer);
   majorVersion = parseInt(nVer);
  }

  /*
  document.write('Browser name  = '+browserName+'<br>');
  document.write('Full version  = '+fullVersion+'<br>');
  document.write('Major version = '+majorVersion+'<br>');
  document.write('navigator.appName = '+navigator.appName+'<br>');
  document.write('navigator.userAgent = '+navigator.userAgent+'<br>');
  */
  
}

function returnBrowserName()
{
  return browserName;
}

function returnBrowserVersion()
{
  return fullVersion;
}

function evitaGetElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}function do_viewer_command (reference_path, operation, document_id, order, rowcount)
{
	order_field = document.forms["g"+reference_path].elements["g"+reference_path+"order"];
	rowcount_field = document.forms["g"+reference_path].elements["g"+reference_path+"rowcount"];
	cico_field = document.forms["g"+reference_path].elements["g"+reference_path+"cico_document_id"];
	operation_field = document.forms["g"+reference_path].elements["g"+reference_path+"operation"];

	if (operation == "checkin" || operation == "checkout")
		cico_field.value = document_id;	
	else if (operation == "order")
	{
		order_field.value = order;
		rowcount_field.value = 1;
	}
	else if (operation == "rowcount")
	{
		order_field.value = order;
		rowcount_field.value = rowcount;
	}
	operation_field.value = operation;
	document.forms["g"+ reference_path].submit();		
}

function disable_button (button) 
{

	if (evitaGetElementById(button))
               evitaGetElementById(button).disabled = true;
}

function toggle_image_expand_collapse(imagename,objectsrc){
	if (document.images){
		document.images[imagename].src= objectsrc;
	}
}

function toggle_expand_collapse (documentID, reference_path, imgin, imgout)
{
  var id = "X" + reference_path + "_docid-" + documentID;
  var element = evitaGetElementById (id);
  ikbToggleClass ('toggle', element, 'ikbRowHide');
  if (element.className == "")
	toggle_image_expand_collapse(("img-"+id),imgout);
 else
	toggle_image_expand_collapse(("img-"+id),imgin);

  return false;
}


function checkifSet (pForm, pField)
{
	var itemfield = document.forms[pForm].elements[pField];
	if (typeof(itemfield) != "undefined")
		if (document.forms[pForm].elements[pField].value == "")
			return -1;
		else
			return 0;
	else
		return -2; 
}

function validatedocbuttons(pForm, thisfield) 
{
 	myOption = -1;
	var field = document.forms[pForm].elements[thisfield];
 	for (i=field.length-1; i > -1; i--) 
 		if (field[i].checked)
   			{ return field[i].value; }

	// Value not found
   	return "";
}


function call_metadata_help(value, app, url)
{
	vindu = window.open(url + '.ikb_portlet_formatting_set.show_in_context?p_guid=' + value + '&p_app=' + app,'_blank',
	'height=800,top=' + (screen.height-800)/2 + ',width=1050,left=' + (screen.width-1050)/2 + 	',scrollbars=yes,resizable=yes,menubar=1,toolbar=yes'); 
	vindu.focus(); 
	return false;
}


function call_picklist (TopDimensionList, MaxCount, PreSelectedIds, cbclosure, attributeID, objecttype, url, target, window_option, cbfunction, isForm)
{
  	var options = "";
	var seperator = "?";
	var temp = "" + url;

	if (temp.indexOf("=")>-1) 
		seperator = "&";


	if (typeof isForm == "undefined")
		 isForm="";

	var l_toppdim = "";

	if (TopDimensionList.length > 0)
	   	for (i=0 ; i< TopDimensionList.length; i++)
			if (l_toppdim == "")
				l_toppdim = "topDimensionIDs=" + TopDimensionList[i];
			else
				l_toppdim += "&" + "topDimensionIDs=" + TopDimensionList[i];
	else
		if (typeof(attributeID) != "undefined")
			if (attributeID != "")
				l_toppdim = "attributeID=" + attributeID;

	if (l_toppdim != "")
		navURL = url + seperator + l_toppdim + "&p_dim_doc_type=" + objecttype + "&mode=";
	else
		navURL = url + seperator + "p_dim_doc_type=" + objecttype + "&mode=";


	if (MaxCount == 1)
		navURL = navURL + "single";
	else
		navURL = navURL + "multiple";

	if (isForm == "TAG")
		navURL = navURL + "&p_dimension_mode=TAG";

	var dimIDarray = PreSelectedIds.split(";");

	if (dimIDarray.length > 0)
		for (var i=0;i<dimIDarray.length;i++)
			if (dimIDarray[i] != "") 
				navURL = navURL + "&preSelDim=" + escape(dimIDarray[i]);

	navURL = navURL + "&maxCount=" + MaxCount + "&cbFunction=" + cbfunction + "&cbClosure=" + cbclosure;

	if (window.showModalDialog) 
	{
		window.open(navURL, target, window_option);
	} 
	else 
	{
		window.open(navURL, target, window_option + ", modal=yes" );
	}
}

function UpdateSelectListOne (attribute, newDimensionID, newDimensionLabel, p_form, p_field)
{

	if (evitaGetElementById(p_field + "_" + attribute + p_form))
		var attribute_field = document.forms[p_form].elements[p_field + "_" + attribute + p_form];
	else
		var attribute_field = document.forms[p_form].elements[p_field + "_" + attribute];

	if (typeof(attribute_field) != "undefined")
		attribute_field.value = newDimensionID;

	return true;
}
function UpdateSelectList (attribute, max_values, newDimensionID, newDimensionLabel, errorMsg, p_form, p_field, p_dummy)
{
	if (evitaGetElementById(p_field + "_" + attribute + p_form))
	{
		var dummy 	= document.forms[p_form].elements[p_dummy + "_" + attribute + p_form];		
		var divdummy    = evitaGetElementById("divdummy_" + attribute + p_form);		
		var attribute_field = document.forms[p_form].elements[p_field + "_" + attribute + p_form];
	}
	else
	{
		var dummy 	= document.forms[p_form].elements[p_dummy + "_" + attribute];		
		var divdummy    = evitaGetElementById("divdummy_" + attribute);		
		var attribute_field = document.forms[p_form].elements[p_field + "_" + attribute];
	}
	

	if (typeof(attribute_field) == "undefined")
		return true;

	if (newDimensionID != "")
	{
		var dimIDs = attribute_field.value;
		var dimPrompts = dummy.value;
		
		var dimIDarray = dimIDs.split(";");
		var l_sep = "";

		if (dimIDs == "")
			l_sep = "";
		else
			l_sep = ";";

		if (max_values > dimIDarray.length)
		{
			l_found = "no";
			for (var i=0;i<dimIDarray.length;i++)
			{
				if (dimIDarray[i] == newDimensionID)
				{
					l_found = "yes";
				 }
			}
			if (l_found == "no")
			{	
				dummy.value = dimPrompts + l_sep + newDimensionLabel;
				attribute_field.value = dimIDs + l_sep + newDimensionID;

				oldInnerHtml = divdummy.innerHTML;
				if (oldInnerHtml == "")					
				{
					divdummy.innerHTML = "<a href=\"#\" onclick=\"return DeleteSelectedDocIDs('" + newDimensionID + "','" + attribute + "','" + p_form + "','" + p_field + "','" + p_dummy + "');\"><img alt='Delete' src='/ressurs/evita/iKBDesktop/images/common/del_sel_dim_icon.gif' border='0' /></a> " + newDimensionLabel;
				}
				else
				{
					divdummy.innerHTML = divdummy.innerHTML + "<br>" + "<a href=\"#\" onclick=\"return DeleteSelectedDocIDs('" + newDimensionID + "','" + attribute + "','" + p_form + "','" + p_field + "','" + p_dummy + "');\"><img alt='Delete' src='/ressurs/evita/iKBDesktop/images/common/del_sel_dim_icon.gif' border='0' /></a> " + newDimensionLabel;
				}

				return true;
			}
		}
		else
			alert(errorMsg + " " + max_values + ".");
	}
}

function DeleteSelectedDocIDs (pDocID, attribute, p_form, p_field, p_dummy)
{
// Verify if the attribute has a formname in it

	if (evitaGetElementById(p_field + "_" + attribute + p_form))
	{
		var dummy 	= document.forms[p_form].elements[p_dummy + "_" + attribute + p_form];		
		var divdummy    = evitaGetElementById("divdummy_" + attribute + p_form);		
		var attribute_field = document.forms[p_form].elements[p_field + "_" + attribute + p_form];
	}
	else
	{
		var dummy 	= document.forms[p_form].elements[p_dummy + "_" + attribute];		
		var divdummy    = evitaGetElementById("divdummy_" + attribute);		
		var attribute_field = document.forms[p_form].elements[p_field + "_" + attribute];
	}

	if (typeof(attribute_field) == "undefined")
		return false;

	var l_Ids =  attribute_field.value.split(";");
	var l_Names =  dummy.value.split(";");

	var teller = 0;
	if (l_Ids.length == 1)
	{
		attribute_field.value = "";
		dummy.value = "";
		divdummy.innerHTML = "";		
	}
	else
	{
		var returnIDs = new Array();
		var returnNames = new Array();
		for (var i=0;i<l_Ids.length;i++)
		{
			if (l_Ids[i] != pDocID)
			{			
				returnIDs[teller] = l_Ids[i];
				returnNames[teller] = l_Names[i];
				teller++;
			}
		}
		rebuild_sel_value_list(returnIDs, returnNames, attribute, p_form, p_field, p_dummy);
	}	
	return false;
}

function rebuild_sel_value_list(v1, v2, attribute, p_form, p_field, p_dummy)
{

	if (evitaGetElementById(p_field + "_" + attribute + p_form))
	{
		var dummy 	= document.forms[p_form].elements[p_dummy + "_" + attribute + p_form];		
		var divdummy    = evitaGetElementById("divdummy_" + attribute + p_form);		
		var maxvalue    = evitaGetElementById("p_max_value_" + attribute + p_form);
		var attribute_field = document.forms[p_form].elements[p_field + "_" + attribute + p_form];
		var favorite_list = document.forms[p_form].elements["p_favorite_list_" + attribute + p_form];
	}
	else
	{
		var dummy 	= document.forms[p_form].elements[p_dummy + "_" + attribute];		
		var divdummy    = evitaGetElementById("divdummy_" + attribute);		
		var maxvalue    = evitaGetElementById("p_max_value_" + attribute);
		var attribute_field = document.forms[p_form].elements[p_field + "_" + attribute];
		var favorite_list = document.forms[p_form].elements["p_favorite_list_" + attribute];
	}


//	var favorite_list = document.forms[p_form].elements["p_favorite_list_" + attribute + p_form];
//	var attribute_field = document.forms[p_form].elements[p_field + "_" + attribute + p_form];
//	var dummy = document.forms[p_form].elements[p_dummy + "_" + attribute + p_form];
//	var divdummy = evitaGetElementById("divdummy_" + attribute + p_form)

	var l_v3 = "";
	var l_v2 = "";
	var l_v1 = "";
	var hasFavorite = 0;
	var favCounter = 0;

   	for (i=0 ; i< v1.length; i++)
	{
		if (l_v1 == "")
			l_v1= v1[i];
		else
			l_v1 += ";" + v1[i];
	}
   	for (i=0 ; i< v2.length; i++)
	{
		if (l_v2 == "")
		{
			l_v2= v2[i];
			l_v3= " <a href=\"#\" onClick=\"return DeleteSelectedDocIDs('" + v1[i] + "','" + attribute + "','" + p_form + "','" + p_field + "','" + p_dummy + "');\"><img alt='Delete' src='/ressurs/evita/iKBDesktop/images/common/del_sel_dim_icon.gif' border='0' /></a> " + v2[i];
		}
		else
		{
			l_v2 += ";" + v2[i];
			l_v3 += "<br>" + " <a href=\"#\" onClick=\"return DeleteSelectedDocIDs('" + v1[i] + "','" + attribute + "','" + p_form + "','" + p_field + "','" + p_dummy + "');\"><img alt='Delete' src='/ressurs/evita/iKBDesktop/images/common/del_sel_dim_icon.gif' border='0' /></a> " + v2[i];
		}
	}

	if (typeof(favorite_list) != "undefined")
	{ 
		if  (favorite_list.type != "hidden")
		{
				hasFavorite = 1;
				var antall = favorite_list.options.length;
				for (x=0 ; x< v1.length; x++)
				{						
					l_found = 0;
					for (i = 0; i < antall; i++)					
					{
						if (favorite_list.options[i].value == v1[x])
						{	
							l_found = 1;
							favorite_list.options[i].selected = true;
						}
					}
					if (l_found == 0)
					{
						favorite_list.options[favorite_list.options.length] = new Option(v2[x],v1[x]);
						favorite_list.options[i].selected = true;
					}
				}
			}
	}

	dummy.value = l_v2;
	attribute_field.value = l_v1;

	if (evitaGetElementById("divdummy_" + attribute) || evitaGetElementById("divdummy_" + attribute + p_form))
	{
		if (evitaGetElementById("p_max_value_" + attribute) || evitaGetElementById("p_max_value_" + attribute + p_form))
				if (maxvalue.innerHTML != "1" || hasFavorite == 0)
		  			divdummy.innerHTML = l_v3; 
		else
		  	divdummy.innerHTML = l_v3; 		
	}

	return false;
}


function rebuild_metadata_list(v1, v2, attribute)
{
	var favorite_list = evitaGetElementById(attribute);

	var l_v2 = "";
	var l_v1 = "";
	var hasFavorite = 0;
	var favCounter = 0;

   	for (i=0 ; i< v1.length; i++)
	{
		if (l_v1 == "")
			l_v1= v1[i];
		else
			l_v1 += ";" + v1[i];
	}
   	for (i=0 ; i< v2.length; i++)
	{
		if (l_v2 == "")
		{
			l_v2= v2[i];
		}
		else
		{
			l_v2 += ";" + v2[i];
		}
	}

	if (typeof(favorite_list) != "undefined")
	{ 
		if  (favorite_list.type != "hidden")
		{
				hasFavorite = 1;
				var antall = favorite_list.options.length;
				for (x=0 ; x< v1.length; x++)
				{						
					l_found = 0;
					for (i = 0; i < antall; i++)					
					{
						if (favorite_list.options[i].value == v1[x])
						{	
							l_found = 1;
							favorite_list.options[i].selected = true;
						}
					}
					if (l_found == 0)
					{
						favorite_list.options[favorite_list.options.length] = new Option(v2[x],v1[x]);
						favorite_list.options[i].selected = true;
					}
				}
			}
	}


	return false;
}


function call_navigators (p_TopDimensionList, p_TargetReciver, p_MaxCount, p_PreSelectedDimValues, p_PreSelectedDimIds, p_cbclosure, p_attributeID, p_page, p_target, p_cbfunction)
{
	var l_toppdim = "";
	var dimIDarray = p_PreSelectedDimValues.split(";");
	var dimPromptarray = p_PreSelectedDimIds.split(";");

	if (p_TopDimensionList.length > 0)
	   	for (i=0 ; i<p_TopDimensionList.length; i++)
		{
			if (l_toppdim == "")
				l_toppdim = "topDimensionIDs=" + p_TopDimensionList[i];
			else
				l_toppdim += "&" + "topDimensionIDs=" + p_TopDimensionList[i];
		}

	else
		if (typeof(p_attributeID) != "undefined")
			l_toppdim = "attributeID=" + p_attributeID;

	navURL = p_page + "?" + l_toppdim + "&mode=";

	if (p_MaxCount == 1)
		navURL = navURL + "single";
	else
		navURL = navURL + "multiple";

	if (p_MaxCount == -1 || p_MaxCount == "")
		p_MaxCount = 99;

	if (p_PreSelectedDimValues != "")
		for (var i=0;i<dimIDarray.length;i++)
		{
			navURL = navURL + "&preSelDim=" + escape(dimPromptarray[i]);
		}

	navURL = navURL + "&maxCount=" + p_MaxCount + "&cbFunction=" + p_cbfunction + "&cbClosure=" + p_cbclosure;



//	if (p_target == "")
		window.open(navURL, "DimensionNavigator","width=850, height=600, scrollbars, resizable=yes");
//	else
//		call_ikb_popup(navURL, p_target);
}

function StoreDocValues(parentWindow, cbClosure, v1, v2, subAttribs)
{	
	if (parentWindow != null)
		parentWindow.close();

	var Closures = cbClosure.split(":");
		
	if (Closures.length == 2)
	{
		var form      = Closures[0];
		var attribute = Closures[1];
	}			
	else
	{
		var attribute = cbClosure;
		var form      = "DocumentForm";
	}	
	
	rebuild_sel_value_list(v1,v2, attribute, form,"p_attrib_value", "p_dummy");
}

function returnMetadata(parentWindow, attribute, v1, v2, subAttribs)
{
	if (parentWindow != null)
		parentWindow.close();

	rebuild_metadata_list(v1,v2,attribute);
}

function StoreMasterValue(parentWindow, cbClosure, v1, v2, subAttribs)
{
	if (parentWindow != null)
		parentWindow.close();

	var Closures = cbClosure.split(":");
		
	if (Closures.length == 2)
	{
		var form      = Closures[0];
		var attribute = Closures[1];
	}			
	else
	{
		var attribute = cbClosure;
		var form      = "DocumentForm";
	}	

	rebuild_sel_value_list(v1,v2,attribute, form,"p_document_id_ref", "p_dummy");
}

function Ce_CalendarSetup (pInput, pButton, pFormat)
{
	Calendar.setup(
	 { 
	 inputField : pInput, // ID of the input field
	 ifFormat : pFormat, // the date format 
	 button : pButton // ID of the button
	 }
	);
}
function changeMasterFile(pForm) 
{
	var form = document.forms[pForm];
	var filename = form["p_file"].value;
	var path = filename.split("\\"); // Microsoft-specific, but we don't care.
	if (form["p_title"].value == "")
		form["p_title"].value = path[path.length-1];
}

function f_setfocus( aForm )
{
	if( aForm.elements[0]!=null) {
		var i;
		var max = aForm.length;
		for( i = 0; i < max; i++ ) {
			if( aForm.elements[ i ].type != "hidden" &&
				aForm.elements[ i ].type != "" &&
				!aForm.elements[ i ].disabled &&
				!aForm.elements[ i ].readOnly ) {
					try {
						aForm.elements[ i ].focus();
						break;
					 } catch (e) { 
					       	break;
     					 }
			}
		}
	}
}

function decode(str){
	for (i = 0; i < str.length-4; i++)
	{
		if (str.substring(i,i+5) == "&amp;")
			str = str.substring(0,i)+ "&" + str.substring(i+5, str.length);
	}

	for (i = 0; i < str.length-3; i++)
	{
		if (str.substring(i,i+4) == "&lt;")
			str = str.substring(0,i)+ "<" + str.substring(i+4, str.length);
	}
	for (i = 0; i < str.length-3; i++)
	{
		if (str.substring(i,i+4) == "&gt;")
			str = str.substring(0,i)+ ">" + str.substring(i+4, str.length);
	}
	for (i = 0; i < str.length-3; i++)
	{
		if (str.substring(i,i+4) == "&#39"){
			str = str.substring(0,i)+ "'" + str.substring(i+4, str.length);
		}
	}
	for (i = 0; i < str.length-5; i++)
	{
		if (str.substring(i,i+6) == "&quot;"){
			str = str.substring(0,i)+ '"' + str.substring(i+6, str.length);
		}
	}
	return str;
}
function form_validate_number (p_this, p_from, p_to, p_err) 
{
	if ( p_this.value < p_from || p_this.value > p_to || isNaN( Math.abs(p_this.value) ) ) 
	{ 
		alert( p_err); p_this.focus; p_this.select; return false;
	}   
	return true;
}

function refreshmainwindow()
{
 	if (window.opener && !window.opener.closed) 
	{	
		window.focus();
		self.close();
	}
	else
       	history.back(-1);
}
function clear_parent ()
{
	evitaGetElementById("parent_id_text").innerHTML  = "";
	document.DocumentForm.p_document_id_ref.value = "";
}
function set_parent_id (parent, closure, v1, v2)
{
	var l_v2 = "";
	var l_v1 = "";

   	for (i=0 ; i< v1.length; i++)
	{
		if (l_v1 == "")
			l_v1= v1[i];
		else
			l_v1 += ";" + v1[i];
	}
   	for (i=0 ; i< v2.length; i++)
	{
		if (l_v2 == "")
			l_v2= v2[i];
		else
			l_v2 += ";" + v2[i];
	}

	evitaGetElementById("parent_id_text").innerHTML = '<a href="" onClick="javascript:clear_parent(); return false;"><img src="/ressurs/evita/iKBDesktop/images/common/del_sel_dim_icon.gif" border="0" /></a> ' + l_v2;
	document.DocumentForm.p_document_id_ref.value = l_v1;
}

function openDynamicACLs(pForm, p_url, p_mode)
{
	var form = document.forms[pForm];
	var navURL=p_url;

	var l_acl_id = form["p_acl_id"].value;
	if (l_acl_id == "")
		l_acl_id = -1;

	if (p_mode == "POPUP")
		cbFunction = "RefreshACLListPopup";
	else
		cbFunction = "RefreshACLList";

	
	navURL = navURL + "?cbFunction=RefreshACLList&aclID=" + l_acl_id; // NB: m�tte hardkode cbFunction

	vindu = window.open(navURL, "DynamicACLs", 'width=850, height=600, scrollbars, resizable=yes');

	vindu.focus();
}

function RefreshACLList(pForm, id, verdi)
{
// Finner ut om verdien ligger i listen allerede */

    var form = document.forms[pForm];

    if ($("#p_acl_id"+pForm).is('input')) 
	{
	    $("#p_acl_text_"+pForm).empty();
	    form["p_acl_id"+pForm].value = id;
	    jQuery("<span align=''left''> " + verdi + "</span>").appendTo("#p_acl_text_"+pForm);
	}
    else
    {
        var iLength = form["p_acl_id"+pForm].length - 1;
	var found = 0;
        for(i = iLength; i >= 0; i--)
        {
            if(form["p_acl_id"+pForm].options[i].value == id)
            {
            	form["p_acl_id"+pForm].options[i].selected = true;
			found = 1;
            }
         }
	if (found == 0)
	{
	form["p_acl_id"+pForm].options[form["p_acl_id"+pForm].options.length] = new Option(verdi, id);
	form["p_acl_id"+pForm].options[form["p_acl_id"+pForm].options.length-1].selected = true;
	}
    }
}

function RefreshACLListPopup(id, verdi)
{
}

function split_long_attributes(theForm, attribute_id)
{
	var thisChunk;
	var startpos;
	var numChar;					


 	for (x=0 ; x < attribute_id.length; x++)
 	{
		ikbelement = document.forms[theForm].elements["p_attrib_value_" + attribute_id[x] + theForm];
		ikbarrayelement = document.forms[theForm].elements["p_attrib_value_" + attribute_id[x] + "_array" + theForm];

//		ikbelement = evitaGetElementById ("p_attrib_value_" + attribute_id[x]);
//		ikbarrayelement = evitaGetElementById ("p_attrib_value_" + attribute_id[x] + "_array");

		ikbelement.disabled = "true";
		ikbarrayelement.disabled = "true";
		inputData = ikbelement.value;
 		totalLength = ikbelement.value.length;

		if (totalLength > 30000) 
		{
			charLeft = totalLength;
			
			while (charLeft > 0)
			{					
				if (charLeft == totalLength)
				{
					startpos = 0;
					numChar = 30000;
				}
				else
				{
					if (charLeft > 30000)
					{
						startpos += 30000;
						numChar = 30000;
					}
					else
					{
						startpos += 30000;
						numChar = charLeft;
					}
				}

				charLeft -=30000;
				thisChunk = inputData.substr(startpos,numChar);
	
				jQuery('<input type="hidden" name="p_long_text_ids" value="' + attribute_id[x] + '">').appendTo("#dynamic_text" + theForm);
				jQuery('<input type="hidden" name="p_long_text_arrays">').appendTo("#dynamic_text" + theForm).val(thisChunk);

			}
		}
		else			
		{
			jQuery('<input type="hidden" name="p_long_text_ids" value="' + attribute_id[x] + '">').appendTo("#dynamic_text"+ theForm);
			jQuery('<input type="hidden" name="p_long_text_arrays">').appendTo("#dynamic_text"+ theForm).val(inputData);			
		}
	}
}

function split_text_and_description(theForm, p_text_item, p_text_array)
{
	var thisChunk;
	var startpos;
	var numChar;					


	ikbelement = document.forms[theForm].elements[p_text_item];

	ikbelement.disabled = "true";
	inputData = ikbelement.value;
	totalLength = ikbelement.value.length;
	if (totalLength > 30000) 
	{
		charLeft = totalLength;
	
		while (charLeft > 0)
		{					
			if (charLeft == totalLength)
			{

				startpos = 0;
				numChar = 30000;
			}
			else
			{
				if (charLeft > 30000)
				{
					startpos += 30000;
					numChar = 30000;
				}
				else
				{
					startpos += 30000;
					numChar = charLeft;
				}
			}

			charLeft -=30000;
			thisChunk = inputData.substr(startpos,numChar);

			if (startpos == 0) 
			{
			        document.forms[theForm].elements[p_text_array].value = thisChunk;
			}
			else
			{					

				if (evitaGetElementById("dynamic_text"+ theForm))
					jQuery('<input type="hidden" name="'+p_text_array+'">').appendTo("#dynamic_text" + theForm).val(thisChunk);
				else if (evitaGetElementById("dynamic_text"))
					jQuery('<input type="hidden" name="'+p_text_array+'">').appendTo("#dynamic_text").val(thisChunk);
				else
					alert("ERROR: No DIV-field in form to add the chunked value");
			}
		}
	}
	else			
            	document.forms[theForm].elements[p_text_array].value = inputData;

}
	
function toggle_block_none (Field, Value)
{
	if (evitaGetElementById(Field))
      		evitaGetElementById(Field).style.display = Value;
}

function toggle_formats(obj) {
//   var type = obj[obj.selectedIndex].value;
   var type = obj;
   if (type == 'file') {
      evitaGetElementById('p_document_format').value = "F";

      if (checkifSet("p_url") == 0) 
	evitaGetElementById('p_url').value = "";

      toggle_block_none("file","block");
      toggle_block_none("text","none");
      toggle_block_none("url","none");

   }
   if (type == 'url') {
      evitaGetElementById('p_document_format').value = "U";

      toggle_block_none("file","none");
      toggle_block_none("text","none");
      toggle_block_none("url","block");
   }
   if (type == 'text') {
      evitaGetElementById('p_document_format').value = "T";

      if (checkifSet("p_url") == 0) 
	evitaGetElementById('p_url').value = "";

      toggle_block_none("file","none");
      toggle_block_none("text","block");
      toggle_block_none("url","none");
   }
}
<!-- Comment out script for old browsers

function ValidateNumber(theElement)
{
  s = theElement.value;
  if (isNaN(Math.abs(theElement.value)) && (s.charAt(0) != '#'))
  {
         for (var i=0; (i <= s.length && s.charAt(i) != '.'); )
         {
          if (((s.charAt(i) >= 0) && (s.charAt(i) <= 9)) ||
               (s.charAt(i) == ',' && i != 0 && i != s.length-1) || (s.charAt(i) == '.') )
                 i++; 
          else 
           { 
             alert("Kun tall er tillatt." ); 
             theElement.focus(); 
             theElement.select(); 
             return false; 
           } 
         } 
        if (s.charAt(i) == '.') 
         { 
	     for (i++;i <= s.length; ) 
           { 
            if (((s.charAt(i) >= 0) && (s.charAt(i) <= 9))) 
              i++; 
            else 
            { 
             alert("Kun tall er tillatt."); 
             theElement.focus(); 
             theElement.select(); 
             return false;
            } 
           } 
         } 
  } 
  return true;
}

function ValidateDDMMYYYY(theElement)
{
 var DayArray =new Array(31,28,31,30,31,30,31,31,30,31,30,31);
 var MonthArray = new Array("01","02","03","04","05","06","07","08","09","10","11","12");
 var thisYear = null;
 var thisMon = null;
 var thisDay = null;
 var today = null;
 inpDate = theElement.value;
  if (inpDate.length == 0 ) return true;
 thisDay = inpDate.substr(0,2);
 thisMonth = inpDate.substr(3,2).toUpperCase();
 thisYear = inpDate.substr(6,4);

 var filter=/^[0-9]{2}.[0-9]{2}.[0-9]{4}$/;
  if (! filter.test(inpDate)) 
  {   alert("Angi dato p� formatet DD.MM.YYYY (eks. 28.12.2000)"); 
       theElement.focus(); 
       theElement.select(); 
       return false; 
  } 
  /* Check Valid Month */
  var filter=/01|02|03|04|05|06|07|08|09|10|11|12/ ;
  if (! filter.test(thisMonth))
  {
     alert("Angi en gyldig m�ned (01-12) !");
     theElement.focus(); 
     theElement.select(); 
     return false;
  }
  /* Check For Leap Year */
  N=Number(thisYear);
  if ( ( N%4==0 && N%100 !=0 ) || ( N%400==0 ) ) 
  {
    DayArray[1]=29;   
  }
  /* Check for valid days for month */
  for(var ctr=0; ctr<=11; ctr++)
  {
   if (MonthArray[ctr]==thisMonth)
   {
      if (thisDay<= DayArray[ctr] && thisDay >0 )
           return true;
       else
       {
           alert("Angi en korrekt dag!"); 
           theElement.focus(); 
           theElement.select(); 
           return false; 
       }
    }
   }
}

function ValidateDatetime(theElement)
{
 var DayArray =new Array(31,28,31,30,31,30,31,31,30,31,30,31);
 var MonthArray = new Array("01","02","03","04","05","06","07","08","09","10","11","12");
 var thisYear = null;
 var thisMon = null;
 var thisDay = null;
 var today = null;
 inpDate = theElement.value;
  if (inpDate.length == 0 ) return true;
 thisDay = inpDate.substr(0,2);
 thisMonth = inpDate.substr(3,2).toUpperCase();
 thisYear = inpDate.substr(6,4);
 thisHour = inpDate.substr(11,2);
 thisMin = inpDate.substr(14,2);

 var filter=/^[0-9]{2}.[0-9]{2}.[0-9]{4} [0-9]{2}:[0-9]{2}$/;
  if (! filter.test(inpDate)) 
  {   alert("Angi dato p� formatet DD.MM.YYYY HH24:MI (eks. 28.12.2000 12:00)"); 
       theElement.focus(); 
       theElement.select(); 
       return false; 
  } 
  /* Check Valid Month */
  var filter=/01|02|03|04|05|06|07|08|09|10|11|12/ ;
  if (! filter.test(thisMonth))
  {
     alert("Angi en gyldig m�ned (01-12) !");
     theElement.focus(); 
     theElement.select(); 
     return false;
  }
  /* Check min and hour at last */
  var filter=/00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|22|23/ ;
  if (! filter.test(thisHour))
  {
     alert("Angi en gyldig time (00-24) !");
     theElement.focus(); 
     theElement.select(); 
     return false;
  }
  var filter=/00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59/ ;
  if (! filter.test(thisMin))
  {
     alert("Angi et gyldig minutt (00-59) !");
     theElement.focus(); 
     theElement.select(); 
     return false;
  }


  /* Check For Leap Year */
  N=Number(thisYear);
  if ( ( N%4==0 && N%100 !=0 ) || ( N%400==0 ) ) 
  {
    DayArray[1]=29;   
  }
  /* Check for valid days for month */
  for(var ctr=0; ctr<=11; ctr++)
  {
   if (MonthArray[ctr]==thisMonth)
   {
      if (thisDay<= DayArray[ctr] && thisDay >0 )
           return true;
       else
       {
           alert("Angi en korrekt dag!"); 
           theElement.focus(); 
           theElement.select(); 
           return false; 
       }
    }
   }

}

