var re_email=/^[a-zA-Z0-9][_\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/i;
var re_ecard=/\w+\.\w{2,}/i;

function goLink(l) {top.location=l;}
function setCursor(){
  if(top.location.href.indexOf('/report.do?formId=')<0 && document.forms.length>0 && document.forms[0].elements.length>0){
    for (var i=0;i<document.forms[0].elements.length;i++){
      if(document.forms[0].elements[i].type.search(/text|select|radio|checkbox|submit/)>-1){
        document.forms[0].elements[i].focus();
        break;
      }
    }
  }
}
function daysInMonth(y,m){
  if (m==3||m==5||m==8||m==10){d=30}
  else if (m==1){d=((Math.floor(y/4)==(y/4))&&((Math.floor(y/100)!=(y/100))||(Math.floor(y/400)==(y/400))))?29:28}
  else {d=31}
  return d;
}
function chk(y,m,day) {
  var d=daysInMonth(y,m),dl=day.length;
  if(d!=dl){day.length=d;if(d>dl){for (i=dl;i<d;i++){day.options[i].text=i+1;day.options[i].value=i+1;}} else if(dl==-1)day.selectedIndex=d-1;}
  if(m>0 && day.selectedIndex>0 && compare(day.form)){alert("End date should not earlier than start date!");resetDate(day);}
}

function rm(e) {
  location.replace(e.href); 
  event.returnValue=false; 
  event.cancelBubble=true;
}

function dbl(d) {
  return (d>9)?d:'0'+d;
}

function checkNumber(e) {
  if(isNaN(parseInt(e.value))){
    alert(e.value+" is not a valid number!\nPlease enter days to allow re-enter, 0 for only one entry per contest!");
    e.select();    
  }
}

function compare(f) {
  var ys=f.sy.selectedIndex,ms=dbl(f.sm.selectedIndex),ds=dbl(f.sd.selectedIndex),hs=dbl(f.sh.selectedIndex),is=dbl(f.si.selectedIndex);
  var ye=f.ey.selectedIndex,me=dbl(f.em.selectedIndex),de=dbl(f.ed.selectedIndex),he=dbl(f.eh.selectedIndex),ie=dbl(f.ei.selectedIndex);
  return parseInt(''+ys+ms+ds+hs+is,10) > parseInt(''+ye+me+de+he+ie,10);
}

function setCurrent(f) {
  var n=new Date(),y=n.getYear()+1900,m=n.getMonth(),d=n.getDate()-1,h=n.getHours();chk(y,m,f.sd);chk(y,m,f.ed);
  f.sm.selectedIndex=m;
  f.sd.selectedIndex=d;
  f.sh.selectedIndex=h;
  resetDate(f.sd);
}
function set(x,y) {
  x.selectedIndex=y.selectedIndex;
}

function resetDate(day) {
  var f=day.form;
    if(day==day.form.sd){set(f.ey,f.sy);set(f.em,f.sm);set(f.ed,f.sd);set(f.eh,f.sh);set(f.ei,f.si);
  } else {
    set(f.sy,f.ey);set(f.sm,f.em);set(f.sd,f.ed);set(f.sh,f.eh);set(f.si,f.ei);
  }
}

function hideop(s) {
  var si=s.selectedIndex,h='hidden',v='visible',rl='rules',ml='maxlen',ob='option_button',rq='require';
  setVs(rl,h);
  setVs(ml,h);
  setVs(ob,v);
  setVs(rq,h);
  
  if(si==1||si==2){
    setVs(rl,v);
    setVs(rq,v);
    if(si==1){
      setVs(ml,v);
    }
  }
  if(si==3||si==5){
    setVs(ob,v);
    setVs(rq,v);
  }
  if(si==4){
    setVs(rq,v);
  }
  if(si==6){
    setVs(ob,h);
  }
}  

function popup(p,w,h){
  popUp = window.open(p, "window", "menubar=no,scrollbars=yes,resizable=no,status=no,width="+w+",height="+h);
  popUp.focus();
}

function setCookie(n,v,days){
  var ex='',xd=new Date();
  days=isNaN(days)?0:days;
  days=(days==0)?999:days;
  xd.setTime(xd.getTime()+days*24*60*60*1000);
  ex='; expires='+xd.toGMTString();
	document.cookie=n+'='+v+ex+'; path=/';
}

function hideshow(e){
  var op=(e.checked)?'visible':'hidden';
  if(e.name == 'addPrivacy'){
    setVs('priv_rules',op);
    setVs('priv_prize',op);
    setVs('priv_privacy',op);
    setVs('priv_legal',op);
  }
  if(e.name == 'ageVerify'){
    setVs('age_012',op);
    setVs('age_1318no',op);
  }
  if(e.name == 'emailFriend'){
    setVs('email_subject',op);
    setVs('email_from',op);
    setVs('email_body',op);
    setVs('email_extra',op);
    setVs('email_loc',op);
  }
  if(e.name == 'confirmEmail'){
    setVs('ce_subject',op);
    setVs('ce_from',op);
    setVs('ce_body',op);
  }
}

function setVs(n,op){
  var el=getEl(n);
  if(el != undefined)el.style.visibility=op;
}

function getEv(n){
  var el=getEl(n);
  return (el != undefined)?el.value:'';
}

function getEl(n){
  return (document.all)?document.all[n]:document.getElementById(n);
}

function getName(n){
  var i=0,name;
  for(i;i<ids.length;i++){
    if(n==ids[i]){
      name=names[i];
      i=ids.length;
    }
  }
  return name;
}

function setColor(n,c) {
  var el=getEl(n);
  if(el != undefined && el.style != null)el.style.color=c;
}
function eq(e,n){return e.nodeName.toLowerCase()==n;}
function tab(n){
	var f=true,ns=n.nextSibling;
	if(eq(n,'input') && n.value.length==n.getAttribute("maxlength")){
    while(f && ns.nextSibling){						
      if(eq(ns,'input')||eq(ns,'select')||eq(ns,'textarea')){
        if(ns.type !='hidden'){ns.focus();f=false;}
      }
      ns=ns.nextSibling;
    }
  }
}
function getPV(n) {
  var r='',i=0,ps=location.search.slice(1).split('&');
  for (i;i<ps.length;i++) {
    if (ps[i].slice(0,ps[i].indexOf('='))==n) {
      r = ps[i].slice(ps[i].indexOf('=')+1);
      break;
    }
  }
  return (r.length>0 ? unescape(r).split(',') : '')
}

function getCookie(n){
	var c,i=0,eq=n+'=',ca=document.cookie.split(';');
	for(i;i<ca.length;i++){
		c = ca[i];
		while(c.charAt(0)==' ') c=c.substring(1,c.length);
		if (c.indexOf(eq)==0) return c.substring(eq.length,c.length);
	}
	return null;
}

function checkValue(e,res,msg) {
  var err='',c='',rea,re,ce=getEl('ql_'+e.name.slice(1));
  if(e.type.indexOf('text')>-1){
    if(res.indexOf('/')>-1){
      rea=res.slice(1).split('/');
      re=new RegExp(rea[0],rea[1]);
    } else {
      re=eval(res);
    }
    if(e.value.search(re)<0){
      if(msg.indexOf('BIRTH_DATE')<0 && ce != null && ce.firstChild != null && ce.firstChild.data != null)err='You must enter a valid value for "'+ce.firstChild.data.replace(/\n/g,'')+'"!\n';
      c='red';
    }
  }
  if(e.type.indexOf('select')>-1 && e.options[e.selectedIndex].value==''){
    if(msg.indexOf('BIRTH_DATE')<0 && ce != null && ce.firstChild != null && ce.firstChild.data != null)err='You must select an option for "'+ce.firstChild.data.replace(/\n/g,'')+'"!\n';
    c='red';
  }
  setColor('ql_'+e.name.slice(1),c);
  return err;
}

function setBlank(e,msg) {
  var err='',ce=getEl('ql_'+e.name.slice(1));
  if(e.type=='text'){
    if(e.value.length==0 && ce != null && ce.firstChild != null && ce.firstChild.data != null) err='You must enter a value  for "'+ce.firstChild.data.replace(/\n/g,'')+'"!\n';
  } else {//select
    if(e.options[e.selectedIndex].value=='' && ce != null && ce.firstChild != null  && ce.firstChild.data != null) err='You must select an option for "'+ce.firstChild.data.replace(/\n/g,'')+'"!\n';
  }
  if(err !='')setColor('ql_'+e.name.slice(1),'red');
  return err;
}

function checkAssoValue(e,res,msg,e0,res0,msg0) {
  var err='';
  setColor('ql_'+e.name.slice(1),'');
  setColor('ql_'+e0.name.slice(1),'');
  if(e.type==e0.type){
    if(e.type=='text'){
      if(!(e0.value=='' && e.value=='')){
        err+=(e0.value=='')?setBlank(e0,msg0):checkValue(e0,res0,msg0);
        err+=(e.value=='')?setBlank(e,msg):checkValue(e,res,msg);
      }
    } else {
      // selects
      if(!(e.options[e.selectedIndex].value=='' && e0.options[e0.selectedIndex].value=='')){
        if(e.options[e.selectedIndex].value!='')err+=setBlank(e0,msg0);
        if(e0.options[e0.selectedIndex].value!='')err+=setBlank(e,msg);
      }
    }
  } else {
    if(e.type=='text'){ //e0 is select
      if(e.value.length>0){
        err+=setBlank(e0,msg0);
        err+=checkValue(e,res,msg);
      } 
      if(e0.options[e0.selectedIndex].value.length>0){
        err+=setBlank(e,msg);
      }
    } else { // e0 is text and e is select
      if(e0.value.length>0){
        err+=checkValue(e0,res0,msg0);
        err+=setBlank(e,msg);
      } 
      if(e.options[e.selectedIndex].value.length>0){
        err+=setBlank(e0,msg0)
      }
    }
  }
  return err;
}

function checkDate() {
  var x,d=-1,m=-1,y=-1,i,err='',a=checkDate.arguments[0];
  for(i=0;i<a.length;i++){
    if(a[i] != ''){
      x=parseInt(a[i], 10);
      if(isNaN(x)){
        err+=a[i]+' is not a valid date!\n';
        i=a.length;
      } else {
        if(x>1900 && x<2020)y=x;
        if(x>0 && x<13 && m==-1)m=x;
        else if(x>0 && x<31)d=x;
      }
    }
  }
  if(!(d ==-1 && m==-1 && y==-1)){
    if(d==-1)err+='You must enter a valid date!\n'; else
    if(m==-1)err+='You must enter a valid month!\n'; else
    if(y==-1)err+='You must enter a valid year!\n';
  }
  return err;
}

function checkECard() {
  var m='',c='',err='';a=checkECard.arguments[0];
  if(a[0]!='' || a[1] !=''){
    if(a[1].search(re_email)>-1 && a[0].search(re_ecard)>-1){c=a[0];m=a[1];} 
    if(a[0].search(re_email)>-1 && a[1].search(re_ecard)>-1){c=a[1];m=a[0];}
    if(c='' || c.search(re_ecard)<0)err+='You must enter a valid e-card!\n';
  }
  return err;
}

function verifyBirthDate(ye,me,de,p){
  var yr=getHV(ye),mo=getHV(me),da=getHV(de);
  if(yr!='' && mo!='' && da !=''){
    var err=verifyDate(yr,mo,da);
    if(err==''){
      var now=new Date(),birth=new Date(yr,mo,da),age=Math.floor((now.getTime()-birth.getTime())/1000/60/60/24/365.25);
      if(age<13){popup(p,'570','500');}
      getEl('parental_consent').style.display=(age>12 && age<18)?'inline':'none';
    } else {
      alert(err);
      var qy,qm,qd;
      if(err.indexOf('year')>-1){ye.value='';ye.focus()}
      if(err.indexOf('month')>-1){me.value='';me.focus()}
      if(err.indexOf('day')>-1){de.value='';de.focus()}
    }
  }
}

function verifyDate(yr,mo,dy){
  var y=parseInt(yr),m=parseInt(mo,10),d=parseInt(dy,10),err='',now=new Date();
  if(yr==''){err+='Please enter a year!\n'}  else {if(isNaN(y) || y<now.getFullYear()-100 || y>now.getFullYear()+100)err+='You must enter a valid year!\n';}
  if(mo==''){err+='Please enter a month!\n'} else {if(isNaN(m) || m<1 || m>12)err+=mo+' is not a valid month!\n'}
  if(dy==''){err+='Please enter a date!\n'}  else {if(isNaN(d) || d<1 || d>31)err+=dy+' is not a valid day!\n';}
  return err;
}

function checkPhone() {
  var err='',a=checkPhone.arguments[0],tel=''+a[0]+a[1]+a[2];
  if(tel.search(/^\d{10}$/)<0)err+='You must enter a valid phone number!\n';
  return err;
}
function getHV(e){
  if(e.type=='text')return e.value;
  if(e.type.search(/select/i)>-1)return e.options[e.selectedIndex].value;
}

function viewSource(){
  var w=window.open('','','width=570,height=500,resizable=yes')
  w.document.write('<form name="vs">')
  w.document.write('<textarea cols="80" name="sr" rows="30" style="WIDTH: 100%" wrap=off><\/textarea>')
  var s=document.getElementsByTagName('body')[0].innerHTML.replace(/\n[ ]*\s*\n([ ]*)/g,'\n$1');
  s=s.replace(/<![-]{2} %{5}.*?%{5} [-]{2}>.*?<![-]{2} %{5}.*?%{5} [-]{2}>/gi,'');
  if (navigator.userAgent.indexOf("MSIE") != -1){
    s=s.replace(/(<INPUT |<select |<option |<\/SELECT>)/gi,'\n$1');
    s=s.replace(/(<SPAN id=q)/gi,'\n$1');
    s=s.replace(/\s*?(<![-]{2} .*? [-]{2}>)\s*?/gi,'\n$1\n');
    s=s.replace(/([-]{2}>)(<![-]{2})/gi,'$1\n$2');
    s=s.replace(/[ ]*(<BR><BR>)[ ]*/gi,'\n$1\n');
    s=s.replace(/(<\/FORM>)(<\/DIV>)/gi,'\n$1\n\n$2\n\n');
    s=s.replace(/(\w)[ ]+<\/SPAN>/gi,'$1</SPAN>');
  } else {
    s=s.replace(/[ ]*<br><br>[\n ]*<span id="ql_(\d+)">\n[ ]+(.+?)\n[ ]+<\/span>/gi,'\n<br><br>\n\n\n<span id="ql_$1">$2<\/span>\n');
  }
  w.document.vs.sr.value=s;
  w.document.write('<input type="button" value="Select All" onclick="sr.select()">');
  w.document.write('<\/form>');
}
