var mail_exists = false;

/*
 * JS in_array
 */
function in_array(item, arr) {

  for(p=0;p<arr.length;p++) {

    if (item == arr[p]) {

      return true;
    }
  }
  return false;
}

/**
 * Versucht, den Benutzer anzumdelen
 *
 * @author sweber
 */
function doLogin() {

  new Ajax.Updater('loginpartial', '/system/login', {asynchronous:true, evalScripts:true, parameters:Form.serialize('loginform')});
  return false;
}

/**
 * Meldet einen Benutzer ab
 *
 * @author sweber
 */
function doLogout() {

  document.location.href = '/system/logout';
}

/**
 * Zeigt die Passwortvergessenseite an
 *
 * author sweber
 */
function forgotPassword() {

  document.location.href = '/system/resendPassword';
}

/**
 * Pr�ft, ob alle Pflichtfelder gef�llt worden sind
 *
 * @author sweber
 */
function doValidateForm(checkMail, omit_form) {

  var mandatory = document.getElementById('mandatory').value;
  if (mandatory != "") {
	  mandatory     = mandatory.split(',');
	
	  var count          = 0;
	  var missing        = false;
	  var missing_fields = new Array();
	
	  for (count; count < mandatory.length; count++) {
	
	    var element = document.getElementById(mandatory[count]);
	    var label;
	    if (mandatory[count] == 'ort') 
	    	label = 'lpostleitzahl';
	    else if (mandatory[count] == 'land') 
	    	label = 'lpostleitzahl';
	    else if (mandatory[count] == 'ort_shop') 
	    	label = 'lpostleitzahl_shop';
	    else if (mandatory[count] == 'nachname') 
	    	label = 'lvorname';
	    else if (mandatory[count] == 'email2') 
	    	label = 'lemail';
	    else if (mandatory[count] == 'handynummer') 
	    	label = 'ltelefonnummer';
	    else if (mandatory[count] == 'staatsangehoerigkeit') 
	    	label = 'lfamilienstand';
	    else if (mandatory[count] == 'note_schulabschluss') 
	    	label = 'lschulabschluss';
	    else if (mandatory[count] == 'nachname') 
	    	label = 'lvorname';
	    else if (mandatory[count] == 'nachname') 
	    	label = 'lvorname';
	    else
	    	label = 'l'+mandatory[count];
		label      = document.getElementById(label);
		
	    element.style.border = '1px solid #D2D4D6';
	    if (label != null)
	    	label.style.color    = '#000000';
	
	    if(element.type == 'selectOne') {
	
	      if(element.options[element.options.selectedIndex].value == '') {
	
	        missing        = true;
	        missing_fields.push(mandatory[count]);
	        element.style.border = '1px solid #ff0000';
	        if (label != null)
	    		label.style.color    = '#ff0000';
	      }
	    } else if(element.type == 'checkbox') {
	
	      if(element.checked == false) {
	
	        missing              = true;
	        missing_fields.push(mandatory[count]);
	        element.style.border = '1px solid #ff0000';
	        if (label != null)
	    		label.style.color    = '#ff0000';
	      }
	    } 
	    else if (mandatory[count] == "geburtsdatum") {
	      if ((element.value).length != 10) {
		      missing        = true;
		      missing_fields.push(mandatory[count]);
		      element.style.border = '1px solid #ff0000';
		      if (label != null)
	    		label.style.color    = '#ff0000';
	      }
	      else {
		      var tag = (element.value).substr(0, 2);
		      var point1 = (element.value).substr(2, 1);
		      var monat = (element.value).substr(3, 2);
		      var point2 = (element.value).substr(5, 1);
		      var jahr = (element.value).substr(6, 4);
		      
		      if (point1 != "." || point2 != "." || tag.length != 2 || !isInteger(tag) || monat.length != 2 || !isInteger(monat) || jahr.length != 4 || !isInteger(jahr)) {
		      	missing        = true;
		      	missing_fields.push(mandatory[count]);
		      	element.style.border = '1px solid #ff0000';
		      	if (label != null)
	    			label.style.color    = '#ff0000';
		      }
		  }
	    } else {
	
	      if(element.value == '') {
	
	        missing        = true;
	        missing_fields.push(mandatory[count]);
	        element.style.border = '1px solid #ff0000';
	        if (label != null)
	    		label.style.color    = '#ff0000';
	      }
	    }
	  }
	}

  if(checkMail == true) {

    if(checkMailSame() == false || mail_exists) {

      missing = true;
    }
  }

  if(missing == true) {

    document.getElementById('message').style.display = 'block';
    return false;
  } else {

    document.getElementById('message').style.display = 'none';
  }

  if(!omit_form) {

	if (document.getElementById('submitBtn') != null && document.getElementById('submitBtn') != undefined) {
		document.getElementById('submitBtn').style.display = "none";
		document.getElementById('save_status').style.display = "block";
		 
		document.getElementById('form').submit();
		
		document.getElementById('save_status').innerHTML = "Datei wird hochgeladen...<br>";
	}
	else {
		document.getElementById('form').submit();
	}
	    
  } else {

    return true;
  }
}

