var numQues = 2;
var testErr = 0;
var finished = 0;
var loc1 = /(https?:\/\/(.*\/)+)(.*\.php)?/;
var cd = "?t202id=8453&t202kw=";
var loc = loc1.exec(window.location)[1];

var pxmlHttp = null;
function checkCompleted()
{
    pxmlHttp=getXmlHttpObject();

    pxmlHttp.onreadystatechange=checkComplete;
    pxmlHttp.open("GET","php/checkCompleted.php",true);
    pxmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    pxmlHttp.send(null);
}
var cxmlHttp = null;
function checkComplete()
{
  if (pxmlHttp.readyState == 4)
  {
      if (pxmlHttp.status == 200)
      {
          var xmlDoc=pxmlHttp.responseXML;
          if (xmlDoc.getElementsByTagName("COMPLETED") && parseInt(xmlDoc.getElementsByTagName("COMPLETED")[0].childNodes[0].nodeValue))
          {
              cxmlHttp=getXmlHttpObject();

              cxmlHttp.onreadystatechange=finish;
              cxmlHttp.open("GET","php/sendResults.php",true);
              cxmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
              cxmlHttp.send(null);
          }
          else
          {
              pxmlHttp = null;
              setTimeout("checkCompleted()", 10000);
          }
      }
   }
}

function finish()
{
  if (cxmlHttp.readyState == 4)
  {
      if (cxmlHttp.status == 200)
      {
          var xmlDoc=cxmlHttp.responseXML;
          document.getElementById('lastStep').style.display = "none";
          if (parseInt(xmlDoc.getElementsByTagName("ERROR")[0].childNodes[0].nodeValue))
          {
              document.getElementById('failed').style.display = "block";
          }
          else
          {
              document.getElementById('results').style.display = "block";
          }
      }
   }
}

var pxmlHttp = null;
function displayPromo()
{
    cxmlHttp=getXmlHttpObject();
    cxmlHttp.open("GET","php/calculateScore.php",false);
    cxmlHttp.send(null);
    document.getElementById('testArea').style.display = "none";
    document.getElementById('promoInstructions').style.display = "block";
    if (window.location.hash.indexOf('#promoInstructions') == -1)
    {
       window.location.replace('#promoInstructions');
    }

}
function displayAllPromosSub(e)
{
   document.getElementById('lastStep').style.display = "none";
   displayAllPromos();
}
function displayAllPromos()
{
    pxmlHttp=getXmlHttpObject();
    pxmlHttp.onreadystatechange=displayPromoBanners;
    pxmlHttp.open("GET","php/getPromos.php",true);
    pxmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    pxmlHttp.send(null);
}

function displayPromoBanners()
{
  if (pxmlHttp.readyState == 4)
  {
      if (pxmlHttp.status == 200)
      {
          var xmlDoc=pxmlHttp.responseXML;
          if (!xmlDoc.getElementsByTagName("ERROR")[0])
          {
              subid = xmlDoc.getElementsByTagName("SUBID")[0].childNodes[0].nodeValue;
              pci = xmlDoc.getElementsByTagName("PCI")[0].childNodes[0].nodeValue;
              document.getElementById('promoInstructions').style.display = "none";
              document.getElementById('promos').style.display = "none";
              if (window.location.hash.indexOf('#promos') == -1)
              {
                  window.location.replace('#promos');
              }
              deleteChildren(document.getElementById("promoArea"));
              for (var cnt = 0; cnt < xmlDoc.getElementsByTagName("PROMO_BANNER").length; cnt++)
              {
                   var pa = document.createElement("a");
                   pa.className="promoLnk";
                   pa.href="#";

                   var pform = document.createElement("form");
                   pform.action = "#";/* "php/displayPromo.php"; */
                   pform.method = "POST";
                   pform.name = "form"+cnt;
                   pform.id = "form"+cnt;

                   var pinp1 = document.createElement("input");
                   pinp1.type = "hidden";
                   pinp1.name = "promo";
                   pinp1.id = "promo";
                   pinp1.value = xmlDoc.getElementsByTagName("PROMO_LINK")[cnt].childNodes[0].nodeValue;

                   var pinp2 = document.createElement("input");
                   pinp2.type = "hidden";
                   pinp2.name = "desc";
                   pinp2.id = "desc";
                   pinp2.value = xmlDoc.getElementsByTagName("PROMO_DESC")[cnt].childNodes[0].nodeValue;

                   var pimg = document.createElement("img");
                   pimg.className="promoImg";
                   pimg.name = "promo"+cnt;
                   pimg.id = "promo"+cnt;
                   pimg.src = loc+xmlDoc.getElementsByTagName("PROMO_BANNER")[cnt].childNodes[0].nodeValue;

                   pform.appendChild(pimg);
                   pform.appendChild(pinp1);
                   pform.appendChild(pinp2);
                   pa.appendChild(pform);
                   try
                   {
                       pa.addEventListener("click", displayEachPromo, false);
                   }
                   catch (e)
                   {
                       pa.attachEvent("onclick", displayEachPromo);
                   }
                   document.getElementById("promoArea").appendChild(pa);
              }
              document.getElementById('promos').style.display = "block";
          }
      }
   }
}

