﻿var previousShippingDetail;
var ISOCountryList = [];

function showShippingAddress(obj, container, isCompany) {
    if(obj.checked) {
        showContainer(container);
        fillCountryDropDown(document.getElementById(container + "_country_input"));
        
        if(document.getElementById("user_id_input").value > 0) {
            showContainer("show_" + container);
            
            if(isCompany) {
                fillAddressDropDown(document.getElementById("select_" + container), document.getElementById("company_id_input").value, true);
            } else {
                fillAddressDropDown(document.getElementById("select_" + container), document.getElementById("user_id_input").value, false);
            }
        }
    } else {
        hideContainer(container);
        clearForm(container);
    }
}

function showShippingDetail(objId) {
    if(previousShippingDetail != null && previousShippingDetail != "") {    
        hideContainer(previousShippingDetail);
    } else {
        var divs = document.getElementById("shipment_payment").getElementsByTagName("div");
        
        for(var i = 0; i < divs.length; i++) {
            
            if(divs[i].className.indexOf("shipment_detail") > -1) {
                if(divs[i].getAttribute("id") != objId) {
                    hideObject(divs[i]);
                }
            }
        }
    }
    
    showContainer(objId);
    previousShippingDetail = objId;
}

function getShippingMethods() {
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetShippingMethods(OnGetShippingMethods);
}

function OnGetShippingMethods(results) {
    if(results != null) {
        var html = "";
        for(var i = 0; i < results.length; i++) {
            var shipment = results[i];
            
            var defaultOption = (shipment.DefaultOption) ? 'checked="checked"' : '';
            var showDetail = (shipment.DefaultOption) ? '' : ' hide';
            
            html += '<div class="inline_label">';
            html += '<input onclick="showShippingDetail(\'shipment_detail_' + shipment.Id + '\')" name="shipment_method" type="radio" id="shipment_' + shipment.Id + '" ' + defaultOption + '/>';
            html += '<label id="label_shipment_' + shipment.Id + '" for="shipment_' + shipment.Id + '">' + shipment.Name + '</label>';
            html += '<div class="clear"></div>';
            html += '</div>';       
            html += '<div id="shipment_detail_' + shipment.Id + '" class="shipment_detail' + showDetail + '">';
            html += shipment.Description + '<br/>';
            
            if(shipment.Price > 0) {
                html += '<br/><strong>' + shipment.Price + ' ' + Translate("common.currency") + '</strong>';
            }
            
            html += '</div>';
        }
        
        $get("shipping_options").innerHTML = html;
    }
}

function autoFillCountryList() {
    //Used to fill in the country when the user is not logged in
    fillCountryDropDown(document.getElementById('user_country_input'));
}

function autoFillIndividual(user) {
    
    $get("user_id_input").value = user.Id;
    $get("user_name_input").value = user.Fullname;
    $get("user_ssn_input").value = user.SSN;
    $get("user_phone_input").value = user.Phone;
    $get("user_email_input").value = user.Email;
    
    if(user.Address) {
        ($get("user_address1_input").tagName == "INPUT") ? $get("user_address1_input").value = user.Address.Address1 : $get("user_address1_input").innerHTML = user.Address.Address1;
        ($get("user_address2_input").tagName == "INPUT") ? $get("user_address2_input").value = user.Address.Address2 : $get("user_address2_input").innerHTML = user.Address.Address2;
        ($get("user_postcode_input").tagName == "INPUT") ? $get("user_postcode_input").value = user.Address.PostalCode : $get("user_postcode_input").innerHTML = user.Address.PostalCode;
        ($get("user_place_input").tagName == "INPUT") ? $get("user_place_input").value = user.Address.Place : $get("user_place_input").innerHTML = user.Address.Place;
        ($get("user_country_input")) ? $get("user_country_input").value = user.Address.Country : $get("user_country_label").innerHTML = user.Address.Country;
    }
    
    //fillCountryDropDown(document.getElementById('user_country_input'));

    fillAddressDropDown(document.getElementById("select_user_shipping"), user.Id, false);
    autoFillDefaultAddress(user.Id, 'shipping', 'user');
}

function autoFillCompanyInfo(user, company, startingStep) {
    autoFillCompanyUser(user);
    autoFillCompany(company);
    autoFillDefaultAddress(company.Id, '', 'company');
    autoFillDefaultAddress(company.Id, 'shipping', 'company');
    autoFillDefaultCostCenter(company.Id,'cost');
    
    if(startingStep != null && startingStep.length > 0) {
        if(startingStep == "2") {
            nextStep("step_1","step_2");
        }
    }
}

var currUser = null;

function autoFillCompanyUser(user) {
    currUser = user;
    var container = document.getElementById("company_checkout_user");   
    $get("user_id_input").value = user.Id;
    $get("user_name_input").value = user.Fullname;
    $get("user_ssn_input").value = user.SSN;
    $get("user_email_input").value = user.Email;
    $get("user_phone_input").value = user.Phone;
    
    var html = '<strong class="address_label_column">' + Translate("common.name") + '</strong> : ' + user.Fullname + '<br/><strong class="address_label_column">' + Translate("common.ssn") + '</strong> : ' + user.SSN + '<br/><strong class="address_label_column">' + Translate("common.phone") + '</strong> : ' + user.Phone + '<br/><strong class="address_label_column">' + Translate("common.email") + '</strong> : ' + user.Email;
    
    container.innerHTML = html;
}

function updateUserInfo() {
    if(currUser != null) {
        var heading = Translate("forms.updateuserinformation");
        var html = '<div id="new_employee"></div><div class="clear">';
        html += '<a href="javascript:confirmEmployeeRegistration(true)" class="button_green"><span>' + Translate("forms.save") + '</span></a>';
        html += '<a href="javascript:deleteBox()" class="button_red"><span>' + Translate("forms.cancel") + '</span></a></div>';
            
        createBox(html);
        var formContainer = generateEmployeeForm(currUser, heading, "employee", 2, 5, false);    
        document.getElementById("new_employee").appendChild(formContainer);
    }
}

