function checkLength(formname, fieldname, countfieldname, maxLength) {
  var txt = document.forms[formname].elements[fieldname].value;

  var ist = txt.length;
  var rest = maxLength - ist - 0;
  if (rest < 0) {
    document.forms[formname].elements[fieldname].value = txt.substr(0, maxLength - 0);
    rest = 0;
  }
  document.forms[formname].elements[countfieldname].value = rest;
}


function centeredPopup(mypage, myname, w, h, scroll) {
  LeftPosition = (screen.width) ? (screen.width - w) / 2 : 0;
  TopPosition = (screen.height) ? (screen.height - h) / 2 : 0;
  settings = 'height=' + h + ',width=' + w + ',top=' + TopPosition + ',left=' + LeftPosition + ',scrollbars=' + scroll + ',resizable=yes,status=no,toolbar=no,location=no';
  window.open(mypage, myname, settings);
}

function IsNumber(value) {
    if (value == '') {
        return false;
    }

  var numbers = "0123456789";
  var Char;

  for (i = 0; i < value.length; i++) {
    Char = value.charAt(i);
    if (numbers.indexOf(Char) == -1) {
      return false;
    }
  }
  return true;
}


function setBoxVisible(elementId, visible) {
  var element = document.getElementById(elementId);

  if (element) {
    if (visible) {
      element.style.display = "block";
    } else {
      element.style.display = "none";
    }
  }
}


function addEvent(element, type, func){
  if (element.addEventListener) {
    element.addEventListener(type, func, false);
    return true;
  } else if (element.attachEvent) {
    return element.attachEvent("on" + type, func);
  }
  return false;
}


function getAncestorByTagName(e, tagName) {
  tagName = tagName.toLowerCase();
  do {
    e = e.parentNode;
  } while ((e.nodeType == 1) && (e.tagName.toLowerCase() != tagName));
  return (e.nodeType == 1) ? e : null;
}


function getEventTarget(evt) {
  var event = (evt) ? evt : ((window.event) ? window.event : "");
  if (event) {
    return (event.srcElement) ? event.srcElement : event.target;
  }
  return null;
}


function setSelection(select, value) {
  if (select && value) {
    for (var i = 0; i < select.length; i++) {
      if (select[i].value == value) {
        select.selectedIndex = i;
        return;
      }
    }
    select.selectedIndex = -1;
  }
}

function toggleBoxVisible(elementId) {
  var element = document.getElementById(elementId);

  if (element) {
    if (element.style.display == "none") {
      element.style.display = "block";
    } else {
      element.style.display = "none";
    }
  }
}

function centerBox(elementId, offsetX, offsetY) {
   var element = document.getElementById(elementId);

   var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body

   // viewport left point
   var viewportLeft=document.all? iebody.scrollLeft : pageXOffset
   // viewport top point
   var viewportTop=document.all? iebody.scrollTop : pageYOffset

   if (element){
      element.style.left=parseInt(viewportLeft) + offsetX + "px";
      element.style.top=viewportTop + offsetY + "px"
   }
}


function confirmAction(message, url) {
  if(confirm(message))
    self.location=url;
}


function leftTrim(value) {
  while (value.length > 0 && value.substring(0,1) == ' ') {
    value = value.substring(1, value.length);
  }

  return value;
}

function rightTrim(value) {
  while (value.length > 0 && value.substring(value.length-1, value.length) == ' ') {
    value = value.substring(0,value.length-1);
  }
  return value;
}

function trim(stringValue) {
  stringValue = leftTrim(stringValue);
  return rightTrim(stringValue);
}

function newlineToBR(stringValue) {
  return stringValue.replace(/\n/g, '<br />');
}

function brToNewline(stringValue) {
  var answer = stringValue.replace(/<br \/>/g, '\n');
  return answer.replace(/<br>/g, '\n');
}

function containsString(array, string) {
  for (var i = 0; i < array.length; i++) {
    if (array[i] == string) {
      return true;
    }
  }
  return false;
}

function submitForm(id) {
  var form = document.getElementById(id);

  if (form) {
    form.submit();
  }
}

function PS2KW(value){
  	if (IsNumber(value)){
		document.getElementsByName('attributes(KW)')[0].value=Math.round(value * 0.735499);
	};
}
  
function KW2PS(value){
  	if (IsNumber(value)){
		document.getElementById('PS').value=Math.round(value * 1.35962);
	};
  }

function linkWithParam(link, param) {
    var target = (link.target) ? link.target : "_self";
    if (target.charAt(0) == "_") target = target.slice(1);
    if (target == "blank") open(link.href + param, "");
    else this[target].location.href = link.href + param;
    return false;
}

function setValueForEntry(select, valueArray, inputToSetId) {
	var selected = select.selectedIndex;
	var toSet = document.getElementById(inputToSetId);
	if (toSet) {
		toSet.value = valueArray[selected];
	}
}

function isEmail(email)
{
  var reg = new RegExp('^([a-zA-Z0-9\-\.\_]+)'+
                   '(\@)([a-zA-Z0-9\-\.]+)'+
                   '(\.)([a-zA-Z]{2,4})$');
  return reg.test(email);
}

function motosoTracker(accountHash, type) {
   var trackingUrl = "/api/tracker/track.api?h=" + accountHash + "&t=" + type;
   var aa = new AjaxAnywhere();
   aa.id = "motosoTracker";
   aa.showLoadingMessage = function() {};
   aa.hideLoadingMessage = function () {};
   aa.callback = function () {};
   aa.getAJAX(trackingUrl);
}

function abTracker(variate) {
   var trackingUrl = "/api/tracker/ab.api?v=" + variate;
   var aa = new AjaxAnywhere();
   aa.id = "abTracker";
   aa.showLoadingMessage = function() {};
   aa.hideLoadingMessage = function () {};
   aa.callback = function () {};
   aa.getAJAX(trackingUrl);
}