function selectUnselectMatchingOptions(obj,regex,which,only){if(window.RegExp){if(which == "select"){var selected1=true;var selected2=false;}else if(which == "unselect"){var selected1=false;var selected2=true;}else{return;}var re = new RegExp(regex);for(var i=0;i<obj.options.length;i++){if(re.test(obj.options[i].text)){obj.options[i].selected = selected1;}else{if(only == true){obj.options[i].selected = selected2;}}}}}

function selectMatchingOptions(obj,regex){selectUnselectMatchingOptions(obj,regex,"select",false);}

function selectOnlyMatchingOptions(obj,regex){selectUnselectMatchingOptions(obj,regex,"select",true);}

function unSelectMatchingOptions(obj,regex){selectUnselectMatchingOptions(obj,regex,"unselect",false);}

function sortSelect(obj){var o = new Array();if(obj.options==null){return;}for(var i=0;i<obj.options.length;i++){o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;}if(o.length==0){return;}o = o.sort(

function(a,b){if((a.text+"") <(b.text+"")){return -1;}if((a.text+"") >(b.text+"")){return 1;}return 0;});for(var i=0;i<o.length;i++){obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);}}

function selectAllOptions(obj){for(var i=0;i<obj.options.length;i++){obj.options[i].selected = true;}}

function moveSelectedOptions(from,to){if(arguments.length>3){var regex = arguments[3];if(regex != ""){unSelectMatchingOptions(from,regex);}}for(var i=0;i<from.options.length;i++){var o = from.options[i];if(o.selected){to.options[to.options.length] = new Option( o.text, o.value, false, false);}}for(var i=(from.options.length-1);i>=0;i--){var o = from.options[i];if(o.selected){from.options[i] = null;}}if((arguments.length<3) ||(arguments[2]==true)){sortSelect(from);sortSelect(to);}from.selectedIndex = -1;to.selectedIndex = -1;}

function copySelectedOptions(from,to){var options = new Object();for(var i=0;i<to.options.length;i++){options[to.options[i].value] = to.options[i].text;}for(var i=0;i<from.options.length;i++){var o = from.options[i];if(o.selected){if(options[o.value] == null || options[o.value] == "undefined" || options[o.value]!=o.text){to.options[to.options.length] = new Option( o.text, o.value, false, false);}}}if((arguments.length<3) ||(arguments[2]==true)){sortSelect(to);}from.selectedIndex = -1;to.selectedIndex = -1;}

function moveAllOptions(from,to){selectAllOptions(from);if(arguments.length==2){moveSelectedOptions(from,to);}else if(arguments.length==3){moveSelectedOptions(from,to,arguments[2]);}else if(arguments.length==4){moveSelectedOptions(from,to,arguments[2],arguments[3]);}}

function copyAllOptions(from,to){selectAllOptions(from);if(arguments.length==2){copySelectedOptions(from,to);}else if(arguments.length==3){copySelectedOptions(from,to,arguments[2]);}}

function swapOptions(obj,i,j){var o = obj.options;var i_selected = o[i].selected;var j_selected = o[j].selected;var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);o[i] = temp2;o[j] = temp;o[i].selected = j_selected;o[j].selected = i_selected;} 

function moveOptionUp(obj){for(i=0;i<obj.options.length;i++){if(obj.options[i].selected){if(i != 0 && !obj.options[i-1].selected){swapOptions(obj,i,i-1);obj.options[i-1].selected = true;}}}}

function moveOptionDown(obj){for(i=obj.options.length-1;i>=0;i--){if(obj.options[i].selected){if(i !=(obj.options.length-1) && ! obj.options[i+1].selected){swapOptions(obj,i,i+1);obj.options[i+1].selected = true;}}}}

function removeSelectedOptions(from){for(var i=(from.options.length-1);i>=0;i--){var o=from.options[i];if(o.selected){from.options[i] = null;}}from.selectedIndex = -1;}