function isInteger(s) {
	return (s.toString().search(/^-?[0-9]+$/) == 0);
}

/**
 * Pr�ft, ob die Email - Best�tigung �bereinstimmen
 *
 * @author sweber
 */
function checkMailSame() {

  var email  = document.getElementById('email');
  var label  = document.getElementById('lemail');
  var email2 = document.getElementById('email2');
  var label2 = document.getElementById('lemail');

  email.style.border  = '1px solid #D2D4D6';
  label.style.color   = '#000000';
  email2.style.border = '1px solid #D2D4D6';
  label2.style.color  = '#000000';

  if((email.value != email2.value) || email.value == '' || mail_exists) {

    checkValid(email,  'email');
    checkValid(email2, 'email');

    email.style.border  = '1px solid #ff0000';
    label.style.color   = '#ff0000';
    email2.style.border = '1px solid #ff0000';
    label2.style.color  = '#ff0000';
    return false;
  } else {

    checkValid(email,  'email');
    checkValid(email2, 'email');
    return true;
  }
}

/**
 * Pr�ft, ob der Inhalt eines Feldes valide ist
 *
 * @author sweber
 */
function checkValid(input, type, mandatory) {

  var wert   = input.value;
  var label  = (input.name == 'ort') ? 'lpostleitzahl' : 'l'+input.name;
  if (label == "lemail2") label = "lemail";
  label      = document.getElementById(label);
  var error  = false;

  if(wert.length == 0 && mandatory == true) {

    error = true;
  }

  switch(type) {

    case "radio":

      if(input.checked == 0) {

        error = true;
      }
      break;

    case "text":

      break;

    case "postleitzahl":
      // PLZ sind idR 5 Ziffern
      if(wert.length != 5) {
        error = true;

      }

      var Allowed = '0123456789';
      var Pos = 0;

      for (Pos; Pos < wert.length; Pos++) {
        if (Allowed.indexOf(wert.charAt(Pos)) == -1){

          error = true;

        }
      }

      break;

    case "email":

      var a = false;
      var res = false;
      // testen, ob regexp korrekt unterst�tzt werden
      if(typeof(RegExp) == 'function') {
        var b = new RegExp('abc');
        if(b.test('abc') == true){
          a = true;

        }
      }

      if(wert.length){
        if(a == true) {
          reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                           '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                           '(\\.)([a-zA-Z]{2,4})$');
          res = (reg.test(wert));

        } else {
          res = (wert.search('@') >= 1 &&
                 wert.lastIndexOf('.') > wert.search('@') &&
                 wert.lastIndexOf('.') >= wert.length-5);

         }
         error = !res;
       }

       break;

    case "telefon":

      // Es d�rfen nur die folgenden Zeichen verwendet werden
      var Allowed = '0123456789 /-+()';
      var Pos = 0;

      for (Pos; Pos < wert.length; Pos++) {
        if (Allowed.indexOf(wert.charAt(Pos)) == -1){

          error = true;

        }
      }
      break;

    case 'date':

      var error = true;
      var monat = wert.split(".")[1];
      var tag   = wert.split(".")[0];
      var jahr  = wert.split(".")[2];

      var datum = new Date(jahr, monat-1, tag);

      if ( (datum.getMonth() + 1 != monat) ||
            (datum.getDate() != tag) ||
            (datum.getFullYear() != jahr)) {

        error = true;
      } else {

        error = false;
      }

      break;
  }

  if(error == true) {

    input.style.border = '1px solid #ff0000';

    if(label) {

	    label.style.color  = '#ff0000';
    }
  } else {

    input.style.border = '1px solid #D2D4D6';

    if(label) {

	    label.style.color  = '#000000';
    }
  }
}

