//function checkDomain(){
//    clearOrderDomResult();
//   
//      $.ajax({
//        type: 'POST',
//        url: '/modules/order/order/whois/procFrmWhois.php',
//        data: "domain=" + document.getElementById('domain').value,
//        success: function(data){
           //$("#checkDomResult").hide().html(data).fadeIn(700);
//           $("#checkDomResult").html(data);           
//        }
//      });
//          
//     return false;
//}

var automatischeIncassoString   = 'Automatische Incasso';
var bankOverschrijvingString    = 'Bank Overschrijving';
var iDealString                 = 'iDeal';

var productStatusMove = 'V';
var productStatusNew  = 'N';
var TLDcheckArray = new Array();
var popupStatus = 0;
var DomainCheckInterval;

$(function() {
    
})

$(document).ready(function() {
 //abortDomainChecks();
});

$.ajaxSetup({
    beforeSend: function() {
        $(window).bind('beforeunload', function() {
                abortDomainChecks();
        });
    }
});

function hideErrorLabels_moveToken()
{
    //alert($(".error").val());
    $(".error").hide();
   
    //Hint in textboxen zetten de property : title
    
//    $('input[type="text"]').each(function(){

//        this.value = $(this).attr('title');
//        $(this).addClass('text-label');

//        $(this).focus(function(){
        
//            if(this.value == $(this).attr('title')) {
//                this.value = '';
//                $(this).removeClass('text-label');
//            }
//        });

//        $(this).blur(function(){
//            if(this.value == '')
//            {
//                this.value = $(this).attr('title');
//                $(this).addClass('text-label');
//            }
//        });
//    });    
}

function showErrorLabels_moveToken()
{
    $(".error").hide().fadeIn(400);
}

function abortDomainChecks()
{   
    $.each(TLDcheckArray, function(index, value)
    {
        if (TLDcheckArray[index][0].readyState != 4)
        {
            TLDcheckArray[index][1] = true;
            TLDcheckArray[index][0].abort();
        }
    });   
}

function resumeDomainChecks()
{
    $.each(TLDcheckArray, function(index, value)
    {
        if (TLDcheckArray[index][1])
        {
            TLDcheckArray[index] = setElementContentAndCheck(TLDcheckArray[index][2], TLDcheckArray[index][3]);
        }
    });

    if (DomainCheckInterval != undefined)
    {
        clearInterval(DomainCheckInterval);
    }
}

function checkDomain( prod_array, domainName ) 
{
   //alert(prod_array + " " + domainName);
   //clearOrderDomResult(); // Overbodig bij een submit handig bij een onclickevent

   //Check processes aborten; er is opnieuw een domain-check request gedaan
   abortDomainChecks();

   $.each(prod_array, function(index, value) 
   { 
        TLDcheckArray.push(setElementContentAndCheck(value, domainName));
   });
   
   return false;
}

function setElementContentAndCheck( prodID, domainName )
{
    
    $("#TLDstatus" + prodID).html(
                                    '<div class="domainCheckStatusCell">' +
                                        '<img src="/images/ajax-loader.gif" />' +
                                    '</div>' +
                                    '<div class="domainCheckPriceCell">' +
                                    '</div>' +
                                    '<div class="domainCheckActionCell">' +
                                    '</div>'
                                 );

   //Alle check processes toevoegen aan het TLDcheckArray
   var request = $.ajax({
        type: 'POST',
        url: '/modules/order/order/whois/domainCheck.php',
        async: true,
        data: "domain=" + domainName + "&prodID=" + prodID,
        success: function(data)
        {
            $("#TLDstatus" + prodID).hide().html(data).fadeIn(700);
            //$("#TLDstatus" + prodID).html(data).show();
        }
    });
    
    var checkObj = new Array();
    checkObj[0] = request;
    checkObj[1] = false; //niet gecanceled, true wel
    checkObj[2] = prodID;
    checkObj[3] = domainName;
    
    return checkObj;
}

