var isDefined = function(variable) {
  return this[variable] === undefined ? false : true;
}

//--------- Spam Felder im Formular löschen.
    
 function clearSpecialFields(){
    if($("specialField1")){
      $("specialField1").value="";
    }

    if($("specialField2")){
      $("specialField2").value="";
    }
 }
      
//--------- Zahl formatieren
function formatZahl(zahl, k, fix){
    if(!k) k = 0;
    var neu = '';
 
  var dec_point = '.';
  var thousands_sep = ',';
 
    // Runden
    var f = Math.pow(10, k);
    zahl = '' + parseInt(zahl * f + (.5 * (zahl > 0 ? 1 : -1)) ) / f ;
 
    // Komma ermittlen
    var idx = zahl.indexOf('.');
 
    // fehlende Nullen einfügen
    if(fix)    {
         zahl += (idx == -1 ? '.' : '' )
         + f.toString().substring(1);
    }
  var sign = zahl < 0;
  if(sign) zahl = zahl.substring(1);
    idx = zahl.indexOf('.');
 
  // Nachkommastellen ermittlen
    if( idx == -1) idx = zahl.length;
    else neu = dec_point + zahl.substr(idx + 1, k);
 
 
    while(idx > 0)    {
        if(idx - 3 > 0)
        neu = thousands_sep + zahl.substring( idx - 3, idx) + neu;
        else
        neu = zahl.substring(0, idx) + neu;
        idx -= 3;
    }
    return (sign ? '-' : '') + neu;
}    
    
    
//----- Wird bei den  Academy-Formularen benötigt
 function send(url){
    $("registration").action=url+"#top";
    $("registration").submit();
  }    
    

function in_array(item,arr) {
  for(p=0;p<arr.length;p++) if (item == arr[p]) return true;
  return false;
}

function playVideo(startImage, videoId, videoContainer){
  document.getElementById(videoId).style.display="block";
  document.getElementById(videoId).SetVariable("player:jsPlay", "");
  document.getElementById(startImage).style.display="none";
  document.getElementById(videoContainer).onmousedown=null;
}


function refreshUploadProgress(){
  var uploadIdentifier=$("UPLOAD_IDENTIFIER").value;
  var url="/libPhp/ajax/refreshUploadProgress.php";  
  new Ajax.Request(url, {
    method: "POST",
    encoding: "UTF-8",
    parameters: "UPLOAD_IDENTIFIER="+uploadIdentifier,
    onComplete: function(transport){
      if((transport.responseText>"") && (transport.responseText!="null")){
        var obj=transport.responseText.evalJSON();
        var loadingBarWidth=400;
        var newSize=(obj.bytes_uploaded*loadingBarWidth)/obj.bytes_total;
        $("uploadSize").style.width=newSize+"px";
        setTimeout("refreshUploadProgress();",1000);
      }else{
        setTimeout("refreshUploadProgress();",1000);
      }
    }
  });
}


  
 //---------------- Array der Formularfelder die in einem Cookie gesichert werden
 
var personalFields_=new Array("surname", "firstname", "contactName", "location","nationality", "street", "zip", "city", "country", "phone", "fax", "email", "company");          

