var NumberRegExp = /([^0-9])/g;

//headerfotowissel home settings
var CurrentOpacity=100;
var Teken=-1;
var StartNr=1;
var Opacityoffset=2;
var headerFadeTime=50;
var headerFreezeTime=4000;

$(document).ready(function()
{
 if(headerfotos.length)
    new ImagePreloader(headerfotos,StartHeaderRotate);
});

function OpenVenster(waarheen,breedte,hoogte){
        DetailVenster = window.open(waarheen,'Detail','toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizeable=yes,width='+breedte+',height='+hoogte);
        DetailVenster.focus();
}

function OpenCollectieVenster(waarheen,breedte,hoogte){
        CollectieVenster = window.open(waarheen,'Collectie','toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizeable=yes,width='+breedte+',height='+hoogte);
        CollectieVenster.focus();
}



function NieuwVenster(waarheen){
        DetailVenster = window.open(waarheen,'Detail','toolbar=yes,location=yes,directories=yes,status=yes,scrollbars=yes,resizeable=yes,width=800,height=600');
        DetailVenster.focus();
}


function aanmelden_nieuwsbrief(vorm,aktie,taal){

        var EmailOk = true;
        strEmail=vorm.NEWSLETTER_WRD_CONTACT_EMAIL.value;
        if(strEmail!=''){
                if(strEmail.indexOf('@',0)==-1 || strEmail.indexOf('.', 0)==-1) EmailOk = false;
        } else {
                EmailOk = false;
        }

        if(aktie=='aanmelden' && EmailOk){
                vorm.redirect_error.value='http://www.teletop.nl/'+taal+'/subscribe/inschrijven_fout.shtml';
                vorm.redirect_success.value='http://www.teletop.nl/'+taal+'/subscribe/inschrijven_succes.shtml';

                vorm.t.value='s';
                vorm.submit();
        }

        if(aktie=='afmelden' && EmailOk){
                vorm.redirect_error.value='http://www.teletop.nl/'+taal+'/subscribe/uitschrijven_fout.shtml';
                vorm.redirect_success.value='http://www.teletop.nl/'+taal+'/subscribe/uitschrijven_succes.shtml';

                vorm.t.value='u';
                vorm.submit();
        }

        if ( !EmailOk && taal=='nl' ) alert('U heeft een ongeldig e-mailadres ingevuld');
        if ( !EmailOk && taal=='en' ) alert('You must enter your E-mail address');
}

/// controleer opacity afhandeling voor browser
function ChkOpacityType(ObjectNaam){

        var browsertype;

        holderobject=document.getElementById(ObjectNaam);

        if(typeof holderobject.style.MozOpacity != 'undefined'){
                browsertype = 'moz';
        } else if(typeof holderobject.style.KhtmlOpacity != 'undefined'){
                browsertype = 'khtml';
        } else if(typeof holderobject.filters == 'object'){
                browsertype = (holderobject.filters.length > 0 && typeof holderobject.filters.alpha == 'object' && typeof holderobject.filters.alpha.opacity == 'number') ? 'ie' : 'none';
        } else if(typeof holderobject.style.opacity != 'undefined'){
                browsertype = 'w3c';
        } else {
                browsertype = 'none';
        }

        return browsertype;
}


function ZetAlpha(ObjectNaam,percentage){

        obj=document.getElementById(ObjectNaam);

        if(percentage > 0){

                alpha=percentage/100;

                var type = typeof chkbrowser == 'undefined' ? ChkOpacityType(ObjectNaam) : chkbrowser;

                switch(type){

                        case 'ie' :        if (typeof obj.filters == 'object' && obj.filters.alpha){
                                                obj.filters.alpha.opacity = percentage;
                                        }  else {
                                                 obj.style.filter='alpha('+percentage+')';
                                        }
                                        break;

                        case 'khtml' :        obj.style.KhtmlOpacity = alpha;
                                        break;

                        case 'moz' :        obj.style.MozOpacity = (alpha >= 0.99 ? 0.99 : alpha);//Max opacity to prevent flicker in firefox
                                        break;

                        case 'none' :        break;

                        default :         obj.style.opacity = (alpha >= 0.99 ? 0.99 : alpha);//Max opacity to prevent flicker in firefox

                }
                obj.style.display = '';
        } else {
                obj.style.display = 'none';
        }
}


function VerstuurContactDE(Vorm){
        Msg='';

        if(Vorm.Naam.value=='') Msg+=' - Name ';
        if(Vorm.Adres.value=='') Msg+=' - Adresse ';
        if(Vorm.Postcode.value=='') Msg+=' - Postleitzahl ';
        if(Vorm.Plaats.value=='') Msg+=' - Ort ';
        if(Vorm.Telefoon.value=='') Msg+=' - Telefon ';
        if(Vorm.Email.value!=''){
                if(Vorm.Email.value.indexOf('@', 0)==-1 || Vorm.Email.value.indexOf('.', 0)==-1) Msg+= ' - E-mail ';
        } else {
                Msg+=' - E-mail ';
        }

        if(Msg){
                alert('Bitte controlieren Sie ihre Eingabe '+Msg);
        } else {
                Vorm.PMax.value='VerstuurContact';
                Vorm.submit();
        }
}

function VerstuurContactUK(Vorm){
        Msg='';

        if(Vorm.Naam.value=='') Msg+=' - Name ';
        if(Vorm.Adres.value=='') Msg+=' - Address ';
        if(Vorm.Postcode.value=='') Msg+=' - ZIP ';
        if(Vorm.Plaats.value=='') Msg+=' - City ';
        if(Vorm.Telefoon.value=='') Msg+=' - Phone ';
        if(Vorm.Email.value!=''){
                if(Vorm.Email.value.indexOf('@', 0)==-1 || Vorm.Email.value.indexOf('.', 0)==-1) Msg+= ' - E-mail ';
        } else {
                Msg+=' - E-mail ';
        }

        if(Msg){
                alert('Please check your input '+Msg);
        } else {
                Vorm.PMax.value='VerstuurContact';
                Vorm.submit();
        }
}