function OnCheckoutUserUpdated(results) {
    stopUpdateWindow();
    deleteBox();
    autoFillCompanyUser(results);
}

function autoFillCompany(company) {
    hideContainer("individual_checkout");
    showContainer("company_checkout");
    
    $get("company_id_input").value = company.Id;
    $get("company_name_input").value = company.Name;
    $get("company_ssn_input").value = company.SSN;
    $get("company_phone_input").value = company.Phone;
    $get("company_email_input").value = company.Email;
    
    showContainer("show_account_payment");
    showContainer("show_credit_payment");
    hideContainer("credit_card_fields");
    
    $get("payment_account").checked = true;
    $get("payment_credit").checked = false;
    
    fillAddressDropDown(document.getElementById("select_billing_address"), company.Id, true);
    fillAddressDropDown(document.getElementById("select_company_shipping"), company.Id, true);
    fillCostCenterDropDown(document.getElementById("select_cost_center"), company.Id);
    //fillCountryDropDown(document.getElementById("company_country_input"));
}

function prevStep(from, to) {
    transition(from + "_content", to + "_content");

    var toheading = document.getElementById(to).getElementsByTagName("h2")[0];
    toheading.className = (to == "step_1") ? "selected first_tab" : "selected";
    var fromheading = document.getElementById(from).getElementsByTagName("h2")[0];
    fromheading.className = "new";
    
    scroll(0,0);
}

function nextStep(from, to) {
    var individualCheckout = document.getElementById("individual_checkout");
    var companyCheckout = document.getElementById("company_checkout");
    
    var addressprefix = '';
    var goToNextStep = false;
    var checkoutPages = "/karfa/pontun/";
    if(from == "step_1") {
        goToNextStep = true;

	CheckOut.Step = '2';
        CheckOut.ManageState();

        trackPages(checkoutPages + '?step=cart');
    } else if (from == "step_2") {
        if(individualCheckout.className.indexOf("hide") > -1) {
            if(validateForm("company_checkout", Translate("common.missing"), "", Translate("common.incorrect"))) {
                goToNextStep = true;

		addressprefix = 'company';
                CheckOut.UserType = 'company';
                CheckOut.BillingAddressId = $get('select_billing_address').value;
                CheckOut.ShippingAddressId = $get('select_company_shipping').value;
                CheckOut.CostStationId = $get('select_cost_center').value;
                CheckOut.CostStationName = $get('cost_name_input').innerHTML;
                CheckOut.CSID = $get('cost_identification_input').innerHTML;
                CheckOut.CostStationERP = $get('cost_erp_input').innerHTML;

                trackPages(checkoutPages + '?step=userinformation');
            }
        } else if(companyCheckout.className.indexOf("hide") > -1) {
            if(validateForm("individual_checkout_form", Translate("common.missing"), "", Translate("common.incorrect"))) {
                goToNextStep = true;
		
		addressprefix = 'user';
                CheckOut.UserType = 'user';
                CheckOut.ShippingAddressId = $get('select_user_shipping').value;

                trackPages(checkoutPages + '?step=userinformation');
            }
        }

	CheckOut.Step = '3';
        CheckOut.BillingAddress1 = $get(addressprefix + '_address1_input').innerHTML;
        CheckOut.BillingAddress2 = $get(addressprefix + '_address2_input').innerHTML;
        CheckOut.BillingZipCode = $get(addressprefix + '_postcode_input').innerHTML;
        CheckOut.BillingPlace = $get(addressprefix + '_place_input').innerHTML;
        CheckOut.BillingCountry = $get(addressprefix + '_country_label').innerHTML;
        CheckOut.ShippingAddress1 = $get(addressprefix + '_shipping_address1_input').innerHTML;
        CheckOut.ShippingAddress2 = $get(addressprefix + '_shipping_address2_input').innerHTML;
        CheckOut.ShippingZipCode = $get(addressprefix + '_shipping_postcode_input').innerHTML;
        CheckOut.ShippingPlace = $get(addressprefix + '_shipping_place_input').innerHTML;
        CheckOut.ShippingCountry = $get(addressprefix + '_shipping_country_label').innerHTML;
        CheckOut.ManageState();

    } else if(from == "step_3") {   
        if(document.getElementById("payment_credit").checked) {
            if(validateForm("credit_card_fields", Translate("common.missing"), "", Translate("common.incorrect"), Translate("common.expired"))) {
                goToNextStep = true;
		
		CheckOut.PaymentType = 'card';
                CheckOut.CardType = ($get("cc_visa").checked) ? "visa" : "master";
                CheckOut.NameOnCard = $get('cc_name').value;
                CheckOut.CardNumber = $get('cc_number').value;
                CheckOut.ccMonth = $get(clientId + "_ccMonth").value;
                CheckOut.ccYear = $get(clientId + "_ccYear").value;
                CheckOut.CVC = $get('cc_cvc').value;

                trackPages(checkoutPages + '?step=payment');
            }
        } else {
            goToNextStep = true;

	    CheckOut.PaymentType = 'account';

            trackPages(checkoutPages + '?step=payment');
        }

	if($get('shipping_options')) {
            var shipmentMethods = $get('shipping_options').getElementsByTagName('input');
            for(var counter = 0; counter < shipmentMethods.length; counter++) {
            	var optionId = shipmentMethods[counter].id;
                       
                if(shipmentMethods[counter].getAttribute("type") == "radio" && shipmentMethods[counter].id.indexOf("shipment_") > -1) {
                        
                	if(shipmentMethods[counter].checked) {
                        	CheckOut.ShipmentMethod = $get('label_' + optionId).innerHTML;
                        }
                }
            }
         }
	CheckOut.Step = '4';
        CheckOut.ManageState();

    } else if(from == "step_4") {
        goToNextStep = true;

	CheckOut.Step = '1';
        CheckOut.ManageState();

        trackPages(checkoutPages + '?step=confirmation');
    }
    
    if(goToNextStep) {
        transition(from + "_content", to + "_content");
        
        if(from != "step_4") {
            var toheading = document.getElementById(to).getElementsByTagName("h2")[0];
            toheading.className = "selected";
            var fromheading = document.getElementById(from).getElementsByTagName("h2")[0];
            fromheading.className = "finished";
        }
        
        if(from == "step_2") {
            getShippingMethods();
        }
        else if(from == "step_3") {
            showOrderPreview();
        }
        
        scroll(0,0);
    }
}

