﻿var visibleBrands = new Array(0, 1, 2, 3, 4, 5);

var fadedOutImages = 0;
var speed = 40;
var Brands = [
     {imageFolder: 'propertywide',  url: 'http://www.propertywide.co.uk/'}
    ,{imageFolder: 'rabennett', url: 'http://www.rabennett.co.uk/'}
    ,{imageFolder: 'abbotts', url: 'http://www.abbotts.co.uk/'}
    ,{imageFolder: 'buckellandballard', url: 'http://www.buckellandballard.co.uk/'}
    ,{imageFolder: 'alandemaid', url: 'http://www.alandemaid.co.uk/'}
    ,{imageFolder: 'chappellandmatthews', url: 'http://www.chappellandmatthews.co.uk/'}
    ,{imageFolder: 'austinwyatt', url: 'http://www.austinwyatt.co.uk/'}
    ,{imageFolder: 'bairstoweves', url: 'http://www.bairstoweves.co.uk/'}
    ,{imageFolder: 'beresfordadams', url: 'http://www.beresfordadams.co.uk/'}
    ,{imageFolder: 'bridgfords', url: 'http://www.bridgfords.co.uk/'}
    ,{imageFolder: 'carsons', url: 'http://www.carsons.co.uk/'}
    ,{imageFolder: 'dixonsestateagents', url: 'http://www.dixonsestateagents.co.uk/'}
    ,{imageFolder: 'entwistlegreen', url: 'http://www.entwistlegreen.co.uk/'}
    ,{imageFolder: 'faronsutaria', url: 'http://www.faronsutaria.co.uk/'}
    ,{imageFolder: 'frankinnes', url: 'http://www.frankinnes.co.uk/'}
    ,{imageFolder: 'freemanforman', url: 'http://www.freemanforman.co.uk/'}
    ,{imageFolder: 'fulfords', url: 'http://www.fulfords.co.uk/'}
    ,{imageFolder: 'gascoignepees', url: 'http://www.gpees.co.uk/' }
    ,{imageFolder: 'johndwood', url: 'http://www.johndwood.co.uk/'}
    ,{imageFolder: 'manncountrywide', url: 'http://www.manncountrywide.co.uk/'}
    ,{imageFolder: 'millercountrywide', url: 'http://www.millercountrywide.co.uk/'}
    ,{imageFolder: 'morrisdibben', url: 'http://www.morrisdibben.co.uk/'}
    ,{imageFolder: 'palmersnell', url: 'http://www.palmersnell.co.uk/'}
    ,{imageFolder: 'countrywidescotland', url: 'http://www.countrywidescotland.co.uk/'}
    ,{imageFolder: 'geeringandcolyer', url: 'http://www.geeringandcolyer.co.uk/'}
    ,{imageFolder: 'hetheringtons', url: 'http://www.hetheringtons.co.uk/'}
    ,{imageFolder: 'slaterhogg', url: 'http://www.slaterhogg.co.uk/'}
    ,{imageFolder: 'spencers', url: 'http://www.spencers.co.uk/'}
    ,{imageFolder: 'strattoncreber', url: 'http://www.strattoncreber.co.uk/'}
    ,{imageFolder: 'taylorsestateagents', url: 'http://www.taylorsestateagents.co.uk/'}
    ,{imageFolder: 'watsonbullporter', url: 'http://www.watsonbullporter.co.uk/'}
    ,{imageFolder: 'wilsonpeacock', url: 'http://www.wilsonpeacock.co.uk/'}
    ,{imageFolder: 'kingandchasemore', url: 'http://www.kingandchasemore.co.uk/'}
    ,{imageFolder: 'lockeandengland', url: 'http://www.lockeandengland.co.uk/'}
    ,{imageFolder: 'hamptons', url: 'http://www.hamptons.co.uk/'}
    ,{imageFolder: 'sothebysrealty', url: 'http://www.sothebysrealty.com/'}
    ,{imageFolder: 'andrewreeves', url: 'http://www.andrewreeves.co.uk/'}
    ,{imageFolder: 'accordproperty', url: 'http://www.accordproperty.co.uk/'}
    ,{imageFolder: 'speclets', url: 'http://www.speclets.com/'}
    ,{imageFolder: 'andrewbutler', url: 'http://www.andrewbutler.co.uk/'}
    ,{imageFolder: 'propertyquarters', url: 'http://www.propertyquarters.co.uk/' }
    ,{imageFolder: 'blundells', url: 'http://www.blundells.com/' }
    
    /*Could not find these images so assume they are not used
    ,{imageFolder: 'aboutletting', url: 'http://www.aboutletting.co.uk/'}
    ,{imageFolder: 'crldirect', url: 'http://www.crldirect.co.uk/'},
    */
    ];

