function alertTest(s) {
	alert(s);
}


function trim(s) {
  if (s != null) {
    while (s.substring(0, 1) == ' ')
      s = s.substring(1, s.length);
    while (s.substring(s.length-1, s.length) == ' ')
      s = s.substring(0, s.length-1);    
  }
  return s;
}


function getSearchParams(listScript, tabName) {
  var ret = "";  
  
  var inputAr = document.getElementById(tabName).getElementsByTagName("input");
  var searchCond = "";
  for (i = 0; i < inputAr.length; i++) {
    if (inputAr[i].type != "button" && inputAr[i].name.indexOf('_to') == -1) {
      if (inputAr[i].value != null && inputAr[i].value != "") {
      	if (searchCond != "")
          searchCond += ",";
                  
        if (inputAr[i].name.indexOf('_from') > -1) // from-to
          searchCond += inputAr[i].name.split('_')[0] + " between '" + encodeURI(inputAr[i].value) + "' and '" + encodeURI(inputAr[i+1].value)+"'";
        else // like        
        if (inputAr[i].value.indexOf('%') > -1)
          searchCond += inputAr[i].name + " like '" + encodeURI(inputAr[i].value)+"'";
        else
          searchCond += inputAr[i].name + "='" + encodeURI(inputAr[i].value)+"'";
      }
    }
  }
  
  var selectAr = document.getElementById(tabName).getElementsByTagName("select");
  var orderCond = "";
  for (i = 0; i < selectAr.length; i++) {
  	if (selectAr[i].value != null && selectAr[i].value != "") {
      if (orderCond != "")
  	  	orderCond += ",";
  	  orderCond += selectAr[i].value;      
  	}
  }
  
  ret = setUrlParam(listScript, "search", "["+searchCond+"]");
  if (orderCond != "")
    ret += setUrlParam(ret, "order", orderCond);
  
  return ret;
}

function search(listScript) {
  open(getSearchParams(listScript, "tabSearch"), "_self");
}



/* url-utils BEGIN */
function setUrlParam(url, param, value) {
  var urlParts = url.split("?");
  if (urlParts.length == 1)
    return url + "?" + param + "=" + value;
  
  var params = urlParts[1].split("&");
  for (i=0; i < params.length; i++) {
    var paramAr = params[i].split("=");
    if (paramAr[0] == param) {
      paramAr[1] = value;
      params.splice(i,1,paramAr[0]+"="+paramAr[1]);
      return urlParts[0]+"?"+params.join("&");
    }
  }
  return url + "&" + param+"="+value;
}


function delUrlParams(url, params) {
  for(i=0; i < params.length; i++)
    url = delUrlParam(url, params[i]);
  return url;
}


function delUrlParam(url, param) {
  var urlParts = url.split("?");
  if (urlParts.length == 1)
    return url;  
  var params = urlParts[1].split("&");
  for (i=0; i < params.length; i++) {
    var paramAr = params[i].split("=");
    if (paramAr[0] == param) {
      params.splice(i,1);
      return urlParts[0]+"?"+params.join("&");
    }
  }
  return url;
}
/* url-utils END */



function openPopup(url, width, height) {
  var windowProps = "title=false, resizable=yes, scrollbars=yes, status=yes";
  if (width != null && height != null)
    windowProps += ",width="+width+",height="+height;
  window.open(url, "", windowProps);
}


function openPopupPos(url, width, height, left, top) {
	var browser = getBrowserType();
  var windowProps = "toolbar=no, location=no, resizable=yes, scrollbars=yes, status=yes";
  if (width != null && height != null)
    windowProps += ",width="+width+",height="+height;
  if (left != null && top != null)
    windowProps += ",left="+left+",top="+top;
  
  var popup = window.open(url, "", windowProps);
  if (browser == "ie")
  	popup.moveTo(left, top);
  	
  return popup;
}


function openPopupClose(url, width, height) {
  var browser = getBrowserType();
  if (browser == "ie") {  	
    openPopupPos(url, width, height, event.screenX, event.screenY);    
  }
  else
	  if (browser == "opera")
	    return openPopupPos(url, width, height, event.pageX, event.pageY+36);    
	  else
	    return openPopupPos(url, width, height, window.screenX + 200, window.screenY + 200);
}


function openPopupCenter(url, width, height) {	
	var browser = getBrowserType();
	var left;
	var top;
	if (browser == "ie") {
		left = window.screenLeft + (document.body.offsetWidth/2 - width/2);
		top = window.screenTop + (document.body.offsetHeight/2 - height/2);				
	} else {
		left = window.screenX + (window.outerWidth/2 - width/2);
		top = window.screenY + (window.outerHeight/2 - height/2);
	}	
	return openPopupPos(url, width, height, left, top);	
}



function setFrameSrc(frameid, value) { 
  document.getElementById(frameid).src = value;
}


