var checkFormSettingsMessage='Mindestes ein Formularelement wurde mit einem nicht zulässigen Wert besetzt. Bitte überprüfen Sie Ihre Eingaben.';
var checkPageAssetMessage='Es wurde kein Baustein (Asset) ausgewählt.\nBitte selektieren Sie ein bestehendes Asset oder legen\nSie zuerst über das Asset-Management ein neues Asset an.';
var FailMessages = new Array();

addFailMessage(1,"Bitte geben Sie Ihren vollständigen Namen an!");
addFailMessage(2,"Bitte geben Sie Ihren Firmennamen an!");
addFailMessage(3,"Bitte geben Sie Ihre vollständige und korrekte EMail-Adresse an!");
addFailMessage(4,"Bitte geben Sie einen Nachrichtentext an!");
addFailMessage(5,"Bitte geben Sie einen Betreff an!");
addFailMessage(6,"Bitte geben Sie Ihren korrekten Benutzernamen an!");


function checkContactForm(url,frmobj) {
  foo = false;
	var query = '';
	query = $(frmobj).serialize();
  new Ajax.Request(url, {
     method: 'post',
     parameters: query,
     asynchronous: false,
     onSuccess: function( r ) {
       var res = r.responseText;
       $('company').className='checked';
       $('name').className='checked';
       $('email').className='checked';
       if (res != "") {
         var resultset = res.split('|');
         for (i=1;i<resultset.length;i++) {
           $(resultset[i]).className = 'invalid';
         }
         alert(resultset[0]);
         foo = false;
       } else {
         foo = true;
       }
      }
  });
  return foo;
}


function addFailMessage(id,message) {
  FailMessages[id] = message;
}

function confirmDelete(what,url_redir) {
  var msg = "Wollen Sie den Eintrag wirklich löschen?\n\nBitte beachten Sie dabei, dass mit dem Löschvorgang\neventuell verknüpfte Daten aus anderen Tabellen\nverloren gehen können.";
  if (what>"") msg = "Wollen Sie den Eintrag '"+what+"' wirklich löschen?\n\nBitte beachten Sie dabei, dass mit dem Löschvorgang\neventuell verknüpfte Daten aus anderen Tabellen\nverloren gehen können.";
  var conf = confirm(msg);
  if (conf) {
    window.location.href = url_redir;
  }
}

// Removes leading whitespaces
function LTrim( value ) {

	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");

}

// Removes ending whitespaces
function RTrim( value ) {

	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");

}

// Removes leading and ending whitespaces
function trim( value ) {

	return LTrim(RTrim(value));

}

function validateMailAddress(EMail) {
  var regmail = /^([a-zA-Z0-9\-\.\_]+)(\@)([a-zA-Z0-9\-\.]+)(\.)([a-zA-Z]{2,4})$/gi;
  if (regmail.exec(EMail)==null) return false;
  return true;
}

function validateBankData(Data) {
  var regmail = /^[0-9]{8,8}$/gi;
  if (regmail.exec(Data)==null) return false;
  return true;
}

function validateAcctData(Data) {
  var regmail = /^[0-9]+$/gi;
  if (regmail.exec(Data)==null) return false;
  return true;
}

function validatePageAsset(frmobj) {
  var ok = true;
  if(frmobj.IDObjectType.value == 2 && frmobj.IDCntObject.value == 0) ok = false;
  if(frmobj.IDObjectType.value == 1 && frmobj.IDObject.value == 0) ok = false;
  if (!ok) {
    alert (checkPageAssetMessage);
    return false;
  }
  return true;
}

function checkFormDefaultSettings(frmobj) {
  /**
   * this function checks if form elements are not set to proper values (in other words sset to specific preset values)
   * the function takes an array of listbox element names and their default value
   *
   * e.g. checkFormDefaultSettings(this,'IDImage',0,'IDType','none')
   *
   * in the example above the function returns false if
   * - the form element named 'IDImage' is set to 0
   * and the form element named 'IDType' is set to 'none'
   *
   *
   */
  if (arguments.length < 3) return false;

  var elements = new Object();
  for (i=1;i<arguments.length;i+=2) {
    elements[arguments[i]] = arguments[i+1];
  }

  var frmel;
  var ok = true;
  for (i=0;i<frmobj.elements.length;i++) {
    frmel = frmobj.elements[i];
//    if (elements[frmel.name] > '') {
      if (frmel.type == 'select-one' && frmel.options[frmel.selectedIndex].value == elements[frmel.name]) ok = false;
      if (frmel.type == 'text' && frmel.value == elements[frmel.name]) ok = false;
      if (frmel.type == 'checkbox' && frmel.value == elements[frmel.name]) ok = false;
//    }
  }
  if (!ok) {
    alert (checkFormSettingsMessage);
    return false;
  }
  return true;
}

function popupfix(id,width,height,attr,ssl) {
  var url = "/popup/"+id;
  var winid = "popup"+id.replace(/[\\\/!]/,"_");
  if (ssl > '') url = "/"+ssl+url;
  var newin = window.open(url,winid,"height="+height+",width="+width+",left=100,top=50,status=no,toolbar=no,titlebar=no,menubar=no,scrollbars=yes,"+attr,true);
  newin.focus();
}

