/*
###########################################################
#  Form control library
#  Shaiulud                     - www.shaiulud.fr.st -                                 18/01/2002
###########################################################
*/

//##################
//#  GetFormIputs  #
//##################
//radio
function getRadioVal(rb)
{var L=rb.length;var ret="";
for (var i = 0 ; i< L ; i++)
{if(rb[i].checked) {ret=rb[i].value;break;}}
return(ret);
}

//text, password, hidden, textarea, file
function getTextVal(tf)
{var ret=tf.value;
return(ret);
}

//checkbox
function getCheckboxVal(cb)
{var L=cb.length;var ret='';
for (i = 0; i < L; i++)
{if (cb[i].checked==true) {ret += cb[i].value + '\n';}}
return(ret);
}

//select
function getSelectVal(sel)
{var ret='';
ret=sel.options[sel.selectedIndex].text;
return(ret);
}



//#############
//#  Control  #
//#############
function IsDate(JJ, MM, AAAA)
{if(JJ<1||JJ>31||MM<1||MM>12) return false;
if(MM==2)
{if(JJ==30||JJ==31) return false;
  if(JJ==29) return ((AAAA%4==0&&AAAA%100!=0)||AAAA%400==0);
}
else if(JJ==31) return !(MM==4||MM==6||MM==9||MM==11);
return true;
}

function IsEMail(emailStr)
{var validDomain=false;
var AtPos = emailStr.lastIndexOf("@");
var DotPos= emailStr.lastIndexOf(".");
if((AtPos>0)&&(DotPos>0)&&(AtPos<DotPos))
{var domainExtList='ac.ad.ae.af.ag.ai.al.am.an.ao.aq.ar.as.at.au.aw.az.ba.bb.bd.be.bf.bg.bh.bi.bj.bm.bn.bo.br.bs.bt.bv.bw.by.bz.ca.cc.cd.cf.cg.ch.ci.ck.cl.cm.cn.co.cr.cs.cu.cv.cx.cy.cz.de.dj.dk.dm.do.dz.ec.ee.eg.eh.er.es.et.fi.fj.fk.fm.fo.fr.fx.ga.gb.gd.ge.gf.gg.gh.gi.gl.gm.gn.gp.gq.gr.gs.gt.gu.gw.gy.hk.hm.hn.hr.ht.hu.id.ie.il.im.in.io.iq.ir.is.it.je.jm.jo.jp.ke.kg.kh.ki.km.kn.kp.kr.kw.ky.kz.la.lb.lc.li.lk.lr.ls.lt.lu.lv.ly.ma.mc.md.mg.mh.mk.ml.mm.mn.mo.mp.mq.mr.ms.mt.mu.mv.mw.mx.my.mz.na.nc.ne.nf.ng.ni.nl.no.np.nr.nt.nu.nz.om.pa.pe.pf.pg.ph.pk.pl.pm.pn.pr.ps.pt.pw.py.qa.re.ro.ru.rw.sa.sb.sc.sd.se.sg.sh.si.sj.sk.sl.sm.sn.so.sr.st.su.sv.sy.sz.tc.td.tf.tg.th.tj.tk.tm.tn.to.tp.tr.tt.tv.tw.tz.ua.ug.uk.um.us.uy.uz.va.vc.ve.vg.vi.vn.vu.wf.ws.ye.yt.yu.za.zm.zr.zw.com.edu.gov.int.mil.net.org.biz.pro.info.aero.name.coop.arpa.nato.museum.EoF';
  var domainExt=domainExtList.split(".");
  var emailExt=emailStr.substr(DotPos+1);
  emailExt=emailExt.toLowerCase();
  for(i=0;domainExt.length;i++)
  {if (domainExt[i]=='EoF')  break; //infinite loop else
   if (emailExt==domainExt[i])  {validDomain=true;break;}
  }
}
return(validDomain);
}

function IsNumberString(NumStr)
{var regEx=/^[0-9]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}

function IsAlphaNumString(NumStr)
{var regEx=/^[A-Za-z0-9]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}

function IsAlphaString(NumStr)
{var regEx=/^[A-Za-z]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}
function IsAlphaStringWithSpace(NumStr)
{var regEx=/^[A-Z a-z]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}

function isCreditCard(st) {
  // Encoding only works on cards with less than 19 digits with Luhn mod-10
  if (st.length > 19) return (false);
  sum=0;mul=1;l=st.length;
  for(i=0;i<l;i++)
  {digit = st.substring(l-i-1,l-i);
   tproduct = parseInt(digit ,10)*mul;
   if (tproduct >= 10)
    sum += (tproduct % 10) + 1;
   else
    sum += tproduct;
   if (mul == 1)
    mul++;
   else
    mul--;
  }
  if ((sum % 10) == 0)
   return (true);
  else
   return (false);
}

function isVisa(cc)
{if(((cc.length==16)||(cc.length==13))&&(cc.substring(0,1)==4)) return isCreditCard(cc);
return false;
}

function isMasterCard(cc)
{firstdig = cc.substring(0,1);
seconddig = cc.substring(1,2);
if((cc.length==16)&&(firstdig==5)&&((seconddig>=1)&&(seconddig<=5))) return isCreditCard(cc);
  return false;
}

function isAmericanExpress(cc)
{firstdig = cc.substring(0,1);
seconddig = cc.substring(1,2);
if((cc.length==15)&&(firstdig==3)&&((seconddig==4)||(seconddig==7))) return isCreditCard(cc);
  return false;
}

function isAnyCard(cc)
{if(!isCreditCard(cc)) return false;

if (isMasterCard(cc)) alert('Master Card');
if (isVisa(cc)) alert('Visa Card');
if (isAmericanExpress(cc)) alert('American Express');

if(!isMasterCard(cc) && !isVisa(cc) && !isAmericanExpress(cc)) return false;
return true;
}


