﻿
function CalculateSize(popupiframe, contentDocument) {
    var windowElement = cartpopup.GetWindowElement(-1);
    var scrollX = contentDocument.documentElement.scrollWidth;
    var scrollY = contentDocument.documentElement.scrollHeight;
    var offsetX = windowElement.offsetWidth - popupiframe.offsetWidth;
    var offsetY = windowElement.offsetHeight - popupiframe.offsetHeight;
    var width = scrollX + offsetX;
    var height = scrollY + offsetY;
    //alert('setsize width' + width + 'px height:' + height + 'px');

    if (height < 150) {
        cartpopup.SetSize(width, 900);
    } else {
        cartpopup.SetSize(width, height);
    }
}
function GetFrameOfIFrame(iframeElement) {
    var name = (new Date()).toString();
    var backup = iframeElement.contentWindow.name;
    iframeElement.contentWindow.name = name;
    var frameIndex = this.internalGetFrameByWindowName(name);
    iframeElement.contentWindow.name = backup;
    return window.frames[frameIndex];
}
function internalGetFrameByWindowName(name) {
    var count = window.top.frames.length;

    for (var i = 0; i < count; i++) {
        try {
            if (window.top.frames[i].window.name === name) {
                return i;
            }
        } catch (err) {

        }
    }
    return -1;
}

function ValidateKassa() {  
  
    total = lblSubtotal.GetValue()
    var subtotalLen = total.length;
    subtotal = total.slice(0, subtotalLen - 2);   
    if (subtotal < 5) {
        alert('Du måste handla något innan du lägger en order.');
        return false;
    }

    if (tbxFirstname.GetText() == '') {
        alert('Du måste fylla i ditt förnamn.');
        tbxFirstname.SetFocus();
        return false;
    }
    if (tbxLastname.GetText() == '') {
        alert('Du måste fylla i ditt efternamn.');
        tbxLastname.SetFocus();
        return false;
    }
    if (tbxAddress.GetText() == '') {
        alert('Du måste fylla i din adress.');
        tbxAddress.SetFocus();
        return false;
    }
    if (tbxPostal.GetText() == '') {
        alert('Du måste fylla i ditt postnummer.');
        tbxPostal.SetFocus();
        return false;
    }
    if (tbxCity.GetText() == '') {
        alert('Du måste fylla i staden du bor i.');
        tbxCity.SetFocus();
        return false;
    }
    if (tbxPhone.GetText() == '') {
        alert('Du måste fylla i ett telefonnummer.');
        tbxPhone.SetFocus();
        return false;
    }

    var email = tbxEmail.GetText();
    if (email == '') {
        alert('Du måste fylla i en e-postadress.');
        return false;
    } else {
        apos = email.indexOf("@");
        dotpos = email.lastIndexOf(".");
        if (apos < 1 || dotpos - apos < 2) {
            alert('Du måste fylla i en korrekt e-postadress.');
            return false; 
        }
    }
    
    if (cbxCustomerType.GetValue() == 'Företagskund') {
        if (tbxCompany.GetText() == '') {
            alert('Du måste fylla i ert företagsnamn.');
            tbxCompany.SetFocus();
            return false;
        }
        if (tbxOrgno.GetText() == '') {
            alert('Du måste fylla i ert organisationsnummer.');
            tbxOrgno.SetFocus();
            return false;
        }
    }
   
    if (rblpayment.GetSelectedIndex() == 3) {
        if (tbxOrgno.GetText() == '') {
            alert('Du måste fylla i ditt personnummer.');
            tbxOrgno.SetFocus();
            return false;
        }
    }
    
    if (!cbxAllmannaVillkor.GetChecked()) {
        alert('Du måste godkänna de allmänna försäljningsvillkoren.');
        return false;
    }
    
    return true;
}

// Search
var pendingCallback = false;
var previousFilterString = "";
var listBoxFocused = false;

function OnSearchBoxKeyUp(s, e) {    
    if (e.htmlEvent.keyCode == 40) {
        lbResult.Focus();
        lbResult.SetSelectedIndex(0);
    } else if (e.htmlEvent.keyCode == 13) {   // only used on macintosh
        cbSearchRedirect.PerformCallback('global:' + tbxSearch.GetText());
    } else {
        var filterString = Trim(s.GetText());
        
        if (pendingCallback || filterString == previousFilterString || filterString.length < 3)
            return;
        pendingCallback = true;        
        previousFilterString = filterString;             
        window.setTimeout("lbResult.SetValue(null); cbpsearch.PerformCallback('" + filterString + "')", 1); // do search on every keystroke over 3 chars
    }
}
function OnSearchResultKeyUp(s,e) {
    listBoxFocused = true;    
    if (e.htmlEvent.keyCode == 8) {
        var currentText = tbxSearch.GetText();
        tbxSearch.SetText(currentText.substr(0, currentText.length - 1));
        listBoxFocused = false;
        tbxSearch.Focus();
        if (Trim(currentText) != "")
            tbxSearch.RaiseKeyUp(e);
    }
}
function OnSearchResultKeyPress(s,e) {
    listBoxFocused = true;
    if (e.htmlEvent.keyCode == 13) {        
        cbSearchRedirect.PerformCallback(lbResult.GetSelectedItem().value);
    } 
}
function OnCallbackPanelEndCallback(s, e) {   
    pendingCallback = false;
    if (lbResult.GetItemCount() > 0) {
        popupsearch.Show();
        if (listBoxFocused)
            lbResult.Focus();
    }
}
function Trim(str) {
    return str.replace(/\s*((\S+\s*)*)/, "$1").replace(/((\s*\S+)*)\s*/, "$1");
}