function showOrderPreview() {
    try {
        DoGetConfirmedBasket()
    } catch (e ) {}

    var buyerContainer = $get("buyer_info");
    //var userContainer = $get("user_info");
    var shippingContainer = $get("shipping_info");
    var paymentContainer = $get("payment_info");
    var basketContainer = $get("basket_info");
    
    
    var isCompany = ($get("company_id_input").value > 0) ? true : false;

    var buyerHeader = "<div class=order_form><h3>" + Translate("headings.buyer") + "</h3>";
   // var userHeader = "<div><h3>" + Translate("headings.user") + "</h3>";
    var shippingHeader = "<div class=order_form><h3>" + Translate("headings.user") + "</h3>";
    
    //var paymentHeader = "<h3>" + Translate("headings.paymentmethod") + "</h3>";
    
    var buyerHtml = "";
    var shippingHtml = "";
    var paymentHtml = "";
    var userHtml=""
    //Compile user and company information
    if(isCompany) {
        buyerHtml += "<div class=form_details><strong>" + Translate("common.name") + " " + Translate("registration.company_appendix") + ":</strong> " + $get("company_name_input").value + "<br/>";
        buyerHtml += "<strong>" + Translate("common.ssn") + " " + Translate("registration.company_appendix") + ":</strong> " + $get("company_ssn_input").value + "<br/>";
        buyerHtml += "<strong>" + Translate("common.phone") + " " + Translate("registration.company_appendix") + ":</strong> " + $get("company_phone_input").value + "<br/>";
        buyerHtml += "<strong>" + Translate("common.email") + " " + Translate("registration.company_appendix") + ":</strong> " + $get("company_email_input").value + "</div></div>";

        buyerHtml += "<div class=order_form1><h3>" + Translate("headings.billingaddress") + "</h3>";
        buyerHtml += "<div class=form_details><strong>" + Translate("common.address") + ":</strong> " + $get("company_address1_input").innerHTML + "<br/>";
        
        if($get("company_address2_input").innerHTML.length > 0)
            buyerHtml += $get("company_address2_input").innerHTML + "<br/>";
        
        buyerHtml += "<strong>" + Translate("common.postcode") + ":</strong> " + $get("company_postcode_input").innerHTML + "<br/>";
        
        if($get("company_postbox_input").innerHTML.length > 0)
            buyerHtml += "<strong>" + Translate("common.postbox") + ":</strong>" + $get("company_postbox_input").innerHTML + "<br/>";
        
        buyerHtml += "<strong>" + Translate("common.place") + ":</strong> " + $get("company_place_input").innerHTML + "<br/>";
        buyerHtml += "<strong>" + Translate("common.country") + ":</strong> " + $get("company_country_label").innerHTML + "</div></div>";
        
        if($get("select_cost_center").selectedIndex > 0) {
            buyerHtml += "<div class=order_form2><h3>" + Translate("headings.costcenter") + "</h3>";
            buyerHtml += "<div class=form_details><strong>" + Translate("costcenter.name") + ":</strong> " + $get("cost_name_input").innerHTML + "<br/>";
            buyerHtml += "<strong>" + Translate("costcenter.identification") + ":</strong> " + $get("cost_identification_input").innerHTML + "<br/>";
            buyerHtml += "<strong>" + Translate("costcenter.erp") + ":</strong> " + $get("cost_erp_input").innerHTML + "</div></div>";
        }

        
    } else {
        buyerHtml += "<div class=form_details><strong>" + Translate("common.name") + ":</strong> " + $get("user_name_input").value + "<br/>";
        buyerHtml += "<strong>" + Translate("common.ssn") + ":</strong> " + $get("user_ssn_input").value + "<br/>";
        buyerHtml += "<strong>" + Translate("common.phone") + ":</strong> " + $get("user_phone_input").value + "<br/>";
        buyerHtml += "<strong>" + Translate("common.email") + ":</strong> " + $get("user_email_input").value + "<br/>";
        buyerHtml += "<strong>" + Translate("common.address") + ":</strong> " + $get("user_address1_input").innerHTML + "<br/>";
    
        if($get("user_address2_input").innerHTML.length > 0)
            buyerHtml += $get("user_address2_input").innerHTML + "<br/>";

        buyerHtml += "<strong>" + Translate("common.postcode") + ":</strong> " + $get("user_postcode_input").innerHTML + "<br/>";
        buyerHtml += "<strong>" + Translate("common.place") + ":</strong> " + $get("user_place_input").innerHTML + "<br/>";
        buyerHtml += "<strong>" + Translate("common.country") + ":</strong> " + $get("user_country_label").innerHTML + "</div>";
    }
    
    //Compile shipping information
    shippingHtml += "<div class=form_details>"+ $get("company_checkout_user").innerHTML + "</div></div>";
    shippingHtml += "<div class=order_form1><h3>" + Translate("headings.shippingaddress") + "</h3>";
    
    
    var addressPrefix = "user"
    
    if(isCompany) {
        addressPrefix = "company";
        
        if($get("company_shipping_address1_input").innerHTML.length > 0) {
            addressPrefix = "company_shipping";
        }
    } else {        
        if($get("user_shipping_address1_input").innerHTML.length > 0) {
            addressPrefix = "user_shipping";
        }        
    }

    shippingHtml += "<div class=form_details><strong>" + Translate("common.address") + ":</strong> " + $get(addressPrefix + "_address1_input").innerHTML + "<br/>";

    if($get(addressPrefix + "_address2_input").innerHTML.length > 0)
        shippingHtml += $get(addressPrefix + "_address2_input").innerHTML + "<br/>";

    shippingHtml += "<strong>" + Translate("common.postcode") + ":</strong> " + $get(addressPrefix + "_postcode_input").innerHTML + "<br/>";
    
    if(isCompany) {
        if($get(addressPrefix + "_postbox_input").innerHTML.length > 0)
            shippingHtml += "<strong>" + Translate("common.postbox") + ":</strong> " + $get(addressPrefix + "_postbox_input").innerHTML + "<br/>";
    }
        
    shippingHtml += "<strong>" + Translate("common.place") + ":</strong> " + $get(addressPrefix + "_place_input").innerHTML + "<br/>";
    shippingHtml += "<strong>" + Translate("common.country") + ":</strong> " + $get(addressPrefix + "_country_label").innerHTML + "</div></div>";
    shippingHtml += "<div class=order_form2><h3>" + Translate("headings.shippingmethod") + "</h3><div class=form_details><strong>" + getSelectedShipmentName() + "</strong></div>";
    shippingHtml += "<h3>" + Translate("headings.paymentmethod") + "</h3>"
      if(!isCompany || $get("payment_credit").checked) {        
        var cc_month = $get(clientId + "_ccMonth");
        var cc_year = $get(clientId + "_ccYear");

        shippingHtml += "<div class=form_details><strong>" + Translate("payment.nameoncard") + ":</strong> " + $get("cc_name").value + "<br/>";
        shippingHtml += "<strong>" + Translate("payment.cardnumber") + ":</strong> " + maskCCNumber($get("cc_number").value) + "<br/>";
        shippingHtml += "<strong>" + Translate("payment.expires") + ":</strong> " + cc_month.value + "/" + cc_year.value + "</div></div>";
    }
    else if (isCompany) {
    if ($get("payment_account").checked) {
        shippingHtml += "<div class=form_details><strong>" + Translate("payment.account") + "</strong></div>";
    }
}
    //Compile payment information
//    if(!isCompany || $get("payment_credit").checked) {        
//        var cc_month = $get(clientId + "_ccMonth");
//        var cc_year = $get(clientId + "_ccYear");
//        
//        paymentHtml += "<div><strong>" + Translate("payment.nameoncard") + ":</strong> " + $get("cc_name").value + "<br/>";
//        paymentHtml += "<strong>" + Translate("payment.cardnumber") + ":</strong> " + maskCCNumber($get("cc_number").value) + "<br/>";
//        paymentHtml += "<strong>" + Translate("payment.expires") + ":</strong> " + cc_month.value + "/" + cc_year.value + "</div>";
//    }
//    else if(isCompany) {
//        if($get("payment_account").checked) {
//            paymentHtml += "<div><strong>" + Translate("payment.account") + "</strong></div>";
//        }
//    }

    buyerContainer.innerHTML = buyerHeader + buyerHtml;
  //  userContainer.innerHTML = userHeader + userHtml;
    shippingContainer.innerHTML = shippingHeader + shippingHtml;
//    paymentContainer.innerHTML = paymentHeader + paymentHtml;
}

