// $Date: 2009/10/07 04:03:54 $
// $Name: ukconcept_v1_r95 $
// $Revision: 1.244 $
// $State: Exp $

//Global variables.
var uuid = getUUID();
var campaignid = getCampaignID();

function cb(e) {
    if(!e)var e=window.event;
    e.cancelBubble=true;
    if(e.stopPropagation)e.stopPropagation();
}

function winClick(ev){
    mkHm();
}

function mkHm() {
    var obj = document.getElementById('mkhp');
    if (!obj) {
        return;
    }
    obj.style.display='none';
}

function setHome(u,oLnk) {
    if(!u)u='http://www.aol.co.uk/';
    if(!oLnk)oLnk=document.getElementById("mkh");
    var clsNm=getBrowser();

    if(oLnk.addBehavior) {
        oLnk.style.behavior='url(#default#homepage)';
        oLnk.setHomePage(u);
        return false;
    } else if (clsNm!=null && clsNm.match('firefox')) {
        mkHome();
        return false;
    } else {
        window.open(oLnk.href,'_blank','height=540,width=625,status=1,menubar=1,scrollbars=1');
        return false;
    }
    return true;
}

function mkHome() {
    var obj = document.getElementById('mkhp');
    if (!obj) {
        return;
    }
    if (obj.style.display=='block') {
        obj.style.display='none';
    } else {
        posMkhome();
        obj.style.display='block';
    }
    return false;
}

function posMkhome(){
        var oDiv=document.getElementById('mkhp');
        var oLnk=document.getElementById('mkh');
    oDiv.style.left=(ai_posX(oLnk))+'px';
    oDiv.style.top=(ai_posY(oLnk)+15)+'px';
}

function ai_posX(obj){
    var left=0;
    if(obj.offsetParent){
        while(obj.offsetParent){
            left+=obj.offsetLeft;
            obj=obj.offsetParent;
        }
    }else if(obj.x)left+=obj.x;
    return left;
}
function ai_posY(obj){
    var top=0;
    if(obj.offsetParent){
        while(obj.offsetParent){
            top+=obj.offsetTop;
            obj=obj.offsetParent;
        }
    } else if(obj.x)top+=obj.y;
    return top;
}

function getBrowser() {
        var agt=navigator.userAgent.toLowerCase();
        if ((navigator.platform == "MacPPC" || navigator.platform == "mac") && agt.indexOf("aol") != -1) return 'aolmac';
        if (agt.indexOf("opera") != -1) return 'opera';
        if (agt.indexOf("staroffice") != -1) return 'staroffice';
        if (agt.indexOf("webtv") != -1) return 'webtv';
        if (agt.indexOf("beonex") != -1) return 'beonex';
        if (agt.indexOf("chimera") != -1) return 'chimera';
        if (agt.indexOf("netpositive") != -1) return 'netpositive';
        if (agt.indexOf("phoenix") != -1) return 'phoenix';
        if (agt.indexOf("firefox") != -1) return 'firefox';
        if (agt.indexOf("safari") != -1) return 'safari';
        if (agt.indexOf("skipstone") != -1) return 'skipstone';
        if (agt.indexOf("msie") != -1) return 'internetexplorer';
        if (agt.indexOf("netscape") != -1) return 'netscape';
        if (agt.indexOf("mozilla/5.0") != -1) return 'mozilla';
        if (agt.indexOf('\/') != -1) {
        if (agt.substr(0,agt.indexOf('\/')) != 'mozilla') {
        return navigator.userAgent.substr(0,agt.indexOf('\/'));}
        else return 'Netscape';} else if (agt.indexOf(' ') != -1)
        return navigator.userAgent.substr(0,agt.indexOf(' '));
        else return navigator.userAgent;
}

addEvent(document,"click",winClick,false);

// For Home link on navigation in client
function loadWelcome() {
  var oF = document.getElementById('loadFrame');
  if(oF) {
    oF.parentNode.removeChild(document.getElementById('loadFrame'));
  }
  var oF = document.createElement('IFRAME');
  oF.style.display = "none";
  oF.style.width = "1px";
  oF.style.height = "1px";
  oF.id = "loadFrame";
  document.getElementsByTagName('body').item(0).appendChild(oF);
  oF.src = "aol://1722:welcome";
}

// *************
// Super Tabs
// *************

var cobrandclient;
var isauthenticated;
var delayedShow;
var delayedHide = new Array();
var panelHover = false;
var openPanel;
var currentTab;
var tabSwitch = false;
var weatherRequest = "";
var horoscopesName = "";
var horoscopesRequest = "";
var hiddenPanels = "";
var timeDelay=0;
function superTabInit(){
    // Initial load mail panel
    var tabWrapper=document.getElementById('tabWrapper');
    if (tabWrapper) {
        var sn = document.location.search.split('sn=')[1];
        if (sn == undefined) {sn = '';}
        makeRequest('/ukrestart/supertabs.adp?tab=mail&currentTab=0&country=' + country + '&sn=' + sn, null, null, $('tab-panel-0')); 
    }
    tabAddEvents();
    tabSwitchAddEvents();
}

function tabAddEvents(){
    var elements = getElementsByClassName('buttonLink',document,'a');
    for (var i = 0; i < elements.length; i++) {
        var elementTitle = elements[i].title.toLowerCase();
        var hidePanel = hiddenPanels.toLowerCase().indexOf(elementTitle);
        if((hidePanel == -1)) {
            addEvent(elements[i],"mouseover",tabHoverHandler,false );
            addEvent(elements[i],"mouseout",tabHoverOffHandler,false );
            addEvent(elements[i],"click",disableClickHandler,false );
            if (elements[i].title == "Weather" || elements[i].title == "Wetter" || elements[i].title == "Météo") {
                addEvent(elements[i],"mouseover",weatherEventHandler,false );
            }
            if (elements[i].title == "Horoscopes" || elements[i].title == "Horoskope") {
                addEvent(elements[i],"mouseover",horoscopesEventHandler,false );
            }
        }else{
            addEvent(elements[i],"mouseover",noPaneltabHoverHandler,false );
        }
    }
    var sn = document.location.search.split('sn=')[1];
    if (sn == undefined) {
        sn = '';
    }
    panelAddEvents();
}

function currentTabNumber(ev,prefix){
    var obj=ev.currentTarget;
    var tabNumber=obj.id.substring(prefix.length);
    return tabNumber;
}

function tabHoverHandler(ev){ 
    var tabName = currentTabNumber(ev,'tab-button-');
    var obj=ev.currentTarget;
    if (obj.title == "Horoscopes") {
        horoscopesName = tabName;
    }
    if(delayedHide[tabName]){clearTimeout(delayedHide[tabName]);}
    delayedShow = setTimeout("displayPanel("+tabName+")",timeDelay);
    

}

function weatherEventHandler(ev) {
    stopDefaultAction(ev);
    var tabName = currentTabNumber(ev,'tab-button-');
    if (weatherRequest != tabName) {
        makeRequest('/ukrestart/supertabs.adp?tab=weather&country=' + country + '&currentTab=' + tabName, writeNonSwitchResponse, null, $('placeholder')); 
        weatherRequest = tabName;
    }
}

function horoscopesEventHandler(ev) {
    var tabName = currentTabNumber(ev,'tab-button-');
    if (horoscopesRequest != tabName) {
        makeRequest('/ukrestart/supertabs.adp?tab=horoscope&country=' + country + '&currentTab=' + tabName, writeNonSwitchResponse, null, $('placeholder')); 
        horoscopesRequest = tabName;
    }
}

function tabHoverOffHandler(ev){
    var tabName = currentTabNumber(ev,'tab-button-');
    delayedHide[tabName] = setTimeout("hideTab("+tabName+")",timeDelay);
    if(delayedShow){clearTimeout(delayedShow);}
}

function disableClickHandler(ev){
    if (tabSwitch) { stopDefaultAction(ev); }
}

function noPaneltabHoverHandler(ev){
    delayedShow = setTimeout("hidePanel()",timeDelay);
}

function panelAddEvents(){
    var tabWrapper = document.getElementById('tabWrapper');
	if(tabWrapper != null)
        addEvent(tabWrapper,"mouseout",panelHoverOffHandler,false );
}

function panelHoverOffHandler(ev){
    panelHover = true;
    var obj = ev.currentTarget;
    
    /* Prevent undesired internal mouseout event handling */
    if (ev.relatedTarget){
        var relObj = ev.relatedTarget;
    }else{
        if (window.event && window.event.toElement){
            var relObj = window.event.toElement;
        }
    }

    // try catch - FF js error "Permission denied to get property HTMLDivElement.parentNode"
    try{
        while (relObj && relObj != obj && relObj.nodeName != 'BODY'){
            relObj = relObj.parentNode;
        }
    } catch(err) {return;}
    if (relObj == obj) {
        return;
    }
    panelHover = false;
    setTimeout("hidePanel()",timeDelay);

}

function elementRemoveClass(obj,classRemove,classAdd) {
    if (classExists(obj,classRemove)) {
        removeClass(obj,classRemove);
        if (classAdd) {
            addClass(obj,classAdd);
        }
    }
    return
}

function displayPanel(elementName){
    openPanel = elementName;
    var panelContainer = document.getElementById('panelContainer');
    elementRemoveClass(panelContainer,'hidden','tabBody');
    var elements = getElementsByClassName('buttonLink',document,'a');
    for (var i = 0; i < elements.length; i++) {
        elementRemoveClass(elements[i],'tabSelected',null);
    }
    var tabElement = document.getElementById("tab-button-" + elementName);
    if (tabElement) {
        addClass(tabElement,'tabSelected');
    }
    var panelElement = document.getElementById("tab-panel-" + elementName);
    panelContainer.innerHTML = panelElement.innerHTML;
    if(tabElement.title=="Horoscopes") {
      horoscopeAddEvents();
    }
}

function displayPanelContainer(){
    var panelContainer = document.getElementById('panelContainer');
    elementRemoveClass(panelContainer,'hidden','tabBody');
}

function displayTabArrowUp(elementName){
    var switchItem = document.getElementById('tab-arrow-' + elementName);
    if (classExists(switchItem,'tabArrowImage')) {
        addClass(switchItem,'tabSelectedArrowImage');
    }
}

function removeTabArrowUp(elementName){
    var switchItem = document.getElementById('tab-arrow-' + elementName);
    elementRemoveClass(switchItem,'tabSelectedArrowImage',null);
}

function hideTab(elementName){
    var tabElement = document.getElementById("tab-button-" + elementName);
    if(!panelHover) {
        elementRemoveClass(tabElement,'tabSelected',null);
    }
}

function showSelectedTab(elementName){
    var tabElement = document.getElementById("tab-button-" + elementName);
    if (tabElement) {
        addClass(tabElement,'tabSelected');
    }
}

function hidePanel(){
    var elements = getElementsByClassName('buttonLink',document,'a');
    for (var i = 0; i < elements.length; i++) {
        elementRemoveClass(elements[i],'tabSelected',null);
    }
    var panelContainer = document.getElementById('panelContainer');
    elementRemoveClass(elements[i],'tabBody','hidden');
    panelContainer.innerHTML = "";
    if(openPanel >= 0){
        var tabElement = document.getElementById("tab-button-" + openPanel);
        if(!panelHover) {
            elementRemoveClass(tabElement,'tabSelected',null);
        }
        var panelContainer = document.getElementById('panelContainer');
        elementRemoveClass(panelContainer,'tabBody','hidden');
        panelContainer.innerHTML = "";
    }
}

// Add events for Horoscope links
function horoscopeAddEvents(){ 
  var elements = getElementsByClassName('starSigns',document,'a');
    for (var i = 0; i < elements.length; i++) {
        addEvent(elements[i],"click",horoscopeClickHandler,false );
    }

  var changeHoro = getElementsByClassName('changeSign',document,'a');
      if (changeHoro.length > 0) {        
          addEvent(changeHoro[i],"click",changeHoroscopeClickHandler,false );     
    }
}

function horoscopeClickHandler(ev){
    var obj=ev.currentTarget;
    var sign=obj.id;
    
    if (horoscopesName == "")   {
        horoscopesName = tabSwitchName;
    }
        
    makeRequest('/ukrestart/supertabs.adp?tab=horoscope&country=' + country + '&currentTab=' + horoscopesName + '&sign=' + sign, writeNonSwitchResponse, null, $('placeholder')); 
}

function changeHoroscopeClickHandler(ev) {  
    makeRequest('/ukrestart/supertabs.adp?tab=horoscope_all&country=' + country + '&currentTab=' + horoscopesName, writeNonSwitchResponse, null, $('placeholder')); 
}


// Add events to the tab switch drop down arrow 
function tabSwitchAddEvents(){
    var elements = getElementsByClassName('tabArrowImage',document,'span');
    for (var i = 0; i < elements.length; i++) {
        addEvent(elements[i],"click",tabSwitchHandler,false );
    }
    addEvent(document,'click',closeSwitchList,false);
}

var tabSwitchName = "";
var currentListOpen = "";

function tabSwitchHandler(ev){
    tabSwitchName = currentTabNumber(ev,'tab-arrow-');
    currentTab = tabSwitchName;
    var tabSwitchWrapper = document.getElementById('tabSwitch');

    var selectedTab = document.getElementById('tab-button-' + tabSwitchName);
    var elements = getElementsByClassName('tabSwitchItem',document,'a');
    for (var i = 0; i < elements.length; i++) {
        elementRemoveClass(elements[i],'selected',null);
        if(elements[i].innerHTML == selectedTab.title){
            addClass(elements[i],'selected');
        }
    }

    if (tabSwitch){
        // Close tab switch list if selected list is open
        if (currentListOpen == tabSwitchName) {     
            if (classExists(tabSwitchWrapper,'show' + currentListOpen)) {
                stopDefaultAction(ev);
                removeClass(tabSwitchWrapper,'show' + currentListOpen);
                addClass(tabSwitchWrapper,'hidden');
                removeTabArrowUp(currentListOpen);
                tabSwitch = false;
            }
        } else {    
            // Move tab switch list if another tab switch(arrow) is selected
            if (classExists(tabSwitchWrapper,'show' + currentListOpen)) {
                elementRemoveClass(tabSwitchWrapper,'show' + currentListOpen,'show' + tabSwitchName);
                removeTabArrowUp(currentListOpen);
                displayTabArrowUp(tabSwitchName);
                currentListOpen = tabSwitchName;
            } 
        }
    } else {
        // Open tab switch list
        tabSwitch = true;
        if (classExists(tabSwitchWrapper,'hidden')) {
            elementRemoveClass(tabSwitchWrapper,'hidden','show' + tabSwitchName);
            displayTabArrowUp(tabSwitchName);
            currentListOpen = tabSwitchName;
        }
    }
    switchListAddEvent();
}

// Attach events to the tab switch list
function switchListAddEvent(){
    var elements = getElementsByClassName('tabSwitchItem',document,'a');
    for (var i = 0; i < elements.length; i++) {
        addEvent(elements[i],"click",switchListHandler,false );
    }
}

function switchListHandler(ev){
    stopDefaultAction(ev);
    var tabSwitcherName = currentTabNumber(ev,'tab-switch-');
    makeRequest('/ukrestart/supertabs.adp?action=switch&country=' + country + '&currentTab=' + currentTab + '&newTab=' + tabSwitcherName, writeSwitchResponse, null, $('placeholder'));
}

// Search for a key within a url and return the key value
function splitQueryString(url,query) {  
    var splitUrl = url.split('&');
    var queryMatch;
    for (var i = 0; i < splitUrl.length; i++) {
        var urlArray = splitUrl[i].split('=');
        if (urlArray[0] == query) {
            queryMatch = urlArray[1];
        }
    }
    return queryMatch;
}

// Write response from tab switch ajax request
function writeSwitchResponse(url, response, obj){
    var currTab = splitQueryString(url,'currentTab');
    //hideTab(currTab);
    obj.innerHTML = response;
    displayPanelContainer();
    var tabPosition = document.getElementById('tab-item-' + currTab);
    var newTab = document.getElementById('tab-place-holder');
    var panelContainer = document.getElementById('panelContainer');
    var newPanel = document.getElementById('panel-place-holder');
    if (newTab) { 
        tabPosition.innerHTML = newTab.innerHTML; 
        // Clear contents in placeholder tab div
        newTab.innerHTML = "";
    }
    showSelectedTab(currTab);
    if (newPanel) { panelContainer.innerHTML = newPanel.innerHTML; }
    var tabSwitchWrapper=document.getElementById('tabSwitch');
    panelAddEvents();
    removeTabArrowUp(tabSwitchName);
    if (classExists(tabSwitchWrapper,'show' + tabSwitchName)) {
        removeClass(tabSwitchWrapper,'show' + tabSwitchName);
        addClass(tabSwitchWrapper,'hidden');
        tabSwitch = false;
    }
    var hiddenTabPanel = document.getElementById('tab-panel-'+currTab);
    if (hiddenTabPanel && newPanel) { hiddenTabPanel.innerHTML = newPanel.innerHTML; }
    tabAddEvents();
    var tabArrow = document.getElementById('tab-arrow-' + currTab);
    addEvent(tabArrow,"click",tabSwitchHandler,false );
    horoscopeAddEvents();
}

//Write response that are not from tab switching ajax requests i.e weather mouseover
function writeNonSwitchResponse(url, response, obj){
    var currTab = splitQueryString(url,'currentTab');
    obj.innerHTML = response;
    // Evaluates functions within the response
    sethtml(url, response, obj);
    var elements = getElementsByClassName('buttonLink',document,'a');
    for (var i = 0; i < elements.length; i++) {
        elementRemoveClass(elements[i],'tabSelected',null);
    }
    var tabPosition = document.getElementById('tab-item-' + currTab);
    var newTab = document.getElementById('tab-place-holder');
    var panelContainer = document.getElementById('panelContainer');
    var newPanel = document.getElementById('panel-place-holder');
    if (newTab) { 
        tabPosition.innerHTML = newTab.innerHTML; 
        // Clear contents in placeholder tab div
        newTab.innerHTML = "";
    }
    showSelectedTab(currTab);
    if (newPanel) { panelContainer.innerHTML = newPanel.innerHTML; }
    var hiddenTabPanel = document.getElementById('tab-panel-' + currTab);
    if (hiddenTabPanel && newPanel) { hiddenTabPanel.innerHTML = newPanel.innerHTML; }
    panelAddEvents();
    tabAddEvents();
    
    if (newTab) {
        var tabArrow = document.getElementById('tab-arrow-' + currTab);
        addEvent(tabArrow,"click",tabSwitchHandler,false );
    }
    horoscopeAddEvents();
}

// Closes tab switch list
function closeSwitchList(ev) {
    var superTabSwitchList = document.getElementById('tabSwitch');
    if (superTabSwitchList) {
        if (classExists(superTabSwitchList,'show' + currentListOpen)) {
            stopDefaultAction(ev);
            removeClass(superTabSwitchList,'show' + currentListOpen);
            addClass(superTabSwitchList,'hidden');
            tabSwitch = false;
            removeTabArrowUp(currentListOpen);
            //tabAddEvents();
        }
    }
}


addEvent(this,"load",superTabInit,false);


function addEvent(elm, evType, fn, useCapture)
{
    if (elm==null){
        return null;
    }
    if (/safari/i.test(navigator.userAgent) && evType == 'dblclick') {
        elm['ondblclick'] = handler;
    } else if (elm.addEventListener){
        elm.addEventListener(evType, fn, useCapture);
        return true;
    } else if (elm.attachEvent){
        var r = elm.attachEvent('on'+evType, function(){ fn(new W3CDOM_Event(elm)) } );
        return r;
    } else {
        throw new UserException("Cannot add event listener");
    }
}

function W3CDOM_Event(currentTarget) {
    this.currentTarget  = currentTarget;
    this.preventDefault = function() { window.event.returnValue = false }
    return this;
}

function UserException(message) {
   this.message = message;
   this.name = "UserException";
}

function classExists(obj, className) {
    if (obj) {
        return new RegExp('\\b'+className+'\\b').test(obj.className);
    }
    return 0;
}

function removeClass(obj,className){
    var rep=obj.className.match(' '+className)?' '+className:className;
    obj.className=obj.className.replace(rep,'');
}

function addClass(obj,className){
    if(!classExists(obj,className)){
        obj.className+=' '+className;
    }
}

function getElementsByClassName(elemClass,elem,tag) {
    if ( typeof(elemClass) != "string") {   
        return aimgroupsGetElementsByClassName(elemClass, elem, tag);
    } else {  
    if (elem == null)
    {
        var matchingElements = new Array();
    } else {
        var sourceElements = elem.getElementsByTagName(tag);
        var matchingElements = new Array();
        var matchingElementsIndex = 0;
        var pattern = new RegExp("(^|\\s)"+elemClass+"(\\s|$)");
        for (i = 0; i < sourceElements.length; i++) {
            if ( pattern.test(sourceElements[i].className) ) {
                matchingElements[matchingElementsIndex] = sourceElements[i];
                matchingElementsIndex++;
            }
        }
    }
    return matchingElements;
    }
}

function aimgroupsGetElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];     
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }  
    }
    return (arrReturnElements)
}

//parallel to insertBefore function
function insertAfter(parent, node, referenceNode) {
    parent.insertBefore(node, referenceNode.nextSibling);
}

// cancels default event action
function stopDefaultAction(ev){
    ev.returnValue = false;
    ev.cancelBubble = true;
    if (!ev.type)
    {
        window.event.returnValue = false;
        window.event.cancelBubble = true;
    }
    if (typeof ev.preventDefault != "undefined")
    {
        ev.preventDefault();
    }
    if (typeof ev.stopPropagation != "undefined")
    {
        ev.stopPropagation();
    }
}

// Super Tabs - Pictures Tag Search
function Welcome(){}

Welcome.searchTags = function(){
    var tags = document.getElementById("searchTagsInput").value;
    if(tags.trim().length == 0){
        alert(g_strNoTags);
        return;
    }   
    if(country == 'uk') {
        var url = "http://aolpictures.aol.co.uk/galleries/tags/"+tags;
    }
    else if (country == 'fr')
    {
         var url = "http://webphotos.aol.fr/galleries/tags/"+tags;
    } 
     
    window.open(url);
}

Welcome.keyPress = function(evt, elem){
    var evt = (evt)? evt : window.event;
    if(evt.keyCode == 13 && elem.id == 'searchTagsInput'){
        Welcome.searchTags();           
    }
}

String.prototype.trim = function(){
return this.replace(/^[\n\r         ]*/, '').replace(/[\n         ]*$/, '');
}

String.prototype.isEmpty = function(){
return this.trim().length == 0;
}

// extension to getElementById function which allows the provision for multiple ids
function $() {
    var elements = new Array();
    for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
        element = document.getElementById(element);

    if (arguments.length == 1)
        return element;
        elements.push(element);
    }
    return elements;
}

// Generic Ajax functions
// cross-platform function for retrieving a XMLHTTPRequest object for makeRequest
var xmlHttpRating = false;
function GetXmlHttpObject() { 
    var objXMLHttp=null;
    if (window.XMLHttpRequest) {
        objXMLHttp=new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    return objXMLHttp;
}

function makeRequest(url, fn, postdata, obj){
    var xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null){
        alert ("Browser not supported");
        return;
    }
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { 
            var response = xmlHttp.responseText;
            if (obj && !fn)
            {
                obj.innerHTML = response;
            } else {
                fn(url, response, obj);
            }
        }
    }
    if (!postdata) {
    try {
        xmlHttp.open("GET",url,true);
        xmlHttp.setRequestHeader("Content-Type", "text/xml");  
        xmlHttp.send(null);
      }
      catch (e) {
      msg = (typeof e == "string") ? e : ((e.message) ? e.message : "Unknown Error");
      //alert("Unable to get XML data:\n" + msg + "\n" + url);
      return;
    }
    } else {
    try {
        xmlHttp.open("Post",url,true);
        xmlHttp.setRequestHeader("Content-Type", "text/xml"); 
        xmlHttp.send(postdata);
        }
        catch (e) {
      msg = (typeof e == "string") ? e : ((e.message) ? e.message : "Unknown Error");
      //alert("Unable to get XML data:\n" + msg);
      return;
    }
    }
}

// convert form elements to a querystring
function serialiseForm(form) {
    var strArr = form.elements.length > 0 ? "?" : "";
    for(i=0; i < form.elements.length; i++) {
        strArr += form.elements[i].name + '=' + form.elements[i].value;
        strArr += (i+1) < form.elements.length ? "&" : "";
    }
    return strArr;
}

// *************
// Rotator
// *************

function rotator(i,rI,u,n,rC,rP) {
    this.i = i;
    this.rI = rI;
    this.u = u;
    this.n = n;
    this.rC = rC;
    this.rP = rP;
    this.s = "initialising";
    this.headlines;
    this.subheadlines;
    this.c = 0;
    this.dC = 0;
    this.dI;
    this.dR;
    this.rflag = false;
    this.pause = false;
       
    this.init = function(r) {
        this.oX = -999;
        this.oY = -999;
        this.f = Array();
        this.headlines = Array();
        this.subheadlines = Array();
        this.x = 0;
        this.y = 0;
        try {
        this.C = document.getElementById(this.rC);
        this.P = document.getElementById(this.rP);
        this.headlines = document.getElementById("rC").getElementsByTagName("h2");
        this.subheadlines = getElementsByClassName("subheadline",this.C,"div");
        if(this.P.offsetParent) {
            var t = this.P;
            while(t.offsetParent) {
                this.x+=t.offsetLeft;this.y+=t.offsetTop;t=t.offsetParent;
            }
        }
        
        var tC = this.C.childNodes;
        for(var i=0;i<=tC.length-1;i++) {
            if(tC[i].nodeType==1) {
                if(tC[i].getAttribute("id").indexOf("r")==0) {
                    this.f[this.f.length] = tC[i];
                }
            }
        }

        if(!this.rflag) {
            var tmp = this.f[0].innerHTML;
            this.c = 0;
        } else {
            var tmp = this.f[this.c].innerHTML;
        }
        
        if(tmp!="") {
            this.P.innerHTML = "<div id='slide"+(this.c+1)+"' class=\"slide\">"+tmp+"</div>";
        this.buildTools();
        }   
        this.rflag = false;
        } catch(e) { }
    };
    
    this.move = function(f) {
        try {
        if(!f) {
            this.c++;
            (this.c==this.f.length)?this.c=0:this.c;
        } else if(this.mode=="back") {
            this.c--;
            (this.c<0)?this.c = this.f.length-1:this.c;
        } else if(this.mode=="jump") {
            this.c = f-1;
        }
        if(this.f[this.c].innerHTML!="") {
            this.P.innerHTML = "<div id='slide"+(this.c+1)+"'  class=\"slide\">"+this.f[this.c].innerHTML+"</div>";
            this.buildTools();
        }
        } catch(e) {}
    };
    
     this.action = function(action,x) {
        clearTimeout(this.dI);
        if(!action) { action = this.mode; }
        if(this.rflag&&action!="refresh") { this.init(true); }
        switch(action) {
            case "pause":
                this.pause = true;
                this.buildTools();
                this.mode = "pause";
                break;
            case "unpause":
                this.pause = false;
                this.buildTools();
                this.mode = "play";
                this.rotate();
                break;
            case "play":
                this.mode = "play";
                this.move();
                this.rotate();
                break;
            case "back":
                this.mode = "back";
                this.move(true);
                this.pause = true;
                this.buildTools();
                this.mode = "pause";
                break;          
            case "next":
                this.mode = "next";
                this.move();
                this.pause = true;
                this.buildTools();
                this.mode = "pause";
                break;
            case "jump":
                this.mode= "jump";
                this.move(x);
                break;
            case "refresh":
                this.refresh();
                break;
        }
        return false;
    };
    
    this.rotate = function() {
        this.dI = setTimeout(this.n+".action()",this.i);            
    };
    
    this.refresh = function () {
        try {
        clearTimeout(this.dI);
        if(!this.rflag) {
            this.rflag = true;
        }
        var hash = new Date().getTime();
        this.f[this.c].style.top = this.oY+"px";
        this.f[this.c].style.left = this.oX+"px";
        var req = new genericAjax(this.u+"&hash="+hash,"GET","TEXT",rotatorUpdateDisplay);
        this.dR = setTimeout(this.n+".action('refresh')",this.rI);
        } catch(e) {} 
    };
    
    this.asppImpression = function() {
    }
    
    this.buildTools = function() {
        var currentSlideNo = this.c +1;
        var nextSlideNo = this.c + 1;
        if(nextSlideNo >= this.headlines.length) {
            nextSlideNo = 0;
        }
        var nextHeadline = this.headlines[nextSlideNo].innerHTML;
        var nextSubHeadline = this.subheadlines[nextSlideNo].innerHTML;


        if (this.headlines[nextSlideNo].innerHTML == '&nbsp;') {
            nextHeadline = this.subheadlines[nextSlideNo].innerHTML;
            var s = "<div id=\"rtn\"><span id=\"nHeadline\">Next in: <a href=\"#\" onclick=\"return "+this.n+".action('next');\">"+ nextHeadline + "</a></span>";
        }
        else {  var s = "<div id=\"rtn\"><span id=\"nHeadline\">Next in " + nextHeadline + ": <a href=\"#\" onclick=\"return "+this.n+".action('next');\">"+ nextSubHeadline + "</a></span>";
        }


        s += "<div id=\"rControl\"><span id=\"rGroup\">" + currentSlideNo + "/" + (this.headlines.length) + "</span>";
        s += "<div id=\"rTL\"><a href=\"#\" onclick=\"return "+this.n+".action('back');\"></a></div>";
        if(this.pause) { s += "<div id=\"rTPauseOn\"><a href=\"#\"onclick=\"return "+this.n+".action('unpause');\"></a></div>";
        }
        else { s += "<div id=\"rTPauseOff\"><a href=\"#\"onclick=\"return "+this.n+".action('pause');\"></a></div>";
        }
        s += "<div id=\"rTR\"><a href=\"#\" onclick=\"return "+this.n+".action('next');\"></a></div></div>";
        try {
        document.getElementById("rP").innerHTML += s;   
        } catch(e) {}
    }

    this.init();this.mode="play";this.rotate();
}

