
window.status="TrameSql - Generateur d\'application";function crypt_id(frm)
{if(frm=='connect')
{if(document.getElementById('form_acces').elements["id_user0"].value!='')
{document.getElementById('form_acces').elements["id_user"].value=hex_sha1(document.getElementById('form_acces').elements["id_user0"].value);}
if(document.getElementById('form_acces').elements["password0"].value!='')
{document.getElementById('form_acces').elements["password"].value=hex_sha1(document.getElementById('form_acces').elements["password0"].value);}
document.getElementById('form_acces').elements["id_user0"].value='';document.getElementById('form_acces').elements["password0"].value='';document.getElementById('form_acces').submit();}
else
{if(frm=='form_password')
{if(document.getElementById('form_acces').elements["id_user0"].value!='')
{document.getElementById('form_acces').elements["id_user"].value=hex_sha1(document.getElementById('form_acces').elements["id_user0"].value);}
if(document.getElementById('form_acces').elements["pwd_old0"].value!='')
{document.getElementById('form_acces').elements["pwd_old"].value=hex_sha1(document.getElementById('form_acces').elements["pwd_old0"].value);}
if(document.getElementById('form_acces').elements["pwd_new0"].value!='')
{document.getElementById('form_acces').elements["pwd_new"].value=hex_sha1(document.getElementById('form_acces').elements["pwd_new0"].value);}
if(document.getElementById('form_acces').elements["pwd_confirm0"].value!='')
{document.getElementById('form_acces').elements["pwd_confirm"].value=hex_sha1(document.getElementById('form_acces').elements["pwd_confirm0"].value);}
document.getElementById('form_acces').elements["pwd_nb"].value=document.getElementById('form_acces').elements["pwd_new0"].value.length;document.getElementById('form_acces').elements["id_user0"].value='';document.getElementById('form_acces').elements["pwd_old0"].value='';document.getElementById('form_acces').elements["pwd_new0"].value='';document.getElementById('form_acces').elements["pwd_confirm0"].value='';document.getElementById('form_acces').submit();}}}
function changeclass(objet,myClass)
{objet.className=myClass;}
var vis=new Array();var memo_obj=new Array();function findObj(n)
{var p,i,x;if(memo_obj[n])
{return memo_obj[n];}
d=document;if((p=n.indexOf("?"))>0&&parent.frames.length)
{d=parent.frames[n.substring(p+1)].document;n=n.substring(0,p);}
if(!(x=d[n])&&d.all)
{x=d.all[n];}
for(i=0;!x&&i<d.forms.length;i++)
{x=d.forms[i][n];}
for(i=0;!x&&d.layers&&i<d.layers.length;i++)x=findObj(n,d.layers[i].document);if(!x&&document.getElementById)x=document.getElementById(n);memo_obj[n]=x;return x;}
function swap_couche(couche,url_style)
{triangle=findObj('triangle'+couche);if(!(layer=findObj('triangle'+couche)))return;if(vis[couche]=='hide')
{if(triangle)triangle.src=url_style+'/deplierbas.gif';document.getElementById('layer'+couche).style.display='block';vis[couche]='show';}
else
{if(triangle)triangle.src=url_style+'/deplierhaut.gif';document.getElementById('layer'+couche).style.display='none';vis[couche]='hide';}}
var id=new Array();var nbrows=new Array();var debut=new Array();function visible(numtab,ligne)
{for(i=debut[numtab];i<nbrows[numtab]+debut[numtab];i++)
{document.getElementById(id[i]).style.display="none";}
document.getElementById(ligne).style.display="";}
var contenu_variable=new Array();function clauses_multiples(nom_form,contenu_variable,numtab,numcol,frm)
{if(numcol==2)
{window.opener.document.forms[frm].elements["operation"].value="creation";window.opener.document.forms[frm].elements["branches"].value=contenu_variable[numtab+numcol];window.opener.document.forms[frm].submit();window.close();}
else
{if(contenu_variable[numtab+numcol]!='')
{longueur_chaine=contenu_variable[numtab+numcol].length;if(contenu_variable[numtab+numcol].charAt(longueur_chaine-1)=='|')
{contenu_variable[numtab+numcol]=contenu_variable[numtab+numcol].substring(0,longueur_chaine-1);}
window.document.forms[nom_form+numtab].elements["clause_maj"].value=contenu_variable[numtab+numcol];if(numcol==0)
{window.document.forms[nom_form+numtab].action='page.php?clause='+contenu_variable[numtab+numcol];window.document.forms[nom_form+numtab].action=window.document.forms[nom_form+numtab].action.replace('|','_or_');}
window.document.forms[nom_form+numtab].submit();}}}
function recup_identifiant(objet,numtab,numcol,clause)
{if(objet.checked==true)
{contenu_variable[numtab+numcol]+=clause+'|';}
else
{chaine=clause;longueur=chaine.length;pos=contenu_variable[numtab+numcol].indexOf(chaine);chaine1=contenu_variable[numtab+numcol].substring(0,pos);chaine2=contenu_variable[numtab+numcol].substring(pos+longueur+1,contenu_variable[numtab+numcol].length);contenu_variable[numtab+numcol]=chaine1+chaine2;}}
function recup_case(objet,numtab,numcol,clause,valcoche,valdecoche)
{if(contenu_variable[numtab+numcol].indexOf(clause)!=-1)
{chaine=clause;longueur=chaine.length;pos=contenu_variable[numtab+numcol].indexOf(chaine);chaine1=contenu_variable[numtab+numcol].substring(0,pos);chaine2=contenu_variable[numtab+numcol].substring(pos+longueur+3,contenu_variable[numtab+numcol].length);contenu_variable[numtab+numcol]=chaine1+chaine2;}
if(objet.checked==true)
{contenu_variable[numtab+numcol]+=clause+'#'+valcoche+'|';}
else
{contenu_variable[numtab+numcol]+=clause+'#'+valdecoche+'|';}}
function recup_filtre(numObj,nb)
{filtre='';for(i=0;i<nb;i++)
{if(document.getElementById('form_filtre'+numObj).elements['filtre'+i].value!='')
{recup=document.getElementById('form_filtre'+numObj).elements['filtre'+i].value;filtre+=i+'/'+recup+'|';}}
position=filtre.lastIndexOf('|');if(filtre.charAt(position)=='|')
{filtre=filtre.substring(0,position);}
window.document.forms['variables'+numObj].elements['filtre'].value=filtre;window.document.forms['variables'+numObj].submit();}
function passer_variable_simple(url,variables,var_javascript,width,height)
{url_avec_variable=url+"?"+variables+"&"+"var_javascript="+var_javascript;window.open(url_avec_variable,"Petite","width="+width+",height="+height+"top=40, left=100, toolbar=0, status=0, scrollbars=yes");}
function efface_champ_filtre(numObj,h,i)
{window.document.forms["form"+numObj].elements["champ"+numObj+"-"+h+"-"+i].value="";window.document.forms["form"+numObj].elements["champ"+numObj+"-"+h+"-"+i+"-libel"].value="";}
function recup_filtre_liste(filtre_liste,refObj,numObj,h,i,refFiltre)
{if(filtre_liste=='O'&&(refObj=='LV'||refObj=='LVM'))
{var_javascript=window.document.forms["form"+numObj].elements["champ"+numObj+"-"+h+"-"+(i-1)].value;if(refFiltre!='')
{var_javascript=refFiltre+"='"+var_javascript+"'";}
else
{var_javascript="filtre = '"+var_javascript+"'";}}
else
{var_javascript="";}}
function recuperation_valeur_liste(code,libel,id,form,cd)
{if(cd=='c'||cd=='cl')
{window.opener.document.forms[form].elements[id].value=code;if(cd=='cl')
{window.opener.document.forms[form].elements[id+"-libel"].value=libel;}}
else
{window.opener.document.forms[form].elements[id].value=libel;position=id.lastIndexOf('-');id=id.substring(0,position);window.opener.document.forms[form].elements[id].value=code;}
window.close();}
var code=new Array();var libelle=new Array();function affichage_libelle_ou_code(id,form,num_champ,nb,objet)
{if(objet=="l")
{window.document.forms[form].elements[id+"-libel"].value="";}
for(i=0;i<nb;i++)
{if(objet=="l")
{if(window.document.forms[form].elements[id].value==code[num_champ+i])
{window.document.forms[form].elements[id+"-libel"].value=libelle[num_champ+i];}}
else
{if(window.document.forms[form].elements[id+"-libel"].value==libelle[num_champ+i])
{window.document.forms[form].elements[id].value=code[num_champ+i];}}}
if(window.document.forms[form].elements[id+"-libel"].value==''&&window.document.forms[form].elements[id].value!=0)
{alert("Code incorrect");window.document.forms[form].elements[id].value='';window.document.forms[form].elements[id+"-libel"].value='';}}
function valeurs_objet(form,id,nb,hidden,type)
{valeur='';for(i=0;i<=nb;i++)
{if(type=="L")
{if(document.forms[form].elements[id].options[i].selected==true)
{valeur+=document.forms[form].elements[id].options[i].value+'&&';}}
else
{if(document.forms[form].elements[id+"-"+i].checked==true)
{valeur+=document.forms[form].elements[id+"-"+i].value+'&&';}}}
position=valeur.lastIndexOf('&');if(valeur.charAt(position)=='&')
{valeur=valeur.substring(0,position-1);}
document.forms[form].elements[hidden].value=valeur;}
function affiche_menu(menu)
{if(document.getElementById(menu).style.visibility!="visible")
{document.getElementById(menu).style.visibility="visible";}
else
{document.getElementById(menu).style.visibility="hidden";}}
function efface_menu(menu)
{document.getElementById(menu).style.visibility="hidden";}
function masquer_liste_deroulante(objet,num,ligne,champ,mask1,mask2,ligne_total)
{if(objet=='LD')
{ligne_suivante1=ligne+1;ligne_suivante2=ligne+2;if(mask1!='O'&&ligne<ligne_total-1)
{if(document.getElementById('liste'+num+'-'+ligne_suivante1+'-'+champ).style.display=="")
{document.getElementById('liste'+num+'-'+ligne_suivante1+'-'+champ).style.display="none";}
else
{document.getElementById('liste'+num+'-'+ligne_suivante1+'-'+champ).style.display="";}}
if(mask2!='O'&&ligne<ligne_total-2)
{if(document.getElementById('liste'+num+'-'+ligne_suivante2+'-'+champ).style.display=="")
{document.getElementById('liste'+num+'-'+ligne_suivante2+'-'+champ).style.display="none";}
else
{document.getElementById('liste'+num+'-'+ligne_suivante2+'-'+champ).style.display="";}}}}
function validation_formulaire(num_objet,nombre_ligne,nombre_champ)
{non_renseigne(num_objet,nombre_ligne,nombre_champ);if(document.getElementById('valid').value=='O')
{window.status='TrameSql - Generateur d\'application';document.forms['form'+num_objet].submit();}}
var erreur='';var cpt=0;var m=0;function non_renseigne(num_objet,nombre_ligne,nombre_champ)
{for(i=0;i<nombre_ligne;i++)
{for(j=0;j<nombre_champ;j++)
{if(masque_champ[j]=='O')
{m+=1;}
if(document.getElementById('champ'+num_objet+'-'+i+'-'+j).value==''&&champ_oblig[j]=='O')
{if(nombre_ligne==1)
{id_champ_erreur=' (champ '+(j+1-m)+')\n'}
else
{id_champ_erreur=' (ligne '+(i+1)+' - colonne '+(j+1-m)+')\n'}
erreur+='* '+etiquette[j]+id_champ_erreur;cpt+=1;}}
m=0;}
if(erreur!='')
{if(cpt==1)
{libel="Champ non renseigné : \n";}
else
{libel="Champs non renseignés : \n";}
message=libel+erreur;alert(message);erreur='';message='';cpt=0;document.getElementById('valid').value='N'}
else
{document.getElementById('valid').value='O'}}
function verification_saisie(id,type)
{if(id.value.length!=0)
{switch(type)
{case"M":var exp=new RegExp("([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+([.][a-z0-9-]+)+)","g");if(!exp.test(id.value))
{alert("L'adresse saisie est incorrecte        ");id.focus();}
break;case"PWD":if(id.value.length<5)
{alert("Le nombre de caractères saisi est insuffisant        ");id.focus();}
break;case"D":var exp=new RegExp("^[0-9]{2}(/|.)?[0-9]{2}(/|.)?[0-9]{4}$","g");if(exp.test(id.value))
{stop='';id.value=id.value.replace(/[.]/g,"/");var exp2=new RegExp("/","g");if(!exp2.test(id.value))
{jour=id.value.substring(0,2);mois=id.value.substring(2,4);annee=id.value.substring(4,10);}
else
{jour=id.value.substring(0,2);mois=id.value.substring(3,5);annee=id.value.substring(6,12);}
if(annee>2100)
{stop='O';}
if(mois>12)
{stop='O';}
if(jour>31)
{stop='O';}
if(mois=='04'||mois=='06'||mois=='09'||mois==11)
{if(jour==31)
{stop='O';}}
if(mois=='02')
{if(jour>28)
{stop='O';}}
if(stop!='O')
{id.value=jour+"/"+mois+"/"+annee;}
else
{alert('Date incorrecte');stop='';id.focus();}}
else
{alert("La date saisie ne respecte pas le format JJ/MM/AAAA        ");id.focus();}
break;case"DTMAJ":var exp=new RegExp("^[0-9]{2}(/|.)?[0-9]{2}(/|.)?[0-9]{4}$","g");if(exp.test(id.value))
{stop='';id.value=id.value.replace(/[.]/g,"/");var exp2=new RegExp("/","g");if(!exp2.test(id.value))
{jour=id.value.substring(0,2);mois=id.value.substring(2,4);annee=id.value.substring(4,10);}
else
{jour=id.value.substring(0,2);mois=id.value.substring(3,5);annee=id.value.substring(6,12);}
if(annee>2100)
{stop='O';}
if(mois>12)
{stop='O';}
if(jour>31)
{stop='O';}
if(mois=='04'||mois=='06'||mois=='09'||mois==11)
{if(jour==31)
{stop='O';}}
if(mois=='02')
{if(jour>28)
{stop='O';}}
if(stop!='O')
{id.value=jour+"/"+mois+"/"+annee;}
else
{alert('Date incorrecte');stop='';id.focus();}}
else
{alert("La date saisie ne respecte pas le format JJ/MM/AAAA        ");id.focus();}
break;case"NE":var exp=new RegExp("^[0-9]*[,|\.]?[0-9]{1,2}$","g");id.value=id.value.replace(/[.|,][0-9]{1,20}/g,"");if(!exp.test(id.value))
{alert("L'information saisie est incorrecte        ");id.focus();}
break;case"ND":var exp=new RegExp("^[0-9]*[,|\.]?[0-9]{0,2}$","g");if(exp.test(id.value))
{id.value=id.value.replace(/[,]/g,".");id.value=id.value.replace(/^[0-9]*\.$/g,id.value+"00");id.value=id.value.replace(/^\.[0-9]+$/g,"0"+id.value)
id.value=id.value.replace(/^[0-9]*\.[0-9]$/g,id.value+"0")
var exp2=new RegExp("[\.]","g");if(!exp2.test(id.value))
{id.value=id.value+".00";}}
else
{alert("L'information saisie est incorrecte        ");id.focus();}
break;}}}
function affichage_aide(libel)
{window.status=libel;}
function valeur_noeud_arbo(nuform,ligne,champ)
{document.forms["form"+nuform].elements["noeud"].value=ligne+"|"+champ;}
var hex_chr="0123456789abcdef";function rhex(num)
{str="";for(j=0;j<=3;j++)
str+=hex_chr.charAt((num>>(j*8+4))&0x0F)+
hex_chr.charAt((num>>(j*8))&0x0F);return str;}
function str2blks_MD5(str)
{nblk=((str.length+8)>>6)+1;blks=new Array(nblk*16);for(i=0;i<nblk*16;i++)blks[i]=0;for(i=0;i<str.length;i++)
blks[i>>2]|=str.charCodeAt(i)<<((i%4)*8);blks[i>>2]|=0x80<<((i%4)*8);blks[nblk*16-2]=str.length*8;return blks;}
function add(x,y)
{var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF);}
function rol(num,cnt)
{return(num<<cnt)|(num>>>(32-cnt));}
function cmn(q,a,b,x,s,t)
{return add(rol(add(add(a,q),add(x,t)),s),b);}
function ff(a,b,c,d,x,s,t)
{return cmn((b&c)|((~b)&d),a,b,x,s,t);}
function gg(a,b,c,d,x,s,t)
{return cmn((b&d)|(c&(~d)),a,b,x,s,t);}
function hh(a,b,c,d,x,s,t)
{return cmn(b^c^d,a,b,x,s,t);}
function ii(a,b,c,d,x,s,t)
{return cmn(c^(b|(~d)),a,b,x,s,t);}
function calcMD5(str)
{x=str2blks_MD5(str);a=1732584193;b=-271733879;c=-1732584194;d=271733878;for(i=0;i<x.length;i+=16)
{olda=a;oldb=b;oldc=c;oldd=d;a=ff(a,b,c,d,x[i+0],7,-680876936);d=ff(d,a,b,c,x[i+1],12,-389564586);c=ff(c,d,a,b,x[i+2],17,606105819);b=ff(b,c,d,a,x[i+3],22,-1044525330);a=ff(a,b,c,d,x[i+4],7,-176418897);d=ff(d,a,b,c,x[i+5],12,1200080426);c=ff(c,d,a,b,x[i+6],17,-1473231341);b=ff(b,c,d,a,x[i+7],22,-45705983);a=ff(a,b,c,d,x[i+8],7,1770035416);d=ff(d,a,b,c,x[i+9],12,-1958414417);c=ff(c,d,a,b,x[i+10],17,-42063);b=ff(b,c,d,a,x[i+11],22,-1990404162);a=ff(a,b,c,d,x[i+12],7,1804603682);d=ff(d,a,b,c,x[i+13],12,-40341101);c=ff(c,d,a,b,x[i+14],17,-1502002290);b=ff(b,c,d,a,x[i+15],22,1236535329);a=gg(a,b,c,d,x[i+1],5,-165796510);d=gg(d,a,b,c,x[i+6],9,-1069501632);c=gg(c,d,a,b,x[i+11],14,643717713);b=gg(b,c,d,a,x[i+0],20,-373897302);a=gg(a,b,c,d,x[i+5],5,-701558691);d=gg(d,a,b,c,x[i+10],9,38016083);c=gg(c,d,a,b,x[i+15],14,-660478335);b=gg(b,c,d,a,x[i+4],20,-405537848);a=gg(a,b,c,d,x[i+9],5,568446438);d=gg(d,a,b,c,x[i+14],9,-1019803690);c=gg(c,d,a,b,x[i+3],14,-187363961);b=gg(b,c,d,a,x[i+8],20,1163531501);a=gg(a,b,c,d,x[i+13],5,-1444681467);d=gg(d,a,b,c,x[i+2],9,-51403784);c=gg(c,d,a,b,x[i+7],14,1735328473);b=gg(b,c,d,a,x[i+12],20,-1926607734);a=hh(a,b,c,d,x[i+5],4,-378558);d=hh(d,a,b,c,x[i+8],11,-2022574463);c=hh(c,d,a,b,x[i+11],16,1839030562);b=hh(b,c,d,a,x[i+14],23,-35309556);a=hh(a,b,c,d,x[i+1],4,-1530992060);d=hh(d,a,b,c,x[i+4],11,1272893353);c=hh(c,d,a,b,x[i+7],16,-155497632);b=hh(b,c,d,a,x[i+10],23,-1094730640);a=hh(a,b,c,d,x[i+13],4,681279174);d=hh(d,a,b,c,x[i+0],11,-358537222);c=hh(c,d,a,b,x[i+3],16,-722521979);b=hh(b,c,d,a,x[i+6],23,76029189);a=hh(a,b,c,d,x[i+9],4,-640364487);d=hh(d,a,b,c,x[i+12],11,-421815835);c=hh(c,d,a,b,x[i+15],16,530742520);b=hh(b,c,d,a,x[i+2],23,-995338651);a=ii(a,b,c,d,x[i+0],6,-198630844);d=ii(d,a,b,c,x[i+7],10,1126891415);c=ii(c,d,a,b,x[i+14],15,-1416354905);b=ii(b,c,d,a,x[i+5],21,-57434055);a=ii(a,b,c,d,x[i+12],6,1700485571);d=ii(d,a,b,c,x[i+3],10,-1894986606);c=ii(c,d,a,b,x[i+10],15,-1051523);b=ii(b,c,d,a,x[i+1],21,-2054922799);a=ii(a,b,c,d,x[i+8],6,1873313359);d=ii(d,a,b,c,x[i+15],10,-30611744);c=ii(c,d,a,b,x[i+6],15,-1560198380);b=ii(b,c,d,a,x[i+13],21,1309151649);a=ii(a,b,c,d,x[i+4],6,-145523070);d=ii(d,a,b,c,x[i+11],10,-1120210379);c=ii(c,d,a,b,x[i+2],15,718787259);b=ii(b,c,d,a,x[i+9],21,-343485551);a=add(a,olda);b=add(b,oldb);c=add(c,oldc);d=add(d,oldd);}
return rhex(a)+rhex(b)+rhex(c)+rhex(d);}
var hexcase=0;var b64pad="";var chrsz=8;function hex_sha1(s){return binb2hex(core_sha1(str2binb(s),s.length*chrsz));}
function b64_sha1(s){return binb2b64(core_sha1(str2binb(s),s.length*chrsz));}
function str_sha1(s){return binb2str(core_sha1(str2binb(s),s.length*chrsz));}
function hex_hmac_sha1(key,data){return binb2hex(core_hmac_sha1(key,data));}
function b64_hmac_sha1(key,data){return binb2b64(core_hmac_sha1(key,data));}
function str_hmac_sha1(key,data){return binb2str(core_hmac_sha1(key,data));}
function sha1_vm_test()
{return hex_sha1("abc")=="a9993e364706816aba3e25717850c26c9cd0d89d";}
function core_sha1(x,len)
{x[len>>5]|=0x80<<(24-len%32);x[((len+64>>9)<<4)+15]=len;var w=Array(80);var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;var e=-1009589776;for(var i=0;i<x.length;i+=16)
{var olda=a;var oldb=b;var oldc=c;var oldd=d;var olde=e;for(var j=0;j<80;j++)
{if(j<16)w[j]=x[i+j];else w[j]=rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1);var t=safe_add(safe_add(rol(a,5),sha1_ft(j,b,c,d)),safe_add(safe_add(e,w[j]),sha1_kt(j)));e=d;d=c;c=rol(b,30);b=a;a=t;}
a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd);e=safe_add(e,olde);}
return Array(a,b,c,d,e);}
function sha1_ft(t,b,c,d)
{if(t<20)return(b&c)|((~b)&d);if(t<40)return b^c^d;if(t<60)return(b&c)|(b&d)|(c&d);return b^c^d;}
function sha1_kt(t)
{return(t<20)?1518500249:(t<40)?1859775393:(t<60)?-1894007588:-899497514;}
function core_hmac_sha1(key,data)
{var bkey=str2binb(key);if(bkey.length>16)bkey=core_sha1(bkey,key.length*chrsz);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++)
{ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C;}
var hash=core_sha1(ipad.concat(str2binb(data)),512+data.length*chrsz);return core_sha1(opad.concat(hash),512+160);}
function safe_add(x,y)
{var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF);}
function rol(num,cnt)
{return(num<<cnt)|(num>>>(32-cnt));}
function str2binb(str)
{var bin=Array();var mask=(1<<chrsz)-1;for(var i=0;i<str.length*chrsz;i+=chrsz)
bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<(32-chrsz-i%32);return bin;}
function binb2str(bin)
{var str="";var mask=(1<<chrsz)-1;for(var i=0;i<bin.length*32;i+=chrsz)
str+=String.fromCharCode((bin[i>>5]>>>(32-chrsz-i%32))&mask);return str;}
function binb2hex(binarray)
{var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var str="";for(var i=0;i<binarray.length*4;i++)
{str+=hex_tab.charAt((binarray[i>>2]>>((3-i%4)*8+4))&0xF)+
hex_tab.charAt((binarray[i>>2]>>((3-i%4)*8))&0xF);}
return str;}
function binb2b64(binarray)
{var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var str="";for(var i=0;i<binarray.length*4;i+=3)
{var triplet=(((binarray[i>>2]>>8*(3-i%4))&0xFF)<<16)|(((binarray[i+1>>2]>>8*(3-(i+1)%4))&0xFF)<<8)|((binarray[i+2>>2]>>8*(3-(i+2)%4))&0xFF);for(var j=0;j<4;j++)
{if(i*8+j*6>binarray.length*32)str+=b64pad;else str+=tab.charAt((triplet>>6*(3-j))&0x3F);}}
return str;}