function getSelectedShipmentName() {
    var shipmentMethods = $get("shipment_payment").getElementsByTagName("input");
    var selectedShipment = "";
    
    for(var i = 0; i < shipmentMethods.length; i++) {
        if(shipmentMethods[i].getAttribute("type") == "radio" && shipmentMethods[i].getAttribute("id").indexOf("shipment_") > -1) {
            if(shipmentMethods[i].checked) {
                var label = $get("label_" + shipmentMethods[i].getAttribute("id"));
                
                if(label != null) { 
                    selectedShipment = label.innerHTML;
                }
            }
        }
    }

    if(CheckOut.ShipmentMethod != '')
        return CheckOut.ShipmentMethod;
    else
        return selectedShipment;
}

function getSelectedShipmentOption() {
    var shipmentMethods = $get("shipment_payment").getElementsByTagName("input");
    var selectedShipment = "";
    
    for(var i = 0; i < shipmentMethods.length; i++) {
        if(shipmentMethods[i].getAttribute("type") == "radio" && shipmentMethods[i].getAttribute("id").indexOf("shipment_") > -1) {
            if(shipmentMethods[i].checked) {
                selectedShipment = shipmentMethods[i].getAttribute("id").replace("shipment_","");
            }
        }
    }
    
    return selectedShipment;
}