function sethtml(url,content,obj) { 
    var search = content; 
    var script; 
    var is_singleq = 0; var singleq = "'"; 
    var is_doubleq = 0; var doubleq = '"'; 
    var is_escaped = 0; var escap = "\\"; 
    var layer = 0; 

    while( script = search.match(/(<script[^>]+javascript[^>]+>\s*(<!--)?)/)) { 
        search = search.substr(search.indexOf(RegExp.$1) + RegExp.$1.length); 
        if (!(endscript = search.match(/((-->)?\s*<\/script>)/))) break; 
        block = search.substr(0, search.indexOf(RegExp.$1)); 
        search = search.substring(block.length + RegExp.$1.length); 
         
        while(func = block.match(/(function(.+?)\((.*?)\)\s*\{)/)) { 
            eval(block.substr(0,block.indexOf(RegExp.$1))); 
           // for evaluating non functions 
            block = block.substr(block.indexOf(RegExp.$1) + RegExp.$1.length); 
            name = RegExp.$2; 
            param = RegExp.$3; 
            
            is_singleq = 0; 
            is_doubleq = 0; 
            is_escaped = 0; 
            layer = 0; 
            
            for(i=0;i<block.length;i++) { 
                c = block.substr(i,1); 
               
                if ((is_singleq || is_doubleq) && is_escaped) { 
                    is_escaped = 0; 
                } else if (!is_doubleq && (c==singleq)) { 
                    is_singleq = !is_singleq; 
                } else if (!is_singleq && (c==doubleq)) { 
                    is_doubleq = !is_doubleq; 
                } else if ((is_singleq || is_doubleq) && (c==escap)) { 
                    is_escaped = 1; 
                } else if ( c=="{") { 
                    layer++; 
                } else if ( c=="}") { 
                    if ( layer==0 ) { 
                        break; 
                    } 
                    layer--; 
                } 
            } 
            
            code = block.substr(0,i-1); 
            block = block.substr(i +1); 
            
            code = code.replace(/\n/g, '\\n'); 
            code = code.replace(/\r/g, '\\r'); 
            code = code.replace(/'/g,"\\'"); 
            
            eval(name + " = new Function('"+param+"','"+code+"');"); 
        } 
        eval(block); // for evaluating non functions 
    } 
    obj.innerHTML=content; 
}

function loadAolLink(sLink) {
    if(sLink.toString().indexOf('aol://')>=0||sLink.toString().indexOf('aol%3a%2f%2f')>=0) {
        var sLinkArray = sLink.toString().split("'");
        if (sLinkArray.length==3) {
            sLink = sLinkArray[1];
        }
    }
    try {
        if(document.getElementById('loadframe')) {
           var oF = document.getElementById('loadframe');
           oF.parent.removeChild(oF);
        }
        var oF = document.createElement('iframe');
        oF.style.display = "none";
        oF.style.width = "1px";
        oF.style.height = "1px";
        oF.id = "loadframe";
        var oB = document.getElementsByTagName('body').item(0);
        oB.appendChild(oF);

        oF.src = sLink;
    } catch(e) {
    }
}

// generic onload procedure support:

var Onload = new Object();
    Onload.runnables = new Array();
    Onload.register = function ( obj ) { Onload.runnables[Onload.runnables.length] = obj;}
    Onload.hasRun = false;
    Onload.run = function () {
    if (!Onload.hasRun) {
      for (var i = 0 ; i < Onload.runnables.length ; i++) {
          Onload.runnables[i].onload();
      }
      Onload.hasRun = true;
    }
}

var FocusOnSearchOnloadObject = new Object();
FocusOnSearchOnloadObject.onload = function(){
    try {
            var gSearchHeaderElem = $('gSearch_header');
            if (gSearchHeaderElem)
            {
                
                var qb=getSearchElement('dsQuery','input');
                
                var elems = getElementsByClassName('headerSearchInput', $('search-display-panel'), 'input');
                if (elems.length > 0)
                {
                    qb = elems[0];  
                }
                qb.focus();
                var shopPaneElems = getElementsByClassName('search_pane_shopping', gSearchHeaderElem, 'div');
                var musicPaneElems = getElementsByClassName('search_pane_music', gSearchHeaderElem, 'div');
                if (shopPaneElems.length > 0)
                {
                    if (shopPaneElems[0].style.display != 'none')
                    {
                        getSearchElement('shopQuery','input').focus();
                    }
                }
                if (musicPaneElems.length > 0)
                {
                    if (musicPaneElems[0].style.display != 'none')
                    {
                        getSearchElement('musicQuery','input').focus();
                    }
                }
            }

        } catch(e){}
}

Onload.register(FocusOnSearchOnloadObject);

addEvent(this,"load",Onload.run,false);

//Functions for tabbed module
function changeTab(newTabID)
{
    document.getElementById(1).style.display='none';
    document.getElementById(2).style.display='none';
    document.getElementById(3).style.display='none';
    document.getElementById(newTabID).style.display='block';
}

/*#################
#
#
#################
#From feglobal.js
#################
#
#
#################*/

var nPrevLen = new Array();
var aAds, aAdSrcs, aAdHeads, aAdFoots, aAdWraps;

function docStateChange() { 
    
    if (document.readyState=="complete") {      
        processAdsIE();
        checkAccessibility();

        var eDiv = document.getElementById("pageTimer");
        var eFrame = document.getElementById("launchFrame");
        if (eDiv)
        {
            if (eFrame)
            {
                eFrame.src = "timer.adp?u=" + eDiv.innerText;
            }
        }
    }
}

function deleteQueryNameValue( sURL, sName )
{
    sURL = sURL.toString(); // in case 'location' object is passed  (common mistake)
    var xName = new RegExp( "(&|\\?)(" + sName + "=.*?)($|&)", "i" );
    var aMatches = sURL.match( xName );
    if( aMatches != null && ( aMatches[ 2 ].length > 0 ) )  // found name
    {
        // aMatches[ 1 ] : "?" or "&"
        // aMatches[ 2 ] : name=value
        sURL = sURL.replace( ( aMatches[ 1 ].toString() + aMatches[ 2 ].toString() ), "" ); 
    }
    return sURL;
}

function updateAOLLinkTargets() {

    var aLinks = document.links;
    var nLinks = aLinks.length;
    var eLink;
    for(var i=0;i<nLinks;i++) {
        eLink = aLinks[i];
        sHref = eLink.href
        if(sHref.indexOf("aol://") > -1)
        {
            eLink.target = "_self";
        }
    }
}

function processAdsNS() {
    var nAds = aAds.length; 
    var nChgs = 0;

    for(var i=0; i<nAds; i++) {     
        if (aAdSrcs[i]) {
        var sSrc = aAdSrcs[i].innerHTML;
        if ((sSrc.length != nPrevLen[i]) || (nPrevLen[i] == 0) || (nPrevLen[i] == undefined)) {     
            nPrevLen[i] = sSrc.length;
            processAd(aAds[i], aAdSrcs[i], aAdHeads[i], aAdFoots[i], aAdWraps[i]);  
            nChgs++;
            }
        }
    }

    if (nChgs > 0) {
        setTimeout("processAdsNS()", 5000);
    }
}

function initAds1() {   
    aAds = getSpansByClass("advert");
    aAdHeads = getSpansByClass("adHead");
    aAdFoots = getSpansByClass("adFoot");
    aAdWraps = getSpansByClass("adWrap");
}

function initAds2() {
    aAdSrcs = getSpansByClass("adSrc");
}

function processAdsIE() {
    var nAds = aAds.length;
    for(var i=0; i<nAds; i++) {
        processAd(aAds[i], aAdSrcs[i], aAdHeads[i], aAdFoots[i], aAdWraps[i]);  
    }
}

function processAd(ad, adSrc, adHead, adFoot, adWrap) {
    if (ad && adSrc) {
        if (adSrc.offsetHeight > 0) {   
            
            ad.innerHTML = adSrc.innerHTML;
            if (adHead && adFoot) {
                if (ad.getAttribute("hat") != 1) { 
                    adHead.style.display = "block";         
                    adFoot.style.display = "none";
                } else {
                    adHead.style.display = "none";
                    adFoot.style.display = "none";              
                }
            }       
            if (adWrap) {           
                adWrap.style.display = "block";             
            }
        }
    }
}

function getSpansByClass(sClass) {
    var aTagList = document.getElementsByTagName("span")
    var aResList = new Array();
    var nTagList = aTagList.length;
    var nCount = 0;
    for(var i=0;i<nTagList;i++) {
        if (aTagList[i].className == sClass) {
            aResList[nCount] = aTagList[i];
            nCount++;
        }
    }
    return aResList;
}

function loadAOLLink( sLink ) {
    var eFrame = document.getElementById( "launchFrame" );
    if (eFrame)
    {
        sLink = deleteQueryNameValue( sLink, "cli" );
        eFrame.src = sLink;
    }
}

function loadAOLLinkASPP(sLink,sASPPURL) {
        try {
            if(document.getElementById("reportFrame")) {
                var oR = document.getElementById("reportFrame");
                oR.parentNode.removeChild(oR);
            }
            if(document.getElementById("loadFrame")) {
                var oF = document.getElementById("loadFrame");
                oF.parentNode.removeChild(oF);
            }
            var oR = document.createElement("iframe");
            var oF = document.createElement("iframe");
            oR.id = "reportFrame"; oF.id = "loadFrame";
            oR.style.display = "none";oF.style.display = "none";
            oR.width = "1px";oR.height="1px";oF.width="1px";oF.height="1px";
            var oB = document.getElementsByTagName("body").item(0);
            oB.appendChild(oR);
            oB.appendChild(oF);
            oR.src = sASPPURL+"?"+getRand();
            oF.src = sLink;         
        } catch(e) { }
}

function runAutoLaunchPop(sSrc) {
    var eFrame = document.getElementById("launchFrame");
    if (eFrame)
    {
        eFrame.src = sSrc
    } else {
        setTimeout("runAutoLaunchPop('" + sSrc + "');", 200);
    }
}

function runAutoLaunch() {
    var aUrl = document.location.href.split("#");
    if (aUrl.length > 4) {
        var nLaunchType = Number(aUrl[2]);
        var sLaunchString = aUrl[3];
        var nLaunchStatus = Number(aUrl[4]);
        if (nLaunchStatus == 0) {
            switch (nLaunchType) {
                case 1:
                    break;
                case 2:
                    window.open('http://aolsearch.aol.co.uk/');
                    break;
                case 3:
                    runAutoLaunchPop("aol://1722:mailbox");
                    break;
                case 4: 
                    if(sLaunchString.indexOf("http://") > -1) {
                        window.open(sLaunchString);
                    } else {
                        var foundAol = sLaunchString.search(/^(aol\:\/\/)[0-9]+\:[a-zA-Z0-9_\-\.\,\&]+$/);
                        if(foundAol>=0) {
                            window.open(sLaunchString);
                        } else {
                            var found = sLaunchString.search(/[A-Za-z0-9]+\.[A-Za-z0-9]+/);
                            if(found>=0) {                              
                                window.open("http://"+sLaunchString);
                            } else {
                                runAutoLaunchPop("aol://1722:" + sLaunchString);
                            }
                        }
                    }
                    break;
            }
        }
    }
}

function updateMailCount() {
    var sMailC = getMailCount();
    if (sMailC.length > 0)
    {
        var eMailCount = document.getElementById("mailCount");
        if (eMailCount)
        {
            eMailCount.innerHTML = sMailC;
        }       
    }
    
    setTimeout('updateMailCount()',2000);
}

function outputMailCount() {
    document.write(getMailCount());
}

function getMailCount() {
    var aUrl = document.location.href.split("#");
    if (aUrl.length > 1) {
        return aUrl[1];
    } else {
        return "";
    }
}

function initRefreshContent(nInitialWait) {
    setTimeout("startRefreshContent()", nInitialWait * 1000);  
}

function startRefreshContent() {
    
    var eRefresh = document.getElementById("refFrame");
    if(eRefresh) {
        eRefresh.src = eRefresh.getAttribute("fsrc");
    }
}

function getDayName(intDay){
    var DayArray = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
    return DayArray[intDay];
}

function getMonthName(intMonth){
    var MonthArray = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
    return MonthArray[intMonth];    
}

function getDateStrWithDOW(){
    var today = new Date();
    var year = today.getYear();
    if(year<1000) year+=1900;
    return getDayName(today.getDay()) + ", " + today.getDate() + " " + getMonthName(today.getMonth()) + " " + year;
}

function getRand()
{
    var oDate = new Date();
    return( "" + oDate.getHours() + oDate.getMinutes() + oDate.getSeconds() + oDate.getMilliseconds() + ( Math.random() * ( 1 + Math.random() ) ) ).replace( /\./g, "" );
}

function checkAccessibility()
{
    // for IE users in special windows accessibility modes
    var eBrand = document.getElementById("brand");
    if (eBrand)
    {
        if( eBrand.currentStyle.backgroundImage == "none" )
        {   
            var oHTTP = new ActiveXObject("Msxml2.XMLHTTP.3.0");
            oHTTP.open("GET","/ukrestart/js/access.js?"+getRand(), false);
            oHTTP.send();
            try{eval(oHTTP.responseText)}catch(e){}
        }
    }
}

/*#################
#
#
#################
#From flexiad.js
#################
#
#
#################*/

function previewFlexibleAdvertSize(adForm) {
    var selectedAdSize = adForm.adPreviewSelect.options[adForm.adPreviewSelect.selectedIndex].value;
      if (selectedAdSize != 'default') {
        var queryStr = unescape(window.location);
        var dateReg = /configstartdate=([^&]*)/;
        var timeReg = /configstarttime=([^&]*)/;
        var qsTime = timeReg.exec(queryStr);
        var qsDate = dateReg.exec(queryStr);
        if (qsTime && qsDate)
        {
            adForm.configstartdate.value = qsDate[1];
            adForm.configstarttime.value = qsTime[1];
        }

        adForm.previewadvertsize.value = selectedAdSize
        adForm.submit();
    } else {
        alert('Please select an advert size to preview');
    }
}

/* FLEXIBLE AD INVENTORY CODE */

var fai_status = false;
var adTop = 0;
var nMainAdH = 0;
var adH = 0;
var nATH = 0;
var fai_ad = false;

function adTechSetSize(w, h) {
    var ad1 = new fai_call(w, h, false);
}

function fai_call(w,h,s,c) {

    /* Class Functions */

    this.getXY = function(obj) {
        this.objX = 0;
        this.objY = 0;
        try {
            if(obj.offsetParent) {
                while(obj.offsetParent) {
                    this.objX += obj.offsetLeft;
                    this.objY += obj.offsetTop;
                    obj = obj.offsetParent;
                }
                return [this.objX,this.objY];
            }       
        } catch(e) {
            return false;
        }
    }

    this.getObj = function(objID) {
        try {
            var obj = document.getElementById(objID);
            return obj;
        } catch(e) {
            return false;
        }
    }

    this.moveObj = function(o,x,y) {
        if (o) {
            o.style.top = y+"px";
            o.style.left = x+"px";
            return true;
        } else {
            return false;
        }
    }

    this.mainSwitch = function() {
        switch(w) {
            case 300: this.oT.style.width = "300px"; this.oT.style.display = "inline"; this.oT.style.height = "250px"; this.oT.style.marginRight = "10px"; break;
            case 180: this.oT.style.width = "310px"; this.oA.style.display = "inline"; this.oT.style.height = "150px"; this.oCB.style.height = "150px"; this.oCB.style.width = "130px"; break;
            case 160: this.oT.style.width = "160px"; this.oT.style.height = "600px"; this.oR.style.width = "330px"; break;
            case 120: this.oT.style.width = "120px"; this.oT.style.height = "600px"; this.oT.style.marginRight = "30px"; break;
            default: this.oT.style.width = "0px"; this.oT.style.height = "0px";
        }
    }
    this.init = function() {

        if (document.wait_for_overlay==true) {
            if (!c) {
                var overlay_timer = setTimeout("new fai_call(" + w + "," + h + "," + s + "," + c + ");",3000);
            }
            return;
        }
        
         if(((fai_status!=true&&document.fai_preview!=true)||(document.fai_preview==true&&s==true))||(c&&(fai_status!=true))) {
            (s) ? fai_status : fai_status = true;
            this.oT = this.getObj("sFLEX");
            this.oA = this.getObj("sL_L_A");
            this.oCB = this.getObj("chBlock");
            this.oR = this.getObj("rhc");

            if(this.oT==null||this.oA==null||this.oCB==null||this.oR==null) {
            } else {
                this.mainSwitch();
                if(s) {
                    this.oCB.style.backgroundColor = "lime";
                    this.oT.style.backgroundColor = "#E7A3E5";
                    this.oT.style.display = "inline";
                } else {
                    this.r = this.getXY(this.oT);
                    if(this.r!=false) {
                        switch(w) {
                            case 0: if(c) {
                                    this.oA.style.display="inline";
                                    w = this.oA.offsetWidth;

                                    // If no advert being called, return
                                    if (w == 0) {
                                        return;
                                    }
                                    
                                    this.oA.style.display="none";
                                    fai_status = false;
                                    this.init();
                                }
                                break;
                            case 180:
                                this.oCB.style.display = "inline";
                                this.r[0] += 140;
                                break;
                            default:
                                this.oCB.style.display = "none";
                                break;
                        }
                        this.moveObj(this.oA,this.r[0],this.r[1]);
                        this.oA.style.width = w+"px";
                        this.oA.style.height = h+"px";
                        this.oT.style.display = "inline";
                        this.oA.style.display = "block";
                    }
                }
            }
            try {
                this.oR.style.visibility = "visible";
                if(fai_ad!=this) {
                    fai_ad = this;
                }
            } catch(e) {}
        }

    }
    this.init();

    this.resizeHandler = function() {
        this.r = this.getXY(this.oT);
        this.moveObj(this.oA,this.r[0],this.r[1]);
        return true;
    };
}

function fai_resizeHandler() {
    if(fai_ad!=false) {
        fai_ad.resizeHandler();
    }
}

/* ADD EVENT LISTNER TO PAGE */

window.onresize = fai_resizeHandler;

/*#################
#
#
#################
#From search.js
#################
#
#
#################*/

// CONTROL MY SEARCH TABS IN THE HEADER

var getSearchElement = function(classname,tagname) {
    if (tagname === undefined) {
        tagname = "div";
    }
    var parent= eval("document.getElementById('gSearch_"+currentSearch+"')");
    var elements=getElementsByClassName(classname,parent,tagname);

    return elements[0];
}

function getElement(id) {
 var element=document.getElementById?document.getElementById(id):(document.all?document.all(id):null)
 return element;
}

dontFollowLinks("search_tab_link", "gSearch_"+currentSearch)

var searchTabs = new Array('search_tab_web','search_tab_shopping','search_tab_image','search_tab_audio','search_tab_video','search_tab_local');
var searchTabClasses = new Array('dsTbOff','dsTbOn');
var objectArray = new Array('dsTb1','dsTb2','dsTb3','dsTb4','dsTb5','dsTb6');
var classArray = new Array('dsTbOff','dsTbOn');
var actionArrayPortal = new Array('http://search.aol.co.uk/web','http://search.aol.co.uk/image','http://search.aol.co.uk/audio','http://aolsearch.aol.co.uk/video','http://aolcouk.uk.shopping.com/xFS','http://local.aol.co.uk/business/search');
var actionArrayClient = new Array('http://aolsearch.aol.co.uk/web','http://aolsearch.aol.co.uk/image','http://aolsearch.aol.co.uk/audio','http://aolsearch.aol.co.uk/video','http://aolcouk.uk.shopping.com/xFS','http://local.aol.co.uk/business/search');

var qb_init=true;
var fromShop=false;
var fromMusic=false;
var currentSearch='header';

function showDS(id,formName,dsQuery,searchURL,caller) {

    // Use JS variable to persist current search object
    currentSearch = caller;

  for(var i=0;i<=objectArray.length-1;i++) {
        if((id-1)==i){var y=1;var x=0;}else{var y=0;var x=1;}
        elem=getSearchElement(objectArray[i]);
        currentClass=elem.className;
        classValue=currentClass.replace(classArray[x],classArray[y]);
    getSearchElement(objectArray[i]).className=classValue;
    try {
      if (id==i) {
        addClass(getSearchElement(objectArray[i]), "afterSel");
      }
      else {
        removeClass(getSearchElement(objectArray[i]), "afterSel");
      }
    }
    catch (e) { }
        var divider = document.getElementById('search_divider'+i);
        if(divider){
            divider.style.display = "";
        }
    }
 
    if(id==3 || id==4) {
        getSearchElement('dsTb7').style.visibility = "hidden";
        getSearchElement('dsTb8').style.visibility = "hidden";
    } else {
        getSearchElement('dsTb8').style.visibility = "visible";
        getSearchElement('dsTb7').style.visibility = "visible";
    }

    if(id>1) {
        getSearchElement('dsTb6').style.visibility = "hidden";
    } else {
        getSearchElement('dsTb6').style.visibility = "visible";
    }

    
    /*
    if (searchURL == 'http://search.aol.co.uk') {
        getSearchElement(formName,'form').action=actionArrayPortal[id-1];
    } else {
        getSearchElement(formName,'form').action=actionArrayClient[id-1];
    }
    */
    getSearchElement(formName,'form').action=searchURL;
  
    getSearchElement('dsQuery','input').name=dsQuery;

    /* if(id==4){
        getSearchElement('avtype','input').value="1";
    }else if (id==5){
        getSearchElement('avtype','input').value="3";
    }else{
        getSearchElement('avtype','input').value="";
    } */
}

// CONTROL SWITCH FUNCTION IN THE HEADER FOR SHOP
ggSearch=2
IE5=NN4=NN6=false
if (document.all)IE5=true
else if(document.layers)NN4=true
else if(document.getElementById)NN6=true

function persistQuery(type){
    qb=getSearchElement('dsQuery','input');
    sb=getSearchElement('shopQuery','input');
    ms=getSearchElement('musicQuery','input');
    // Makes search term persist across different forms
    if (type==1){
        // Keep term for shopping
        if(fromMusic){
            if (ms.value != "" && ms.value.indexOf('search') == -1){
                sb.value=ms.value;
            }
        } else {
            sb.value=qb.value;
        }
        fromMusic=false;
        fromShop=true;
    } else if (type==2) {
        // Keep term for music
        if(fromShop){
            if (sb.value != "" && sb.value.indexOf('search') == -1){
                ms.value=sb.value;
            }
        } else {
            ms.value=qb.value;
        }
        fromShop=false;
        fromMusic=true;
    } else {
        // Keep term from music
        if(fromMusic){
            if (ms.value != "" && ms.value.indexOf('search') == -1){
                qb.value=ms.value;
            }
        } else if(fromShop){
        // Keep term from shopping
            if (sb.value != "" && sb.value.indexOf('search') == -1){
                qb.value=sb.value;
            }
        }
        fromShop=false;
        fromMusic=false;
    }
}

function switchShop(which,caller) {    
    currentSearch=caller;
    persistQuery(which);

     for(var i = 0; i < ggSearch; i++ ) {
      if(NN4) eval("getSearchElement('kzyShop"+i+"','div').display='none'")
      if(IE5) eval("getSearchElement('kzyShop"+i+"','div').style.display='none'")
          if(NN6) eval("getSearchElement('kzyShop"+i.toString()+"','div').style.display='none'") 
     }

     if(NN4) eval("getSearchElement('kzyShop"+which+"','div').display='block'")
     if(IE5) eval("getSearchElement('kzyShop"+which+"','div').style.display='block'")
     if(NN6) eval("getSearchElement('kzyShop"+which+"','div').style.display='block'")
}

/*#################
#
#
#################
#From pagedata.js
#################
#
#
#################*/

function page(o,l) {
    this.t = document.title;this.h = document.location;this.o = o;this.l = l;this.m = Array();this.oL = false;this.lT = false;
}

function module(id,m,g) {
    this.id = id;this.m = m;this.g = g;
}

function aM(id,m,g,page) {
    page.m[page.m.length] = new module(id,m,g);
    return page.m.length-1;
}

function gM(id,page) {
    for(var i = 0;i<=page.m.length-1;i++) {
        if(page.m[i].id==id) {
            var m = page.m[i];
            break;
        }
    }
    if(!m) { return false; } else { return m; }
}

function ogc(id,page) {
    page.lT = false;
    var m = page.gM(id,page); var b = ' | '; var nT = "sT_B_1,sns,sL_L_A,sFLEX";
    if(m) {
        (nT.indexOf(m.id)>=0) ? page.lT = false : page.lT = true; 
        var l = page.o+b+page.l+b+m.id+b+m.g+b+m.m+b;
    } else {
        var l = false;
    }
    return l;
}

page.prototype.aM = aM;
page.prototype.gM = gM;
page.prototype.ogc = ogc

function getLink(o,t) {
    try {
            page.oL = "";
            if(o.parentNode.nodeName=="DIV") {
                var l = page.ogc(o.parentNode.getAttribute("id"),page);
               
                if(l) {
                    
                    if(t.childNodes.length) {
                        for(var y = 0;y<=t.childNodes.length-1;y++) {
                            (t.childNodes.nodeName=="IMG") ? t = t.childNodes.nodeName : t;
                        }
                    }
                    switch(t.nodeName) {
                        case "A": 
                            if(t.innerHTML.toLowerCase().indexOf("sign in")>=0){
                                l += "Sign In";
                            } else if(t.getAttribute("href").indexOf("webmail.aol")>=0 && o.parentNode.getAttribute("id").indexOf("sSUPERTABS")>=0) {
                                l += "webmail supertab email";
                            } else if(t.innerHTML.toLowerCase().indexOf("sign out")>=0) {
                                l += "Sign Out";
                            } else {
                                l += t.innerHTML;
                            }
                            break;
                        case "IMG":
                            l+= t.getAttribute("alt");
                            break;
                        default: l+="Undefined";
                    }
                    page.oL = l;
                } else {
                    getLink(o.parentNode,t);
                }
            } else {
                try {   
                    if (!o.parentNode||o.parentNode.nodeName!="BODY"||o.parent.nodeName!="HTML") getLink(o.parentNode,t);
                } catch(e) {}
            }
        }
    catch (e) {}
}

/*#################
#
#
#################
#From styleswitcher.js
#################
#
#
#################*/

/* COLOUR SWITCHER OBJECT */

var cswitch = {

    /* Public Static Members */
    
    //defaultClr: "color-ecru",
    // Gets default color from html tag element
    defaultClr: ((document.getElementsByTagName('html')[0]).className).match(/color.+/),
    cookieName: "clr",
    cc: false,
    nc: false,
    
    /* Public Static Methods */
    
    // sets cookie color name
    setClrCookieName: function() {
    cswitch.testForAol();
        if(document.isClient==1) {
          cswitch.cookieName = "cclr";
        }
    },

    // Gets a colour value
    getClr: function() {
        cswitch.setClrCookieName();
        var clr = cswitch.getClrCookie();
        cswitch.showClr(clr);
    },

    // Sets a colour value
    setClr: function() {
    },
    
    // Show the colour to the user
    showClr: function(clr) {    
    var htmlElement = document.getElementsByTagName('html')[0];
        if (htmlElement) {
            var htmlClassElements = htmlElement.className
            var currentColor = htmlClassElements.match(/color.+/);
            removeClass(htmlElement, currentColor);
            addClass(htmlElement, clr);
            cswitch.nc = clr;    
            return true;
        }
    },
  
    // Set the user controls
    setClrCtrl: function() {
        try {
            if(cswitch.nc!=false) {
                var nc = document.getElementById(cswitch.nc);
                if(nc) {
                    nc.parentNode.className+=' on';
                    if(cswitch.cc!=false) {
                        var cc = document.getElementById(cswitch.cc);
                        cc.parentNode.className=cc.parentNode.className.replace('on','');
                    }
                }
            }
        } catch(e) { alert(e) }
        cswitch.cc = cswitch.nc;
        cswitch.nc = false;
        return true;
    },
  
    // Controler function to switch between colours
    switchClr: function(clr) {
        cswitch.showClr(clr);
        cswitch.setClrCtrl();
        cswitch.setClrCookie(cswitch.cookieName,clr,365);
    },

    /* Private (Public) Static Functions: Helper functions */
  
    //   Write Clr Cookie
    setClrCookie: function(name,value,days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        } else {
            expires = "";
        }
    document.cookie = name+"="+value+expires+"; path=/";
    },
  
// Get Colour from Cookie
    getClrCookie: function() {
        var nameEQ = cswitch.cookieName + "=";
        var ca = document.cookie.split(';');
        var clr = false;
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') {
                c = c.substring(1,c.length);
            }
            if (c.indexOf(nameEQ) == 0) {
                clr = c.substring(nameEQ.length,c.length);
            }
        }
        if(clr!=false) {
            if (clr.match(/color.+/)) {
                return clr;
            } else {
            //for old cookies not using color prefix
                return('color-'+clr);
            }
        } else {
            return cswitch.defaultClr;
        }
    },
  
    testForAol: function() {
        var loc = document.location.href.toString();
        document.isClient = 0;
        if(loc.indexOf("?")>=1) {
            var loc = loc.split("?");
            var params = loc[1].split("&");
            for(var i =0; i<params.length;i++) {
                if(params[i].indexOf("ws=1")==0) {
                    document.isClient = 1;
                    break;
                }
            }
        }
    }
}

/* Initialise the colour preference */
cswitch.getClr();
addEvent(this,"load",cswitch.setClrCtrl,false);

/* Temporary translation to new object method */
function setActiveStyleSheet(clr) { 
    cswitch.switchClr(clr);
}

/*#################
#
#
#################
#From functions.js 
#in R:\cvs\ukadp\src\ukconcept\data\art\aoluk\js
#################
#
#
#################*/

function Rotator() {
    
    this.framecount = 0;
    this.frames = new Array();
    this.timer;
    this.running = true;
      
    this.init = function(){
        this.data = document.getElementById('rotator_data_'+this.id);
        this.target = document.getElementById('rotator_main_'+this.id);
        this.tools = document.getElementById('rotator_tools_'+this.id);
               
        for(var i = 0;i<=this.data.childNodes.length-1;i++) {
            if(this.data.childNodes[i].nodeType==1) {
                this.framecount++;
                this.frames[this.frames.length] = this.data.childNodes[i].innerHTML;
            }
        }
    }

    this.currentFrame = 0;
    this.start = function(){
        this.running = true;
        this.run();
        //condition to switchoff the rotator in preview mode
        if (parent.inMorpheus) {
            this.stop();
        }
    }

    this.run = function() {
        if (this.running) {
            if (this.maxFrames > 0) {
                this.currentFrame++;
                    if(this.currentFrame>this.maxFrames) {
                        this.currentFrame = 1;
                    }
                this.target.innerHTML = this.frames[this.currentFrame-1];
                this.buildTools();
                this.timer = setTimeout('rotator'+this.id+'.run()',this.interval);
            }
        }
    }
      
    this.stop = function(){
        this.running = false;
        return false;
    }
 
    this.forward = function() {
        clearTimeout(this.timer);
        this.currentFrame++;
        this.move();
        return false;
    }

    this.back = function() {
        clearTimeout(this.timer);
        this.currentFrame--;
        this.move();
        return false;
    }

    this.move = function() {
        if(this.currentFrame>this.maxFrames) {
            this.currentFrame = 1;
        } else if(this.currentFrame==0) {
            this.currentFrame = this.maxFrames;
        }
        this.target.innerHTML = this.frames[this.currentFrame-1];
        this.buildTools();
    }
  
    this.jump = function(i) {

        clearTimeout(this.timer);
        if(this.currentFrame<i) {
            this.currentFrame = i-1;
            this.run();
        } else {
            this.currentFrame = i;
            this.move();
        }
        return false;
    }
    this.BACK_TEXT = "<span class='arrows'>&lt;</span> Back";
    this.FORWARD_TEXT = "Next <span class='arrows'>&gt;</span>";
    this.pageNavArray = new Object();
    this.jumpEvent = function(ev){stopDefaultAction(ev);return ev.currentTarget.rotator.jump(ev.currentTarget.numberIndex)}

    this.buildTools = function() {
         
        this.toolsContainerElem = document.createElement("p");
        this.toolsContainerElem.className = 'module_body';

        this.toolsBackSpanElem = document.createElement("span");
        this.toolsBackSpanElem.className = 'back';

        this.toolsBackLinkElem = document.createElement("a");
        this.toolsBackLinkElem.href = '#';
        this.toolsBackLinkElem.innerHTML = this.BACK_TEXT;
        this.toolsBackLinkElem.rotator  = this;
        addEvent(this.toolsBackLinkElem, "click", function(ev){stopDefaultAction(ev);return ev.currentTarget.rotator.back()}, false);

        this.toolsNumbersSpanElem = document.createElement("span");
        this.toolsNumbersSpanElem.className = 'item_numbers';
        
        for (var i in this.pageNavArray){
            if (this.pageNavArray.hasOwnProperty(i)) {
                this.pageNavArray[i].rotator = null;
                this.pageNavArray[i] = null;
            }
        }
        this.pageNavArray = new Array();

        for(var i = 0;i<=this.maxFrames-1;i++) {
            var frameIndex = i+1;
            if(frameIndex==this.currentFrame) {
                this.pageNavArray[i] = document.createElement("span");
                this.pageNavArray[i].innerHTML = frameIndex;
                this.pageNavArray[i].numberIndex = frameIndex;
            } else {
                this.pageNavArray[i] = document.createElement("a");
                this.pageNavArray[i].href="#";
                this.pageNavArray[i].numberIndex = frameIndex;
                this.pageNavArray[i].rotator  = this;
                addEvent(this.pageNavArray[i], "click", this.jumpEvent, false);
                this.pageNavArray[i].innerHTML = frameIndex;
            }
            this.toolsNumbersSpanElem.appendChild(this.pageNavArray[i]);
        }

        this.toolsForwardSpanElem = document.createElement("span");
        this.toolsForwardSpanElem.className = 'forward';

        this.toolsForwardLinkElem = document.createElement("a");
        this.toolsForwardLinkElem.href = '#';
        this.toolsForwardLinkElem.innerHTML = this.FORWARD_TEXT;
        this.toolsForwardLinkElem.rotator  = this;
        
        addEvent(this.toolsForwardLinkElem, "click", function(ev){stopDefaultAction(ev); return ev.currentTarget.rotator.forward()}, false);
        
        //add dummy functions for Safari to cancel default onclick
        addEvent(this.toolsBackLinkElem, "click", function(ev){stopDefaultAction(ev); return false;});
        addEvent(this.toolsForwardLinkElem, "click", function(ev){stopDefaultAction(ev); return false;});
        
        this.toolsBackSpanElem.appendChild(this.toolsBackLinkElem);
        this.toolsForwardSpanElem.appendChild(this.toolsForwardLinkElem);

        this.toolsContainerElem.appendChild(this.toolsBackSpanElem);
        this.toolsContainerElem.appendChild(this.toolsNumbersSpanElem);
        this.toolsContainerElem.appendChild(this.toolsForwardSpanElem);

        this.tools.innerHTML = '';
        this.tools.appendChild(this.toolsContainerElem);
    }
}

