
// Flash

function opeFlash()
{
    document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="980" height="388">\n');
    document.write('<param name="allowScriptAccess" value="sameDomain" />\n');
    document.write('<param name="movie" value="flash/home-header.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="wmode" value="transparent"><embed src="flash/home-header.swf" quality="high" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="980" height="388"></embed>\n');
    document.write('</object>\n');
}


function opeFlash2()
{
    document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="980" height="96">\n');
    document.write('<param name="allowScriptAccess" value="sameDomain" />\n');
    document.write('<param name="movie" value="flash/home-quotes.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="wmode" value="transparent"><embed src="flash/home-quotes.swf" quality="high" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="980" height="96"></embed>\n');
    document.write('</object>\n');
}

function opeFlash3()
{
    document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="980" height="388">\n');
    document.write('<param name="allowScriptAccess" value="sameDomain" />\n');
    document.write('<param name="movie" value="flash/home-header2.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="wmode" value="transparent"><embed src="flash/home-header2.swf" quality="high" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="980" height="388"></embed>\n');
    document.write('</object>\n');
}


// Popup window code
function newPopup(url) {
	popupWindow = window.open(
		url,'popUpWindow','height=730,width=1005,left=10,top=10,bottom=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=no')
}




// START Partner directory filter
function FilterRegion(region,str) {
 var re  = '';
 var r = null;

 switch(region) {
	case 'Global': re = "Global";
			break;
	case 'APAC'  : re = "(Australia|Brunei|Cambodia|China|Taiwan|Fiji|Guam|Indonesia|Japan|Kiribati|Korea|Laos|Malaysia|Marshall Islands|Micronesia|Nauru|New Zealand|Northern Marianas|Palau|Papua New Guinea|Philippines|Samoa|Singapore|Solomon Islands|Thailand|Timor-Leste|Tonga|Tuvalu|Vanuatu|Vietnam|Myanmar|India|Mongolia)";
			break;
	case 'EMEA'         : re = "(Russia|Belarus|Bulgaria|Czech Republic|Hungary|Moldovab|Poland|Romania|Slovakia|Ukraine|Åland|Denmark|Estonia|Faroe Islands|Finland|Guernsey|Iceland|Ireland|Isle of Man|Jersey|Latvia|Lithuania|Norway|Sweden|United Kingdom|UK|Albania|Andorra|Bosnia and Herzegovina|Croatia|Gibraltar|Greece|Italy|Macedonia|Malta|Montenegro|Portugal|San Marino|Serbia|Slovenia|Spain|Vatican|Austria|Belgium|France|Germany|Liechtenstein|Luxembourg|Monaco|Netherlands|Switzerland|Armenia|Azerbaijan|Cyprus|Kazakhstan|Turkey|Iran|Iraq|Kuwait|Bahrain|Oman|Qatar|Saudi Arabia|United Arab Emirates|UAE|Yemen|Israel|Jordan|Lebanon|Syria|Algeria|Egypt|Lybia|Tunisia|Morocco|Palestine|Burundi|Comoros|Djibouti|Eritrea|Ethiopia|Kenya|Madagascar|Malawi|Mauritius|Mayotte|Mozambique|Réunion|Rwanda|Seychelles|Somalia|Tanzania|Uganda|Zambia|Zimbabwe|Angola|Cameroon|Central African Republic|Chad|Congo|Democratic Republic of the Congo|Equatorial Guinea|Gabon|São Tomé and Príncipe|Sudan|Western Sahara|Canary Islands|Ceuta|Madeira Islands|Melilla|Botswana|Lesotho|Namibia|South Africa|North Africa|Swaziland|Benin|Burkina Faso|Cape Verde|Côte d'Ivoire|Gambia|Guinea|Liberia|Mali|Mauritania|Niger|Nigeria|Saint Helena|Senegal|Sierra Leone|Togo|EMEA|Middle East|Benelux)";
			break;
	case 'North America':	re = "(US|Canada)";
			break;
	case 'Latin America':	re = "(Argentina|Bolivia|Brazil|Chile|Colombia|Costa Rica|Cuba|Dominican Republic|Ecuador|El Salvador|Guatemala|Honduras|Mexico|Nicaragua|Panama|Paraguay|Peru|Puerto Rico|Uruguay|Venezuela|French Guiana|Guadeloupe|Martinique|Saint-Barthélemy|Saint Martin|Saint Pierre and Miquelon|Aruba|Netherlands Antilles)";
			break;
 
 }


 r = new RegExp(re);

 return r.test(str);
 
}
// END Partner directory filter