function confirmOrder() {
    if($get("confirmOrder_top")) {
	$get("confirmOrder_top").onclick = '';
    }
    if($get("confirmOrder_bottom")) {
	$get("confirmOrder_bottom").onclick = '';
    }
    var companyId = $get("company_id_input").value;
    var isCompany = ($get("company_id_input").value > 0) ? true : false; 
    
    var companyName = $get("company_name_input").value;
    var companySSN = $get("company_ssn_input").value;
    var companyEmail = $get("company_email_input").value;
    var companyPhone = $get("company_phone_input").value;
    var companyBillingAddress1 = $get("company_address1_input").innerHTML;
    var companyBillingAddress2 = $get("company_address2_input").innerHTML;
    var companyBillingPostalCode = $get("company_postcode_input").innerHTML;
    var companyBillingPostBox = $get("company_postbox_input").innerHTML;
    var companyBillingPlace = $get("company_place_input").innerHTML;
    //var companyBillingCountry = $get("company_country_input").options[$get("company_country_input").selectedIndex].text;
    var companyBillingCountry = $get("company_country_label").innerHTML;
    
    var companyCostCenterName = $get("cost_name_input").innerHTML;
    var companyCostCenterIdentification = $get("cost_identification_input").innerHTML;
    var companyCostCenterERP = $get("cost_erp_input").innerHTML;
    
    var differentCompanyShippingAddress = true;
    var companyShippingAddress1 = $get("company_shipping_address1_input").innerHTML;
    var companyShippingAddress2 = $get("company_shipping_address2_input").innerHTML;
    var companyShippingPostalCode = $get("company_shipping_postcode_input").innerHTML;
    var companyShippingPostBox = $get("company_shipping_postbox_input").innerHTML;
    var companyShippingPlace = $get("company_shipping_place_input").innerHTML;
    //var companyShippingCountry = $get("company_shipping_country_input").options[$get("company_shipping_country_input").selectedIndex].text;    
    var companyShippingCountry = $get("company_shipping_country_label").innerHTML;    
    
    var userId = $get("user_id_input").value;
    var userName = $get("user_name_input").value;
    var userSSN = $get("user_ssn_input").value;
    var userPhone = $get("user_phone_input").value;
    var userEmail = $get("user_email_input").value;
    var userAddress1 = $get("user_address1_input").innerHTML;
    var userAddress2 = $get("user_address2_input").innerHTML;
    var userPostalCode = $get("user_postcode_input").innerHTML;
    var userPlace = $get("user_place_input").innerHTML;
    //var userCountry = $get("user_country_input").options[$get("user_country_input").selectedIndex].text;
    var userCountry = $get("user_country_label").innerHTML;
        
    var differentUserShippingAddress = true;    
    var userShippingAddress1 = $get("user_shipping_address1_input").innerHTML;
    var userShippingAddress2 = $get("user_shipping_address2_input").innerHTML;
    var userShippingPostalCode = $get("user_shipping_postcode_input").innerHTML;
    var userShippingAddressPlace = $get("user_shipping_place_input").innerHTML;
    //var userShippingAddressCountry = $get("user_shipping_country_input").options[$get("user_shipping_country_input").selectedIndex].text;
    var userShippingAddressCountry = $get("user_shipping_country_label").innerHTML;
    
    var selectedShipment = getSelectedShipmentOption();
    
    var paymentCredit = $get("payment_credit").checked;
    var paymentAccount = $get("payment_account").checked;
    var paymentCreditName = $get("cc_name").value;
    var paymentCreditNumber = $get("cc_number").value;
    var paymentCreditCVC = $get("cc_cvc").value;
    var paymentCreditMonth = $get(clientId + "_ccMonth").value;
    var paymentCreditYear = $get(clientId + "_ccYear").value;
    var paymentCreditType = ($get("cc_visa").checked) ? "Visa" : "MasterCard"; 
    
    createUpdateWindow(Translate("checkout.placingorder"));

    if(isCompany) {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.CreateOrderForCompany(userId, userName, userSSN, userPhone, userEmail, companyId, companyName, companySSN, companyPhone, companyEmail, companyBillingAddress1, companyBillingAddress2, companyBillingPostalCode, companyBillingPostBox, companyBillingPlace, companyBillingCountry, companyCostCenterName, companyCostCenterIdentification, companyCostCenterERP, differentCompanyShippingAddress, companyShippingAddress1, companyShippingAddress2, companyShippingPostalCode, companyShippingPostBox, companyShippingPlace, companyShippingCountry, selectedShipment, paymentAccount, paymentCredit, paymentCreditName, paymentCreditNumber, paymentCreditCVC, paymentCreditMonth, paymentCreditYear, paymentCreditType, OnOrderCreated, OnOrderFailed);        
    } else {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.CreateOrderForUser(userId, userName, userSSN, userPhone, userEmail, userAddress1, userAddress2, userPostalCode, userPlace, userCountry, differentUserShippingAddress, userShippingAddress1, userShippingAddress2, userShippingPostalCode, userShippingAddressPlace, userShippingAddressCountry, selectedShipment, paymentCreditName, paymentCreditNumber, paymentCreditCVC, paymentCreditMonth, paymentCreditYear, paymentCreditType, OnOrderCreated, OnOrderFailed);
    }
}

function OnOrderCreated(results) {
    stopUpdateWindow();

    nextStep('step_4', 'step_5');

    var step4buttons = document.getElementById("step_4_buttons");
    step4buttons.parentNode.removeChild(step4buttons);
    
    var step4Content = $get("step_4_content");
    var step5Content = $get("step_5_content");

    var OrderDetails = eval( "(" + results + ")" );    

    var OrderId = '';
    var OrderDate = '';    

    if(OrderDetails.length > 0) {
	
        for(var counter = 0; counter < OrderDetails.length; counter++) {
            switch(OrderDetails[counter][0]) {
                case 'Id':
                   OrderId =  OrderDetails[counter][1];
                   break;
                case 'Modified':
                   OrderDate =  OrderDetails[counter][1];
                   break;
		default :
		   break;
            }
        }


        step5Content.innerHTML = '<div id="order_complete"><div class="order_info_left"></div><div class="order_info_right"><h3>' + Translate("order.id") + ' ' + OrderId + '</h3>' + '<div class="clear"></div><h3>' + Translate("order.ordered.date") + ' ' + OrderDate + '</h3><div class="print_btn"><a href="javascript:window.print()" class="button_green right_button"><span>' + Translate("common.print") + '</span></a><div class="clear"></div></div>' + '<p><strong>' + Translate("headings.checkout_complete") + '</strong><br/>' + Translate("checkout.thankyoumessage") + '</p></div></div>' + step4Content.innerHTML + '<div><a href="javascript:window.print()" class="button_green right_button"><span>' + Translate("common.print") + '</span></a><div class="clear"></div></div>';
       
    
    }
    else {
       
        step5Content.innerHTML = '<div id="order_complete"><div class="order_info_left"></div><div class="order_info_right"><h3>' + Translate("order.id") + ' ' + results + '</h3>' +'<div class="print_btn"><a href="javascript:window.print()" class="button_green right_button"><span>' + Translate("common.print") + '</span></a><div class="clear"></div></div>' + '<p><strong>' + Translate("headings.checkout_complete") + '</strong><br/>' + Translate("checkout.thankyoumessage") + '</p></div></div>' + step4Content.innerHTML + '<div><a href="javascript:window.print()" class="button_green right_button"><span>' + Translate("common.print") + '</span></a><div class="clear"></div></div>';

    }
       //step5Content.innerHTML = '<h3>' + Translate("order.id") + ' ' + results + '</h3>' + '<p><strong>' + Translate("headings.checkout_complete") + '</strong><br/>' + Translate("checkout.thankyoumessage") + '</p>' + step4Content.innerHTML + '<div><a href="javascript:window.print()" class="button_green right_button"><span>' + Translate("common.print") + '</span></a><div class="clear"></div></div>';
}

function OnOrderFailed(error) {
    stopUpdateWindow();
    createAlert(error.get_message());
}