function loadHostingPlansPopup()
{    
    //Scrollbar van de body verbergen
    document.body.style.overflow = "hidden";
    
    //loads popup only if it is disabled    
    if(popupStatus==0){        
        $("#backgroundPopupHostingPlans").css({
            "opacity": "0.7"
        });
        $("#backgroundPopupHostingPlans").fadeIn("fast");
        $("#popupHostingPlans").fadeIn("fast");
        popupStatus = 1;
    }  
}

function disableHostingPlansPopup()
{
    //disables popup only if it is enabled
    if(popupStatus==1){
        $("#backgroundPopupHostingPlans").fadeOut("fast");
        $("#popupHostingPlans").fadeOut("fast");
        popupStatus = 0;
    }
    
    //Scrollbar van de body weer tonen
    document.body.style.overflow = "visible";    
}

function removeHostingPlansPopupContent()
{
        //Content weer weghalen
        var body = document.getElementsByTagName('body') [0];
        var popUpDiv1 = document.getElementById('popupHostingPlans');
        var popUpDiv2 = document.getElementById('backgroundPopupHostingPlans');

        if (popUpDiv1 != null)
        {
            body.removeChild(popUpDiv1);
        }
        
        if (popUpDiv2 != null)
        {
            body.removeChild(popUpDiv2);
        }
}

function centerHostingPlansPopup()
{
    //Boven naar de pagina gaan
    scrollTo(0,0);
    
    //request data for centering
    var windowWidth = document.documentElement.clientWidth;
    var windowHeight = document.documentElement.clientHeight;
    var popupHeight = $("#popupHostingPlans").height();
    var popupWidth = $("#popupHostingPlans").width();
    //centering
    $("#popupHostingPlans").css({
        "position": "absolute",
        "top": windowHeight/2-popupHeight/2,
        "left": windowWidth/2-popupWidth/2
    });

    //only need force for IE6
    
    $("#backgroundPopupHostingPlans").css({
        "height": windowHeight
    });
}

function bindHostingPlansPopupButtonEvents()
{
    //CLOSING POPUP  
    //Click the x event!
    $("#popupHostingPlansClose").click(function(){  
        disableHostingPlansPopup();  
        });  
    //Click out event!  
    $("#backgroundPopupHostingPlans").click(function(){  
        disableHostingPlansPopup();  
    });  
    //Press Escape event!  
    $(document).keypress(function(e)
    {
        if(e.keyCode==27 && popupStatus==1)
        {
            disableHostingPlansPopup();
        }
    });    
}

function createHostingPlansPopupDivs()
{
    //Popup elements aanmaken
    var body = document.getElementsByTagName('body') [0];
    var newDiv = document.createElement('div');
    newDiv.setAttribute('id', 'popupHostingPlans');
    newDiv.innerHTML = '<a href="#" id="popupHostingPlansClose">X</a>' +
                        'Bezig met laden...'; //De close button
    body.appendChild(newDiv);
    
    var newDiv2 = document.createElement('div');
    newDiv2.setAttribute('id', 'backgroundPopupHostingPlans');
    body.appendChild(newDiv2);    
}

function setHostingPlansPopupContent(content)
{
    $("#popupHostingPlans").html(
        content
    );
    
    //Button events opnieuw binde
    bindHostingPlansPopupButtonEvents();
    DomainCheckInterval = setInterval('resumeDomainChecks()', 1500)
}

function getHostingPlans( domainName, producten_id, product_type_id, product_status_type, state ) 
{     //Product_status_type V(erhuis) of N(ieuw)
                 
      $.ajax({
        type: 'POST',
        url: '/modules/order/order/packages/hostingPlans.php',
        async: true,
        data: "state=" + state + "&domain=" + domainName + "&producten_id=" + producten_id + "&product_type_id=" + product_type_id + "&product_status_type=" + product_status_type,
        success: function(data){
          setHostingPlansPopupContent('<a href="#" id="popupHostingPlansClose">X</a>' + data);
//		  resumeDomainChecks();
        }
      });
    
     //Eerst maken we de dataload call aan en dan alle checks cancellen als user aan het kiezen is.
     abortDomainChecks();
     
     removeHostingPlansPopupContent();
     createHostingPlansPopupDivs();
    
     bindHostingPlansPopupButtonEvents();
     centerHostingPlansPopup();
     loadHostingPlansPopup();

     
     return false;
}

