
var aMaxLength = new Array(14,14,14,14,14);  //The max length of the individual inputs
var iMaxInput = 14;  //The largest max length
var iNumTagRows = 5;  //The number of rows that exists for the tags



var tmpFld;

function getObjRef(id) {
  if(document.getElementById) { return document.getElementById(id); }
  if(document.all) { return document.all[id]; }
}

function valchar(field) {
var valid = " &'(-).,/=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\""
var ok = "yes";
var temp;
for (var i=0; i<field.value.length; i++) {
temp = "" + field.value.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
alert("Husk kun 0-9, A-Z, og symbolerne & ' ( - ) . , / \" ");
tmpFld=field;
setTimeout("tmpFld.focus();",1);
setTimeout("tmpFld.select();",1);
   }
}



function chk(form,tbox)
{
 count=0;
 for(var i=0; i < form.elements.length; i++)
 {
  if (form.elements[i].type == "text" && form.elements[i].value!="")
  {
   count++;
   if(count>11 && tbox.value==""){tbox.disabled=true;}
   else
   {
    for(var z=0; z < form.elements.length; z++)
    {
     if (form.elements[z].type == "text"){form.elements[z].disabled=false;}
    }
   }
  }
 }
}


function make_spaces(n)
{
   /*This function makes the spaces, I made it a new function to tidy things up*/
   spaces = ""
   for (i=0; i<no_spaces; i++)
     {
      spaces += " "
   }
   return spaces
}

function centre(tagText)
{
   /*This function centres the element all the elements which have been sent in its parameters*/
   //no_spaces = iMaxInput;
   for(var x=1;x<=iNumTagRows;x++)
   {
      var rtn = document.getElementById(tagText + x);
      rtn.value = trimWhitespace(rtn.value);
      current_length = rtn.value.length;
      temp_no_spaces = Math.floor((iMaxInput-current_length)/2);
      no_spaces = (iMaxInput<temp_no_spaces)?iMaxInput:temp_no_spaces;

      new_text = make_spaces() + rtn.value;
      rtn.value = new_text;
   }
  textToImages(tagText);
}



function un_centre(tagText)
{
   /*This function un-centres the element all the elements which have been sent in its parameters*/
   for(var x=1;x<=iNumTagRows;x++)
   {
      var rtn = document.getElementById(tagText + x);
      text = rtn.value;
      word_start=0;
      for (i=text.length; i>=0; i--)
      {
         if (text.charCodeAt(i) != 32)
         {
            word_start = i;
         }
      }
      new_text = text.substr(word_start);
      rtn.value = new_text;
   }
  textToImages(tagText);
}

function clearTagFields(tagText)
{
   for(var x=1;x<=iNumTagRows;x++)
   {
      var rtn = document.getElementById(tagText + x);
      rtn.value = "";
      lineStrs[tagText + x]='';
   }
  textToImages(tagText);
}



function checkLength(e,obj,n)
{
  var iKey;
  if(window.event) {
    iKey = window.event.keyCode;
  } else {
    iKey = e.which;
  }

   if((iKey==8)||(iKey==9)||(iKey==64)||(iKey==37)||(iKey==39)||(iKey==17)||(iKey==18)||(iKey==45))
   {
       return true;
   }
   else
   {
      if(obj.value == '')
        return true;
      else
      {
        //var s = stripInitialWhitespace(obj.value);
        var s = obj.value;
        if(obj.value.length >= n)
          return false;
      }
   }
}



var whitespace = " \t\n\r";

function trimWhitespace (s)
{
   var trimmedString = "";

   trimmedString = stripInitialWhitespace (s);
   trimmedString =   stripTrailingWhitespace (trimmedString);

   return trimmedString;
}

function stripInitialWhitespace (s)
{   
   var i = 0;
    while ((i < s.length) && charInString (s.charAt(i), whitespace))
       i++;   
    return s.substring (i, s.length);
}