//----- Schreibt evtl in Cookies vorhandene Formulardaten in ein geladenes Formular  
function writePersonalData(){
    var l=personalFields_.length;
    for(var i=0; i<l; i++){
      if($(personalFields_[i])){
        if($(personalFields_[i]).value=="" && ixFormCockie.get(personalFields_[i])>""){
           $(personalFields_[i]).value=ixFormCockie.get(personalFields_[i]);
        }
      }
    }
}

  
// Formularfelder (spezial für RoTec Formulare)
function chkMail() {
  var chkOK = true;
  var msg = "";
  var l=personalFields_.length;
  var errorId = 'firstError'

   clearSpecialFields();
      
      
   //----------- Persönliche Daten in Cookie sichern
  for(var i=0; i<l; i++){
    if($(personalFields_[i])){ ixFormCockie.put(personalFields_[i], $(personalFields_[i]).value); }
  }

  
  $$(".chkEmpty").each( function(item){
    if (item.up('.formField').next() && item.up('.formField').next().hasClassName('errorArrow')) {item.up('.formField').next().remove();}
    if (item.up('.formField').next() && item.up('.formField').next().hasClassName('errorMsg')) {item.up('.formField').next().remove();}
  if($F(item)=="") {
    chkOK = false;
    item.addClassName('error');
    showErrorMessage(item, errorId); errorId = '';
  } else {
    item.removeClassName('error');
  }
  } );


  $$(".chkEmail").each( function(item){
      var reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+'(\\@)([a-zA-Z0-9\\-\\.]+)'+'(\\.)([a-zA-Z]{2,4})$');
                
    if (item.up('.formField').next() && item.up('.formField').next().hasClassName('errorArrow')) {item.up('.formField').next().remove();}
    if (item.up('.formField').next() && item.up('.formField').next().hasClassName('errorMsg')) {item.up('.formField').next().remove();}
    if(!reg.test($F(item)))  {
  chkOK = false;
  item.addClassName('error');
  showErrorMessage(item, errorId); errorId = '';
    } else {
  item.removeClassName('error');
    }
  } );

  if ($('firstError'))
  {
    var offset = $('firstError').cumulativeOffset();
    var offset2 = parent.document.body.down('iframe').cumulativeOffset();
    parent.scrollTo(0, (offset[1] + offset2[1] - 50));
  }
  return chkOK;
}

// Formularfelderüberprüfen Std-Formular
function chkMailStd() {
  var chkOK = true;
  var chkMail = true;
  var chkEmpty = true;
  var msg = "";

  $$(".chkEmpty").each( function(item){
    if($F(item)=="") {
      chkOK = false;
      chkEmpty = false;
      item.setStyle({backgroundColor: '#FF9999'});
    } else {
      item.setStyle({backgroundColor: '#FFFFFF'});
    }
  } );

  $$(".chkEmail").each( function(item){
                var reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+'(\\@)([a-zA-Z0-9\\-\\.]+)'+'(\\.)([a-zA-Z]{2,4})$');
                
    if(!reg.test($F(item)))  {
    //if($F(item)=="") {
      chkOK = false;
      chkMail = false;
      item.setStyle({backgroundColor: '#FF9999'});
    } else {
      item.setStyle({backgroundColor: '#FFFFFF'});
    }
  } );

  if(!chkEmpty) msg += ixTransJsempty +"\n";
  if(!chkMail) msg += ixTransJsmail +"\n";
  if(msg!="") alert(msg);
  return chkOK;
}



function showErrorMessage(item, id){

  if(isDefined('ixTransJS_'+item.id+'Error')){
    errorMessage=eval('ixTransJS_'+item.id+'Error');
  }else{
    errorMessage=ixTransJS_generalError;
  }
  item.up('.formField').insert({'after' : '<img '+(id ? 'id="'+id+'" ' : '')+'src="/libImages/global/arrowError.png" alt="Error" class="errorArrow"><div class="errorMsg">'+errorMessage+'</div>'});
}



function mouseRollOver()
{
  $$('.rollOver').each(function (i)
  {
    var index = i.src.lastIndexOf('.');
    if (index > -1) {var newSrc = i.src.substring(0, index)+'.mo'+i.src.substring(index);}
    
    if (newSrc)
    {
      var img = new Image();
      img.src = newSrc;
    }
    
    i.observe('mouseover', function (e)
    {
      if (newSrc && i.src.indexOf('.in.') == -1) {i.src = newSrc;}
    })
    
    i.observe('mouseout', function (e)
    {
      if (i.src.indexOf('.in.') == -1) {i.src = i.src.replace('.mo.', '.');}i.src = i.src.replace('.mo.', '.');
    })
  });
}


//**************************
//*** SPAMSCHUTZ ***  
//**************************


// UnCryptMailto() entschluesselt die Mail-Adresse, zu zuvor mit
// der PHP-Funktion encryptEmail() verschlÃƒÆ’Ã‚Â¼sselt wurde
// Anwendung:
/*
<?php $link="javascript:linkTo_UnCryptMailto('".encryptEmail("john@doe.de")."');"; ?>
<a href="<?php echo $link ?>">E-Mail an John Doe schreiben</a>
*/
 