function showHostingPlanInformation(htmldata)
{
    //alert(htmldata);
    $("#hostingPackageInformation").html(htmldata).fadeIn(700);
}

function addToCart( products_array_str, product_status_type, transferTokenNeeded, domainNameWithoutDots)
{
    //alert(products_array_str);
//     abortDomainChecks();
     if ( (product_status_type == productStatusMove) )
     {
        
          movetoken = $("#txtToken").val();

          if ( (movetoken == '') && (transferTokenNeeded) )
          {
              showErrorLabels_moveToken();              
          }else{
              disableHostingPlansPopup();                   
              $.ajax({
                type: 'POST',
                async: true,
                url: '/modules/order/order/productOrder.php',
                data: "products_array_str=" + products_array_str + "&movetoken=" + movetoken,
                success: function(data){
                   //$("#orderDomResult").hide().html(data).fadeIn(500);
                   //$("#orderDomResult").html(data).show();
                   setOrderBtn(domainNameWithoutDots, true,  product_status_type, '');
                   refreshCart();
                }
              });        
        
          }
     }
     
     if (product_status_type == productStatusNew)
     { 
          disableHostingPlansPopup();
          $.ajax({
            type: 'POST',
            async: true,
            url: '/modules/order/order/productOrder.php',
            data: "products_array_str=" + products_array_str,
            success: function(data){
               //$("#orderDomResult").hide().html(data).fadeIn(500);
               //$("#orderDomResult").html(data).show();
               checkDataForHintsAndHintUser(data);
               setOrderBtn(domainNameWithoutDots, true,  product_status_type, '');
               refreshCart();
            }
          });
     }

    return false;    
}

function removeFromCart( index, idString, product_status_type, eventString )
{
    abortDomainChecks();
    $.ajax({
        type: 'POST',
        async: true,
        url: '/modules/order/cart/cartManager.php',
        data: "remove_index=" + index,
        success: function(data){
            refreshCart();
            setOrderBtn(idString, false,  product_status_type, eventString);            
        }
    });    
    
    return false; 
}

function removeParentFromCart( index, product_description, idString,  product_status_type, eventString )
{
    var answer = confirm("Als u het product : " + product_description + " verwijderd dan worden alle gekoppelde producten mee verwijderd.\r\n\r\n" +
                            "Wilt u het product toch verwijderen ?");
    if (answer){
        abortDomainChecks();
        
        $.ajax({
            type: 'POST',
            async: true,
            url: '/modules/order/cart/cartManager.php',
            data: "remove_index=" + index,
            success: function(data){
                refreshCart();
                setOrderBtn(idString, false,  product_status_type, eventString);
            }
        });
    }    
    
    return false;    
}

function setParentFromCart( index )
{
    abortDomainChecks();
    $.ajax({
        type: 'POST',
        async: true,
        url: '/modules/order/cart/cartManager.php',
        data: "parent_index=" + index,
        success: function(data){
            refreshCart();
        }
    });    
    
    return false; 
}

function clearOrderDomResult()
{
    $("#orderDomResult").fadeOut(300);
       
    return false;   
}

function refreshCart()
{   
    $.ajax({
      url: "/modules/order/cart/displayCart.php",
      async: true,
      cache: false,
      success: function(html){
        $("#cartResult").html(html).show();
        UnTip();
      }
    });
    
    resumeDomainChecks();
}

function setOrderBtn( idString, ordered, product_status_type, eventString)
{  
    if (ordered)
    {
            $("#OrderBtn_" + idString).attr("title","Product is in bestelling");
            $("#OrderBtn_" + idString).attr("class","buttonOrdered");
            $("#OrderBtn_" + idString).attr("onClick","return false");
    }
    else
    {  
            if (product_status_type == productStatusNew)
            {
                $("#OrderBtn_" + idString).attr("title","Bestellen");
                $("#OrderBtn_" + idString).attr("class","buttonOrder");
                $("#OrderBtn_" + idString).attr("onClick",eventString);
            }            
            
            if (product_status_type == productStatusMove)
            {
                $("#OrderBtn_" + idString).attr("title","Verhuizen");
                $("#OrderBtn_" + idString).attr("class","buttonMove");
                $("#OrderBtn_" + idString).attr("onClick",eventString);                
            }            
    }

    return false;    
}

