/* STORE24 - (c)2009-2010 DSJ Productions */

var PATH                =   "";
var SITE_COOKIE_PREFIX  =   "jingo_nl";
var HOMEPAGE            =   PATH + "/";

function doAddToBasket(product_id, product_set_id, product_option_id, amount)
{
    // ajax call    
    $.ajax({
        url: PATH+'/ajax_handler.php?action=addToBasket&product_id='+product_id+'&product_set_id='+product_set_id+'&product_option_id='+product_option_id+'&amount='+amount+'&shop=jingo', 
        type: 'get',
        success:function(t)
        {
            //$('shoppingBasketContent').replace(transport.responseText); 
            //$('html,body').animate({scrollTop:0},1000);
            $('#shoppingBasketContainer').html(t);
            //$('#shoppingBasketContent').effect("size", { to: { width: 100 }}, 2000);
            $('#shoppingBasketContainer').fadeIn("slow");
            //showAlrt('shoppingbasket_add_ok');
            parent.document.location = PATH+'/winkelmandje/';
        }
    });    
}

function reloadBasket()
{
    // ajax call    
    $.ajax({
        url: PATH+'/ajax_handler.php?action=showShoppingBasket', 
        type: 'get',
        success:function(t)
        {
            $('#shoppingBasketContainer').html(t);
            $('#shoppingBasketContainer').fadeIn("slow");
            showAlrt('shoppingbasket_add_ok');
        }
    });    
}

function switchProductImage()
{
    img_add_src = $('#productImgAdd img').attr('src');
    img_src = $('#productImg img').attr('src');
    
    img_add_code = $('#productImgAdd img').attr('data-code');
    img_code = $('#productImg img').attr('data-code');
    
    $('#productImg img').attr('src', img_add_src.replace('_100', '_238'));
    $('#productImgAdd img').attr('src', img_src.replace('_238', '_100'));
    
    $('#productImg a').attr('href', '/images/product/full/'+img_add_code+'.jpg');
    $('#productImg img').attr('data-code', img_add_code);
    $('#productImgAdd img').attr('data-code', img_code);
    
    Shadowbox.clearCache();
    Shadowbox.setup(); 

    return false;
}

function createAccountOrderForm(form_id)
{
    $('#'+form_id).ajaxSubmit({
        success:function(data,status,xhr)
        {
            if(xhr.getResponseHeader("Store24-ResponseCode") == '0')
            {
                parent.alrt(data);   
            }
            else if(xhr.getResponseHeader('Store24-ResponseCode') == '1')
            {
                document.miniCreateAccountForm.action = PATH+"/?page=order-form";
                $('#'+form_id).submit();
            }
        }
    });
}

function checkOrderForm(form_id)
{
    var errorfound = false;
    $('#'+form_id).ajaxSubmit({
        url: PATH+"/ajax_handler.php?action=check_orderform",
        type: "POST",
        success:function(t,s,x)
        {
            if(x.getResponseHeader('Store24-ResponseCode') == '0')
            {
                alrt(t);
                return false;
            }
            else
            {
                /*
                if(document.orderform.newsletter && document.orderform.newsletter.type != 'hidden' && document.orderform.newsletter.checked == false)
                {
                    $('#newsLetterReminder').slideDown();
                    //new Effect.ScrollTo('newsLetterReminder', { duration:2.0 });
                    window.setTimeout(function()
                    {
                        document.getElementById(form_id).submit();
                    }, 6000);
                }
                else
                {
                */
                    $('.bestelknop2').attr('disabled',true);
                    $('.bestelknop2').val('Even geduld a.u.b. ...');
                    window.setTimeout(function()
                    {
                        document.getElementById(form_id).submit();
                    },100);
                //}
                
                return false;
            }
        }
    });
    return false;
}


function showContactOverlay()
{
    $('#full_bg').fadeIn(800);
    var sUrl = $('#contactOverlay').find("iframe").attr("data-url");
    $('#contactOverlay').find("iframe").attr("src", sUrl);
    $('#contactOverlayWrapper').show();
    window.setTimeout(function()
    {
        $('#contactOverlayWrapper #contactOverlay div').fadeIn();
    },2500);
    //$('#contactOverlayWrapper img').css('background', 'url('+PATH+'/images/contact/prop.gif) no-repeat');
}