function PreLoad(imageSource) {
    imgObj = new Image();
    imgObj.src = imageSource;
}



if (navigator.appName === "Microsoft Internet Explorer") {
    speed = 5;
}


function ImagefaderInit() {
    //Preload all the images 
    for (var i = 0; i < Brands.length; i++) {
        PreLoad("/brands/" + Brands[i].imageFolder + "/grey.jpg");
        PreLoad("/brands/" + Brands[i].imageFolder + "/colour.jpg");
    }
    //Update the First
    for (var i = 0; i <= 5; i++) {
        img = document.getElementById("brand" + i.toString());
        img.src = "/brands/" + Brands[i].imageFolder + "/grey.jpg";
        img.style.visibility = 'visible';
        img.onmouseover = function() { this.src = this.src.replace("grey.jpg", "colour.jpg") };
        img.onmouseout = function() { this.src = this.src.replace("colour.jpg", "grey.jpg") };
    }
    StartFade();
}

function StartFade() {
    // Get the max image number
    var maxImgNum = 1;
    for (var i = 0; i < visibleBrands.length; i++) {
        if (visibleBrands[i] > maxImgNum) {
            maxImgNum = visibleBrands[i];
        }
    }
    maxImgNum++;
    // Create the next set array
    var newBrands = new Array();
    for (var i = 0; i < 5; i++) {
        if ((maxImgNum + i) > Brands.length-1) maxImgNum = 1;
        newBrands[i] = maxImgNum + i;
    }
    newBrands[5] = 0;
    visibleBrands = newBrands;
    // Mix up the ordering
    visibleBrands.sort(RandomOrder);
    // Fade the current images out
    setTimeout(function() {
        FadeOut("brand0", 1);
        FadeOut("brand1", 1);
        FadeOut("brand2", 1);
        FadeOut("brand3", 1);
        FadeOut("brand4", 1);
        FadeOut("brand5", 1);
    }, 2000);
}

function RandomOrder() {
    return (Math.round(Math.random()) - 0.5);
}

function FadedOut(imgID) {
    fadedOutImages++;
    // Change the Image
    var img = document.getElementById(imgID);
    var imgNum = parseFloat(imgID.replace("brand", ""));       //parseFloat(img.src.substring(img.src.length - 6).replace("/", ""));
    //alert(visibleBrands[imgNum])

    //alert(imgNum + "--" + visibleBrands[imgNum]);
    
    var Brand = Brands[visibleBrands[imgNum]]
    img.src = "/brands/" + Brand.imageFolder + "/grey.jpg";
    img.onmouseover = function() { this.src = this.src.replace("grey.jpg", "colour.jpg")};
    img.onmouseout = function() {this.src = this.src.replace("colour.jpg", "grey.jpg") };

    // Change the url
    var link = document.getElementById(imgID.replace("brand", "brandlink"));
    link.href = Brand.url;

    // When all finished
    if (fadedOutImages == 6) {
        // Fade them back in
        FadeIn("brand0", 0);
        FadeIn("brand1", 0);
        FadeIn("brand2", 0);
        FadeIn("brand3", 0);
        FadeIn("brand4", 0);
        FadeIn("brand5", 0);
    }
}

function FadedIn(imgID) {
    fadedOutImages--;
    // When all faded in
    if (fadedOutImages == 0) {
        // Set the cycle going again
        StartFade();
    }
}

function FadeOut(imgID, opacity) {
    if ((opacity - 0.02) < 0) {
        opacity = 0;
    } else {
        opacity -= 0.02;
    }
    DoFade(imgID, opacity);

    if (opacity > 0) {
        setTimeout(function() { FadeOut(imgID, opacity); }, speed);
    } else {
        FadedOut(imgID);
    }
}

function FadeIn(imgID, opacity) {
    if ((opacity + 0.02) > 1) {
        opacity = 1;
    } else {
        opacity += 0.02;
    }
    DoFade(imgID, opacity);
    if (opacity < 1) {
        setTimeout(function() { FadeIn(imgID, opacity); }, speed);
    } else {
        FadedIn(imgID);
    }
}

function DoFade(imgID, opacity) {
    var img = document.getElementById(imgID);

    if (typeof img.filters == "object") {
        if (opacity > 0 || opacity < 100) {
            img.style.filter = "alpha(opacity:" + opacity + ")";
            img.filters.alpha.opacity = opacity * 100;
        }
    } else if (typeof img.style.KhtmlOpacity != "undefined") {
        if (opacity > 0 || opacity < 1) {
            img.style.KhtmlOpacity = opacity;
        }
    } else {
        if (opacity > 0 || opacity < 1) {
            img.style.MozOpacity = opacity;
        }
    }
}

window.onload = function() {
    ImagefaderInit()
}