function hideErrorLabels_step2()
{
    $(".error").hide();    
}

function showErrorLabels_step2()
{
    //De errors eerst weer resetten
    hideErrorLabels_step2();
    
    //true geven bij een error    
    var hasError = false;
    
    if ($("#id_voornaam").val().length == 0 || $("#id_achternaam").val().length == 0)
    {
        $("#error_voorachternaam").show();
        hasError = true;
    }
    
    if ($("#id_geslacht").val().length == 0)
    {
        $("#error_geslacht").show();
        hasError = true;
    }    
    
    if ($("#id_land").val().length == 0)
    {
        $("#error_land").show();
        hasError = true;
    }
    
    if ($("#id_land").val() == "Nederland")
    {
        if ( !check_nederlandse_postcode($("#id_postcode").val()) )
        {
            $("#error_postcodeplaats").show();
            hasError = true;        
        }
    }
    
    if ( $("#id_straatnaam").val().length == 0 || (!checkAddressNumber( $("#id_huisnummer").val() ) ) )
    {
        $("#error_straatnaamhuisnummer").show();
        hasError = true;
    }
    
    if ($("#id_postcode").val().length == 0 || $("#id_plaats").val().length == 0)
    {
        $("#error_postcodeplaats").show();
        hasError = true;
    }            
    
    return hasError;    
}

function hideErrorLabels_step3()
{
    $(".error").hide();
}

function showErrorLabels_step3()
{
    hideErrorLabels_step3();
    
    var hasError = false;
    
    if ( !check_nederlandse_telnr( $("#id_telefoonnummer").val() ) )
    {
        $("#error_telefoonnummer").show();
        hasError = true;
    }
    
    if (($("#id_email1").val().length == 0 || $("#id_email2").val().length == 0) ||
        ($("#id_email1").val() != $("#id_email2").val()) || (!checkEmail($("#id_email2").val())))
    {
        $("#error_email").show();
        hasError = true;
    }
    
    if (($("#id_password1").val().length == 0 || $("#id_password2").val().length == 0) ||
        ($("#id_password1").val() != $("#id_password2").val()))
    {
        $("#error_password").show();
        hasError = true;
    }    
    
    if ($('input:radio[name=radioGroupBetaalkeuze]:checked').val() == automatischeIncassoString)
    {
        if ($("#id_rekeningnummer").val().length <= 0)
        {
            $("#error_rekeningnummer").show();
            hasError = true;
        }
        
        if ($("#id_rekeninghouder").val().length <= 1)
        {
            $("#error_rekeninghouder").show();
            hasError = true;
        }        
    }

    return hasError;
}

function hideErrorLabels_step4()
{
    $(".error").hide();    
}

function showErrorLabels_step4()
{
    hideErrorLabels_step4();
    
    var hasError = false;
      
    if ($('input:checkbox[name=chkBox_agree]:checked').val() == null)
    {
        $("#error_chkBox_agree").show();
        hasError = true;
    }

    return hasError;    
}

function goToStep1()
{
    window.location = '?page=1';
}

function goToStep2()
{
    window.location = '/checkdomein.html?page=2';
}

function goToStep3()
{
    window.location = '?page=3';
}

function goToStep4()
{
    window.location = '?page=4';
}

function goToStep5(agreement)
{   
    window.location = '?page=5&agreement=' + agreement;
}