// JS function for uncrypting spam-protected emails:
function UnCryptMailto(s) {  //
  var n=0;
  var r="";
  for(var i=0; i < s.length; i++) {
    n=s.charCodeAt(i);
    if (n>=8364) {n = 128;}
    r += String.fromCharCode(n-(1));
  }
  return r;
}

  // JS function for uncrypting spam-protected emails:
function linkTo_UnCryptMailto(s)  {  //
  location.href="mailto:"+UnCryptMailto(s);
}

// JS-Fehlermeldungen ++++++++++++++++++++++++++++++++++++++
// wÃ¤hrend der Entwicklung Komentare entfernen
// in der error.php die eig. Email eintragen
// beim Livegehen wieder ausschalten, um nicht die ganzen
// Fehler von exot. Browsern zu erhalten
//window.onerror=callAjaxError; // IE
//window.onError= callAjaxError; // NS

function callAjaxError(msg, url, line) {
  new Ajax.Request('/libPhp/ajax/error.php',
 {
   method: 'post',
   postBody: 'appcode='+navigator.appCodeName+"&ver="+navigator.appVersion+"&usr="+navigator.userAgent+"&JsErrorUrl="+url+"&JsErrorLine="+line+"&JsErrorMsg="+msg,
   asynchronous: true,
   onSuccess: function (t)  {}
 });
  return false;
}

// buttons komplett verlinken
function linkButton()
{
  $$('.button').each(function (v)
  {
    v.style.cursor = 'pointer';
    if (!v.up('button'))
    {

      v.observe('click', function (e)
      {
        e.stop();
        if (!v.hasClassName('highslideButton')) {if (this.down('a').target == '_blank') {window.open(this.down('a').href, '_blank');} else {location.href = this.down('a').href;}} //Buttons mit der Klasse "highslideButton" geben  onclick weiter
        else {this.down('a').onclick();}
      });

      //hover auf für die img-tags
      v.stopObserving('mouseover');
      v.observe('mouseover', function (e)
      {
        var i = this.down('img', 0);
        var index = i.src.lastIndexOf('.');
        if (index > -1) {i.src = i.src.substring(0, index)+'.mo'+i.src.substring(index);}
        
        var i = this.down('img', 1);
        var index = i.src.lastIndexOf('.');
        if (index > -1) {i.src = i.src.substring(0, index)+'.mo'+i.src.substring(index);}
      })
      
      v.stopObserving('mouseout');
      v.observe('mouseout', function (e)
      {

        var i = this.down('img', 0);
        i.src = i.src.replace('.mo.', '.');
        
        var i = this.down('img', 1);
        i.src = i.src.replace('.mo.', '.');
      })
    }
    else
    {
      //hover auf für die img-tags
      v.up('button').observe('mouseover', function (e)
      {
        var i = this.down('img', 0);
        var index = i.src.lastIndexOf('.');
        if (index > -1) {i.src = i.src.substring(0, index)+'.mo'+i.src.substring(index);}
        
        var i = this.down('img', 1);
        var index = i.src.lastIndexOf('.');
        if (index > -1) {i.src = i.src.substring(0, index)+'.mo'+i.src.substring(index);}
      })
      
      v.up('button').observe('mouseout', function (e)
      {
        var i = this.down('img', 0);
        i.src = i.src.replace('.mo.', '.');
        
        var i = this.down('img', 1);
        i.src = i.src.replace('.mo.', '.');
      })
    }
  });
}



