/**
 * @name        Global Initialisation
 * @overview    An automated documentation publishing system for JavaScript.
 * @version        0.1
 * @revision    2007-06-01 00:00:00
 */

/**
 * @function    PageLoad_Init
 * @description    Toggles the class of elements either on or off
 */
var PRELOADS = new Object;
function PageLoad_Init () {
  PageLoad_Init_Corners ( )
  PageLoad_Init_FirstLast ( );
  PageLoad_Init_Links ( );
  PageLoad_Init_ContactForm ( );
  PageLoad_Init_FilterTypes ( );
  PageLoad_Init_SearchField ( );
  PageLoad_Init_unObtrusiveLink ( );

  // get relative path for js/images folder via iPathFinder
  var jsPath = fGetRelativePath();
  function fGetRelativePath(){
    var s = document.getElementById("iPathFinder");
    if(s == null) return "/tpl/js/"; // play safe, should never need to hard code this but just incase.
    return String(s.src).match(/.*[/]/gi);
}

var rollover = function ( ev ) {
  var b = YAHOO.util.Dom.get ( PRELOADS['out'+this.id].target )
  if ( b ) {
    b.src    = PRELOADS['ovr'+this.id].src
  }
}
var rollout = function ( ev ) {
  var b = YAHOO.util.Dom.get ( PRELOADS['out'+this.id].target )
  if ( b ) {
    b.src    = PRELOADS['out'+this.id].src
  }
}
var addEvents = function ( elements, images, imgId ) {
  if ( elements ) {
    for ( var i = 0; i < elements.length; i++ ) {
      var element    = YAHOO.util.Dom.get ( elements[i] )
      var img        = YAHOO.util.Dom.get ( imgId )
      var src        = null
      if ( img ) {
        src        = img.src
      }
      if ( element.id ) {
        PRELOADS['ovr' + element.id]            = new Image
        PRELOADS['ovr' + element.id].src        = images[i];
        PRELOADS['out' + element.id]            = new Object

        PRELOADS['out' + element.id].src        = src
        PRELOADS['out' + element.id].target        = imgId;
        YAHOO.util.Event.addListener ( element, "mouseover", rollover );
        YAHOO.util.Event.addListener ( element, "mouseout" , rollout  );
      }
    }
  }
}
//    if ( YAHOO.util.Dom.get ( 'iPanelIndustryFocus' ) ) {
//        addEvents ( ['iFMCG', 'iWorldpanel', 'iConsumer', 'iTechnology', 'iFinance', 'iMedia', 'iMediaIntelligence', 'iMediaResearch', 'iHealthcare', 'iAutomotive', 'iPolitical' ],
//                    [jsPath+'images/ro_fmcg.jpg', jsPath+'images/ro_worldpanel.jpg', jsPath+'images/ro_consumer.jpg', jsPath+'images/ro_technology.jpg', jsPath+'images/ro_finance.jpg', jsPath+'images/ro_media.jpg', jsPath+'images/ro_mediaintelligence.jpg', jsPath+'images/ro_mediaresearch.jpg', jsPath+'images/ro_healthcare.jpg', jsPath+'images/ro_automotive.jpg', jsPath+'images/ro_politicalandpublicservices.jpg' ],
//                    'iPanelIndustryFocusRollover'
//                    )
//    }
//    if ( YAHOO.util.Dom.get ( 'iPanelOurExpertise' ) ) {
//        addEvents ( [ 'iOurExpertiseSpeciaistExpertise', 'iOurExpertiseGlobalBrands', 'iOurExpertiseInsightServices' ],
//                    [ jsPath+'images/ro_specialistexpertise.jpg', jsPath+'images/ro_globalbrands.jpg', jsPath+'images/ro_insightservices.jpg' ],
//                    'iPanelOurExpertiseRollover'
//                    )
//    }
var links    = YAHOO.util.Dom.getElementsBySelector ( 'div#iNavL2 ul li a.jsCollapse' )
if ( links ) {
  var caller = function ( ev ) {
    var links    = YAHOO.util.Dom.getElementsBySelector ( 'div#iNavL2 ul li a.jsCollapse' )
    for ( var i = 0; i < links.length; i++ ) {
      var link    = links[i]
      var parent    = link.parentNode
      if ( link == this ) {
        YAHOO.util.Dom.toggleClass ( parent, 'jsClosed' )
      } else {
        YAHOO.util.Dom.addClass ( parent, 'jsClosed' )
      }
    }
    if ( ev ) {
      YAHOO.util.Event.stopEvent(ev);
    }
  }
  for ( var i = 0; i < links.length; i++ ) {
    var link    = links[i]
    var parent    = link.parentNode
    if ( !YAHOO.util.Dom.hasClass ( link, 'jsToggleOpen' ) ) {
      YAHOO.util.Dom.addClass ( parent, 'jsClosed' )
    }
    YAHOO.util.Event.addListener ( link, "click",  caller  );
  }
}
};
/**
* @function    PageLoad_Init_Links
* @description    --
*/
function PageLoad_Init_Links ( ) {
var tmp_anchors    = document.getElementsByTagName ('a');
for (var i = 0; i < tmp_anchors.length; i++) {
  var tmp_anchor    = tmp_anchors [ i ];

  // new global behaviour - all external links and downloadable files to open in a new window
  if(getLinkType(tmp_anchor) != null){
    tmp_anchor.target    = '_blank';
  }
  // if rel="external" - open in a new window
  if (tmp_anchor.getAttribute ('href') && tmp_anchor.getAttribute ('rel') == 'external') {
    tmp_anchor.target    = '_blank';
  };
  // if rel="internal" - open in SAME window
  if (tmp_anchor.getAttribute ('href') && tmp_anchor.getAttribute ('rel') == 'internal') {
    tmp_anchor.target    = '';
  };
};
function getLinkType(node){
  // check external
  var d = String(document.location.hostname).toLowerCase().split(".");
  if(d.length>1) { d[0] = ""; d = d.join("."); }
  var a = String(node.hostname).toLowerCase();
  if(a==""||a=="void(0)") return null;
  if(a.indexOf(d)<0) return "External";
  // get file name portion only
  a = String(node.href).toLowerCase().split("?");
  a = a[0].split("/");
  a = a[a.length-1];
  // check for PDF
  if(a.indexOf(".pdf")>-1) return "pdf";
  // check for DOC
  if(a.indexOf(".doc")>-1) return "doc";
  return null;
}
};
/**
* @function    PageLoad_Init_FirstLast
* @description    Adds 'first' and 'last' classes to various elements
*/
function PageLoad_Init_FirstLast ( ) {
$D                    = YAHOO.util.Dom;
// add classes to columns
var tmp_rows        = $D.getElementsByClassName ( 'row', 'div' );
for ( var i = 0; i < tmp_rows.length; i++ ) {
  var tmp_row        = tmp_rows [ i ];
  var tmp_cols    = $D.getElementsByClassName ( 'col', 'div', tmp_row );
  if ( tmp_cols.length ) {
    $D.addClass ( tmp_cols [ 0 ], 'first' );
    $D.addClass ( tmp_cols [ tmp_cols.length - 1 ], 'last' );
  };
};
// add classes to lists
var tmp_lists        = document.getElementsByTagName ( 'ul' );
for ( var i = 0; i < tmp_lists.length; i++ ) {
  var tmp_list    = tmp_lists [ i ].getElementsByTagName ( 'li' );
  if ( tmp_list.length ) {
    $D.addClass ( tmp_list [ 0 ], 'first' );
    $D.addClass ( tmp_list [ tmp_list.length - 1 ], 'last' );
  }
};
var tmp_lists        = document.getElementsByTagName ( 'ol' );
for ( var i = 0; i < tmp_lists.length; i++ ) {
  var tmp_list    = tmp_lists [ i ].getElementsByTagName ( 'li' );
  if ( tmp_list.length ) {
    $D.addClass ( tmp_list [ 0 ], 'first' );
    $D.addClass ( tmp_list [ tmp_list.length - 1 ], 'last' );
  }
};
};
/**
* @function    PageLoad_Init_Corners
* @description    Add rounded corners to all elements that require them
*/
function PageLoad_Init_Corners ( ) {
if ( ThinkCo.component.Corners ) {
  var $C        = ThinkCo.component.Corners;
  $C.internal ( YAHOO.util.Dom.getElementsBySelector ( 'div.module h3' ), '', '', 2, 'span' );
  $C.internal ( YAHOO.util.Dom.getElementsBySelector ( 'div.module h2' ), '', '', 2, 'span' );
  $C.internal ( YAHOO.util.Dom.getElementsBySelector ( 'blockquote' ), '', '', 3, 'span' );
  $C.internal ( YAHOO.util.Dom.getElementsBySelector ( 'div.links' ), '', '', 2, 'span' );
  $C.internal ( YAHOO.util.Dom.getElementsBySelector ( 'div#iNavL2 ul li a' ), '', '', 2, 'span' );
  $C.internal ( YAHOO.util.Dom.getElementsBySelector ( 'div#iNavL2 ul li span.here' ), '', '', 2, 'span' );
  $C.externalWrap ( YAHOO.util.Dom.getElementsBySelector ( 'div.module div.subcontainer' ), '', '', 2, 'div');
};
};
/**
*
*/
function PageLoad_Init_SearchField ( ) {
var tmp_search    = YAHOO.util.Dom.get ( 'iSearchField' );
if ( tmp_search ) {
  tmp_search.value    = 'ieškoti'
  var tmp_focus = function ( ) {
    var tmp_val    = this.value.trim();
    if ( tmp_val == 'ieškoti' ) {
      this.value    = ''
    };
  };
  var tmp_blur = function ( ) {
    var tmp_val    = this.value.trim();
    if ( tmp_val == '' || tmp_val == 'ieškoti' ) {
      this.value    = 'ieškoti'
    };
  };
  YAHOO.util.Event.addListener ( tmp_search, "focus", tmp_focus );
  YAHOO.util.Event.addListener ( tmp_search, "blur",  tmp_blur  );
};
}
function PageLoad_Init_ContactForm ( ) {
var tmp_searchBy    = YAHOO.util.Dom.get ( 'ContactForm_lstType' )
if ( tmp_searchBy ) {
  var tmp_selectSector = YAHOO.util.Dom.get ( 'ContactForm_lstType_0' )
  var callerBySector = function ( ev ) {
    YAHOO.util.Dom.removeClass ( 'iFindExpertSector', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'iFindExpertBrands', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'iFindExpertServices', 'jsHide' );
  }
  YAHOO.util.Event.addListener ( tmp_selectSector, "click",  callerBySector  );

  var tmp_selectBrand = YAHOO.util.Dom.get ( 'ContactForm_lstType_2' )
  var callerByBrand = function ( ev ) {
    YAHOO.util.Dom.addClass ( 'iFindExpertSector', 'jsHide' );
    YAHOO.util.Dom.removeClass ( 'iFindExpertBrands', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'iFindExpertServices', 'jsHide' );
  }
  YAHOO.util.Event.addListener ( tmp_selectBrand, "click",  callerByBrand  );
  var tmp_selectService = YAHOO.util.Dom.get ( 'ContactForm_lstType_1' )
  var callerByService = function ( ev ) {
    YAHOO.util.Dom.addClass ( 'iFindExpertSector', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'iFindExpertBrands', 'jsHide' );
    YAHOO.util.Dom.removeClass ( 'iFindExpertServices', 'jsHide' );
  }
  YAHOO.util.Event.addListener ( tmp_selectService, "click",  callerByService  );
}
}
function PageLoad_Init_FilterTypes ( ) {
var tmp_searchBy    = YAHOO.util.Dom.get ( 'FilterTypes_lstType' )
if ( tmp_searchBy ) {
  var tmp_selectSector = YAHOO.util.Dom.get ( 'FilterTypes_lstType_0' )
  var callerBySector = function ( ev ) {
    YAHOO.util.Dom.removeClass ( 'FilterTypes_iFindExpertSectors', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'FilterTypes_iFindExpertBrands', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'FilterTypes_iFindExpertServices', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'FilterTypes_iFindExpertCountries', 'jsHide' );
  }
  YAHOO.util.Event.addListener ( tmp_selectSector, "click",  callerBySector  );
  var tmp_selectBrand = YAHOO.util.Dom.get ( 'FilterTypes_lstType_2' )
  var callerByBrand = function ( ev ) {
    YAHOO.util.Dom.addClass ( 'FilterTypes_iFindExpertSectors', 'jsHide' );
    YAHOO.util.Dom.removeClass ( 'FilterTypes_iFindExpertBrands', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'FilterTypes_iFindExpertServices', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'FilterTypes_iFindExpertCountries', 'jsHide' );
  }
  YAHOO.util.Event.addListener ( tmp_selectBrand, "click",  callerByBrand  );
  var tmp_selectService = YAHOO.util.Dom.get ( 'FilterTypes_lstType_1' )
  var callerByService = function ( ev ) {
    YAHOO.util.Dom.addClass ( 'FilterTypes_iFindExpertSectors', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'FilterTypes_iFindExpertBrands', 'jsHide' );
    YAHOO.util.Dom.removeClass ( 'FilterTypes_iFindExpertServices', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'FilterTypes_iFindExpertCountries', 'jsHide' );
  }
  YAHOO.util.Event.addListener ( tmp_selectService, "click",  callerByService  );
  var tmp_selectCountry = YAHOO.util.Dom.get ( 'FilterTypes_lstType_3' )
  var callerByCountry = function ( ev ) {
    YAHOO.util.Dom.addClass ( 'FilterTypes_iFindExpertSectors', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'FilterTypes_iFindExpertBrands', 'jsHide' );
    YAHOO.util.Dom.addClass ( 'FilterTypes_iFindExpertServices', 'jsHide' );
    YAHOO.util.Dom.removeClass ( 'FilterTypes_iFindExpertCountries', 'jsHide' );
  }
  YAHOO.util.Event.addListener ( tmp_selectCountry, "click",  callerByCountry  );
}
}