function popupvar(id,width,height,attr) {
  var url = "/popup/"+id;
  var winid = "popup"+id.replace(/[\\\/!]/,"_");
  var newin = window.open(url,id,"height="+height+",width="+width+",left=100,top=50,status=no,toolbar=no,menubar=no,scrollbars=yes,location=no,resizable=yes,"+attr,true);
  newin.focus();
}

function openPopup(url,title) {
  if (title=='agb') var newin = window.open(url,title,"height=500,width=530,left=100,top=50,status=no,toolbar=no,menubar=no,scrollbars=yes",true);
  if (title=='campaigns') var newin = window.open(url,title,"height=600,width=620,left=50,top=50,status=no,toolbar=no,menubar=no,scrollbars=yes,location=no,resizable=yes",true);
  if (title=='sitemap')   var newin = window.open(url,title,"height=500,width=760,left=20,top=20,status=no,toolbar=no,menubar=no,scrollbars=yes,location=no,resizable=yes",true);
  newin.focus();
}

function previewObject(elementid) {
  var listobj = document.getElementsByName(elementid)[0];
  listvalue = listobj.options[listobj.selectedIndex].value;
  if (elementid=='IDCustomer') var popup = window.open('preview_customer.php?id='+listvalue,'Customer','height=300,width=300');
  popup.focus();
}

function previewData(elementid,arguments) {
  if (elementid=='IDTextblock') var popup = window.open('/admin/scripts/preview_textblock.php?'+arguments,'Textblock','height=400,width=530,resizable,scrollbars=yes');
  if (elementid=='IDContentblock') var popup = window.open('/admin/scripts/preview_contentblock.php?'+arguments,'Textblock','height=600,width=530,resizable,scrollbars=yes');
  popup.focus();
}

function previewPage(pageid) {
  var popup = window.open('/admin/scripts/preview_page.php?id='+pageid,'PagePreview','height=600,width=900,resizable,scrollbars=yes');
  popup.focus();
}

function previewPost(postid) {
  var popup = window.open('/admin/scripts/preview_post.php?id='+postid,'PostPreview','height=500,width=600,resizable,scrollbars=yes');
  popup.focus();
}

function previewFAQ(faqid) {
  var popup = window.open('/admin/scripts/preview_faq.php?id='+faqid,'FAQPreview','height=500,width=600,resizable,scrollbars=yes');
  popup.focus();
}

function previewBlockTemplate(templateid) {
  var popup = window.open('/admin/scripts/preview_blocktemplate.php?id='+templateid,'BlockTemplatePreview','height=500,width=600,resizable,scrollbars=yes');
  popup.focus();
}

function previewBaseTemplate(templateid) {
  var popup = window.open('/admin/scripts/preview_basetemplate.php?id='+templateid,'BaseTemplatePreview','height=600,width=900,resizable,scrollbars=yes');
  popup.focus();
}

function setTopItemArrow() {
  if (document.getElementById) {
    var obj = document.getElementById('topitem');
    obj.src='/images/arrow_right_active.png';
  }
}

var origin_overlay_image;

function showImg(img) {
  origin_overlay_image = document.mapoverlay.src;
  document.mapoverlay.src = '/images/maps/'+img+'.gif';
}

function hideImg() {
	document.mapoverlay.src = origin_overlay_image;
}

function selectCountry(img) {
  document.countryoverlay.src = '/images/maps/'+img+'.gif';
	document.countryoverlay.style.display = 'block';
	showContact();
}

function showContact() {
  var obj = document.getElementById('showcontact');
  obj.innerHTML = "das ist mein Text"
  obj.style.display = 'block';
}

function hideContact() {
  var obj = document.getElementById('showcontact');
  obj.style.display = 'none';
}


function chk_search(frmobj) {
  var ok = true;
  if (frmobj.srchtxt.value=="") {
    alert (checkFormSettingsMessage)
    return false;
  }
  var ok = false;
  for (i=0;i<frmobj.elements.length;i++) {
    frmel = frmobj.elements[i];
    if (frmel.type == 'checkbox' && frmel.checked == true) ok = true;
  }
  if (!ok) alert (checkFormSettingsMessage);
  return ok;
}


function openfromsitemap(foo) {
  window.opener.top.document.location.href=foo;
  self.close();
}


function closePopup(id) {
  var popup = document.getElementById(id);
  popup.style.display = 'none';

}

function toggleImg(id,imgid) {
  var goback = document.getElementById('goback');
  var gonext = document.getElementById('gonext');
  var img1 = document.getElementById(id+'_1');
  var img2 = document.getElementById(id+'_2');
  if (imgid==2) {
    img2.style.display = 'block';
    img1.style.display = 'none';
    gonext.style.display = 'none';
    goback.style.display = 'block';
  } else {
    img2.style.display = 'none';
    img1.style.display = 'block';
    gonext.style.display = 'block';
    goback.style.display = 'none';
  }
}

