function replace(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}


function dan_sql(str) {

 //fjern alle anførselstegn:
 while (str.indexOf("'")!=-1) {str=replace(str,"'","")}

 //sæt et mellemrum i slutningen:
 str=str+' '

 //fjern alle dobbeltmellemrum:
 while (str.indexOf('  ')!=-1) {str=replace(str,'  ',' ')}

 //fjern evt mellemrum på pos0
 if (str.charAt(0)==' ') {str=str.substring(1,str.length)}

 //læg alle ord og sætninger i en liste:
 var str_liste=new Array()

 var sidste=0
 var i_saetning=false
 for (var i=0;i<=str.length-1;i++) {
  if (str.charAt(i)=='"') {
   if (i_saetning) { //en saetning er slut
    i_saetning=false
    str_liste[str_liste.length]=str.substring(sidste,i)
    if (sidste>=2 && str.charAt(sidste-2)=='+') {str_liste[str_liste.length-1]='+'+str_liste[str_liste.length-1]}
    if (sidste>=2 && str.charAt(sidste-2)=='-') {str_liste[str_liste.length-1]='-'+str_liste[str_liste.length-1]}
    i=i+2
    sidste=i
   }
   else { //en saetning begynder
    i_saetning=true
    sidste=i+1
   }
  }
  if (!i_saetning && str.charAt(i)==' ') {str_liste[str_liste.length]=str.substring(sidste,i);sidste=i+1}
 }

 //dan sql:
 var sql_str="SELECT * FROM sogning_carlsen WHERE "

 //dan sql:
 var brugte_ord=0

 //find alle +ord og +sætninger, sæt dem op med AND imellem:
 for (var i=0;i<=str_liste.length-1;i++) {
  if (str_liste[i].charAt(0)=='+') {
   sql_str=sql_str+"InStr(sog,'"+str_liste[i].substring(1,9999)+"')>0"
   brugte_ord++
   if (brugte_ord<str_liste.length) {sql_str=sql_str+" AND "}
  }
 }

 //find alle -ord og -sætninger, sæt dem op med AND imellem:
 for (var i=0;i<=str_liste.length-1;i++) {
  if (str_liste[i].charAt(0)=='-') {
   sql_str=sql_str+"InStr(sog,'"+str_liste[i].substring(1,9999)+"')<1"
   brugte_ord++
   if (brugte_ord<str_liste.length) {sql_str=sql_str+" AND "}
  }
 }

 //resten af ord og sætninger, sættes op med OR imellem:
 if (brugte_ord<str_liste.length) {
  sql_str=sql_str+"("
  for (var i=0;i<=str_liste.length-1;i++) {
   if (str_liste[i].charAt(0)!='-' && str_liste[i].charAt(0)!='+') {
    sql_str=sql_str+"InStr(sog,'"+str_liste[i]+"')>0"
    brugte_ord++
    if (brugte_ord<str_liste.length) {sql_str=sql_str+" OR "}
   }
  }
  sql_str=sql_str+")"
 }

 //returner sql-strengen:
 return sql_str

}

function ok_knap(aThis){
 
 var valgt_afdeling='';
// var valgt_afdeling=aThis.form.elements.afd.options[document.forms[0].elements.afd.selectedIndex].value
 //
 var valgt_streng=aThis.elements.streng.value;
 if (valgt_streng=='') {
   alert('Ingen søgeord indtastet!');
   return false 
 }

 
 
 // hele sætning
 if (aThis.elements.soegform.value=='++') { valgt_streng='"'+valgt_streng+'"' }
 // alle ord
 if (aThis.elements.soegform.value=='+') { 
   var NewStr=''
   for (var i=0;i<=valgt_streng.length-1;i++) {
    if (valgt_streng.charAt(i)==' ') {  
     NewStr=NewStr+' +' 	
    } else {
     NewStr=NewStr+valgt_streng.charAt(i);	
    }
   }
   valgt_streng=NewStr;
 }

 valgt_streng=escape(dan_sql(top.replace(valgt_streng,"'","&#39;")))
 
 // kort eller lang liste 
 var kortListeBool=true;
 if (aThis.elements.soegeside) { kortListeBool=aThis.elements.soegeside[0].checked ? true : false }
 if (kortListeBool) {
  top.fMain.frames.document.location.href="/butik/vare_liste_kort.asp?afd="+valgt_afdeling+"&streng="+valgt_streng+"&SoegOrd="+aThis.elements.streng.value
 } else {
  top.fMain.frames.document.location.href="/butik/vare_liste_lang.asp?afd="+valgt_afdeling+"&streng="+valgt_streng+"&SoegOrd="+aThis.elements.streng.value
 }
 return false
}

