var Lng_CHFORM01 = "date must be greater than";
var Lng_CHFORM02 = "date";
var Lng_CHFORM03 = "The field";
var Lng_CHFORM04 = "must be a number";
var Lng_CHFORM05 = "that is greater than";
var Lng_CHFORM06 = "that is less than";
var Lng_CHFORM07 = "The form was not submited due to the following error(s)";
var Lng_CHFORM08 = "The followind fields must be entered:";
var Lng_CHFORM09 = "The 2 password fields do not match";
var Lng_CHFORM10 = "Password must be at least 6 characters long";
var Lng_CHFORM11 = "The form was not submited due to the following error(s)";
var Lng_CHFORM12 = "Email address seems incorrect (check @ and .'s)";
var Lng_CHFORM13 = "The username doesn't seem to be valid.";
var Lng_CHFORM14 = "Destination IP address is invalid!";
var Lng_CHFORM15 = "The domain name doesn't seem to be valid.";
var Lng_CHFORM16 = "The address must end in a three-letter domain, or two letter country.";
var Lng_CHFORM17 = "This address is missing a hostname!";
var Lng_CHFORM18 = "The url doesn't seem to be valid.";

//{LNG_VARS}
// redifinition of language-specific variables

var submitFlag = false;
function submitForm(button, frm)
{  
    if (!submitFlag) {
        submitFlag = true;
        frm.command.value = button.name;
        frm.submit();
    }

}

function submitFormA(cmd, frm)
{
    if (!submitFlag) {
       submitFlag = true;
       document.body.style.cursor = "wait";
       frm.command.value = cmd;
       frm.submit();
    }
}

function checkForm(form)
{
    var emptyFields = "";
    var errors      = "";
    var elem;
    for (var i = 0; i < form.length; i++) {
        elem = form.elements[i];
        if (elem.date != null) {
              if (elem.value > elem.date.value) {
                  errors += "- " + elem.text1 + " " + Lng_CHFORM01 + " " + elem.text2 + " " + Lng_CHFORM02 + "\n";
              }
              continue;
        }
        if ((elem.type == "text" || elem.type == "textarea" || elem.type == "hidden") && elem.required) {
            if (elem.value == null || elem.value == "" || isBlank(elem.value)) {
                emptyFields += "          " + elem.text + "\n";
                continue;
            }
        }
        if (elem.required || (!elem.required && elem.value != "")) {
            if (elem.numeric || elem.min != null || elem.max != null) {
                n = parseFloat(elem.value);
                if  (isNaN(n)
                     || (elem.min != null && (n < elem.min))
                     || (elem.max != null && (n > elem.max))) {
                    errors += "- " + Lng_CHFORM03 + " '" + elem.text + "' " + Lng_CHFORM04;
                    if ((elem.min != null) && (n < elem.min)) {
                        errors += " " + Lng_CHFORM05 + " " + (elem.min - 1);
                    } else if ((elem.max != null) && (n > elem.max)) {
                        errors += " " + Lng_CHFORM06 + " " + (elem.max + 1);
                    }
                    errors += "\n";                    
                } else {
                    elem.value = n;
                }
            } 
        } 
    }    
    if (emptyFields == "" && errors == "") {
        return true;
    } else {
        msg = Lng_CHFORM07 + "\n";
        if (emptyFields != "") {
            msg += "\n- " + Lng_CHFORM08 + "\n" + emptyFields;          
        }
        if (errors != "") {
            msg += "\n" + errors;
        }
        alert(msg);
        return false;
    }
}

function checkPasswords(password, confirm_password) 
{
    var errors = "";
    if (password.value != confirm_password.value){
        errors += "- " + Lng_CHFORM09 + "\n";
    }
    if (password.value.length < 6) {
        errors += "- " + Lng_CHFORM10 + "\n";    
    }
    if (errors != "") {
        var msg = Lng_CHFORM11 + "\n" + errors;
        alert(msg);
        return false;
    }
    return true;
        
}

function isBlank(s)
{
  // Returns true if string contains only whitespace
  var i;
  var c;

  for (i = 0; i < s.length; i++) {
    c = s.charAt(i);
    if (c != ' ' && c != '\n' && c != '\t')
      return false;
  }
  return true;
} 


function emailCheck (emailStr) 
{
    var emailPat=/^(.+)@(.+)$/;
    var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
    var validChars="\[^\\s" + specialChars + "\]";
    var quotedUser="(\"[^\"]*\")";
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom=validChars + '+';
    var word="(" + atom + "|" + quotedUser + ")";
    // The following pattern describes the structure of the user
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
    var matchArray=emailStr.match(emailPat);
    if (matchArray==null) 
    {
        alert(Lng_CHFORM12);
        return false;
    }
    var user=matchArray[1];
    var domain=matchArray[2];
    if (user.match(userPat)==null) 
    {
    // user is not valid
        alert(Lng_CHFORM13);
        return false;
    }
    var IPArray=domain.match(ipDomainPat)
    if (IPArray!=null) 
    {
    // this is an IP address
        for (var i=1;i<=4;i++) 
        {
            if (IPArray[i]>255) 
            {
                alert(Lng_CHFORM14);
                return false;
            }
        }
        return true;
    }
    var domainArray=domain.match(domainPat);
    if (domainArray==null) 
    {
        alert(Lng_CHFORM15);
        return false;
    }
    var atomPat=new RegExp(atom,"g");
    var domArr=domain.match(atomPat);
    var len=domArr.length;
    if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) 
    {
        alert(Lng_CHFORM16);
        return false;
    }
    if (len<2) 
    {
        var errStr=Lng_CHFORM17;
        alert(errStr);
        return false;
    }
    return true;
}


function formatNum(num, prec)
{
    var k = Math.pow(10, prec);
    var intPart   = Math.floor(num);
    var fractPart = num - intPart + 1;
    var rounded   = String(Math.round(fractPart * k) / k);
    var s = rounded.substr(2);  
    while (s.length < prec) {
        s += "0";
    }
    return intPart + "." + s;
}

function ltrim(str)
{
  return str.replace(/^\s+/, '');
}

function rtrim(str)
{
  return str.replace(/\s+$/, '');
}

function trim(str)
{
  return rtrim(ltrim(str));
}

function checkSelect(select, value)
{
    if(!select.disabled && select.options[select.selectedIndex].value == value)
        return true;
    return false;
}

/*
function urlCheck(url)
{
    var pattern = new RegExp("[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$", "");

    var matchArray=url.match(pattern);
    if(matchArray == null)
    {
        var str = Lng_CHFORM18;
        alert(str);
        return false;
    }
    return true;
}
*/

function confirmDelete(text)
{
    return confirm("Are you sure you want to delete " + text + "?");
}

function cutTexareaText(obj, len)
{
    if(obj.value.length > len) 
    {
        obj.value = obj.value.substring (0, len);
    }
}