﻿// JScript File
function resizeWnd (table, status) {
	var statusHeight = 0;
	var headerHeight = 45;
	var widthConstant = 30;
	
	if (status == true) {
		statusHeight = 20;
	}
	if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
		window.resizeTo(table.clientWidth + widthConstant, table.clientHeight + headerHeight + statusHeight);
	}
	else {
		window.outerHeight = table.clientHeight + headerHeight + statusHeight;
		window.outerWidth = table.clientWidth + widthConstant;
	}
}

function imposeMaxLength(Object, MaxLen) {
 var result = (Object.value.length <= MaxLen);
 if (Object.value.length > MaxLen)
 {
 Object.value=Object.value.substr(0,MaxLen);
 }
  return result;
}


function CheckDateValue(pDateStr) {
  if (!IsDateValid(pDateStr)) {
    ShowMsgDateNotValid();
    return false;
  }
  return true;
}


function CheckEmailValue(pEmailStr, bSilent) {
  if (!IsEmailValid(pEmailStr)) {
    if (!bSilent) {ShowMsgEmailNotValid();}
    return false;
  }
  return true;
}

function IsEmailValid(pEmailStr) {
  if (pEmailStr == "") return true;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(pEmailStr);
}


function CheckZIPValue(pZIPStr, bSilent) {
  if (!IsZIPValid(pZIPStr)) {
    if (!bSilent) {ShowMsgZIPNotValid();}
    return false;
  }
  return true;
}


function IsZIPValid(pZIPStr) {
  if (pZIPStr == "") return true;
	var filter  = /(^[a-zA-Z]{0,2} ?-? ?\d{4,7}$)/;
	return filter.test(pZIPStr);
}


function CheckPhoneValue(pPhoneStr, bSilent) {
  if (!IsPhoneValid(pPhoneStr)) {
    if (!bSilent) {ShowMsgPhoneNotValid();}
    return false;
  }
  return true;
}


function CheckFaxValue(pPhoneStr, bSilent) {
  if (!IsPhoneValid(pPhoneStr)) {
    if (!bSilent) {ShowMsgFaxNotValid();}
    return false;
  }
  return true;
}


function IsPhoneValid(pPhoneStr) {
  if (pPhoneStr == "") return true;
	var filter  = /(^\+?[0-9 -]*(\([0-9]+\))?[0-9 -]+$)/;
	return filter.test(pPhoneStr);
}


function IsRangeValid(pRangeStr) {
    var ok = true;
    if (pRangeStr=="") return ok;
    pRangeStr = pRangeStr.replace(" ","");
    var s = pRangeStr.split(",");
    reg1 = "^([0-9]+)$";
    reg2 = "^([0-9]+-[0-9]+)$";
    var re1 = new RegExp(reg1);
    var re2 = new RegExp(reg2);
    for (var i=0; i< s.length; i++) {
//        alert(s[i]+ " ar1=" + re1.exec(s[i]) + ", ar2=" + re2.exec(s[i]));
		var ar1 = re1.exec(s[i]);
		var ar2 = re2.exec(s[i]);
    	if (!ar1 && !ar2) ok=false;
        }
    return ok;
}


function CheckRangeValue(pDatesStr) {
   if (!IsRangeValid(pDatesStr)) {
    ShowMsgRangeNotValid();
    return false;
  }
  return true;
}