function charInString (c, s)
{   for (i = 0; i < s.length; i++)
    {   if (s.charAt(i) == c) return true;
    }
    return false
}



function stripTrailingWhitespace (s)
{   
   var i = s.length - 1;
    while ((0 < i) && charInString (s.charAt(i), whitespace))
       i--;

    return s.substring (0, i + 1);
}

 function trim(str){
   return str.replace(/^\s*|\s*$/g,"");
}
function dataexists(theform)
{
 if (trim(theform.txt11.value) == "" && trim(theform.txt12.value) == "" && trim(theform.txt13.value) == "" && trim(theform.txt14.value) == "" && trim(theform.txt15.value) == "")
 {
  alert( "Please fill in at least one line in Tag 1" );
  return false;
 } 
//add second group here
 else if (trim(theform.txt21.value) == "" && trim(theform.txt22.value) == "" && trim(theform.txt23.value) == "" && trim(theform.txt24.value) == "" && trim(theform.txt25.value) == "") { 
    alert( "Please fill in at least one line in Tag 2" ); 
    return false; 
  }
//end second group
 else
 {
  if (document.all||document.getElementById)
  {
   for (i=0;i<theform.length;i++)
   {
    var tempobj=theform.elements[i]
    if(tempobj.type.toLowerCase()=="submit"||tempobj.type.toLowerCase()=="reset")
    {
     tempobj.disabled=false;
    }
   }
    return true;
  }
 }
}