function linkButtonAnimation()
{
  $$('.buttonAnimation').each(function (v)
  {
    v.style.cursor = 'pointer';
    if (!v.up('button'))
    {

      v.observe('click', function (e)
      {
        e.stop();
        if (!v.hasClassName('highslideButton')) {if (this.down('a').target == '_blank') {window.open(this.down('a').href, '_blank');} else {location.href = this.down('a').href;}} //Buttons mit der Klasse "highslideButton" geben  onclick weiter
        else {this.down('a').onclick();}
      });

      //hover auf für die img-tags
      v.observe('mouseover', function (e)
      {
        var i = this.down('img', 0);
        var index = i.src.lastIndexOf('.');
        if (index > -1) {i.src = i.src.substring(0, index)+'.mo'+i.src.substring(index);}
        
        var i = this.down('img', 1);
        var index = i.src.lastIndexOf('.');
        if (index > -1) {i.src = i.src.substring(0, index)+'.mo'+i.src.substring(index);}
      })
      
      v.observe('mouseout', function (e)
      {
        var i = this.down('img', 0);
        i.src = i.src.replace('.mo.', '.');
        
        var i = this.down('img', 1);
        i.src = i.src.replace('.mo.', '.');
      })
    }
    else
    {
      //hover auf für die img-tags
      v.up('button').observe('mouseover', function (e)
      {
        var i = this.down('img', 0);
        var index = i.src.lastIndexOf('.');
        if (index > -1) {i.src = i.src.substring(0, index)+'.mo'+i.src.substring(index);}
        
        var i = this.down('img', 1);
        var index = i.src.lastIndexOf('.');
        if (index > -1) {i.src = i.src.substring(0, index)+'.mo'+i.src.substring(index);}
      })
      
      v.up('button').observe('mouseout', function (e)
      {
        var i = this.down('img', 0);
        i.src = i.src.replace('.mo.', '.');
        
        var i = this.down('img', 1);
        i.src = i.src.replace('.mo.', '.');
      })
    }
  });
}





// Kartenzoom
/*function zoomMap()
{
  $('mapWorldwide').style.cursor = 'pointer';
  $('mapWorldwide').observe('click', function(e)
  {
    $$('#mapWorldwide .dot').each(function (v) {v.remove();});
    var offset = this.down('img').cumulativeOffset();
    if (!mapZoom) {new Effect.Morph(this.down('img'), {style: 'width:1900px; margin-left:-'+(e.pointerX() - offset.left)+'px; margin-top:-'+(e.pointerY() - offset.top)+'px;', duration: 1, afterFinish: function () {drawSites((e.pointerX() - offset.left), (e.pointerY() - offset.top), true);}});}
    else {new Effect.Morph(this.down('img'), {style: 'width:1900px; margin-left:-'+((e.pointerX() - offset.left) / 2)+'px; margin-top:-'+((e.pointerY() - offset.top) / 2)+'px;', duration: 1, afterFinish: function () {drawSites(((e.pointerX() - offset.left) / 2), ((e.pointerY() - offset.top) / 2), true)}});}
    mapZoom = true;
  });
}*/

// Standorte positionieren
// Erwartet das site-Array
/*function drawSites(gPosX, gPosY, gZoom)
{
  $$('#mapWorldwide .dot').each(function (v) {v.remove();});
  var i = 0;
  site.each(function (v)
  {
    if (!gZoom) {$('mapWorldwide').insert({'bottom' : '<img id="'+(++i)+'" src="/libImages/global/iconDot.png" alt="Dot" class="dot" style="position:absolute; left:'+v.get('left')+'px; top:'+v.get('top')+'px;" />'});}
    else {$('mapWorldwide').insert({'bottom' : '<img id="'+(++i)+'" src="/libImages/global/iconDot.png" alt="Dot" class="dot" style="position:absolute; left:'+(v.get('left') * 2 - gPosX)+'px; top:'+(v.get('top') * 2 - gPosY)+'px;" />'});}
    $('mapWorldwide').insert({'bottom' : '<div id="text'+i+'" style="display:none; position:absolute; color:#ff0000;">'+v.get('text')+'</div>'});
  });
  $$('#mapWorldwide .dot').each(function (v)
  {
    var offset = v.cumulativeOffset();
    v.stopObserving('mouseover');
    v.observe('mouseover', function (e) {$('text'+v.id).style.left = (offset.left - 50)+'px'; $('text'+v.id).style.top = (offset.top - 100)+'px'; $('text'+v.id).show();});
    v.stopObserving('mouseout');
    v.observe('mouseout', function (e) {$('text'+v.id).hide();});
  });
}*/

