// sogfunk.js

// bruges til at indsatte sogestreng i sogform eller til at udfore sogningen
// sfs		Submitter formen
// sogskriv	Bruges til at indsatte sogestrengen for 3 sogefelt
// sogsubmit	Bruges til at indsatte sogestrengen for 3 sogefelt og udfore sogningen
// focusfelt	Satter fokus til et bestemt felt


// Sogtekst bruges af dbl til at soge ved dobbeltklik
var sogdbl="";


function datekonvstr(sogstr) {
	// Evt. datoer udskiftes, hvis der er % i stregen erstatter vi alle
   if (sogstr.indexOf("%") > -1 ) {
		// %dd
     	if (sogstr.indexOf("%dd") > -1 ) {
        	dd=dato2mips();
        	sogstr=sogstr.replace(/%dd/,dd);
		}
		// %sm
     	if (sogstr.indexOf("%sm") > -1 ) {
        	sm=dato2mips('sm');
        	sogstr=sogstr.replace(/%sm/,sm);
		}
		// %ig
     	if (sogstr.indexOf("%ig") > -1 ) {
       	ig=dato2mips('ig');
        	sogstr=sogstr.replace(/%ig/,ig);
		}
		// %idag
     	if (sogstr.indexOf("%idag") > -1 ) {
        	idag=dato2mips('idag');
        	sogstr=sogstr.replace(/%idag/,idag);
		}
   }
	// retuner den endelige streng
	return sogstr;
}

function dato2mips(dtype) {
   // %dd% %sm% osv
   // Find altid i dag
   dato=new Date();
   // Find vardier til at beregne andre datoer
   yyyy=dato.getFullYear();
   mm=dato.getMonth();
   dd=dato.getDate();

   // Her rettes i dato hvis det ikke er idag
   switch (dtype) {
      case "dd" :
         break;
      case "idag" :
         break;
      case "ig" :
         dato.setDate(dd-1);
         break;
      case "sm" :
         dato.setMonth(mm-1);
      break;
   }
   // Beregn den endelige dato
   yyyy=dato.getFullYear();
   mm=dato.getMonth()+1;
  	if (mm<10) {mm="0"+mm};
   dd=dato.getDate();
   if (dd<10) {dd="0"+dd};
   yyyymmdd=yyyy+""+mm+""+dd;
   return yyyymmdd;
}

function dbl(msg,base) {
	// Ved dobbeltklik skal der soges pa strengen, men kun pa strengen
	// Sogestrengen er skrevet i onClick, for ikke at skulle skrive den igen gores dette
	// eller den kaldes herfra
	if (msg) {
		bs4=msg;	// til global var
		if (base) {bbase=base}	// glob var til sogning
		// ns kan ikke finde ud af replace sig selv, vi venter bare lidt sa er det godt
   	sogtimer=setTimeout('brssog()',20);
		sogdbl=msg;
		sogskriv(sogdbl,'rep');	// skriv i sogefelt
	} else {
		sogskriv(sogdbl,'rep');
		bs4=sogdbl;	// til global var
		// Nogle browsere kan ikke finde ud af replace sig selv, vi venter bare lidt sa er det godt
  		sogtimer=setTimeout('brssog()',20);
	}
}
function tjekuser(msg) {
	return true;
	if (! top.juser || top.juser == "guest" || top.juser =="") {
		alert("Du skal vare logget ind for at soge her!");
		// vis logon siden til at 
		top.frames["pixframe"].location="/etc/stoc/dk/html/logon.pl?lang=dk&lny=nylog";
		return false;
	} else {
		return true;
	}
}

function sfs() {
	// Submitter sogformen
	// Er det Netscape
	if (is_nav && tjekuser()) {top.sogframe.document.soglayer.document.sogform.submit();}
	// Er det Explorer
	if (is_ie && tjekuser()) {top.sogframe.document.all.sogform.submit();}
}