/**
 * markiert fehlende Felder
 *
 * @author sweber
 */
function markMissing() {

  var missing = document.getElementById('missing').value;

  if(missing != '') {

    missing     = missing.split(',');
    var count   = 0;

    for (count; count < missing.length; count++) {

      document.getElementById(missing[count]).style.border    = '1px solid #ff0000';
      document.getElementById('l'+missing[count]).style.color = '#ff0000';
    }
  }
}

/**
 * de- / selektiert Niederlassungen bei einer Initiativbewerbung
 *
 * @author sweber
 */
function handleNiederlassung(niederlassung) {

  new Ajax.Updater('niederlassungsliste', '/bewerben/ajaxHandleNiederlassung/'+niederlassung, {asynchronous:true, evalScripts:true});
}

/**
 * �berpr�ft ein Datum auf validit�t
 *
 * @author sweber
 */
function checkdate(value){

  var format = /^\d{2}\:\d{2}\:\d{4}$/;
  var ret    = false;

  if (format.test(value)) {

    var monat = input.value.split(".")[1];
    var tag   = input.value.split(".")[0];
    var jahr  = input.value.split(".")[2];

    var datum = new Date(jahr, monat-1, tag);

    if ( (datum.getMonth() + 1 != monat) ||
          (datum.getDate() != tag) ||
          (datum.getFullYear() != jahr)) {

      ret = false;
    } else {

      ret = true;
    }
  }

  return ret;
}


/**
 * Pr�ft, ob alle Fragen in einer Analyse gef�llt worden sind
 *
 * @author sweber
 */
function doValidateFormAnalyse() {

  var mandatory = document.getElementById('mandatory').value;
  mandatory     = mandatory.split(',');

  var count          = 0;
  var missing        = false;
  var missing_fields = new Array();

  for (count; count < mandatory.length; count++) {

    var list    = document.getElementsByName(mandatory[count]);
    var checked = false;

    var number  = document.getElementById('quest_number_' + mandatory[count]);
    var element = document.getElementById('quest_quest_' + mandatory[count]);

    number.style.color  = '#000000';
    element.style.color = '#000000';

    for(radio_count = 0; radio_count < list.length; radio_count++) {

      if(list[radio_count].checked == true) {

        checked = true;
      }
    }

    if(!checked) {

      number.style.color  = '#ff0000';
      element.style.color = '#ff0000';
      missing             = true;
    }
  }

  if(missing == true) {

    document.getElementById('message').style.display = 'block';
    return false;
  } else {

    document.getElementById('message').style.display = 'none';
    document.getElementById('form').submit();
  }
}

/**
 * setzt eine Analysefrage wieder auf schwarze Schrift, nachdem sie beantwortet worden ist.
 */
function setQuestMarked(id) {

  var number  = document.getElementById('quest_number_frage_' + id);
  var element = document.getElementById('quest_quest_frage_' + id);

  number.style.color  = '#000000';
  element.style.color = '#000000';
}

/**
 * pr�ft, ob eine E-Mail-Adresse bereits vergeben ist
 *
 * @author sweber
 */
function checkMailExists() {

  new Ajax.Updater('mailtest', '/bewerben/checkMailExists', {asynchronous:true, evalScripts:true, parameters:Form.serialize('form')});
  
}

/**
 * f�gt eine leere Zeile f�r Karrieresteo bei Vodafone zu einer Bewerbung hinzu
 *
 * @author sweber
 */
function addKarrierepunkt() {

	new Ajax.Updater('karriere', '/bewerben/ajaxAddKarrierezeile', {asynchronous:true, evalScripts:true, parameters:Form.serialize('form')});
}

/**
 * l�scht einen Karrierestep
 *
 * @author sweber
 */
function deleteKarrierepunkt(id) {

	new Ajax.Updater('karriere', '/bewerben/ajaxDeleteKarrierezeile/'+id, {asynchronous:true, evalScripts:true, parameters:Form.serialize('form')});
}

/**
 * Zeigt eine Eingabemaske f�r die Anstellungsart je nach Stellenart an
 *
 * @author sweber
 */