var axmlHttp = null;
function displayEachPromo(e)
{
    var id = 0;
    if (e && e.target)
    {
        if (document.getElementById('form'+e.target.name.substring('promo'.length)))
        {
            id = document.getElementById('form'+e.target.name.substring('promo'.length)).promo.value;
        }
    }
    else
    {
        if (document.getElementById('form'+window.event.srcElement.name.substring('promo'.length)))
        {
            id = document.getElementById('form'+window.event.srcElement.name.substring('promo'.length)).promo.value;
        }
    }
    if (id)
    {
      axmlHttp=getXmlHttpObject();
      axmlHttp.open("POST","php/recordPromo.php",true);
      axmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      axmlHttp.send("offer="+id);

      openWin("http://clck.clckjmp.com/tracking202/redirect/off.php?acip="+id+"&pci="+pci, screen.availWidth, screen.availHeight, "");

      window.location.replace("#last");
      window.location.reload();
    }
}

var txmlHttp = null;
function beginTest(e)
{
    document.getElementById("gErrMsg").innerHTML = "";
    document.getElementById("bErrMsg").innerHTML = "";
    document.getElementById("nErrMsg").innerHTML = "";
    document.getElementById("eErrMsg").innerHTML = "";
    document.getElementById("mErrMsg").innerHTML = "";

    var err = 0;

    if (!document.getElementsByName('gender')[0].checked && !document.getElementsByName('gender')[1].checked)
    {
         document.getElementById("gErrMsg").innerHTML = 'Required!';
          err = 1;
    }
    if (document.getElementById('month')[document.getElementById('month').selectedIndex].value == "0")
    {
         document.getElementById("bErrMsg").innerHTML = 'Required!';
          err = 1;
    }
    if (document.getElementById('day')[document.getElementById('day').selectedIndex].value == "0")
    {
         document.getElementById("bErrMsg").innerHTML = 'Required!';
          err = 1;
    }
    if (document.getElementById('year')[document.getElementById('year').selectedIndex].value == "0")
    {
         document.getElementById("bErrMsg").innerHTML = 'Required!';
          err = 1;
    }
    if (document.getElementById('name').value == '')
    {
         document.getElementById("nErrMsg").innerHTML = 'Required!';
          err = 1;
    }
    if (document.getElementById('name').value.indexOf(' ') == -1)
    {
         document.getElementById("nErrMsg").innerHTML = 'Required!';
         err = 1;
    }
    if (!document.getElementById('name').value.substr(0, document.getElementById('name').value.indexOf(' ')).length)
    {
         document.getElementById("nErrMsg").innerHTML = 'Required!';
         err = 1;
    }
    else if(!document.getElementById('name').value.substr(0, document.getElementById('name').value.indexOf(' ')).match(/^([-,a-zA-Z])+$/))
    {
         document.getElementById("nErrMsg").innerHTML = 'Letters only!';
          err = 1;
    }
    if (!document.getElementById('name').value.substr(document.getElementById('name').value.indexOf(' ')+1).length)
    {
         document.getElementById("nErrMsg").innerHTML = 'Required!';
         err = 1;
    }
    else if(!document.getElementById('name').value.substr(document.getElementById('name').value.indexOf(' ')+1).match(/^([-,a-zA-Z])+$/))
    {
         document.getElementById("nErrMsg").innerHTML = 'Letters, "," and "-" only!';
          err = 1;
    }
    if (document.getElementById('email').value == '')
    {
         document.getElementById("eErrMsg").innerHTML = 'Required!';
          err = 1;
    }
    else if(!document.getElementById('email').value.match(/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+(\.[a-zA-Z])+([a-zA-Z])+$/))
    {
          document.getElementById("eErrMsg").innerHTML = 'Valid email required!';
          err = 1;
    }
    if (document.getElementById("mark").style.background.indexOf('box') != -1)
    {
        document.getElementById("mErrMsg").innerHTML = 'Required!';
        err = 1;
    }
   if (!err)
   {
       if (e && e.currentTarget)
       {
           var test = parseInt(e.currentTarget.name.substring('min'.length, e.currentTarget.name.indexOf('l')));

       }
       else
       {
           var test = parseInt(window.event.srcElement.name.substring('min'.length));
       }
       txmlHttp=getXmlHttpObject();
       if (txmlHttp == null)
       {
           document.getElementById("gErrMsg").innerHTML = '*Browser does not support HTTP Request';
       }
       else
       {
            txmlHttp.onreadystatechange=displayInstr;
            txmlHttp.open("POST","php/createUser.php",true);
            txmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            txmlHttp.send("gender="+((document.getElementsByName('gender')[0].checked)?document.getElementsByName('gender')[0].value:document.getElementsByName('gender')[1].value)+
                          "&month="+document.getElementById('month')[document.getElementById('month').selectedIndex].value+
                          "&day="+document.getElementById('day')[document.getElementById('day').selectedIndex].value+
                          "&year="+document.getElementById('year')[document.getElementById('year').selectedIndex].value+
                          "&first="+document.getElementById('name').value.substr(0, document.getElementById('name').value.indexOf(' '))+
                          "&last="+document.getElementById('name').value.substr(document.getElementById('name').value.indexOf(' ')+1) +
                          "&email="+document.getElementById('email').value+
                          "&test="+test);
      }
   }
}

