/*----------------- 1. Global variables for IE mac detection -----------------------------*/

var agt = navigator.userAgent.toLowerCase();
var is_mac = (agt.indexOf("mac") !== -1);
var is_ie  = ((agt.indexOf("msie") !== -1) && (agt.indexOf("opera") === -1));


/*
----------------- 1. Global object containing commonoly used funcitons -----------------*/


var g = {
	
// Add Event Listeners
    getTarget: function (e) {
        var target = window.event ? window.event.srcElement : e ? e.target : null;
        if (!target) {
            return false; 
        }
        while (target.nodeType !== 1 && target.nodeName.toLowerCase() !== 'body') {
            target = target.parentNode;
        }
        return target;
    },
	
// Srop propagation and cancel bubble
    stopBubble: function (e) {
        if (window.event) {
            window.event.cancelBubble = true;
        } 
        if (e && e.stopPropagation) {
            e.stopPropagation();
        }
    },

// Prenvent default action
    stopDefault: function (e) {
        if (window.event) {
            window.event.returnValue = false;
        } 
        if (e && e.preventDefault) {
            e.preventDefault();
        }
    },

// Cancel click
    cancelClick: function (e) {
        if (window.event) {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        if (e && e.stopPropagation && e.preventDefault) {
            e.stopPropagation();
            e.preventDefault();
        }
    },

// Cross browser add event
    addEvent: function (elm, evType, fn, useCapture) {
        if (elm.addEventListener) {
            elm.addEventListener(evType, fn, useCapture);
            return true;
        } else if (elm.attachEvent) {
            var r = elm.attachEvent('on' + evType, fn);
            return r;
        } else {
            elm['on' + evType] = fn;
        }
    },

// Cancel safari click
    safariClickFix: function () {
        return false;
    },

// Add class
    addClass: function (target, classValue) {
        var pattern = new RegExp("(^| )" + classValue + "( |$)");
        if (!pattern.test(target.className)) {
            if (target.className === "") {
                target.className = classValue;
            } else {
                target.className += " " + classValue;
            }
        }
        return true;
    },

// Remove class
    removeClass: function (target, classValue) {
        var removedClass = target.className;
        var pattern = new RegExp("(^| )" + classValue + "( |$)");
        removedClass = removedClass.replace(pattern, "$1");
        removedClass = removedClass.replace(/ $/, "");
        target.className = removedClass;
        return true;
    },

// Add Load 
    addLoadEvent: function (func) {
        var oldonload = window.onload;				
        if (typeof window.onload !== 'function') {	
            window.onload = func;
        } else {
            window.onload = function () {
                oldonload();
                func();
            };
        }
    },

// Insert After
    insertAfter: function (newElement, targetElement) {
        var parent = targetElement.parentNode;
        if (parent.lastChild === targetElement) {
            parent.appendChild(newElement);
        } else {
            parent.insertBefore(newElement, targetElement.nextSibling);
        }
    },

// Get Parent until UL
    getParentUL: function (node) {
        if (node.nodeName === "UL") {
            return node;
        }
        if (node.nodeName !== "UL") { 
            return g.getParentUL(node.parentNode);
        }
        return null;
    },
	
    getParentWithIdAttribute: function (node) {
    // If node is not an element node return the nodes parent - RETEST FOR PARENT
        if (node.parentNode.nodeType !== 1) { 
            return g.getParentWithIdAttribute(node.parentNode);
        // else if its an element node but has no id attribute  - RETEST FOR PARENT
        } else if (!node.parentNode.getAttribute("id")) { 
            return g.getParentWithIdAttribute(node.parentNode);	
        } else {
        // else if its and element node with an attribute and has an id of inner or container - RETEST FOR PARENT
            if (node.parentNode.id.indexOf("inner") !== -1 || node.parentNode.id.indexOf("container") !== -1)  {
                return g.getParentWithIdAttribute(node.parentNode);
            } else {
            // The node has an id that is sutiable for passing and indicates the links positin within the site.
                return node.parentNode;
            }
        }	
    },	

    closestSibling: function (node, direction) {
        var tempObj;
        if (direction === -1 && node.previousSibling !== null) {
            tempObj = node.previousSibling;
            while (tempObj.nodeType !== 1 && tempObj.previousSibling !== null) {
                tempObj = tempObj.previousSibling;
            }
        } else if (direction === 1 && node.nextSibling !== null) {
            tempObj = node.nextSibling;
            while (tempObj.nodeType !== 1 && tempObj.nextSibling !== null) {
                tempObj = tempObj.nextSibling;
            }
        }
        return tempObj.nodeType === 1 ?tempObj:false;
    },

// Get elements by their Id
    id: function (strId) {
        return document.getElementById(strId);
    },	

// Get elements by their tag name
    tn: function (strId) {
        return document.getElementsByTagName(strId);
    },

// Get tags within a certain element
    idTn: function (strId, strTn) {
        return document.getElementById(strId).getElementsByTagName(strTn);
    },

// Create and element
    ce: function (strId) {
        return document.createElement(strId);
    },

// Create an element with an attribute
    ceA: function (strId, ele, eleName) {
        var newEle = document.createElement(strId);
        newEle.setAttribute(ele, eleName);
        return newEle;
    },

// Create an element with a className
    ceCn: function (strId, cName) {
        var newEle = document.createElement(strId);
        newEle.className = cName;
        return newEle;
    },

/* Wrap all children in a surrounding wrapper */
    elementWrap: function (container) {
        var content = container.childNodes;
        var contentArray = [];
        for (var i = 0; i < content.length; i ++) {
            if (content[i].nodeType === 1) {
                contentArray.push(content[i]);
            }
        }
        return contentArray;
    }

};	



	
/********* Get elements by class name Jonathan Snook, http://www.snook.ca/jonathan & Robert Nyman, http://www.robertnyman.com *******/
		
function getElementsByClassName(oElm, strTagName, strClassName) {
    var arrElements = (strTagName === "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = [];
    // The next line was changed from original suggestion due to multiple class issue (var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");)
    //strClassName = strClassName.replace(/-/g, "\-"); 
    strClassName = strClassName.replace(/-/g, "-"); 
    var oRegExp = new RegExp("(^| )" + strClassName + "( |$)");			  
    var oElement;
    for (var i = 0; i < arrElements.length; i++) {
        oElement = arrElements[i];
        if (oRegExp.test(oElement.className)) {
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements);
}	

/*
if (typeof Array.prototype.push !== "function") {
    var Array.prototype.push = ArrayPush;
    function ArrayPush(value) {
        this[this.length] = value;
    }
}*/
if (typeof Array.prototype.push !== "function") {
    Array.prototype.push = ArrayPush;
    function ArrayPush(value) {
        this[this.length] = value;
    }
}



/*
 * jQuery 1.2.3 - New Wave Javascript
 *
 * Copyright (c) 2008 John Resig (jquery.com)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * $Date: 2008-02-06 00:21:25 -0500 (Wed, 06 Feb 2008) $
 * $Rev: 4663 $
 */
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(J(){7(1e.3N)L w=1e.3N;L E=1e.3N=J(a,b){K 1B E.2l.4T(a,b)};7(1e.$)L D=1e.$;1e.$=E;L u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;L G=/^.[^:#\\[\\.]*$/;E.1n=E.2l={4T:J(d,b){d=d||T;7(d.15){6[0]=d;6.M=1;K 6}N 7(1o d=="25"){L c=u.2O(d);7(c&&(c[1]||!b)){7(c[1])d=E.4a([c[1]],b);N{L a=T.5J(c[3]);7(a)7(a.2w!=c[3])K E().2s(d);N{6[0]=a;6.M=1;K 6}N d=[]}}N K 1B E(b).2s(d)}N 7(E.1q(d))K 1B E(T)[E.1n.21?"21":"3U"](d);K 6.6E(d.1k==1M&&d||(d.5h||d.M&&d!=1e&&!d.15&&d[0]!=10&&d[0].15)&&E.2I(d)||[d])},5h:"1.2.3",87:J(){K 6.M},M:0,22:J(a){K a==10?E.2I(6):6[a]},2F:J(b){L a=E(b);a.54=6;K a},6E:J(a){6.M=0;1M.2l.1g.1i(6,a);K 6},R:J(a,b){K E.R(6,a,b)},4X:J(b){L a=-1;6.R(J(i){7(6==b)a=i});K a},1J:J(c,a,b){L d=c;7(c.1k==4e)7(a==10)K 6.M&&E[b||"1J"](6[0],c)||10;N{d={};d[c]=a}K 6.R(J(i){Q(c 1p d)E.1J(b?6.W:6,c,E.1l(6,d[c],b,i,c))})},1j:J(b,a){7((b==\'27\'||b==\'1R\')&&2M(a)<0)a=10;K 6.1J(b,a,"2o")},1u:J(b){7(1o b!="3V"&&b!=V)K 6.4x().3t((6[0]&&6[0].2i||T).5r(b));L a="";E.R(b||6,J(){E.R(6.3p,J(){7(6.15!=8)a+=6.15!=1?6.6K:E.1n.1u([6])})});K a},5m:J(b){7(6[0])E(b,6[0].2i).5k().3o(6[0]).2c(J(){L a=6;2b(a.1C)a=a.1C;K a}).3t(6);K 6},8w:J(a){K 6.R(J(){E(6).6z().5m(a)})},8p:J(a){K 6.R(J(){E(6).5m(a)})},3t:J(){K 6.3O(18,P,S,J(a){7(6.15==1)6.38(a)})},6q:J(){K 6.3O(18,P,P,J(a){7(6.15==1)6.3o(a,6.1C)})},6o:J(){K 6.3O(18,S,S,J(a){6.1a.3o(a,6)})},5a:J(){K 6.3O(18,S,P,J(a){6.1a.3o(a,6.2B)})},3h:J(){K 6.54||E([])},2s:J(b){L c=E.2c(6,J(a){K E.2s(b,a)});K 6.2F(/[^+>] [^+>]/.17(b)||b.1f("..")>-1?E.57(c):c)},5k:J(e){L f=6.2c(J(){7(E.14.1d&&!E.3E(6)){L a=6.69(P),4Y=T.3s("1x");4Y.38(a);K E.4a([4Y.3d])[0]}N K 6.69(P)});L d=f.2s("*").4R().R(J(){7(6[F]!=10)6[F]=V});7(e===P)6.2s("*").4R().R(J(i){7(6.15==3)K;L c=E.O(6,"2R");Q(L a 1p c)Q(L b 1p c[a])E.16.1b(d[i],a,c[a][b],c[a][b].O)});K f},1E:J(b){K 6.2F(E.1q(b)&&E.3y(6,J(a,i){K b.1P(a,i)})||E.3e(b,6))},56:J(b){7(b.1k==4e)7(G.17(b))K 6.2F(E.3e(b,6,P));N b=E.3e(b,6);L a=b.M&&b[b.M-1]!==10&&!b.15;K 6.1E(J(){K a?E.33(6,b)<0:6!=b})},1b:J(a){K!a?6:6.2F(E.37(6.22(),a.1k==4e?E(a).22():a.M!=10&&(!a.12||E.12(a,"3u"))?a:[a]))},3H:J(a){K a?E.3e(a,6).M>0:S},7j:J(a){K 6.3H("."+a)},5O:J(b){7(b==10){7(6.M){L c=6[0];7(E.12(c,"2k")){L e=c.3T,5I=[],11=c.11,2X=c.U=="2k-2X";7(e<0)K V;Q(L i=2X?e:0,2f=2X?e+1:11.M;i<2f;i++){L d=11[i];7(d.2p){b=E.14.1d&&!d.9J.1A.9y?d.1u:d.1A;7(2X)K b;5I.1g(b)}}K 5I}N K(6[0].1A||"").1r(/\\r/g,"")}K 10}K 6.R(J(){7(6.15!=1)K;7(b.1k==1M&&/5u|5t/.17(6.U))6.3k=(E.33(6.1A,b)>=0||E.33(6.31,b)>=0);N 7(E.12(6,"2k")){L a=b.1k==1M?b:[b];E("98",6).R(J(){6.2p=(E.33(6.1A,a)>=0||E.33(6.1u,a)>=0)});7(!a.M)6.3T=-1}N 6.1A=b})},3q:J(a){K a==10?(6.M?6[0].3d:V):6.4x().3t(a)},6S:J(a){K 6.5a(a).1V()},6Z:J(i){K 6.2K(i,i+1)},2K:J(){K 6.2F(1M.2l.2K.1i(6,18))},2c:J(b){K 6.2F(E.2c(6,J(a,i){K b.1P(a,i,a)}))},4R:J(){K 6.1b(6.54)},O:J(d,b){L a=d.23(".");a[1]=a[1]?"."+a[1]:"";7(b==V){L c=6.5n("8P"+a[1]+"!",[a[0]]);7(c==10&&6.M)c=E.O(6[0],d);K c==V&&a[1]?6.O(a[0]):c}N K 6.1N("8K"+a[1]+"!",[a[0],b]).R(J(){E.O(6,d,b)})},35:J(a){K 6.R(J(){E.35(6,a)})},3O:J(g,f,h,d){L e=6.M>1,3n;K 6.R(J(){7(!3n){3n=E.4a(g,6.2i);7(h)3n.8D()}L b=6;7(f&&E.12(6,"1O")&&E.12(3n[0],"4v"))b=6.3S("1U")[0]||6.38(6.2i.3s("1U"));L c=E([]);E.R(3n,J(){L a=e?E(6).5k(P)[0]:6;7(E.12(a,"1m")){c=c.1b(a)}N{7(a.15==1)c=c.1b(E("1m",a).1V());d.1P(b,a)}});c.R(6A)})}};E.2l.4T.2l=E.2l;J 6A(i,a){7(a.3Q)E.3P({1c:a.3Q,3l:S,1H:"1m"});N E.5g(a.1u||a.6x||a.3d||"");7(a.1a)a.1a.34(a)}E.1s=E.1n.1s=J(){L b=18[0]||{},i=1,M=18.M,5c=S,11;7(b.1k==8d){5c=b;b=18[1]||{};i=2}7(1o b!="3V"&&1o b!="J")b={};7(M==1){b=6;i=0}Q(;i<M;i++)7((11=18[i])!=V)Q(L a 1p 11){7(b===11[a])6w;7(5c&&11[a]&&1o 11[a]=="3V"&&b[a]&&!11[a].15)b[a]=E.1s(b[a],11[a]);N 7(11[a]!=10)b[a]=11[a]}K b};L F="3N"+(1B 3v()).3L(),6t=0,5b={};L H=/z-?4X|86-?84|1w|6k|7Z-?1R/i;E.1s({7Y:J(a){1e.$=D;7(a)1e.3N=w;K E},1q:J(a){K!!a&&1o a!="25"&&!a.12&&a.1k!=1M&&/J/i.17(a+"")},3E:J(a){K a.1F&&!a.1h||a.28&&a.2i&&!a.2i.1h},5g:J(a){a=E.3g(a);7(a){L b=T.3S("6f")[0]||T.1F,1m=T.3s("1m");1m.U="1u/4m";7(E.14.1d)1m.1u=a;N 1m.38(T.5r(a));b.38(1m);b.34(1m)}},12:J(b,a){K b.12&&b.12.2E()==a.2E()},1T:{},O:J(c,d,b){c=c==1e?5b:c;L a=c[F];7(!a)a=c[F]=++6t;7(d&&!E.1T[a])E.1T[a]={};7(b!=10)E.1T[a][d]=b;K d?E.1T[a][d]:a},35:J(c,b){c=c==1e?5b:c;L a=c[F];7(b){7(E.1T[a]){2V E.1T[a][b];b="";Q(b 1p E.1T[a])1Q;7(!b)E.35(c)}}N{1S{2V c[F]}1X(e){7(c.52)c.52(F)}2V E.1T[a]}},R:J(c,a,b){7(b){7(c.M==10){Q(L d 1p c)7(a.1i(c[d],b)===S)1Q}N Q(L i=0,M=c.M;i<M;i++)7(a.1i(c[i],b)===S)1Q}N{7(c.M==10){Q(L d 1p c)7(a.1P(c[d],d,c[d])===S)1Q}N Q(L i=0,M=c.M,1A=c[0];i<M&&a.1P(1A,i,1A)!==S;1A=c[++i]){}}K c},1l:J(b,a,c,i,d){7(E.1q(a))a=a.1P(b,i);K a&&a.1k==51&&c=="2o"&&!H.17(d)?a+"2S":a},1t:{1b:J(c,b){E.R((b||"").23(/\\s+/),J(i,a){7(c.15==1&&!E.1t.3Y(c.1t,a))c.1t+=(c.1t?" ":"")+a})},1V:J(c,b){7(c.15==1)c.1t=b!=10?E.3y(c.1t.23(/\\s+/),J(a){K!E.1t.3Y(b,a)}).6a(" "):""},3Y:J(b,a){K E.33(a,(b.1t||b).3X().23(/\\s+/))>-1}},68:J(b,c,a){L e={};Q(L d 1p c){e[d]=b.W[d];b.W[d]=c[d]}a.1P(b);Q(L d 1p c)b.W[d]=e[d]},1j:J(d,e,c){7(e=="27"||e=="1R"){L b,46={43:"4W",4U:"1Z",19:"3D"},3c=e=="27"?["7O","7M"]:["7J","7I"];J 5E(){b=e=="27"?d.7H:d.7F;L a=0,2N=0;E.R(3c,J(){a+=2M(E.2o(d,"7E"+6,P))||0;2N+=2M(E.2o(d,"2N"+6+"5X",P))||0});b-=24.7C(a+2N)}7(E(d).3H(":4d"))5E();N E.68(d,46,5E);K 24.2f(0,b)}K E.2o(d,e,c)},2o:J(e,k,j){L d;J 3x(b){7(!E.14.2d)K S;L a=T.4c.4K(b,V);K!a||a.4M("3x")==""}7(k=="1w"&&E.14.1d){d=E.1J(e.W,"1w");K d==""?"1":d}7(E.14.2z&&k=="19"){L c=e.W.50;e.W.50="0 7r 7o";e.W.50=c}7(k.1D(/4g/i))k=y;7(!j&&e.W&&e.W[k])d=e.W[k];N 7(T.4c&&T.4c.4K){7(k.1D(/4g/i))k="4g";k=k.1r(/([A-Z])/g,"-$1").2h();L h=T.4c.4K(e,V);7(h&&!3x(e))d=h.4M(k);N{L f=[],2C=[];Q(L a=e;a&&3x(a);a=a.1a)2C.4J(a);Q(L i=0;i<2C.M;i++)7(3x(2C[i])){f[i]=2C[i].W.19;2C[i].W.19="3D"}d=k=="19"&&f[2C.M-1]!=V?"2H":(h&&h.4M(k))||"";Q(L i=0;i<f.M;i++)7(f[i]!=V)2C[i].W.19=f[i]}7(k=="1w"&&d=="")d="1"}N 7(e.4n){L g=k.1r(/\\-(\\w)/g,J(a,b){K b.2E()});d=e.4n[k]||e.4n[g];7(!/^\\d+(2S)?$/i.17(d)&&/^\\d/.17(d)){L l=e.W.26,3K=e.3K.26;e.3K.26=e.4n.26;e.W.26=d||0;d=e.W.7f+"2S";e.W.26=l;e.3K.26=3K}}K d},4a:J(l,h){L k=[];h=h||T;7(1o h.3s==\'10\')h=h.2i||h[0]&&h[0].2i||T;E.R(l,J(i,d){7(!d)K;7(d.1k==51)d=d.3X();7(1o d=="25"){d=d.1r(/(<(\\w+)[^>]*?)\\/>/g,J(b,a,c){K c.1D(/^(aa|a6|7e|a5|4D|7a|a0|3m|9W|9U|9S)$/i)?b:a+"></"+c+">"});L f=E.3g(d).2h(),1x=h.3s("1x");L e=!f.1f("<9P")&&[1,"<2k 74=\'74\'>","</2k>"]||!f.1f("<9M")&&[1,"<73>","</73>"]||f.1D(/^<(9G|1U|9E|9B|9x)/)&&[1,"<1O>","</1O>"]||!f.1f("<4v")&&[2,"<1O><1U>","</1U></1O>"]||(!f.1f("<9w")||!f.1f("<9v"))&&[3,"<1O><1U><4v>","</4v></1U></1O>"]||!f.1f("<7e")&&[2,"<1O><1U></1U><6V>","</6V></1O>"]||E.14.1d&&[1,"1x<1x>","</1x>"]||[0,"",""];1x.3d=e[1]+d+e[2];2b(e[0]--)1x=1x.5o;7(E.14.1d){L g=!f.1f("<1O")&&f.1f("<1U")<0?1x.1C&&1x.1C.3p:e[1]=="<1O>"&&f.1f("<1U")<0?1x.3p:[];Q(L j=g.M-1;j>=0;--j)7(E.12(g[j],"1U")&&!g[j].3p.M)g[j].1a.34(g[j]);7(/^\\s/.17(d))1x.3o(h.5r(d.1D(/^\\s*/)[0]),1x.1C)}d=E.2I(1x.3p)}7(d.M===0&&(!E.12(d,"3u")&&!E.12(d,"2k")))K;7(d[0]==10||E.12(d,"3u")||d.11)k.1g(d);N k=E.37(k,d)});K k},1J:J(d,e,c){7(!d||d.15==3||d.15==8)K 10;L f=E.3E(d)?{}:E.46;7(e=="2p"&&E.14.2d)d.1a.3T;7(f[e]){7(c!=10)d[f[e]]=c;K d[f[e]]}N 7(E.14.1d&&e=="W")K E.1J(d.W,"9u",c);N 7(c==10&&E.14.1d&&E.12(d,"3u")&&(e=="9r"||e=="9o"))K d.9m(e).6K;N 7(d.28){7(c!=10){7(e=="U"&&E.12(d,"4D")&&d.1a)6Q"U 9i 9h\'t 9g 9e";d.9b(e,""+c)}7(E.14.1d&&/6O|3Q/.17(e)&&!E.3E(d))K d.4z(e,2);K d.4z(e)}N{7(e=="1w"&&E.14.1d){7(c!=10){d.6k=1;d.1E=(d.1E||"").1r(/6M\\([^)]*\\)/,"")+(2M(c).3X()=="96"?"":"6M(1w="+c*6L+")")}K d.1E&&d.1E.1f("1w=")>=0?(2M(d.1E.1D(/1w=([^)]*)/)[1])/6L).3X():""}e=e.1r(/-([a-z])/95,J(a,b){K b.2E()});7(c!=10)d[e]=c;K d[e]}},3g:J(a){K(a||"").1r(/^\\s+|\\s+$/g,"")},2I:J(b){L a=[];7(1o b!="93")Q(L i=0,M=b.M;i<M;i++)a.1g(b[i]);N a=b.2K(0);K a},33:J(b,a){Q(L i=0,M=a.M;i<M;i++)7(a[i]==b)K i;K-1},37:J(a,b){7(E.14.1d){Q(L i=0;b[i];i++)7(b[i].15!=8)a.1g(b[i])}N Q(L i=0;b[i];i++)a.1g(b[i]);K a},57:J(a){L c=[],2r={};1S{Q(L i=0,M=a.M;i<M;i++){L b=E.O(a[i]);7(!2r[b]){2r[b]=P;c.1g(a[i])}}}1X(e){c=a}K c},3y:J(c,a,d){L b=[];Q(L i=0,M=c.M;i<M;i++)7(!d&&a(c[i],i)||d&&!a(c[i],i))b.1g(c[i]);K b},2c:J(d,a){L c=[];Q(L i=0,M=d.M;i<M;i++){L b=a(d[i],i);7(b!==V&&b!=10){7(b.1k!=1M)b=[b];c=c.71(b)}}K c}});L v=8Y.8W.2h();E.14={5K:(v.1D(/.+(?:8T|8S|8R|8O)[\\/: ]([\\d.]+)/)||[])[1],2d:/77/.17(v),2z:/2z/.17(v),1d:/1d/.17(v)&&!/2z/.17(v),48:/48/.17(v)&&!/(8L|77)/.17(v)};L y=E.14.1d?"6H":"75";E.1s({8I:!E.14.1d||T.6F=="79",46:{"Q":"8F","8E":"1t","4g":y,75:y,6H:y,3d:"3d",1t:"1t",1A:"1A",2Y:"2Y",3k:"3k",8C:"8B",2p:"2p",8A:"8z",3T:"3T",6C:"6C",28:"28",12:"12"}});E.R({6B:J(a){K a.1a},8y:J(a){K E.4u(a,"1a")},8x:J(a){K E.2Z(a,2,"2B")},8v:J(a){K E.2Z(a,2,"4t")},8u:J(a){K E.4u(a,"2B")},8t:J(a){K E.4u(a,"4t")},8s:J(a){K E.5i(a.1a.1C,a)},8r:J(a){K E.5i(a.1C)},6z:J(a){K E.12(a,"8q")?a.8o||a.8n.T:E.2I(a.3p)}},J(c,d){E.1n[c]=J(b){L a=E.2c(6,d);7(b&&1o b=="25")a=E.3e(b,a);K 6.2F(E.57(a))}});E.R({6y:"3t",8m:"6q",3o:"6o",8l:"5a",8k:"6S"},J(c,b){E.1n[c]=J(){L a=18;K 6.R(J(){Q(L i=0,M=a.M;i<M;i++)E(a[i])[b](6)})}});E.R({8j:J(a){E.1J(6,a,"");7(6.15==1)6.52(a)},8i:J(a){E.1t.1b(6,a)},8h:J(a){E.1t.1V(6,a)},8g:J(a){E.1t[E.1t.3Y(6,a)?"1V":"1b"](6,a)},1V:J(a){7(!a||E.1E(a,[6]).r.M){E("*",6).1b(6).R(J(){E.16.1V(6);E.35(6)});7(6.1a)6.1a.34(6)}},4x:J(){E(">*",6).1V();2b(6.1C)6.34(6.1C)}},J(a,b){E.1n[a]=J(){K 6.R(b,18)}});E.R(["8f","5X"],J(i,c){L b=c.2h();E.1n[b]=J(a){K 6[0]==1e?E.14.2z&&T.1h["5e"+c]||E.14.2d&&1e["8e"+c]||T.6F=="79"&&T.1F["5e"+c]||T.1h["5e"+c]:6[0]==T?24.2f(24.2f(T.1h["5d"+c],T.1F["5d"+c]),24.2f(T.1h["5L"+c],T.1F["5L"+c])):a==10?(6.M?E.1j(6[0],b):V):6.1j(b,a.1k==4e?a:a+"2S")}});L C=E.14.2d&&4s(E.14.5K)<8c?"(?:[\\\\w*4r-]|\\\\\\\\.)":"(?:[\\\\w\\8b-\\8a*4r-]|\\\\\\\\.)",6v=1B 4q("^>\\\\s*("+C+"+)"),6u=1B 4q("^("+C+"+)(#)("+C+"+)"),6s=1B 4q("^([#.]?)("+C+"*)");E.1s({6r:{"":J(a,i,m){K m[2]=="*"||E.12(a,m[2])},"#":J(a,i,m){K a.4z("2w")==m[2]},":":{89:J(a,i,m){K i<m[3]-0},88:J(a,i,m){K i>m[3]-0},2Z:J(a,i,m){K m[3]-0==i},6Z:J(a,i,m){K m[3]-0==i},3j:J(a,i){K i==0},3J:J(a,i,m,r){K i==r.M-1},6n:J(a,i){K i%2==0},6l:J(a,i){K i%2},"3j-4p":J(a){K a.1a.3S("*")[0]==a},"3J-4p":J(a){K E.2Z(a.1a.5o,1,"4t")==a},"83-4p":J(a){K!E.2Z(a.1a.5o,2,"4t")},6B:J(a){K a.1C},4x:J(a){K!a.1C},82:J(a,i,m){K(a.6x||a.81||E(a).1u()||"").1f(m[3])>=0},4d:J(a){K"1Z"!=a.U&&E.1j(a,"19")!="2H"&&E.1j(a,"4U")!="1Z"},1Z:J(a){K"1Z"==a.U||E.1j(a,"19")=="2H"||E.1j(a,"4U")=="1Z"},80:J(a){K!a.2Y},2Y:J(a){K a.2Y},3k:J(a){K a.3k},2p:J(a){K a.2p||E.1J(a,"2p")},1u:J(a){K"1u"==a.U},5u:J(a){K"5u"==a.U},5t:J(a){K"5t"==a.U},59:J(a){K"59"==a.U},3I:J(a){K"3I"==a.U},58:J(a){K"58"==a.U},6j:J(a){K"6j"==a.U},6i:J(a){K"6i"==a.U},2G:J(a){K"2G"==a.U||E.12(a,"2G")},4D:J(a){K/4D|2k|6h|2G/i.17(a.12)},3Y:J(a,i,m){K E.2s(m[3],a).M},7X:J(a){K/h\\d/i.17(a.12)},7W:J(a){K E.3y(E.3G,J(b){K a==b.Y}).M}}},6g:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1B 4q("^([:.#]*)("+C+"+)")],3e:J(a,c,b){L d,2m=[];2b(a&&a!=d){d=a;L f=E.1E(a,c,b);a=f.t.1r(/^\\s*,\\s*/,"");2m=b?c=f.r:E.37(2m,f.r)}K 2m},2s:J(t,p){7(1o t!="25")K[t];7(p&&p.15!=1&&p.15!=9)K[];p=p||T;L d=[p],2r=[],3J,12;2b(t&&3J!=t){L r=[];3J=t;t=E.3g(t);L o=S;L g=6v;L m=g.2O(t);7(m){12=m[1].2E();Q(L i=0;d[i];i++)Q(L c=d[i].1C;c;c=c.2B)7(c.15==1&&(12=="*"||c.12.2E()==12))r.1g(c);d=r;t=t.1r(g,"");7(t.1f(" ")==0)6w;o=P}N{g=/^([>+~])\\s*(\\w*)/i;7((m=g.2O(t))!=V){r=[];L l={};12=m[2].2E();m=m[1];Q(L j=0,3f=d.M;j<3f;j++){L n=m=="~"||m=="+"?d[j].2B:d[j].1C;Q(;n;n=n.2B)7(n.15==1){L h=E.O(n);7(m=="~"&&l[h])1Q;7(!12||n.12.2E()==12){7(m=="~")l[h]=P;r.1g(n)}7(m=="+")1Q}}d=r;t=E.3g(t.1r(g,""));o=P}}7(t&&!o){7(!t.1f(",")){7(p==d[0])d.4l();2r=E.37(2r,d);r=d=[p];t=" "+t.6e(1,t.M)}N{L k=6u;L m=k.2O(t);7(m){m=[0,m[2],m[3],m[1]]}N{k=6s;m=k.2O(t)}m[2]=m[2].1r(/\\\\/g,"");L f=d[d.M-1];7(m[1]=="#"&&f&&f.5J&&!E.3E(f)){L q=f.5J(m[2]);7((E.14.1d||E.14.2z)&&q&&1o q.2w=="25"&&q.2w!=m[2])q=E(\'[@2w="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.12(q,m[3]))?[q]:[]}N{Q(L i=0;d[i];i++){L a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];7(a=="*"&&d[i].12.2h()=="3V")a="3m";r=E.37(r,d[i].3S(a))}7(m[1]==".")r=E.55(r,m[2]);7(m[1]=="#"){L e=[];Q(L i=0;r[i];i++)7(r[i].4z("2w")==m[2]){e=[r[i]];1Q}r=e}d=r}t=t.1r(k,"")}}7(t){L b=E.1E(t,r);d=r=b.r;t=E.3g(b.t)}}7(t)d=[];7(d&&p==d[0])d.4l();2r=E.37(2r,d);K 2r},55:J(r,m,a){m=" "+m+" ";L c=[];Q(L i=0;r[i];i++){L b=(" "+r[i].1t+" ").1f(m)>=0;7(!a&&b||a&&!b)c.1g(r[i])}K c},1E:J(t,r,h){L d;2b(t&&t!=d){d=t;L p=E.6g,m;Q(L i=0;p[i];i++){m=p[i].2O(t);7(m){t=t.7V(m[0].M);m[2]=m[2].1r(/\\\\/g,"");1Q}}7(!m)1Q;7(m[1]==":"&&m[2]=="56")r=G.17(m[3])?E.1E(m[3],r,P).r:E(r).56(m[3]);N 7(m[1]==".")r=E.55(r,m[2],h);N 7(m[1]=="["){L g=[],U=m[3];Q(L i=0,3f=r.M;i<3f;i++){L a=r[i],z=a[E.46[m[2]]||m[2]];7(z==V||/6O|3Q|2p/.17(m[2]))z=E.1J(a,m[2])||\'\';7((U==""&&!!z||U=="="&&z==m[5]||U=="!="&&z!=m[5]||U=="^="&&z&&!z.1f(m[5])||U=="$="&&z.6e(z.M-m[5].M)==m[5]||(U=="*="||U=="~=")&&z.1f(m[5])>=0)^h)g.1g(a)}r=g}N 7(m[1]==":"&&m[2]=="2Z-4p"){L e={},g=[],17=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2O(m[3]=="6n"&&"2n"||m[3]=="6l"&&"2n+1"||!/\\D/.17(m[3])&&"7U+"+m[3]||m[3]),3j=(17[1]+(17[2]||1))-0,d=17[3]-0;Q(L i=0,3f=r.M;i<3f;i++){L j=r[i],1a=j.1a,2w=E.O(1a);7(!e[2w]){L c=1;Q(L n=1a.1C;n;n=n.2B)7(n.15==1)n.4k=c++;e[2w]=P}L b=S;7(3j==0){7(j.4k==d)b=P}N 7((j.4k-d)%3j==0&&(j.4k-d)/3j>=0)b=P;7(b^h)g.1g(j)}r=g}N{L f=E.6r[m[1]];7(1o f=="3V")f=f[m[2]];7(1o f=="25")f=6c("S||J(a,i){K "+f+";}");r=E.3y(r,J(a,i){K f(a,i,m,r)},h)}}K{r:r,t:t}},4u:J(b,c){L d=[];L a=b[c];2b(a&&a!=T){7(a.15==1)d.1g(a);a=a[c]}K d},2Z:J(a,e,c,b){e=e||1;L d=0;Q(;a;a=a[c])7(a.15==1&&++d==e)1Q;K a},5i:J(n,a){L r=[];Q(;n;n=n.2B){7(n.15==1&&(!a||n!=a))r.1g(n)}K r}});E.16={1b:J(f,i,g,e){7(f.15==3||f.15==8)K;7(E.14.1d&&f.53!=10)f=1e;7(!g.2D)g.2D=6.2D++;7(e!=10){L h=g;g=J(){K h.1i(6,18)};g.O=e;g.2D=h.2D}L j=E.O(f,"2R")||E.O(f,"2R",{}),1v=E.O(f,"1v")||E.O(f,"1v",J(){L a;7(1o E=="10"||E.16.5f)K a;a=E.16.1v.1i(18.3R.Y,18);K a});1v.Y=f;E.R(i.23(/\\s+/),J(c,b){L a=b.23(".");b=a[0];g.U=a[1];L d=j[b];7(!d){d=j[b]={};7(!E.16.2y[b]||E.16.2y[b].4j.1P(f)===S){7(f.3F)f.3F(b,1v,S);N 7(f.6b)f.6b("4i"+b,1v)}}d[g.2D]=g;E.16.2a[b]=P});f=V},2D:1,2a:{},1V:J(e,h,f){7(e.15==3||e.15==8)K;L i=E.O(e,"2R"),29,4X;7(i){7(h==10||(1o h=="25"&&h.7T(0)=="."))Q(L g 1p i)6.1V(e,g+(h||""));N{7(h.U){f=h.2q;h=h.U}E.R(h.23(/\\s+/),J(b,a){L c=a.23(".");a=c[0];7(i[a]){7(f)2V i[a][f.2D];N Q(f 1p i[a])7(!c[1]||i[a][f].U==c[1])2V i[a][f];Q(29 1p i[a])1Q;7(!29){7(!E.16.2y[a]||E.16.2y[a].4h.1P(e)===S){7(e.67)e.67(a,E.O(e,"1v"),S);N 7(e.66)e.66("4i"+a,E.O(e,"1v"))}29=V;2V i[a]}}})}Q(29 1p i)1Q;7(!29){L d=E.O(e,"1v");7(d)d.Y=V;E.35(e,"2R");E.35(e,"1v")}}},1N:J(g,c,d,f,h){c=E.2I(c||[]);7(g.1f("!")>=0){g=g.2K(0,-1);L a=P}7(!d){7(6.2a[g])E("*").1b([1e,T]).1N(g,c)}N{7(d.15==3||d.15==8)K 10;L b,29,1n=E.1q(d[g]||V),16=!c[0]||!c[0].36;7(16)c.4J(6.4Z({U:g,2L:d}));c[0].U=g;7(a)c[0].65=P;7(E.1q(E.O(d,"1v")))b=E.O(d,"1v").1i(d,c);7(!1n&&d["4i"+g]&&d["4i"+g].1i(d,c)===S)b=S;7(16)c.4l();7(h&&E.1q(h)){29=h.1i(d,b==V?c:c.71(b));7(29!==10)b=29}7(1n&&f!==S&&b!==S&&!(E.12(d,\'a\')&&g=="4V")){6.5f=P;1S{d[g]()}1X(e){}}6.5f=S}K b},1v:J(c){L a;c=E.16.4Z(c||1e.16||{});L b=c.U.23(".");c.U=b[0];L f=E.O(6,"2R")&&E.O(6,"2R")[c.U],42=1M.2l.2K.1P(18,1);42.4J(c);Q(L j 1p f){L d=f[j];42[0].2q=d;42[0].O=d.O;7(!b[1]&&!c.65||d.U==b[1]){L e=d.1i(6,42);7(a!==S)a=e;7(e===S){c.36();c.44()}}}7(E.14.1d)c.2L=c.36=c.44=c.2q=c.O=V;K a},4Z:J(c){L a=c;c=E.1s({},a);c.36=J(){7(a.36)a.36();a.7S=S};c.44=J(){7(a.44)a.44();a.7R=P};7(!c.2L)c.2L=c.7Q||T;7(c.2L.15==3)c.2L=a.2L.1a;7(!c.4S&&c.5w)c.4S=c.5w==c.2L?c.7P:c.5w;7(c.64==V&&c.63!=V){L b=T.1F,1h=T.1h;c.64=c.63+(b&&b.2v||1h&&1h.2v||0)-(b.62||0);c.7N=c.7L+(b&&b.2x||1h&&1h.2x||0)-(b.60||0)}7(!c.3c&&((c.4f||c.4f===0)?c.4f:c.5Z))c.3c=c.4f||c.5Z;7(!c.7b&&c.5Y)c.7b=c.5Y;7(!c.3c&&c.2G)c.3c=(c.2G&1?1:(c.2G&2?3:(c.2G&4?2:0)));K c},2y:{21:{4j:J(){5M();K},4h:J(){K}},3C:{4j:J(){7(E.14.1d)K S;E(6).2j("4P",E.16.2y.3C.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4P",E.16.2y.3C.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3C";K E.16.1v.1i(6,18)}},3B:{4j:J(){7(E.14.1d)K S;E(6).2j("4O",E.16.2y.3B.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4O",E.16.2y.3B.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3B";K E.16.1v.1i(6,18)}}}};E.1n.1s({2j:J(c,a,b){K c=="4H"?6.2X(c,a,b):6.R(J(){E.16.1b(6,c,b||a,b&&a)})},2X:J(d,b,c){K 6.R(J(){E.16.1b(6,d,J(a){E(6).3w(a);K(c||b).1i(6,18)},c&&b)})},3w:J(a,b){K 6.R(J(){E.16.1V(6,a,b)})},1N:J(c,a,b){K 6.R(J(){E.16.1N(c,a,6,P,b)})},5n:J(c,a,b){7(6[0])K E.16.1N(c,a,6[0],S,b);K 10},2g:J(){L b=18;K 6.4V(J(a){6.4N=0==6.4N?1:0;a.36();K b[6.4N].1i(6,18)||S})},7D:J(a,b){K 6.2j(\'3C\',a).2j(\'3B\',b)},21:J(a){5M();7(E.2Q)a.1P(T,E);N E.3A.1g(J(){K a.1P(6,E)});K 6}});E.1s({2Q:S,3A:[],21:J(){7(!E.2Q){E.2Q=P;7(E.3A){E.R(E.3A,J(){6.1i(T)});E.3A=V}E(T).5n("21")}}});L x=S;J 5M(){7(x)K;x=P;7(T.3F&&!E.14.2z)T.3F("5W",E.21,S);7(E.14.1d&&1e==3b)(J(){7(E.2Q)K;1S{T.1F.7B("26")}1X(3a){3z(18.3R,0);K}E.21()})();7(E.14.2z)T.3F("5W",J(){7(E.2Q)K;Q(L i=0;i<T.4L.M;i++)7(T.4L[i].2Y){3z(18.3R,0);K}E.21()},S);7(E.14.2d){L a;(J(){7(E.2Q)K;7(T.39!="5V"&&T.39!="1y"){3z(18.3R,0);K}7(a===10)a=E("W, 7a[7A=7z]").M;7(T.4L.M!=a){3z(18.3R,0);K}E.21()})()}E.16.1b(1e,"3U",E.21)}E.R(("7y,7x,3U,7w,5d,4H,4V,7v,"+"7G,7u,7t,4P,4O,7s,2k,"+"58,7K,7q,7p,3a").23(","),J(i,b){E.1n[b]=J(a){K a?6.2j(b,a):6.1N(b)}});L I=J(a,c){L b=a.4S;2b(b&&b!=c)1S{b=b.1a}1X(3a){b=c}K b==c};E(1e).2j("4H",J(){E("*").1b(T).3w()});E.1n.1s({3U:J(g,d,c){7(E.1q(g))K 6.2j("3U",g);L e=g.1f(" ");7(e>=0){L i=g.2K(e,g.M);g=g.2K(0,e)}c=c||J(){};L f="4Q";7(d)7(E.1q(d)){c=d;d=V}N{d=E.3m(d);f="61"}L h=6;E.3P({1c:g,U:f,1H:"3q",O:d,1y:J(a,b){7(b=="1W"||b=="5U")h.3q(i?E("<1x/>").3t(a.4b.1r(/<1m(.|\\s)*?\\/1m>/g,"")).2s(i):a.4b);h.R(c,[a.4b,b,a])}});K 6},7n:J(){K E.3m(6.5T())},5T:J(){K 6.2c(J(){K E.12(6,"3u")?E.2I(6.7m):6}).1E(J(){K 6.31&&!6.2Y&&(6.3k||/2k|6h/i.17(6.12)||/1u|1Z|3I/i.17(6.U))}).2c(J(i,c){L b=E(6).5O();K b==V?V:b.1k==1M?E.2c(b,J(a,i){K{31:c.31,1A:a}}):{31:c.31,1A:b}}).22()}});E.R("5S,6d,5R,6D,5Q,6m".23(","),J(i,o){E.1n[o]=J(f){K 6.2j(o,f)}});L B=(1B 3v).3L();E.1s({22:J(d,b,a,c){7(E.1q(b)){a=b;b=V}K E.3P({U:"4Q",1c:d,O:b,1W:a,1H:c})},7l:J(b,a){K E.22(b,V,a,"1m")},7k:J(c,b,a){K E.22(c,b,a,"3i")},7i:J(d,b,a,c){7(E.1q(b)){a=b;b={}}K E.3P({U:"61",1c:d,O:b,1W:a,1H:c})},85:J(a){E.1s(E.4I,a)},4I:{2a:P,U:"4Q",2U:0,5P:"4o/x-7h-3u-7g",5N:P,3l:P,O:V,6p:V,3I:V,49:{3M:"4o/3M, 1u/3M",3q:"1u/3q",1m:"1u/4m, 4o/4m",3i:"4o/3i, 1u/4m",1u:"1u/a7",4G:"*/*"}},4F:{},3P:J(s){L f,2W=/=\\?(&|$)/g,1z,O;s=E.1s(P,s,E.1s(P,{},E.4I,s));7(s.O&&s.5N&&1o s.O!="25")s.O=E.3m(s.O);7(s.1H=="4E"){7(s.U.2h()=="22"){7(!s.1c.1D(2W))s.1c+=(s.1c.1D(/\\?/)?"&":"?")+(s.4E||"7d")+"=?"}N 7(!s.O||!s.O.1D(2W))s.O=(s.O?s.O+"&":"")+(s.4E||"7d")+"=?";s.1H="3i"}7(s.1H=="3i"&&(s.O&&s.O.1D(2W)||s.1c.1D(2W))){f="4E"+B++;7(s.O)s.O=(s.O+"").1r(2W,"="+f+"$1");s.1c=s.1c.1r(2W,"="+f+"$1");s.1H="1m";1e[f]=J(a){O=a;1W();1y();1e[f]=10;1S{2V 1e[f]}1X(e){}7(h)h.34(g)}}7(s.1H=="1m"&&s.1T==V)s.1T=S;7(s.1T===S&&s.U.2h()=="22"){L i=(1B 3v()).3L();L j=s.1c.1r(/(\\?|&)4r=.*?(&|$)/,"$a4="+i+"$2");s.1c=j+((j==s.1c)?(s.1c.1D(/\\?/)?"&":"?")+"4r="+i:"")}7(s.O&&s.U.2h()=="22"){s.1c+=(s.1c.1D(/\\?/)?"&":"?")+s.O;s.O=V}7(s.2a&&!E.5H++)E.16.1N("5S");7((!s.1c.1f("a3")||!s.1c.1f("//"))&&s.1H=="1m"&&s.U.2h()=="22"){L h=T.3S("6f")[0];L g=T.3s("1m");g.3Q=s.1c;7(s.7c)g.a2=s.7c;7(!f){L l=S;g.9Z=g.9Y=J(){7(!l&&(!6.39||6.39=="5V"||6.39=="1y")){l=P;1W();1y();h.34(g)}}}h.38(g);K 10}L m=S;L k=1e.78?1B 78("9X.9V"):1B 76();k.9T(s.U,s.1c,s.3l,s.6p,s.3I);1S{7(s.O)k.4C("9R-9Q",s.5P);7(s.5C)k.4C("9O-5A-9N",E.4F[s.1c]||"9L, 9K 9I 9H 5z:5z:5z 9F");k.4C("X-9C-9A","76");k.4C("9z",s.1H&&s.49[s.1H]?s.49[s.1H]+", */*":s.49.4G)}1X(e){}7(s.6Y)s.6Y(k);7(s.2a)E.16.1N("6m",[k,s]);L c=J(a){7(!m&&k&&(k.39==4||a=="2U")){m=P;7(d){6I(d);d=V}1z=a=="2U"&&"2U"||!E.6X(k)&&"3a"||s.5C&&E.6J(k,s.1c)&&"5U"||"1W";7(1z=="1W"){1S{O=E.6W(k,s.1H)}1X(e){1z="5x"}}7(1z=="1W"){L b;1S{b=k.5q("6U-5A")}1X(e){}7(s.5C&&b)E.4F[s.1c]=b;7(!f)1W()}N E.5v(s,k,1z);1y();7(s.3l)k=V}};7(s.3l){L d=53(c,13);7(s.2U>0)3z(J(){7(k){k.9t();7(!m)c("2U")}},s.2U)}1S{k.9s(s.O)}1X(e){E.5v(s,k,V,e)}7(!s.3l)c();J 1W(){7(s.1W)s.1W(O,1z);7(s.2a)E.16.1N("5Q",[k,s])}J 1y(){7(s.1y)s.1y(k,1z);7(s.2a)E.16.1N("5R",[k,s]);7(s.2a&&!--E.5H)E.16.1N("6d")}K k},5v:J(s,a,b,e){7(s.3a)s.3a(a,b,e);7(s.2a)E.16.1N("6D",[a,s,e])},5H:0,6X:J(r){1S{K!r.1z&&9q.9p=="59:"||(r.1z>=6T&&r.1z<9n)||r.1z==6R||r.1z==9l||E.14.2d&&r.1z==10}1X(e){}K S},6J:J(a,c){1S{L b=a.5q("6U-5A");K a.1z==6R||b==E.4F[c]||E.14.2d&&a.1z==10}1X(e){}K S},6W:J(r,b){L c=r.5q("9k-U");L d=b=="3M"||!b&&c&&c.1f("3M")>=0;L a=d?r.9j:r.4b;7(d&&a.1F.28=="5x")6Q"5x";7(b=="1m")E.5g(a);7(b=="3i")a=6c("("+a+")");K a},3m:J(a){L s=[];7(a.1k==1M||a.5h)E.R(a,J(){s.1g(3r(6.31)+"="+3r(6.1A))});N Q(L j 1p a)7(a[j]&&a[j].1k==1M)E.R(a[j],J(){s.1g(3r(j)+"="+3r(6))});N s.1g(3r(j)+"="+3r(a[j]));K s.6a("&").1r(/%20/g,"+")}});E.1n.1s({1G:J(c,b){K c?6.2e({1R:"1G",27:"1G",1w:"1G"},c,b):6.1E(":1Z").R(J(){6.W.19=6.5s||"";7(E.1j(6,"19")=="2H"){L a=E("<"+6.28+" />").6y("1h");6.W.19=a.1j("19");7(6.W.19=="2H")6.W.19="3D";a.1V()}}).3h()},1I:J(b,a){K b?6.2e({1R:"1I",27:"1I",1w:"1I"},b,a):6.1E(":4d").R(J(){6.5s=6.5s||E.1j(6,"19");6.W.19="2H"}).3h()},6N:E.1n.2g,2g:J(a,b){K E.1q(a)&&E.1q(b)?6.6N(a,b):a?6.2e({1R:"2g",27:"2g",1w:"2g"},a,b):6.R(J(){E(6)[E(6).3H(":1Z")?"1G":"1I"]()})},9f:J(b,a){K 6.2e({1R:"1G"},b,a)},9d:J(b,a){K 6.2e({1R:"1I"},b,a)},9c:J(b,a){K 6.2e({1R:"2g"},b,a)},9a:J(b,a){K 6.2e({1w:"1G"},b,a)},99:J(b,a){K 6.2e({1w:"1I"},b,a)},97:J(c,a,b){K 6.2e({1w:a},c,b)},2e:J(l,k,j,h){L i=E.6P(k,j,h);K 6[i.2P===S?"R":"2P"](J(){7(6.15!=1)K S;L g=E.1s({},i);L f=E(6).3H(":1Z"),4A=6;Q(L p 1p l){7(l[p]=="1I"&&f||l[p]=="1G"&&!f)K E.1q(g.1y)&&g.1y.1i(6);7(p=="1R"||p=="27"){g.19=E.1j(6,"19");g.32=6.W.32}}7(g.32!=V)6.W.32="1Z";g.40=E.1s({},l);E.R(l,J(c,a){L e=1B E.2t(4A,g,c);7(/2g|1G|1I/.17(a))e[a=="2g"?f?"1G":"1I":a](l);N{L b=a.3X().1D(/^([+-]=)?([\\d+-.]+)(.*)$/),1Y=e.2m(P)||0;7(b){L d=2M(b[2]),2A=b[3]||"2S";7(2A!="2S"){4A.W[c]=(d||1)+2A;1Y=((d||1)/e.2m(P))*1Y;4A.W[c]=1Y+2A}7(b[1])d=((b[1]=="-="?-1:1)*d)+1Y;e.45(1Y,d,2A)}N e.45(1Y,a,"")}});K P})},2P:J(a,b){7(E.1q(a)||(a&&a.1k==1M)){b=a;a="2t"}7(!a||(1o a=="25"&&!b))K A(6[0],a);K 6.R(J(){7(b.1k==1M)A(6,a,b);N{A(6,a).1g(b);7(A(6,a).M==1)b.1i(6)}})},94:J(b,c){L a=E.3G;7(b)6.2P([]);6.R(J(){Q(L i=a.M-1;i>=0;i--)7(a[i].Y==6){7(c)a[i](P);a.72(i,1)}});7(!c)6.5p();K 6}});L A=J(b,c,a){7(!b)K 10;c=c||"2t";L q=E.O(b,c+"2P");7(!q||a)q=E.O(b,c+"2P",a?E.2I(a):[]);K q};E.1n.5p=J(a){a=a||"2t";K 6.R(J(){L q=A(6,a);q.4l();7(q.M)q[0].1i(6)})};E.1s({6P:J(b,a,c){L d=b&&b.1k==92?b:{1y:c||!c&&a||E.1q(b)&&b,2u:b,3Z:c&&a||a&&a.1k!=91&&a};d.2u=(d.2u&&d.2u.1k==51?d.2u:{90:8Z,9D:6T}[d.2u])||8X;d.5y=d.1y;d.1y=J(){7(d.2P!==S)E(6).5p();7(E.1q(d.5y))d.5y.1i(6)};K d},3Z:{70:J(p,n,b,a){K b+a*p},5j:J(p,n,b,a){K((-24.8V(p*24.8U)/2)+0.5)*a+b}},3G:[],3W:V,2t:J(b,c,a){6.11=c;6.Y=b;6.1l=a;7(!c.47)c.47={}}});E.2t.2l={4y:J(){7(6.11.30)6.11.30.1i(6.Y,[6.2J,6]);(E.2t.30[6.1l]||E.2t.30.4G)(6);7(6.1l=="1R"||6.1l=="27")6.Y.W.19="3D"},2m:J(a){7(6.Y[6.1l]!=V&&6.Y.W[6.1l]==V)K 6.Y[6.1l];L r=2M(E.1j(6.Y,6.1l,a));K r&&r>-8Q?r:2M(E.2o(6.Y,6.1l))||0},45:J(c,b,d){6.5B=(1B 3v()).3L();6.1Y=c;6.3h=b;6.2A=d||6.2A||"2S";6.2J=6.1Y;6.4B=6.4w=0;6.4y();L e=6;J t(a){K e.30(a)}t.Y=6.Y;E.3G.1g(t);7(E.3W==V){E.3W=53(J(){L a=E.3G;Q(L i=0;i<a.M;i++)7(!a[i]())a.72(i--,1);7(!a.M){6I(E.3W);E.3W=V}},13)}},1G:J(){6.11.47[6.1l]=E.1J(6.Y.W,6.1l);6.11.1G=P;6.45(0,6.2m());7(6.1l=="27"||6.1l=="1R")6.Y.W[6.1l]="8N";E(6.Y).1G()},1I:J(){6.11.47[6.1l]=E.1J(6.Y.W,6.1l);6.11.1I=P;6.45(6.2m(),0)},30:J(a){L t=(1B 3v()).3L();7(a||t>6.11.2u+6.5B){6.2J=6.3h;6.4B=6.4w=1;6.4y();6.11.40[6.1l]=P;L b=P;Q(L i 1p 6.11.40)7(6.11.40[i]!==P)b=S;7(b){7(6.11.19!=V){6.Y.W.32=6.11.32;6.Y.W.19=6.11.19;7(E.1j(6.Y,"19")=="2H")6.Y.W.19="3D"}7(6.11.1I)6.Y.W.19="2H";7(6.11.1I||6.11.1G)Q(L p 1p 6.11.40)E.1J(6.Y.W,p,6.11.47[p])}7(b&&E.1q(6.11.1y))6.11.1y.1i(6.Y);K S}N{L n=t-6.5B;6.4w=n/6.11.2u;6.4B=E.3Z[6.11.3Z||(E.3Z.5j?"5j":"70")](6.4w,n,0,1,6.11.2u);6.2J=6.1Y+((6.3h-6.1Y)*6.4B);6.4y()}K P}};E.2t.30={2v:J(a){a.Y.2v=a.2J},2x:J(a){a.Y.2x=a.2J},1w:J(a){E.1J(a.Y.W,"1w",a.2J)},4G:J(a){a.Y.W[a.1l]=a.2J+a.2A}};E.1n.5L=J(){L b=0,3b=0,Y=6[0],5l;7(Y)8M(E.14){L d=Y.1a,41=Y,1K=Y.1K,1L=Y.2i,5D=2d&&4s(5K)<8J&&!/a1/i.17(v),2T=E.1j(Y,"43")=="2T";7(Y.6G){L c=Y.6G();1b(c.26+24.2f(1L.1F.2v,1L.1h.2v),c.3b+24.2f(1L.1F.2x,1L.1h.2x));1b(-1L.1F.62,-1L.1F.60)}N{1b(Y.5G,Y.5F);2b(1K){1b(1K.5G,1K.5F);7(48&&!/^t(8H|d|h)$/i.17(1K.28)||2d&&!5D)2N(1K);7(!2T&&E.1j(1K,"43")=="2T")2T=P;41=/^1h$/i.17(1K.28)?41:1K;1K=1K.1K}2b(d&&d.28&&!/^1h|3q$/i.17(d.28)){7(!/^8G|1O.*$/i.17(E.1j(d,"19")))1b(-d.2v,-d.2x);7(48&&E.1j(d,"32")!="4d")2N(d);d=d.1a}7((5D&&(2T||E.1j(41,"43")=="4W"))||(48&&E.1j(41,"43")!="4W"))1b(-1L.1h.5G,-1L.1h.5F);7(2T)1b(24.2f(1L.1F.2v,1L.1h.2v),24.2f(1L.1F.2x,1L.1h.2x))}5l={3b:3b,26:b}}J 2N(a){1b(E.2o(a,"a8",P),E.2o(a,"a9",P))}J 1b(l,t){b+=4s(l)||0;3b+=4s(t)||0}K 5l}})();',62,631,'||||||this|if||||||||||||||||||||||||||||||||||||||function|return|var|length|else|data|true|for|each|false|document|type|null|style||elem||undefined|options|nodeName||browser|nodeType|event|test|arguments|display|parentNode|add|url|msie|window|indexOf|push|body|apply|css|constructor|prop|script|fn|typeof|in|isFunction|replace|extend|className|text|handle|opacity|div|complete|status|value|new|firstChild|match|filter|documentElement|show|dataType|hide|attr|offsetParent|doc|Array|trigger|table|call|break|height|try|cache|tbody|remove|success|catch|start|hidden||ready|get|split|Math|string|left|width|tagName|ret|global|while|map|safari|animate|max|toggle|toLowerCase|ownerDocument|bind|select|prototype|cur||curCSS|selected|handler|done|find|fx|duration|scrollLeft|id|scrollTop|special|opera|unit|nextSibling|stack|guid|toUpperCase|pushStack|button|none|makeArray|now|slice|target|parseFloat|border|exec|queue|isReady|events|px|fixed|timeout|delete|jsre|one|disabled|nth|step|name|overflow|inArray|removeChild|removeData|preventDefault|merge|appendChild|readyState|error|top|which|innerHTML|multiFilter|rl|trim|end|json|first|checked|async|param|elems|insertBefore|childNodes|html|encodeURIComponent|createElement|append|form|Date|unbind|color|grep|setTimeout|readyList|mouseleave|mouseenter|block|isXMLDoc|addEventListener|timers|is|password|last|runtimeStyle|getTime|xml|jQuery|domManip|ajax|src|callee|getElementsByTagName|selectedIndex|load|object|timerId|toString|has|easing|curAnim|offsetChild|args|position|stopPropagation|custom|props|orig|mozilla|accepts|clean|responseText|defaultView|visible|String|charCode|float|teardown|on|setup|nodeIndex|shift|javascript|currentStyle|application|child|RegExp|_|parseInt|previousSibling|dir|tr|state|empty|update|getAttribute|self|pos|setRequestHeader|input|jsonp|lastModified|_default|unload|ajaxSettings|unshift|getComputedStyle|styleSheets|getPropertyValue|lastToggle|mouseout|mouseover|GET|andSelf|relatedTarget|init|visibility|click|absolute|index|container|fix|outline|Number|removeAttribute|setInterval|prevObject|classFilter|not|unique|submit|file|after|windowData|deep|scroll|client|triggered|globalEval|jquery|sibling|swing|clone|results|wrapAll|triggerHandler|lastChild|dequeue|getResponseHeader|createTextNode|oldblock|checkbox|radio|handleError|fromElement|parsererror|old|00|Modified|startTime|ifModified|safari2|getWH|offsetTop|offsetLeft|active|values|getElementById|version|offset|bindReady|processData|val|contentType|ajaxSuccess|ajaxComplete|ajaxStart|serializeArray|notmodified|loaded|DOMContentLoaded|Width|ctrlKey|keyCode|clientTop|POST|clientLeft|clientX|pageX|exclusive|detachEvent|removeEventListener|swap|cloneNode|join|attachEvent|eval|ajaxStop|substr|head|parse|textarea|reset|image|zoom|odd|ajaxSend|even|before|username|prepend|expr|quickClass|uuid|quickID|quickChild|continue|textContent|appendTo|contents|evalScript|parent|defaultValue|ajaxError|setArray|compatMode|getBoundingClientRect|styleFloat|clearInterval|httpNotModified|nodeValue|100|alpha|_toggle|href|speed|throw|304|replaceWith|200|Last|colgroup|httpData|httpSuccess|beforeSend|eq|linear|concat|splice|fieldset|multiple|cssFloat|XMLHttpRequest|webkit|ActiveXObject|CSS1Compat|link|metaKey|scriptCharset|callback|col|pixelLeft|urlencoded|www|post|hasClass|getJSON|getScript|elements|serialize|black|keyup|keypress|solid|change|mousemove|mouseup|dblclick|resize|focus|blur|stylesheet|rel|doScroll|round|hover|padding|offsetHeight|mousedown|offsetWidth|Bottom|Top|keydown|clientY|Right|pageY|Left|toElement|srcElement|cancelBubble|returnValue|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|ajaxSetup|font|size|gt|lt|uFFFF|u0128|417|Boolean|inner|Height|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|contentWindow|contentDocument|wrap|iframe|children|siblings|prevAll|nextAll|prev|wrapInner|next|parents|maxLength|maxlength|readOnly|readonly|reverse|class|htmlFor|inline|able|boxModel|522|setData|compatible|with|1px|ie|getData|10000|ra|it|rv|PI|cos|userAgent|400|navigator|600|slow|Function|Object|array|stop|ig|NaN|fadeTo|option|fadeOut|fadeIn|setAttribute|slideToggle|slideUp|changed|slideDown|be|can|property|responseXML|content|1223|getAttributeNode|300|method|protocol|location|action|send|abort|cssText|th|td|cap|specified|Accept|With|colg|Requested|fast|tfoot|GMT|thead|1970|Jan|attributes|01|Thu|leg|Since|If|opt|Type|Content|embed|open|area|XMLHTTP|hr|Microsoft|onreadystatechange|onload|meta|adobeair|charset|http|1_|img|br|plain|borderLeftWidth|borderTopWidth|abbr'.split('|'),0,{}))

/*****  Added By Claw 20th Dec ********/
  // do stuff when DOM is ready
  $(document).ready(function() {
		resDepLayout.checkBrowserWidth();
		roundMe.corners();
		roundMe.buttons();
		toggleStuff.rhsToggle();
		toggleStuff.standardToggle();
		$('#products').css('display', 'none');
		listSelectConversion.listToDrop();
		dtsl.init();
		setTabIndex.topArea();
		//setTabIndex.primNav();
		nav.constructPop();
		nav.hideNavOffTab();
		myAccountsPop.createPopup();
		myAccountsPop.hideNavOffTab();
		//keepOpenToggledSection.toggledSection();
		cao.createForms();
	
	//Add NEW WINDOW FOR POPUPS	
		  $("a.new-newline").append("<b>(new window)</b>");
		  $("a.new-small").append(" <b>(new window)</b>");
		  $("a.popup").each(function() {
			var currentClasses = this.className;
			if ((currentClasses && (' ' + currentClasses + ' ').indexOf(' new-newline ') === -1) && (currentClasses && (' ' + currentClasses + ' ').indexOf(' nw-small ') === -1)) {
				$(this).append(" <b>(new window)</b>");
			}
		  });
	
		//Standard popup
		  /*
		  $("a.popup").click(function() {
			 window.open($(this).attr("href"));
			 return false;
		  });*/
		//Metafaq popup
		  /*
		  $("a.metafaq").click(function() {
			 window.open($(this).attr("href"), 'mypop', "height=650, width=780, status, resizable, scrollbars, toolbar");
			 return false;
		  });*/
		//Demo popup
		  /*
		  $("a.demowindow").click(function() {
			 window.open($(this).attr("href"), 'mypop', "height=500, width=660, status, resizable, scrollbars, toolbar");
			 return false;
		  });*/
		//Demo popup
		  /*
		  $("a.segala").click(function() {
			 window.open($(this).attr("href"), 'mypop', "height=780, width=500, status, resizable, scrollbars, toolbar");
			 return false;
		  });*/

		  
	//EQUAL SIZED COLUMNS
		$.fn.equalizeCols = function(children){  
			var child = Array(0);  
			if (children) 
				child = children.split(",");  
				var maxH = 0;  
				this.each( function(i) {  
					if (this.offsetHeight>maxH) 
					maxH = this.offsetHeight;  
				}  
			).css("height", "auto").each(function(i)  {  
				var gap = maxH-this.offsetHeight;  
				if (gap > 0)  {  
					t = document.createElement('div');  
					$(t).attr("class","fill").css("height",gap+"px");  
					if (child.length > i)  {  
						$(this).find(child[i]).children(':last-child').after(t);  
					} else {  
						$(this).children(':last-child').after(t);  
					}  
				}  
				}    
			);     
		}  
		$(".one-right .info, .one-left .info").equalizeCols();
		$("#compare-col, #finance-insurance-col").equalizeCols();	
     });
  
  //$("#nav-secondary dl dd dl dt").css("margin-top", "-8px");
	 
//ROUND STUFF
	var roundMe = {
	//CORNERS
		corners: function() {
			$("div.corners").css("border", "0").wrapInner("<div class='inner'><div class='box-content clearing'></div></div>").prepend("<div class='empty'></div>");
		},
	// BUTTONS
		buttons: function() {
		  $("div.button-container").addClass("js-button-container").removeClass("button-container");
		  $(".js-button-container").prepend("<div class='emptybut'></div>");
		  $(".js-button-container > a").wrap("<div class='button'><span></span></div>");
		}
	};
	 
//TOGGLE STUFF
	var toggleStuff = {
		
		rhsToggle: function() {
			//$("#servicing-col .toggleme").next().hide();
			//$("#servicing-col .toggleme").css("margin-bottom", "8px").wrapInner("<a href='#'></a>").click(function() {
				  //$(this).next().css("margin-top", "-8px");
				  //$(this).next().slideToggle();		  
			//});
			$("#servicing-col .toggleme").css("margin-bottom", "8px").click(function() {
				$(this).next().css("margin-top", "-8px");
			});
	
			$("#nav-secondary .toggleme").css("margin", "0px");

	//Change image on toggle
			
			$("#servicing-col .toggleme").toggle(function(){ 
				$(this).addClass("section-open"); 
			},function(){ 
				$(this).removeClass("section-open"); 
			});		
		},
		
		standardToggle: function() {
			if (!g.id("current-elh")) {
				$(".toggleme").next().hide();
			};
			$(".toggleme").wrapInner("<a href='#'></a>").click(function() {
			  $(this).next().slideToggle();		  
			});
		}
	}



/*
-----------------  4. Set up Tabindex -------------------------------------------------------*/

//var setTabIndex = {

    /** Give top area a tabindex in increments of 1 so this is always the area tabbed through first **/
    //topArea: function () {

    /*Give first link in page tabindex1, this is required as the myaccounts popup run off this,
    Then find out how many links will be within the generated popup box so that the next links tabindex will be one more than the 
    last link within the popup box*/
        //if (!document.getElementById || !g.id("orientation") || !g.id("accounts") || !g.id("accounts-products") || !g.tn || !g.tn("a") || !g.idTn("skiplink", "a")) {
          //  return false;
        //}
        //var skip = g.idTn("skiplink", "a");
        //skip[0].setAttribute("tabIndex", 1);
        //var myaccounts = g.id("accounts").setAttribute("tabIndex", 2);
        //var myaccoutspoplinks = g.idTn("accounts-products", "a");		
        //var localTabindex = myaccoutspoplinks.length + 2;
        //var topSectionLinks = g.idTn("orientation", "a");
        //for (var i = 0; i < topSectionLinks.length; i++) {
          //  topSectionLinks[i].setAttribute("tabIndex", localTabindex);
        //    localTabindex ++;
      //  }
    //},

/** Give top links a tabindex value in increments of 100 **/
   // primNav: function () {
        //if (!document.getElementById || !g.id("nav-primary") || !g.id("wrapper") || !document.getElementsByTagName || !g.tn("a")) {
          //  return false;
        //}
        //var topTabLinks = g.idTn("nav-primary", "a");
        //var parent = g.id("wrapper");
        //var tabTabindex = 100;
        //for (var i = 0; i < topTabLinks.length; i++) {
        //    topTabLinks[i].setAttribute("tabIndex", tabTabindex);
      //      tabTabindex = tabTabindex + 100;
    //    }
  //  }
//};


var setTabIndex = {
	topArea: function () {
		if (!$("a[href='#content']") || !$("#accounts") || !$("#accounts-products") || !$("#nav-primary")) {
			return false;
		}
		var tabTabindex = 100;
		var localTabindex = $("#accounts-products a").length + 2;	
		$("a[href='#content']").attr({tabindex: 1});
		$("#accounts").attr({tabindex: 2});
		$("#orientation a").each(function() {
			$(this).attr({tabindex: localTabindex});
			localTabindex ++;
		});
		$("#nav-primary a").each(function() {
			$(this).attr({tabindex: tabTabindex});
			tabTabindex = tabTabindex + 100;
		});
}};


/*
-----------------  6. Convert lists to to Select box -------------------------------------------------------*/
// Take an unordered list and convert it to a select box.
// This function will also take the nearest header and use it as the select box label 

var listSelectConversion = {
    listToDrop: function () {
        listSelectConversion.convertMeToDrop("retrieve", "rquote");
        listSelectConversion.convertMeToDrop("bm", "landc");
    },

    convertMeToDrop: function (a, b) {
        if (!document.getElementById || !g.id(a) || !g.id(b) || !document.createElement) {
            return false;
        }
        var box = g.id(a);
        var innerBox = g.id(b);
        // Get all the links within the retrieve list and store them in an array to allow us to build them up for the select box
        var links = [];
        var listItemLinks = g.idTn(b, "a");
        for (var i = 0; i < listItemLinks.length; i++) {
            links.push(listItemLinks[i]);
        }

    // Create select box
        var selectElement = g.ce("select");
        selectElement.setAttribute("id", a + "-quote");
        selectElement.setAttribute("name", a + "page");
        selectElement.setAttribute("autocomplete", "off");
        for (var j = 0; j < links.length; j++) {
            var option = g.ceA("option", "value", links[j].href);
            var optionText = document.createTextNode(links[j].lastChild.nodeValue);
            option.appendChild(optionText);	
            selectElement.appendChild(option);
        }

        // Create input button
        var inputElement = g.ceA("input", "type", "submit");
        inputElement.setAttribute("value", "Go");
        inputElement.setAttribute("autocomplete", "off");
        inputElement.onclick = function () {
            var getSelectedItem = g.id(a + "-quote");
            var getForm = g.id(a + "-form");
            var getUrl = (getSelectedItem[getSelectedItem.selectedIndex].value);
            window.open(getUrl);
        };

    // Append elements back to page
        box.replaceChild(selectElement, innerBox);
        var dropDown = g.id(a + "-quote");
        g.insertAfter(inputElement, dropDown);

// Get all elements within the retrieve div and place them within a div, if their is an h3 wrap it in a label

        var contentArray = g.elementWrap(box);

        var form = g.ceA("form", "action", "");
        form.setAttribute("id", a + "-form");
        form.setAttribute("method", "get");

// Check for a heading element and wrap the contents of the h3 within a label
        for (var k = 0; k < contentArray.length; k++) {
            if (contentArray[k].nodeName === "H1" || contentArray[k].nodeName === "H2" || contentArray[k].nodeName === "H3" || contentArray[k].nodeName === "H4") {
                contentArray[k].setAttribute("id", "title" + k);
                var label = g.ceA("label", "for", a + "-quote");
                var headerKids = contentArray[k].childNodes;
                for (var n = 0; n < headerKids.length; n++) {
                    label.appendChild(headerKids[n]);
                }
                var header = g.id("title" + k);
                header.appendChild(label);
            }
            form.appendChild(contentArray[k]);	
        }
        box.appendChild(form);	
    }
};

/*
-----------------  7. Navigation Popups  -------------------------------------------------------*/

// Pass the array as an argument, with the parent container and wrapper values also



/** Create popups box areas and append to page **/
var nav = {


// Create array which is a reference to the tabs id
    tabs: ["ins", "cards", "loan", "mort", "save", "tra"],

/** Build the popup nav **/
    constructPop: function () {
    // Loop through the links array getting all the list items and adding them to the paretnLink Array
        for (var i = 0; i < nav.tabs.length; i++) {				
            var parentLink = [];
            var area = nav.tabs[i] + "-products";
            if (!document.getElementById(area)) {
                return false;
            }
            var li = document.getElementById(area).getElementsByTagName("li");
            for (var k = 0; k < li.length; k++) {
                var findTheUL = g.getParentUL(li[k]);
                if (findTheUL.parentNode.id === area) {
                    var copyOfLI = li[k].cloneNode(true);
                    parentLink.push(copyOfLI);
                }
            }	

        // Create all page elements 
            var boxStyle = area + "-box";
            var div1 = document.createElement("div");
            div1.className = boxStyle;
            div1.style.visibility = "hidden";
            var div2 =  document.createElement("div");
            div2.className = "innerbox";
            var div3 =  document.createElement("div");
            div3.className =  "productslinks clearing";
            var div4 =  document.createElement("div");
            div4.className = "prodleft";
            var ulLeft = document.createElement("ul"); 		
            for (var m = 0; m < parentLink.length; m = m + 2) {
                var liLeft = parentLink[m];
                ulLeft.appendChild(liLeft);
            }
            var div5 = document.createElement("div");
            div5.className = "prodright";
            var ulRight = document.createElement("ul"); 		
            for (var n = 1; n < parentLink.length; n = n + 2) {
                var liRight = parentLink[n];
                ulRight.appendChild(liRight);
            }	
// Append Elements to each other and page 
            var parent = g.id("content");
            div5.appendChild(ulRight);
            div4.appendChild(ulLeft);
            div3.appendChild(div4);
            div3.appendChild(div5);					
// Loop through the links and add a tabindex, starting from the value of the tabindex in the top tab
            var ttIndex = document.getElementById(nav.tabs[i]).getAttribute("tabIndex");
            var localIndex = parseInt(ttIndex, 10) + 1;
            var a = div3.getElementsByTagName("a");
            for (var j = 0; j < a.length; j++) {
                a[j].setAttribute("tabIndex", localIndex);
                localIndex++;
            }
// Finish appending elements to each other and page 
            div2.appendChild(div3);
            div1.appendChild(div2);
            parent.appendChild(div1);
        }
    },

// Hide navs if user is in the top section or the body section
    hideNavOffTab: function () {	
        var parent = g.id("wrapper");
        if (!g.id("ask")) {
            return false;
        }
        // Hide popup when user moves to first link before Nav
        var topLinks = g.idTn("ask", "a");
        topLinks[0].onfocus = function () {
            var sectionDiv = getElementsByClassName(parent, "div", nav.tabs[0] + '-products-box');
            if (!sectionDiv[0]) return false;
			sectionDiv[0].style.visibility = "hidden";
        };

        // Hide popup when user tabs off last link in last product
        var lastProduct = getElementsByClassName(parent, "div", nav.tabs[5] + '-products-box');
        if (!lastProduct[0]) return false;
		var links = lastProduct[0].getElementsByTagName("a");
        var arraryLength = (links.length) - 1;
        links[arraryLength].onblur = function () {
            lastProduct[0].style.visibility = "hidden";
        };
    },

    /** Listen for mouse and keyboard events  **/
    navPopListeners: function () {	
        if (!document.getElementById) {
            return false;
        }
        for (var i = 0; i < nav.tabs.length; i++) {
            if (!g.id(nav.tabs[i])) {
                return false;
            }            
            var currentTab = g.id(nav.tabs[i]);
            g.addEvent(currentTab, 'mouseover', nav.showHideNav, false);
            g.addEvent(currentTab, 'focus', nav.showHideNav, false);
        }
    },


/** Display Nav popup **/
    showHideNav: function (e) {

        var parent = g.id("wrapper");		

// Check no other sections are open

        for (var i = 0; i < nav.tabs.length; i++) {	
            var sectionDiv  = getElementsByClassName(parent, "div", nav.tabs[i] + '-products-box');
            if (sectionDiv[0].style.visibility === "visible") {
                sectionDiv[0].style.visibility = "hidden";
            }		
        }

        var links = g.getTarget(e).id;
        g.stopBubble(e);


// Get the section associated with the tab and make the section visible

        var currentSection = links + "-products-box";
        var section  = getElementsByClassName(parent, "div", currentSection);	
        if (section[0].style.visibility !== "visible") {
            section[0].style.visibility = "visible";
        }

// Close popup if mouse moves off Tab
        g.id(links).onmouseout = function () {
            section[0].style.visibility = "hidden";
        };
//Find out where the mouse is in relation to the popup nav, close if the mouse is not over the popup
        section[0].onmouseover = function () {
            this.style.visibility = "visible";
        };
        section[0].onmouseout  = function () {
            this.style.visibility = "hidden";
        };
    }
};

var myAccountsPop = {
// Create array which is a reference to the tabs id
    tabs: ["accounts"],

    createPopup: function () {
        for (var i = 0; i < myAccountsPop.tabs.length; i++) {				
            var parentLink = [];
            var area = myAccountsPop.tabs[i] + "-products";
            if (!document.getElementById(area)) {
                return false;
            }
            var li = document.getElementById(area).getElementsByTagName("li");
            for (var k = 0; k < li.length; k++) {
                var findTheUL = g.getParentUL(li[k]);		
                if (findTheUL.parentNode.id === area) {
                    var copyOfLI = li[k].cloneNode(true);
                    parentLink.push(copyOfLI);
                }
            }	

// Create all page elements 
            var boxStyle = area + "-box";
            var div1 = document.createElement("div");
            div1.className = boxStyle;
            div1.style.visibility = "hidden";
            var div2 =  document.createElement("div");
            div2.className = "innerbox";
            var div3 =  document.createElement("div");
            div3.className =  "productslinks clearing";
            var div4 =  document.createElement("div");
            div4.className = "prodleft";
            var ulLeft = document.createElement("ul"); 		
            for (var m = 0; m < parentLink.length; m = m + 2) {
                var liLeft = parentLink[m];
                ulLeft.appendChild(liLeft);
            }
            var div5 = document.createElement("div");
            div5.className = "prodright";
            var ulRight = document.createElement("ul"); 		
            for (var n = 1; n < parentLink.length; n = n + 2) {
                var liRight = parentLink[n];
                ulRight.appendChild(liRight);
            }	
// Append Elements to each other and page 
            var parent = g.id("orientation");
            div5.appendChild(ulRight);
            div4.appendChild(ulLeft);
            div3.appendChild(div4);
            div3.appendChild(div5);	
//Missed tabindex stuff
// Finish appending elements to each other and page 
            var ttIndex = document.getElementById(myAccountsPop.tabs[i]).getAttribute("tabIndex");
            var localIndex = parseInt(ttIndex, 10) + 1;
            var a = div3.getElementsByTagName("a");
            for (var j = 0; j < a.length; j++) {
                a[j].setAttribute("tabIndex", localIndex);
                localIndex++;
            }
            div2.appendChild(div3);
            div1.appendChild(div2);
            parent.appendChild(div1);
        }
		
    },


// Hide navs if user is in the top section or the body section
    hideNavOffTab: function () {	
        var parent = g.id("orientation");

// Hide popup when user moves to first link before Nav
        if (!g.id("skiplink") || !g.idTn("skiplink", "a")) {
            return false;
        }
        var topLinks = g.idTn("skiplink", "a");
        topLinks[0].onfocus = function () {
            var sectionDiv = getElementsByClassName(parent, "div", 'accounts-products-box');
            sectionDiv[0].style.visibility = "hidden";
        };

// Hide popup when user tabs off last link in last product
		var lastProduct = getElementsByClassName(parent, "div", 'accounts-products-box');
        if (!lastProduct[0]) return false;
		var links = lastProduct[0].getElementsByTagName("a");
		//var links = $('.accounts-products-box a');
		var arraryLength = (links.length) - 1;
        links[arraryLength].onblur = function () {
            lastProduct[0].style.visibility = "hidden";
        };
		
    },	

/** Listen for mouse and keyboard events  **/
    navPopListeners: function () {	
        if (!document.getElementById) {
            return false;
        }
        for (var i = 0; i < myAccountsPop.tabs.length; i++) {
            if (!g.id('accounts')) {
                return false;
            }
            var currentTab = g.id('accounts');
            g.addEvent(currentTab, 'mouseover', myAccountsPop.showHideNav, false);
            g.addEvent(currentTab, 'focus', myAccountsPop.showHideNav, false);
        }
    },


/** Display Nav popup **/
    showHideNav: function (e) {
        var parent = g.id("orientation");		

// Check no other sections are open

        for (var i = 0; i < myAccountsPop.tabs.length; i++) {	
            var sectionDiv  = getElementsByClassName(parent, "div", myAccountsPop.tabs[i] + '-products-box');
            if (sectionDiv[0].style.visibility === "visible") {
                sectionDiv[0].style.visibility = "hidden";
            }		
        }

        var links = g.getTarget(e).id;
        g.stopBubble(e);
        g.stopDefault(e);


// Get the section associated with the tab and make the section visible

        var currentSection = links + "-products-box";
        var section  = getElementsByClassName(parent, "div", currentSection);	
        if (section[0].style.visibility !== "visible") {
            section[0].style.visibility = "visible";
        }

// Close popup if mouse moves off Tab
        g.id(links).onmouseout = function () {
            section[0].style.visibility = "hidden";
        };
//Find out where the mouse is in relation to the popup nav, close if the mouse is not over the popup
        section[0].onmouseover = function () {
            this.style.visibility = "visible";
        };
        section[0].onmouseout  = function () {
            this.style.visibility = "hidden";
        };
    }	
};

/*
-----------------  8. Man in Blue Resolution Dependent Layout Script & ecmascript.stchur.com IE resize script -----------------------------------*/	
var resDepLayout = {
		
/** Check initial size and provide suitable CSS **/
    checkBrowserWidth: function () {
		var theWidth = resDepLayout.getBrowserWidth();
        if (theWidth === 0)	{
            var resolutionCookie = document.cookie.match(/(^|;)tmib_res_layout[^;]*(;|$)/);
            if (resolutionCookie !== null) {
                resDepLayout.setStylesheet(unescape(resolutionCookie[0].split("=")[1]));
            }
            g.addLoadEvent(resDepLayout.checkBrowserWidth);
            return false;
        }

        if (theWidth > 994)	{
            resDepLayout.setStylesheet("1024");
            document.cookie = "tmib_res_layout=" + escape("1024");
        } else {
            resDepLayout.setStylesheet("");
            document.cookie = "tmib_res_layout=";
        } 
        return true;
    },


    getBrowserWidth: function () {
        if (window.innerWidth)	{
            return window.innerWidth;
        } else if (document.documentElement && document.documentElement.clientWidth !== 0) { 	
            return document.documentElement.clientWidth;
        } else if (document.body) {
            return document.body.clientWidth;
        }	
        return 0;
    },

    setStylesheet: function (styleTitle) {
        var currTag;
        if (document.getElementsByTagName) {
            for (var i = 0; (currTag = document.getElementsByTagName("link")[i]); i++) {
                if (currTag.getAttribute("rel").indexOf("style") !== -1 && currTag.getAttribute("title")) {
                    currTag.disabled = true;
                    if (currTag.getAttribute("title") === styleTitle) {
                        currTag.disabled = false;
                    }
                }
            }
        }
        return true;
    },		

    xBrowserResize: function () {
        window.g_prevSize = resDepLayout.getViewportSize();
        var theSize = window.g_prevSize;
        setInterval(resDepLayout.resize, 10);
        return theSize;
    },

    resize: function () {
       /*extern g_prevSize */ /* This allows validation in JS Lint for global variables */
        var currentSize = resDepLayout.getViewportSize();		
        if (currentSize[0] !== g_prevSize[0] || currentSize[1] !== g_prevSize[1]) {
            g_prevSize = currentSize;
            var theWidth = currentSize[0];
            if (theWidth > 994) {
                resDepLayout.setStylesheet("1024");
                document.cookie = "tmib_res_layout=" + escape("1024");
            } else {
                resDepLayout.setStylesheet("");
                document.cookie = "tmib_res_layout=";
            }
        }
    },
 
    getViewportSize: function () {
        var size = [0, 0];
        if (typeof window.innerWidth !== 'undefined') {
            size = [ window.innerWidth, window.innerHeight ];
        } else if (typeof	document.documentElement !== 'undefined' && typeof document.documentElement.clientWidth !== 'undefined' && document.documentElement.clientWidth !== 0) {
            size = [ document.documentElement.clientWidth, document.documentElement.clientHeight ];
        } else {
            size = [ document.getElementsByTagName('body')[0].clientWidth, document.getElementsByTagName('body')[0].clientHeight ];
        }
        return size;				
    }
};


/*
-----------------  9. Event delegation -----------------------------------*/	

var eventDelegation = {

    bodyTest: function () {
        if (!document.getElementById || !document.createElement) {
            return;
        }
        var docBody = document.getElementById("top-border");
        if (!docBody) {
            return false; 
        }
        g.addEvent(docBody, 'click', eventDelegation.popupClickHandler, false);
        g.addEvent(docBody, 'click', eventDelegation.toggleClickHandler, false);
    },
	
/* ------------------ POPUPS ------------------------------------*/   
	
    popupClickHandler: function (e) {
        var theEvent = e || window.event;	
        var trigger = theEvent.target || theEvent.srcElement;
        var triggerParent = trigger.parentNode;
        var thisLink, uniqueLink;

// Get target href or target parent href.  This will be used to determine what page is opened
        if (trigger.nodeName.toLowerCase() === "a") {
            thisLink = trigger.href;
            uniqueLink = trigger;
        } else if (triggerParent.nodeName.toLowerCase() === "a") {
            thisLink = triggerParent.href;
            uniqueLink = triggerParent;
        } else {
            return;
        }		

// Site intelligence link info.  Pass up the link text, link area within the site and link URL
        var fullURL = thisLink.indexOf(thisLink);
        if (!uniqueLink) {
            return false;
        }
        var siteArea = g.getParentWithIdAttribute(uniqueLink);
        var linkText = uniqueLink.firstChild.nodeValue;
        var siteIntelOverlay = "Linktext:" + linkText + "~Area:" + siteArea.id + "~URL:" + thisLink;
		//alert(siteIntelOverlay)
						
//Standard Popups
        if ((trigger.className && (" " + trigger.className + " ").indexOf(" popup ") !== -1) || (triggerParent.className && (" " + triggerParent.className + " ").indexOf(" popup ") !== -1)) {			
            window.open(thisLink); 
            g.stopDefault(e);
            return false;
        }
			
//Metafaq Popups
        if ((trigger.className && (" " + trigger.className + " ").indexOf(" metafaq ") !== -1) || (triggerParent.className && (" " + triggerParent.className + " ").indexOf(" metafaq ") !== -1)) {
            window.open(thisLink, 'mypop', "height=650, width=780, status, resizable, scrollbars, toolbar"); 
            g.stopDefault(e);
            return false;
        }    

//Demo Popups
        if ((trigger.className && (" " + trigger.className + " ").indexOf(" demowindow ") !== -1) || (triggerParent.className && (" " + triggerParent.className + " ").indexOf(" demowindow ") !== -1)) {
            window.open(thisLink, 'mypop', "height=500, width=660, status, resizable, scrollbars, toolbar"); 
            g.stopDefault(e);
            return false;
        }    

//Segala Popup
        if ((trigger.className && (" " + trigger.className + " ").indexOf(" segala ") !== -1) || (triggerParent.className && (" " + triggerParent.className + " ").indexOf(" segala ") !== -1)) {
            window.open(thisLink, 'mypop', "height=780, width=500, status, resizable, scrollbars, toolbar"); 
            g.stopDefault(e);
            return false;
        }			
    },

/* ------------------ TOGGLES ------------------------------------*/

    toggleClickHandler: function (e) {
        var theEvent = e || window.event;	
        var trigger = theEvent.target || theEvent.srcElement;
        //g.stopDefault(trigger);
		var triggerParent = trigger.parentNode;

        if ((trigger.className && (" " + trigger.className + " ").indexOf(" togglelink ") !== -1) || (triggerParent.className && (" " + triggerParent.className + " ").indexOf(" togglelink ") !== -1)) {			
            g.stopDefault(trigger);
			var startPos = trigger.className.indexOf("box");
            var restOfString = trigger.className.substr(startPos + 3);
            var boxNumber = parseInt(restOfString, 10);
            var toggleSection = g.id("box" + boxNumber);
// Switch class depending on current toggle state
            if (toggleSection.className && (" " + toggleSection.className + " ").indexOf(" showtoggle ") !== -1) {
                g.addClass(toggleSection, "hidetoggle");
                g.removeClass(toggleSection, "showtoggle");
                g.removeClass(trigger, "up");
            } else if (toggleSection.className && (" " + toggleSection.className + " ").indexOf(" hidetoggle ") !== -1) {
                g.removeClass(toggleSection, "hidetoggle");
                g.addClass(toggleSection, "showtoggle");
                g.addClass(trigger, "up");
            } else {
                return;
            }

        }
    }
};
// end event delegation


var keepOpenToggledSection = {
    toggledSection: function () {
        if (!g.id || !g.id("current-elh")) {
            return false;
        }

var toggleSection = g.idTn("nav-secondary", "dd");
        for (var i = 0; i < toggleSection.length; i++) {
            if ((toggleSection[i].className && (" " + toggleSection[i].className + " ").indexOf(" togglebox hidetoggle ") !== -1) && (toggleSection[i].className && (" " + toggleSection[i].className + " ").indexOf(" hidetoggle ") !== -1)) {
                var toggleId = toggleSection[i].getAttribute("id");
                var currentSection = g.id(toggleId);
                var links = g.idTn(toggleId, "a");
                for (var k = 0; k < links.length; k++) {
                    var currentlyClosed = g.id(toggleId);
                    g.removeClass(currentSection, "hidetoggle");
                    g.addClass(currentSection, "showtoggle");
                }	
            }
        }    

        var toggleTitle = g.idTn("nav-secondary", "a");
        for (var j = 0; j < toggleTitle.length; j++) {
            if ((toggleTitle[j].className && (" " + toggleTitle[j].className + " ").indexOf(" togglelink ") !== -1) && (toggleTitle[j].className && (" " + toggleTitle[j].className + " ").indexOf(" up ") === -1)) {
                toggleTitle[j].className = toggleTitle[j].className + " up";
            }
        }
    }
};

var inputButtons = {		
    inputStyle: function () {
        if (!g.id || !g.id("acc-pol")) {
            return false;
        }
        var inputElements = g.idTn("acc-pol", "input");
        inputElements[0].onmouseover = function () {
            this.style.color = "#cc0000";
            this.style.textDecoration = "underline";
        };

        inputElements[0].onmouseout = function () {
            this.style.color = "#0e6fcd";
            this.style.textDecoration = "none";
        };
    }
};		

// DTSL - Dynamic text submission links written by Chris Heilmann (http://www.icant.co.uk)
// scans a document for submit buttons and replaces them with text links with the same ID and text value and a predefined class 

var dtsl = {
    buttonClass: 'round popup',
    init: function () {
        var i, newa, inputs;
        if (!document.getElementById || !document.createTextNode) {
            return;
        }
        inputs = document.getElementsByTagName('input');
        for (i = 0; i < inputs.length; i ++) {
            if (inputs[i].parentNode.className && (" " + inputs[i].parentNode.className + " ").indexOf(" button-container-form ") !== -1) {
                if (inputs[i].getAttribute('type') !== 'submit') {
                    continue;
                }
                newa = document.createElement('a');
                newa.setAttribute('href', '#');
                newa.setAttribute('id', inputs[i].getAttribute('id'));
                newa.appendChild(document.createTextNode(inputs[i].getAttribute('value')));
                newa.className = dtsl.buttonClass;
                newa.f = inputs[i].form;
                g.addEvent(newa, 'click', dtsl.sendForm, false);
                newa.onclick = function () {
                    return false;
                }; // Safari
                inputs[i].parentNode.insertBefore(newa, inputs[i]);
                inputs[i].parentNode.removeChild(inputs[i]);
                if (i < inputs.length) {
                    i--;
                }
            }
        }
    },
// you may have to alter sendForm when there is more than one form 
// in the document
    sendForm: function (e) {
        g.cancelClick(e);
        var t = g.getTarget(e);
        var f = t.f;
        var newel = document.createElement('input');
        newel.name = t.id;
        newel.value = t.innerHTML;
        f.appendChild(newel);
        f.submit();
    }
};


/*
-----------------  10. Customer Account Opening -----------------------------------*/	

var cao = {

    // Create HTML forms to replace the Links currently on the CAO pages.
    createForms: function () {

        // Identify that this is a CAO page before carrying out any functionality
        if (!document.getElementById || !document.createElement || !document.getElementById("cao")) {
            return false;
        }


	    // Loop through DIV's on page to check for matches of the 3 product list
        var divSwap = document.getElementsByTagName("div");
        for (var i = 0; i < divSwap.length; i++) {		

        //BONUS CARD FORM
            if (divSwap[i].getAttribute("id") === "cao-selection-bonus") {
                var bonusList = document.getElementById("cao-selection-bonus");
                var bonusFormContent =  '<form target="_blank" action="" name="" method="post" id="bonusCardCaoForm"><div class="formarea"><div class="row radiocheck"><h3 class="labeltxt">Please select your Tesco Bonus Credit Card design</h3><div class="inner clearing"><label class="clearing"><span class="inputwrapper"><input type="radio" name="carddesign" value="design1" checked="checked" /><span><img src="../images/cao/bonus-shimmer.gif" alt="Bonus Credit Card - Shimmer design" width="97" height="63" /></span> </span> </label><label class="clearing"><span  class="inputwrapper"><input type="radio" name="carddesign" value="design2" /><span><img src="../images/cao/bonus-swirl.gif" alt="Bonus Credit Card - Swirl design" width="97" height="63" /></span></span></label></div></div><div class="row radiocheck"><h3 class="labeltxt">Please select your card type</h3><div class="inner clearing"><label class="clearing"><span class="inputwrapper"><input type="radio" name="cardtype" value="mastercard" checked="checked" /><span>Mastercard</span></span></label><label class="clearing"><span class="inputwrapper"><input type="radio" name="cardtype" value="visa" /><span>Visa</span></span> </label></div></div></div><p>Please press &#39;<strong>Next</strong>&#39; to continue your application.</p><div class="buttonarea clearing"><input type="submit" value="Next" id="next" class="button fright" /></div></form>';
                bonusList.innerHTML = bonusFormContent;
            }

        //CLUBCARD FORM
            if (divSwap[i].getAttribute("id") === "cao-selection-club") {
                var clubList = document.getElementById("cao-selection-club");
                var clubFormContent = '<form action="" target="_blank" name="" method="post" id="clubCardbuttonSelection"><div class="formarea"><div class="row radiocheck"><h3 class="labeltxt">Please select your Tesco Clubcard Credit Card design</h3><div class="inner clearing"><label class="clearing"><span class="inputwrapper"><input type="radio" name="carddesign" value="design1" checked="checked" /><span><img src="../images/cao/clubcard-strawberry.gif" alt="Clubcard Credit Card - Strawberry design" width="97" height="63" /></span> </span> </label><label class="clearing"><span  class="inputwrapper"><input type="radio" name="carddesign" value="design2" /><span><img src="../images/cao/clubcard-blue.gif" alt="Clubcard Credit Card - Blue radial design" width="97" height="63" /></span></span> </label></div></div></div><p>Please press &#39;<strong>Next</strong>&#39; to continue your application.</p><div class="buttonarea clearing"><input type="submit" value="Next" id="next" class="button fright" /></div></form>';
                clubList.innerHTML = clubFormContent;
            }

        //SAVINGS FORM
            if (divSwap[i].getAttribute("id") === "cao-selection-savings") {
            // Swap intro text to indicate that each field must be selected
                var introSwap = document.getElementById("cao-intro");
                introSwap.innerHTML = "Please complete the details below. Required fields are indicated with a *.";
                var saveList = document.getElementById("cao-selection-savings");
                var saveFormContent = '<form action="" target="_blank" name="" method="post" id="savingsCaoForm"><div class="formarea"><div class="row radiocheck"><h3 class="labeltxt">All Applicants *</h3><div class="inner clearing"><label class="clearing"><span class="inputwrapper"><input type="radio" name="personalcustomer" value="yes" checked="checked" /><span id="span1">I am an existing personal customer</span> </span> </label><label class="clearing"><span  class="inputwrapper"><input type="radio" name="personalcustomer" value="no" /><span id="span2">I am not an existing personal customer</span></span> </label></div></div><div class="row radiocheck"><h3 class="labeltxt">Existing Customers Only *</h3><p><strong>Please note</strong>: If you are an existing RBS Digital Banking customer we can simplify your application by prefilling information.</p><div class="inner clearing"><label class="clearing"><span class="inputwrapper"><input type="radio" name="carddesign" value="design1" checked="checked" /><span>I am currently enrolled for online banking</span></span></label><label class="clearing"><span  class="inputwrapper"><input type="radio" name="carddesign" value="design2" /><span>I am not currently enrolled for online banking</span></span></label></div></div></div><p>Please press &#39;<strong>Next</strong>&#39; to continue your application.</p><div class="buttonarea clearing"><input type="submit" value="Next" id="next" class="button fright" /></div></form>';
                saveList.innerHTML = saveFormContent;
            }
			
        //SAVINGS INTEREST CHOICE FORM
            if (divSwap[i].getAttribute("id") === "cao-selection-savings-interest") {
            // Swap intro text to indicate that each field must be selected
                var introSwap = document.getElementById("cao-intro");
                introSwap.innerHTML = "Please complete the details below. Required fields are indicated with a *.";
                var saveList = document.getElementById("cao-selection-savings-interest");
                var saveFormContent = '<form action="" target="_blank" name="" method="post" id="savingsSelectionCaoForm"><div class="formarea"><div class="row radiocheck"><h3 class="labeltxt">Before applying, please indicate whether you wish to receive your interest annually or monthly? *</h3><div class="inner clearing"><label class="clearing"><span class="inputwrapper"><input type="radio" name="interestchoice" value="annualinterest" checked="checked" /><span id="span1">Annual interest</span> </span> </label><label class="clearing"><span  class="inputwrapper"><input type="radio" name="interestchoice" value="monthlyinterest" /><span id="span2">Monthly interest</span></span> </label></div></div><div class="buttonarea clearing"><input type="submit" value="Apply now (new window)" id="next" class="button fright" /></div></form>';
                saveList.innerHTML = saveFormContent;
            }			
			
        }
    },


    // Set up event delegation for CAO screens    
    bodyTest: function () {
        if (!document.getElementById || !document.createElement || !document.getElementById("cao")) {
            return false;
        }	
        var docBody = document.getElementById("cao");
        g.addEvent(docBody, 'click', cao.savingsButtonSelection, false);
        //g.addEvent(docBody, 'click', cao.bonusCardbuttonSelection, false);
        //g.addEvent(docBody, 'click', cao.clubCardbuttonSelection, false);
		g.addEvent(docBody, 'click', cao.savingsInterestChoiceSelection, false);
    },	

    // SAVINGS FORM CHOICES
    savingsButtonSelection: function (e) {
        
        if (!document.getElementById("savingsCaoForm")) {
            return;
        }
				
        var theEvent = e || window.event;	
        var trigger = theEvent.target || theEvent.srcElement;
        if (trigger.id === "next") {
            var caoForm = document.getElementById("savingsCaoForm");
            var existingCustomer = caoForm.personalcustomer;

            // Loop through the first choice of radio buttons
            for (var i = 0; i < existingCustomer.length; i++) {

            // If an existing customer then check secondary set of radio buttons
                if (existingCustomer[i].checked === true && existingCustomer[i].value === "yes") {
                    //var cardDesign = document.forms["savingsCaoForm"]["carddesign"];
                    var cardDesign = document.getElementById("savingsCaoForm").carddesign;

					// Card choice will determie the URL
                    for (var k = 0; k < cardDesign.length; k++) {
                        if (cardDesign[k].checked === true && cardDesign[k].value === "design1") {
                            caoForm.action = "savings_2.html";
                        } 					
                        if (cardDesign[k].checked === true && cardDesign[k].value === "design2") {
                            caoForm.action = "https://www.cao.rbos.com/cao/external/rbs/launchChannelHandler.do?CID=INT&BRD=RBS&PF=DEP&PI=11&CS=C";
                        }
                    }
                }

            // If not a customer then no need to check secondary set of buttons
                if (existingCustomer[i].checked === true && existingCustomer[i].value === "no") {
                    caoForm.action = "https://www.cao.rbos.com/cao/external/rbs/launchChannelHandler.do?CID=INT&BRD=RBS&PF=DEP&PI=11&CS=N";
                }
            }
        }
    },

    // BONUS CARD FORM CHOICES
    bonusCardbuttonSelection: function (e) {
		
		
        var thisCardDesign;
        var thisCardType;
		
        if (!document.getElementById("bonusCardCaoForm")) {
            return;
        }	

        var theEvent = e || window.event;	
        var trigger = theEvent.target || theEvent.srcElement;
        if (trigger.id === "next") {
            var caoForm = document.getElementById("bonusCardCaoForm");
            var cardDesign = document.getElementById("bonusCardCaoForm").carddesign;
            var cardType = document.getElementById("bonusCardCaoForm").cardtype;

            // Loop through the first choice of radio buttons
            for (var i = 0; i < cardDesign.length; i++) {
                if (cardDesign[i].checked === true) {
                    thisCardDesign = cardDesign[i].value; 
                }
            }

            // Loop through the second choice of radio buttons
            for (var k = 0; k < cardType.length; k++) {
                if (cardType[k].checked === true) {
                    thisCardType = cardType[k].value; 
                }
            }

        // Assign both selected radio button values to a variable, which can be used to match the in the switch statement.
            var cardSelection = thisCardDesign + ", " + thisCardType;
            switch (cardSelection) {
            case "design1, mastercard":
                caoForm.setAttribute("action", "https://www.cao.tescofinance.com/cao/external/tpf/launchChannelHandler.do?CID=INT&BRD=TPF&PF=CC1&PI=Y3&CS=N%20");
                break;   
            case  "design1, visa":
                caoForm.setAttribute("action", "https://www.cao.tescofinance.com/cao/external/tpf/launchChannelHandler.do?CID=INT&BRD=TPF&PF=CC1&PI=Y6&CS=N%20");
                break;
            case  "design2, mastercard":
                caoForm.setAttribute("action", "https://www.cao.tescofinance.com/cao/external/tpf/launchChannelHandler.do?CID=INT&BRD=TPF&PF=CC1&PI=Y4&CS=N%20");
                break;
            default:
                caoForm.setAttribute("action", "https://www.cao.tescofinance.com/cao/external/tpf/launchChannelHandler.do?CID=INT&BRD=TPF&PF=CC1&PI=Y5&CS=N%20");
            }
        }
    },

    // CLBCARD CARD FORM CHOICES
    clubCardbuttonSelection: function (e) {
        if (!document.getElementById("clubCardbuttonSelection")) {
            return;
        }
        var theEvent = e || window.event;	
        var trigger = theEvent.target || theEvent.srcElement;
        if (trigger.id === "next") {
            var caoForm = document.getElementById("clubCardbuttonSelection");
            var cardDesign = document.getElementById("clubCardbuttonSelection").carddesign;
            for (var i = 0; i < cardDesign.length; i++) {
                if (cardDesign[i].checked === true && cardDesign[i].value === "design1") {
					caoForm.setAttribute("action", "https://www.cao.tescofinance.com/cao/external/tpf/launchChannelHandler.do?CID=INT&BRD=TPF&PF=CC1&PI=Y1&CS=N%20");
                } 					
                if (cardDesign[i].checked === true && cardDesign[i].value === "design2") {
					caoForm.setAttribute("action", "https://www.cao.tescofinance.com/cao/external/tpf/launchChannelHandler.do?CID=INT&BRD=TPF&PF=CC1&PI=Y2&CS=N%20");
                } 					
            }
        }
    },
	
    // SAVINGS INTEREST FORM CHOICES
    savingsInterestChoiceSelection: function (e) {
        if (!document.getElementById("savingsSelectionCaoForm")) {
            return;
        }
        var theEvent = e || window.event;	
        var trigger = theEvent.target || theEvent.srcElement;
        if (trigger.id === "next") {
            var caoForm = document.getElementById("savingsSelectionCaoForm");
            var cardDesign = document.getElementById("savingsSelectionCaoForm").interestchoice;
            for (var i = 0; i < cardDesign.length; i++) {
                if (cardDesign[i].checked === true && cardDesign[i].value === "annualinterest") {
					//alert("hi 1");
					caoForm.setAttribute("action", "https://www.cao.tescofinance.com/cao/external/tpf/launchChannelHandler.do?CID=INT&BRD=TPF&PF=DEP&PI=K5&CS=N%20");
                } 					
                if (cardDesign[i].checked === true && cardDesign[i].value === "monthlyinterest") {
                    //alert("hi 2");
					caoForm.setAttribute("action", "https://www.cao.tescofinance.com/cao/external/tpf/launchChannelHandler.do?CID=INT&BRD=TPF&PF=DEP&PI=K6&CS=N%20");
                } 					
            }
        }
    }
	

};

/*
----------------- 11. Load events on page load -----------------------------*/


if (is_mac && is_ie) {
    //g.addEvent(window, 'load', inputButtons.inputStyle, false);
    //g.addEvent(window, 'load', eventDelegation.bodyTest, false);
} else {
	g.addEvent(window, 'load', nav.navPopListeners, false);
    g.addEvent(window, 'load', resDepLayout.xBrowserResize, false);
    g.addEvent(window, 'load', myAccountsPop.navPopListeners, false);
    g.addEvent(window, 'load', eventDelegation.bodyTest, false);
    g.addEvent(window, 'load', cao.bodyTest, false);
	
}