function openWindow (url) {
    window.open(url);
}

function openPhoto (url) {
    options = 'width=340,height=500,scrollbars=yes';
    window.open(url,'',options);
}

function openGallery (url) {
    options = 'width=235,height=429';
    window.open(url,'',options);
}

function openVideo (url) {
    options = 'width=320,height=300';
    window.open(url,'',options);
}

function openAudio (url) {
    options = 'width=192,height=36';
    window.open(url,'',options);
}

function openItem (url, options) {
    window.open(url, '', options)
}

function closeWindow () {
    window.close();
}

function getTextContent(obj){
    if (obj.innerText) {
        return obj.innerText;
    } else if (obj.textContent) {
        return obj.textContent;
    } else {
        return obj.innerHTML;
    }
}

function setTextContent(obj, text){
    if (obj.innerText) {
        obj.innerText = text;
    } else if (obj.textContent){
        obj.textContent =  text;
    } else {
        obj.innerHTML = text;
    }
}

function interceptLinks () {
    txt = 'This area is only available within the AOL client.';
    for (i = 0; i < document.links.length; i++) {
        url = document.links[i].href;
        if (url.substring(0,3) == 'aol') {
            document.links[i].href = 'javascript: alert("'+txt+'");';
        }
    }
}

function openEnhancedGallery (channel,id) { // resizePopup
    options = "width=500;height=500";
    window.open('/' + channel + "/enhPhotoGallery.adp?id=" + id,'',options);
}

function returnUrlWithNoParameters(){
    var new_location_href=window.location.href;
    var urlArray = new_location_href.split('?');
    return urlArray[0];
}

// return popup gallery url 
function EnhPhotoGalleryPollPopupUrl (galleryid,country) {
    var articleid="";
    var beginOfArticle = "";
    var wholeUrl = window.location.href;
    var urlParamArray = wholeUrl.split('?');
    var pageUrl = urlParamArray [0] 
    var urlArray = pageUrl.split('/');
    var article = "";
    var newPageUrl= "";
    if (urlArray[(urlArray.length-2)]=="article")
    {           
        articleid=urlArray[(urlArray.length-1)];
        var urlArray = pageUrl.split('/');
        for (i=0;i<(urlArray.length-3);i++)
        {
           newPageUrl+=urlArray[i]+"/";
        }
        galleryUrl = newPageUrl + "enhPhotoGalleryPollPopup.adp?popupgalleryid=" + galleryid + "&articleID=" + articleid +"&country=" + country ;
    } else {
        if (urlArray[(urlArray.length)-1])
        {
            pageUrl=pageUrl+"/";
        }
        galleryUrl = pageUrl + "enhPhotoGalleryPollPopup.adp?popupgalleryid=" + galleryid+"&country=" + country ;

    }
    return galleryUrl;
}

// Open Popup Gallery

function openEnhPhotoGalleryPollPopup (galleryid,x,y,country) { // resizePopup
    if (country==undefined) {
      country = "uk";
    }
    var galleryUrl ="";
    galleryUrl = EnhPhotoGalleryPollPopupUrl(galleryid,country);
     // X and Y are optional but in order to pass Y you need to pass a X first
    if (x)
    {   
        options ="";
        options = options+ "width=" + x;
         if (y)
        {
        options = options+",height=" + y;
        } 
    
    }else {
       options = "width=740,height=584";
    }


    options =  options + ",location=0,resizable = 0,status =0,scrollbars=0";
    window.open(galleryUrl,'',options);
}

// New search tab switcher 27-11-06 Will Jackson
function getSearchItem (classname,tagname) {
  if (tagname === undefined) {
    tagname = "div";
  }
    var parent = eval("document.getElementById('gSearch_"+currentSearch+"')");
    var elements=getElementsByClassName(classname,parent,tagname);
    return elements[0];
}

function getObject( obj ) {
    if ( document.getElementById ) {
        obj = document.getElementById( obj );
    } else if ( document.all ) {
        obj = document.all.item( obj );
    } else {
        obj = null;
    }
    return obj;
}

// Prevent default action for links so that they perform onclick event but don't follow the link
// Needed in addition to 'return false' in <a> tag to work around Safari bug
function dontFollowLinks (classname, parent) {
    // only for newer browsers
    if (document.getElementById) {
    // get parent and links
        var parent = document.getElementById(parent);
        var links = getElementsByClassName(classname,parent,"a");
    
        // loop through each link and prevent default action
        for (var i=0; i <links.length; i++) {
            links[i].addEventListener('click',function (e) { e.preventDefault(); },false);
        }
    }
}

function showDS(id,formName,dsQuery,searchURL,caller,tabs) {
    // Default to 5 tabs if not specified
    if (tabs == null){
    tabs = 6;
    }
  
    // Use JS variable to persist current search object
    currentSearch = caller;
    
    // change tab class
    for(var i=1; i<=tabs; i++) {
        if (i == id) {
            var newClass=searchTabClasses[1];
            var oldClass=searchTabClasses[0];
        }
        else {
            var newClass=searchTabClasses[0];
            var oldClass=searchTabClasses[1];
        }
        elem=getSearchItem('search_tab' + i);
        currentClass=elem.className;
        classValue=currentClass.replace(oldClass,newClass);
        elem.className=classValue;
    }
  
  // tab dividers
    for (var i=1; i<tabs; i++){
        elem = getObject('search_divider'+i)
        elem.style.display = "";
    }
    if (id==1) {
        getObject('search_divider1').style.display = "none";
    } else if (id==tabs) {
        getObject('search_divider'+(id-1)).style.display  = "none";
    } else {
        getObject('search_divider'+id).style.display = "none";
        getObject('search_divider'+(id-1)).style.display = "none";
    }
    
  // powered by logos
    if(id==3 || id==4 || id==6) {
        getSearchItem('powered_by_google').style.visibility = "hidden";
        getSearchItem('powered_by_shopping').style.visibility = "hidden";
    } else {
        getSearchItem('powered_by_google').style.visibility = "visible";
        getSearchItem('powered_by_shopping').style.visibility = "visible";
    }

    // search where options (only for web tab)
    var elem = getSearchItem('search_tab' + id);
    var isWeb = elem.className.indexOf('search_tab_web') == 0;
    if(isWeb) {
        getSearchItem('search_where').style.visibility = "visible";
    } else {
        getSearchItem('search_where').style.visibility = "hidden";
    }

    /*if (searchURL == 'http://search.aol.co.uk') {
      getSearchItem(formName,'form').action=actionArrayPortal[id-1];
    } else {
      getSearchItem(formName,'form').action=actionArrayClient[id-1];
    }*/
  getSearchItem(formName,'form').action=searchURL;

    
    getSearchItem('googleInput','input').name=dsQuery;

    /* if(id==3){
        getSearchItem('avtype','input').value="1";
    }else if (id==4){
        getSearchItem('avtype','input').value="3";
    }else{
        getSearchItem('avtype','input').value="";
    } */
    
}

function switchShop(which,caller,panes) {
    // Default panes to 2 if not specified
    if (panes == null) {
        panes = 2;
    }
    
    searchPanes = new Array('search_pane_main','search_pane_shopping','search_pane_music');
    fromShop = (NN4) ? getSearchItem(searchPanes[1],'div').display != 'none' : getSearchItem(searchPanes[1],'div').style.display != 'none';
    if(panes > 2) {
        fromMusic = (NN4) ? getSearchItem(searchPanes[2],'div').display != 'none' : getSearchItem(searchPanes[2],'div').style.display != 'none';
    }
    
    currentSearch=caller;
    persistSearchQuery(which);
    
    for(var i = 0; i < panes; i++ ) {
        if(NN4) eval("getSearchItem(searchPanes[i],'div').display='none'")
        if(IE5) eval("getSearchItem(searchPanes[i],'div').style.display='none'")
        if(NN6) eval("getSearchItem(searchPanes[i],'div').style.display='none'") 
    }

    if(NN4) eval("getSearchItem(searchPanes[which],'div').display='block'")
    if(IE5) eval("getSearchItem(searchPanes[which],'div').style.display='block'")
    if(NN6) eval("getSearchItem(searchPanes[which],'div').style.display='block'")
}

function persistSearchQuery(type){
    qb=getSearchItem('googleInput','input');
    sb=getSearchItem('shoppingInput','input');
    ms=getSearchItem('musicInput','input');
    // Makes search term persist across different forms
    if (type==1){
        // Keep term for shopping
        if(fromMusic){
            if (ms.value != "" && ms.value.indexOf('search') == -1){
                sb.value=ms.value;
            }
        } else {
        sb.value=qb.value;
  }
  fromMusic=false;
  fromShop=true;
    } else if (type==2) {
        // Keep term for music
        if(fromShop){
            if (sb.value != "" && sb.value.indexOf('search') == -1){
                ms.value=sb.value;
            }
        } else {
            ms.value=qb.value;
        }
        fromShop=false;
        fromMusic=true;
    } else {
        // Keep term from music
        if(fromMusic){
            if (ms.value != "" && ms.value.indexOf('search') == -1){
                qb.value=ms.value;
            }
        } else if(fromShop){
        // Keep term from shopping
            if (sb.value != "" && sb.value.indexOf('search') == -1){
                qb.value=sb.value;
            }
        }
    fromShop=false;
    fromMusic=false;
    }
}

/*#################
#
#
#################
#For Google Ads - palanisamyc
#################
#
#
#################*/

function google_ad_request_done(google_ads)
{
    var s = '';
    var i;
    //if(google_ads.length == 0){return;}
    if(google_ads[0].type == "text"){
        s+='<div id="googleheader">'; 
        s+= googleHeaderText; 
        s+= '</div>';
        if(google_ads.length == 1){
            s += '<div class="googad"><a href="' + google_ads[0].url + '" onmouseout="javascript:window.status=\'\'"' + 
            'onmouseover="javascript:window.status=\'go to ' + google_ads[0].visible_url + '\'; return true;" style="text-decoration:none;">' +
            '<span id="gTitle">' + google_ads[0].line1 + '</span><br />' + 
            '<span id="gText">' + google_ads[0].line2 + '&nbsp;' + google_ads[0].line3 + '</span><br />' +
            '<span id="gURL">' + google_ads[0].visible_url + '</span></a></div>';
        }else if(google_ads.length > 1){
            for(i=0; i<google_ads.length; i++)
            {
                if(i == (google_ads.length-1)){s += '<div class="googad">';}else{s += '<div class="googad brght">';}
                s += '<a href="' + google_ads[i].url + '" onmouseout="javascript:window.status=\'\'"' + 
                'onmouseover="javascript:window.status=\'go to ' + google_ads[i].visible_url + '\'; return true;" style="text-decoration:none;">' +
                '<span id="gTitle">' + google_ads[i].line1 + '</span><br />' + 
                '<span id="gText">' + google_ads[i].line2 + '&nbsp;' + google_ads[i].line3 + '</span><br />' +
                '<span id="gURL">' + google_ads[i].visible_url + '</span></a></div>';
            }
        }
    }
    //alert(s);
    document.getElementById("googleads").innerHTML = s;return;
}




//
// Send To A Friend link function.
//

function mailToFriend(sSubject,sBody) {
    var linkURL = window.location.href;
    var bodyText = escape(sBody + linkURL);
    var subject = escape(sSubject);
    var mailto = 'mailto:?subject='+subject+'&body='+bodyText;
    window.location.href = mailto;
}

//
// Cookie Stubs
//

function getCookie () {
    return "";
}

function setCookie () {
    return true;
}

var fai_call = function(w,h,bP) {
    this.oR = this.getObj("rhc");
    if(!fai_status) {
        var j = 0;
        this.w = w;
        this.h = h;
        
        //Get Ad Spot
        this.oT = this.getObj("flexiadMain");
        this.oT2 = this.getObj("flexiad");
        this.oA = this.getObj("lateAd");
        this.oCB = this.getObj("chBlock");


        if (isRestart == 0) {
            this.oA.style.visibility = "hidden";
        }

        if (this.getObj("flexiadMain"))
        {          switch(w) {
            case 300:
                this.oT.style.width = "300px"; this.oT.style.height = "250px"; this.oT.style.marginRight = "10px";
                nMainAdH = 250;
                adH = 0;
                break;
            case 180:
                if (!bP)
                {
                    for (j=0;j<(aMagicNums.length -1);j++) writeAdCall(aMagicNums[j],aSizes[j]);
                    var oTHeight = (((j * 155) + 150) + "px");
                    adH = (j * 155);
                } else {
                    var oTHeight = "150px";
                    adH = 0;
                }
                this.oT.style.width = "310px"; this.oA.style.display = "inline"; this.oT.style.height = oTHeight; this.oCB.style.height = oTHeight; 
                nMainAdH = 150;
                break;
            case 160:
                if (!bP)
                {
                
                    for (j=0;j<(aMagicNums.length -1);j++) writeAdCall(aMagicNums[j],aSizes[j]);
                } else {
                    var oTHeight = "600px";
                    this.oT.style.height = oTHeight;  
                }
                var oRWidth = this.oR.scrollWidth;
                oRWidth = oRWidth + 10 + "px";
                this.oT.style.width = "160px";
                this.oT2.style.width = "160px";  
                this.oR.style.width = oRWidth; 
                nMainAdH = 600;
                adH = 0;
                break;
            case 120: 
                if (!bP)
                {
                    for (j=0;j<(aMagicNums.length -1);j++) writeAdCall(aMagicNums[j],aSizes[j]);
                    var oTHeight = (((j * 65) + h) + "px");
                    adH = (j * 65);
                } else {
                    var oTHeight = "600px";
                    adH = 0;
                }
                this.oT.style.width = "120px"; this.oT.style.height = oTHeight; this.oT.style.marginRight = "30px"; 
                nMainAdH = 600;
                break;
            case 100:
                var oTHeight = "100px";
                this.oT.style.width = "100px"; this.oT.style.height = oTHeight; this.oT.style.marginRight = "30px"; 
                nMainAdH = 600;
                break;
            default: 
                if (isRestart == 0) {
                    this.oT.style.width = "0px"; this.oT.style.height = "0px";
                }
        }
        //alert("wxh= "+w +"x"+h+" width= "+this.oT.style.width + " height= "+this.oT.style.height + " MarginRight= "+this.oT.style.marginRight );

        if (w > 1) {
            this.oT.style.display = "inline";
            this.oCB.style.display = "none";
            var r = this.getXY(this.oT);
            // check that the ad is further left than the rhc
            var rhc = this.getXY(this.oR);
            if (rhc[0] > r[0]) {
                r[0] = r[0] + 160;
                this.oT.style.position = 'relative';
                this.moveObj(this.oT,r[0],r[1]);
            }
            if (w != 180) r[1] = r[1] + adH;

            this.moveObj(this.oA,r[0],r[1]);
            adTop = r[1];
            this.oA.style.width = w+"px";
            if (w == 180) h = h + adH;
            if (h != 60) {
                this.oA.style.height = h+"px";
                
            } else {
                this.oA.style.visibility = "hidden";
            }
            this.oA.style.display = "block";
            if (w=="180") {
                var adW = w+140;
                this.oA.style.width = adW + 'px';
                this.oCB.style.display = "inline";
                this.oCB.style.marginRight = "0px";
                this.oCB.style.borderRight = "10px solid white";
            }
            if (bP) this.oA.style.backgroundColor = "#ccc";
        } else {
            if (isRestart == 0) {
                this.oT.style.display = "none";
            }
        }
        }
    } else {
        this.oR.style.visibility = "visible";
    }
    fai_status = true;
}

fai_call.prototype.getXY = function(obj) {
    var objX = 0;
    var objY = 0;    
    if(obj.offsetParent) {
        while(obj.offsetParent) {
            objX = objX + obj.offsetLeft;
            objY = objY + obj.offsetTop;
            obj = obj.offsetParent;
        }
    }
    return [objX,objY];
};

fai_call.prototype.getObj = function(objID) {
    try {
        var obj = document.getElementById(objID);
    } catch(err) {
        var obj = "";
    }
    return obj;
};

fai_call.prototype.moveObj = function(obj,x,y) {
    obj.style.top = y+"px";
    obj.style.left = x+"px";
    return true;
};

function getXY(obj) {
    var objX = 0;
    var objY = 0;    
    if(obj.offsetParent) {
        while(obj.offsetParent) {
            objX = objX + obj.offsetLeft;
            objY = objY + obj.offsetTop;
            obj = obj.offsetParent;
        }
    }
    return [objX,objY];
}

function moveObj(obj,x,y) {
    obj.style.top = y+"px";
    obj.style.left = x+"px";
    return true;
}

function moveAd() {
    var oT = document.getElementById('flexiadMain');
    var oA = document.getElementById('lateAd');
    if (document.getElementById('flexiadMain') == null) {
        return false;
    }
    var r = getXY(oT);
    r[1] = r[1] + nATH;
    moveObj(oA,r[0],r[1]);
    return true;
}

function fai_create() {
    var ad = new fai_call(0,0);
}

function fnStartInit(bTrue) {
    if ((document.readyState=="complete") || (bTrue))
    {
        getATs();
        document.getElementById('lateAd').style.visibility = "visible";
        document.getElementById('rhc').style.visibility = "visible";
    }

    if (window.addEventListener) {
        window.addEventListener("resize", moveAd, false);
    } else if (window.attachEvent) {
        window.attachEvent("onresize", moveAd);
    }
}

function writeAdCall(mn, sizeid, keys) {

    
    var aAddVarFinal = ""

    if ( aAddVar != "" )
    {
        aAddVarFinal = ";" + aAddVar;
    }

    var sCall = "<script language='JavaScript' src='" + aBaseUrl + "/addyn|" + aTagVer + "|" + aNetID + "|" + mn + "|" + aPgID + "|" + sizeid + "|KEY=";

    if ( aCountry == "fr" )
    {
        var sCall = sCall + "provider=" + aProvider + ";loc=100;" + aTarget + ";" + keys + ";keydomain=" + aKeyDomain + ";grp=" + aGroup + ";misc=" + aTime + aAddVarFinal;
    }
    else if ( aCountry == "de" )
    {
        var sCall = sCall + "provider=" + aProvider + ";loc=100;" + keys + ";grp=" + aGroup + ";" + aTarget + ";misc=" + aTime + aAddVarFinal;
    }
    else
    {
        var sCall = sCall + keys + ";" + aTarget + ";loc=100;misc=" + aTime + ";grp=" + aGroup + aAddVarFinal;
    }

    sCall = sCall + "'></script>";

    document.write( sCall );
}