function PageLoad_Init_unObtrusiveLink ( )
{
var deliciousLink        = document.getElementById('delicious');
if  (
deliciousLink
)
{
  deliciousLink.onclick    = function()
  {
    window.open(this.href, 'delicious','toolbar=no,width=700,height=400');
    return false;
  }
}

var stumbleLink        = document.getElementById('stumbleupon');
if  (
stumbleLink
)
{
  stumbleLink.onclick    = function()
  {
    window.open(this.href, 'stumbleupon','toolbar=no,width=700,height=400');
    return false;
  }
}


var links    =    document.getElementsByTagName('a');
for(var i = 0 ; i < links.length; i++)
{
  switch(true)
  {
    case /popUp/.test(links[i].className):
      links[i].onclick    =    function ()
      {
        window.open(this.href, 'sendtofriend', 'location=0,toolbar=0,status=0,scrollbars=1,width=650,height=470');
        return(false);
      }
      break;
  }
}
}


// add the event call
YAHOO.util.Event.onDOMReady ( PageLoad_Init );

// Homepage Accordion (requires js\thirdparty\mootools.js)
function Init_HmPgAccordion(){

  var accordion = new Accordion('dt a', 'dd', {
    opacity: false,
    show: 0,
    fixedHeight: 250, // same value in css for dl#iOurExpertiseMenu dd.open
    onActive: function(toggler, element){
      $(toggler.parentNode).addClass('open');
    },
    onBackground: function(toggler, element){
      $(toggler.parentNode).removeClass('open');
    }
  }, $('iOurExpertiseMenu'));
  var lnk = $ES('dt a', 'iOurExpertiseMenu');
  for (var i=0; i<lnk.length; i++) lnk[i].addEvent("click", function(event){ event = new Event(event); event.stop(); } );

}
Init_HmPgAccordion();