function sogskriv(sogstr,adm) {
	// Tilfoj sogestrengen i s6 (3. sogestreng) og tjek om dobbelt value
	// type er add|rep, altså om den skal erstatte eller tilfoje forrest, default add
	// Find formen
  	if (is_nav) {
		//sform=top.sogframe.document.soglayer.document.sogform;
		sform=MM_findObj('sogform?sogframe');
   } else {
		///////sform=top.sogframe.document.all.sogform;
		// ny dom
		sform=MM_findObj('sogform?sogframe');
   }
	// aht til cdsogning skal vi andre "-"->""
	sogstr=sogstr.replace(/ \- /," ");	//"<" -> ""

	// Vi bruger nogle gange # istedet for space
	sogstr=sogstr.replace(/#/g," ");	// # -> space

	// der er andre tegn der ikke duer i sogningen
	sogstr=sogstr.replace(/[&+,%?^!]/g," ");	// # -> space
	sogstr=sogstr.replace(/[']/g,'"');	// # -> space
		
	// Hvis s6 er hidden, skal det hele ske i s4 (der er kun det ene felt)
	//sforms6=sform.s6; // gl model
	sforms6=MM_findObj('s6?sogframe');
	//sforms4=sform.s4; // gl model
	sforms4=MM_findObj('s4?sogframe');

	if (sforms6 && sforms6.type != "hidden") {
		// Tjek typen
			if (! adm) {adm="add" }
			// Tjek om s4 er 0, sa skal den nulstilles
   		s4=sforms4.value;
			if (s4=="0") {MM_changeProp('s4?sogframe','','value','','INPUT/TEXT')};

		// Find den gamle sogestreng
        	s6=sforms6.value;
		// Tjek om den nye er der forvejen, hvis ikke skal den prefixes
		if (adm=="add") {
			if (s6.indexOf(sogstr) < 0 ) {
        			//MM_changeProp(sforms6,"x",=sogstr+" "+s6);
					MM_changeProp('s6?sogframe','','value',sogstr+" "+s6,'INPUT/TEXT');
			}
		} else {
				// Sa skal den bare overskive
				sforms6.value=sogstr;
				//MM_changeProp(sforms6,"x",sogstr);
				MM_changeProp('s6?sogframe','','value',sogstr,'INPUT/TEXT');
		}
		// gem sogestreng til dbl
		top.sogdbl=sogstr;
	} else {
		// Sa er der kun et felt s4
			// Tjek om s4 er 0, sa skal den nulstilles
   		s4=sforms4.value;
			if (s4=="0") {MM_changeProp('s4?sogframe','','value','','INPUT/TEXT')};
			if (! adm) {adm="add" }
			// Tilfoj eller overskriv
			if (adm=="add") {
				// Find den gamle sogestreng og tjek om teksten star der i forvejen
        		s4=sforms4.value;
				if (s4.indexOf(sogstr) < 0 ) {
        			//sforms4.value=sogstr+" "+s4;
					//MM_changeProp(sforms4,"x",sogstr+" "+s4);
					MM_changeProp('s4?sogframe','','value',sogstr+" "+s4,'INPUT/TEXT');
				}
			} else {
				// Sa skal den bare overskive
				sforms4.value=sogstr;
				//MM_changeProp(sforms4,"x",sogstr);
				MM_changeProp('s4?sogframe','','value',sogstr,'INPUT/TEXT');
			}
			// gem sogestreng til dbl
			top.sogdbl=sogstr;
	}
}

function tjeksogfelt(mig) {
	// Tjekker et sogefelt og rettet til konverterede streng, kaldes fra feltet
	if (mig.value.indexOf("%") > -1 ) {
		mig.value=datekonvstr(mig.value);
	}
	return true;
}

function focusfelt() {
	// Satter focus til s4 der er forste tekstfelt
	//if (navigator.appName.indexOf('Netscape') != -1) {
	if (lang=="dkbam") {
		return true;
	}

	if (lang=="dk") {
   	if (bbase=="biox") {
			//return true;
         keg=10; // noget skulle der jo staa
		}
	}

	//if (is_nav) {
		//feltf=top.sogframe.document.soglayer.document.sogform.s4;
	//} else {
		//feltf=top.sogframe.document.all.s4;
	//}
	feltf=MM_findObj('s4?sogframe');
	//if (feltf) {
		feltf.select();
		feltf.focus();
	//}
}



function sogformres(msg) {
	// Hvad gor vi nar vi resetter
	// Knappen skal ikke resette, da vi har gjort det hers
	// Hvis man resetter normalt i explore, resetter den ogsa hidden fields, f.eks. d(base) og det skal 
	// den ikke

  	// Tjek browser og sat rigtigt layer og form
       if (is_nav) {
            sform=top.sogframe.document.soglayer.document.sogform;
            dform=top.sogframe.document.soglayer.document.dbform;
       } else {
            sform=top.sogframe.document.all.sogform;
            dform=top.sogframe.document.all.dbform;
      }
	// Fast sogning resettes, aht til ekstern tjekkes om det er popup og kun da resettes
	if (sform.s3.type=="select-one") {sform.s3.selectedIndex=0};
	if (sform.s7.type=="select-one") {sform.s7.selectedIndex=0};
	if (sform.s8.type=="select-one") {sform.s8.selectedIndex=0};
	
	// Feltpopup resettes
	if (sform.pg4) {sform.pg4.selectedIndex=0;}
	if (sform.pg5) {sform.pg5.selectedIndex=0;}
	if (sform.pg6) {sform.pg6.selectedIndex=0;}

	// De 3 tekstfelter resettes, hvis de 2 er hidden skal den ikke sattes til 0
	if ( sform.s5.type=="hidden" && sform.s6.type=="hidden") {
		sform.s4.value=" ";
	} else {
		sform.s4.value=" ";
		sform.s5.value="";
		sform.s6.value="";
	} 

	// Sat focus til sogform
   parent.focusfelt('');

	// Hvis kaldt fra formen skal den returnere false, sa formen ikke resetter	
	if ( msg == "resetknap" ) { return false }
}

function vbase(dbnm) { //v2.0
        // Sat den valgte base
        if (is_nav) {
                sform=top.sogframe.document.soglayer.document.sogform;
                dform=top.sogframe.document.soglayer.document.dbform;
        } else {
                sform=top.sogframe.document.all.sogform;
                dform=top.sogframe.document.all.dbform;
        }

	tl=dform.dbnml.checked;
	tk=dform.dbnmk.checked;
	ta=dform.dbnma.checked;


        // Sat basen til cheked
	switch (dbnm) {
		case "live" :
			if (tl) { dform.dbnml.checked=false } else { dform.dbnml.checked=true };
			break;
		case "kvar" :
			if (tk) { dform.dbnmk.checked=false } else { dform.dbnmk.checked=true };
			break;
		case "araw" :
			if (ta) { dform.dbnma.checked=false } else { dform.dbnma.checked=true };
			break;
	}
	// Kald dbvalg funktion der gor resten
	sbase('');
}