function getATs() {
    var eDiv = document.getElementById("lateAd");
    var aATs = new Array(9);
    var n = 0;
    var nDel = 0;
    if (eDiv.innerHTML.indexOf("collapsed") > 0) {
        nMainAdH = 0;
        eDiv.style.height = 0;
    }
    for(i=0;i<eDiv.childNodes.length;i++) {
        eChild = eDiv.childNodes[i];
        for(j=0;j<eChild.childNodes.length;j++) {
            if (eChild.childNodes[j].tagName == "!") {
            } else if (eChild.childNodes[j].tagName == "DIV") {
                if (eChild.childNodes[j].className == "ad_at") {
                    var eAT = eChild.childNodes[j];
                    aATs[n] = eAT;
                    n++;
                }
            } else if (eChild.childNodes[j].tagName == "A") {
                var eAT = eChild.childNodes[j];
                sAd = eAT.innerHTML;
                if ((sAd.indexOf("height=60 ") > 0) || (sAd.indexOf("height=\"60\"") > 0) || (sAd.indexOf("height='60'") > 0) || (sAd.indexOf("120x60_") > 0) || (sAd.indexOf("120x60.") > 0) || (sAd.indexOf("120x60;") > 0) || (sAd.indexOf("120x60_") > 0) || (sAd.indexOf("http://view.atdmt.com/MNC/view/lxxxonrk0060000038mnc/direct/01/") > 0)) {
                    aATs[n] = eAT;
                    n++;
                }
            } else if (eChild.childNodes[j].tagName == "OBJECT") {
                var eAT = eChild.childNodes[j]
                if (eAT.outerHTML) {
                    sAd = eAT.outerHTML;
                } else {
                    // Add sAd definition for FF
                    sAd = "";
                }
                if ((sAd.indexOf("height=\"60\"") > 0) || (sAd.indexOf("height=60 ") > 0) || (eAT.height == 60)) {
                    aATs[n] = eAT;
                    n++;
                }
            } else if (eChild.childNodes[j].tagName == "IMG") {                
                var eAT = eChild.childNodes[j];
                if (eAT.outerHTML) {
                    sAd = eAT.outerHTML;
                } else {
                    // Add sAd definition for FF
                    sAd = "";
                }
                if ((sAd.indexOf("height=60 ") > 0) || (sAd.indexOf("height=\"60\"") > 0) || (sAd.indexOf("height='60'") > 0) || (sAd.indexOf("120x60_") > 0) || (sAd.indexOf("120x60.") > 0) || (eAT.height == 60) || (sAd.indexOf("120x60;") > 0) || (sAd.indexOf("120x60_") > 0) || (sAd.indexOf("http://view.atdmt.com/MNC/view/lxxxonrk0060000038mnc/direct/01/") > 0)) {
                    aATs[n] = eAT;
                    n++;
                }
            }
        }
    }

// move the ads
    var eFlexDiv = document.getElementById("flexiadMain");

    // check if a height needs to be added for advert headers
    var eATAdvertHeaderDivs = getElementsByClassName('advertisement_header',eDiv,'div');

    var nATTotalAdvertHeaderHeight = 0;
    for(i=0;i<eATAdvertHeaderDivs.length;i++) {
        var eATAdvertHeaderHeight = eATAdvertHeaderDivs[i];
        nATAdvertHeaderHeight = eATAdvertHeaderHeight.clientHeight;
        nATTotalAdvertHeaderHeight += nATAdvertHeaderHeight;
    }

    if (n > 0) {
        var eATFinalDiv = document.getElementById("ATs");
        for(i=0;i<n;i++) {
            var eAT = aATs[i];
            eAT.parentNode.removeChild(eAT);
            var eDiv1 = document.createElement("div");
            eDiv1.style.paddingBottom = "5px";
            eDiv1.appendChild(eAT);
            eATFinalDiv.appendChild(eDiv1);     
        }
        // make lateAd the right location below the ATs
        nATH = (n * 65);
        eDiv.style.top = eDiv.offsetTop + nATH;
    }
    // increase the size of the flexi-ad div to move the content around
    eFlexDiv.style.height = nATH + nMainAdH + nATTotalAdvertHeaderHeight;    

}

//
// Utility functions

// Functional Programming 'Map' function
function map(fn, a)
{
    for (i = 0; i < a.length; i++)
    {
        fn(a[i]);
    }
}

function trackOmnitureLink(account_name, link_name, prop18val, prop20val, link_entry){
    var s_265=s_gi(account_name);
    s_linkType="o";
    s_linkName=link_name;
    s_265.prop18=prop18val;
    s_265.prop20=prop20val;
    s_265.tl(this,'o',link_entry);
}

function addEventHandler (element, name, observer, useCapture) {
    name = name.toLowerCase();
    if (element.addEventListener) {
       element.addEventListener(name, observer, useCapture);
    } else if (element.attachEvent) {
        element.attachEvent(name, observer);
    } else {
        return false;
    }
}

function sendOmniturePI(sData) {
    s_265.prop2=sData.toLowerCase();
    s_265.t();
}

/* ----- Begin Competitions Widget -----*/
function Competition(){
    this.sobId = -1;
    this.mainContentId = 'competitions_widget';
    this.formId = 'competitions_widget_form';
    this.compRedirectURL = '';
    this.QUESTION_FIELDS_NOT_POPULATED_ERROR = 'You haven\'t answered all the questions.\n';
    this.MANDATORY_FIELDS_NOT_POPULATED_ERROR = 'Mandatory fields have not been populated.\n';
    this.AGECHECK_FIELD_NOT_POPULATED_ERROR = 'You must verify your age.\n';
    this.INVALID_EMAIL_ERROR = 'The email address entered is invalid.\n';
    this.TANDC_FIELD_NOT_POPULATED_ERROR = 'You must agree to the terms and conditions.';
    this.init = function(){
        this.formId += this.sobId;
        this.mainContentId += this.sobId;
        var element = document.getElementById(this.formId);
        element.competitionHandler = this;
        addEvent(element,"submit",this.handleCompFormSubmit,false );
    }
    
    this.handleCompFormSubmit = function(ev)    {
        function generateQSArg(formInput){
            var returnStr = '';
            if (formInput.type != 'submit')
            {
                if (formInput.name.substring(0,8)=='question')
                {
                    if (formInput.type == 'radio')
                    {
                        if (formInput.checked)
                        {
                            returnStr += formInput.name + '=' + formInput.value;
                        }
                    } else {
                        returnStr +=  formInput.name + '=' + formInput.value;
                    }
                } else {
                    if (formInput.type == 'checkbox') {
                        returnStr += formInput.name + '=' + formInput.checked;
                    } else {
                        returnStr += formInput.name + '=' + formInput.value;
                    }
                }
            }
            return returnStr;
        }
        stopDefaultAction(ev);
        var compHandler = ev.currentTarget.competitionHandler;

        if (compHandler.compValidation())
        {
            var compForm = document.getElementById(compHandler.formId);
            var formInputs = compForm.getElementsByTagName('input');
            var textAreaInputs = compForm.getElementsByTagName('textarea');
            var querystring = '';
            compHandler.compRedirectURL = '';

            for(i=0;i<formInputs.length;i++) 
            {   
                var qsArg = generateQSArg(formInputs[i]);
                if (qsArg != '')
                {
                    if (i!=0)
                        querystring += '&';
                    querystring += qsArg;
                }
                if (formInputs[i].type == 'hidden')
                {
                    if (formInputs[i].name == 'redirectURL')
                    {
                        compHandler.compRedirectURL = formInputs[i].value;
                    }
                }
                
            }
            
            for(i=0;i<textAreaInputs.length;i++) 
            {
                // handle textarea input separately
                querystring += '&' + textAreaInputs[i].name + '=' + textAreaInputs[i].value;
            }
            
            if (window.location.search.indexOf('debug') > -1)
            {
                querystring += '&debug=1';
            }
            
            // loop through form questions
            var actionFld = '/_category/competitionsSubmit.adp';
            makeRequest(actionFld, compHandler.compResponseFunc, querystring, compHandler);
        } 

    }
    
    this.compResponseFunc = function(url, str, obj) {
        if (obj.compRedirectURL == '')
        {
            document.getElementById(obj.mainContentId).innerHTML = str;
        } else {
            window.location = obj.compRedirectURL;
        }
    }
    
    this.questionsArray = new Array();

    this.validateEmail = function(str){
        var atPos=str.indexOf("@");
        var dotPos=str.lastIndexOf(".");
        if (atPos<1)
            return false;
        if (dotPos<1)
            return false;
        if ((dotPos+3)>str.length)
            return false;
        if (dotPos<(str.length-5))
            return false;
        return true;
    }
    

    this.validateQuestionsFilledIn = function(form){
        var QUESTION_PREFIX = 'question_';
        this.questionsArray = new Array();

        // loop through all form elements
        for (var i=0;i<form.elements.length;i++) {
            var _elem = form.elements[i];
            // check and validate to see if the input is a question
            if (_elem.name.indexOf(QUESTION_PREFIX)>-1){
                
                var questionIndex = _elem.name.substring(QUESTION_PREFIX.length);
                // if it's a radio button, we need to loop through to see if any of the answers are checked for that given question (index)
                if (_elem.type =='radio'){
                    if (!this.questionsArray[questionIndex])
                    {
                        this.questionsArray[questionIndex] = false;
                    }
                    if (_elem.checked)
                    {
                        this.questionsArray[questionIndex] = true;
                    }
                }
                // if it's a textarea, we need to check to see if something has been entered for it
                if (_elem.type =='textarea')
                {
                    if (_elem.value.length > 0){
                        this.questionsArray[questionIndex] = true;
                    } else {
                        this.questionsArray[questionIndex] = false;
                    }
                }
            }
        }
        // questions index start from 1
        var retVal = true;
        for (var i=1;i<this.questionsArray.length;i++) {
            var compQuestionElem = $('competitions_question'+i);
            if (compQuestionElem){
                removeClass(compQuestionElem, 'invalid');
            }
            if (!this.questionsArray[i])
            {
                if (compQuestionElem){
                    addClass(compQuestionElem, 'invalid');
                }
                retVal = false;
            }
        }
        return retVal;
    }

    this.compValidation = function()    {
        var compForm = document.getElementById(this.formId);
        var mandatoryElements = new Array();
        var isValid = true;
        mandatoryElements = getElementsByClassName('mandatory',compForm,'input');
        var errorMessage = '';
        var mandatory_fields_not_populated_flag = false;
        var tandc_fields_not_populated_flag = false;
        var agecheck_fields_not_populated_flag = false;
        
        if ($('competitions_age_check'))
        {
            removeClass($('competitions_terms_and_conditions'),'invalid');
        }
        if ($('competitions_age_check'))
        {
            removeClass($('competitions_age_check'),'invalid');
        }

        for(i=0;i<mandatoryElements.length;i++)
        {
            removeClass(mandatoryElements[i],'invalid');
            // check for empty fields
            if (
                (mandatoryElements[i].value.length == 0) || 
                (mandatoryElements[i].value.replace(' ','') == '')
            )
            {
                addClass(mandatoryElements[i],'invalid');
                mandatory_fields_not_populated_flag = true;
                isValid = false;
            }
            if (mandatoryElements[i].id == 'terms_and_conditions' && !mandatoryElements[i].checked)
            {
                addClass(mandatoryElements[i],'invalid');
                tandc_fields_not_populated_flag = true;
                isValid = false;
                addClass($('competitions_terms_and_conditions'),'invalid');
            }
            if (mandatoryElements[i].id == 'age_check')
            {
                if (!mandatoryElements[i].checked)
                {
                    addClass(mandatoryElements[i],'invalid');
                    agecheck_fields_not_populated_flag = true;
                    isValid = false;
                    addClass($('competitions_age_check'),'invalid');
                }
                
            }
            
        }
        if (!this.validateEmail($('email').value))
        {
            addClass($('email'),'invalid');
            errorMessage += this.INVALID_EMAIL_ERROR
            isValid = false;
        }
        if (!this.validateQuestionsFilledIn(compForm))
        {
            errorMessage += this.QUESTION_FIELDS_NOT_POPULATED_ERROR;
            isValid = false;
        }

        if (mandatory_fields_not_populated_flag)
        {
            errorMessage += this.MANDATORY_FIELDS_NOT_POPULATED_ERROR;
        }
        if (agecheck_fields_not_populated_flag)
        {
            errorMessage += this.AGECHECK_FIELD_NOT_POPULATED_ERROR;
        }
        if (tandc_fields_not_populated_flag)
        {
            errorMessage += this.TANDC_FIELD_NOT_POPULATED_ERROR;
        }
        

        if (!isValid)
        {
            this.showError(errorMessage);
        }
        return isValid;
    }

    this.showError = function(errorKey){
        alert(errorKey);
    }
}
/* ----- End Competitions Widget -----*/

/* Add to Favouries / Add Bookmark code */
function createBookmark() {

    title = document.title; 
    url = location.href;

    if ( window.external ) { // IE Favorite
        window.external.AddFavorite(url, title); 
    }
}

/* Send To A Friend Code
 * Adapted from US code at: cdn.digitalcity.com/_media/staf/staf_init.js
 */

function staf_SE() {

/*
 * Author : STaF Team
 * Includes UK Omniture tracking components.
 */
    var omniture_tracking;

    // Email This variables
    var width, height;        // Width and Height of Email Popup
    var im_width, im_height;  // Width and Height of Email Popup
    var lang = "";            // Language parameter

    // IM Variables
    var message = "";        // IM Message
    var linkURL = "";        // Default URL is the current page.
    var pageTitle = "";      // Page Title
    var confirm = false;     // Confirmation pop-up window for non-AOL browsers

    // Launch IM
    var sendIM = function () {
        winl = (screen.width - im_width) / 2;
        wint = (screen.height - im_height) / 2;

        if (winl < 0) winl = 0;
        if (wint < 0) wint = 0;

        window.open("http://sendtoafriend.aol.com/im.adp?url=" + linkURL + "&title=" + pageTitle + "&lang=" + lang, "IM_Window", "height=" + im_height + ",width=" + im_width + ",top=" + wint + ",left=" + winl + ",statusbar=0,toolbar=0,menubar=0,location=0,resizable=0");
    }

    // Launch Email
    var sendEmail = function () {
        winl = (screen.width - width) / 2;
        wint = (screen.height - height) / 2;

        if (winl < 0) winl = 0;
        if (wint < 0) wint = 0;

        window.open("http://sendtoafriend.aol.com/?url=" + linkURL + "&title=" + pageTitle + "&lang=" + lang, "Email_Window", "height=" + height + ",width=" + width + ",top=" + wint + ",left=" + winl + ",statusbar=0,toolbar=0,menubar=0,location=0,resizable=0");
    }

    // Default Values
    var setDefault = function () {
        message = "Your friend wants you to check this out:";
        linkURL = encodeURIComponent(document.location);
        pageTitle = encodeURIComponent(document.title);
        confirm = false;
        width = 292;
        height = 500;
        im_width = 292;
        im_height = 150;
        lang = "en-GB";
    }

    // Set default values.
    setDefault();

    return {

        sendIM: function () {
            if (omniture_tracking) {
                setOmniStaf("IM"); }
            sendIM();

            var omniTitle = decodeURIComponent(pageTitle);
            s_265.prop18="STaF - Sent IM on - "+s_265.channel;s_265.prop20="STaF - "+omniTitle;s_265.tl(this,"o","STaF - "+s_265.channel); s_gi(s_account);
            //alert('Omniture reporting: \n prop18 - '+s_265.prop18+'\n prop20 - '+s_265.prop20+  '\nlink name - '+s.tl)
        },

        sendEmail: function () {
            if (omniture_tracking) {
                setOmniStaf("Email"); }
            sendEmail();

            var omniTitle = decodeURIComponent(pageTitle);
            s_265.prop18="STaF - Sent EMail on - "+s_265.channel; s_265.prop20="STaF - "+omniTitle;s_265.tl(this,"o","STaF - "+s_265.channel); s_gi(s_account);
            //alert('Omniture reporting: \n prop18 - '+s_265.prop18+'\n prop20 - '+s_265.prop20+  '\nlink name - '+s.tl)
        },

        setMessage: function (custom_message) {
            if (typeof(custom_message) == "string") {
                message = custom_message;
            }
        },

        setWidth: function (custom_width) {
            if (typeof(custom_width) == "number") {
                width = custom_width;
            }
        },

        setHeight: function (custom_height) {
            if (typeof(custom_height) == "number") {
                height = custom_height;
            }
        },

        setIMWidth: function (custom_width) {
            if (typeof(custom_width) == "number") {
                im_width = custom_width;
            }
        },

        setIMHeight: function (custom_height) {
            if (typeof(custom_height) == "number") {
                im_height = custom_height;
            }
        },

        setLang: function (custom_lang) {
            if (typeof(custom_lang) == "string") {
                lang = custom_lang;
            }
        },

        setTitle: function (custom_title) {
            if (typeof(custom_title) =="string") {
                pageTitle = encodeURIComponent(custom_title);
            }
        },

        setURL: function (custom_url) {
            if (typeof(custom_url) =="string") {
                linkURL = encodeURIComponent(custom_url);
            }
        },

        setDefault: function () {
            setDefault();
        }
    };

}

// Wrappers for STAF to allow it to be used multiple times on a single page.
function customStafSend (url, title, message, fn) {
    if (staf_obj)
    {
        staf_obj.setURL(unescape(url));
        staf_obj.setTitle(unescape(title));
        staf_obj.setMessage(unescape(message));
        fn();
        staf_obj.setDefault();
    }
}

function customStafSendIM (url, title, message) {
    customStafSend (url, title, message, staf_obj.sendIM);
}

function customStafSendEmail (url, title, message) {
    customStafSend (url, title, message, staf_obj.sendEmail);
}

//Resizes page based on the size of an element in the page
function resizePage(elementID) {
    if (typeof elementID == "undefined")
        var element = document.body;
    else
        var element = document.getElementById(elementID);

    var oH = element.clip ? element.clip.height : element.offsetHeight;
    var oW = element.clip ? element.clip.width : element.offsetWidth;
  
    document.body.style.overflow = 'hidden';  
    window.resizeTo( oW + 0, oH + 0 );
    var myW = 0, myH = 0, d = window.document.documentElement, b = window.document.body;
  
    if (window.innerWidth) {     
        myW = window.innerWidth; 
        myH = window.innerHeight; 
    }
    else if (d && d.clientWidth) { 
        alert(d.clientHeight);    
        myH = d.clientHeight; 
    }
    else if (b && b.clientWidth) {     
        myW = b.clientWidth; 
        myH = b.clientHeight;
    }  
    if (window.opera && !document.childNodes)
        myW += 16;  
    document.body.style.overflow = '';
    window.resizeTo( oW + ((oW + 0) - myW), oH + ((oH + 0) - myH) );
    if( window.focus ) { window.focus(); }
}

function setCustomOmnitureValues() {}

// Included to manage aol:// links

function showAOLLinkWarning() {
    var res = confirm('The link you have selected is only available inside the AOL Client.\n\nIf you have AOL installed click "OK" to continue, otherwise select "Cancel" to return to the previous page.');
    if(!res) {
        return false;
    } else {
        return true;
    }
}

function captureAOLIMGLinkEvents(e) {
    if(navigator.userAgent.toLowerCase().indexOf('aol') == -1) {
        if(window.event){
            var myRef = window.event.srcElement;
            if(myRef.nodeName=="IMG") {
                if(myRef.parentNode.href) {
                    if(myRef.parentNode.href.indexOf('aol://')>=0) {
                       var res =  showAOLLinkWarning();
                       if(!res) {
                          window.event.returnValue = false;
                       } else {
                          window.event.returnValue = true;
                       }
                    }
                }
            }
        }
    }
    captureGamesCompareLinks();
}

function captureGamesCompareLinks() {
    if(window.event){
        var myRef = window.event.srcElement;
        if(myRef.nodeName=="IMG") {
            if (myRef.parentNode.href)
            {
                if ((myRef.parentNode.href.indexOf('~NS-1~linkin_id-3063740/')>=0) || (myRef.parentNode.href.indexOf('~NS-1~linkin_id-3063740\\')>=0)) {
                    myRef.parentNode.href = myRef.parentNode.href.substring(0,(myRef.parentNode.href.length - 1));
                }
            }
        }
    }
}

function captureAOLLink(e) {
    // Removes query string from aol:// links, except where passing http:// link as value
    // Multi-browser compatibility
    if(navigator.userAgent.toLowerCase().indexOf('msie') == -1) {
        var myRef = e.target;
    } else {
        var myRef = window.event.srcElement;
    }
    // If event is from an anchor tag, examine it and remove query string if needed
    if(myRef.nodeName=="A") {
        if(myRef.href.indexOf('aol://')>=0) {
            if(myRef.href.indexOf('href://') == -1){
                // Set New URL
                var url=myRef.href.split('?');
                myRef.href=url[0];
            }
        }
        if ((myRef.href.indexOf('hometown.aol.co.uk')>=0) || (myRef.href.indexOf('journals.aol.co.uk'))>=0) {
            rExp = /.n=.*p=.*c=.*/gi;
            myRef.href = myRef.href.replace(rExp,'');
        }
    }
    if(navigator.userAgent.toLowerCase().indexOf('aol') == -1) {
        if (myRef.nodeName=="IMG") {
            captureAOLIMGLinkEvents(e);
        } else {
            captureAOLLinkEvents(e);
        }
    } else {
        window.event.returnValue = true;
    }
}