// START partner directory sorting table script

/**
 * Copyright (c)2005-2007 Matt Kruse (javascripttoolbox.com)
 * 
 * Dual licensed under the MIT and GPL licenses. 
 * This basically means you can use this code however you want for
 * free, but don't claim to have written it yourself!
 * Donations always accepted: http://www.JavascriptToolbox.com/donate/
 * 
 * Please do not link to the .js files on javascripttoolbox.com from
 * your site. Copy the files locally to your server instead.
 * 
 */
eval(function(p,a,c,k,e,d){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--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[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}('6 1C=(9(){6 q={};q.23=9(a,b){h(a==b)?0:(a<b)?-1:1};q[\'2M\']=q.23;q.2S=9(33){h 9(w){5(X(w)=="3B"){w=4n(w.1R(/^[^\\d\\.]*([\\d., ]+).*/g,"$1").1R(1e 17("[^\\\\\\d"+33+"]","g"),\'\').1R(/,/,\'.\'))||0}h w||0}};q.1n=9(a,b){h q.1n.O(a)-q.1n.O(b)};q.1n.O=q.2S(".");q.1I=9(a,b){h q.1I.O(a)-q.1I.O(b)};q.1I.O=q.2S(",");q.1T=9(a,b){h q.23(q.1T.O(a),q.1T.O(b))};q.1T.O=9(w){5(w==C){h""}h(""+w).4k()};q.4f=q.1n;q.4e=q.1I;q.16=9(a,b){h q.1n(q.16.O(a),q.16.O(b))};q.16.2P=9(19){19=+19;5(19<4G){19+=4u}M 5(19<4w){19+=4x}h 19};q.16.2Y=[{1S:/(\\d{2,4})-(\\d{1,2})-(\\d{1,2})/,f:9(x){h(1e 2I(q.16.2P(x[1]),+x[2],+x[3])).2K()}},{1S:/(\\d{1,2})[\\/-](\\d{1,2})[\\/-](\\d{2,4})/,f:9(x){h(1e 2I(q.16.2P(x[3]),+x[1],+x[2])).2K()}},{1S:/(.*\\d{4}.*\\d+:\\d+\\d+.*)/,f:9(x){6 d=1e 2I(x[1]);5(d){h d.2K()}}}];q.16.O=9(w){6 m,v,f=q.16.2Y;F(6 i=0,L=f.y;i<L;i++){5(m=w.1Q(f[i].1S)){v=f[i].f(m);5(X(v)!="2H"){h v}}}h 43};h q})();6 1K=(9(){9 G(o){h(X o!="2H")};9 14(o,1a){h 1e 17("(^|\\\\s)"+1a+"(\\\\s|$)").41(o.10)};9 1l(o,1a){6 c=o.10||"";5(G(c)&&!14(o,1a)){o.10+=(c?" ":"")+1a}};9 1k(o,1a){6 c=o.10||"";o.10=c.1R(1e 17("(^|\\\\s)"+1a+"(\\\\s|$)"),"$1")};9 Y(o,34){6 c=o.10;5(c.1Q(1e 17("(^|\\\\s)"+34+"([^ ]+)"))){h 17.$2}h C};9 1A(o){5(1c.3g){6 3f=1c.3g;h(1A=9(o){h\'24\'==3f(o,C).3Y(\'1B\')})(o)}M 5(1c.3i){h(1A=9(o){h\'24\'==o.3i[\'1B\']})(o)}h(1A=9(o){h\'24\'==o.2N[\'1B\']})(o)};9 1M(o,a,b){5(o!=C&&o.W){5(o.W==a||(b&&o.W==b)){h o}1q(o=o.1Z){5(o.W&&(o.W==a||(b&&o.W==b))){h o}}}h C};9 3a(2J,3k){F(6 i=2;i<3j.y;i++){6 a=3j[i];5(G(2J[a])){3k[a]=2J[a]}}}6 7={3x:"7-45",3y:"7-12:",3J:"7-29",3z:"7-29:",3A:"3X 4a q",2v:"7-37-4b",2x:"7-37-1d",2e:"7-36",3E:"7-36:",2X:"7-46",2D:"7-2y",3q:"7-38",2w:"7-47",3l:"7-38-3c:",3d:"7-3c:",2W:"3R: 3P",3v:"7-2L:",3u:"7-B:",3H:"7-B-3Q:",3t:"7-B-2i:"};7.S={};7.3b=1;7.T=9(o,p){5(o!=C&&o.W&&o.W!="2d"){o=1M(o,"2d")}5(o==C){h C}5(!o.I){6 I=C;1y{6 I="3S"+(7.3b++)}1q(1j.1J(I)!=C);o.I=I}n.S[o.I]=n.S[o.I]||{};5(p){3a(p,n.S[o.I],"12","3I","1U","R","D","1d","B","P")}h o};7.1s=9(t,E,1o,1H){t=n.T(t);5(t==C){h}5(E!="3p"){n.2C(t.3V,1o,1H)}5(E!="1g"){n.2C(t.3U,1o,1H)}};7.2C=9(1v,1o,1H){5(1v!=C){5(1v.J&&1v.J.y&&1v.J.y>0){6 J=1v.J;F(6 j=0,1r=J.y;j<1r;j++){6 V=J[j];5(V.A&&V.A.y&&V.A.y>0){6 A=V.A;F(6 k=0,39=A.y;k<39;k++){6 35=A[k];1o.4i(n,35,1H)}}}}}};7.1h=9(Z){6 2j=Z.1Z;6 A=2j.A;5(A&&A.y){5(A.y>1&&A[A.y-1].1D>0){(n.1h=9(Z){h Z.1D})(Z)}F(6 i=0,L=A.y;i<L;i++){5(2j.A[i]==Z){h i}}}h 0};7.1E={\'3K\':9(H){5(G(H.1w)&&H.E&&((H.E!="4v"&&H.E!="4y")||H.4z)){h H.1w}h""},\'3O\':9(H){5(H.22>=0&&H.2t){h H.2t[H.22].3L}h""},\'4d\':9(H){h H.1a||""}};7.1z=9(Z,3e){5(3e&&G(Z.1W)){h Z.1W}5(!Z.1G){h""}6 1G=Z.1G;6 1u="";F(6 i=0,L=1G.y;i<L;i++){6 H=1G[i];6 E=H.4A;5(E==1){6 2o=H.W;5(n.1E[2o]){1u+=n.1E[2o](H)}M{1u+=n.1z(H)}}M 5(E==3){5(G(H.1W)){1u+=H.1W}M 5(G(H.1E)){1u+=H.1E}}}h 1u};7.1m={};7.2g=9(1t){5(!G(1t.1D)){h C}6 1p=1M(1t,"2d");6 2E=1t.1Z.15+"-"+n.1h(1t);5(G(n.1m[1p.I])){h n.1m[1p.I][2E]}6 1i=[];n.1m[1p.I]={};6 3h=1M(1t,"1g");6 2G=3h.31(\'4r\');F(6 i=0;i<2G.y;i++){6 A=2G[i].A;F(6 j=0;j<A.y;j++){6 c=A[j];6 15=c.1Z.15;6 3m=15+"-"+n.1h(c);6 2A=c.2A||1;6 2F=c.2F||1;6 1L;5(!G(1i[15])){1i[15]=[]}6 m=1i[15];F(6 k=0;k<m.y+1;k++){5(!G(m[k])){1L=k;4h}}n.1m[1p.I][3m]=1L;F(6 k=15;k<15+2A;k++){5(!G(1i[k])){1i[k]=[]}6 2Z=1i[k];F(6 l=1L;l<1L+2F;l++){2Z[l]="x"}}}}h n.1m[1p.I][2E]};7.q=9(o,p){6 t,8,21=C;5(X(p)=="9"){p={R:p}}p=p||{};5(!G(p.D)){p.D=n.2g(o)||0}p.R=p.R||1C[\'2M\'];t=n.T(o,p);8=n.S[t.I];5(G(8.2z)&&8.2z==8.D&&G(8.2s)){8.1d=!8.2s}M{8.1d=!!p.1d}8.2z=8.D;8.2s=!!8.1d;6 R=8.R;5(X(R.O)=="9"){21=8.R.O;R=1C.23}n.1s(t,"1g",9(N){5(14(N,n.2e)){1k(N,n.2v);1k(N,n.2x);5(8.D==7.2g(N)&&(Y(N,7.2e))){1l(N,8.1d?n.2v:n.2x)}}});6 K=t.1O;5(K==C||K.y==0){h}6 3C=(8.1d)?9(a,b){h R(b[0],a[0])}:9(a,b){h R(a[0],b[0])};6 1U=!!8.1U;6 D=8.D;F(6 i=0,L=K.y;i<L;i++){6 18=K[i],1f=18.J,J=[];5(!14(18,7.2X)){6 Q,U=0;5(Q=1f[U]){1y{5(2l=Q.A){6 1Y=(D<2l.y)?n.1z(2l[D],1U):C;5(21)1Y=21(1Y);J[U]=[1Y,1f[U]]}}1q(Q=1f[++U])}J.q(3C);U=0;6 20=0;6 f=[1k,1l];5(Q=J[U]){1y{18.4o(Q[1])}1q(Q=J[++U])}}}5(8.P){n.B(t)}M{5(8.12){n.2a(t,8.12,!!8.3I)}}};7.u=9(o,z,p){6 N;p=p||{};6 t=n.T(o,p);6 8=n.S[t.I];5(!z){8.z=C}M{5(z.W=="3O"&&z.E=="2h-4p"&&z.22>-1){z={\'u\':z.2t[z.22].1w}}5(z.W=="3K"&&z.E=="3L"){z={\'u\':"/^"+z.1w+"/"}}5(X(z)=="4l"&&!z.y){z=[z]}F(6 i=0,L=z.y;i<L;i++){6 u=z[i];5(X(u.u)=="3B"){5(u.u.1Q(/^\\/(.*)\\/$/)){u.u=1e 17(17.$1);u.u.3s=1N}M 5(u.u.1Q(/^9\\s*\\(([^\\)]*)\\)\\s*\\{(.*)}\\s*$/)){u.u=2k(17.$1,17.$2)}}5(u&&!G(u.D)&&(N=1M(o,"4g","4s"))){u.D=n.1h(N)}5((!u||!u.u)&&8.z){4t 8.z[u.D]}M{8.z=8.z||{};8.z[u.D]=u.u}}F(6 j 2T 8.z){6 3w=1N}5(!3w){8.z=C}}h 7.2q(o)};7.B=9(t,B,p){p=p||{};5(G(B)){p.B=B}h 7.2q(t,p)};7.2f=9(t,2i,p){t=n.T(t,p);h n.B(t,(7.S[t.I].B||0)+2i,p)};7.4C=9(t,p){h n.2f(t,1,p)};7.4E=9(t,p){h n.2f(t,-1,p)};7.2q=9(o,p){6 D,N,4F,4D=2O,u;6 B,P,1b,2m;6 1X=[],11=0,1P=0;6 t,8,V,13;p=p||{};t=n.T(o,p);8=n.S[t.I];6 B=8.B;5(G(B)){5(B<0){8.B=B=0}P=8.P||25;1b=B*P+1;2m=1b+P-1}6 K=t.1O;5(K==C||K.y==0){h}F(6 i=0,L=K.y;i<L;i++){6 18=K[i];F(6 j=0,1r=18.J.y;j<1r;j++){V=18.J[j];13=2O;5(8.z&&V.A){6 A=V.A;6 3r=A.y;F(D 2T 8.z){5(!13){u=8.z[D];5(u&&D<3r){6 w=n.1z(A[D]);5(u.3s&&w.3M){13=(w.3M(u)<0)}M 5(X(u)=="9"){13=!u(w,A[D])}M{13=(w!=u)}}}}}1P++;5(!13){11++;5(G(B)){1X.3F(V);5(11<1b||11>2m){13=1N}}}V.2N.1B=13?"24":""}}5(G(B)){5(1b>=11){1b=11-(11%P);8.B=B=1b/P;F(6 i=1b,L=1X.y;i<L;i++){1X[i].2N.1B=""}}}n.1s(t,"1g",9(c){((8.z&&G(8.z[7.1h(c)])&&14(c,7.2w))?1l:1k)(c,7.3q)});5(8.12){n.2a(t)}6 1V=4c.48(11/P)+1;5(G(B)){5(8.2B){8.2B.1F=B+1}5(8.2r){8.2r.1F=1V}}5(8.2p){8.2p.1F=11}5(8.2n){8.2n.1F=1P}h{\'49\':8,\'44\':11,\'3Z\':1P,\'1V\':1V,\'B\':B,\'P\':P}};7.2a=9(t,10,p){p=p||{};p.12=10;t=n.T(t,p);6 8=n.S[t.I];6 K=t.1O;5(K==C||K.y==0){h}10=8.12;6 f=[1k,1l];F(6 i=0,L=K.y;i<L;i++){6 18=K[i],1f=18.J,U=0,Q,20=0;5(Q=1f[U]){5(8.40){1y{f[20++%2](Q,10)}1q(Q=1f[++U])}M{1y{5(!1A(Q)){f[20++%2](Q,10)}}1q(Q=1f[++U])}}}};7.3G=9(t,D){6 2R={},K=n.T(t).1O;F(6 i=0,L=K.y;i<L;i++){6 2U=K[i];F(6 r=0,1r=2U.J.y;r<1r;r++){2R[n.1z(2U.J[r].A[D])]=1N}}6 2Q=[];F(6 w 2T 2R){2Q.3F(w)}h 2Q.q()};7.27=9(p){6 A=[],26=1j.31("2d");6 w,8;5(26!=C){F(6 i=0,L=26.y;i<L;i++){6 t=7.T(26[i]);8=7.S[t.I];5(w=Y(t,7.3y)){8.12=w}5(14(t,7.2D)){7.2y(t)}5(w=Y(t,7.3v)){7.2L(t,{\'P\':+w})}5((w=Y(t,7.3z))||(14(t,7.3J))){7.29(t,{\'D\':(w==C)?C:+w})}5(8.12&&14(t,7.3x)){7.2a(t)}}}};7.29=9(t,p){t=n.T(t,p);6 8=n.S[t.I];n.1s(t,"1g",9(c){6 E=Y(c,7.3E);5(E!=C){E=E||"2M";c.3D=c.3D||7.3A;1l(c,7.2e);c.2u=2k("","1K.q(n,{\'R\':1C[\'"+E+"\']})");5(p.D!=C){5(p.D==7.2g(c)){8.R=1C[\'"+E+"\']}}}});5(p.D!=C){7.q(t,p)}};7.2L=9(t,p){t=n.T(t,p);6 8=n.S[t.I];5(8.P){n.1s(t,"1g,3p",9(c){6 E=Y(c,7.3u);5(E=="3W"){E=1}M 5(E=="3T"){E=-1}5(E!=C){c.2u=2k("","1K.2f(n,"+E+")")}});5(w=Y(t,7.3H)){8.2B=1j.1J(w)}5(w=Y(t,7.3t)){8.2r=1j.1J(w)}h 7.B(t,0,p)}};7.2c=9(e){e=e||1c.3n;5(X(e.3o)=="9"){e.3o()}5(G(e.2c)){e.2c=1N}};7.2y=9(t,p){p=p||{};t=n.T(t,p);6 8=n.S[t.I],w;7.1s(t,"1g",9(N){5(14(N,7.2w)){6 1D=7.1h(N);6 1x=7.3G(t,1D);5(1x.y>0){5(X(p.3N)=="9"){1o.3N(N,1x)}M{6 2b=\'<2h 4m="1K.u(n,n)" 2u="1K.2c(3n)" 4q="\'+7.2D+\'"><28 1w="">\'+7.2W+\'</28>\';F(6 i=0;i<1x.y;i++){2b+=\'<28 1w="\'+1x[i]+\'">\'+1x[i]+\'</28>\'}2b+=\'</2h>\';N.1F+="<4B>"+2b}}}});5(w=Y(t,7.3l)){8.2p=1j.1J(w)}5(w=Y(t,7.3d)){8.2n=1j.1J(w)}};5(X(30)!="2H"){30(7.27)}M 5(1c.2V){1c.2V("42",7.27,2O)}M 5(1c.32){1c.32("4j",7.27)}h 7})();',62,291,'|||||if|var|table|tdata|function||||||||return||||||this||args|sort||||filter||val||length|filters|cells|page|null|col|type|for|def|node|id|rows|bodies||else|cell|convert|pagesize|cRow|sorttype|tabledata|resolve|cRowIndex|row|nodeName|typeof|classValue|td|className|unfilteredrowcount|stripeclass|hideRow|hasClass|rowIndex|date|RegExp|tb|yr|name|pagestart|window|desc|new|tbrows|THEAD|getCellIndex|matrix|document|removeClass|addClass|tableHeaderIndexes|numeric|func|tableObj|while|L2|processTableCells|tableCellObj|ret|section|value|colValues|do|getCellValue|isHidden|display|Sort|cellIndex|nodeValue|innerHTML|childNodes|arg|numeric_comma|getElementById|Table|firstAvailCol|getParent|true|tBodies|totalrows|match|replace|re|ignorecase|useinnertext|pagecount|innerText|unfilteredrows|cellValue|parentNode|displayedCount|sortconvert|selectedIndex|alphanumeric|none||tables|auto|option|autosort|stripe|sel|cancelBubble|TABLE|SortableClassName|pageJump|getActualCellIndex|select|count|tr|Function|rowCells|pageend|container_all_count|nname|container_filtered_count|scrape|container_count|lastdesc|options|onclick|SortedAscendingClassName|FilterableClassName|SortedDescendingClassName|autofilter|lastcol|rowSpan|container_number|processCells|AutoFilterClassName|cellCoordinates|colSpan|trs|undefined|Date|o1|getTime|autopage|default|style|false|fixYear|valArray|values|numeric_converter|in|tbody|addEventListener|FilterAllLabel|NoSortClassName|formats|matrixrow|jQuery|getElementsByTagName|attachEvent|separator|prefix|cellsK|sortable|sorted|filtered|L3|copy|uniqueId|rowcount|RowcountPrefix|useInnerText|cs|getComputedStyle|thead|currentStyle|arguments|o2|FilteredRowcountPrefix|cellId|event|stopPropagation|TFOOT|FilteredClassName|cellsLength|regex|PageCountPrefix|AutoPageJumpPrefix|AutoPageSizePrefix|keep|AutoStripeClassName|StripeClassNamePrefix|AutoSortColumnPrefix|AutoSortTitle|string|newSortFunc|title|SortableColumnPrefix|push|getUniqueColValues|PageNumberPrefix|ignorehiddenrows|AutoSortClassName|INPUT|text|search|insert|SELECT|All|number|Filter|TABLE_|previous|tFoot|tHead|next|Click|getPropertyValue|total|ignoreHiddenRows|test|load|9999999999999|unfilteredcount|autostripe|nosort|filterable|floor|data|to|asc|Math|IMG|currency_comma|currency|TD|break|call|onload|toLowerCase|object|onchange|parseFloat|appendChild|one|class|TR|TH|delete|2000|checkbox|100|1900|radio|checked|nodeType|br|pageNext|filterReset|pagePrevious|filterList|50'.split('|'),0,{}))

// END partner directory sorting table script



// START rotating promo boxes script
// Featured Content Glider: By http://www.dynamicdrive.com
//Created: Dec 22nd, 07'
//Updated (Jan 29th, 08): Added four possible slide directions: "updown", "downup", "leftright", or "rightleft"
//Updated (Feb 1st, 08): Changed glide behavior to reverse direction when previous button is clicked
//Updated (Feb 12th, 08): Added ability to retrieve gliding contents from an external file using Ajax ("remotecontent" variable added to configuration)
//Updated (July 21st, 09): Updated to work in jQuery 1.3.x
//Updated (Dec 13th, 09): Added keyboard navigation, so left/ right arrow keys now move glider. Fixed bug with auto rotation when "next" link isn't defined.

jQuery.noConflict()

var featuredcontentglider={
	leftrightkeys: [37, 39], //keycodes to move glider back and forth 1 slide, respectively. Enter [] to disable feature.
	csszindex: 100,
	ajaxloadingmsg: '<b>Fetching Content. Please wait...</b>',

	glide:function(config, showpage, isprev){
		var selected=parseInt(showpage)
		if (selected>=config.$contentdivs.length){ //if no content exists at this index position
			alert("No content exists at page "+(selected+1)+"! Loading 1st page instead.")
			selected=0
		}
		var $target=config.$contentdivs.eq(selected)
		//Test for toggler not being initialized yet, or user clicks on the currently selected page):
		if (config.$togglerdiv.attr('lastselected')==null || parseInt(config.$togglerdiv.attr('lastselected'))!=selected){
			var $selectedlink=config.$toc.eq(selected)
			config.nextslideindex=(selected<config.$contentdivs.length-1)? selected+1 : 0
			config.prevslideindex=(selected==0)? config.$contentdivs.length-1 : selected-1
			config.$next.attr('loadpage', config.nextslideindex+"pg") //store slide index to go to when "next" link is clicked on
			config.$prev.attr('loadpage', config.prevslideindex+'pg')
			var startpoint=(isprev=="previous")? -config.startpoint : config.startpoint
			$target.css(config.leftortop, startpoint).css("zIndex", this.csszindex++) //hide content so it's just out of view before animating it
			var endpoint=(config.leftortop=="left")? {left:0} : {top:0} //animate it into view
			$target.animate(endpoint, config.speed)
			config.$toc.removeClass('selected')
			$selectedlink.addClass('selected')
			config.$togglerdiv.attr('lastselected', selected+'pg')
		}
	},

	getremotecontent:function($, config){
		config.$glider.html(this.ajaxloadingmsg)
		$.ajax({
			url: config.remotecontent,
			error:function(ajaxrequest){
				config.$glider.html('Error fetching content.<br />Server Response: '+ajaxrequest.responseText)
			},
			success:function(content){
				config.$glider.html(content)
				featuredcontentglider.setuptoggler($, config)
			}
		})
	},

	aligncontents:function($, config){
		config.$contentdivs=$("#"+config.gliderid+" ."+config.contentclass)
		config.$contentdivs.css(config.leftortop, config.startpoint).css({height: config.$glider.height(), visibility: 'visible'}) //position content divs so they're out of view:
	},

	setuptoggler:function($, config){
		this.aligncontents($, config)
		config.$togglerdiv.hide()
		config.$toc.each(function(index){
				$(this).attr('pagenumber', index+'pg')
				if (index > (config.$contentdivs.length-1))
					$(this).css({display: 'none'}) //hide redundant "toc" links
		})
		var $nextandprev=$("#"+config.togglerid+" .next, #"+config.togglerid+" .prev")
		$nextandprev.click(function(event){ //Assign click behavior to 'next' and 'prev' links
			featuredcontentglider.glide(config, this.getAttribute('loadpage'), this.getAttribute('buttontype'))
			event.preventDefault() //cancel default link action
		})
		config.$toc.click(function(event){ //Assign click behavior to 'toc' links
			featuredcontentglider.glide(config, this.getAttribute('pagenumber'))
			event.preventDefault()
		})
		config.$togglerdiv.fadeIn(1000, function(){
			featuredcontentglider.glide(config, config.selected)
			if (config.autorotate==true){ //auto rotate contents?
				config.stepcount=0 //set steps taken
				config.totalsteps=config.$contentdivs.length*config.autorotateconfig[1] //Total steps limit: num of contents x num of user specified cycles)
				featuredcontentglider.autorotate(config)
			}
		})
		config.$togglerdiv.click(function(){
			featuredcontentglider.cancelautorotate(config.togglerid)
		})
		if (this.leftrightkeys.length==2){
			$(document).bind('keydown', function(e){
				featuredcontentglider.keyboardnav(config, e.keyCode)
			})
		}
	},

	autorotate:function(config){
		var rotatespeed=config.speed+config.autorotateconfig[0]
		window[config.togglerid+"timer"]=setInterval(function(){
			if (config.totalsteps>0 && config.stepcount>=config.totalsteps){
				clearInterval(window[config.togglerid+"timer"])
			}
			else{
				featuredcontentglider.glide(config, config.nextslideindex, "next")
				config.stepcount++
			}
		}, rotatespeed)
	},

	cancelautorotate:function(togglerid){
		if (window[togglerid+"timer"])
			clearInterval(window[togglerid+"timer"])
	},

	keyboardnav:function(config, keycode){
		if (keycode==this.leftrightkeys[0])
			featuredcontentglider.glide(config, config.prevslideindex, "previous")
		else if (keycode==this.leftrightkeys[1])
			featuredcontentglider.glide(config, config.nextslideindex, "next")
		if (keycode==this.leftrightkeys[0] || keycode==this.leftrightkeys[1])
			featuredcontentglider.cancelautorotate(config.togglerid)
	},

	getCookie:function(Name){ 
		var re=new RegExp(Name+"=[^;]+", "i") //construct RE to search for target name/value pair
		if (document.cookie.match(re)) //if cookie found
			return document.cookie.match(re)[0].split("=")[1] //return its value
		return null
	},

	setCookie:function(name, value){
		document.cookie = name+"="+value
	},

	init:function(config){
		jQuery(document).ready(function($){
			config.$glider=$("#"+config.gliderid)
			config.$togglerdiv=$("#"+config.togglerid)
			config.$toc=config.$togglerdiv.find('.toc')
			config.$next=config.$togglerdiv.find('.next')
			config.$prev=config.$togglerdiv.find('.prev')
			config.$prev.attr('buttontype', 'previous')
			var selected=(config.persiststate)? featuredcontentglider.getCookie(config.gliderid) : config.selected
			config.selected=(isNaN(parseInt(selected))) ? config.selected : selected //test for cookie value containing null (1st page load) or "undefined" string	
			config.leftortop=(/up/i.test(config.direction))? "top" : "left" //set which CSS property to manipulate based on "direction"
			config.heightorwidth=(/up/i.test(config.direction))? config.$glider.height() : config.$glider.width() //Get glider height or width based on "direction"
			config.startpoint=(/^(left|up)/i.test(config.direction))? -config.heightorwidth : config.heightorwidth //set initial position of contents based on "direction"
			if (typeof config.remotecontent!="undefined" && config.remotecontent.length>0)
				featuredcontentglider.getremotecontent($, config)
			else
				featuredcontentglider.setuptoggler($, config)
			$(window).bind('unload', function(){ //clean up and persist
				config.$togglerdiv.unbind('click')
				config.$toc.unbind('click')
				config.$next.unbind('click')
				config.$prev.unbind('click')
				if (config.persiststate)
					featuredcontentglider.setCookie(config.gliderid, config.$togglerdiv.attr('lastselected'))
				config=null
				
			})
		})
	}
}
// END rotating promo boxes script