function restrictChars(el) {
  var num = el.name.match(/\d+/)[0];
  var x;
  if(num>20) x=num-21;
  else if(num>10) x=num-11;

  var val = el.value.toUpperCase().substring(0,aMaxLength[x]);
  var val1 = val;
  val = val.replace(/[^\sA-Za-z0-9\&\'\"\(\)\/\*\.,-]/g,'');
//alert(val1+'\n'+val)
  el.value = val;
}
function textToImages(section) {
  if(section=='txt3') {
    textToImages('txt1');
    textToImages('txt2');
  }
  if(section == 'txt1' || section == 'txt2') {
    //var time1=new Date()
    //time1 = time1.getTime()*1 + time1.getMilliseconds()*1;
    for(var i=1;i<=iNumTagRows;i++) {
      textToImage(section+i)
    }
    //var time2=new Date();
    //time2 = time2.getTime()*1 + time2.getMilliseconds()*1;
    //var time3=time2-time1;
    //alert('runtime: '+time3+' ms')
  }
}
var IE =(document.all && !window.opera)?1:0;
var DOM1 =(document.createElement && document.appendChild)?1:0;
function textToImage(el) {
  if(typeof el == "string") el = document.orderForm2.elements[el];

  if((el.value != '') && (lineStrs[el.name] == el.value.toUpperCase())) {
    return true;
  } else { 
    //alert('textToImage(el)\n\n"'+lineStrs[el.name]+'"\n\n"'+el.value+'"')
    lineStrs[el.name] = el.value.toUpperCase();
  }

  var num = el.name.match(/\d+/)[0];
  var snum;
  if(num>20) snum=num-21;
  else if(num>10) snum=num-11;
  var str = '',charName='',altTxt='',nimg,curchar,temp;

  var val = el.value.toUpperCase().substring(0,aMaxLength[snum]);
  var vali = el.value.substring(0,aMaxLength[snum]);
  var res = getObjRef('targ'+num);
		
		//tilføjet af RAF
//var valid = " &'(-)*.,/+?!~abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\"";
	var badchar = "+?!~:æøåÆØÅ´éè|ëê<>*";
	var tempi;
	for (var i=0; i<badchar.length; i++) {
	tempi = "" + badchar.substring(i, i+1);
	  if (val == tempi || vali == tempi) { 
    		alert("Husk kun 0-9, A-Z, og symbolerne & ' ( - ) . , / \" ");
	      exit();
	  }
 	}
 	
  if(document.removeChild && res.removeChild && !IE) {
    if(res.firstChild.nodeType != 3 || res.firstChild.nodeValue != ' ') {
      temp = document.createTextNode(' ');
      res.insertBefore(temp,res.firstChild);
    }
    while(res.hasChildNodes() && res.childNodes.length > 1) {
      res.removeChild(res.lastChild);
    }
  } else if(res.innerHTML) {
    res.innerHTML = '&nbsp;';
  }
  for(var i=0;i<val.length;i++) {
    charName = val.charAt(i);
    switch(charName) {
      case ' ': charName = "SPACE";break;
      case '&': charName = "AMP";break;
    //  case '?': charName = "QUESTION";break;
    //  case '*': charName = "STAR";break;
      case '/': charName = "FORWARDSLASH";break;
      case "'": charName = "APOS";break;
      case '"': charName = "DBLQUOTE";break;
      case '.': charName = "DOT";break;
      case ',': charName = "COMMA";break;
    //  case '!': charName = "EXCLAMATION";break;
    //  case '~': charName = "TILDE";break;
    //  case '+': charName = "PLUS";break;
      case '-': charName = "HYPHEN";break;
      case '(': charName = "LEFTPARENS";break;
      case ')': charName = "RIGHTPARENS";break;
      // case ':': charName = "COLON";break;
    //  case '@': charName = "AT";break;
      case '=': charName = "EQUAL";break;
    //  case '$': charName = "DOLLAR";break;
    //  case '%': charName = "PERCENT";break;
    //  case '#': charName = "POUND";break;
      case ';': charName = "SEMICOLON";break;
    }
    curchar = val.charAt(i);
    altTxt=(curchar=='"')?"&quot;":(curchar==' ')?"space":curchar;
    if(DOM1 && !IE) {
      nimg = document.createElement('IMG');
      res.appendChild(nimg); //see if cloneNode() would speed it up. 
      nimg.alt = altTxt;
      nimg.src = './letters/specialtroops/'+charName+'.jpg';
      //nimg.title = '';
    } else if(res.innerHTML) {
      str += '<img src="./letters/specialtroops/'+charName+'.jpg" alt="'+altTxt+'" />';
      res.innerHTML = str;
    }
  }
  return true;
}
var charImgs=new Array();
function preloadCharImages() {
  if(!document.images) return;
  var imgNames=new Array('A','B','C','D','E','F','G','H','I','J','K','L','M',
    'N','O','P','Q','R','S','T','U','V','W','X','Y','Z','0','1','2','3','4','5',
    '6','7','8','9','SPACE','DOT','AMP','QUESTION','STAR','FORWARDSLASH','APOS',
    'COMMA','DBLQUOTE','EXCLAMATION','TILDE','PLUS','HYPHEN','LEFTPARENS',
    'RIGHTPARENS','COLON','AT','EQUAL','DOLLAR','PERCENT','POUND','SEMICOLON'); //,'','',''
  for(var k=0;k<imgNames.length;k++) {
    charImgs[k]=new Image();
    charImgs[k].src = './letters/specialtroops/'+imgNames[k]+'.jpg';
  }
}
var lineStrs = new Object();
window.onload = function() {

  var flds = new Array(11,12,13,14,15,21,22,23,24,25);
  var el;
  //document.form1.onsubmit = function() { restrictChars(this) };
  for(var i=0;i<10;i++) {
    el = document.orderForm2.elements['txt'+flds[i]];
    lineStrs['txt'+flds[i]] = '';


    el.onchange = function() { restrictChars(this); textToImage(this) };

    if(typeof el.onkeypress != null) {
      //el.onkeypress = function() { textToImage2(this) };
      el.onkeyup = function() { textToImage(this) };
      //el.onkeydown = function() { textToImage(this) };
    }
    //if(typeof el.onpaste != null) el.onpaste= function() { textToImage(this) };

  }
  textToImages('txt3');
  preloadCharImages();
}



