﻿/*              Copyright Jello AB (publ) Copyright Jello AB (publ) Copyright Jello AB (publ)
---------------------------------------------------------------------------------------------
Cerated by : Dennis Lindkvist.
Created    : 2007-12-03


The following functions are included in this Javascript.

Function			Description										Edited date / by
---------------------------------------------------------------------------------------------
centerScreen        Centers element verticaly on screen.            2008-01-03 / Dennis L.
positionDiv         Putts object next to clicked item.              2007-11-12 / Dennis L.
displayDiv          Toggles the specified div on and off                       / Stefan R.
disableIf           disables obj when va.2 is greater than va.1     2007-12-06 / Dennis L.
showIfChecked       Shows div id obj is checked.                    2007-12-12 / Dennis L.
showAccount                                                         2008-01-10 / Stefan R.
isCaptchaCode                                                       2008-01-10 / Dennis L.
isGreaterThan                                                       2007-12-13 / Dennis L.
isAmountOk                                                          2008-01-17 / Stefan R.
isInputEmail                                                        2007-12-13 / Dennis L.
isNotEmpty                                                          2007-12-13 / Dennis L.
isSecure           Checks if url should use https:// or http://     2008-01-16 / Dennis L
redirectFromForm                                                    2007-12-21 / Stefan R.
navigateToPage                                                      2007-12-21 / Stefan R.
selectValue        sets focus on dropdown based on in-value.        2008-01-18 / Dennis L.
*/

var _class_ok = 'ImgOK';
var _class_nok = 'ImgNOK';
var _secure_path = '/Secure/';
var _secure_url = 'https://';
var _non_secure_url = 'http://';

function centerScreen(Id)
{
    var idWidth = document.getElementById(Id).style.width;
    idWidth = idWidth.replace('px','');
    var marginLeft = (document.body.clientWidth - idWidth) / 2;
    document.getElementById(Id).style.position = 'absolute';
    document.getElementById(Id).style.zIndex = 1000;
    document.getElementById(Id).style.top = "0px";
    document.getElementById(Id).style.left = marginLeft + "px";
}
function positionDiv(obj,divId)
{
    var curleft = 0;
    var curtop = 0;
    if (obj.offsetParent) 
    {
        curleft = obj.offsetLeft;
        curtop = obj.offsetTop + obj.offsetHeight + 1;
        
        while (obj = obj.offsetParent) 
        {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        }
    }
    document.getElementById(divId).style.left = curleft + 'px';
    document.getElementById(divId).style.top = curtop + 'px';
    
    displayDiv(divId);
}

function displayDiv(divId)
{
    if(document.getElementById(divId).style.display == "block")
    { 
        document.getElementById(divId).style.display = "none"; 
    }
    else
    { 
        document.getElementById(divId).style.display = "block" 
    }
}

function displayDivStatus(divId, status)
{
    document.getElementById(divId).style.display = status; 
}

function disableIf(value1, value2, obj)
{
    if(value1 < value2)
    {
        document.getElementById(obj).disabled = true;
    }
    else
    {
        document.getElementById(obj).disabled = false;
    }
}

function showIfChecked(obj,divId)
{
    if(obj.checked == true)
    {
        document.getElementById(divId).style.display = "block"; 
    }
    else
    {
        document.getElementById(divId).style.display = "none"; 
    }
}

function clearText(obj)
{
    obj.value = "";
}

function showAccount(paymentType, bank)
{
    if (paymentType == 21)
    {
        document.getElementById('div_pay_term_account').style.display = "none"; 
        document.getElementById('div_pay_term_bankaccount').style.display = "none"; 
        document.getElementById('div_pay_term_cash').style.display = "block"; 
        document.getElementById('div_pay_cost_cash').style.display = "block"; 
        document.getElementById('div_pay_cost_bankaccount').style.display = "none";
        document.getElementById('div_pay_cost_account').style.display = "none";
        document.getElementById('request_payment_fee').innerHTML = "20 kr";
    }
    else if (paymentType == 24)
    {
        document.getElementById('div_pay_term_cash').style.display = "none"; 
        document.getElementById('div_pay_term_account').style.display = "none"; 
        document.getElementById('div_pay_term_bankaccount').style.display = "block"; 
        document.getElementById('div_pay_cost_cash').style.display = "none"; 
        document.getElementById('div_pay_cost_bankaccount').style.display = "block"; 
        document.getElementById('div_pay_cost_account').style.display = "none";
        
        // IKANO Banken | Nordea
        if (bank == 9 || bank == 12)
        {
            document.getElementById('request_payment_fee').innerHTML = "0 kr";
        }
        else
        {
            document.getElementById('request_payment_fee').innerHTML = "1,50 kr";
        }
    }
    else if (paymentType == 25)
    {
        document.getElementById('div_pay_term_cash').style.display = "none"; 
        document.getElementById('div_pay_term_account').style.display = "block"; 
        document.getElementById('div_pay_term_bankaccount').style.display = "none"; 
        document.getElementById('div_pay_cost_cash').style.display = "none"; 
        document.getElementById('div_pay_cost_bankaccount').style.display = "none"; 
        document.getElementById('div_pay_cost_account').style.display = "block";
        document.getElementById('request_payment_fee').innerHTML = "0 kr";
    }
}