// The two functions below are related and used for replacing ? withs � in collections

function feedsGetElementsByClassName(searchClass,node,tag) {
    if(node == null)node=document;
    var ce = new Array();
    if(tag==null || tag=='*')tag='*';
    var els = new Array();
    els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
    var i;var j;
    for (i = 0, j = 0; i < elsLen; i++) {
    if ( pattern.test(els[i].className) )
        if (ce.push) ce.push(els[i]);
        else ce[j++] = els[i];
    }
    return ce;
}

function replacePoundSigns () {
    /*var pageObj = document.getElementById('whole_page');
    var collectionLinks = new Array();
    collectionLinks = feedsGetElementsByClassName('module_body',pageObj,'ul');
    collectionLinks = collectionLinks.concat(feedsGetElementsByClassName('collection',pageObj,'ul'));
    var blocksLen = collectionLinks.length;
    for (var i=0; i < blocksLen; i++) {
      var expression = /\?(?=\d)/g;
      collectionLinks[i].innerHTML = collectionLinks[i].innerHTML.replace(expression,'&#163<!--poundsub-->');
    }*/
}

// Generic object used to add flash to pages
var flashObject=function(swf, width, height, id, classId,codebase,pluginspage,type)
{
    this.variables = new Array();
    this.parameters = new Array();
    
    this.swf = swf || "";
    this.width = width || "100%";
    this.height = height || "100%";
    this.id = id || "";
    this.classId=classId || "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000";
    this.codebase=codebase || "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0";
    this.pluginspage=pluginspage || "http://www.adobe.com/go/getflashplayer";
    this.type=type || "application/x-shockwave-flash";
}

flashObject.prototype.setParam=function(name,value){this.parameters[name] = value;};
flashObject.prototype.setVar=function(name,value){this.variables[name] = value;}

flashObject.prototype.loadFlash=function(divId)
{
    eFlashDiv = document.getElementById(divId);
    var sBrowser = getBrowser();

    var flashHTML = "";

    flashHTML += '<object codebase="'+this.codebase+'" width='+this.width+' height='+this.height+' classId="'+this.classId+'" id="'+this.id+'" pluginspage="'+this.pluginspage+'" type="'+this.type+'" '; 
    for (var i in this.variables) {flashHTML += i+'="'+this.variables[i]+'" ';}
    flashHTML += '>';
    flashHTML += '<param name="movie" value="' + this.swf + '" />';

    for (var i in this.parameters) {flashHTML += '<param name="'+i+'" value="'+this.parameters[i]+'" />';}

    
    if (sBrowser == "internetexplorer")
    {       
        flashHTML += '</object>';           
    }
    else
    {
        flashHTML += '<embed src="'+this.swf+'" width="'+this.width+'" height="'+this.height+'" ';
        for (var i in this.variables) {flashHTML += i+'="'+this.variables[i]+'" ';}
        for (var i in this.parameters) {flashHTML += i+'="'+this.parameters[i]+'" ';}
        flashHTML += '></embed>';

        flashHTML += '</object>';
    }
            
    if(sBrowser == "aolmac"){
        eFlashDiv.innerHTML ="";
        document.write(flashHTML);  
    }
    else
    {
        if(eFlashDiv){eFlashDiv.innerHTML = flashHTML;} 
    }
}

function hasFlash()
{
    var sBrowser = getBrowser();
    var hasFlash;
    if(sBrowser == "internetexplorer"){
        if(IEFlashDetect() != "-1"){
            hasFlash = true;
        }
        else {
            hasFlash = false;
        }
    }
    else{
        if (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]){
            hasFlash = true;
        }
        else
        {
            hasFlash = false;
        }
    }
    return hasFlash;
}

function IEFlashDetect()
{
    var version;
    var axo;
    var e;
    try {
        axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        version = axo.GetVariable("$version");
    } catch (e) {
    }
    if (!version)
    {
        try {
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
            version = "WIN 6,0,21,0";
            axo.AllowScriptAccess = "always";
            version = axo.GetVariable("$version");
        } catch (e) {       }
    }
    if (!version)
    {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = axo.GetVariable("$version");
        } catch (e) {}
    }
    if (!version)
    {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = "WIN 3,0,18,0";
        } catch (e) {}
    }
    if (!version)
    {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }
    return version;
}

/* Backlinks functions for article pages */

//Backlinks omniture tracking
function backlinksCL (linkType) {
    var omniTitle = document.title;
    s_265.prop18="Social Bookmarking - clicked "+linkType+" on - "+s_265.channel;
    s_265.prop20="Social Bookmarking - "+omniTitle;
    s_265.tl(this,"o","Social Bookmarking - "+s_265.channel);
    s_gi(s_account);
} 

var blURL=encodeURIComponent(document.location.href), blTitle=encodeURIComponent(document.title);

function blPop(url, linktype){
    window.open(url,'blPopup','width=800px,height=520px,status=0,location=0,resizable=1,scrollbars=1',0)
    backlinksCL(linktype);
}

function blGo(url, linktype){
    document.location.href = url;
    backlinksCL(linktype);
}

function trackLinksAdtech(event) {
    var targetNode = event.currentTarget;
    if (targetNode.nodeName == "A" && ! targetNode.onclick) {
        var adTechURL = 'http://ads.aol.co.uk/adlink|3.0|517|'+targetNode.mn+'|0|'+targetNode.size+'|ADTECH;loc=100;adid='+targetNode.flightID+';bnid='+targetNode.bannerID+';link='+ targetNode.href + ';';
        event.currentTarget.href = adTechURL;
    }
}

//Code for the new Rotator module
function rotatorMod(frameInterval,refreshInterval,refreshPath,name) {
    
    this.maxNumFrames = 6;
    this.i = frameInterval;
    this.rI = refreshInterval;
    this.refreshPath = refreshPath;
    this.name = name;
    this.s = "initialising";
    this.headlines;
    this.subheadlines;
    this.placeHolder = document.getElementById('rotatorPlaceHolder');
    this.c = 0;
    this.dC = 0;
    this.dI;
    this.dR;
    this.rflag = false;
    this.pause = false;
    
    this.defaultPlaceHolderId = 'sDL0';
    this.currentPlaceHolderId = this.defaultPlaceHolderId;
    this.tempPlaceHolderId    = "sDLTempId";
    
    this.resetPlaceHolderDivId = function () {
       document.getElementById(this.currentPlaceHolderId).id = this.tempPlaceHolderId;
       document.getElementById(this.defaultPlaceHolderId).id = this.currentPlaceHolderId;
       document.getElementById(this.tempPlaceHolderId).id = this.defaultPlaceHolderId;
       
    }
    
    this.setPlaceholderDivId = function() {
      document.getElementById(this.defaultPlaceHolderId).id = this.tempPlaceHolderId;
      document.getElementById(this.currentPlaceHolderId).id = this.defaultPlaceHolderId;
      document.getElementById(this.tempPlaceHolderId).id = this.currentPlaceHolderId; 
    }
      
    this.init = function() {
        
        this.oX = -999;
        this.oY = -999;
        this.x = 0;
        this.y = 0;

        var frames = new Array();
        this.headlines = new Array(); 
        this.subheadlines = new Array();

        var frameCounter = 0;
        //Store all the rotator frames in the frames array
        for(i = 1; i <= this.maxNumFrames; i++)
        {
           var tmpFrame = document.getElementById('sDL' + i);
           //tmpFrame.style.display = 'none';
           
           //Put a condition here to test if the frame contains anything.                  
           if(tmpFrame.getElementsByTagName("h2").length != 0) {
                frames[frameCounter] = tmpFrame;
                frameCounter ++;
           }               
        }
                            
        try {
            for(i = 0; i < frames.length; i++)
            {
                currentHeaders = frames[i].getElementsByTagName("h2");

                //Allow for the eyebrow and lower body headers.
                if(currentHeaders.length == 2) {
                    this.headlines[i] = currentHeaders[0];
                    this.subheadlines[i] = currentHeaders[1];
                }
                else{              
                    this.headlines[i] = currentHeaders[0];
                    this.subheadlines[i] = currentHeaders[2];
                }
            }

            //this.p.offsetparent gets the parent that movement is relative to.
            //Might be able to make visible / invisible instead.
            

             if(this.placeHolder.offsetParent) {
                var t = this.placeHolder;
                while(t.offsetParent) {
                    this.x+=t.offsetLeft;this.y+=t.offsetTop;t=t.offsetParent;
                }
        }
            
             //this.c is a counter, ie the current frame.
            if(!this.rflag) {
                this.currentPlaceHolderId = frames[0].id;
                var tmp = frames[0].innerHTML;
                this.c = 0;
            } else {
                this.currentPlaceHolderId = frames[this.c].id;
                var tmp = frames[this.c].innerHTML;
            }

           

            //If the tmp variable isnt empty, place its content into the place holder.
            if(tmp!="") {                
                this.placeHolder.innerHTML = "<div id='slide"+(this.c+1)+"' class=\"slide\">"+tmp+"</div>";
                this.buildTools();                
                this.setPlaceholderDivId();
                document.getElementById('sDL0').style.display = "none";  
                document.getElementById(this.currentPlaceHolderId).style.display ='block';                
            }

             
            this.rflag = false;
           
        } catch(e) { }
    };

    this.buildTools = function() {
        
        var colon = ":";
        var dash = "";

        if (country == "fr") {
            colon = " :";
            dash = "- ";
        }
    
        var currentSlideNo = this.c + 1;
        var nextSlideNo = this.c + 1;

        //Loop round to start from 0 again.
        if(nextSlideNo >= this.headlines.length) {
            nextSlideNo = 0;        
        }

        var nextHeadline = this.headlines[nextSlideNo].innerHTML;
        var nextSubHeadLine = 'Teaser Text'
        if (this.subheadlines[nextSlideNo].innerHTML != null) {
            nextSubHeadline = this.subheadlines[nextSlideNo].innerHTML;
        }
        if (this.headlines[nextSlideNo].innerHTML == '&nbsp;') {
            nextHeadline = this.subheadlines[nextSlideNo].innerHTML;
            var s = "<div id=\"rtn\"><span id=\"nHeadline\">" + nextin + colon + " <a href=\"#\" onclick=\"return "+this.name +".action('next');\">"+ nextHeadline + "</a></span>";
        }
        else {  var s = "<div id=\"rtn\"><span id=\"nHeadline\">" + nextin + " " + dash + nextHeadline + colon + " <a href=\"#\" onclick=\"return "+this.name +".action('next');\">"+ nextSubHeadline + "</a></span>";
        }

        s += "<div id=\"rControl\"><span id=\"rGroup\">" + currentSlideNo + "/" + (this.headlines.length) + "</span>";
        s += "<div id=\"rTL\"><a href=\"#\" onclick=\"return "+this.name +".action('back');\"></a></div>";
        if(this.pause) { s += "<div id=\"rTPauseOn\"><a href=\"#\"onclick=\"return "+this.name +".action('unpause');\"></a></div>";
        }
        else { s += "<div id=\"rTPauseOff\"><a href=\"#\"onclick=\"return "+ this.name +".action('pause');\"></a></div>";
        }
        s += "<div id=\"rTR\"><a href=\"#\" onclick=\"return "+ this.name +".action('next');\"></a></div></div>";
        try {
        this.placeHolder.innerHTML += s;    
        } catch(e) {}        
    };

    this.asppImpression = function() {
    }

    this.rotate = function() {
        this.dI = setTimeout(this.name +".action()",this.i);            
    };

    //x is the parameter thats passed to move, if this function ends up moving the frame.
    this.action = function(action,x) {

        clearTimeout(this.dI);
        if(!action) { action = this.mode; }
        if(this.rflag&&action!="refresh") { this.init(true); }
   
        switch(action) {
            case "pause":
                this.pause = true;
                this.buildTools();
                this.mode = "pause";
                break;
            case "unpause":
                this.pause = false;
                this.buildTools();
                this.mode = "play";
                this.rotate();
                break;
            case "play":
                this.mode = "play";
                this.move();
                this.rotate();
                break;
            case "back":
                this.mode = "back";
                this.move(true);
                this.pause = true;
                this.buildTools();
                this.mode = "pause";
                break;          
            case "next":
                this.mode = "next";
                this.move();
                this.pause = true;
                this.buildTools();
                this.mode = "pause";
                break;
            case "jump":
                this.mode= "jump";
                this.move(x);
                break;
            case "refresh":
                this.refresh();
                break;
        }

       
        return false;
    };

    this.move = function(f) {
    
        var frames = new Array();
        //Store all the rotator frames in the frames array
        var frameCounter = 0;
        for(i = 1; i <= this.maxNumFrames; i++)
        {
           var tmpFrame = document.getElementById('sDL' + i);
           //Put a condition here to test if the frame contains anything.
           if(tmpFrame.getElementsByTagName("h2").length != 0) {

                frames[frameCounter] = tmpFrame;
                //frames[frameCounter].style.display = 'none';
                frameCounter ++;
           }           
        }

        try {
            if(!f) {
                this.c++;
                (this.c== frames.length)?this.c=0:this.c;
            } else if(this.mode=="back") {
                this.c--;
                (this.c<0)?this.c = frames.length-1:this.c;
            } else if(this.mode=="jump") {
                this.c = f-1;
            }

            
            var html = frames[this.c].innerHTML
            
            
            
            if(frames[this.c].innerHTML!="") {
                this.resetPlaceHolderDivId();
                this.currentPlaceHolderId = frames[this.c].id;
                this.placeHolder.innerHTML = "<div id='slide"+(this.c+1)+"'  class=\"slide\">"+frames[this.c].innerHTML+"</div>";  
                this.buildTools();
                this.setPlaceholderDivId();
            } 
        
            //To ensure the module in the placeholder is always displayed (mainly a problem in preview)
            document.getElementById('sDL0').style.display = "none";
            
            //if(this.placeHolder.childNodes[0].childNodes[0]) {
               // alert(this.placeHolder.childNodes[0].childNodes[0].style.display);
                //this.placeHolder.childNodes[0].childNodes[0].style.display = 'block';
                //document.getElementById(this.currentPlaceHolderId).style.display ='block';        
            //}
            
    
          } catch(e) {}
    };

    this.refresh = function () {
        try {
        clearTimeout(this.dI);
        if(!this.rflag) {
            this.rflag = true;
        }
        var hash = new Date().getTime();
        this.frames[this.c].style.top = this.oY+"px";
        this.frames[this.c].style.left = this.oX+"px";
        var req = new genericAjax(this.refreshPath +"&hash="+hash,"GET","TEXT",rotatorUpdateDisplay);
        this.dR = setTimeout(this.name +".action('refresh')",this.rI);
        buildTools();
        } catch(e) {} 
    };
    this.init(); 
    this.mode="play"; 
    this.rotate();
    
}

/* GENERIC AJAX CLASS */

function genericAjax(u,m,t,h) {
    this.u = u;this.m=m;this.P=t;this.C=h;
    this.createXMLHttp = function() {
        r = false;
        if(window.ActiveXObject) {
            try {
                r = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    r = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {
                    r = null;
                }
            }
        } else {
            try {
                r = new XMLHttpRequest();
            } catch (e) {
                r = null;
            }
        }
    return r;
    };
    this.responseHandler = function() {
        if(r.readyState==4) {
            if(r.status==200) {
                if(t=="XML") {
                    h(r.responseXML);
                } else {
                    h(r.responseText);
                }
            }
        }
    };
    var r = this.createXMLHttp();
    if(r) {
        r.onreadystatechange = this.responseHandler;
        r.open(this.m,this.u,true);
        r.send("");
    }
}

function rotatorUpdateDisplay(content) {
   
    try {
            var t = document.createElement("div");
            t.innerHTML = content;
            rotatorMod.buildTools();
            var i = 0;
            while(i<=t.childNodes.length) {
                try {
                    if(t.childNodes[i].getAttribute("id")=="sL_P_1" || t.childNodes[i].getAttribute("id")=="sP_1") {
                        var y = 0;
                        while(y<=t.childNodes[i].childNodes.length) {
                            try {
                                if(t.childNodes[i].childNodes[y].getAttribute("id")=="rC") {
                                    var tmp = t.childNodes[i].childNodes[y].innerHTML;
                                }
                                break;
                                
                            } catch(e) {}
                            y++;                
                        }
                    break;
                    }
                } catch(e) { }
            i++;
            }
            document.getElementById("rC").innerHTML = tmp;
           
            if(rotator.mode=="play") { rotator.action('next'); }
        } 
    catch(e) {
    
    }
}
    
var tabs = new Array();

function tabbedModule(moduleTitle, URL, sprite)
{  
    var spriteNum = sprite.split('_')[1];
    buildTabTitleBar(moduleTitle, URL, spriteNum);
}

//Build the bar on each module at the start
function  buildTabTitleBar(moduleTitle, URL, spriteNum)
{
    var tabHeaders = new Array();
    //Get each tabs Title

    //get all the tabs
    var i = 0;
    while (true) {
           var tab = document.getElementById('sTPC' + (i+1));          

           //Loop until there are no more tabs
           if(tab == null)
               break;

            tabs[i] = tab;

           var tabHeader = tab.getElementsByTagName("h2")[0].getElementsByTagName("a")[0].innerHTML;
           tabHeaders[i] = tabHeader;
           i++;
    }
    
    //Set all tabs hidden except the first one.
//    for (var i = 1; i < tabs.length; i++ ){    
//        tabs[i].style.display = 'none';
//    }
    
    //Calculate the sprite image value
    var spritePixelValue = 2 - (spriteNum * 30);

    //Create the tab title bar.
    var titleBarHTML =    "<h2 class=\"gen_head1 title\" style=\"padding-left:0px; background-image:none\">" +
                                "<a href=\"" +  URL  +"\" target=\"$target\" class=\"gen_head1_link tabTitle\"" +
                                    "style= \"background-image: url('http://o.aolcdn.com/art/ukrestart/icons');" +
                                            "background-repeat: no-repeat; " +
                                            "padding-left:25px;" +
                                            "background-position: 0px " + spritePixelValue + "\">" +
                                    moduleTitle +
                                "</a>" +
                                "<ul class=\"tabbedmodtabs\">";
                                
                                for (var i = 0; i < tabs.length ; i++ ) {
                                   titleBarHTML += "<li name=\"ssTPC" + (i+1) + "\" onclick=\"switchTab('sTPC" + (i+1) + "')\">" + tabHeaders[i] + " </li>";
                                }
                                    
    titleBarHTML +=             "</ul>" +
                           "</h2>";

    //The 3rd Div is the title bar. Set the title bar of each tab
    for (var i = 0; i < tabs.length ; i ++ ){
        tabs[i].getElementsByTagName('div')[3].innerHTML = titleBarHTML;
    } 
   
    
}

function switchTab(tabID)
{
    hideTabs();
    var selectedtab = document.getElementById(tabID);
    selectedtab.style.display ='block';

    var tabHeaders = document.getElementsByName(tabID);

    for (var i = 0; i < tabHeaders.length ; i++ )
    {
        tabHeaders[i].className = 'selectedTab';
    }
}

function hideTabs()
{
    for (var i = 0; i < tabs.length; i++ ){    
        tabs[i].style.display = 'none';

        var tabHeaders = document.getElementsByName(tabs[i].id);
        for (var j = 0; j < tabHeaders.length ; j++ )
        {
            tabHeaders[j].className = 'deSelectedTab'
        }       
    }
}

