window.icrc = window.icrc || {};

icrc.HeaderFooter = function() {
    
    var body = document.body || document.getElementsByTagName('body')[0],
        head = document.head || document.getElementsByTagName('head')[0];
    
    var _postElts = {
        'toggles': [],
        'select': []
    };
    
    
    function _log(arg1) {
        if(!!console.log) {
            console.log(arg1);
        }
    }
    
    
    function _getQueryParameter(param, defaultValue) {
        defaultValue = defaultValue !== null ? defaultValue : null;
        var queryParts = window.location.search.substring(1).split(/&/);
        
        for(var i=0; i < queryParts.length; i++) {
            var part = queryParts[i];
            var offset = part.indexOf('=');
            if(offset > 0) {
                if(part.substring(0, offset) === param) {
                    return part.substring(offset+1);
                }
            }
        }
        
        return defaultValue;
    }
    
    
    function _lessThanIE8() {
        var undef,
            v = 3,
            div = document.createElement('div'),
            all = div.getElementsByTagName('i');
        
        while (
            div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
            all[0]
        );
        
        return v > 4 ? v < 9 : false;
    }
    
    
    function _inArray(arr, item) {
        for(var i=0, l=arr.length; i < l; i++) {
            if(arr[i] === item) return true;
        }
        return false;
    }
    
    
    function _getElementsByClassName(className) {
        var that = this;
        
        var re = /\s/;
        var elts = that.getElementsByTagName('*');
        var result = [];
        
        for(var i=0, l=elts.length; i < l; i++) {
            var parts = elts[i].className.split(re);
            
            for(var j=0, m=parts.length; j < m; j++) {
                if(parts[j] == className) {
                    result.push(elts[i]);
                    break;
                }
            }
        }
        
        return result;
    }
    
    
    function initStyle() {
        // Styles
        
        var style = '<link type="text/css" rel="stylesheet" href="https://www.icrc.org/sites/default/files/css/css_ogjvJnfni1_P_WxvXAHlUOgCs860b3ip9DNMapcIGeM.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://www.icrc.org/sites/default/files/css/css_2LLUcqBQ3x02W4PYlUE2lSaitu7VlKtMBqQivenXvtk.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://www.icrc.org/sites/default/files/css/css_MnXiytJtb186Ydycnpwpw34cuUsHaKc80ey5LiQXhSY.css" media="all" /> <link type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700&amp;ndfjyr" media="all" /> <link type="text/css" rel="stylesheet" href="https://www.icrc.org/sites/default/files/css/css_lyBKsg5evaov6E6tvuv-68JMQwL9iAXefQIrbA-J2UY.css" media="all" /> <link type="text/css" rel="stylesheet" href="https://www.icrc.org/sites/default/files/css/css_47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU.css" media="all" />';
        
        try {
            head.innerHTML = head.innerHTML + style;
        }
        catch(err) {
            // We may be in IE8 or lower
            
            var tags = style.replace(/>\s*</g, '>__splitlimit__<').split(/__splitlimit__/);
            for(var i=0; i < tags.length; i++) {
                var tag = tags[i];
                var capTag = tag.toUpperCase();
                if(capTag.indexOf('<STYLE') === 0) {
                    // We got a STYLE tag
                    var elt = document.createElement('style');
                    elt.setAttribute('type', 'text/css');
                    // IMPORTANT: It is important to do the following line just here unless IE crashes!!!
                    head.appendChild(elt);
                    var stl = tag.substring(7, tag.length-8);
                    var imports = stl.split(/\s*;\s*/);
                    for(var j=0; j < imports.length; j++) {
                        var importUrl = imports[j].replace(/^\s*@import\s+url\s*\(\s*"/, '').replace(/"\s*\)$/, '');
                        // _log(importUrl);
                        elt.styleSheet.addImport(importUrl);
                    }
                }
                else if(capTag.indexOf('<LINK') === 0) {
                    // We got a LINK tag
                    var elt = document.createElement('link');
                    head.appendChild(elt);
                    var attrsList = tag.substring(5, tag.length-2).split(/\s+/);
                    for(var j=0; j < attrsList.length; j++) {
                        if(attrsList[j].length === 0) continue; // evoid trimming
                        var parts = attrsList[j].split(/=/);
                        elt.setAttribute(parts[0], parts[1].replace(/^"([^"]*)"$/, '$1'));
                    }
                }
                else {
                    // Not STYLE nor LINK tag
                    continue;
                }
            }
        }
    }
    
    function initBodyCls() {
        body.className += ' no-touch html not-front not-logged-in no-sidebars page-rx page-rx-headerfooter i18n-en section-rx';
    }
    
    function init() {
        initStyle();
        initBodyCls();
    }
    
    function normUrls(element) {
        var baseUrl = 'https://www.icrc.org';
        var baseUrlOffset1 = baseUrl.indexOf('://') + 3;
        var baseUrlOffset2 = baseUrl.substring(baseUrlOffset1).indexOf('/');
        var baseUrlEnd = baseUrlOffset2 != -1 ? (baseUrlOffset1 + baseUrlOffset2) : baseUrl.length;
        var baseUrlRoot = baseUrl.substring(0, baseUrlEnd);
        
        var mapping = {
            'a': ['href'],
            'img': ['src']
        }
        
        for(var tagName in mapping) {
            var els = element.getElementsByTagName(tagName);
            var elsLength = els.length;
            var attrs = mapping[tagName];
            var attrsLength = mapping[tagName].length;
            for(var i=0; i < elsLength; i++) {
                var el = els[i];
                for(var j=0; j < attrsLength; j++) {
                    var attr = attrs[j];
                    
                    if(el.hasAttribute(attr)) {
                        var curAttr = el.getAttribute(attr);
                        if(curAttr.indexOf('://') === -1) {
                            var bUrl = baseUrl;
                            if(curAttr.indexOf('/') === 0) {
                                bUrl = baseUrlRoot;
                            }
                            el.setAttribute(attr, bUrl + curAttr);
                        }
                    }
                }
            }
        }
    }
    
    function getElement(content) {
        var el;
        var aux = document.createElement('div');
        aux.innerHTML = content;
        normUrls(aux);
        el = aux.firstChild;
        if(!el.getElementsByClassName) {
            el.getElementsByClassName = _getElementsByClassName;
        }
        
        return el;
    }
    
    function getElements(content) {
        var els;
        var aux = document.createElement('div');
        aux.innerHTML = content;
        els = aux.childNodes;
        
        for(var i=0, l=els.length; i < l; i++) {
            normUrls(els[i]);
            if(!els[i].getElementsByClassName) {
                els[i].getElementsByClassName = _getElementsByClassName;
            }
        }
        
        return els;
    }
    
    function renderHeader(options) {
        options = options || {
            notes: '__undefined__'
        }; // set default
        
        // ---------------------------
        // Notes Data
        // ---------------------------
        var notesData = {
            searchFormCls: "nav-submenu",
            searchInputName: "t",
            sites: {
                "ihl": {
                    langPaths: {
                        "/fre/": "/applic/ihl/ihl.nsf/Redirect.xsp"
                    },
                    searchUrl: "/applic/ihl/ihl.nsf/vwSearchResults.xsp",
                    headerTitle: "TREATIES&nbsp;AND<br/>STATES&nbsp;PARTIES&nbsp;TO&nbsp;SUCH&nbsp;TREATIES"
                },
                "dih": {
                    langPaths: {
                        "/en/": "/applic/ihl/dih.nsf/Redirect.xsp"
                    },
                    searchUrl: "/applic/ihl/dih.nsf/vwSearchResults.xsp",
                    headerTitle: "TRAITÉS&nbsp;ET<br/>ÉTATS&nbsp;PARTIES&nbsp;À&nbsp;CES&nbsp;TRAITÉS"
                },
                "ihl-nat": {
                    langPaths: {},
                    searchUrl: "",
                    headerTitle: "IHL<br/>NATIONAL&nbsp;IMPLEMENTATION"
                }
            }
        };
        
        var header = '<header class="site-header"><div class="container"> <div class="row"> <div class="col-xs-6 col-sm-4"> <div class="logo-wrapper"> <a href="https://www.icrc.org/en" class="logo"><img src="/sites/default/themes/icrc_theme/images/logo.png" alt="International committee of the red cross"></a> <div class="slogan font-sm-18"> International Committee of the Red Cross </div> </div> </div> <div class="col-xs-6 col-sm-8 right-content"> <div class="hidden-xs"> <ul class="list-inline list-languages"> <li class="active"><a href="https://www.icrc.org/en/">English</a></li> <li><a href="https://www.icrc.org/fre/">Français</a></li> <li><a href="https://www.icrc.org/spa/">Español</a></li> <li> <select class="styled-language-select i-arrow-down-after"><option value="#" selected>other languages</option> <option value="https://www.icrc.org/ara/">عربي</option> <option value="https://www.icrc.org/por/">Português</option> <option value="https://www.icrc.org/rus/">русский</option> <option value="https://www.icrc.org/chi/">中文</option> <option value="https://www.icrc.org/eng/home/languages/">Other</option></select> </li> </ul> <div class="clearfix btn-wrapper theme-white-2"> <a href="#" class="btn js_toggle quick_access-toggle" data-target=".quick_access-menu, .quick_access-toggle" data-close-click-outside="1">Quick access</a> <a href="https://www.icrc.org/eng/who-we-are/contacts/" class="btn pull-right">Contact</a> <div class="quick_access-menu clearfix"> <div class="col-sm-4"> <h5>Highlights</h5> <ul class="menu"> <li class="menu__item is-leaf first leaf"><a href="https://www.icrc.org/en/whats-new" title="" class="menu__link">What\'s new</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/war-and-law/treaties-customary-law/geneva-conventions" title="" class="menu__link">The Geneva Conventions</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/icrc-databases-international-humanitarian-law" title="" class="menu__link">IHL databases</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/eng/resources/international-review" title="" class="menu__link">International Review of the Red Cross</a></li> <li class="menu__item is-leaf leaf"><a href="http://www.icrcvideonewsroom.org" title="" class="menu__link">Video Newsroom</a></li> <li class="menu__item is-leaf leaf"><a href="https://shop.icrc.org" title="" class="menu__link">eShop</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/eng/resources/icrc-archives" title="" class="menu__link">ICRC archives</a></li> <li class="menu__item is-leaf leaf"><a href="http://familylinks.icrc.org/" title="" class="menu__link">Restoring Family Links</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/eng/who-we-are/jobs" title="" class="menu__link">Working for the ICRC</a></li> <li class="menu__item is-leaf last leaf"><a href="https://www.icrc.org/eng/resources/documents/misc/warning_fraud.htm" title="" class="menu__link">Fraudulent e-mails and websites</a></li> </ul> </div> <div class="col-sm-4"> <h5>Countries</h5> <ul class="menu"> <li class="menu__item is-leaf first leaf"><a href="https://www.icrc.org/en/where-we-work/asia-pacific/afghanistan" title="" class="menu__link">Afghanistan</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/where-we-work/africa/central-african-republic" title="" class="menu__link">Central African Republic</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/where-we-work/americas/colombia" title="" class="menu__link">Colombia</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/where-we-work/africa/democratic-republic-congo" title="" class="menu__link">Democratic Republic of the Congo</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/where-we-work/middle-east/iraq" title="" class="menu__link">Iraq</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/where-we-work/middle-east/israel-and-occupied-territories" title="" class="menu__link">Israel and the Occupied Territories</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/where-we-work/africa/mali" title="" class="menu__link">Mali</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/where-we-work/asia-pacific/philippines" title="" class="menu__link">Philippines</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/where-we-work/africa/somalia" title="" class="menu__link">Somalia</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/where-we-work/africa/south-sudan" title="" class="menu__link">South Sudan</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/where-we-work/africa/sudan" title="" class="menu__link">Sudan</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/where-we-work/middle-east/syria" title="" class="menu__link">Syria</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/where-we-work/europe-central-asia/ukraine" title="" class="menu__link">Ukraine</a></li> <li class="menu__item is-leaf last leaf"><a href="https://www.icrc.org/en/where-we-work/middle-east/yemen" title="" class="menu__link">Yemen</a></li> </ul> </div> <div class="col-sm-4"> <h5>Topics</h5> <ul class="menu"> <li class="menu__item is-leaf first leaf"><a href="https://www.icrc.org/en/what-we-do/sexual-violence" title="" class="menu__link">Addressing sexual violence</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/war-and-law/weapons/small-arms-availability" title="" class="menu__link">Arms availability</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/war-and-law/weapons/chemical-biological-weapons" title="" class="menu__link">Chemical and biological weapons</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/war-and-law/protected-persons/children" title="" class="menu__link">Children</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/war-and-law/weapons/explosive-remnants-war" title="" class="menu__link">Explosive remnants of war</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/war-and-law/protected-persons/missing-persons" title="" class="menu__link">Missing persons</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/war-and-law/weapons/ihl-and-new-technologies" title="" class="menu__link">New technologies and IHL</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/war-and-law/weapons/nuclear-weapons" title="" class="menu__link">Nuclear weapons</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/war-and-law/contemporary-challenges-for-ihl/occupation" title="" class="menu__link">Occupation</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/war-and-law/protected-persons/refugees-displaced-persons" title="" class="menu__link">Refugees and displaced persons</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/what-we-do/safeguarding-health-care" title="" class="menu__link">Safeguarding health care</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/war-and-law/contemporary-challenges-for-ihl/security-detention" title="" class="menu__link">Security detention</a></li> <li class="menu__item is-leaf last leaf"><a href="https://www.icrc.org/en/what-we-do/visiting-detainees" title="" class="menu__link">Visiting detainees</a></li> </ul> </div> </div> </div> </div> <div class="visible-xs list-languages"> <select class="styled-language-select i-arrow-down-after"><option value="https://www.icrc.org/en/" selected>EN</option> <option value="https://www.icrc.org/fre/">FR</option> <option value="https://www.icrc.org/spa/">ES</option> <option value="https://www.icrc.org/ara/">AR</option> <option value="https://www.icrc.org/por/">PT</option> <option value="https://www.icrc.org/rus/">RU</option> <option value="https://www.icrc.org/chi/">ZH</option> <option value="https://www.icrc.org/eng/home/languages/index.jsp">Other</option></select> </div> </div> </div> </div> </header>';
        var nav = '<nav class="navbar navbar--main clearfix js_navbar" role="navigation"><div class="container"> <div class="nav-sub"> <button type="button" class="nav-toggle i-menu pull-left js_toggle" data-target=".navbar--main"> <span class="sr-only">Toggle navigation</span> </button> <div class="pull-right"> <div class="nav-donate nav-link-main-container"> <a href="https://www.icrc.org/eng/donations/" class="bg-red nav-link-main nav-link-donate">Support us</a> <div class="nav-submenu"> <a class="nav-link-sub-toggle i-arrow-left js_toggle visible-sm visible-xs" data-target=".nav-main">back</a> <a href="https://www.icrc.org/eng/donations/" class="nav-link-spot i-arrow-right-after">Donate</a> <div class="nav-split"> <ul> <li><a class="nav-link-sub" href="https://www.icrc.org/eng/donations/ways-to-donate/index.jsp">How you can help</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/eng/donations/where-your-money-go/index.jsp">Where does your money go?</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/eng/donations/corporate-sector/index.jsp">Support from the corporate sector</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/eng/donations/support-from-foundations/index.jsp">Support from Foundations</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/eng/donations/bequests-legacies/index.jsp">Bequests &amp; Legacies</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/eng/donations/partners/index.jsp">Our partners</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/eng/donations/philanthropy/index.jsp">Philanthropy</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/eng/donations/friends/index.jsp">The Friends of the ICRC</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/eng/donations/donations-faq/index.jsp">Donations FAQ</a></li> </ul> </div> </div> </div> <div class="nav-search nav-link-main-container"> <a href="#" class="i-search nav-link-main js_toggle" data-target=".nav-search"> <span class="sr-only">Search</span> </a> <form action="https://www.icrc.org/en/resource-centre/result" method="get" class="nav-submenu"> <div class="container"> <input type="search" name="t" value=""><button> <i class="i-search i-search--small visible-xs"></i> <span class="hidden-xs">Search</span> </button> </div> </form> </div> </div> </div> <div class="nav-mask"> <div class="nav-main"> <div class="nav-home nav-link-main-container"> <a href="https://www.icrc.org/en" class="nav-link-main nav-link-home">Home</a> </div> <div class="nav-who nav-link-main-container"> <a href="https://www.icrc.org/en/who-we-are" class="nav-link-main">Who we are</a> <div class="nav-submenu"> <a class="nav-link-sub-toggle i-arrow-left js_toggle visible-sm visible-xs" data-target=".nav-main">back</a> <a href="https://www.icrc.org/en/who-we-are" class="nav-link-spot i-arrow-right-after">Who we are - View all</a> <div class=" nav-split"> <ul> <li><a class="nav-link-sub" href="https://www.icrc.org/en/who-we-are/history/150-years-humanitarian-action">150 years of humanitarian action</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/who-we-are/contacts">Contacts</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/who-we-are/finances">Finances</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/who-we-are/funds-medals">Funds and medals</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/who-we-are/history">History</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/who-we-are/humanitarium">Humanitarium</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/who-we-are/mandate">Mandate and mission</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/who-we-are/structure">Structure</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/who-we-are/movement">The Movement</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/who-we-are/jobs">Working for the ICRC</a></li> </ul> </div> </div> </div> <div class="nav-what nav-link-main-container"> <a href="https://www.icrc.org/en/what-we-do" class="nav-link-main">What we do</a> <div class="nav-submenu"> <a class="nav-link-sub-toggle i-arrow-left js_toggle visible-sm visible-xs" data-target=".nav-main">back</a> <a href="https://www.icrc.org/en/what-we-do" class="nav-link-spot i-arrow-right-after">What we do - View all</a> <div class=" nav-split"> <ul> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/sexual-violence">Addressing sexual violence</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/building-respect-ihl">Building respect for the law</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/cooperating-national-societies">Cooperating with National Societies</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/ensuring-economic-security">Economic security</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/forensic-science">Forensic science and humanitarian action</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/health">Health</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/humanitarian-diplomacy-and-communication">Humanitarian diplomacy and communication</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/mine-action">Mine action</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/protecting-civilians">Protecting civilians</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/restoring-family-links">Restoring family links</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/safeguarding-health-care">Safeguarding health care</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/visiting-detainees">Visiting detainees</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/water-habitat">Water and shelter</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/what-we-do/private-sector-relations">Working with the business world</a></li> </ul> </div> </div> </div> <div class="nav-where nav-link-main-container"> <a href="https://www.icrc.org/en/where-we-work" class="nav-link-main">Where we work</a> <div class="nav-submenu"> <a class="nav-link-sub-toggle i-arrow-left js_toggle visible-sm visible-xs" data-target=".nav-main">back</a> <a href="https://www.icrc.org/en/where-we-work" class="nav-link-spot i-arrow-right-after">Where we work - View all</a> <div class=" nav-split"> <div class="group"> <h5 class="h5">Key Operations</h5> <a class="nav-link-sub" href="https://www.icrc.org/en/where-we-work/africa/central-african-republic">Central African Republic</a> <a class="nav-link-sub" href="https://www.icrc.org/en/where-we-work/middle-east/iraq">Iraq</a> <a class="nav-link-sub" href="https://www.icrc.org/en/where-we-work/middle-east/israel-and-occupied-territories">Israel and the occupied territories</a> <a class="nav-link-sub" href="https://www.icrc.org/en/where-we-work/africa/south-sudan">South Sudan</a> <a class="nav-link-sub" href="https://www.icrc.org/en/where-we-work/middle-east/syria">Syria</a> </div> <div class="group"> <h5 class="h5">Regions</h5> <a class="nav-link-sub" href="https://www.icrc.org/en/where-we-work/africa">Africa</a> <a class="nav-link-sub" href="https://www.icrc.org/en/where-we-work/americas">Americas</a> <a class="nav-link-sub" href="https://www.icrc.org/en/where-we-work/asia-pacific">Asia &amp; Pacific</a> <a class="nav-link-sub" href="https://www.icrc.org/en/where-we-work/europe-central-asia">Europe &amp; Central Asia</a> <a class="nav-link-sub" href="https://www.icrc.org/en/where-we-work/middle-east">Middle East</a> </div> </div> </div> </div> <div class="nav-war nav-link-main-container"> <a href="https://www.icrc.org/en/war-and-law" class="nav-link-main">War &amp; Law</a> <div class="nav-submenu"> <a class="nav-link-sub-toggle i-arrow-left js_toggle visible-sm visible-xs" data-target=".nav-main">back</a> <a href="https://www.icrc.org/en/war-and-law" class="nav-link-spot i-arrow-right-after">War &amp; Law - View all</a> <div class=" nav-split"> <ul> <li><a class="nav-link-sub" href="https://www.icrc.org/en/war-and-law/conduct-hostilities">Conduct of hostilities</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/war-and-law/contemporary-challenges-for-ihl">Contemporary challenges for IHL</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/war-and-law/ihl-domestic-law">Domestic law and IHL</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/war-and-law/emblem">Emblem</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/war-and-law/international-criminal-jurisdiction">International criminal jurisdiction</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/war-and-law/international-review-red-cross">International Review of the Red Cross</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/war-and-law/law-and-policy">Law and policy platform</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/war-and-law/ihl-other-legal-regmies">Other legal regimes</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/war-and-law/protected-persons">Protected persons</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/war-and-law/strengthening-ihl">Strengthening international humanitarian law</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/war-and-law/treaties-customary-law">Treaties and customary law</a></li> <li><a class="nav-link-sub" href="https://www.icrc.org/en/war-and-law/weapons">Weapons</a></li> </ul> </div> </div> </div> <div class="nav-resource nav-link-main-container pull-right"> <a href="https://www.icrc.org/en/resource-centre" class="nav-link-main nav-link-resource">Resource Centre</a> </div> </div> </div> </div> </nav>';
        //if(_lessThanIE8()) {
            header = '<div class="icrc-w4-wrap">' + header.replace(/<header\s+class="/, '<div class="icrc-header ').replace(/<\/header>/, '</div>') + nav.replace(/<nav\s+class="/, '<div class="icrc-nav ').replace(/<\/nav>/, '</div>') + '</div>';
        //}
        var headerEl = getElement(header); // considering the use of getElements()
        var headerTogglesElts = headerEl.getElementsByClassName('js_toggle');
        for(var i=0; i < headerTogglesElts.length; i++) _postElts.toggles.push(headerTogglesElts[i]);
        var headerSelectElts = headerEl.getElementsByTagName('select');
        for(var i=0; i < headerSelectElts.length; i++) _postElts.select.push(headerSelectElts[i]);
        
        // ---------------------------
        // Languages
        // ---------------------------
        
        var langCls = "list-languages";
        var langComboCls = "styled-language-select";
        var langEl = headerEl.getElementsByClassName(langCls)[0];
        var langLinks = langEl.getElementsByTagName('a');
        var langComboEl = headerEl.getElementsByClassName(langComboCls)[0];
        var langComboOptions = langComboEl.getElementsByTagName('option');
        
        // ---------------------------
        // Donations Languages
        // ---------------------------
        try {
            var isDonationRe = /^\/([a-z]{3})\/donations\/?.*/
            var isDonationReResult = isDonationRe.exec(window.location.pathname);
            if(isDonationReResult !== null) {
                // HELP: nothing to do now with this but hook it though
                var donationsLang = isDonationReResult[1];
                var lastLangComboOptions = langComboOptions[langComboOptions.length - 1];
                var lastLangComboOptionsParent = lastLangComboOptions.parentNode;
                var donationsAdditionalLang = [
                    {
                        id: 'deu',
                        label: 'Deutsch',
                        url: '/deu/donations'
                    }/*,
                    {
                        id: 'ita',
                        label: 'Italiano',
                        url: '/ita/donations'
                    }*/
                ]
                
                for(var i=0; i < donationsAdditionalLang.length; i++) {
                    var donationsAdditionalLangItem = donationsAdditionalLang[i];
                    var donationsNewLang = document.createElement('option');
                    donationsNewLang.setAttribute('value', donationsAdditionalLangItem.url);
                    donationsNewLang.innerHTML = donationsAdditionalLangItem.label;
                    lastLangComboOptionsParent.insertBefore(donationsNewLang, lastLangComboOptions);
                }
                // console.log(lastLangComboOptions);
            }
        }
        catch(e) {
            console.log(e);
            _log("An error occurs in the donations languages");
        }
        
        // Notes custom fixes
        var notesSite = notesData.sites[options.notes];
        if(!!notesSite) {
            // ---------------------------
            // Notes Languages
            // ---------------------------
            try {
                langComboEl.parentNode.parentNode.removeChild(langComboEl.parentNode);
                
                var toRemove = [];
                
                for(var i=0; i < langLinks.length; i++) {
                    var link = langLinks[i];
                    
                    var path = link.getAttribute('href');
                    path = path.replace(/https?:\/\/[^\/]+\//, '/');
                    var langPath = notesSite.langPaths[path];
                    if(!!langPath) {
                        link.setAttribute('href', langPath);
                    }
                    else {
                        toRemove.push({
                            child: link.parentNode,
                            parent: link.parentNode.parentNode
                        });
                    }
                }
                
                for(var i=0; i < toRemove.length; i++) {
                    toRemove[i].parent.removeChild(toRemove[i].child);
                }
            }
            catch(e) {
                _log("An error occurs in the notes languages transformation");
            }
            
            // ---------------------------
            // Notes Search
            // ---------------------------
            
            try {
                var searchForms = headerEl.getElementsByTagName('form');
                for(var j=0; j < searchForms.length; j++) {
                    var searchForm = searchForms[j];
                    if(searchForm.className === notesData.searchFormCls) {
                        var searchFormInputs = searchForm.getElementsByTagName('input');
                        
                        for(var i=0; i < searchFormInputs.length; i++) {
                            var searchInput = searchFormInputs[i];
                            if(searchInput.getAttribute('name') == notesData.searchInputName) {
                                searchForm.setAttribute('action', notesSite.searchUrl);
                                searchForm.setAttribute('method', 'GET');
                                searchInput.setAttribute('name', 'key');
                                searchInput.setAttribute('value', _getQueryParameter('key', ''));
                                var fieldToSortHidden = document.createElement('input');
                                fieldToSortHidden.setAttribute('type', 'hidden');
                                fieldToSortHidden.setAttribute('name', 'fieldToSort');
                                fieldToSortHidden.setAttribute('value', 'TRINOT');
                                searchForm.appendChild(fieldToSortHidden);
                                
                                break;
                            }
                        }
                        
                        break;
                    }
                }
            }
            catch(e) {
                _log("An error occurs in the notes search transformation");
            }
            
            // ---------------------------
            // Notes Slogan
            // ---------------------------
            
            try {
                var headerTitleEl = headerEl.getElementsByClassName('slogan')[0];
                headerTitleEl.innerHTML = notesSite.headerTitle;
            }
            catch(e) {
                _log("An error occurs in the notes slogan transformation");
            }
        }
        
        /*
        var navEl = getElement(nav); // considering the use of getElements();
        var navTogglesElts = navEl.getElementsByClassName('js_toggle');
        for(var i=0; i < navTogglesElts.length; i++) _postElts.toggles.push(navTogglesElts[i]);
        var navSelectElts = navEl.getElementsByTagName('select');
        for(var i=0; i < navSelectElts.length; i++) _postElts.select.push(navSelectElts[i]);
        */
        var headerPlaceholder = document.getElementById('headerplaceholder');
        if(!headerPlaceholder) headerPlaceholder = document.getElementById('header');
        if(!!headerPlaceholder) {
            var parent = headerPlaceholder.parentNode;
            
            // var fragment = document.createDocumentFragment();
            // fragment.appendChild(headerEl);
            // parent.replaceChild(fragment.cloneNode(true), headerPlaceholder);
            
            // parent.replaceChild(headerEl, headerPlaceholder);
            headerPlaceholder.appendChild(headerEl);
            
            //parent.insertBefore(navEl, headerEl.nextSibling);
        }
        else {
            //body.insertBefore(navEl, body.firstChild);
            body.insertBefore(headerEl, body.firstChild);
        }
    }
    
    function renderFooter() {
        var footer = '<footer class="clearfix"><div class="social-icons clearfix col-lg-7 col-lg-push-2 font-xs-12 font-md-16 font-lg-20"> <a class="social-icon img-circle i-twitter" href="http://www.icrcproject.org/twitter-dashboard/" target="_blank"><span class="sr-only">Twitter</span></a> <a class="social-icon img-circle i-facebook" href="http://www.facebook.com/icrc" target="_blank"><span class="sr-only">Facebook</span></a> <a class="social-icon img-circle i-googleplus" href="https://plus.google.com/+ICRC" target="_blank"><span class="sr-only">Google +</span></a> <a class="social-icon img-circle i-youtube" href="http://www.youtube.com/icrcfilms" target="_blank"><span class="sr-only">YouTube</span></a> <a class="social-icon img-circle i-flickr" href="http://www.flickr.com/icrc" target="_blank"><span class="sr-only">Flickr</span></a> <a class="social-icon img-circle i-rss" href="https://www.icrc.org/en/rss/general" target="_blank"><span class="sr-only">RSS</span></a> </div> <nav class="footer-nav container font-xs-12 font-sm-14 clear"><div class="list-unstyled col-xs-landscape-6 col-sm-3"> <h2 class="block__title block-title">Sections</h2> <ul class="menu"> <li class="menu__item is-leaf first leaf"><a href="/en/who-we-are" title="" class="menu__link">Who we are</a></li> <li class="menu__item is-leaf leaf"><a href="/en/what-we-do" title="" class="menu__link">What we do</a></li> <li class="menu__item is-leaf leaf"><a href="/en/where-we-work" title="" class="menu__link">Where we work</a></li> <li class="menu__item is-leaf last leaf"><a href="/en/war-and-law" title="" class="menu__link">War &amp; law</a></li> </ul> </div> <div class="list-unstyled col-xs-landscape-6 col-sm-3"> <h2 class="block__title block-title">Quick links</h2> <ul class="menu"> <li class="menu__item is-leaf first leaf"><a href="/en" title="" class="menu__link">Home</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/en/whats-new" title="" class="menu__link">What\'s new</a></li> <li class="menu__item is-leaf leaf"><a href="https://www.icrc.org/eng/who-we-are/contacts/" title="" class="menu__link">Contact</a></li> <li class="menu__item is-leaf last leaf"><a href="https://www.icrc.org/eng/who-we-are/jobs/" title="" class="menu__link">Working for the ICRC</a></li> </ul> </div> <div class="clearfix visible-xs-landscape"></div> <div class="list-unstyled col-xs-landscape-6 col-sm-3"> <h2 class="block__title block-title">ICRC Blogs</h2> <ul class="menu"> <li class="menu__item is-leaf first leaf"><a href="http://www.icrc.or.th/" title="" class="menu__link">Bangkok (Thai)</a></li> <li class="menu__item is-leaf leaf"><a href="http://icrcjakarta.info/" title="" class="menu__link">Jakarta (Bahasa)</a></li> <li class="menu__item is-leaf last leaf"><a href="http://cicr.blog.lemonde.fr/" title="" class="menu__link">L\'humanitaire dans tous ses états (French)</a></li> </ul> </div> <div class="list-unstyled col-xs-landscape-6 col-sm-3"> <h2 class="block__title block-title">ICRC Blogs (CONT\'D)</h2> <ul class="menu"> <li class="menu__item is-leaf first leaf"><a href="http://intercrossblog.icrc.org/" title="" class="menu__link">Intercross - ICRC delegation Washington</a></li> <li class="menu__item is-leaf leaf"><a href="http://blogs.icrc.org/ilot/" title="" class="menu__link">Israel, Golan, West Bank, Gaza</a></li> <li class="menu__item is-leaf leaf"><a href="http://jp.icrc.org/" title="" class="menu__link">Japan (Japanese)</a></li> <li class="menu__item is-leaf last leaf"><a href="http://blogs.icrc.org/new-delhi/" title="" class="menu__link">New Delhi</a></li> </ul> </div> </nav><div class="meta-footer font-xs-10 font-sm-12 clear"> <div class="container"> <div class="region region-footer-bottom"> <div id="block-menu-menu-footer-bottom" class="block block-menu first last odd" role="navigation"> <ul class="menu"> <li class="menu__item is-leaf first leaf"><span title="" class="menu__link nolink">© International Committee of the Red Cross</span></li> <li class="menu__item is-leaf leaf"><a href="/en/accessibility" title="" class="menu__link">Accessibility</a></li> <li class="menu__item is-leaf leaf"><a href="/en/copyright-and-terms-use" title="" class="menu__link">Copyright</a></li> <li class="menu__item is-leaf last leaf"><a href="/en/privacy-policy" title="" class="menu__link">Privacy policy</a></li> </ul> </div> </div> </div> </div> </footer>';
        //if(_lessThanIE8()) {
            footer = footer.replace(/<footer\s+class="/, '<div class="icrc-w4-wrap"><div class="icrc-footer ').replace(/<\/footer>/, '</div>').replace(/<nav/, '<div').replace(/<\/nav>/, '</div>');
        //}
        // _log(_lessThanIE8());
        var footerEl = getElement(footer); // considering the use of getElements()
        var oldFooterEl = document.getElementById('footerplaceholder');
        if(!oldFooterEl) oldFooterEl = document.getElementById('footer');
        if(!!oldFooterEl) {
            var parent = oldFooterEl.parentNode;
            parent.replaceChild(footerEl, oldFooterEl);
        }
        else {
            body.appendChild(footerEl);
        }
    }
    
    function renderJSFooter() {
        var jsFooter = '';
        var scripts = getElements(jsFooter);
        for(var i=0, l=scripts.length; i < l; i++) {
            var script = document.createElement("script");
            script.setAttribute('type', 'text/javascript');
            script.setAttribute('src', scripts[i].src);
            body.appendChild(script);
        }
    }
    
    function _toggleElement(el) {
        var parts = el.className.split(/\s/);
        var resParts = [];
        var active = false;
        var activeClass = 'active';
        
        for(var i=0, l=parts.length; i < l; i++) {
            if(parts[i] === activeClass) {
                active = true;
            }
            else {
                resParts.push(parts[i]);
            }
        }
        
        if(!active) {
            resParts.push(' ' + activeClass);
        }
        
        el.className = resParts.join(' ');
    }
    
    function _toggleElementClickHandler(evt) {
        if(!!evt.preventDefault)
            evt.preventDefault();
        else
            evt.returnValue = false;
        var target = !!evt.target ? evt.target : evt.srcElement;
        var dataTarget = target.getAttribute('data-target');
        var dataTargets = dataTarget.split(/,\s*/);
        
        if(!document.getElementsByClassName) {
            document.getElementsByClassName = _getElementsByClassName;
        }
        
        var elts = [];
        
        for(var i=0, l=dataTargets.length; i < l; i++) {
            var d = dataTargets[i];
            var f = d.substr(0, 1);
            var g = d.substring(1);
            var el = null;
            
            switch(f) {
                case '.':    // this is a class selector
                    var sElts = document.getElementsByClassName(g);
                    for(var j=0, m=sElts.length; j < m; j++) {
                        elts.push(sElts[j]);
                    }
                    break;
                
                case '#':    // this is an ID selector
                    elts.push(document.getElementById(g));
                    break;
                
                default:
                    break;
            }
        }
        
        for(var i=0, l=elts.length; i < l; i++) {
            _toggleElement(elts[i]);
        }
    }
    
    function _selectChangeHandler(evt) {
        evt.preventDefault();
        var target = evt.target;
        
        // target.nextSibling.innerHTML = target.options[target.selectedIndex].innerHTML;
        location.href = target.options[target.selectedIndex].getAttribute('value');
    }
    
    function post() {
        
        // Toggle elements
        for(var i=0, l=_postElts.toggles.length; i < l; i++) {
            var el = _postElts.toggles[i];
            
            if(el.attachEvent) {
                el.attachEvent('onclick', _toggleElementClickHandler);
            }
            else if (el.addEventListener){
                el.addEventListener('click', _toggleElementClickHandler, false);
            }
        }
        
        // Select elements
        for(var i=0, l=_postElts.select.length; i < l; i++) {
            var el = _postElts.select[i];
            var selectContainer = document.createElement('div');
            var selectText = document.createElement('div');
            
            // Replacing the select element by its wrapper
            el.parentNode.replaceChild(selectContainer, el);
            selectContainer.className = 'selectcontainer ' + el.className;
            
            // Insert the select element into its wrapper
            selectContainer.appendChild(el);
            
            // Append the text
            selectText.className = 'selecttext';
            selectText.innerHTML = el.firstChild.innerHTML;
            selectContainer.appendChild(selectText);
            
            if(el.attachEvent) {
                el.attachEvent('onchange', _selectChangeHandler);
            }
            else if (el.addEventListener){
                el.addEventListener('change', _selectChangeHandler, false);
            }
        }
        
        // LANGUAGE LIST
        
        // -----------------------------------------------------------------------------------------------------
        // 1DI: j'ai commenté le code ci-dessous car la boucle ci-dessus faisait déjà le taff.
        // Il y avait un TODO dans la méthode _selectChangeHandler( concernant ce sujet).
        // -----------------------------------------------------------------------------------------------------
        
        // var languageListElementList;
        
        // if (document.getElementsByClassName === undefined) {
            // languageListElementList = document.querySelectorAll('.list-languages');
        // } else {
            // languageListElementList = document.getElementsByClassName('list-languages');
        // }

        // var languageListElementListLength = languageListElementList.length;
        
        // for (var i = 0; i < languageListElementListLength; i++) {
            // var languageListSelectElementList = languageListElementList[i].getElementsByTagName('select');
            
            // if (document.addEventListener === undefined) {
                // languageListSelectElementList[0].attachEvent('onchange', _onLanguageListSelectElementChange);
            // } else {
                // languageListSelectElementList[0].addEventListener('change', _onLanguageListSelectElementChange);
            // }
        // }
    }
    
    // function _onLanguageListSelectElementChange(event)
    // {
        // event = event || window.event;
        // var target = event.target || event.srcElement;
        
        // location.href = target.options[target.selectedIndex].getAttribute('value');
    // }
    
    var singleton = {
        render: function(options) {
            options = options || {}; // set default
            init();
            renderHeader(options);
            renderFooter();
            renderJSFooter();
            post();
        }
    };
    return singleton;
}();


// TODO maybe the onload is already used for something else
var __old_onload__ = window.onload;
var __headerfooter_options__ = {
        dummy: null
};
window.onload = function(evt) {
    if(!!__old_onload__) {
        __old_onload__(evt);
    }
    icrc.HeaderFooter.render(__headerfooter_options__);
};

