// ** *************************************************************************** ** //
// **                                                                             ** //
// ** Main.js - file for different javascripts                                    ** //
// **                                                                             ** //
// ** Created by Tibor(tibor@planetsg.com)                                        ** //
// **                                                                             ** //
// ** Last Modified by Tibor(tibor@planetsg.com)                                  ** //
// ** Last Change Date: Macrh, 17 2008. 									    			              ** //
// **                                                                             ** //
// ** *************************************************************************** ** //

var calResponder = {
         onCreate: function() {

         $('ajaxloadinfo').style.display = 'block';
         Ajax.activeRequestCount++;

        },

        onComplete: function() {

         $('ajaxloadinfo').style.display = 'none';
          Ajax.activeRequestCount--;
        }
    }

 Ajax.Responders.register(calResponder);

/* INIT EVENT HANDLER*/
Event.observe( window, 'load', function() {
SetCaptcha();
}
);

var ShowProcess = function() {
  $('captchasrc').src = 'System/Image/spinner.gif';
}

var StopProcess = function(id) {
  $(id).innerHTML = "Data not available.";
}

function SetCaptcha() {

  if($('chbulreg')) {

      var url="System/Ajax/Captcha.php";
      var pars = 'sid=' + Math.random();

      var prtAjax = new Ajax.Request(url, {
      parameters: pars,
        onCreate: function () {
                  ShowProcess();
                },
      onSuccess: function(response) {

                  if(response.responseText.length > 0) {

                  var res = response.responseText.split("+");
                  $('captchasrc').src = res[0];
                  $('captchakey').value = res[1];
                  $('capthasubmit').style.display = 'block';
                  }

            } ,
     onFailure: function(){
                StopProcess('captchainfo');
                $('capthasubmit').innerHTML = '';
            }
          }
        );

  }
}

function CheckLCBSForm() {

      if(cleanSend()) {

      var captchakey = $('captchakey').value;
      var captcha = $('captcha').value;

      var mail = $('email').value;
      var first = $('first_name').value;
      var last = $('last_name').value;

      var url="System/Ajax/CL_Subscriber.php";
      var pars = 'ck=' + captchakey + '&wk=' + captcha + '&mail=' + mail + '&first=' + first + '&last=' + last + '&sid=' + Math.random();

      var prtAjax = new Ajax.Request(url, {
      parameters: pars,
        onCreate: function () {
                  ShowProcess();
                },
      onSuccess: function(response) {

                  $('captchaok').innerHTML = "<span style='font-weight:normal;font-size:94%;color:#000000'>If you'd like to receive monthly email notifications of the latest Catechetical Leader, subscribe below.</span>";
                  $('captcha').value = '';
                  $('captchainfo').innerHTML = '';

                  if(response.responseText.length > 0) {
                  var res = response.responseText.split("+");
                   //alert(res[0]);
                  $('captchasrc').src = res[0];

                  $('captchakey').value = res[1];

                  if(res[2] == '105') {
                  $('captchainfo').innerHTML = res[3];
                  } else if(res[2] == '106') {
                  $('captchaok').innerHTML = res[3];
                  }

                  $('capthasubmit').style.display = 'block';
                  }

                  if(res[2] == '104') {
                  $('captchaok').innerHTML = res[3];

                       var allNodes = $$('#chbulform input');

                        for(i = 0; i < allNodes.length; i++) {
                        if(allNodes[i].type == 'text') {
                        allNodes[i].value = '';
                        }
                       }


                  }

            } ,
     onFailure: function(){
                StopProcess('captchainfo');
                $('capthasubmit').innerHTML = '';
            }
          }
        );

        }

}