function showAlrt(identifier)
{
    $.ajax({url:PATH+'/ajax_handler.php?action=get_alert&alert_identifier='+identifier, success:function(t){parent.alrt(t); }});    
}

function alrt(c)
{
    $('object').hide();
    $('#full_bg').fadeIn(800);
    $('#alertWrapper').show();
    $('#alert').html(c);
    $('#alert').animate({top:"-15px"});
    $('#alert').delay(3000).animate({top:"-250px"});
    $('#full_bg').delay(2500).fadeOut(800);
    window.setTimeout(function()
    {
        $('object').show();
    },2800);
    
}

function positionAlert()
{
    if($('#alert').length>0)
    {
        documentWidth = getInnerWidth(self);
        document.getElementById('alert').style.left = ((documentWidth / 2) - 200)+'px';
        if(document.getElementById('contactOverlay'))
            document.getElementById('contactOverlay').style.left = ((documentWidth / 2) - 200)+'px';
        windowLoaded = true; 
    }
}

function checkContactForm(form)
{
    if(form.naam.value == "" || form.naam.value == "Uw naam")
        errorForm("U heeft uw naam niet ingevoerd");
    else if((form.telefoon.value == "" && form.email.value == "") || (form.telefoon.value == "Uw telefoonnummer" && form.email.value == "Uw e-mailadres"))
        errorForm("U heeft geen e-mailadres of telefoonnummer ingevoerd. Geef a.u.b. tenminste één van beide door.");
    else if(form.opmerking.value == "" || form.opmerking.value == "Uw vraag/opmerking...")
        errorForm("U heeft geen bericht ingevoerd.");
    else
    {
        $(".focus_activate").each(function(){ if($(this).val()==$(this).attr("rel")) {$(this).val('');}});
        $('#contactForm').submit();
    }
}

function errorForm(error)
{
    alert(error);
    return false;
}

function closeContactOverlay()
{
    $('#contactOverlayWrapper').hide().find('#contactOverlay div').hide();
    $('#full_bg').fadeOut();
}

/* SPITSUUR */

function submitSpitsuurVideo() 
{ 
    $('#video_submission').ajaxSubmit(
    {
        success:function(t,s,x)
        {
            alrt(t);
        }
    }); 
    return false; 
}


function submitSpitsuurPhoto() 
{ 
    $('#photo_submission').ajaxSubmit(
    {
        success:function(t,s,x)
        {
            alrt(t);
        }
    }); 
    return false; 
}


/* ====================== */

function doSubscribeNewsletter()
{
    $('#newsletter').ajaxSubmit({
        data: { action: 'subscribeNewsletter' },
        success: function(t,s,x)
        {
            alrt(t);
            if(x.getResponseHeader('Store24-ResponseCode') == '1')
            {
                window.setTimeout(function(){
                    document.location = HOMEPAGE;
                }, 5000);
            }
        }
    });
}

function doUnsubscribeNewsletter()
{
    $('#newsletter').ajaxSubmit({
        data: { action: 'unsubscribeNewsletter' },
        success: function(t,s,x)
        {
            alrt(t);
        }
    });
}

function checkLogin()
{
    $('#loginform').ajaxSubmit({
        success:function(t,s,x)
        {
            if(x.getResponseHeader('Store24-ResponseCode') == '0')
            {
                parent.alrt(t);   
            }
            else
            {
                $('#loginContainer').html(t); 
            }
        }
    });
}

function checkLoginMiniForm()
{
    $('#miniAccountFormLogin').ajaxSubmit({
        success:function(t,s,x)
        {
            if(x.getResponseHeader('Store24-ResponseCode') == '0')
            {
                parent.alrt(t);   
            }
            else
            {
                parent.document.location.href = parent.document.location;
            }
        }
    });
}

function createAccount(form_id)
{
    $('#'+form_id).ajaxSubmit({
        success:function(t,s,x)
        {
            parent.alrt(t);   
            if(x.getResponseHeader('Store24-ResponseCode') == '1')
            {
                if(form_id == "miniCreateAccountForm")
                {
                    $('#miniAccountForm').children().eq(0).next().remove();
                    $('#miniAccountForm').children().eq(0).next().remove();
                    $('#miniAccountForm').children().css('width', '240px');
                    $('#miniAccountForm').effect("size", { to: { width: 240 }}, 1000);
                }
            }
        }
    });
}