function checkAnstellungsart(stellenart, vollzeit) {

	vollzeit = (vollzeit == '') ? 0 : vollzeit;

	new Ajax.Updater('anstellungsart', '/bewerben/ajaxUpdateZeittyp/'+stellenart+'/'+vollzeit, {asynchronous:true, evalScripts:true});
}

/**
 * Verlangt eine Best�tigung zum l�schen eines Downloads
 *
 * @author sweber
 */
function confirmBewerberDownloadDelete(dokument_id, titel) {

	var text = '<br /><br />Sind Sie sicher, dass Sie den Download <strong>"'+ titel +'"</strong><br />';
	text     =  text + 'unwiederruflich l&ouml;schen wollen?<br /><br /><br />';
	text     =  text + '<input type="button" class="txtbtn" value="ja"    style="float: left;" onclick="top.dateien.location.href = \'/bewerber/deleteDokument/' +dokument_id+ '\';Modalbox.close();">';
	text     =  text + '<input type="button" class="txtbtn" value="nein" style="float: right;" onclick="Modalbox.close();">';

	top.Modalbox.show(text, {title: 'Download wirklich l&ouml;schen?', width: 400, height: 200});
}

/**
 * Funktion zum Öffnen / Schließen der Pressetexte der Franchiseseite
 * 
 * @author skillinger
 */
function showText(blockNr) {
	document.getElementById('presse_prev_' + blockNr).style.display = "none";
	document.getElementById('presse_' + blockNr).style.display = "block";
	document.getElementById('presse_btn_' + blockNr).innerHTML = "<a href=\"javascript:hideText('" + blockNr + "');\" class=\"arrw_mint\" title=\"Artikel zuklappen\">Schließen</a>";
}

/**
 * Funktion zum Öffnen / Schließen der Pressetexte der Franchiseseite
 * 
 * @author skillinger
 */
function hideText(blockNr) {
	document.getElementById('presse_prev_' + blockNr).style.display = "block";
	document.getElementById('presse_' + blockNr).style.display = "none";
	document.getElementById('presse_btn_' + blockNr).innerHTML = "<a href=\"javascript:showText('" + blockNr + "');\" class=\"arrw_mint\" title=\"Lesen Sie diesen Artikel\">Lesen</a>";
}

function checkEMail2() {
	if (document.getElementById('email2').value == "E-Mail wiederholen") {
		document.getElementById('email2').style.color = "#000000";
		document.getElementById('email2').value = "";
	}
	else if (document.getElementById('email2').value == "") {
		document.getElementById('email2').style.color = "#a4a6a8";
		document.getElementById('email2').value = "E-Mail wiederholen";
	}
}

function checkGeb() {
	if (document.getElementById('geburtsdatum').value == "Beispiel: 05.08.1975") {
		document.getElementById('geburtsdatum').style.color = "#000000";
		document.getElementById('geburtsdatum').value = "";
	}
	else if (document.getElementById('geburtsdatum').value == "") {
		document.getElementById('geburtsdatum').style.color = "#a4a6a8";
		document.getElementById('geburtsdatum').value = "Beispiel: 05.08.1975";
	}
}

function checkUpload(elem) {
	if (elem == "0") {
		if (document.getElementById('upload_titel_' + elem).value == "Lebenslauf (PDF oder DOC) *") {
			document.getElementById('upload_titel_' + elem).style.color = "#000000";
			document.getElementById('upload_titel_' + elem).value = "";
		}
		else if (document.getElementById('upload_titel_' + elem).value == "") {
			document.getElementById('upload_titel_' + elem).style.color = "#a4a6a8";
			document.getElementById('upload_titel_' + elem).value = "Lebenslauf (PDF oder DOC) *";
		}
	}
	else {
		if (document.getElementById('upload_titel_' + elem).value == "Ggf. weitere Anlagen") {
			document.getElementById('upload_titel_' + elem).style.color = "#000000";
			document.getElementById('upload_titel_' + elem).value = "";
		}
		else if (document.getElementById('upload_titel_' + elem).value == "") {
			document.getElementById('upload_titel_' + elem).style.color = "#a4a6a8";
			document.getElementById('upload_titel_' + elem).value = "Ggf. weitere Anlagen";
		}
	}
}