function CheckBSForm() {

      if(cleanSend()) {

      var captchakey = $('captchakey').value;
      var captcha = $('captcha').value;

      var mail = $('email').value;
      var first = $('first_name').value;
      var last = $('last_name').value;

      var url="System/Ajax/Subscriber.php";
      var pars = 'ck=' + captchakey + '&wk=' + captcha + '&mail=' + mail + '&first=' + first + '&last=' + last + '&sid=' + Math.random();

      var prtAjax = new Ajax.Request(url, {
      parameters: pars,
        onCreate: function () {
                  ShowProcess();
                },
      onSuccess: function(response) {

                  $('captchaok').innerHTML = '';
                  $('captcha').value = '';
                  $('captchainfo').innerHTML = '';

                  if(response.responseText.length > 0) {
                  var res = response.responseText.split("+");
                   //alert(res[0]);
                  $('captchasrc').src = res[0];

                  $('captchakey').value = res[1];

                  if(res[2] == '105') {
                  $('captchainfo').innerHTML = res[3];
                  } else if(res[2] == '106') {
                  $('captchaok').innerHTML = res[3];
                  }

                  $('capthasubmit').style.display = 'block';
                  }

                  if(res[2] == '104') {
                  $('captchaok').innerHTML = res[3];

                       var allNodes = $$('#chbulform input');

                        for(i = 0; i < allNodes.length; i++) {
                        if(allNodes[i].type == 'text') {
                        allNodes[i].value = '';
                        }
                       }


                  }

            } ,
     onFailure: function(){
                StopProcess('captchainfo');
                $('capthasubmit').innerHTML = '';
            }
          }
        );

        }

}

// WINDOW FUNCTIONS
function newwindow(url)
  {
  	newwindow=window.open(url);
  	if (window.focus) {newwindow.focus()}
  	return false;
  }

function open_url(urltoopen,menubar,scrollbars,resizable,width,height)
  {
    window.open(urltoopen,"_blank","toolbar=no, location=no, directories=no, status=no, menubar=" + menubar + ", scrollbars="+ scrollbars + ", resizable=" + resizable + ", copyhistory=no, innerWidth=0, innerHeight=0, width=" + width + ", height=" + height);
  }


function cleanString(string) {

      var cleaned = string.replace(/[<>]/gi, '').replace(/&lt;/gi, '').replace(/&gt;/gi, '').replace(/alert\(/gi, '').replace(/[#!\+$]/gi, '');
      //cleaned = escape(cleaned);

      return cleaned;
}

function prepareSearch() {

      var string = document.getElementById('searchField').value;

      if(string != " Search" && string.length > 1) {

      document.getElementById('searchField').value = cleanString(string);
      //alert(cleaned);
      //window.location.href='System/Search.php?Search='+cleaned;
      document.SearchHeader.submit();
      return true;
      } else {

          if(string == " Search") {

          alert('Missing search string.');
          return false;

          } else if(string.length < 2) {

           alert('Minimum search string length is two characters.');
           return false;
          }
      }
		  return false;

}

function cleanSend() {

      var string = $('email').value;

      if(string.length > 1) {

      string = cleanString(string);

      if (check(string)==false){
      return false
      }

      $('email').value = cleanString(string);
      $('first_name').value = cleanString($('first_name').value);
      $('last_name').value = cleanString($('last_name').value);

      //document.EmailForm.submit();
      /*
      var theForm = document.forms['EmailForm'];
      //theForm.target = '_top';
      theForm.action = "System/Ajax/SaveEmail.php";
      theForm.method = 'post';
      theForm.submit();
       */
      return true;
      } else {

          alert('Missing email address.');
          return false;


      }
		  return false;

}


// EMAIL ADDRESS VALIDATOR
function check(adr) {

    var esc = adr.toLowerCase();
    var kw = 0;
    for (var i=0; i < esc.length; i++) {
    var ch = esc.charAt(i);
    if (ch == '@')
    	kw += 1;
    }
    if (kw!=1){
    alert("Error type: missing or multiple instances of @ in email address!");
    return(false);
    }
    var filter=/^.+@.+\..{2,3}$/
    if (!filter.test(esc)){
    alert("Error type: missing or wrong character in email address!");
    return(false);
    }
    txt=esc.split("@");
    if (txt[1].indexOf("..")>1) {
    alert("Error type: multiple use of dot!");
    return(false);
    }
    if (esc.indexOf(" ")>0){
    alert("Error type: a space between letters!");
    return(false);
    }
    adr.value=esc;
    return(true);
  }