function autoFillCountryInfo(Countries) {
    if(Countries != null) {
        for(var reccount = 0; reccount < Countries.length; reccount++) {
            ISOCountryList[Countries[reccount].ISO] = Countries[reccount].Name;
        }
    }
}

function CountryFullName(code) {
    try {
        return ISOCountryList[code];
    } catch(err) {
        return '';
    }

}


function autoFillDefaultCostCenter(Id,usertype)
{
if(Id>0)
{
var prefix = usertype;
    ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetDefaultCostCenter(Id, OnGetDefaultCostCenter, OnGetDefaultCostCenterError,prefix);

}

}

function OnGetDefaultCostCenter (results,context)
{
 var prefix = context;
 if(results)
 {
  var address = document.getElementById(prefix + "_name_input");        
        if(address) address.innerHTML = results.Name;
 
 var address = document.getElementById(prefix + "_identification_input");        
        if(address) address.innerHTML = results.Identification;
 
 var address = document.getElementById(prefix + "_erp_input");        
        if(address) address.innerHTML = results.ERP;
 
 if(results.DefaultCS == 1) {
            var billing = document.getElementById("select_cost_center");
            if(billing) billing.value = results.EntryId;
        }
 
 }
}

function OnGetDefaultCostCenterError(error) {
    createError(error.get_message());
}

function autoFillDefaultAddress(Id, addresstype, usertype) {

    if(usertype != '' && Id > 0) {
        var prefix = '';
        
        // payment address
        if(addresstype == '') {
            prefix = usertype;
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetDefaultAddress(Id, 0, usertype, OnGetDefaultAddress, OnGetDefaultAddressError, prefix);
        }
        else { // shipping address
            prefix = usertype + '_' + addresstype;
            ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.GetDefaultAddress(Id, 1, usertype, OnGetDefaultAddress, OnGetDefaultAddressError, prefix);
        }
    }
}

function OnGetDefaultAddress(results, context) {
    var prefix = context;
    
    if(results) {
        
        var address = document.getElementById(prefix + "_address1_input");        
        if(address) address.innerHTML = results.Address1;
        
        var address1 = document.getElementById(prefix + "_address2_input");        
        if(address1) address1.innerHTML = results.Address2;
            
        var postcode = document.getElementById(prefix + "_postcode_input");        
        if(postcode) postcode.innerHTML = results.PostalCode;
            
        var postbox = document.getElementById(prefix + "_postbox_input");
        if(postbox) postbox.innerHTML = results.PostBox;
        
        var place = document.getElementById(prefix + "_place_input");
        if(place) place.innerHTML = results.Place;
        
        var country = document.getElementById(prefix + "_country_label");
        if(country) country.innerHTML = CountryFullName(results.Country);
        
        if(results.AddressType == 0 || results.AddressType == 2) {
            var billing = document.getElementById("select_billing_address");
            if(billing) billing.value = results.EntryId;
        }
        if(results.AddressType == 1 || results.AddressType == 2) {
            var shipping = document.getElementById("select_company_shipping");
            if(shipping) shipping.value = results.EntryId;

	    shipping = document.getElementById("select_user_shipping");
            if(shipping) shipping.value = results.EntryId;
        }
    }
}

function OnGetDefaultAddressError(error) {
    createError(error.get_message());
}