function removeAllOptions(from){for(var i=(from.options.length-1);i>=0;i--){from.options[i] = null;}from.selectedIndex = -1;}

function addOption(obj,text,value,selected){if(obj!=null && obj.options!=null){obj.options[obj.options.length] = new Option(text, value, false, selected);}}



function SelectAll(fromObject) {

    for (var i=0, l=fromObject.options.length;i<l;i++) {

        fromObject.options[i].text,fromObject.options[i].selected = true;

    }

}



function findObj(theObj, theDoc) {

  var p, i, foundObj;  

  if(!theDoc) theDoc = document;

  if( (p = theObj.indexOf("?")) > 0 && parent.frames.length)  {

    theDoc = parent.frames[theObj.substring(p+1)].document;

    theObj = theObj.substring(0,p);  }

  if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];

  for (i=0; !foundObj && i < theDoc.forms.length; i++) 

    foundObj = theDoc.forms[i][theObj];

  for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 

    foundObj = findObj(theObj,theDoc.layers[i].document);

  if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);  

  return foundObj;

}



function skjulDiv(evt) {

var b,relT,mT=false; 

if(document.layers){b=evt.target;if(b.pEaHide){

  b.visibility="hidden";}else{routeEvent(evt);}

}else if(document.all&&!window.opera){b=event.srcElement;

  while(b!=null){if(b.tagName=="DIV" && b.pEahD){mT=true;break;}b=b.parentElement;}

  if(!b.contains(event.toElement)){b.style.visibility="hidden";}

}else if(document.getElementById){b=evt.currentTarget;relT=evt.relatedTarget;

  while(relT!=null){if(b==relT){mT=true;break;}

  relT=relT.parentNode;}if(!mT){b.style.visibility="hidden";}}

}



function autoSkjul() {

var i,g,args=autoSkjul.arguments;

for(i=0;i<args.length;i++){if((g=findObj(args[i]))!=null){

  g.pEaHide=true;if(document.layers){

  g.captureEvents(Event.MOUSEOUT);}g.onmouseout=skjulDiv;g.pEahD=true;}}

}





function show(object) {

 if (document.getElementById && document.getElementById(object) != null) {

     document.getElementById(object).style.visibility='visible';

     document.getElementById(object).style.display='block';

 }

 else if (document.layers && document.layers[object] != null)

          document.layers[object].visibility = 'visible';

 else if (document.all) {

          document.all[object].style.zIndex = 100;

          document.all[object].style.visibility = 'visible';

 }

}



function hide(object) {

 if (document.getElementById && document.getElementById(object) != null) {

     document.getElementById(object).style.visibility='hidden';

     document.getElementById(object).style.display='none';

 }

 else if (document.layers && document.layers[object] != null)

          document.layers[object].visibility = 'hidden';

 else if (document.all)

          document.all[object].style.visibility = 'hidden';

}



function DoDelete(strMsg)

   {if (confirm(strMsg) == true){return true}	else{return false}}





<!-- Layer vis/skjul -->

var ns, ns6, ns7, ie;



ns  = (document.layers) ? true : false;

ns6 = (document.getElementById) ? true : false;

ie  = (document.all) ? true : false;



function getLayerStyle( lyr ){

if( ns ){

return document.layers[lyr];

} else if( ie ){

return document.all[lyr].style;

} else if( ns6 ){

return document.getElementById(lyr).style;

} else if( ns7 ){

return document.getElementById(lyr).style;

}

}



function ShowHide(layer){
	newlayer = getLayerStyle(layer)
	if (newlayer.visibility == "hidden") {
	newlayer.visibility = "visible";
	newlayer.display = "block";
	}
	else if (newlayer.visibility == "visible") {
	newlayer.visibility = "hidden";
	newlayer.display = "none";
	}
}



function show(layer){
	newlayer = getLayerStyle(layer)
	newlayer.visibility = "visible";
	newlayer.display = "block";
}
function hide(layer){
	newlayer = getLayerStyle(layer)
	newlayer.visibility = "hidden";
	newlayer.display = "none";
}