// Generic visibility control for showing/hiding content
// e.g. for tabbed panel display functionality
function visibilityControl(){
    this.visibilityContainer = document;
    this.visibilityLinks;
    this.visibilityPanels;
    this.visibilityDisplayPanel;
    this.selectedLink;

    this.linkedPanelClassPrefix = "visibilityPanel";
    this.visibilityLinkClass = "visibilityLink";
    this.hiddenClass = "hidden";
    this.showClass = "visibilityShow";
    this.hideClass = "visibilityHide";
    this.toggleClass = "visibilityToggle";
    this.selectedClass = "selected";
    this.selectedClassOnParent = false;
    
    this.visibilityLinkRegex = /(visibilityLink)+([0-9a-zA-Z-])+/g ;
    this.visibilityLinkPrefixRegex = /visibilityLink/;
    this.visibilityPanelRegex = /(visibilityPanel)+([0-9a-zA-Z-])+/g;
    this.intRegex = /[0-9]/;

    this.showModal = true;
    this.useDisplayContainer = false;
    this.usePanelIds = false;
    this.defaultPanel = -1;
    this.hasTabbed = false;

    var scope = this;
    
    this.init = function(container, displayPanel){
        if(container)
            this.visibilityContainer = (typeof container == 'string')? $(container) : container;

        if (displayPanel){
            this.visibilityDisplayPanel = (typeof displayPanel == 'string')? $(displayPanel) : displayPanel;
            this.useDisplayContainer = true;
        }

        if(!this.visibilityLinks)
            this.visibilityLinks = getElementsByClassName(this.visibilityLinkClass,this.visibilityContainer,'a');
        
        if(!this.visibilityPanels)
            this.visibilityPanels = getElementsByClassName(this.linkedPanelClassPrefix,this.visibilityContainer,'div');
        
        //var _defPanel = this.visibilityPanels[this.defaultPanel];
        var _defPanel = this.visibilityPanels[this.defaultPanel];
        if (this.defaultPanel >= 100 && !_defPanel) {
            _defPanel = this.visibilityPanels[this.defaultPanel-100];
        }
        for (var i = 0; i< this.visibilityLinks.length ; i++)
        {
            // bind visibility link event
            addEvent(this.visibilityLinks[i],"click",this.showHideHandler,false);
            
            // add selected status to links associated with default panel
            if (this.defaultPanel > -1 && _defPanel){
                var _defPanelClass = _defPanel.className.match(this.visibilityPanelRegex);
                if (_defPanelClass.length > -1)
                {
                    var cName = this.visibilityLinkClass + _defPanelClass[0].replace(this.linkedPanelClassPrefix,'');
                    if (classExists(this.visibilityLinks[i], cName))
                        this.setSelected(this.visibilityLinks[i]);
                }

            }
        }

        // display default panel
        if (this.defaultPanel > -1 && _defPanel){
            this._hideAll();
            this.show(_defPanel);
        }
        this.postInit();
    }
    this.postInit = function(){}

    this.loadPanelId = function(id){
        this.show($(id))
    }

    this.setSelected = function(link){
        var _link;
        for (var i = 0; i< this.visibilityLinks.length ; i++)
        {
            _link = this.selectedClassOnParent ? this.visibilityLinks[i].parentNode : this.visibilityLinks[i];
            removeClass(_link,this.selectedClass);
        }
        _link = this.selectedClassOnParent ? link.parentNode : link;
        addClass(_link,this.selectedClass);
        this.postSetSelected(link);
    }

    this._hideAll = function(){
        for (var i = 0; i< this.visibilityPanels.length ; i++)
        {
            addClass(this.visibilityPanels[i],this.hiddenClass);
        }
    }

    this.hideAll = function(){
        if (this.useDisplayContainer){
        } else if (this.showModal){
            this._hideAll();
        }
    }

    // pre/post hooks
    this.preShow    = function(panel){}
    this.preHide    = function(panel){}
    this.preToggle  = function(panel){}
    this.postShow   = function(panel){}
    this.postHide   = function(panel){}
    this.postToggle = function(panel){}
    this.linkHandlerHook = function(link){};
    this.postSetSelected = function(link){};

    this.show = function(panel){
        if (panel)
        {       
            this.preShow(panel);
            if (this.useDisplayContainer)
            {
                this.visibilityDisplayPanel.innerHTML = panel.innerHTML;
            } else {
                this.hideAll();
                removeClass(panel,this.hiddenClass);
            }
            this.postShow(panel);
        }
    }

    this.hide = function(panel){
        this.preHide(panel);
        if (this.useDisplayContainer)
        {
            this.visibilityDisplayPanel.innerHTML = '';
        } else {
            addClass(panel,this.hiddenClass);
        }
        this.postHide(panel);
    }

    this.toggle = function(panel){
        this.preToggle(panel);
        if (this.useDisplayContainer){
            this.show(panel);
        }
        else
        {
            if (classExists(panel,this.hiddenClass))
            {
                this.hideAll();
                this.show(panel);
            } else {
                this.hide(panel);
            }
        }
        this.postToggle(panel);
    }

    this.handleVisibility = function(link, panel){
        this.setSelected(link);

        if (!this.hasTabbed)
        {
            this._hideAll();
            this.hasTabbed = true;
        }

        if (classExists(link,this.toggleClass)){
            this.toggle(panel);
        }
        if (classExists(link,this.showClass)){
            this.show(panel);
        }
        if (classExists(link,this.hideClass)){
            this.hide(panel);
        }
    }

    this.getLinkId = function(link){
        var showLinkId;
        if (link && link.className)
        {
            
            var aShowLinkId = link.className.match(this.visibilityLinkRegex);

            if (aShowLinkId && aShowLinkId.length > 0){
                showLinkId = (aShowLinkId[0].replace(this.visibilityLinkPrefixRegex,''));
            }
            if (showLinkId.charAt(0)=='-')
                showLinkId = showLinkId.substring(1);
        }
        return showLinkId;  
    }

    // this works out which panel to show/hide and the visibility function based on the attribute information
    this.showHide = function(link){
        this.selectedLink = link;
        if (link && link.className)
        {
            
            var aShowLinkId = link.className.match(this.visibilityLinkRegex);
            var showLinkId;

            if (aShowLinkId && aShowLinkId.length > 0){
                showLinkId = (aShowLinkId[0].replace(this.visibilityLinkPrefixRegex,''));
            }
            
            if (showLinkId){
                this.selectedPanelId = showLinkId;
                if (this.usePanelIds){
                    showLinkId = showLinkId.substring(1);
                    this.handleVisibility(link, $(showLinkId));
                } else {
                    var showHidePanel = getElementsByClassName(this.linkedPanelClassPrefix+showLinkId,this.visibilityContainer,'div');
                    for (var i = 0; i< showHidePanel.length ; i++)
                    {
                        this.handleVisibility(link, showHidePanel[i]);
                    }
                }
            }
        }
        this.linkHandlerHook(link);
    }

    // event handler for show/hide links
    this.showHideHandler = function(e){
        stopDefaultAction(e);
        var obj = e.currentTarget;
        scope.showHide(obj);
    }

}


var searchLocation = "header";

function searchVisibilityControl(){
    var searchDisplayPanel = "search-display-panel";
    if (searchLocation == "footer") {
        searchDisplayPanel = "footer-search-display-panel";
    }
    this.superClass = visibilityControl; 
    this.superClass();
    this.checkedRadioElem;
    this.selectedClass = "dsTbOn";
    this.selectedClassOnParent = true;
    this.dividerIdPrefix = 'search_divider';
    this.radioInputRegex = /(radioInput)+([0-9a-zA-Z-])+/g;
    this.radioInputPrefix = 'radioInput';
    this.frLangField;
    this.businessValue="";
    this.localValue="";
    
    if (typeof searchBusinessValue != "undefined" && searchBusinessValue)
        this.businessValue= searchBusinessValue;
    
    if (typeof searchLocalValue != "undefined" && searchLocalValue)
        this.localValue= searchLocalValue;
        
    var scope = this;

    this.preShow = function(panel){ 
        var elems = getElementsByClassName('headerSearchInput', $(searchDisplayPanel),'input'); 
        if (elems.length > 0){ 
            if (elems[0].value != this.businessValue  && elems[0].value != this.localValue) {
                this.searchFieldValue = elems[0].value; 
            }
        } 
        var radioElems = getElementsByClassName('radioInput', $(searchDisplayPanel),'input'); 
        
        for (var i = 0; i< radioElems.length ; i++)
        {
            if (radioElems[i].checked)
            {
                this.checkedRadioElem = this.radioInputPrefix+radioElems[i].className.match(this.radioInputRegex)[0].replace(this.radioInputPrefix,'');
            }
        }


    }
    this.postShow = function(panel){ 
        if (this.searchFieldValue){ 
            var elems = getElementsByClassName('headerSearchInput', $(searchDisplayPanel),'input'); 
            if (elems.length > 0){ 
                elems[0].value = this.searchFieldValue; 
            } 
        } 
        if (this.checkedRadioElem)
        {
            var radioElems = getElementsByClassName('radioInput', $(searchDisplayPanel),'input'); 
            for (var i = 0; i< radioElems.length ; i++){
                radioElems[i].removeAttribute('checked');
            }
            radioElems = getElementsByClassName(this.checkedRadioElem, $(searchDisplayPanel),'input'); 
            if (radioElems.length > 0){ 
                radioElems[0].checked = 'checked';
            }
        }
        if (this.frLangField){
            var hiddenInputFields = getElementsByClassName('lr', $(searchDisplayPanel),'input'); 
            if (hiddenInputFields.length > 0){
                var hiddenInputField = hiddenInputFields[0];
                if (hiddenInputField)           
                    hiddenInputField.value = this.frLangField;
            }
        }
        this.addRadioInputToggleEvents();
    }
    this.postSetSelected = function(link){
        var dividerElems = getElementsByClassName('search_divider', this.visibilityContainer,'span');
        var selectedId = this.getLinkId(link);

        for (var i = 0; i< dividerElems.length ; i++)
        {
            removeClass(dividerElems[i],this.hiddenClass);
            if (dividerElems[i].id)
            {
                var idx = dividerElems[i].id.replace(this.dividerIdPrefix,'');
                if (idx == selectedId)
                {
                    var sDivider = $('search_divider'+idx);
                    if (sDivider)
                    {
                        addClass(sDivider,this.hiddenClass);
                    }
                }
            }
        }
    }
                    
    this.addRadioInputToggleEvents = function(){
      // attach radioInputTogglehandler event
      var elems = getElementsByClassName('radioInput', this.visibilityContainer,'input');   
      for (var i = 0; i < elems.length ; i++)
      {
        addEvent(elems[i],"click",this.radioInputTogglehandler,false);
        
      }
    }

    // radio input value toggling for FR search restriction handling
    this.radioInputTogglehandler = function(ev){
        //find hidden input with toggled value
        var hiddenInputFields = getElementsByClassName('lr', $(searchDisplayPanel),'input'); 
        if (hiddenInputFields.length > 0){
            var hiddenInputField = hiddenInputFields[0];
            if (hiddenInputField)
            {           
                if (classExists(ev.currentTarget, 'radioInput1')){
                    hiddenInputField.value = ''; //set hiddenInputField blank
                } else if (classExists(ev.currentTarget, 'radioInput2')){
                    hiddenInputField.value = 'lang_fr'; //set hiddenInputField with other value
                }
                scope.frLangField = hiddenInputField.value;
            }
        }
    }
}

function setFRShoppingSubmitValue(o){
    var searchTabUrl = o.getAttributeNode('action').nodeValue;
    window.location.href = searchTabUrl+'action=keyword/keyword-'+o.action.value+'/linkin_id-7000044/nd-20/nm-20&zone=zone1';
}

function setDefaultHeaderSearchOmnitureString(o){
    if (o.query)
        s_265.prop18=o.query.value;
    if (o.q)
        s_265.prop18=o.q.value;
    if (o.was)
        s_265.prop18=o.was.value;
    s_265.prop20=s_265.pageName;s_gi(s_account);s_265.tl(o,"o","Google Search on "+s_265.pageName);
}

function setShoppingHeaderSearchOmnitureString(o){
    if (o.KW)
        s_265.prop18=o.KW.value;
    if (o.action)
        s_265.prop18=o.action.value;
    if (o.FD)
        s_265.prop18=s_265.prop18+" - " +o.FD.options[o.FD.selectedIndex].text;
     s_265.prop20=s_265.pageName;s_gi(s_account);s_265.tl(o,"o","Shopping Search on "+ s_265.pageName);
}


function GalleryControl(){
    this.gallerySize;
    this.galleryName;
    this.isGalleryPage;
    this.resizeObject;
    this.hiddenObject;
    this.measuredObject;
    this.buttonIdNext = 'nextButton';
    this.buttonIdBack = 'backButton';
    this.delimiter = '-';
    this.hiddenClass = 'hidden';
    this.hiddenClass2 = 'hidden2';
    this.displayClass= 'module_gallery_wrapper';
    this.ieBorder = 10;
    var scope = this;
    this.maxWrapperHeight = 0;

    this.init = function(){
        for (var i = 1; i<= this.gallerySize ; i++) {
                if (!this.isGalleryPage){
                    addEvent(document.getElementById(this.buttonIdNext + this.delimiter + this.galleryName + this.delimiter + i),"click",nextPhoto);
                    addEvent(document.getElementById(this.buttonIdBack + this.delimiter + this.galleryName + this.delimiter + i),"click",prevPhoto);
                }
            if (i == this.viewPhoto) {
                var wrapperHeight = document.getElementById(this.measuredObject + this.delimiter + this.galleryName + this.delimiter + i).scrollHeight;
            } else {
                //IE cannot read heights of absolutely positioned div's, therefore we have to hide them in a different way to read the height.
                //They cannot be hidden this way originally because it does not work for non-javascript pages.
                document.getElementById(this.hiddenObject + this.delimiter + this.galleryName + this.delimiter + i).className = this.hiddenClass2;
                var wrapperHeight = document.getElementById(this.measuredObject + this.delimiter + this.galleryName + this.delimiter + i).scrollHeight;
                document.getElementById(this.hiddenObject + this.delimiter + this.galleryName + this.delimiter + i).className = this.hiddenClass;
            }
            if (this.maxWrapperHeight < wrapperHeight) {
               this.maxWrapperHeight = wrapperHeight;
            }
        }

        // IE box fix
        var browserName=navigator.appName;

        if (browserName=="Microsoft Internet Explorer") {
            this.maxWrapperHeight = this.maxWrapperHeight + this.ieBorder;
        }

        //Now need to resize the gallery
        document.getElementById(this.resizeObject).style.height = this.maxWrapperHeight + 'px';

        function nextPhoto(ev){
            var obj = ev.currentTarget;
            choosePhoto(obj,1);
            stopDefaultAction(ev);
        }
         function prevPhoto(ev){
            var obj = ev.currentTarget;
            choosePhoto(obj,-1);
            stopDefaultAction(ev);
        }
        function choosePhoto(obj, direction) {
            var idSplit = obj.id.split(scope.delimiter);
            var nextPhoto = Number(idSplit[2]) + Number(direction);
            if (nextPhoto > scope.gallerySize) {
                var nextPhoto = 1;
            } else if (nextPhoto < 1) {
                var nextPhoto = scope.gallerySize;
            }

            document.getElementById(scope.measuredObject + scope.delimiter + scope.galleryName + scope.delimiter + idSplit[2]).className = scope.hiddenClass;
            document.getElementById(scope.measuredObject + scope.delimiter + scope.galleryName + scope.delimiter + nextPhoto).className = scope.displayClass;
        }
    }
}

//Looks in the uuid cookie for a uuid (unique user id), if it finds it, returns it,
//otherwise generates a new uuid and stores it in a cookie.
//This is stored in an omniture field and integrated with wunderloop.
function getUUID() {

    var brandPattern = "";
    var countryDomain = window.location.hostname;

    countryDomain = countryDomain.split(".");
    countryDomain = countryDomain[countryDomain.length - 1];

    switch (countryDomain){
        case "uk": 
            brandPattern    = /https{0,1}:\/\/[^\/]+\.([^\.\/]+\.co.uk)/;
            countryDomain   = ".co.uk";
            break;
        case "de": 
            brandPattern    = /https{0,1}:\/\/[^\/]+\.([^\.\/]+\.de)/;
            countryDomain   = ".de";
            break;
        case "fr": 
            brandPattern    = /https{0,1}:\/\/[^\/]+\.([^\.\/]+\.fr)/;
            countryDomain   = ".fr";
            break;
         default: 
            brandPattern    = /https{0,1}:\/\/[^\/]+\.([^\.\/]+\.co.uk)/;
            countryDomain   = ".co.uk"
    }

    var brand = "";
    if (document.URL.match(brandPattern)) {
        brandPattern.exec(document.URL);
        var brand = RegExp.$1;
    }
    if (document.URL.indexOf("debug=true") > -1 && document.URL.indexOf("labhh")) {
        var brandPattern = /https{0,1}:\/\/([^\.]+)/;
        brandPattern.exec(document.URL);
        var brand = RegExp.$1 + countryDomain;
    }

    //Get a uuid from the cookie, if it exists, otherwise generate a new one.

    // Get from the cookie.
    if (document.cookie.match(/uuid=[^;\s]+/)) {
        uuidPattern = /uuid=([^;\s]+)/;
        uuidPattern.exec(document.cookie);
        return RegExp.$1;
    } else {
             // If the cookie didnt exist.
                var now = new Date();
                var expDate     =   new Date(now.getFullYear()+2, 0, 1, 0, 0, 0);
            var uuid = (Math.round(Math.random()*1000000000000)).toString(10) + (Date.parse(new Date())).toString(10);
        
     // First Time Unique Visitor
            document.cookie = "uuid=" + uuid + "; path=/; domain=" + brand + "; expires=" + expDate.toGMTString();
           
            return uuid;
      
    }
 
}


//Stores in a cookie, adID and bannerID from each ad in the form:
//      adID1,bannerID1;adID2,bannerID2;
function storeCampaignID()
{

    var spans = document.getElementsByTagName("span");
    var campaignID = "";

    /* For welcome screen */
    for (var i = 0; i < spans.length; i ++)
    {   
        if (spans[i].id == "adWrap") {
            //We want to get the anchor tag from the ad call,
            //If the ad is displaying, we then want to retrieve the href src.
            //We then want to split the href form by | and take the last element.
            //We then split it by semi colon and take the first and second of that element.
            //This gives adid=x and bnid=y
        
            var adCall = spans[i].getElementsByTagName("a")[0];
            
            if (typeof adCall != "undefined") {

                var adSource = adCall.href;
                var pattern = /.*AdId=([^;\s]+);.*BnId=([^;\s]+);.*/
                pattern.exec(adSource);
   
                var adid = RegExp.$1
                var bnid = RegExp.$2

                campaignID += adid + "," + bnid + ":"
             }              
        }
    }

        /* For channels */
        var adDivIds = new Array("hat", "lateAd", "rightrectangle300x250", "widesky160x600", "banner468x60");
        for (var i = 0; i < adDivIds.length; i++) {
               
            var adDiv = document.getElementById(adDivIds[i]);
            if (typeof adDiv != "undefined" && adDiv != null) {
            
                var adCall = adDiv.getElementsByTagName("a")[0];
                
                if (typeof adCall != "undefined" && adCall != null) {
                    var adSource = adCall.href;
                    var pattern = /.*AdId=([^;\s]+);.*BnId=([^;\s]+);.*/
                    pattern.exec(adSource);
       
                    var adid = RegExp.$1
                    var bnid = RegExp.$2

                    campaignID += adid + "," + bnid + ":"
                }
            }                 
        }

    //Store the campaignID in a cookie
    var expDate=new Date(); 
    expDate.setDate(expDate.getDate()+7);

    document.cookie = "campaignid=" + campaignID + "; expires=" + expDate.toGMTString();
}


//Gets Campaign ID from the cookie (if it exists);
function getCampaignID()
{   
    var campaignID = "";
    if (document.cookie.match(/campaignid=[^;\s]+/)) {
        campaignIDPattern = /campaignid=([^;\s]+)/;
        campaignIDPattern.exec(document.cookie);

        //Replace : with ;
        campaignID = RegExp.$1.replace(/:/g,";");
    }
    
    return campaignID;
}

function setHpSubmitValue(o){
    var searchTabUrl = o.getAttributeNode('action').nodeValue;  
    var hpBrand = location.href;
    if (hpBrand.indexOf('hp-commercial') > -1) {
      var invocation = "deat-mh-1_-hp-ws-cm-dt";
    }
    if (hpBrand.indexOf('hp-consumer') > -1) {
      var invocation = "deat-mh-1_-hp-ws-cn-dt";
    }
    window.location.href=searchTabUrl+'?query='+escape(o.action.value)+'&rp=countryAT&invocationType='+invocation;
}

function setDartySubmitValue(o){
        var searchTabUrl = o.getAttributeNode('action').nodeValue;      window.location.href=searchTabUrl+'q='+escape(o.action.value)+'&sa=Recherche+Google&domains=www.dartybox.fr&client=pub-1238832776106355&forid=1&ie=ISO-8859-1&oe=ISO-8859-1&cof=GALT%3A%237C5903%3BGL%3A1%3BDIV%3A%237C5903%3BVLC%3A920753%3BAH%3Acenter%3BBGC%3AEAEAEA%3BLBGC%3AEAEAEA%3BALC%3A1A171B%3BLC%3A1A171B%3BT%3A000000%3BGFNT%3A666666%3BGIMP%3A666666%3BLH%3A50%3BLW%3A63%3BL%3Ahttp%3A%2F%2Fwww.coteblog.com%2Fimages%2Fmachine_ecrire.jpg%3BS%3Ahttp%3A%2F%2F%3BFORID%3A11&hl=fr&p=web&ppast=web&accept-charset=utf8&enctype=multipart/form-data';
}

