// reflow page for correct cross-browser footer positioning

function reflow() {
    var bodydiv = document.getElementById("body");
    bodydiv.style.minHeight = "100%";
}



// workaround for absence of target attributes in xhtml strict

function externalLinks() {
 if (!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName("a");
 for (var i=0; i<anchors.length; i++) {
   var anchor = anchors[i];
   if (anchor.getAttribute("href") &&
       anchor.getAttribute("rel") == "external")
     anchor.target = "_blank";
 }
}



// display client list based on type, set initial type to display on page load

var client_types = new Array("gov", "org", "biz", "finance", "promo", "retail", "social", "edu", "trade");
var i = 0;
var currTable = '';
var newTable = '';

function displayClients(type) {
   for (var i = 0; i < client_types.length; i++) {
      currTable = document.getElementById("clients_" + client_types[i]);
      currTable.style.display = "none";
   }
   newTable = document.getElementById("clients_" + type);
   newTable.style.display = "block";
}

function loadClients() {
   if (document.title.search(/About\sUs/) != -1) {
      displayClients("trade");
      var dropdown = document.getElementById("clients_select");
      dropdown.value = "trade";
   }
}



// moo.fx accordion used to show/hide client info
/*
function startMoo() {
if (document.title.search(/About\sUs/) != -1) {
  var mooTogs    = document.getElementsByClassName('moo_toggle');
  var mooStretch = document.getElementsByClassName('moo_stretch');

  // must be before mooAccordion
  mooTogs.each(function(tog, i) {
    tog.onclick = function() {
      if (tog.className == 'moo_stretch_active') {
        mooAccordion.clearAndToggle(mooStretch[i], i);
        tog.className = 'moo_toggle';
        return;
      }

      // reset them all then set clicked
      mooTogs.each(function(rtog, ri) {mooTogs[ri].className = 'moo_toggle';});
      tog.className='moo_stretch_active';
    };
  });

  var mooAccordion = new fx.Accordion(mooTogs, mooStretch, {opacity:true, width:false, height:true, duration: 500, toggle: true});
}
}



// moo.fx slideshow

countArticle = 0;
var mySlideData = new Array();

mySlideData[countArticle++] = new Array('img/gallery_colorzip.jpg','portfolio_web_colorzip.html',' ','<b>Colorzip Me</b>: &nbsp;[ <a href="portfolio_web_colorzip.html">case study</a> ]');
mySlideData[countArticle++] = new Array('img/gallery_qbf.jpg','portfolio_web_qbf.html',' ','<b>Quick Brown Fox</b>: &nbsp;[ <a href="portfolio_web_qbf.html">case study</a> ]');
mySlideData[countArticle++] = new Array('img/gallery_ellipsiz.jpg','portfolio_web_ellipsiz.html',' ','<b>Ellipsiz Ltd</b>: &nbsp;[ <a href="portfolio_web_ellipsiz.html">case study</a> ]');
mySlideData[countArticle++] = new Array('img/gallery_nss.jpg','portfolio_web_nss.html',' ','<b>Nature Society (Singapore)</b>: &nbsp;[ <a href="portfolio_web_nss.html">case study</a> ]');
mySlideData[countArticle++] = new Array('img/gallery_aramsa.jpg','portfolio_web_aramsa.html',' ','<b>Aramsa Spas</b>: &nbsp;[ <a href="portfolio_web_aramsa.html">case study</a> ]');
mySlideData[countArticle++] = new Array('img/gallery_ocean2u.jpg','portfolio_web_ocean2u.html',' ','<b>Ocean2u</b>: &nbsp;[ <a href="portfolio_web_ocean2u.html">case study</a> ]');
mySlideData[countArticle++] = new Array('img/gallery_skm.jpg','portfolio_web_skm.html',' ','<b>SkinnyMunster</b>: &nbsp;[ <a href="portfolio_web_skm.html">case study</a> ]');
mySlideData[countArticle++] = new Array('img/gallery_geno.jpg','portfolio_web_geno.html',' ','<b>Genometri</b>: &nbsp;[ <a href="portfolio_web_geno.html">case study</a> ]');
mySlideData[countArticle++] = new Array('img/gallery_cnb.jpg','portfolio_web_cnb.html',' ','<b>Making the Difference, CNB</b>: &nbsp;[ <a href="portfolio_games_cnb.html">case study</a> ]');
mySlideData[countArticle++] = new Array('img/gallery_spf1.jpg','portfolio_web_spf1.html',' ','<b>Get Connected I, SPF</b>: &nbsp;[ <a href="portfolio_games_spf1.html">case study</a> ]');
mySlideData[countArticle++] = new Array('img/gallery_spf2.jpg','portfolio_web_spf2.html',' ','<b>Get Connected II, SPF</b>: &nbsp;[ <a href="portfolio_games_spf2.html">case study</a> ]');
mySlideData[countArticle++] = new Array('img/gallery_pwc.jpg','portfolio_web_pwc.html',' ','<b>Awareness Game, PWC</b>: &nbsp;[ <a href="portfolio_games_pwc.html">case study</a> ]');

function startSlideshow() {
   if (document.title.search(/Portfolio/) != -1 && document.title.search(/Portfolio\s-\s/) == -1)
      var slideshow = new timedSlideShow($('gallerySS'), mySlideData);
}

*/

// check if contact form input/textarea fields are filled in, ie they have values other than their default values
// if not, remove default values so they are not submitted
// type 0 = get in touch, type 1 = contact

var contact_fields = "";

function checkFields(type) {
   if (type == 0)
      contact_fields = new Array("name", "company name", "email", "message");
   else
      contact_fields = new Array("name", "company name", "email", "contact number", "message");

   for (var i = 0; i < contact_fields.length; i++) {
      if (type == 0)
         currFieldName = "getintouch_" + contact_fields[i];
      else
         currFieldName = "contact_" + contact_fields[i].replace(" ", "_");

      currField = document.getElementById(currFieldName);

      if (type == 1 && contact_fields[i] == "message" && currField.value == "comments / questions")
         currField.value = "";
      else if (currField.value == contact_fields[i])
         currField.value = "";
   }
   return true;
}



// scroll internal links smoothly (id used instead of name attribute)
/*
var ScrollLinks = {
    currentHash: false,
    start: function(){
        this.scroll = new fx.Scroll({duration: 800, onComplete: function(){ScrollLinks.end();}});
        this.allinks = document.getElementsByTagName('a');
        for (i=0; i<this.allinks.length; i++){
            var lnk = this.allinks[i];
            if (lnk.href) {
                var decoded_location_pathname = unescape(location.pathname.replace(/\+/g,  " "));
                var decoded_lnk_pathname = unescape(lnk.pathname.replace(/\+/g,  " "));
            }
            if ((lnk.href && lnk.href.indexOf('#') != -1) && (lnk.hash.length > 0) && ( (decoded_lnk_pathname == decoded_location_pathname) || ('/'+decoded_lnk_pathname == decoded_location_pathname) ) && (lnk.search == location.search)) {
                lnk.onclick = function(){
                    ScrollLinks.scroll.clearTimer();
                    this.initialHref = this.href;
                    this.initialHash = this.hash;
                    this.href = "javascript:void(0)";
                    setTimeout(function(){this.href = this.initialHref;}.bind(this), 200);
                    ScrollLinks.click(this);
                }
            }
        }
    },

    click: function(link){
        this.currentHash = link.initialHash.substr(1);
        if (this.currentHash) {
            for (j=0; j<this.allinks.length; j++){
                if (this.allinks[j].id == this.currentHash){
                    if (!window.opera) this.scroll.scrollTo(this.allinks[j]);
                    else this.scroll.scrollTo(this.allinks[j].parentNode);
                    break;
                }
            }
        }
    },

    end: function(){
        window.location.href = "#"+this.currentHash;
        this.currentHash = false;
    }
}
*/


// equalize heights of left/right floated divs
// add 20 (px) to compensate for bottom padding

/*
Derived from a script by Alejandro Gervasio.
Modified to work in FireFox by Stefan Mischook for Killersites.com

How it works: just apply the CSS class of 'column' to your pages' main columns.
*/
matchColumns=function(){

     var divs,contDivs,maxHeight,divHeight,d;

     // get all <div> elements in the document
     divs=document.getElementsByTagName('div');
     contDivs=[];

     // initialize maximum height value
     maxHeight=0;

     // iterate over all <div> elements in the document
     for(var i=0;i<divs.length;i++){

          // make collection with <div> elements with class attribute 'container'
          if(/\bcolumn\b/.test(divs[i].className)){
                d=divs[i];
                contDivs[contDivs.length]=d;

                // determine height for <div> element
                if(d.offsetHeight){
                     divHeight=d.offsetHeight;
                }

                else if(d.style.pixelHeight){
                     divHeight=d.style.pixelHeight;
                }

                // calculate maximum height
                maxHeight=Math.max(maxHeight,divHeight);
          }
     }

     // assign maximum height value to all of container <div> elements
     for(var i=0;i<contDivs.length;i++){
          contDivs[i].style.height=(maxHeight+20) + "px";
     }
}



// run all necessary functions on page load

function loadAll() {
   reflow();
   externalLinks();
   loadClients();
   //startMoo();
   //startSlideshow();
   if (document.title.search(/Portfolio\s-\s/) != -1)
      enableTooltips("portfolio_imgs");
   //ScrollLinks.start();
   matchColumns();
}
window.onload = loadAll;