function IsDateValid (pDateStr) {
	var regex;
	var day;
	var month;
	var year;
	var monthArr = new Array("", "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC");

  if (Trim(pDateStr) == "") { return true; }
	
	for (i = 1; i <= 3; i++) {
		switch (i) {
			case 1:
				//mm/dd/yyyy
				regex = "^ *([0-9]{1,2})/([0-9]{1,2})/([0-9]{2}|[0-9]{4}) *$"
				break;
	
			case 2:
				//dd.mm.yyyy
				regex = "^ *([0-9]{1,2})[.]([0-9]{1,2})[.]([0-9]{2}|[0-9]{4}) *$"
				break;
	
			case 3: 
				//dd-mmm-yyyy  (len Anglictina, cize JAN,  FEB, etc.)
				regex = "^ *([0-9]{1,2})-([a-zA-Z]{3})-([0-9]{2}|[0-9]{4}) *$"
				break;
	
			default:
				break;
		}
	
		var re = new RegExp(regex);
		var ar = re.exec(pDateStr);
		if (ar) {
			switch (i) {
				case 1:
					//mm/dd/yyyy
					month = ar[1];
					day = ar[2];
					year = ar[3];
					break;
		
				case 2:
					//dd.mm.yyyy
					day = ar[1];
					month = ar[2];
					year = ar[3];
					break;
		
				case 3: 
					//dd-mmm-yyyy  (len Anglictina, cize JAN,  FEB, etc.)
					day = ar[1];
					month = 0;
					for (j = 1; j <= 12; j++) {
						if (monthArr[j] == ar[2].toUpperCase()) { 
							month = j;
							break;
						}
					}
					year = ar[3];
					break;
		
				default:
					break;
			}

			if (year.length == 2) {
				var tmpDate1 = new Date();
				var tmpshortyear = "" + tmpDate1.getFullYear();
				year = "" + tmpshortyear.substr(0,2) + year;
				if (1 * tmpshortyear < 1 * year - 50) { 
					year = 1 * year - 100; 
				} else if (1 * tmpshortyear > 1 * year + 50) { 
					year = 1 * year + 100;  
				}
			}
			
			var tmpDate = new Date(1 * year, month - 1, day)
			var tmpday = tmpDate.getDate();
			var tmpmonth = tmpDate.getMonth() + 1;
			var tmpyear = tmpDate.getFullYear();

			return (tmpday == day) && (tmpmonth == month) && (tmpyear == year);
		}
	}

  return false;
}


function CheckNumberValueByValidator(pValidatorId, pMsgId, pMinValue, pMaxValue) {
  try {
    var obj;
    obj = document.getElementById(pValidatorId);
    if (obj.style.display == "inline") {
      obj.style.display = "none";
      switch (pMsgId) {
        case 1:
          ShowMsgNumberMustBeGreater(pMinValue);
          break;
	
        case 2:
          ShowMsgNumberMustBeSmaller(pMaxValue);
          break;
        
        case 3:
          ShowMsgNumberMustBeBetween(pMinValue,pMaxValue);
          break;

        default:
          ShowMsgNumberNotValid();
          break;
	    }
      return false;
    }
  } catch (e) {}
  return true;
}


function Trim(TRIM_VALUE) {
  if(TRIM_VALUE.length < 1) {
    return "";
  }
  TRIM_VALUE = RTrim(TRIM_VALUE);
  TRIM_VALUE = LTrim(TRIM_VALUE);
  if(TRIM_VALUE=="") {
    return "";
  }
  else {
    return TRIM_VALUE;
  }
} //End Function


function RTrim(VALUE) {
  var w_space = String.fromCharCode(32);
  var v_length = VALUE.length;
  var strTemp = "";
  
  if(v_length < 0){
    return"";
  }
  var iTemp = v_length -1;

  while(iTemp > -1){
    if(VALUE.charAt(iTemp) == w_space) {
    } else{
      strTemp = VALUE.substring(0,iTemp +1);
      break;
    }
    iTemp = iTemp-1;
  } 
  return strTemp;
} //End Function


function LTrim(VALUE) {
  var w_space = String.fromCharCode(32);

  if (v_length < 1) {
    return"";
  }

  var v_length = VALUE.length;
  var strTemp = "";
  var iTemp = 0;

  while(iTemp < v_length) {
    if(VALUE.charAt(iTemp) == w_space) {
    } else {
      strTemp = VALUE.substring(iTemp,v_length);
      break;
    }
    iTemp = iTemp + 1;
  } 
  return strTemp;
} //End Function


function refocus(id) {
  var obj;
  obj = document.getElementById(id);
  obj.focus();
}


function findPosX(obj)
{
  var curleft = 0;
  if (obj.offsetParent)
  {
    while (obj.offsetParent)
    {
	    curleft += obj.offsetLeft
	    obj = obj.offsetParent;
    }
  }
  else if (obj.x)
    curleft += obj.x;
  return curleft;
}

