//------- java functions  -------------------
// common feedback forms

var sRedirect='/emailthanks.htm';
var sErrorPage='/emailerror.htm';
var sLang='en';

function checklength(obj,maxLen) {
 var s=obj.value;
 if (s.length > maxLen)
   obj.value = s.substring(0, maxLen);
}
function checkemail(obj) {
 var fltr = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 if (obj.value!='') {
   var reg=/ /;
   while(reg.exec(obj.value)){
     obj.value = obj.value.replace(reg,"");
   }
   if (fltr.test(obj.value)) {
      return true;
   }
 }
 return false;
}
function checkphone(obj) {
 if (obj.value=='') return false;
 var s=obj.value;
 if (s.length<7) return false;
 var i;
 for (i=0; i < s.length; i++) {
   var c = s.charAt(i);
   if ( ((c < '0') || (c > '9')) && (c!='+')) return false;
 }
 return true;
}

function setfocus(obj,select) {
  obj.focus();
  if (select) {
     var l=obj.value.length;

     if(typeof obj.selectionStart != 'undefined') { /* Gecko,Mozilla*/
       obj.selectionStart=0;
       obj.selectionEnd = l;
     } else if(typeof document.selection != 'undefined') {  /* Internet Explorer */
         var range = obj.createTextRange();
         var m = range.moveEnd("textedit");
         range.select();
     }
  }
}
function ifs(st, obj, se) {
  var sc='';
  if (obj) {
    if (obj.value!='') {
      sc=st+obj.value+se;
    }
  }
  return sc;
}

function filter_special(s) {
  s=s.replace(/\</g," < "); // <
  s=s.replace(/\>/g," > "); // >

  s=s.replace(/&/g,"%26");  // &
  s=s.replace(/#/g,"%23");  // #
  s=s.replace(/\+/g,"%2B"); // +

  return s;
}

function handle_ticket(e) {
 var sl=' \n--------------------\n ';
 var s='/Support/open.php?topicId=1';
 s+='&name=' + e['UserName'].value;
 s+='&email=' + e['eMail'].value;
 s+='&phone=' + e['UserPhone'].value;
 s+='&source=eMail';

 if ( (GetNavLang() == 'GERMAN') || (sLang && (sLang == 'de')) ) {
   s+='&language=2'; //German
 } else {
   s+='&language=1'; //English
 }

 var susbj=ifs('',e['UserSubject'],'');
 var sswd='';
 var supd='';

 if (e['ProductName']) { // support

   sswd='Product: '+ e['ProductName'].value+', SerialNo: '+ e['ProductSN'].value+', Version: '+e['ProductVersion'].value+', Operating System: '+e['ProductOS'].value + ifs(', WNR: ',e['WNR'],'') + '\n\n';

   if (e['UserProblem'] && (e['UserProblem'].value!='')) {

     if (susbj=='') susbj=e['UserProblem'].value;

     supd += 'Problem/Issue:' + sl + e['UserProblem'].value;
     if (e['UserProblemSteps'] && (e['UserProblemSteps'].value!='')) {
       supd += '\n\nSteps:' + sl + e['UserProblemSteps'].value;
     }
   }

 }

 if (susbj=='') susbj='-none-'; // must not be empty

 susbj=filter_special(susbj);

 s+='&subject=' + susbj;


 var sMsg=sswd + supd;

 sMsg+= ifs('',e['UserComments'],'');

 var suczs=ifs(',',e['UserCity'],'')+ifs(',',e['UserZip'],'')+ifs(',',e['UserState'],'');

 sMsg+='\n'+sl+e['UserName'].value + ifs(',',e['UserCompany'],'')+','+ ifs('',e['UserDepartment'],'') + ifs(',',e['UserAddress'],'') + suczs + ifs(',Tel:',e['UserPhone'],'') + ifs(',Fax:',e['UserFax'],'');

 if (e['subject']) {
   var s1=e['subject'].value;
   var p=s1.lastIndexOf('-');
   if (p>=0) {
     sMsg+='\n-' + s1.substring(p+1,s1.length) + '-';
   }
 }
 sMsg=filter_special(sMsg);

 s+='&message=' + sMsg;

 s+='&submit_x=Open Ticket';
 s+='&attachment=&formredirect=';
 if (e['redirect'].value=='') {
   s += sRedirect;
 } else {
   s += e['redirect'].value;
 }

 //popUp(encodeURI(s), 800, 800, 10,10);

 e['redirect'].value = encodeURI(s);

//alert(e['redirect'].value);
}

UTF8 = {
        encode: function(s){
                for(var c, i = -1, l = (s = s.split("")).length, o = String.fromCharCode; ++i < l;
                        s[i] = (c = s[i].charCodeAt(0)) >= 127 ? o(0xc0 | (c >>> 6)) + o(0x80 | (c & 0x3f)) : s[i]
                );
                return s.join("");
        },
        decode: function(s){
                for(var a, b, i = -1, l = (s = s.split("")).length, o = String.fromCharCode, c = "charCodeAt"; ++i < l;
                        ((a = s[i][c](0)) & 0x80) &&
                        (s[i] = (a & 0xfc) == 0xc0 && ((b = s[i + 1][c](0)) & 0xc0) == 0x80 ?
                        o(((a & 0x03) << 6) + (b & 0x3f)) : o(128), s[++i] = "")
                );
                return s.join("");
        }
};


function checkTelFax(obj) {
 var bres=true;
 if (obj && (obj.value!='')) {
   bres=checkphone(obj);
   if (bres==false) {
     if (sLang=='de') {
        alert(unescape('Bitte geben Sie eine g%FCltige Telefonnummer mit mind. 7 Ziffern (0,1..9)!'));
     }else{
        alert('Please provide a valid phone number with min. 7 digits (0,1..9)!');
     }
     setfocus(obj,true);
   }
 }
 return bres;
}
function checkEmail(obj) {
 var bres=true;
 if (obj.value!='') {
    bres=checkemail(obj);
    if (bres==false) {
      if (sLang=='de') {
        alert(unescape('Bitte geben Sie eine g%FCltige eMail Adresse ein!'));
      }else{
        alert('Please provide a valid eMail address!');
      }
      setfocus(obj,true);
    }
 }
 return bres;
}
function checkvals() {
 var e=document.forms[0].elements;
 var bres=true;

 bres=checkEmail(e['eMail']);

 if (bres) {
   bres=checkTelFax(e['UserPhone']);
 }
 if (bres) {
   bres=checkTelFax(e['UserFax']);
 }

 if (bres) {
   var obj=e['required'];
   var berr=false;

   if (obj) {
     var sa=obj.value.split(',');
     for (var i=0; i<sa.length; i++) {
        var elobj=e[sa[i]];
        if (elobj == null) {
          berr=true;
        } else {
          if (elobj.value=='') berr=true;
        }

        if (berr) {
          if (sLang=='de') {
             alert(unescape('Eine Eingabe wird in diesem Feld ben%F6tigt !'));
          } else {
             alert('A required input is missing!');
          }
          setfocus(elobj,true);
          return false; // end loop, return
        }
     } // for
   } // if
 }

 if ((bres==true) && e['Ticket']) {
   handle_ticket(e);
 }

 return bres;
}