function changeThisTxt(txt,txt1,txt2){

	if(txt == txt2){return txt1;} else {return txt2;}

}



function changeTxt(itemId,txt){

if( ns ){

		document.layers[itemId].innerHTML = txt;

} else if( ie ){

		document.getElementById(itemId).innerHTML = txt;

} else if( ns6 ){

		document.getElementById(itemId).innerHTML = txt;

} else if( ns7 ){

		document.getElementById(itemId).innerHTML = txt;

}

}



function turnTxt(itemId,txt1,txt2){

if( ns ){

	if(document.layers[itemId].innerHTML == txt1) {

		document.layers[itemId].innerHTML = txt2;

	} else {

		document.layers[itemId].innerHTML = txt1;}

} else if( ie ){

	if(document.getElementById(itemId).innerHTML == txt1) {

		document.getElementById(itemId).innerHTML = txt2;

	} else {

		document.getElementById(itemId).innerHTML = txt1;}

} else if( ns6 ){

	if(document.getElementById(itemId).innerHTML == txt1) {

		document.getElementById(itemId).innerHTML = txt2;

	} else {

		document.getElementById(itemId).innerHTML = txt1;}

} else if( ns7 ){

	if(document.getElementById(itemId).innerHTML == txt1) {

		document.getElementById(itemId).innerHTML = txt2;

	} else {

		document.getElementById(itemId).innerHTML = txt1;}

}

}



function changeImage(imgId,img1,img2) {

    var objImage = document.getElementById( imgId );

    if( objImage ) {objImage.src = ( objImage.src.indexOf( img1 ) > -1 ) ? img2 : img1;}

}

function showImg(img,sti){
	<!-- Hent først billede ved klik -->
    if(document.images){
        document.images[img].src=sti;
        document.getElementById(img).style.visibility='visible';
	}
}



function makeOption(selectElm,inputText,inputValue) {
	var optionVar = new Option(inputText,inputValue);
	selectElm.options[selectElm.length] = optionVar;
	selectElm.options[selectElm.length-1].selected = true;
}

function updateProduct(status) {

	if (status == 0) {

		alert("Bogens lagerstatus er sat til 0. Den er dermed fjernet fra hjemmesiden.")

	} else {

		alert("Oplysningerne er opdateret.")

	}

}











function getCookie(Navnpaacookie) {



// Først tjekker vi om der er en cookie lagret.

// Ellers bliver længden af document.cookie nul.



if (document.cookie.length > 0) 

{ 



// Dernæst tjekker vi om cookiens navn er lagret i 

// "document.cookie" objktet for siden.



// Eftersom mere end en cookie kan lagres på

// en enkelt side, er det muligt at vores cookie

// ikke er tilstæde, selvom "document.cookie" object

// ikke bare er en tom tekst.

// Hvis vores cookienavn ikke er tilstæde gemmes værdien -1

// i en variabel kaldet "begin".



begin = document.cookie.indexOf(Navnpaacookie+"="); 

if (begin != -1) // NB: != betyder "er ikke lig med"

{ 



// Vores cookie blev sat. 

// Værdien lagret i cookien retuneres af funktionen.



begin += Navnpaacookie.length+1; 

end = document.cookie.indexOf(";", begin);

if (end == -1) end = document.cookie.length;

return unescape(document.cookie.substring(begin, end)); } 

}

return null; 



// Vores cookie blev ikke sat. 

// Værdien "nul" retuneres af funktionen.



}



function setCookie(Navnpaacookie, value, expiredays) {



// Tre variabler bliver brugt til at sætte den nye cookie. 

// Navnet på cookien, værdien der skal gemmes,

// og tilsidst antallet af dage indtil cookien udløber.

// De første linier i funktionen konverterer

// antallet af dage til en gyldig dato.



var ExpireDate = new Date ();

ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));



// Den næste linie gemmer cookien, ved at tildele

// værdierne til "document.cookie" objektet.

