
function showHint(id) {
  if(document.getElementById)
    //document.getElementById(id).style.visibility = "visible";
    document.getElementById(id).className = "itemhintactive";
}

function hideHint(id) {
  if(document.getElementById)
    //document.getElementById(id).style.visibility = "hidden";
    document.getElementById(id).className = "itemhint";   
}

function showElement(id) {
 if(document.getElementById)
   document.getElementById(id).style.visibility = "visible";
}

function hideElement(id) {
 if(document.getElementById)
   document.getElementById(id).style.visibility = "hidden";
}



overlayVisible = false;

function switchOverlay(idOverlay, idButton, moreinfotext, lessinfotext, root_path) {
  if(document.getElementById) {
  	if (overlayVisible == true) {
      document.getElementById(idOverlay).style.visibility = "hidden";
      document.getElementById(idButton).src = root_path + "images/icons/moreinfo_small.gif";
      document.getElementById(idButton).alt = moreinfotext;
    }
    else {
      document.getElementById(idOverlay).style.visibility = "visible";
      document.getElementById(idButton).src = root_path + "images/icons/lessinfo_small.gif";
      document.getElementById(idButton).alt = lessinfotext;      
    }
    overlayVisible = !overlayVisible;    
  }	
}



// form validation

function validateElement(element,style_error,style_noerror)
{
  var retval = true;
  if (document.getElementsByName(element)[0].value == "") {
    document.getElementsByName(element)[0].style.setAttribute("border", style_error, false);
    retval = false;
  } else {
    document.getElementsByName(element)[0].style.setAttribute("border", style_noerror, false);    
  }
  return retval;
}

function validateEmailAddress(element, allowed_empty, style_error,style_noerror) {
  var retval = true;
  
  var email_pattern = /^[-_a-z0-9]+(\.[-_a-z0-9]+)*([+%][-_a-z0-9]+)*@[^\.\\/?#]+(\.[^\.\\/?#]+)*\.[a-z]{2,6}$/i;

  if ((allowed_empty) && (document.getElementsByName(element)[0].value == "")) {
  	  document.getElementsByName(element)[0].style.setAttribute("border", style_noerror, false);    
  } else {
    if (document.getElementsByName(element)[0].value.match(email_pattern)) {
      document.getElementsByName(element)[0].style.setAttribute("border", style_noerror, false);
    } else {
      document.getElementsByName(element)[0].style.setAttribute("border", style_error, false);
      retval = false;
    }
  }
  return retval;
}  


function validateFieldValueIdentity(element1, element2, ignore_case, style_error,style_noerror) {
  var retval = true;

  var elem1 = document.getElementsByName(element1)[0].value;
  var elem2 = document.getElementsByName(element2)[0].value;
  
  if (ignore_case == true) {
    elem1 = elem1.toLowerCase();
    elem2 = elem2.toLowerCase();
  } 
  
  if (elem1 != elem2) {
    document.getElementsByName(element1)[0].style.setAttribute("border", style_error, false);
    document.getElementsByName(element2)[0].style.setAttribute("border", style_error, false);
    retval = false;
  } else {
    document.getElementsByName(element1)[0].style.setAttribute("border", style_noerror, false);    
    document.getElementsByName(element2)[0].style.setAttribute("border", style_noerror, false);        
  }
  return retval;
}  


function validateForm(lang, arr_elements, email_allowed_empty, email1, email2) {
  var retval = true;
  var style_error = "2px solid red";
  var style_noerror = "2px solid green";
 
  for(var i = 0; i < arr_elements.length; i++) {
    if (!validateElement(arr_elements[i],style_error,style_noerror)) {
      retval = false;
    }
  } 
  
  if (!validateEmailAddress(email1, email_allowed_empty, style_error, style_noerror)) {
    retval = false;
  } else {
  	// nur validieren, wenn Emailadresse korrekt validiert wurde, 
  	// weil sonst der Fehler in der Emailadresse überschrieben wird
    if (!validateFieldValueIdentity(email1, email2, true, style_error, style_noerror)) {
  	  retval = false;
  	}
  }
  
  if (retval == false) {
    if (lang == "de") {
	  text = "Ihre Eingaben sind unvollständig oder nicht korrekt!";
	} else {
	  text = "Your input is incomplete or not correct!";
	}
	alert(text);
  }
  return retval;
}

function validateFormTischreservierungen(lang) {
  var arr_elements = new Array("form_name", "form_telefon", "form_personenzahl", "form_datum", "form_uhrzeit");
  var email_allowed_empty = false;
  var email1 = "form_email";
  var email2 = "form_email2";
  return validateForm(lang, arr_elements, email_allowed_empty, email1, email2);
}

function validateFormArrangementanfragen(lang) {
  var arr_elements = new Array("form_name", "form_strasse", "form_ort", "form_land", "form_telefon", "form_personenzahl", "form_anreisetag");
  var email_allowed_empty = false;
  var email1 = "form_email";
  var email2 = "form_email2";
  return validateForm(lang, arr_elements, email_allowed_empty, email1, email2);
}

function validateFormZimmeranfragen(lang) {
  var arr_elements = new Array("form_name", "form_strasse", "form_ort", "form_land", "form_telefon", "form_personenzahl", "form_anreisetag", "form_abreisetag");
  var email_allowed_empty = false;
  var email1 = "form_email";
  var email2 = "form_email2";
  return validateForm(lang, arr_elements, email_allowed_empty, email1, email2);
}




// JavaScript functions for social bookmark sites

	/* Function for Displaying Platform Title */
	function displayBookmark(text){
		myDiv = document.getElementById('bookmark');
		myDiv.innerHTML = text;
	}
	/* Function for Add to Facebook */
	function fbs_click() {
		u=location.href;
		t=document.title;
		window.open("http://www.facebook.com/sharer.php?u="+encodeURIComponent(u)+"&t="+encodeURIComponent(t),"sharer","toolbar=0 ,status=0,width=626,height=436");
		return false;
	}
	/* Function for Add to MySpace */
	function GetThis(T, C, U, L){
			var targetUrl = "http://www.myspace.com/Modules/PostTo/Pages/?"+"t="+encodeURIComponent(T)+"&c="+encodeURIComponent(C)+"&u="+encodeURIComponent(U)+"&l="+L;
			window.open(targetUrl);
		}
	/* Function for adding to browser favorites */
	function AddFavorite(){
			if(navigator.appName != "Microsoft Internet Explorer"){
				window.external.addPanel('Märchenhotel','http://www.maerchenhotel.com/', '')
			} else {
				window.external.addFavorite(location.href, 'Märchenhotel');
			}
		}


  function openSocial() {
		var sb=document.getElementById('socialbookmarks');
		if (sb) {
			//var sbt=document.getElementById('socialbookmarkstext');
			
			if (sb.style.display=='none') {
				sb.style.display='';
				//sbt.innerHTML="Schließen";
			} else {
				sb.style.display='none';
				//sbt.innerHTML="Social Bookmarks";
			}
		}
	}