function stripeTabByRow(id) {
  var evenColor = arguments[1] ? arguments[1] : "#fff";
  var oddColor = arguments[2] ? arguments[2] : "#eee";
  var table = document.getElementById(id);
  if (!table) return 0;
  var even = false
  var trs = table.getElementsByTagName('tr');
  for (var i = 0; i < trs.length; i++) {
    if (!hasClass(trs[i])) trs[i].style.backgroundColor = even ? evenColor : oddColor;
          /*
          var tds = trs[k].getElementsByTagName('td');
          for (var k = 0; k < tds.length; k++) {
            tds[k].style.backgroundColor = even ? evenColor : oddColor;
          }
          */
    even = !even;
  }
}

function stripeTabByClass(id) {
  var evenClass = arguments[1] ? arguments[1] : "even";
  var oddClass = arguments[2] ? arguments[2] : "odd";
  var table = document.getElementById(id);
  if (!table) return 0;
  var even = false;
  var tbodies = table.getElementsByTagName('tbody');
  for (var q = 0; q < tbodies.length; q++) {
    var even = false;
    var trs = tbodies[q].getElementsByTagName('tr');
    for (var i = 0; i < trs.length; i++) {
      if (!hasClass(trs[i])) {
        trs[i].className = even ? evenClass : oddClass;
        even = !even;
      }
    }
  }
}

// this function is need to work around
// a bug in IE related to element attributes
function hasClass(obj) {
  var result = false;
  if (obj.getAttributeNode("class") != null) {
    result = obj.getAttributeNode("class").value;
  }
  return result;
}

function stripe(id) {
  var even = false;
  var evenColor = arguments[1] ? arguments[1] : "#fff";
  var oddColor = arguments[2] ? arguments[2] : "#eee";
  var table = document.getElementById(id);
  if (! table) { return; }
  var trs = table.getElementsByTagName("tr");
  for (var i = 0; i < trs.length; i++) {
    if (!hasClass(trs[i]) && ! trs[i].style.backgroundColor) {
      var tds = trs[i].getElementsByTagName("td");
      for (var j = 0; j < tds.length; j++) {
        var mytd = tds[j];
    	  if (! hasClass(mytd) && ! mytd.style.backgroundColor) {
      	  mytd.style.backgroundColor = even ? evenColor : oddColor;
        }
      }
    }
    even =  ! even;
  }
}


function displayCallout(id,num) {
  for(i=1;i<=num;i++) {
    var obj = document.getElementById('callout_'+i);
    obj.style.display = 'none';
    if (i==id) obj.style.display = 'block';
  }
}

function displayArea(id,num) {
  for(i=1;i<=num;i++) {
    var obj = document.getElementById('area_'+i);
    obj.style.border = '0px';
    if (i==id) obj.style.border = '2px solid #99172A';
  }
}

function saveGlobalData() {
	new Ajax.Request("inquiry_egt.html?do=saveglobals", {
								method: 'post',
								postBody: Form.serialize($('INQUIRY'))
							});
}






/**
 * directly write an email link to the document.
 * 
 * @param maildom TLD of the domain name
 * @param mailnam recipient
 * @param mailsvr SLD of the domain name
 * @param text text which should be between the a tags
 * @return void
 */
function InsertMail(maildom, mailnam, mailsvr, text) {
	if (text == "" || !text) {
		document.write('<a href="mailto:' + mailnam + '@' + mailsvr + '.' + maildom + '">' + mailnam + '@' + mailsvr + '.' + maildom + '</a>');
	} else {
		document.write('<a href="mailto:' + mailnam + '@' + mailsvr + '.' + maildom + '">' + text + '</a>');
	}
}



function checkFormDefaultSettings(frmobj) {
	  /**
	   * this function checks if form elements are not set to proper values (in other words sset to specific preset values)
	   * the function takes an array of listbox element names and their default value
	   *
	   * e.g. checkFormDefaultSettings(this,'IDImage',0,'IDType','none')
	   *
	   * in the example above the function returns false if
	   * - the form element named 'IDImage' is set to 0
	   * and the form element named 'IDType' is set to 'none'
	   *
	   *
	   */
	  if (arguments.length < 3) return false;

	  var elements = new Object();
	  for (i=1;i<arguments.length;i+=2) {
	    elements[arguments[i]] = arguments[i+1];
	  }

	  var frmel;
	  var ok = true;
	  for (i=0;i<frmobj.elements.length;i++) {
	    frmel = frmobj.elements[i];
//	    if (elements[frmel.name] > '') {
	      if (frmel.type == 'select-one' && frmel.options[frmel.selectedIndex].value == elements[frmel.name]) ok = false;
	      if (frmel.type == 'text' && frmel.value == elements[frmel.name]) ok = false;
	      if (frmel.type == 'checkbox' && frmel.value == elements[frmel.name]) ok = false;
//	    }
	  }
	  if (!ok) {
	    alert (checkFormSettingsMessage);
	    return false;
	  }
	  return true;
	}

	