// NB datoen konverteres til Greenwich Mean time ved at bruge

//"toGMTstring()" funktionen.



document.cookie = Navnpaacookie + "=" + escape(value) + 

((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());

}



function delCookie (Navnpaacookie) {



// Denne funktion tjekker om cookien er sat.

// Hvis ja, sættes udløbs datoen til to Jan. 1st 1970.



if (getCookie(Navnpaacookie)) {

document.cookie = Navnpaacookie + "=" +

"; expires=Thu, 01-Jan-70 00:00:01 GMT";

}

}



function isDate1Ahead(dateString1,dateString2) {
/*
   function DatePosition 
   parameters: dateString1 dateString2
   returns: integer (-1, 0, 1)
   Returns -1 if date1 i behind date2...
   Added Y2K checking.  (Works for any century cross over)
*/


    var now = new Date();
    var century = parseInt(now.getYear()/100)*100;
    
    var date1 = new Date(dateString1.substring(6,10),
                        dateString1.substring(3,5)-1,
                        dateString1.substring(0,2),
						dateString1.substring(11,13),
						dateString1.substring(14,16),
						dateString1.substring(17,19));

    var date2 = new Date(dateString2.substring(6,10),
                        dateString2.substring(3,5)-1,
                        dateString2.substring(0,2),
						dateString2.substring(11,13),
						dateString2.substring(14,16),
						dateString2.substring(17,19));
    
    if (date1 < date2) {return -1;}
    else if (date1 > date2) {return 1;}
    else {return 0;}
}



function y2k(number) { return (number < 1000) ? number + 1900 : number; }

function isDate (thedate) {
	thedate = String(thedate);
    day = parseInt(thedate.substring(0,2));
    month = parseInt(thedate.substring(3,5));
    year = parseInt(thedate.substring(6,10));
    var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    if (!day) return false
    var test = new Date(year,month,day);
    if ( 	(y2k(test.getYear()) == year) &&
         	(month == test.getMonth()) &&
         	(day == test.getDate()) && 
		 	(thedate.substring(2,3) == '.') && 
		 	(thedate.substring(5,6) == '.')
		) {
    return true; }else{return false;}
}

function constructDate(thedate,thetime) {
	thedate = String(thedate);
   	thetime = String(thetime);

    day = parseInt(thedate.substring(0,2));
    month = parseInt(thedate.substring(3,5));
    year = parseInt(thedate.substring(6,10));
    intHour = parseInt(thetime.substring(0,2));
    intMinute = parseInt(thetime.substring(3,5));
    var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
}

function dateAddDays (thedate,number) {
	// Tilføjer et antal dage (number) til datoen (thedate)
	//  Format: dd.mm.yyyy
	thedate = String(thedate);
    day = parseInt(thedate.substring(0,2));
    month = parseInt(thedate.substring(3,5));
    year = parseInt(thedate.substring(6,10));
    var today = new Date();
    year = ((!year) ? y2k(today.getYear()):year);
    month = ((!month) ? today.getMonth():month-1);
    var tmp = new Date(year,month,day + number);
	return tmp.getDate()+'.'+(tmp.getMonth()+1)+'.'+tmp.getYear();
}

function isDateLess (thedate1,thedate2) {
	thedate1 = String(thedate1);
    day1 = parseInt(thedate1.substring(0,2));
    month1 = parseInt(thedate1.substring(3,5));
    year1 = parseInt(thedate1.substring(6,10));
    var date1 = new Date(year1,month1,day1);
    
    thedate2 = String(thedate2);
    day2 = parseInt(thedate2.substring(0,2));
    month2 = parseInt(thedate2.substring(3,5));
    year2 = parseInt(thedate2.substring(6,10));
    var date2 = new Date(year2,month2,day2);
    
	if(date1 < date2) {return true;} else {return false;}
}