function createAccountOrderForm(form_id)
{
    $('#'+form_id).ajaxSubmit({
        success:function(t,s,x)
        {
            if(x.getResponseHeader('Store24-ResponseCode') == '0')
            {
                alrt(t);   
            }
            else if(x.getResponseHeader('Store24-ResponseCode') == '1')
            {
                document.miniCreateAccountForm.action = PATH+"/?page=order-form";
                $('#'+form_id).submit();
            }
        }
    });
}

function doChangePassword()
{
    ajaxHandler('accountPasswordChangeForm');
    return false;
}

function setNewPasswordFromCreateAccountOrderForm()
{
    /*
    if($('#miniLoginFormAction').length>0)
        $('#miniloginblock_email_field').val(document.miniCreateAccountForm.email.value);
    else
        $('#loginblock_email_field').val(document.miniCreateAccountForm.email.value);
    */
    doGenerateNewPassword();
    return false;
}

function doGenerateNewPassword()
{
    if($('#miniLoginFormAction').length>0)
    {
        $('#miniLoginFormAction').val('doGenerateNewPassword');
        ajaxHandler('miniAccountFormLogin');
        $('#miniLoginFormAction').val('checkLogin');
    }
    return false;
}

// generic function!
function ajaxHandler(form_id)
{
    $('#'+form_id).ajaxSubmit({success:function(t){parent.alrt(t);}});
    return false;
}

function ajaxUpdater(url,elem)
{
    $.ajax({url:url,success:function(t){handleValueUpdate(elem, t)}});
    return false;
}


function doSaveAccountData()
{
    $('#accountData').ajaxSubmit({
       success:function(t)
       {
            if(t == 'ok')
            {
                showAlrt('account_save_ok');   
            }
       } 
    });
}

function checkInCouponCode(coupon_code_input_field)
{
    coupon_code = $('#'+coupon_code_input_field).val();
    if(coupon_code != '')
    {
        $.ajax({ 
            url: PATH+'/ajax_handler.php?action=checkInCouponCode&coupon_code='+coupon_code+'&coupon_code_input_field='+coupon_code_input_field,
            success:function(t,s,x)
            {
                if(coupon_code_input_field == "coupon_code")
                    $('#couponInput').hide();
                else if(coupon_code_input_field == "coupon_code_order_form")
                {
                    if(x.getResponseHeader('Store24-ResponseCode') == '1')
                    {
                        updateTempCouponValue();           
                        updateTempOrderTotal($('#country_id').val());
                        updateTempOrderNetTotal($('#country_id').val());
                    }
                }
                alrt(t);
            }    
        });
    }
}

function doSubmitForm(form_id)
{
    $('#'+form_id).submit();
}

function getRadioValue(field)
{
    if(field && field.length > 0)
    {
        for (var i = 0; i < field.length; i++)
        {
            if (field[i].checked)
            {
                return i;
            }
        }
    }
    return null;
}

function checkMandatoryField(mandatory, field)
{
    if(field.value == "" && mandatory == true)
        field.className = "fieldError";
    else if(field.value != "")
        field.className = "fieldOk";
    else
        field.className = "orderField";
    return true;
}

function updateCartValues(object_name, object_id, new_value, country_id, elem_id) 
{
    url = PATH+"/ajax_handler.php?action=update&object="+object_name+"&object_id="+object_id+"&new_value="+new_value+"&rdm="+Math.floor(Math.random()*10000000000000000);
    $.ajax({
        url: url,
        type: 'get',
        success: function(t,s,x){
            var response = t.split('|');
            if(response[2] != "")
            {
                showAlrt(response[2].replace('#', '|_|'));
            }
            else
            {
                handleValueUpdate(elem_id, response[0]);
                if(object_name == "orderline_temp")
                {
                    handleValueUpdate('orderline_pieceprice_'+object_id, response[1]);
                    handleValueUpdate('orderline_total_incl_vat_'+object_id, response[3]);
                    updateTempOrderTotal(country_id);
                    updateTempOrderNetTotal(country_id);
                    updateTempOrderSubTotal(country_id);
                    updateTempShippingCost(country_id);
                }
            }
        }
    });
}