function VerstuurContactNL(Vorm){
        Msg='';

        if(Vorm.Naam.value=='') Msg+=' - Naam ';
        if(Vorm.Adres.value=='') Msg+=' - Adres ';
        if(Vorm.Postcode.value=='') Msg+=' - Postcode ';
        if(Vorm.Plaats.value=='') Msg+=' - Plaats ';
        if(Vorm.Telefoon.value=='') Msg+=' - Telefoon ';
        if(Vorm.Email.value!=''){
                if(Vorm.Email.value.indexOf('@', 0)==-1 || Vorm.Email.value.indexOf('.', 0)==-1) Msg+= ' - E-mail ';
        } else {
                Msg+=' - E-mail ';
        }

        if(Msg){
                alert('Controleer de volgende velden '+Msg);
        } else {
                Vorm.PMax.value='VerstuurContact';
                Vorm.submit();
        }
}

function VerstuurContact(Vorm,Taal){

        switch(Taal){
                case 'DE' :        VerstuurContactDE(Vorm);
                                break;
                case 'UK' :         VerstuurContactUK(Vorm);
                                break;
                   default :        VerstuurContactNL(Vorm);
        }
}

function SchakelMenuStijl(ObjNaam,stijl){
        document.getElementById(ObjNaam+'a').className=stijl;
        document.getElementById(ObjNaam+'b').className=stijl;
        document.getElementById(ObjNaam+'c').className=stijl;
}

function SchakelImg(ObjNaam,plaatje){
        document.getElementById(ObjNaam).src=plaatje;
}

function numbersonly(myfield, e, dec){

        var key;
        var keychar;

        if(window.event){
                key = window.event.keyCode;
        } else if(e){
                key = e.which;
        } else {
                return true;
        }

        keychar = String.fromCharCode(key);

        // control keys
        if(key==null || key==0 || key==8 || key==9 || key==13 || key==27){
                return true;
        } else if((("0123456789").indexOf(keychar) > -1)){// numbers
                return true;
        } else {
                return false;
        }
}


function lightup()
{

        var type = typeof chkbrowser == 'undefined' ? ChkOpacityType('trans1') : chkbrowser;

        if(type!='none')
        {//alleen wisselen als opacity ondersteund wordt

                var imageobject=document.getElementById('trans1');
                var secimageobject=document.getElementById('trans2');

                CurrentOpacity+=Teken*Opacityoffset;

                var SwitchPlaatje=false;
                if(CurrentOpacity <= 0 || CurrentOpacity >= 100)
                {
                        Teken*=-1;
                        CurrentOpacity+=Opacityoffset*Teken;
                        SwitchPlaatje=true;
                }

                if(SwitchPlaatje && headerfotos.length>2)
                {
                        StartNr++;

                        if(StartNr>=headerfotos.length) StartNr=0;
                        //bij gelijke headerfotos maar volgende
                        if(secimageobject.src==imageobject.src) StartNr++;

                        if(Teken>0)
                        {
                                imageobject.src=headerfotos[StartNr];
                        } else {
                                secimageobject.src=headerfotos[StartNr];
                        }
                }

                ZetAlpha('trans1',CurrentOpacity);

    if(SwitchPlaatje)
    {
      setTimeout('lightup()',headerFreezeTime);
    } else {
                  setTimeout('lightup()',headerFadeTime);
                }
        }

  return;

}

/* headerfotos laden */
function StartHeaderRotate(aImages, nImages)
{
        if(nImages == headerfotos.length)
        {
    $('#trans1').attr('src',headerfotos[0]);

                if(headerfotos.length>1)
                {
                  $('#trans2').attr('src',headerfotos[1]);
                  setTimeout('lightup()',headerFreezeTime);
                }

                return;
        }
}



//Image preload routines staan hieronder
function ImagePreloader(images, callback){

        this.callback = callback;// store the callback

        this.nLoaded = 0;
        this.nProcessed = 0;
        this.aImages = new Array;
 
        this.nImages = images.length;

        for(var i=0; i < images.length; i++){// for each image, call preload()
                this.preload(images[i]);
        }
}


ImagePreloader.prototype.preload = function(image){

        // create new Image object and add to array
        //var oImage = new Image;
        var oImage = document.createElement("img"); // met new Image() werkt 't zeker niet!

        this.aImages.push(oImage);

        // set up event handlers for the Image object
        oImage.onload = ImagePreloader.prototype.onload;
        oImage.onerror = ImagePreloader.prototype.onerror;
        oImage.onabort = ImagePreloader.prototype.onabort;

        // assign pointer back to this.
        oImage.oImagePreloader = this;
        oImage.bLoaded = false;

        // assign the .src property of the Image object
        oImage.src = image;
}

ImagePreloader.prototype.onComplete = function(){
        this.nProcessed++;

        if(this.nProcessed == this.nImages){
                this.callback(this.aImages, this.nLoaded);
        }
}

ImagePreloader.prototype.onload = function(){
        this.bLoaded = true;
        this.oImagePreloader.nLoaded++;
        this.oImagePreloader.onComplete();
}

ImagePreloader.prototype.onerror = function(){
   this.bError = true;
   this.oImagePreloader.onComplete();
}

ImagePreloader.prototype.onabort = function(){
   this.bAbort = true;
   this.oImagePreloader.onComplete();

}