/**
* This function creates an HTTP
* request object.
*
* @param  none
* @return http request object
*/
RE_EMAIL        = new RegExp(/^[A-Za-z0-9](([_|\.|\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([_|\.|\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/);

var THANKYOU_NEWSLETTER_SUBSCRIPTION_MSG = 'Thanks for signing up for the Quizfarm newsletter!';
var ERROR_NEWSLETTER_EMAIL               = 'Please enter a valid email address.'
var REMEMBER_ME_CONFIRM_MSG = 'Do you want to automatically log in to Quizfarm next time?';

var referer = '';

function createRequestObject()
{
   var obj;
   var browser = navigator.appName;

   if(browser == "Microsoft Internet Explorer")
   {
      obj = new ActiveXObject("Microsoft.XMLHTTP");
   }
   else
   {
      obj = new XMLHttpRequest();
   }
   return obj;
}

function genSetRandDARTNumber()
{
 var randDARTNumber = Math.round(Math.random()*1000000000000);

 return randDARTNumber;
}

function isLoggedIn()
{
   var userHttpObj  = createRequestObject();

   userHttpObj.open("POST", "/run.php/Authenticate" , true);
   userHttpObj.onreadystatechange = function () {
      if(userHttpObj.readyState == 4)
      {
         if (userHttpObj.responseText)
         {
            document.location = "/run.php/Sell";
         }

         showLoginDivForm('/run.php/Login','Register User Login');
         referer = "/run.php/Sell";
      }
   };
   userHttpObj.send(null);
}

function getDivContent(toDiv, toURL, showStyle)
{
   var divHttpObj  = createRequestObject();

   divHttpObj.open("POST", toURL , true);
   divHttpObj.onreadystatechange = function () {
      if(divHttpObj.readyState == 4)
      {
         if(divHttpObj.responseText == 'logout')
         {
            var callbackfunc = "getDivContent";

            var params = new Array;

            params[0]  = callbackfunc;
            params[1]  = "'" + toDiv     + "'";
            params[2]  = "'" + encodeURIComponent(toURL) + "'";
            params[3]  = "'" + showStyle + "'";

            showLoginDivForm('/run.php/Login','Register User Login' , params);

            return true;
         }

         thisDiv               = document.getElementById(toDiv);
         thisDiv.style.display = showStyle;
         thisDiv.innerHTML     = divHttpObj.responseText;
      }
   };

   divHttpObj.send(null);
}

function clearBatchCounter(toDiv , toURL , showStyle)
{
   if(document.getElementById('count').innerHTML == '0')
   {
      return false;
   }

   var clrBatchObj = createRequestObject();

   clrBatchObj.open('POST' , toURL , true);
   clrBatchObj.onreadystatechange = function()
   {
      if(clrBatchObj.readyState == 4)
      {
         if(clrBatchObj.responseText =='logout')
         {
            var callbackfunc = "clearBatchCounter";

            var params = new Array;

            params[0]  = callbackfunc;
            params[1]  = "'" + toDiv     + "'";
            params[2]  = "'" + encodeURIComponent(toURL) + "'";
            params[3]  = "'" + showStyle + "'";

            showLoginDivForm('/run.php/Login','Register User Login' , params);

            return true;
         }

         if(clrBatchObj.responseText !='logout')
         {
            var photoId = clrBatchObj.responseText.split(',');

            if(photoId.length > 0)
            {
               thisDiv = document.getElementById(toDiv)

               thisDiv.style.display = showStyle;
               thisDiv.innerHTML     = 0;

               for(var i=0; i < photoId.length ; i++)
               {
                  thumbBasketRem(photoId[i]);
               }
            }
         }
      }
   }

   clrBatchObj.send(null);
}


function divShowHide(divName, showStyle) {
  thisDiv = document.getElementById(divName)
  thisDiv.style.display = (thisDiv.style.display == 'none') ? showStyle : 'none';
}

function switchImage(imgID, source1, source2) {
  thisImg = document.getElementById(imgID)
  thisSrc = thisImg.src;

  if (thisSrc.indexOf(source1) > 0)
  {
     thisImg.src = source2;
  }
  else if(thisSrc.indexOf(source2) > 0)
  {
     thisImg.src = source1;
  }
}


function submitLoginForm(event)
{
   if(event.keyCode == 13) loginUser();
   return;
}


function loginUser()
{
   var loginForm = document.login_form;

   if(loginForm.username.value == '' || loginForm.password.value == '')
      {
         alert('Please enter username and password.');
         return false;
      }


   var autoLoginCookieObj = new Cookie(document,'quizfarm_autologin');
   autoLoginCookieObj.setPath('/');


   if(!autoLoginCookieObj.load())
   {
      if(confirm(REMEMBER_ME_CONFIRM_MSG))
      {
         loginForm.remember_user.value = 'yes';
      }
   }

   if(document.location.href.indexOf('/run.php/QuizRunner') != -1)
   {
      document.getElementById('from').value = 'QuizRunner';
   }

   loginForm.submit();

   return;
}

function showHeaderArea(response)
{
   var responseArray = response.responseText.split('^^^');


   if(responseArray.length == 2)
   {
      $('header_msg').innerHTML = responseArray[1];
   }
   else
   {
      $('header_login_area').innerHTML = response.responseText;
   }

}

function logoutUser()
{
      location.href = "/run.php/Logout";
}

function editUserInfo()
{
      location.href = "/run.php/UserManager?cmd=edit";
}

function searchQuiz()
{

   var search_key = $F('searchBox');

   if(search_key.length <= 0)
   {
      return false;
   }
   return true;

}

function saveNewsletter()
{
   var email = $F('email');

   if(!email || !RE_EMAIL.exec($F('email')))
   {
      alert(ERROR_NEWSLETTER_EMAIL);
      return false;
   }

   var url  = '/run.php/Newsletter';
     var pars = 'email=' + escape(email);

     var myAjax = new Ajax.Request(url,
                {
                   method     : 'get',
                   parameters : pars,
                   onComplete : showSubmitNewsletterResponse
                });

    if(OMNITURE == true) createPageView('Quizfarm');
}

function showSubmitNewsletterResponse(responseText)
{
   $('newsletter').innerHTML = THANKYOU_NEWSLETTER_SUBSCRIPTION_MSG;
}

function luckyQuiz(from)
{
   var arrayLength;
   var randomNum;
   var quizId;

   if(from == 'weeks')
   {
      arrayLength = weeksLuckyQuizzes.length;
      randomNum   = (Math.round((Math.random()*(arrayLength-1))));
      quizId      = weeksLuckyQuizzes[randomNum];
   }
   else if(from == 'todays')
   {
      arrayLength = todaysLuckyQuizzes.length;
      randomNum   = (Math.round((Math.random()*(arrayLength-1))));
      quizId      = todaysLuckyQuizzes[randomNum];
   }
   else
   {
      arrayLength = luckyQuizzes.length;
      randomNum   = (Math.round((Math.random()*(arrayLength-1))));
      quizId      = luckyQuizzes[randomNum];
   }

   window.location = '/run.php/QuizRunner?quiz_id=' + quizId;
}

function isLoggedIn()
{
   var status;
   var url = '/run.php/Login?cmd=is_logged_in';

   new Ajax.Request(url,
   {
       method        : 'post'
       ,asynchronous : false
       ,onSuccess    : function(transport)
                       {
                          status = (transport.responseText == 1) ? true : false;
                       }
   });

   return status;
}

function changeQuizType(sectionName)
{
   var quizType    = $('quiz_type').options[$('quiz_type').selectedIndex].value;

   if(quizType == 'all')
   {
      window.location = '/' + sectionName;
   }
   else
   {
      window.location = '/' + sectionName + '/' + quizType;
   }
}

function handleFaceBookLogin()
{
   if(document.location.href.indexOf('/run.php/QuizRunner') != -1)
   {
      window.location = '/run.php/Login?cmd=login_facebook_user&from=QuizRunner';
   }
   else
   {
      window.location = '/run.php/Login?cmd=login_facebook_user';
   }
}