var CheckOut = {
    Step : '1',
    UserType : '',
    BillingAddressId : '',
    BillingAddress1 : '',
    BillingAddress2 : '',
    BillingZipCode : '',
    BillingPlace : '',
    BillingCountry : '',
    ShippingAddressId : '',
    ShippingAddress1 : '',
    ShippingAddress2 : '',
    ShippingZipCode : '',
    ShippingPlace : '',
    ShippingCountry : '',
    CostStationId : '',
    CostStationName : '',
    CSID : '',
    CostStationERP : '',
    ShipmentMethod : '',
    PaymentType : '',
    CardType : '',
    NameOnCard : '',
    CardNumber : '',
    ccMonth : '',
    ccYear : '',
    CVC: '',
    
    
    ManageState : function() {
        var Keys = [];
        var KeyCounter = 0;
        var eachkey = new Array();
        
        eachkey[0] = 'step';
        eachkey[1] = this.Step;
        Keys[KeyCounter] = eachkey;
        KeyCounter++;
        
        if(this.UserType != '') {
            eachkey = new Array();
            eachkey[0] = 'usertype';
            eachkey[1] = this.UserType;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.BillingAddressId != '') {
            eachkey = new Array();
            eachkey[0] = 'billingaddressid';
            eachkey[1] = this.BillingAddressId;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.BillingAddress1 != '') {
            eachkey = new Array();
            eachkey[0] = 'billingaddress1';
            eachkey[1] = this.BillingAddress1;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.BillingAddress2 != '') {
            eachkey = new Array();
            eachkey[0] = 'billingaddress2';
            eachkey[1] = this.BillingAddress2;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.BillingAddress2 != '') {
            eachkey = new Array();
            eachkey[0] = 'billingaddress2';
            eachkey[1] = this.BillingAddress2;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.BillingZipCode != '') {
            eachkey = new Array();
            eachkey[0] = 'billingzipcode';
            eachkey[1] = this.BillingZipCode;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.BillingPlace != '') {
            eachkey = new Array();
            eachkey[0] = 'billingplace';
            eachkey[1] = this.BillingPlace;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.BillingCountry != '') {
            eachkey = new Array();
            eachkey[0] = 'billingcountry';
            eachkey[1] = this.BillingCountry;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.ShippingAddressId != '') {
            eachkey = new Array();
            eachkey[0] = 'shippingaddressid';
            eachkey[1] = this.ShippingAddressId;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.ShippingAddress1 != '') {
            eachkey = new Array();
            eachkey[0] = 'shippingaddress1';
            eachkey[1] = this.ShippingAddress1;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.ShippingAddress2 != '') {
            eachkey = new Array();
            eachkey[0] = 'shippingaddress2';
            eachkey[1] = this.ShippingAddress2;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
               
        if(this.ShippingZipCode != '') {
            eachkey = new Array();
            eachkey[0] = 'shippingzipcode';
            eachkey[1] = this.ShippingZipCode;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.ShippingPlace != '') {
            eachkey = new Array();
            eachkey[0] = 'shippingplace';
            eachkey[1] = this.ShippingPlace;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.ShippingCountry != '') {
            eachkey = new Array();
            eachkey[0] = 'shippingcountry';
            eachkey[1] = this.ShippingCountry;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.CostStationId != '') {
            eachkey = new Array();
            eachkey[0] = 'coststationid';
            eachkey[1] = this.CostStationId;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.CostStationName != '') {
            eachkey = new Array();
            eachkey[0] = 'coststationname';
            eachkey[1] = this.CostStationName;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.CSID != '') {
            eachkey = new Array();
            eachkey[0] = 'csid';
            eachkey[1] = this.CSID;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.CostStationERP != '') {
            eachkey = new Array();
            eachkey[0] = 'coststationerp';
            eachkey[1] = this.CostStationERP;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }

        if(this.ShipmentMethod != '') {
            eachkey = new Array();
            eachkey[0] = 'shipmentmethod';
            eachkey[1] = this.ShipmentMethod;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.PaymentType != '') {
            eachkey = new Array();
            eachkey[0] = 'paymenttype';
            eachkey[1] = this.PaymentType;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.CardType != '') {
            eachkey = new Array();
            eachkey[0] = 'cardtype';
            eachkey[1] = this.CardType;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.NameOnCard != '') {
            eachkey = new Array();
            eachkey[0] = 'nameoncard';
            eachkey[1] = this.NameOnCard;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.CardNumber != '') {
            eachkey = new Array();
            eachkey[0] = 'cardnumber';
            eachkey[1] = this.CardNumber;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.ccMonth != '') {
            eachkey = new Array();
            eachkey[0] = 'ccmonth';
            eachkey[1] = this.ccMonth;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.ccYear != '') {
            eachkey = new Array();
            eachkey[0] = 'ccyear';
            eachkey[1] = this.ccYear;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        if(this.CVC != '') {
            eachkey = new Array();
            eachkey[0] = 'cvc';
            eachkey[1] = this.CVC;
            Keys[KeyCounter] = eachkey;
            KeyCounter++;
        }
        
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.ManageState(Keys);
    },
    
    SetCheckOutState : function() {
        ecSoftware.eMarketPlace.Web.SOAP.FrontEnd.SetCheckOutState(OnSetCheckOutState);
    },
    
    Reset : function() {
        this.Step = '1';
    }
};

function OnSetCheckOutState(result) {
    var step = '1';
    
    var isCompany = ($get("company_id_input").value > 0) ? true : false;
    
    var addressPrefix = "user"
    
    if(isCompany) {
        addressPrefix = "company";
    }
    
    for(var keycount = 0; keycount < result.length; keycount++) {
    
        switch(result[keycount][0]) {
        
            case 'step':
                if(result[keycount][1] > 1) {
                    CheckOut.Step = result[keycount][1];
                    step = result[keycount][1];
                }
                break;
            case 'usertype':
                    CheckOut.UserType = result[keycount][1];
                break;
            case 'billingaddressid':
                if($get("select_billing_address") && result[keycount][1] != '') {
                    CheckOut.BillingAddressId  = result[keycount][1];
                    $get("select_billing_address").value = result[keycount][1];
                }
                break;
            case 'billingaddress1':
                if($get(addressPrefix + "_address1_input") && result[keycount][1] != '') {
                    CheckOut.BillingAddress1 = result[keycount][1];
                    $get(addressPrefix + "_address1_input").innerHTML = result[keycount][1];
                }
                break;
            case 'billingaddress2':
                if($get(addressPrefix + "_address2_input") && result[keycount][1] != '') {
                    CheckOut.BillingAddress2 = result[keycount][1];
                    $get(addressPrefix + "_address2_input").innerHTML = result[keycount][1];
                }
                break;
            case 'billingzipcode':
                if($get(addressPrefix + "_postcode_input") && result[keycount][1] != '') {
                    CheckOut.BillingZipCode = result[keycount][1];
                    $get(addressPrefix + "_postcode_input").innerHTML = result[keycount][1];
                }
                break;
            case 'billingplace':
                if($get(addressPrefix + "_place_input") && result[keycount][1] != '') {
                    CheckOut.BillingPlace = result[keycount][1];
                    $get(addressPrefix + "_place_input").innerHTML = result[keycount][1];
                }
                
                break;
            case 'billingcountry':
                if($get(addressPrefix + "_country_label") && result[keycount][1] != '') {
                    CheckOut.BillingCountry = result[keycount][1];
                    $get(addressPrefix + "_country_label").innerHTML = result[keycount][1];
                }
                
                break;
            case 'shippingaddressid':
                if($get("select_company_shipping") && result[keycount][1] != '') {
                    CheckOut.ShippingAddressId = result[keycount][1];
                    $get("select_company_shipping").value = result[keycount][1];
                }
                
                if($get("select_user_shipping") && result[keycount][1] != '') {
                    CheckOut.ShippingAddressId = result[keycount][1];
                    $get("select_user_shipping").value = result[keycount][1];
                }
                break;
            case 'shippingaddress1':
                if($get(addressPrefix + "_shipping_address1_input") && result[keycount][1] != '') {
                    CheckOut.ShippingAddress1 = result[keycount][1];
                    $get(addressPrefix + "_shipping_address1_input").innerHTML = result[keycount][1];
                }
                
                break;
            case 'shippingaddress2':
                if($get(addressPrefix + "_shipping_address2_input") && result[keycount][1] != '') {
                    CheckOut.ShippingAddress2 = result[keycount][1];
                    $get(addressPrefix + "_shipping_address2_input").innerHTML = result[keycount][1];
                }
                
                break;
            case 'shippingzipcode':
                if($get(addressPrefix + "_shipping_postcode_input") && result[keycount][1] != '') {
                    CheckOut.ShippingZipCode = result[keycount][1];
                    $get(addressPrefix + "_shipping_postcode_input").innerHTML = result[keycount][1];
                }
                
                break;
            case 'shippingplace':
                if($get(addressPrefix + "_shipping_place_input") && result[keycount][1] != '') {
                    CheckOut.ShippingPlace = result[keycount][1];
                    $get(addressPrefix + "_shipping_place_input").innerHTML = result[keycount][1];
                }
                
                break;
            case 'shippingcountry':
                if($get(addressPrefix + "_shipping_country_label") && result[keycount][1] != '') {
                    CheckOut.ShippingCountry = result[keycount][1];
                    $get(addressPrefix + "_shipping_country_label").innerHTML = result[keycount][1];
                }
                
                break;
            case 'coststationid':
                if($get("select_company_shipping") && result[keycount][1] != '') {
                    CheckOut.CostStationId = result[keycount][1];
                    $get("select_company_shipping").value = result[keycount][1];
                }
                break;
            case 'coststationname':
                if($get("cost_name_input") && result[keycount][1] != '') {
                    CheckOut.CostStationName = result[keycount][1];
                    $get("cost_name_input").innerHTML = result[keycount][1];
                }
                break;
            case 'csid':
                if($get("cost_identification_input") && result[keycount][1] != '') {
                    CheckOut.CSID = result[keycount][1];
                    $get("cost_identification_input").innerHTML = result[keycount][1];
                }
                break;
            case 'coststationerp':
                if($get("cost_erp_input") && result[keycount][1] != '') {
                    CheckOut.CostStationERP = result[keycount][1];
                    $get("cost_erp_input").innerHTML = result[keycount][1];
                }
                break;
            case 'shipmentmethod':
                CheckOut.ShipmentMethod = result[keycount][1];
                var shipmentMethods = $get('shipping_options').getElementsByTagName('input');
                for(var counter = 0; counter < shipmentMethods.length; counter++) {
                
                    if(shipmentMethods[counter].getAttribute("type") == "radio" && shipmentMethods[counter].id.indexOf("shipment_") > -1) {
                
                        var optionId = shipmentMethods[counter].id
                        
                        var label = $get('label_' + optionId).innerHTML;
                        if(label == result[keycount][1]) {
                            shipmentMethods[counter].checked = true;
                        }
                    
                    }
                }
                break;
            case 'paymenttype':
                if(result[keycount][1] == 'account') {
                    CheckOut.PaymentType = result[keycount][1];
                    $get("payment_account").checked = true;
                } else {
                    CheckOut.PaymentType = result[keycount][1];
                    $get("payment_credit").checked = true;
                    $get("credit_card_fields").className = 'show';
                }
                
                break;
            case 'cardtype':
                if(result[keycount][1] == 'master') {
                    CheckOut.CardType = result[keycount][1];
                    $get("cc_master").checked = true;
                }
                else {
                    CheckOut.CardType = result[keycount][1];
                    $get("cc_visa").checked = true;
                }
                break;
            case 'nameoncard':
                CheckOut.NameOnCard = result[keycount][1];
                $get("cc_name").value = result[keycount][1];
                break;
            case 'cardnumber':
                CheckOut.CardNumber = result[keycount][1];
                $get("cc_number").value = result[keycount][1];
                break;
            case 'ccmonth':
                if(result[keycount][1] != '') {
                    CheckOut.ccMonth = result[keycount][1];
                    $get(clientId + "_ccMonth").value = result[keycount][1];
                    $get("cc_month").value = result[keycount][1];
                }
                break;
            case 'ccyear':
                if(result[keycount][1] != '') {
                    CheckOut.ccYear = result[keycount][1];
                    $get(clientId + "_ccYear").value = result[keycount][1];
                    $get("cc_year").value = result[keycount][1];
                }
                break;
            case 'cvc':
                CheckOut.CVC = result[keycount][1];
                $get("cc_cvc").value = result[keycount][1];
                break;
	    
        }
    }
    if(step > 1) {
        var maxStep = (step > 4) ? 4 : step;
        for(var stepcount = 1; stepcount < maxStep; stepcount++) {
            var prevstep = 'step_' + stepcount;
            var nextstep = 'step_' + (stepcount + 1);
            browseStep(prevstep, nextstep);
        }
    }
}

function autofillCheckOut()
{
    CheckOut.SetCheckOutState();
}

function browseStep(from, to) {
    var individualCheckout = document.getElementById("individual_checkout");
    var companyCheckout = document.getElementById("company_checkout");
    
    var goToNextStep = false;
    var checkoutPages = "/karfa/pontun/";
    if(from == "step_1") {
        goToNextStep = true;
        trackPages(checkoutPages + '?step=cart');
    } else if (from == "step_2") {
        if(individualCheckout.className.indexOf("hide") > -1) {
            if(validateForm("company_checkout", Translate("common.missing"), "", Translate("common.incorrect"))) {
                goToNextStep = true;
                trackPages(checkoutPages + '?step=userinformation');
            }
        } else if(companyCheckout.className.indexOf("hide") > -1) {
            if(validateForm("individual_checkout_form", Translate("common.missing"), "", Translate("common.incorrect"))) {
                goToNextStep = true;
                trackPages(checkoutPages + '?step=userinformation');
            }
        }
    } else if(from == "step_3") {   
        if(document.getElementById("payment_credit").checked) {
            if(validateForm("credit_card_fields", Translate("common.missing"), "", Translate("common.incorrect"), Translate("common.expired"))) {
                goToNextStep = true;
                trackPages(checkoutPages + '?step=payment');
            }
        } else {
            goToNextStep = true;
            trackPages(checkoutPages + '?step=payment');
        }
        
    } else if(from == "step_4") {
        goToNextStep = true;
        trackPages(checkoutPages + '?step=confirmation');
    }
    
    if(goToNextStep) {
        transition(from + "_content", to + "_content");
        
        if(from != "step_4") {
            var toheading = document.getElementById(to).getElementsByTagName("h2")[0];
            toheading.className = "selected";
            var fromheading = document.getElementById(from).getElementsByTagName("h2")[0];
            fromheading.className = "finished";
        }
        
        if(from == "step_2") {
            getShippingMethods();
        }
        else if(from == "step_3") {
            showOrderPreview();
        }
        
        scroll(0,0);
    }
}