function setSelectOptions(selectId, attrValues, selectValue) {
  var values = attrValues[selectValue];
  var selectElem = document.getElementById(selectId);
  var lbElem = document.getElementById("lb"+selectId);
  
  selectElem.options.length = 0;
  
  if (values != undefined) {
    selectElem.className = "visible";
    lbElem.className = "required";
    var valuesAr = values.split(",");    
    for (i = 0; i < valuesAr.length; i++) {
      var option = new Option(valuesAr[i], valuesAr[i], false, false);
      selectElem.options[selectElem.options.length] = option;
    }    
  } else {    
    selectElem.className = "invisible";
    lbElem.className = "";    
  }
}


/* form utils BEGIN */
function getElem(id) {
  return document.getElementById(id);
}


function clearFormElem(id) {
  getElem(id).value = "";
}


function clearForm(formId, focusId, invisibleElemIds) {
  var form = document.getElementById(formId);
  form.reset();  
  getElem("errormsg").innerHTML = "&nbsp;";
   
  if (focusId != '')
    getElem(focusId).focus();
    
  if (invisibleElemIds != null) {
    invisibleElemIdAr = invisibleElemIds.split(",");
    for (var i=0; i < invisibleElemIdAr; i++) {
      var elem = getElem(invisibleElemIdAr[i]);
      elem.className = "invisible";
    }
  }
}


function chkValue(value, regexp) {  
  if (value != null && regexp != null && regexp != "")
    return value.search(regexp) > -1;
  return value != null && trim(value) != "";
}


function chkFormElem(lbElem) {
  var formElem = getElem(lbElem.htmlFor);
  
  if (formElem.className != "invisible") {
    if (!chkValue(formElem.value, lbElem.getAttribute("regexp", false))) {
      return lbElem.innerHTML.split(":")[0]; 
    }  
  }
  return "ok";
}


function chkForm(errorMsg, invalidMsg) {
  var lbAr = document.getElementsByTagName("label");
  var fieldsToFill = "";
  var chkRes = "";

  for (var i=0; i < lbAr.length; i++) {
    var lbElem = lbAr[i];
    
    if (lbElem.htmlFor != null && lbElem.htmlFor != "") {      
      if (lbElem.className == "required") {
        chkRes = chkFormElem(lbElem);
        if (chkRes != "ok") {
          if (fieldsToFill != "")
            fieldsToFill += ", " + chkRes;
          else
            fieldsToFill += chkRes;   
        }
      } else {
        var elem = getElem(lbElem.htmlFor);
        if (elem.value) {
          if (elem.value != "" && lbElem.getAttribute("regexp", false) != "") {          
            chkRes = chkFormElem(lbElem);
            if (chkRes != "ok") {
              alert(chkRes + " " + invalidMsg);
              elem.value = "";
            }
          }
        }
      }
    }
  }
  if (fieldsToFill == "") {    
    return true;
  }
  else {   
    getElem("errormsg").innerHTML = errorMsg + " " + fieldsToFill;
    return false;
  }
}
/* form utils END */



function getWingFanAddressCountryId(countryId) {  
  switch (countryId) {
    case "de": return "de";    
    case "my": return "sg";
    case "sg": return "sg";
    case "za": return "za";
    case "us":
    case "ca":
    case "mx": 
    	return "us";
    case "il": return "il";
    case "it": return "it";
    case "tr": return "tr";
    case "cn":
    case "hk":
    	return "cn";    
    case "fr": return "fr";
    case "co":
    case "ec":
    case "ve":
    case "pa":
    case "cr":
    case "pr":
      return "co";
    case "py":
    case "bo":
      return "py";
    case "gb":
    case "ie":
      return "gb";
    case "cl":
    case "pe":
    	return "cl";
    case "in":
    	return "in";
    case "0": return "";
    default: return "de";
  }  
}


// versucht den Browsertyp zu ermitteln
function getBrowserType() {
  var ie = navigator.userAgent.indexOf("MSIE") >= 0;
  var opera = navigator.userAgent.indexOf("Opera") >= 0;
  
  if (ie && !opera)
    return "ie";
  if (opera)
    return "opera";
  else
    return navigator.appName;
}



function pickDate(elemId) {
  var elem =  getElem(elemId);
  var cal = new calendar1(elem);
  cal.year_scroll = true;
  cal.time_comp = false;

  var browser = getBrowserType();  
  if (browser == "ie")
    cal.popup2("lib/tigra_calendar/", elem.value, event.screenX, event.screenY);
  else
  if (browser == "opera")
    cal.popup2("lib/tigra_calendar/", elem.value, event.pageX, event.pageY+36);
  else
    cal.popup2("lib/tigra_calendar/", elem.value, window.screenX + 200, window.screenY + 200);
}


function getKeyCode(e) {
  var browser = getBrowserType();
  if (browser == "ie")
    return event.keyCode;
  else
    return e.which;
}