function isCaptchaCode(obj, inputCode, divId)
{
    document.getElementById(divId).className = _class_nok;
    
    if(parseInt(obj.value) == parseInt(document.getElementById(inputCode).value))
    {
        document.getElementById(divId).className = _class_ok;
    }
    else
    {
        document.getElementById(divId).className = _class_nok;
    }
}

function isGreaterThan(obj, maxValue, divId)
{
    document.getElementById(divId).className = _class_nok;
    
    if(parseInt(obj.value) <= parseInt(document.getElementById(maxValue).value))
    {
        document.getElementById(divId).className = _class_ok;
    }
    else
    {
        document.getElementById(divId).className = _class_nok;
    }
}

function convertToFloat(input)
{
    return parseFloat(input.replace(',', '.'));
}

function isAmountOk(maxValue, minRequest, divId)
{
    document.getElementById(divId).className = _class_nok;
    var requestFee = document.getElementById('request_payment_fee').innerHTML;
    
    // Remove kr
    requestFee = requestFee.replace(' kr', '');
    
    var requestAmount = convertToFloat(document.getElementById('request_value').value);
    
    if ((requestAmount + convertToFloat(requestFee)) <= convertToFloat(document.getElementById(maxValue).value))
    {
        // Check if the requested amount is lower than the 
        if (requestAmount >= minRequest)
        {
            document.getElementById(divId).className = _class_ok;
        }
        else
        {
            document.getElementById(divId).className = _class_nok;
        }
    }
    else
    {
        document.getElementById(divId).className = _class_nok;
    }
}

function isInputEmail(obj, divId)
{
    var atPos = obj.value.indexOf('@');
    
    if(atPos >= 2 && obj.value.indexOf('.', atPos + 1) > atPos && obj.value.length >= (obj.value.indexOf('.') + 2))
    {
        document.getElementById(divId).className = _class_ok;
    }
    else
    {
        document.getElementById(divId).className = _class_nok;
    }
}

function isNotEmpty(obj, divId)
{
   if (obj != null && obj.value.length >= 1)
   {
      document.getElementById(divId).className = _class_ok;
   }
   else
   {
      document.getElementById(divId).className = _class_nok;
   }
}

function isSecure(page)
{
    if(page.lastIndexOf(_secure_path) > -1)
    {
        return true;
    }
    else
    {
        return false;
    }
}

function redirectFromForm(page, formId)
{
    var newUrl = window.location.host + page;

    if (isSecure(page) == true)
    {
        newUrl = _secure_url + newUrl;
    }
    else
    {
        newUrl = _non_secure_url + newUrl;
    }

    if(document.forms[formId].searchbox != null)
    {
        if(document.forms[formId].searchbox.value == 'Du måste ange ett eller fler sökord.')
        {
            document.forms[formId].searchbox.value = '';
        }
    }
    document.forms[formId].action = newUrl;
    document.forms[formId].submit();
}

function navigateToPage(page)
{
    var newUrl = window.location.host + page;

    if (isSecure(page) == true)
    {
        newUrl = _secure_url + newUrl;
    }
    else
    {
        newUrl = _non_secure_url + newUrl;
    }

    window.location = newUrl;
}   

function selectValue(item,value)
{
    var dropdown = document.getElementById(item);
    var index = 0;
    for (var i = 0; i < dropdown.length; i++)
    {
        if(dropdown[i].value == value)
        { 
            index = i; 
        }
    }

    var selectedObject = document.getElementById(item);
    selectedObject.selectedIndex = index;
}

function setCategory(id,text)
{
    document.getElementById('categories_dropdown_text').innerHTML = text;
    document.getElementById('search_product_category_text').value = text;
    document.getElementById('search_product_category_id').value = id;
    
    displayDiv('div_categories');
}

function changeImage(obj,imageUrl)
{
    obj.src = imageUrl;
}

function changeBackgroundColor(obj, color)
{
    obj.style.backgroundColor = color;
}
function deleteProductFromCategory(pId,cId)
{
    document.frames['hiddenFrame'].document.location = 'productBrowse.aspx?deleteproductfromcategory=yes&pid=' + pId + '&cid=' + cId;
}
