var vpInit='0';
function fixViewport() {
	if (vpInit=='0') {
		document.getElementsByTagName('body')[0].style.width='';
		document.getElementsByTagName('body')[0].firstChild.setAttribute('class', '');
                document.getElementsByTagName('body')[0].firstChild.setAttribute('id', 'bodytag');
		document.getElementsByTagName('body')[0].firstChild.style.width='';
	}
}

//part for the newsticker
function exchangeTicker(_id, _replacements){
	setInterval("replace('"+_id+"','"+_replacements+"')", 5000);
}

var counter = 0;
function replace(_id, _replacements){
	var replacementArray = _replacements.split('XYX');
	var replaceNode = document.getElementById(_id);
	var obj = replaceNode.getElementsByTagName('a')[0];

	//exchange the href
	for(i=0; i<obj.attributes.length; i++){
		if(obj.attributes.item(i).nodeName=='href' || obj.attributes.item(i).nodeName=='HREF'){
			obj.attributes.item(i).nodeValue =  replacementArray[counter%replacementArray.length];
		}
	}
	//exchange the link-text
	obj.innerHTML = replacementArray[counter%replacementArray.length+1];
	counter=counter+2;
}

function estimateLocation(){
    navigator.geolocation.getCurrentPosition(insertLocation, insertLocationError, {enableHighAccuracy:true});
}
function insertLocation(position) {
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;
    var form = document.getElementById('ySearch');

    var inputs = document.getElementsByTagName('input');
    for(i=0; i<inputs.length; i++){
        var inp = inputs[i];
        if(inp.name=='lng'){
            inp.value= longitude;
        }
        if(inp.name=='lat'){
            inp.value= latitude;
        }
        if(inp.name=='where'){
            inp.value= '';
        }
    }

    var resultDiv = document.createElement("div");
    resultDiv.id = 'posResult';
    resultDiv.appendChild(document.createTextNode("Ihre Position wurde erfolgreich bestimmt!"));
    resultDiv.appendChild(document.createElement("br"));
    resultDiv.appendChild(document.createTextNode("Länge: "+longitude));
    resultDiv.appendChild(document.createElement("br"));
    resultDiv.appendChild(document.createTextNode("Breite: "+latitude));
    resultDiv.appendChild(document.createElement("br"));
    resultDiv.appendChild(document.createTextNode("Die Positionsbestimmung wird ignoriert, wenn Sie im Formular einen Ort/PLZ eingeben!"));
    var posResult = document.getElementById('posResult');
    if(posResult){
        posResult.parentNode.replaceChild(resultDiv, posResult);
    }else{
        form.appendChild(resultDiv);
    }

    var posEstimation = document.getElementById('posEstimation');
    if(posEstimation){
        posEstimation.replaceChild(document.createTextNode("Klicken Sie bitte hier um die Position zu aktualisieren!"), posEstimation.firstChild)
    }
}

function insertLocationError(error){
    var errorTxt;
    if(error.code==1){
        errorTxt = 'Bitte aktivieren Sie die Standortbestimmung in den Sicherheiteinstellungen Ihres Browsers und versuchen Sie es danach erneut!';
    }else {
        errorTxt = 'Es ist ein Fehler bei der Bestimmung der Position aufgetreten! Bitte versuchen Sie es ernaut oder geben Sie Ihre Adresse manuell ein.';
    }


    alert(errorTxt);
}

// function will clear input elements on each form
function clearForm(){
  // declare element type
  var type = null;
  // loop through forms on HTML page
  for (var x=0; x<document.forms.length; x++){
    // loop through each element on form
    for (var y=0; y<document.forms[x].elements.length; y++){
      // define element type
      type = document.forms[x].elements[y].type
      // alert before erasing form element
      //alert('form='+x+' element='+y+' type='+type);
      // switch on element type
      switch(type){
        case "text":
        case "textarea":
        case "password":
        case "hidden":
          document.forms[x].elements[y].value = "";
          break;
        case "radio":
        case "checkbox":
          document.forms[x].elements[y].checked = "";
          break;
        case "select-one":
          document.forms[x].elements[y].options[0].selected = true;
          break;
        case "select-multiple":
          for (z=0; z<document.forms[x].elements[y].options.length; z++){
            document.forms[x].elements[y].options[z].selected = false;
          }
        break;
      }
    }
  }
}
function removePosResult(){
    var posResult = document.getElementById('posResult');
    if(posResult){
        postResult.getParent.removeChild(posResult);
    }
}