// For chanel specific search
function setPrefixSubmitValue(o,site){
alert(site);
        var searchTabUrl = o.getAttributeNode('action').nodeValue;      window.location.href=searchTabUrl+site+'q='+escape(o.action.value)+'&sa=Recherche+Google&domains=www.dartybox.fr&client=pub-1238832776106355&forid=1&ie=ISO-8859-1&oe=ISO-8859-1&cof=GALT%3A%237C5903%3BGL%3A1%3BDIV%3A%237C5903%3BVLC%3A920753%3BAH%3Acenter%3BBGC%3AEAEAEA%3BLBGC%3AEAEAEA%3BALC%3A1A171B%3BLC%3A1A171B%3BT%3A000000%3BGFNT%3A666666%3BGIMP%3A666666%3BLH%3A50%3BLW%3A63%3BL%3Ahttp%3A%2F%2Fwww.coteblog.com%2Fimages%2Fmachine_ecrire.jpg%3BS%3Ahttp%3A%2F%2F%3BFORID%3A11&hl=fr&p=web&ppast=web&accept-charset=utf8&enctype=multipart/form-data';
}
//Ajax functions for world weather
function getAjax() {
   
    var url = "worldweather.adp";
    var fn = writeResponse;
    var postdata = "searchloc=" + $('searchLoc').value + "&spanNo=" + $('spanNo').value + "&finalChoice=" + $('finalChoice').value; 
    makeRequest(url, fn, postdata);
}
//AJAX function for five day weather widget
function getweatherAjax() {
    var url = "fivedaysWeather.adp";
    var fn = writeResponse;
    var postdata = "searchloc=" + $('searchLoc').value + "&spanNo=" + $('spanNo').value + "&finalChoice=" + $('finalChoice').value;
    makeRequest(url, fn, postdata);
}
function writeResponse(url, r) {
    $('weather_results').innerHTML = r;
    document.searchForm.searchLoc.value="";
    document.searchForm.finalChoice.value="no";

}

function setDEAliceSubmitValue(o, radiovalue, url){     
    for (var i=0; i < o.langRestrict.length; i++) { 
        if (o.langRestrict[i].checked) {
            var radioBattonValue = o.langRestrict[i].value;
        }       
    }
    if(radioBattonValue == radiovalue) {
        window.location.href = url + "?q=" + o.action.value + '&langRestrict=0';
        return false;
    }
    window.submit();
}

function setPrefixSubmitValue(o,site){
        var searchTabUrl = o.getAttributeNode('action').nodeValue;
        if (o.q) {
                o.q.value=site+' '+unescape(o.action.value);
        } else if (o.query) {
                o.query.value=site+' '+unescape(o.action.value);
        }
}

function resizeIframeIfInMorpheus() {
    if (parent.inMorpheus) {
        parent.resizeIframe();
    }
}

/**********************************************/

/******* TRRI Comments Module ***********/
// Validating the user inputs
function validateTRRIComments(sName,sEmail,sDName,dNameId,cmtFormId,cmtFieldId,defaultComment,warningMsg1){

    var errorFlag = 0;
    // SNS VALUES
    var snsName         = sName.toLowerCase();
    var snsEmail        = sEmail.toLowerCase();
    var snsDisplayName  = sDName.toLowerCase();
    
    // Display Name From Comment form
    var displayName = document.getElementById(dNameId).value;
    displayName     = displayName.replace(/^\s+|\s+$/g,"");
    vDisplayName    = displayName.toLowerCase();
    
    //comment text
    var commentTxt  = document.getElementById(cmtFieldId).value;
    commentTxt      = commentTxt.replace(/^\s+|\s+$/g,"");
    
    // Reset Warning Message Style
    document.getElementById('displayNameLabel').style.color = '#000000';
    document.getElementById(cmtFieldId).style.color = '#666666';  
    document.getElementById('cmtFieldErr').style.display = 'none';
    document.getElementById('snsLoginErr').style.display = 'none';    
    document.getElementById('snsLoginErr').style.color   = '#000000';    
    
    if(snsName == ''){
        errorFlag = 1;
        document.getElementById('snsLoginErr').style.display = 'block';    
        document.getElementById('snsLoginErr').style.color   = '#FF0000';
        return false;
    }

    if(vDisplayName == '') {        
        errorFlag = 1;
        document.getElementById('displayNameLabel').style.color = '#FF0000';        
    }else if (vDisplayName == snsName || vDisplayName == snsEmail || vDisplayName.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) {
        errorFlag = 1;
        document.getElementById('displayNameLabel').style.color = '#FF0000';    
    }else{
        // assign the display name back to display name field after triming the white space around it.
        document.getElementById(dNameId).value = displayName; 
    }
    
    
    if(commentTxt == '' || commentTxt == defaultComment) {
        errorFlag = 1;
        document.getElementById('cmtFieldErr').style.display = 'block';    
        document.getElementById('cmtFieldErr').style.color   = '#FF0000'; 
    }else{
        // assign the commentTxt back to commentTxt field after triming the white space around it.
        document.getElementById(cmtFieldId).value = commentTxt;
    }
    
    if(errorFlag == 0) {
        document.getElementById(cmtFormId).submit();
        return false;
    }
    
    return false;
}

// resetting TRRI coments form
function resetTRRICommentsForm(cmtFormId){
   document.getElementById('displayNameLabel').style.color = '#000000';  
   document.getElementById('cmtFieldErr').style.display = 'none'; 
   document.getElementById('snsLoginErr').style.display = 'none'; 
   document.getElementById('gcm_c').className='cmmntTxtArea';
   document.getElementById('gcm_c').style.color='#666666';
   document.getElementById(cmtFormId).reset();
   return false;
}

function toggleToolTip(mode, linkObj, ttObj){
    var to = document.getElementById(ttObj);
    if (mode == 'show') {
        var coors = findPos(linkObj);
        to.style.top = coors[1] + 12 + 'px';
        to.style.left = coors[0] + 'px';
        to.style.display = '';
    }
    else if (mode == 'hide') {
        to.style.display = 'none';
    }
}
function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        curleft = obj.offsetLeft
        curtop = obj.offsetTop
        while (obj = obj.offsetParent) {
            curleft += obj.offsetLeft
            curtop += obj.offsetTop
        }
    }
    return [curleft,curtop];
}

//Enforce maxlength attribute of usercomments textarea.
function checkMaxLength(obj) {
    var maxLength = obj.getAttribute('maxlength');
    var currentLength = obj.value.length;
    if (currentLength > maxLength)
        obj.value=obj.value.substring(0,maxLength)    
	if (obj.getAttribute('counter')) {
		var counter = getEl(obj.getAttribute('counter'));
	    counter.firstChild.nodeValue = currentLength + '/' + maxLength;
        // not innerHTML
	}
}

/* hide/show for TRRI Comment Module */
function createthisCookie() {
    if (arguments[2]) {
        var date = new Date();
        date.setTime(date.getTime()+(arguments[2]*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    var domain = "."+document.domain+";";
    document.cookie = arguments[0]+"="+arguments[1]+expires+"; path=/; domain="+domain;
}

function readthisCookie() {
    var nameEQ = arguments[0] + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function toggleCmnts(){
    if (arguments[1] =='on' ){
        createthisCookie(arguments[0], 'on', 365);
    } else {
        createthisCookie(arguments[0], 'off', 365);
    }
    checkthisCookie(arguments[0]);
}


function toggleBtn(){
    var hideCmntBtn =document.getElementById('hideCmntBtnText').innerHTML;
    var showCmntBtn =document.getElementById('showCmntBtnText').innerHTML;
    var hideCmntText = document.getElementById('hideCmntText').innerHTML;
    var hideCmntMsg = '<span>'+ hideCmntText +'</span> <a  href="javascript:void(0);" onclick="toggleCmnts(\'cmnt\', \'off\');" class="showCmntsBtn">'+ showCmntBtn +'</a>';
    var hide = document.getElementById('hideCmnt');
    var show = document.getElementById('comment_list');
    var cmntBtn = document.getElementById('tglCmntBtn');
    var bgOverlay = document.getElementById('overlayBG');
    var pstBtn = document.getElementById('pstCmntBtn');
    var cmntPage = document.getElementById('comments_pagination');
    var comments_nav = document.getElementById('comments_nav');
    var comments_bottom_nav = document.getElementById('comments_bottom_nav');

    if (arguments[0]){
        if(show != null){
            show.style.display='none';
            if (cmntPage != null){cmntPage.style.display='none';}
                pstBtn.style.display='none';
                comments_nav.style.display='none';
                comments_bottom_nav.style.display='none';
                cmntBtn.innerHTML = showCmntBtn;
                cmntBtn.style.borderColor = '#fff';
                hide.innerHTML = hideCmntMsg;
                bgOverlay.style.display = 'block';
                cmntBtn.onclick = function () {
                    toggleCmnts('cmnt', 'off');
                }
        } else {
            cmntBtn.style.display = 'none';
        }
    } else {
        if(show != null){
            show.style.display='block';
            if (cmntPage != null){ cmntPage.style.display='block'; }
            pstBtn.style.display='inline';
            comments_nav.style.display='block';
            comments_bottom_nav.style.display='block';
            cmntBtn.innerHTML = hideCmntBtn;
            cmntBtn.style.borderColor = '#000';
            hide.innerHTML ="";
            bgOverlay.style.display = 'none';
            cmntBtn.onclick = function () {
                toggleCmnts('cmnt', 'on');
            }
        } else {
            cmntBtn.style.display = 'none';
        }
    }
}

function checkthisCookie(){
    var cmtCookie = readthisCookie(arguments[0]);
    if (cmtCookie == 'on'){
        toggleBtn(true);}
    else {
        toggleBtn(false);
    }
}

/* hide/show for Article Comments Module */
function commentBoxClick(obj,displaytext) {
    if(obj.value == displaytext) {
        obj.value = '';
        obj.className =  'clickcmmntTxtArea';
    } 
}

function restrictmaxlength(obj, max) {
    if (obj.value.length > max) {
        obj.value = obj.value.substr(0, max);
    }
}
var addCommentHvr = function()
{
    document.getElementById("pstCmntBtn").className="cmntAddHvr";
}

var cmntOffHvr = function()
{
  if(document.getElementById("tglCmntBtn").className == "cmntOff")
       document.getElementById("tglCmntBtn").className="cmntOffHvr";
}

var addCommentOut = function()
{
    document.getElementById("pstCmntBtn").className="cmntAdd";
}

var cmntOffOut = function()
{
    if(document.getElementById("tglCmntBtn").className == "cmntOffHvr")
    document.getElementById("tglCmntBtn").className="cmntOff";
}

var postBtnHvr = function()
{
    document.getElementById("AddCmmtButton").className="postBtnHvr";
}

var postBtnOut = function()
{
    document.getElementById("AddCmmtButton").className="postBtn";
}

var cancelBtnHvr = function()
{
    document.getElementById("cancelBtn").className="cancelBtnHvr";
}

var cancelBtnOut = function()
{
    document.getElementById("cancelBtn").className="cancelBtn";
}

function addyourComment() {
    var cmntBtn = document.getElementById('tglCmntBtn');
    var cmntBtnOn = document.getElementById('tglCmntBtnOn');
    var show = document.getElementById('comments_body');
    show.style.display='block'; 
    cmntBtnOn.style.display='none';
    cmntBtn.style.display='block';
    window.location.href = '#addNewCmmnt';
}

function createArticleCookie() {
    if (arguments[2]) {
        var date = new Date();
        date.setTime(date.getTime()+(arguments[2]*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    var domain = "."+document.domain+";";
    document.cookie = arguments[0]+"="+arguments[1]+expires+"; path=/; domain="+domain;
}

function readArticleCookie() {
    var nameEQ = arguments[0] + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function toggleArticleCmnts(){
    if (arguments[1] =='on' ){
        createArticleCookie(arguments[0], 'on', 365);
    } else {
        createArticleCookie(arguments[0], 'off', 365);
    }
    checkArticleCookie(arguments[0]);
}


function toggleArticleButton(){
    var cmntBtn = document.getElementById('tglCmntBtn');
    var cmntBtnOn = document.getElementById('tglCmntBtnOn');
    var show = document.getElementById('comments_body');
    if (arguments[0]){
        if(show != null){
            show.style.display='none';
            cmntBtnOn.style.display='block';
            cmntBtn.style.display='none';
            cmntBtn.innerHTML = cmntBtnOn;
            cmntBtn.onclick = function () {
                toggleArticleButton('cmnt', 'off');
            }
        } else {
            cmntBtn.style.display = 'none';
        }
    } else {
        if(show != null){
            show.style.display='block'; 
            cmntBtnOn.style.display='none';
            cmntBtn.style.display='block';
            cmntBtn.onclick = function () {
                toggleArticleButton('cmnt', 'on');
            }
        } else {
            cmntBtn.style.display = 'none';
        }
    }
}

function checkArticleCookie(){
    var cmtCookie = readArticleCookie(arguments[0]);
    if (cmtCookie == 'on'){
        toggleArticleButton(true);}
    else {
        toggleArticleButton(false);
    }
}

/******************** TRRI Ratings Module ********************/

function mouseoverup()
{
    document.getElementById("thumbsup").className="thumbsup_on";
}

function mouseoutup()
{
    document.getElementById("thumbsup").className="thumbsup";
} 

function mouseoverdown()
{
    document.getElementById("thumbsdown").className="thumbsdown_on";
}

function mouseoutdown()
{
    document.getElementById("thumbsdown").className="thumbsdown";
}

function getTRRIRating(objectURI, category, type, score, appId, subject, maxRating, channel, area, user) {
    var procName = "aoluk.trri.addRatingAndGet"
    var parameters = objectURI + ',' + category + ',' + type  + ',' + score + ',' + appId + ',' + subject + ',' + maxRating + ',' + channel + ',' + area + ',' + user;
    xmlHttpRating = GetXmlHttpObject();
    if (xmlHttpRating==null)
    {
        alert ("Browser does not support HTTP Request");
        return;
    }
    xmlHttpRating.onreadystatechange = handleRatingStateChange;
    var ourl = document.URL;
    // returns url="http://channel.aol.de", so +1 to include '/'
    var buildUrl = ourl.indexOf('/',ourl.indexOf('//')+2) +1;
    var url = ourl.substring(0, buildUrl);
    url += 'trri_ajax.adp';
    url = url + "?_pn=" + procName;
    if (parameters!="")
        url = url + "&_pa=" + parameters;
    url += '&date=' + new Date().getTime();
    xmlHttpRating.open("GET", url, true);
    xmlHttpRating.setRequestHeader("Accept", "text/xml");
    xmlHttpRating.send(null);
}

function handleRatingStateChange() {
    if(xmlHttpRating.readyState == 4) {
        if(xmlHttpRating.status == 200) {
            response = removeSpaces(xmlHttpRating.responseText);	
            if(response.length) {
                var result = response.substring(0, response.length );
                var results = result.split(" ");
                var votesMsgText =document.getElementById('votesMsgText').innerHTML;
                var votesMsgThanks = document.getElementById('votesMsgThanks').innerHTML;
                document.getElementById('label').innerHTML = votesMsgThanks + " ";
                document.getElementById('thumbsup').innerHTML = results[0] + ' %';
                document.getElementById('thumbsdown').innerHTML = results[1] + ' %';
                document.getElementById('total').innerHTML = results[2] + " " +votesMsgText;
                mouseoutup();
                mouseoutdown();
            }
        }
    }
}

// THIS FUNCTION RETURNS A STRING BY REMOVIMG WHITE SPACES AT BOTH THE ENDS
function removeSpaces(myRes){
return myRes.replace(/^\s*|\s*$/g,""); 
} // END OF function trim(s)
// Start:  SHARE THIS WIDGET JS

var sharePopFlag = true;                             //variable for onclick popup  
function showShareThisPopUp(topDivId, botDivId)        //function to call the popup onclick
{
    if (sharePopFlag)
    {
        document.getElementById('shareLeftIDBB').style.borderBottom = "1px solid #777";
        document.getElementById(botDivId).style.display = "block";
        document.getElementById(topDivId).className = "share_right_on";
    }
    else 
    {
        document.getElementById('shareLeftIDBB').style.borderBottom = "none";
        document.getElementById(botDivId).style.display = "none";
        document.getElementById(topDivId).className = "share_right";
    }
    sharePopFlag = !sharePopFlag;
}






/* **********************************************  AOL Ad JS OBJECT STARTS HERE ********************************** */
if(typeof(AOL)=='undefined'){
    var AOL = {};    
}

AOL.writead  =  function(obj){
                    var adJsCode =  AOL.writeadfn[obj.type](obj);
                    document.write(adJsCode);
                }
                
AOL.getad  =  function(obj){
                    var adJsCode =  AOL.writeadfn[obj.type](obj);
                    return adJsCode;
                }               
                
AOL.writeadfn = {  // container for vendor specific renderers 
                    google: function  ( obj ) {                                 
                                obj.ad_type =  'text' 
                                obj.encoding = 'utf8'
                                obj.ad_output = 'js'
                                obj.ad_header_text = 'Annonces Google'
                                obj.ad_targets = { 'googleads':1, 'gad_2':6 }
                                obj.ad_spot = 'googleads';
                                 
                                var w = window;
                                var prefix = obj.type + '_';
                                for (var prop in obj) { w[prefix + prop] = obj[prop]; }
                                    var adCode = '<div id="'+obj.ad_spot+'" class="' + obj.sizeid + '"></div>';
                                    var adCode = adCode+'<script src='+obj.url+'></scr' + 'ipt>';
                                    return adCode;
                                } ,
                    quigo:   function  ( obj ) {
                                    var w = window;
                                    var prefix = 'adsonar_';
                                    for (var prop in obj) { w[prefix + prop] = obj[prop]; }
                                    var adCode = '<script src='+obj.url+'></scr' + 'ipt>';
                                    return adCode;
                                } ,
                    adtech:  function  ( obj ) {
                                    var adCode = obj.text;
                                    return adCode;
                               }
                }
                    
// callback function for google ads:
 function google_ad_request_done(google_ads) {
    if (google_ads.length>=1) {
    try {
      google_ads.reverse();
    } catch(e) {}
    if (typeof google_ad_targets != "undefined") {
      for (google_ad_spot in google_ad_targets) {
        var spot_obj = false;
        try {
          spot_obj = document.getElementById(google_ad_spot);
        } catch(e) {}
        if (spot_obj != false && spot_obj != null) {
          var ad_count = google_ad_targets[google_ad_spot];
          if (typeof google_ad_header_text == "undefined") {
            google_ad_header_text = "Ads by Google";
          }
          var ad_markup = "<div class='gad_content'><div class='gad_header'>" + google_ad_header_text;
          ad_markup += "</div>";
          for (var i = 0; i<=ad_count-1;i++) {
            if (google_ads.length >=1) {    
              var google_ad = google_ads.pop();
              var ad_url = google_ad.url;
              var ad_visible_url = google_ad.visible_url;
              var ad_line1 = google_ad.line1;
              var ad_line2 = google_ad.line2;
              var ad_line3 = google_ad.line3;
              ad_markup += "<div class=\"gad\" id=\"gad_" + google_ad_spot;
              ad_markup += "_" + (i+1) + "\"><p><a href=\"" + ad_url + "\" onmouseout=\"window.status=''\"";
              ad_markup += " onmouseover=\"window.status='go to " + ad_visible_url + "';return true;\">";
              ad_markup += "<span class=\"gad_title\">" + ad_line1 + "</span><br/><span class=\"gad_body\">";
              ad_markup += ad_line2 + " " +ad_line3 + "</span><br/><span class=\"gad_link\">";
              ad_markup += ad_visible_url + "</span></p></div>";
            }
          }
          ad_markup += "</div>";
          spot_obj.innerHTML = ad_markup;
        }
      }
    }   
  }
  return true;
}

/* **********************************************  AOL Ad JS OBJECT ENDS HERE ********************************** */                  

// For Popeater tab in the header search
function popeaterUrl(url,frm)
{
	var fname = frm.q.value; 
	var actionStr = url+fname;
	frm.action=actionStr;
	document.popeaterSearch.action=actionStr;
}

function captureEnterKey(e,url,frm)
{
	var keynum;
	if(window.event) // IE
	{	keynum = e.keyCode;	}
	else if(e.which) // Netscape/Firefox/Opera
	{	keynum = e.which;	}
	if(keynum == 13){
		popeaterUrl(url,frm);
	}
}

function preventEmptyKeywordSubmission(elemName)
{
    var keywordString = elemName.value;
    if(/\S+/.test(keywordString)!=false) {
        return true;
    } else {
        return false;
    }   
}

function validateLocalSearchInputs(elem1,elem2,defaultText1,defaultText2){
    if(/\S+/.test(elem1.value)!=false) {
        if(/\S+/.test(elem2.value)!=false)
        {
            if(elem1.value == defaultText1 || elem2.value == defaultText2) {
                return false;
            } else {
                return true;
            }
        } else {
            return false;
        }
    } else {
        return false;
    }

}

function clearLocalInput(elem,defaultValue) {
    if(elem.value==defaultValue) {
        elem.value="";
        //removeClass(elem, "noVal");
    } else {
         //removeClass(elem, "noVal");
    } 
}

function resetLocalInput(elem,defaultValue) {
    if(elem.value=="") {
        //addClass(elem, "noVal");
        elem.value=defaultValue;
    }
}

function checkFooterSearchKeyword(formAction,query) {
    try {
        if(formAction!="") {
            var action = formAction;
            var match = /video/
            var matchString = action.match(match);
            if(matchString == 'video') {
                return preventEmptyKeywordSubmission(query);
            }
        }
    } catch(err) {
        
    }
    return true;
}