function isTime(thetime) {
	thetime = String(thetime);
    intHour = parseInt(thetime.substring(0,2));
    intMinute = parseInt(thetime.substring(3,5));
    var objTempTime = new Date( 0, 0, 1, intHour, intMinute, '00' );
    return	( ( objTempTime.getHours()   == intHour   )  &&
			  ( objTempTime.getMinutes() == intMinute ) &&
			  (thetime.substring(2,3) == ':')
			) ? true : false
}

function validateSearch(f,txt) {
	if(f.keyword.value.length < 2) {
		alert(txt);return false;
	} else {
		f.submit;return true;
	}
}

<!-- Billed-fade -->

var OpC = new Array();
var ie = (document.all)?true:false;
var moz = (navigator.userAgent.indexOf("Gecko")>-1);

function startOpChange(elm,end,tim){
  if (!ie && !moz)return;
  var idx = OpC.length;
  for(var i=0;idx>i;i++){
    if(OpC[i][0]==elm){
      clearInterval(OpC[i][4]);
      idx = i;
      break;
    }
    OpC[idx] = new Array();
  }
  if(idx==0)OpC[idx] = new Array();
  
  if(ie)actOp=elm.filters.alpha.opacity;
  else actOp=(elm.style.MozOpacity*100);
  if (actOp!=end){
    OpC[idx][0]=elm;
    OpC[idx][1]=actOp;
    OpC[idx][2]=end;
    OpC[idx][3]=(end>actOp)?1:-1;
    var delayTime = Math.floor((tim*1000)/Math.abs((actOp-end)));
    OpC[idx][4]=setInterval("opChange("+idx+")",delayTime);
  }
}

function opChange(idx){
  OpC[idx][1]+=OpC[idx][3];
  if (ie)OpC[idx][0].filters.alpha.opacity=OpC[idx][1];
  else OpC[idx][0].style.MozOpacity=Math.min(0.99,OpC[idx][1]/100);
  if (OpC[idx][1]==OpC[idx][2]){
    clearInterval(OpC[idx][4]);
    return;
  }
}




// Lav title som ved links
var ie = (document.all)?true:false;

function showTitleLayer(str,f){
e = document.getElementById('tip')
if(ie){
  e.style.top  = f.clientY + document.body.scrollTop-50;
  e.style.left = f.clientX + document.body.scrollLeft-100;}
else{
  e.style.top = f.pageY-50;
  e.style.left = f.pageX-100;}
vis = (e.style.display=='none')?true:false
if(vis){
  e.innerHTML = str;
  e.style.display = 'inline';
}
}

function hideTitleLayer(){
document.getElementById('tip').style.display = "none";
}

function confirmButton(strMsg,url) {
	// Ved javascript (fx onclick) kan denne confirm bruges
	if(confirm(strMsg)) location.href=url;
}

function popup(url,w,h) {
	window.open(url,'','width='+w+',height='+h+',scrollbars=yes,resizable=yes,status=yes');	
}

function loading(msg) {
	document.getElementById('onClickMessageDiv').innerHTML=msg;
	show('onClickMessageDiv');
}

function validateSegmentProperties()
{
	error = 0;
	if((document.segmentProperties.segmentHeader.value=='') && (error==0))   
	{		
	alert('Feltet "Overskrift ved segment-oversigt" skal udfyldes.');
	document.segmentProperties.segmentHeader.focus();
	error = 1;		
	}
	
	if((document.segmentProperties.changeSegmentText.value=='') && (error==0))   
	{		
	alert('Feltet Tekst ved "Skift segment"-klik skal udfyldes.');
	document.segmentProperties.changeSegmentText.focus();
	error = 1;		
	}	
	
	if((document.segmentProperties.deactivateSegmentText.value=='') && (error==0))   
	{		
	alert('Feltet Tekst ved "Vis alle segmenter"-klik skal udfyldes.');
	document.segmentProperties.deactivateSegmentText.focus();
	error = 1;		
	}			

	if(error == 0) {
	document.segmentProperties.submit();
	loading('Gemmer ændringer - vent venligst...');	
	}
}