function goToStep1FromStep2()
{
    
    //Eerst de data posten en opslaan voordat we terug gaan
    
    var bedrijfsnaam    = urlencode($('#id_bedrijfsnaam').attr('value'));
    var voornaam        = urlencode($('#id_voornaam').attr('value'));
    var achternaam      = urlencode($('#id_achternaam').attr('value')); 
    var geslacht        = urlencode($('#id_geslacht').attr('value'));
    var land            = urlencode($('#id_land').attr('value'));
    var straatnaam      = urlencode($('#id_straatnaam').attr('value'));
    var huisnummer      = urlencode($('#id_huisnummer').attr('value'));
    var toevoeging      = urlencode($('#id_toevoeging').attr('value'));
    var postcode        = urlencode($('#id_postcode').attr('value'));
    var plaats          = urlencode($('#id_plaats').attr('value'));

     $.ajax({  
         type: "POST",  
         url: "/modules/order/order/procFrmRegistration.php",  
         data:  "type=userRegistration" +
                "& bedrijfsnaam=" + bedrijfsnaam + 
                "& voornaam=" + voornaam + 
                "& achternaam=" + achternaam + 
                "& geslacht=" + geslacht + 
                "& land=" + land + 
                "& straatnaam=" + straatnaam +
                "& huisnummer=" + huisnummer +
                "& toevoeging=" + toevoeging +
                "& postcode=" + postcode + 
                "& plaats=" + plaats,  
         success: function(){
            goToStep1();
         }  
     });

}

function goToStep3FromStep2()
{
    //Eerst data opslaan en dan naar volgende stap
    
    var bedrijfsnaam    = urlencode($('#id_bedrijfsnaam').attr('value'));
    var voornaam        = urlencode($('#id_voornaam').attr('value'));
    var achternaam      = urlencode($('#id_achternaam').attr('value')); 
    var geslacht        = urlencode($('#id_geslacht').attr('value'));
    var land            = urlencode($('#id_land').attr('value'));
    var straatnaam      = urlencode($('#id_straatnaam').attr('value'));
    var huisnummer      = urlencode($('#id_huisnummer').attr('value'));
    var toevoeging      = urlencode($('#id_toevoeging').attr('value'));
    var postcode        = urlencode($('#id_postcode').attr('value'));
    var plaats          = urlencode($('#id_plaats').attr('value'));
   
     $.ajax({  
         type: "POST",  
         url: "/modules/order/order/procFrmRegistration.php",  
         data:  "type=userRegistration" +
                "& bedrijfsnaam=" + bedrijfsnaam + 
                "& voornaam=" + voornaam + 
                "& achternaam=" + achternaam + 
                "& geslacht=" + geslacht + 
                "& land=" + land + 
                "& straatnaam=" + straatnaam + 
                "& huisnummer=" + huisnummer + 
                "& toevoeging=" + toevoeging + 
                "& postcode=" + postcode + 
                "& plaats=" + plaats,  
         success: function(){
             if (!(showErrorLabels_step2()))
             {
                goToStep3();
             }
         }  
     });
}

function goToStep2FromStep3()
{
    //Eerst data opslaan en dan naar volgende stap
    
    var telefoonnummer      = urlencode($('#id_telefoonnummer').attr('value'));
    var email               = urlencode($('#id_email2').attr('value'));

    var password            = urlencode($('#id_password2').attr('value'));
    
    var betalingsmethode    = $('input:radio[name=radioGroupBetaalkeuze]:checked').val();
    var rekeningnummer      = $('#id_rekeningnummer').attr('value');
    var rekeninghouder      = $('#id_rekeninghouder').attr('value');
    
    telefoonnummer = telefoonnummer.replace(/\s+/g, ''); //spaties verwijderen
    
    if (rekeninghouder != undefined)
    {
        rekeninghouder = urlencode(rekeninghouder);
    }
    else
    {
        rekeninghouder = '';
    }

    if (rekeningnummer != undefined)
    {
        rekeningnummer = urlencode(rekeningnummer);
    }
    else
    {
        rekeningnummer = '';
    }
    
     $.ajax({  
         type: "POST",  
         url: "/modules/order/order/procFrmRegistration.php",  
         data:  "type=paymentRegistration" +
                "& telefoonnummer=" + telefoonnummer + 
                "& email=" + email +
                "& password=" + password + 
                "& rekeningnummer=" + rekeningnummer + 
                "& rekeninghouder=" + rekeninghouder +
                "& betalingsmethode=" + betalingsmethode,  
         success: function(data){
            goToStep2();
         }  
     });
}