// Schriftgroesse aendern
function changeFontSize(gBigger)
{
  if (gBigger) {document.body.style.fontSize = (parseInt(document.body.style.fontSize) + 5)+'%';}
  else {document.body.style.fontSize = (parseInt(document.body.style.fontSize) - 5)+'%';}
  jar.put('fontSize', document.body.style.fontSize);
}

// Bilder vorladen
function preloadImage(gSrc, gFinish)
{
  var img = new Image();
  img.src = gSrc;
  if (gFinish) {var int = setInterval(function () {if (img.complete) {clearInterval(int); this.finish = gFinish; this.finish();}}, 50);}
}

function blank() {}

// Icon zu Highslidebildern hinzufügen
function imageIcon()
{
  $$('.highslide').each(function (v)
  {
    v.observe('mouseover', function (e)
    {
      this.absolutize();
      this.insert({bottom: '<img src="/libImages/global/iconZoom.png" alt="" style="position:absolute; left:3px; bottom:3px; border:none;" />'});
    });
  });
}
    
    // Warenkorb
    function getBasket()
    {
      if (jar.get('publBasket')) {var ret = jar.get('publBasket'); ret.each(function (v, k) {ret[k] = $H(v);});}
      else {var ret = new Array();}
      return ret;
    }
    
    function setBasket(gHash)
    {
      var basket = getBasket();
      var check = true;
      basket.each(function (v) {if (v.get('no') == gHash.get('no')) {check = false;}});
      if (check)
      {
        basket.push(gHash);
        jar.put('publBasket', basket);
      }
    }

// Image-Fader
function modulAnimation() {
	// das letzte Bild ermitteln
	var obj = $('homeRow4').childElements();
	if(obj.length<=1) return; // nichts zum Überblenden vorhanden
	obj = obj[obj.length-1];

	obj.fade({ duration: 3.0, from: 1, to: 0, delay: 5, that : obj, afterFinish: function() {
			$('homeRow4').insert({top: this.that.remove()});
			this.that.show();
			modulAnimation();
		}
	});
}

// Video in Lightbox abspielen +++++++++++++++++++++++++++++++++
// zB: a onclick="return showMaxVideo(this, 800, 453, 'video_1');" href="http://www.schenck-rotec.de/php/videoPage.php?filePath=/userImages/foo.flv&amp;videoHeight=453&amp;videoWidth=800" class=" " ...
// id: des kleinen Players (soll stoppen, wenn Lightbox aufgeht)
function showMaxVideo(thisobj, width, height, id) {
  hs.htmlExpand(thisobj, { objectType: 'iframe', width: width+18,height: height+20, wrapperClassName: 'video-lightbox', align: 'center' } );
  stopMinVideo(id);    
  return false;            
}  
function stopMinVideo(id) { if(document.getElementById(id)) document.getElementById(id).SetVariable("player:jsStop", ""); }
function stopMinVideoXX(id) { 
  if(document.all) {
    stopMinVideoIE(id);
    return
  }
  //Fehler: Error calling method on NPObject
  var t = $("videoContainerId").innerHTML;
  $("videoContainerId").innerHTML="...";
  $("videoContainerId").innerHTML=t+"<span></span>";
}

// Flag an iframe-src anhängen > iframe wird neu geladen > in der src wird je nach Flag der Film abgespielt/nicht abgespielt 
// am Seitenend aufrufen
function initMaxVideo() {
 // &stop=true anhaengen
 hs.Expander.prototype.onBeforeClose = function (sender) {   $$('.video-lightbox').each(function (v) {
     if (v.down('iframe')) {v.down('iframe').src=v.down('iframe').src + "&stop=true";}
  } );
}
// &stop=true entfernen
 hs.Expander.prototype.onBeforeExpand = function (v) {
    $$('.video-lightbox').each(function (v) {
     if(v.down('iframe') && v.down('iframe').src.lastIndexOf("&stop")>-1) v.down('iframe').src=v.down('iframe').src.substr(0, v.down('iframe').src.lastIndexOf("&stop"));
  } );
 }  
}