function checkNationalitaet() {
	if (document.getElementById('staatsangehoerigkeit').value == "Nationalität") {
		document.getElementById('staatsangehoerigkeit').style.color = "#000000";
		document.getElementById('staatsangehoerigkeit').value = "";
	}
	else if (document.getElementById('staatsangehoerigkeit').value == "") {
		document.getElementById('staatsangehoerigkeit').style.color = "#a4a6a8";
		document.getElementById('staatsangehoerigkeit').value = "Nationalität";
	}
}

function checkFreitext() {
	if (document.getElementById('freitext').value == "Bitte formulieren Sie hier ausführlich Ihren Text als Anschreiben") {
		document.getElementById('freitext').style.color = "#000000";
		document.getElementById('freitext').value = "";
	}
	else if (document.getElementById('freitext').value == "") {
		document.getElementById('freitext').style.color = "#a4a6a8";
		document.getElementById('freitext').value = "Bitte formulieren Sie hier ausführlich Ihren Text als Anschreiben";
	}
}

function profileDelete() {
	if (document.getElementById('profilDelete').checked) {
		if (confirm("Sind Sie sicher dass Sie Ihr Profil sowie Ihre Bewerbungen löschen wollen?")) {
			document.location.href="deleteProfile";
		}
	}
	else {
		alert("Bitte bestätigen Sie, dass Sie Ihr Profil löschen wollen."); 
	}
}

function getYPos(elem) {
    actual_elem = elem;
     
    var top = actual_elem.offsetTop;
    
    while (actual_elem=actual_elem.offsetParent)
        top += actual_elem.offsetTop;
    return top;
}

function expandBox() {
	var half1 = 0;
	var half2 = 0;
	var left  = 0;
	var right = 0;
	
	if (document.getElementById('boxPosition_half1') != null) {
		half1 = getYPos(document.getElementById('boxPosition_half1'));
	}
	if (document.getElementById('boxPosition_half2') != null) {
		half2 = getYPos(document.getElementById('boxPosition_half2'));
	}
	if (document.getElementById('boxPosition_left') != null) {
		left = getYPos(document.getElementById('boxPosition_left'));
	}
	if (document.getElementById('boxPosition_right') != null) {
		right = getYPos(document.getElementById('boxPosition_right'));
	}
	
	var max_top = 0;
	if (half1 > max_top)
		max_top = half1;
	if (half2 > max_top)
		max_top = half2;
	if (left > max_top)
		max_top = left;
	if (right > max_top)
		max_top = right;
	
	if (document.getElementById('boxPosition_half1') != null) {
		var diff = max_top - half1;
		document.getElementById('boxPosition_half1').style.height = diff + "px";
	}
	if (document.getElementById('boxPosition_half2') != null) {
		var diff = max_top - half2;
		document.getElementById('boxPosition_half2').style.height = diff + "px";
	}
	if (document.getElementById('boxPosition_left') != null) {
		var diff = max_top - left;
		document.getElementById('boxPosition_left').style.height = diff + "px";
	}
	if (document.getElementById('boxPosition_right') != null) {
		var diff = max_top - right;
		document.getElementById('boxPosition_right').style.height = diff + "px";
	}
}

function checkPLZ() {
	if (document.getElementById('search_plz').value == 'PLZ') {
		document.getElementById('search_plz').value = '';
		document.getElementById('search_plz').style.color = "#000000";
	}
	else if (document.getElementById('search_plz').value == '') {
		document.getElementById('search_plz').value = 'PLZ';
		document.getElementById('search_plz').style.color = "#d2d4d6";
	}
}

function checkOrt() {
	if (document.getElementById('search_ort').value == 'Ort') {
		document.getElementById('search_ort').value = '';
		document.getElementById('search_ort').style.color = "#000000";
	}
	else if (document.getElementById('search_ort').value == '') {
		document.getElementById('search_ort').value = 'Ort';
		document.getElementById('search_ort').style.color = "#d2d4d6";
	}
}

function checkStr() {
	if (document.getElementById('search_str').value == 'Straße') {
		document.getElementById('search_str').value = '';
		document.getElementById('search_str').style.color = "#000000";
	}
	else if (document.getElementById('search_str').value == '') {
		document.getElementById('search_str').value = 'Straße';
		document.getElementById('search_str').style.color = "#d2d4d6";
	}
}