function displayInstr()
{
  if (txmlHttp.readyState == 4)
  {
      if (txmlHttp.status == 200)
      {
          var xmlDoc=txmlHttp.responseXML;
          if (!xmlDoc.getElementsByTagName("ERROR")[0])
          {
              displayInstrCore();
         }
      }
   }
}
function displayInstrCore()
{
      document.getElementById('inputForm').style.display = "none";
      document.getElementById('instructions').style.display = "block";
      if (window.location.hash.indexOf('#instructions') == -1)
      {
          window.location.replace('#instructions');
      }
}
function finishTesting(e)
{
   finished = 1;
   recordResults(e);
}
var rxmlHttp = null;
function recordResults(e)
{
   var err = 0;
   for (var cnt=0; cnt < numQues; cnt++)
   {
        if (document.getElementById('question'+cnt))
        {
            document.getElementById('error'+cnt).innerHTML = "";
            for (var fnd=0, acnt=0; acnt < document.getElementsByName('answer'+cnt).length; acnt++)
            {
                if (document.getElementsByName('answer'+cnt)[acnt].checked)
                {
                    fnd = 1;
                }
            }
            if (!fnd)
            {
               document.getElementById('error'+cnt).innerHTML = "Required!";
               err = 1;
            }
        }
   }
   if (!err && !testErr)
   {
       rxmlHttp=getXmlHttpObject();
       var ans = "";
       for (var cnt=0; cnt < numQues; cnt++)
       {
            if (document.getElementById('question'+cnt))
            {
                for (var acnt=0; acnt < document.getElementsByName('answer'+cnt).length; acnt++)
                {
                    if (document.getElementsByName('answer'+cnt)[acnt].checked)
                    {
                        ans += document.getElementsByName('answer'+cnt)[acnt].value;
                    }
                }
                ans += "|";
           }
       }
            rxmlHttp.onreadystatechange=displayNextQuestions;
            rxmlHttp.open("POST","php/recordResults.php",true);
            rxmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            rxmlHttp.send("ans="+ans.substring(0,ans.length-1));
   }
}
function displayNextQuestions()
{
  if (rxmlHttp.readyState == 4)
  {
      if (rxmlHttp.status == 200)
      {
          var xmlDoc=rxmlHttp.responseXML;
          if (!xmlDoc.getElementsByTagName("ERROR")[0])
          {
              if (!finished)
              {
                 displayTest();
              }
              else
              {
                 displayPromo();
              }
          }
      }
  }
}

var dxmlHttp = null;
function displayTest()
{
       if (!testErr)
       {
           dxmlHttp=getXmlHttpObject();
           dxmlHttp.onreadystatechange=displayQuestions;
           dxmlHttp.open("POST","php/getQuestions.php",true);
           dxmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
           dxmlHttp.send("quan="+numQues);
      }
}