function updateTempCouponValue()
{
    url = PATH+"/ajax_handler.php?action=get&item=coupon_value&rdm="+Math.floor(Math.random()*10000000000000000);
    ajaxUpdater(url, "coupon_value");
}
function updateTempOrderTotal(country_id)
{
    url = PATH+"/ajax_handler.php?action=get&item=orderlines_total&country_id="+country_id+"&rdm="+Math.floor(Math.random()*10000000000000000);
    ajaxUpdater(url, "orderlines_total");
}
function updateTempOrderNetTotal(country_id)
{
    url = PATH+"/ajax_handler.php?action=get&item=orderlines_nettotal&country_id="+country_id+"&rdm="+Math.floor(Math.random()*10000000000000000);
    ajaxUpdater(url, "orderlines_nettotal");
}
function updateTempOrderSubTotal(country_id)
{
    url = PATH+"/ajax_handler.php?action=get&item=orderlines_subtotal&country_id="+country_id+"&rdm="+Math.floor(Math.random()*10000000000000000);
    ajaxUpdater(url, "orderlines_subtotal");
}
function updateTempShippingCost(country_id)
{
    url = PATH+"/ajax_handler.php?action=get&item=shipment_rate&country_id="+country_id+"&rdm="+Math.floor(Math.random()*10000000000000000);
    ajaxUpdater(url, "shipment_rate");
}

function getNewValue(item, item_id, elem_id) 
{
    url = "/ajax_handler.php?action=get&item="+item+"&item_id="+item_id+"";
    ajaxUpdater(url, elem_id);
}

function handleValueUpdate(elem_id, responseText) 
{
    $('#'+elem_id).html(responseText);
}

function getInnerWidth(win) {
  var winWidth;
  if (win.innerWidth) {
    winWidth = win.innerWidth;
  }
  else if (win.document.documentElement && win.document.documentElement.clientWidth) {
    winWidth = win.document.documentElement.clientWidth;
  }
  else if (document.body) {
    winWidth = win.document.body.clientWidth;
  }
  return winWidth;
}

// generic cookie functions

function setCookie( name, value, expires, path, domain, secure )
{
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime( today.getTime() );
    if ( expires )
    {
        expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date( today.getTime() + (expires) );

    document.cookie = name + "=" +escape( value ) +
    ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
    ( ( path ) ? ";path=" + path : "" ) +
    ( ( domain ) ? ";domain=" + domain : "" ) +
    ( ( secure ) ? ";secure" : "" );
}

function getCookie( check_name ) {
    var a_all_cookies = document.cookie.split( ';' );
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f

    for ( i = 0; i < a_all_cookies.length; i++ )
    {
        a_temp_cookie = a_all_cookies[i].split( '=' );
        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
        if ( cookie_name == check_name )
        {
            b_cookie_found = true;
            if ( a_temp_cookie.length > 1 )
            {
                cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
            }
            return cookie_value;
            break;
        }
        a_temp_cookie = null;
        cookie_name = '';
    }
    if ( !b_cookie_found )
    {
        return null;
    }
}

function number_format(a, b, c, d) {
 a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
 e = a + '';
 f = e.split('.');
 if (!f[0]) {
  f[0] = '0';
 }
 if (!f[1]) {
  f[1] = ',-';
 }
 if (f[1].length < b) {
  g = f[1];
  for (i=f[1].length + 1; i <= b; i++) {
   g += '0';
  }
  f[1] = g;
 }
 if(d != '' && f[0].length > 3) {
  h = f[0];
  f[0] = '';
  for(j = 3; j < h.length; j+=3) {
   i = h.slice(h.length - j, h.length - j + 3);
   f[0] = d + i +  f[0] + '';
  }
  j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
  f[0] = j + f[0];
 }
 c = (b <= 0) ? '' : c;
 return f[0] + c + f[1];
}

/* When the document has been loaded completely ... */

$(document).ready(function() 
{
    positionAlert();
    $(".prod_info[title]").tooltip({ 
        effect: 'slide',
        offset: [35, 0],
        predelay: 250
    });
    $(".add_info[title]").tooltip({ 
        effect: 'slide',
        offset: [35, 0],
        predelay: 250,
        tipClass: 'tooltip_big'
    });
});