function goToStep4FromStep3()
{
     //Eerst data opslaan en dan naar volgende stap
    
    var telefoonnummer      = urlencode($('#id_telefoonnummer').attr('value'));
    var email               = urlencode($('#id_email2').attr('value'));
    
    var password            = urlencode($('#id_password2').attr('value'));
    
    var betalingsmethode    = $('input:radio[name=radioGroupBetaalkeuze]:checked').val();
    var rekeningnummer      = $('#id_rekeningnummer').attr('value');
    var rekeninghouder      = $('#id_rekeninghouder').attr('value');

    telefoonnummer = telefoonnummer.replace(/\s+/g, ''); //Spaties verwijderen
    
    if (rekeninghouder != undefined)
    {
        rekeninghouder = urlencode(rekeninghouder);
    }
    else
    {
        rekeninghouder = '';
    }

    if (rekeningnummer != undefined)
    {
        rekeningnummer = urlencode(rekeningnummer);
    }
    else
    {
        rekeningnummer = '';
    }
        
     $.ajax({  
         type: "POST",  
         url: "/modules/order/order/procFrmRegistration.php",  
         data:  "type=paymentRegistration" +
                "& telefoonnummer=" + telefoonnummer + 
                "& email=" + email +
                "& password=" + password +
                "& rekeningnummer=" + rekeningnummer + 
                "& rekeninghouder=" + rekeninghouder +
                "& betalingsmethode=" + betalingsmethode,
         success: function(){
             if (!(showErrorLabels_step3()))
             {
                goToStep4();
             }
         }  
     });
}

function goToStep5FromStep4()
{
    var conditionsAgreement = $('input:checkbox[name=chkBox_agree]:checked').val();

    if (!(showErrorLabels_step4()))
    {
        goToStep5( (conditionsAgreement != null) );
    }   
}

function radioGroupBetaalkeuzeChange(rekeningnummer, rekeninghouder, value)
{
    if (value == automatischeIncassoString)
    {
        rekeningnummer = urldecode(rekeningnummer);
        rekeninghouder = urldecode(rekeninghouder);    
        
        //input forms weergeven en vullen met waardes rekeningnummer en rekeninghouder
        $("#rekeningInfo").html('<label class="error" id="error_rekeningnummer"><font color="red">* U dient een geldig Rekeningnummer in te vullen.</font></label>' +
                                '<br/>' +    
                                '<label>Rekeningnummer</label>' +
                                '<input id="id_rekeningnummer" type="text" value="' + rekeningnummer + '" />' +
                                '<br/>' +
                                '<label class="error" id="error_rekeninghouder"><font color="red">* U dient een geldige houder van het Rekeningnummer in te vullen.</font></label>' +
                                '<br/>' +
                                '<label>Rekeninghouder</label>' +
                                '<input id="id_rekeninghouder" type="text" value="' + rekeninghouder + '" />'
                                ).show();
    }
    
    if ((value == bankOverschrijvingString) || (value == iDealString)  || (value == ''))
    {
        $("#rekeningInfo").html('').show();
    }   
}

function checkDataForHintsAndHintUser(value_str)
{
    if (value_str != '')
    {
        alert(value_str);
    }
}

function urlencode(str) {    
    str = str.replace('&', '__38__');
    str = str.replace('+', '__43__');    
    str = escape(str);
    
//    str = str.replace('%20', '+');
//    str = str.replace('*', '%2A');
//    str = str.replace('/', '%2F');
//    str = str.replace('@', '%40');
    
    return str;
}

function urldecode(str) {
    str = str.replace('__38__', '&');
    str = str.replace('__43__', '+');
    str = unescape(str);
    
    return str;
}

function checkAddressNumber(str) {
    return (str.match(/(^[0-9]{1,4}[a-zA-Z]{0,6})$/i))
}

function checkEmail(str) {
    return (str.match(/(^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})$/i));
}

function check_nederlandse_telnr(str) {
  // De SIDN manier : return (str.match( /(\+[0-9]{1,3}\.[0-9]{1,14})$/i ));
  return ( str.match( /(\(\+[0-9]{1,3}\)+[0-9]{9,14})$/i ));
}

function check_nederlandse_postcode(str) {
  //str=str.replace(/(^\s*)|(\s*$)/g, "");
  
  return (str.match(/(^[0-9,(\s)]{4,8}[A-Za-z]{2})$/i));
}