function deleteChildren(node)
{
    var children = node.childNodes;
    for (var cnt = (children.length - 1); cnt >= 0; cnt--)
    {
         deleteChildren(children[cnt]);
         node.removeChild(children[cnt]);
    }
}
function displayQuestions()
{
  if (dxmlHttp.readyState == 4)
  {
      if (dxmlHttp.status == 200)
      {
          document.getElementById('instructions').style.display = "none";
          document.getElementById('test').style.display = "none";
          if (window.location.hash.indexOf('#questions') == -1)
          {
              window.location.replace('#questions');
          }
          var xmlDoc=dxmlHttp.responseXML;
          if (xmlDoc.getElementsByTagName("QUESTION") && !xmlDoc.getElementsByTagName("ERROR")[0])
          {
              var ltr = new Array('A','B','C','D','E');
              deleteChildren(document.getElementById("testArea"));
              for (var ncnt = 0, qcnt = 0; qcnt < xmlDoc.getElementsByTagName("QUESTION").length; qcnt++)
              {
                  var sdiv = document.createElement("div");
                  sdiv.className="testSubArea";
                  sdiv.id="question"+qcnt;
                  sdiv.name="question"+qcnt;

                  var ediv = document.createElement("div");
                  ediv.className="tErrMsg";
                  ediv.name="error"+qcnt;
                  ediv.id="error"+qcnt;
                  sdiv.appendChild(ediv);
                  if (xmlDoc.getElementsByTagName("QUESTION_IMAGE")[qcnt].childNodes[0])
                  {
                          var aimg = document.createElement("img");
                          aimg.className = "quesImg";
                          aimg.name = "quesImg"+qcnt;
                          aimg.id = "quesImg"+qcnt;
                          aimg.src = loc+xmlDoc.getElementsByTagName("QUESTION_IMAGE")[qcnt].childNodes[0].nodeValue;
                          sdiv.appendChild(aimg);
                  }
                  if (xmlDoc.getElementsByTagName("QUESTION_TEXT")[qcnt].childNodes[0])
                  {

                      var chk = xmlDoc.getElementsByTagName("QUESTION_TEXT")[qcnt].childNodes[0].nodeValue.replace(/[\?\s\.%$\/:;=\-+,_"a-zA-Z0-9]/g, '');
                      if (chk == "")
                      {
                          var qdiv = document.createElement("div");
                          qdiv.className="question";
                          qdiv.name="ques"+qcnt;
                          qdiv.id="ques"+qcnt;
                          qdiv.innerHTML = xmlDoc.getElementsByTagName("QUESTION_TEXT")[qcnt].childNodes[0].nodeValue;
                          sdiv.appendChild(qdiv);
                      }
                  }
                  for (acnt = 0; acnt < xmlDoc.getElementsByTagName("ANSWER_CNT")[qcnt].childNodes[0].nodeValue; acnt++, ncnt++)
                  {
                          var ldiv = document.createElement("div");
                          ldiv.className="answerLtr";
                          ldiv.innerHTML = ltr[acnt];
                          sdiv.appendChild(ldiv);

                          var ainp = document.createElement("div");
                          ainp.className="answer";
                          ainp.innerHTML = "<input type=\"radio\" name=\"answer"+qcnt+"\" id=\"answer"+qcnt+"\" value=\""+(acnt+1)+"\">";
                          sdiv.appendChild(ainp);

                          if (xmlDoc.getElementsByTagName("ANSWER_TEXT")[ncnt].childNodes[0])
                          {
                              chk = xmlDoc.getElementsByTagName("ANSWER_TEXT")[ncnt].childNodes[0].nodeValue.replace(/[\?$\s\\/:;%=.\-+,_"a-zA-Z0-9]/g, '');
                              if (chk == "")
                              {
                                  var adiv = document.createElement("div");
                                  adiv.className="answerTxt";
                                  adiv.innerHTML = xmlDoc.getElementsByTagName("ANSWER_TEXT")[ncnt].childNodes[0].nodeValue;
                                  sdiv.appendChild(adiv);
                              }
                          }
                          var br = document.createElement("br");
                          sdiv.appendChild(br);
                      }
                       document.getElementById("testArea").appendChild(sdiv);
              }
              var ba = document.createElement("a");
              ba.className="tBtn";
              ba.href = "#";
              if (!xmlDoc.getElementsByTagName("FINAL")[0])
              {
                  var bdiv = document.createElement("div");
                  bdiv.className="contBtnTxt";
                  bdiv.innerHTML = "Continue";
                  try
                  {
                      ba.addEventListener("click", recordResults, false);
                  }
                  catch (e)
                  {
                     ba.attachEvent("onclick", recordResults);
                  }
              }
              else
              {
                  var bdiv = document.createElement("div");
                  bdiv.className="finishBtnTxt";
                  bdiv.innerHTML = "Finish";
                  try
                  {
                      ba.addEventListener("click", finishTesting, false);
                  }
                  catch (e)
                  {
                     ba.attachEvent("onclick", finishTesting);
                  }
              }
              ba.appendChild(bdiv);
              document.getElementById("testArea").appendChild(ba);
          }
          else
          {
             qnErr = 1;
             document.getElementById("errMsg").innerHTML = 'Test failed!';
         }
         document.getElementById('test').style.display = "block";
     }
  }
}
function chk()
{
   if (document.getElementById("mark").style.background.indexOf('box') == -1)
   {
       document.getElementById("mark").style.background = "url('img/box.gif')";
   }
   else
   {
       document.getElementById("mark").style.background = "url('img/mark.gif')";
   }
}

function keyChk(e)
{
   if (e.target)
   {
      var key = e.which;
   }
   else
   {
      var key = window.event.keyCode;
   }
   if (key == 32)
   {
       chk();
  }
  return true;
}

function initTriggers()
{
   if (!document.getElementById('gender') || !document.getElementById('mark') || !document.getElementById('score') ||
       !document.getElementById('min10l') || !document.getElementById('min20l') || !document.getElementById('promoGol') ||
       !document.getElementById('beginl') || !document.getElementById('terms') || !document.getElementById('privacy'))
   {
       setTimeout("initTriggers()", 10);
   }
   else
   {
       if (window.location.hash.indexOf("results") != -1)
       {
           document.getElementById('results').style.display = "block";
           document.getElementById('tLink').href = loc;
       }
       else if (window.location.hash.indexOf("failed") != -1)
       {
           document.getElementById('failed').style.display = "block";
           document.getElementById('fLink').href = loc;
       }
       else if (window.location.href.indexOf("last") != -1)
       {
           try
           {
            document.getElementById('showPromosl').addEventListener("click", displayAllPromosSub, false);
           }
           catch (e)
           {
                document.getElementById('showPromosl').attachEvent("onclick", displayAllPromosSub);
           }
           document.getElementById('lastStep').style.display = "block";
           checkCompleted();
       }
       else
       {
           try
           {
            document.getElementById('mark').addEventListener("click", chk, false);
           }
           catch (e)
           {
                document.getElementById('mark').attachEvent("onclick", chk);
           }
           try
           {
            document.getElementById('mark').addEventListener("keydown", keyChk, false);
           }
           catch (e)
           {
                document.getElementById('mark').attachEvent("onkeydown", keyChk);
           }
           try
           {
            document.getElementById('min10l').addEventListener("click", beginTest, false);
           }
           catch (e)
           {
                document.getElementById('min10l').attachEvent("onclick", beginTest);
           }
           try
           {
               document.getElementById('min20l').addEventListener("click", beginTest, false);
           }
           catch (e)
           {
               document.getElementById('min20l').attachEvent("onclick", beginTest);
           }
           try
           {
            document.getElementById('beginl').addEventListener("click", displayTest, false);
           }
           catch (e)
           {
                document.getElementById('beginl').attachEvent("onclick", displayTest);
           }
           try
           {
            document.getElementById('promoGol').addEventListener("click", displayAllPromos, false);
           }
           catch (e)
           {
                document.getElementById('promoGol').attachEvent("onclick", displayAllPromos);
           }
           setWins();
           if (testing && (window.location.hash.indexOf("instructions") != -1 ||
                           window.location.hash.indexOf("promoInstructions") != -1  ||
                           window.location.hash.indexOf("promos") != -1  ||
                           window.location.hash.indexOf("questions") != -1))
           {
               if (window.location.hash.indexOf("instructions") != -1)
               {
                    displayInstrCore();
               }
               else if (window.location.hash.indexOf("promoInstructions") != -1)
               {
                   displayPromo();
               }
               else if (window.location.hash.indexOf("promos") != -1)
               {
                   displayAllPromos();
               }
               else if (window.location.hash.indexOf("questions") != -1)
               {
                   displayTest();
               }
           }
           else
           {

               if (window.location.hash != '#' && window.location.hash != '')
               {
                   window.location.assign(window.location.href.substring(0, window.location.href.indexOf(window.location.hash)));
               }
               document.getElementById('inputForm').style.display = "block";
               document.getElementById('gender').focus();
           }
      }
      topScore();
   }
}
window.onload = initTriggers;