function findPosY(obj)
{
  var curtop = 0;
  if (obj.offsetParent)
  {
    while (obj.offsetParent)
    {
	    curtop += obj.offsetTop
      //alert("offsetParent " + obj.id + " " + obj.offsetTop + " " + curtop);
	    obj = obj.offsetParent;
    }
  }
  else if (obj.y)
    curtop += obj.y;
    //alert("x " + obj.id + " " + obj.y + " " + curtop);
  return curtop;
}


function ignoreEnterKeyDown(ev) 
{
  if (ev.which) {
    try {
      if (ev.which==13) { ev.returnValue=false; return false; }
    } catch (e) {}
  } else {
    try {
      if (window.event.keyCode==13) { window.event.stopPropagation=true; window.event.cancelBubble=true; return false; }
    } catch (e) {}
  }
}


//--- zev - higlight menu
sfHover = function() {
  try{
  	var sfEls = document.getElementById("nav").getElementsByTagName("LI");
  
	  for (var i=0; i<sfEls.length; i++) {
		  sfEls[i].onmouseover=function() {
			  this.className+=" sfhover";
		  }
		  sfEls[i].onmouseout=function() {
			  this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		  }
	  }
  }
  catch (e) {}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
//--- zev - higlight menu


//--- arl code for hidding email----------------------------------//
//---  use this:   //
//     <script type="text/javascript">document.write(GetEMailLink('support','netzmedien.ch'));</script>//

function GetEMailLink(name,domain)
{
return "<a href=\"" + GetEMail(name,domain,true) + "\">" + GetEMail(name,domain) + "</a>";
}

function GetEMail(name,domain,withMailto)
{
var string1 = name;
var string2 = domain;
var string3 = "@";
var completeString = string1 + string3 + string2;
var resultString = "";
if (withMailto == true){
     resultString="mailto:";
   }
resultString += hex_from_chars(completeString);
return resultString;
}

function hex_from_chars(inputString)
{
	var char_str = inputString;
	var delimiter = "";
	var hex_str = "";
	var i, n;
	for(i=0; i < char_str.length; i++) {
		n = charToByte(char_str.charAt(i));
		if(n != 0) {
			if(i > 0) hex_str += delimiter;
			hex_str += "%" + byteToHex(n);
		}
	}
	return hex_str;
	//return isNothing(hex_str, theForm, "theForm.hex.value = str");
}

var charArray = new Array(
	' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-',
	'.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';',
	'<', '=', '>', '?', '@', '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', '[', '\\', ']', '^', '_', '`', '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', '{', '|', '}', '~', '', 'Ç', 'ü',
	'é', 'â', 'ä', 'à', 'å', 'ç', 'ê', 'ë', 'è', 'ï', 'î', 'ì', 'Ä', 'Å',
	'É', 'æ', 'Æ', 'ô', 'ö', 'ò', 'û', 'ù', 'ÿ', 'Ö', 'Ü', 'ø', '£', 'Ø',
	'×', 'ƒ', 'á', 'í', 'ó', 'ú', 'ñ', 'Ñ', 'ª', 'º', '¿', '®', '¬', '½',
	'¼', '¡', '«', '»', '_', '_', '_', '¦', '¦', 'Á', 'Â', 'À', '©', '¦',
	'¦', '+', '+', '¢', '¥', '+', '+', '-', '-', '+', '-', '+', 'ã', 'Ã',
	'+', '+', '-', '-', '¦', '-', '+', '¤', 'ð', 'Ð', 'Ê', 'Ë', 'È', 'i',
	'Í', 'Î', 'Ï', '+', '+', '_', '_', '¦', 'Ì', '_', 'Ó', 'ß', 'Ô', 'Ò',
	'õ', 'Õ', 'µ', 'þ', 'Þ', 'Ú', 'Û', 'Ù', 'ý', 'Ý', '¯', '´', ', ','±',
	'_', '¾', '¶', '§', '÷', '¸', '°', '¨', '·', '¹', '³', '²', '_', ' ');

var hex_digits = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
		'A', 'B', 'C', 'D', 'E', 'F');


function charToByte(c)
{
	var i;
	for(i=0; i < charArray.length; i++) {
		if(c == charArray[i]) return i+32;
	}
	return 0;
}

function byteToHex(n)
{
	return hex_digits[(n >> 4) & 0xf] + hex_digits[n & 0xf];
}