//reset a form with security check
function resetFunction (string) {
  var chk = window.confirm(string);
  return (chk);
}
function getSelectedItemfromSelectBox(id){
	var obj = document.getElementById(id).options[document.getElementById(id).selectedIndex];
	return obj;
}
//open a new page by clicking the link
function popuplink(sender) {
   window.open(sender.href,'popper',"scrollbars=yes, toolbar=yes,resizable=yes");
   return false;
}
//ask for confirmation the action
function userConfirm(message){
 return window.confirm(message);
}
function displayHide(id) {
    var obj = document.getElementById(id);
    if(obj.style.display){
    	obj.style.display = (obj.style.display == 'none' ? 'block' : 'none');
    }else{
   		obj.style.display = 'none';
    }
}
function cleanValue(sender){
	sender.value = '';
	return false;
}
//delete all empty chars from start and end of the string
function trim(str) {
  return(str.replace(/\s+/g," ").replace(/\s+$/,"").replace(/^\s+/,""));
}
// generate a random Password
function generatePassword(id) {
	var string_length = 8;
	var upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var lower = "abcdefghijklmnopqrstuvwxyz";
	var num = "0123456789";
	var special = "!§$%&/=?*#+-";

	var chars = upper + lower + num + special;
	var all = new Array(upper, lower, num, special);

	var randomstring = new Array();

	var j = 0;
	var tmp = '';

	// add one of each types of digits
	for(i = 0; i < all.length; i++){
		j = Math.floor(Math.random() * all[i].length);
		randomstring.push(all[i].substring(j, j + 1));
	}

	// fill with totally random digits till string_length is reached
	while(randomstring.length < string_length){
		j = Math.floor(Math.random() * chars.length);
		randomstring.push(chars.substring(j, j + 1));
	}

	// shuffle result
	for (i = 0; i < randomstring.length; i++){
		j = Math.round(Math.random() * (randomstring.length - i - 1)) + i;
		tmp = randomstring[i];
		randomstring[i] = randomstring[j];
		randomstring[j] = tmp;
	}

	document.getElementById(id).value = randomstring.join("");
}
//if focus not an input field block enter key else not
function blockEnter(event){

  var f=document.getElementById('basicForm');

  if(f.addEventListener)
  {
    f.addEventListener("focus",cancel,true);
    if(event.target.nodeName.toLowerCase() == "input"){
    	return false;
    }else{
    	return true;
    }
  }
  else if(f.attachEvent)
  {
    for(i=0;i<f.childNodes.length;i++){
    	if(event.srcElement.nodeName.toLowerCase() == "input"){
    		return false;
    	}else{
    		return true;
    	}
    }
  }
}
function cancel(event)
{
  return false;
}
//return the keycode of pressed key
function getKeyCode(e){
  var keyCode = window.event ? e.keyCode : e.which;
  if(keyCode == 13){
  	return blockEnter(e);
  }else{
  	return keyCode;
  }
}
//check e-mail
function checkEmail(email) {
	var proto  = "(mailto:)?";
	var usr    = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
	var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
	var regex  = "^" + proto + "?" + usr + "\@" + domain + "$";

	var rgx    = new RegExp(regex);
	return rgx.exec(email) ? true : false;
}
function validateEmail(id,language){
	var email = document.getElementById(id).value;
	if(!checkEmail(email)){
		var error_msg = '';
		switch (language) {
		  case "DE":
		    error_msg = "E-Mail Adresse leider ungültig!";
		    break;
		  case "EN":
		    error_msg = "Invalid e-mail adress!";
		    break;
		}
		document.getElementById(id).value = '';
		AddClassName(id, 'errorInput');
		alert(error_msg);
		document.getElementById(id).focus();
		return false;
	}
	return true;
}

function checkList(id,language){
	var isSelected = document.getElementById(id).options.selectedIndex;
  	if(isSelected != -1){
	    obj = getSelectedItemfromSelectBox(id);;
	    name = obj.innerHTML;
	    return true;
  	}else{
    	switch (language) {
		  case "DE":
		    alert('Bitte wählen Sie ein Name aus!')
		    break;
		  case "EN":
		    alert('Please selected a name!')
		    break;
		}
    	return false;
  	}
}
function myTip(arg,text,saison)
{
    switch(arg)
    {
    case "ballon":
        return Tip(text, BALLOON, true, ABOVE, true, OFFSETX, -10, WIDTH, 250, TEXTALIGN, 'justify', FADEIN, 600, FADEOUT, 600, PADDING, 8)
    case "tip":
        return Tip(text, SHADOW, true);
    case "centeralways":
        return Tip(text, TITLE, "Zentriert", CENTERWINDOW, true, CENTERALWAYS, true, STICKY, true, CLOSEBTN, true, WIDTH, 300);
    case "followscroll":
        return Tip(text, TITLE, saison, STICKY, true, FOLLOWSCROLL, true, CLOSEBTN, true, WIDTH, 300);
    }
}
