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 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 (pField)
{
	var itemfield = document.forms["DocumentForm"].elements[pField];
	if (typeof(itemfield) != "undefined")
		if (document.forms["DocumentForm"].elements[pField].value == "")
			return -1;
		else
			return 0;
	else
		return -2; 
}

function validatedocbuttons(thisfield) 
{
 	myOption = -1;
	var field = document.forms["DocumentForm"].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, width, height, window_option, scrollbar, resizable, cbfunction)
{
  	var options = "";
	var seperator = "?";
	var temp = "" + url;

	if (temp.indexOf("=")>-1) 
		seperator = "&";


	var l_toppdim = "";
	var dimIDarray = PreSelectedIds.split(";");

	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 (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)
{
	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)
{
	var attribute_field = document.forms[p_form].elements[p_field + "_" + attribute];
	var dummy 	= document.forms[p_form].elements[p_dummy + "_" + 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 = document.getElementById("divdummy_" + attribute).innerHTML;
				if (oldInnerHtml == "")					
				{
document.getElementById("divdummy_" + attribute).innerHTML = "<a href=\"#\" onclick=\"return DeleteSelectedDocIDs('" + newDimensionID + "','" + attribute + "','" + p_form + "','" + p_field + "','" + p_dummy + "');\"><img src='/ressurs/evita/iKBDesktop/images/common/del_sel_dim_icon.gif' border='0'></a> " + newDimensionLabel;
				}
				else
				{
					document.getElementById("divdummy_" + attribute).innerHTML = document.getElementById("divdummy_" + attribute).innerHTML + "<br>" + "<a href=\"#\" onclick=\"return DeleteSelectedDocIDs('" + newDimensionID + "','" + attribute + "','" + p_form + "','" + p_field + "','" + p_dummy + "');\"><img 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)
{
	var attribute_field = document.forms[p_form].elements[p_field + "_" + attribute];
	var dummy 	= document.forms[p_form].elements[p_dummy + "_" + 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 = "";
		document.getElementById("divdummy_" + attribute).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)
{
	var favorite_list = document.forms[p_form].elements["p_favorite_list_" + attribute];
	var attribute_field = document.forms[p_form].elements[p_field + "_" + attribute];
	var dummy = document.forms[p_form].elements[p_dummy + "_" + attribute];
	var divdummy = document.getElementById("divdummy_" + attribute)

	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 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 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 (typeof(divdummy) != "undefined")
	{
		if (document.getElementById("p_max_value_" + attribute).innerHTML != "1" || hasFavorite == 0)
  			{ divdummy.innerHTML = l_v3; }
	}

	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, attribute, v1, v2, subAttribs)
{
	if (parentWindow != null)
		parentWindow.close();
	rebuild_sel_value_list(v1,v2,attribute, "DocumentForm","p_attrib_value", "p_dummy");
}
function StoreMasterValue(parentWindow, attribute, v1, v2, subAttribs)
{
	if (parentWindow != null)
		parentWindow.close();
	rebuild_sel_value_list(v1,v2,attribute, "DocumentForm","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() 
{
	var form = document.DocumentForm;
	var filename = form["p_file"].value;
	var path = filename.split("\\"); // Microsoft-specific, but we don't care.
	if (document.DocumentForm.p_title.value == "")
		document.DocumentForm.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 ) {				
				aForm.elements[ i ].focus();
				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 ()
{
	document.getElementById("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];
	}

	document.getElementById("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(p_url)
{
	var navURL=p_url;
	var l_acl_id = document.DocumentForm["p_acl_id"].value;
	if (l_acl_id == "")
		l_acl_id = -1;

	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(id, verdi)
{
// Må finne ut om verdien ligger i listen allerede */
        var iLength = document.DocumentForm('p_acl_id').length - 1;
	  var found = 0;
        for(i = iLength; i >= 0; i--)
        {
            if(document.DocumentForm('p_acl_id').options[i].value == id)
            {
            	document.DocumentForm('p_acl_id').options[i].selected = true;
			found = 1;
            }
         }
	if (found == 0)
	{
	document.DocumentForm.p_acl_id.options[document.DocumentForm.p_acl_id.options.length] = new Option(verdi, id);
	document.DocumentForm.p_acl_id.options[document.DocumentForm.p_acl_id.options.length-1].selected = true;
	}
}


function split_text_and_description(theForm, p_text_item, p_text_array)
{
 	inputData = document.forms[theForm].elements[p_text_item].value;
	document.forms[theForm].elements[p_text_item].disabled = "true";
 	totalLength = inputData.length;
	if (totalLength > 30000)
	{
		data = "";
		charLeft = totalLength;
		numIteration = 0;

		while (charLeft > 0)
		{
			if (numIteration > 0)
				data = data + '<input type="hidden" name="' + p_text_array + '" value="">';
			numIteration++;
			charLeft -=30000;
		}
				// alert("Data: " + data + " Num " + numIteration);
		charLeft = totalLength;


		if (document.layers) 
		{
			document.layers.dynamic_text.document.write(data);
			document.layers.dynamic_text.document.close();
		}
		else 
			if (document.all) 
				dynamic_text.innerHTML = data;

		teller = 0;
		for (i=1; i <= numIteration; i++)
		{

			if (i == 1)
			{
				startpos = 0;
				charLeft -= 30000;
				numChar = 30000;
			}
			else
			{
				if (i < numIteration)
				{
					startpos += 30000;
					charLeft -= 30000;
					numChar = 30000;
				}
				else
				{
					startpos += 30000;
					numChar = charLeft;
				}
			}

			thisChunk = inputData.substr(startpos,numChar);
            		document.forms[theForm].elements[p_text_array][teller].value = thisChunk;

			teller += 1;
		}
	}
	else
            	document.forms[theForm].elements[p_text_array].value = inputData;
}
	
function toggle_block_none (Field, Value)
{
	if (document.getElementById(Field))
      		document.getElementById(Field).style.display = Value;
}

function toggle_formats(obj) {
//   var type = obj[obj.selectedIndex].value;
   var type = obj;
   if (type == 'file') {
      document.getElementById('p_document_format').value = "F";

      if (checkifSet("p_url") == 0) 
	document.getElementById('p_url').value = "";

      toggle_block_none("file","block");
      toggle_block_none("text","none");
      toggle_block_none("url","none");

   }
   if (type == 'url') {
      document.getElementById('p_document_format').value = "U";

      toggle_block_none("file","none");
      toggle_block_none("text","none");
      toggle_block_none("url","block");
   }
   if (type == 'text') {
      document.getElementById('p_document_format').value = "T";

      if (checkifSet("p_url") == 0) 
	document.getElementById('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; 
       }
    }
   }

}

