/**
 * Payment link.
 *
 * @param $params
 * @return string
 */
function checkoutjs_link($params)
{
    $Api = CheckoutApi_Api::getApi(array('mode' => $params['modetype']));
    $model = new model_methods_creditcard();
    $paymentToken = $model->getPaymentToken($params);
    $publicKey = $params['publickey'];
    $email = $params['clientdetails']['email'];
    $amount = $params['amount'];
    $currencyCode = $params['currency'];
    $amountCents = $Api->valueToDecimal($amount, $currencyCode);
    $customerName = $params['clientdetails']['firstname'] . " " . $params['clientdetails']['lastname'];
    $returnUrl = $params['systemurl'] . '/modules/gateways/callback/checkoutjs_callback.php?cko-card-token=';
    $address1 = $params['clientdetails']['address1'];
    $address2 = $params['clientdetails']['address2'];
    $city = $params['clientdetails']['city'];
    $postcode = $params['clientdetails']['postcode'];
    $country = $params['clientdetails']['countrycode'];
    $state = $params['clientdetails']['state'];
    $logoUrl = $params['logoUrl'];
    $themeColor = $params['themeColor'];
    $iconColor = $params['iconColor'];
    $buttonColor = $params['buttonColor'];
    $useCurrencyCode = $params['useCurrencyCode'] ? 'true' : 'false';
    $title = $params['title'];
    $widgetColor = $params['widgetColor'];
    $buttonLabelColor = $params['buttonLabelColor'];
    $formButtonColor = $params['formButtonColor'];
    $formButtonColorLabel = $params['formButtonColorLabel'];
    $overlayShade = $params['overlayShade'];
    $overlayOpacity = $params['overlayOpacity'];
    $showMobileIcons = $params['showMobileIcons'];
    $widgetIconSize = $params['widgetIconSize'];
    $url = $params['modetype'] == 'Live' ? model_methods_creditcard::CHECKOUT_NON_PCI_JS_URL_LIVE : model_methods_creditcard::CHECKOUT_NON_PCI_JS_URL_SANDBOX;
    $errorMessage = getErrorMessage();
    $code = @"\n        <div style='width:150px; margin:0 auto;'>\n            <script src='https://code.jquery.com/jquery-1.11.0.min.js'></script>\n            <script src={$url}></script>\n            <script>\n                Checkout.render({\n                    debugMode           : true,\n                    publicKey           : '{$publicKey}',\n                    paymentToken        : '{$paymentToken}',\n                    customerEmail       : '{$email}',\n                    customerName        : '{$customerName}',\n                    value               : '{$amountCents}',\n                    currency            : '{$currencyCode}',\n                    paymentMode         : 'card',\n                    forceRedirect       : false,\n                    //payButtonSelector   : '#payNow',\n                    cardFormMode        : 'cardTokenisation',\n                    billingDetails: {\n                        'addressLine1'  : '{$address1}',\n                        'addressLine2'  : '{$address2}',\n                        'postcode'      : '{$postcode}',\n                        'country'       : '{$country}',\n                        'city'          : '{$city}',\n                        'state'         : '{$state}'\n                    },\n                    logoUrl             :'{$logoUrl}',\n                    renderMode          : 1,\n                    themeColor          :'{$themeColor}',\n                    buttonColor         :'{$buttonColor}',\n                    iconColor           :'{$iconColor}',\n                    useCurrencyCode     :'{$useCurrencyCode}',\n                    title               :'{$title}',\n                    widgetColor         :'{$widgetColor}',\n                    buttonLabelColor    :'{$buttonLabelColor}',\n                    styling : {\n                        formButtonColor         : '{$formButtonColor}',\n                        formButtonColorLabel    : '{$formButtonColorLabel}',\n                        overlayShade            : '{$overlayShade}',\n                        overlayOpacity          : '{$overlayOpacity}',\n                        showMobileIcons         : '{$showMobileIcons}',\n                        widgetIconSize          : '{$widgetIconSize}'\n                    },\n                    ready: function (event) {\n                        if(document.getElementById('whmcsorderfrm')){\n                            document.getElementsByClassName('alert')[0].style.visibility='hidden';\n                            document.getElementsByClassName('textcenter')[0].style.visibility='hidden';\n                        }\n                    },\n                    widgetRendered: function (){\n                        if(document.getElementById('whmcsorderfrm')){\n                            //document.getElementById('cko-widget').style.visibility='hidden';\n                        }\n                    },\n                    cardTokenised: function(event) {\n                        if(document.getElementById('whmcsorderfrm')){\n                            document.getElementById('cko-widget').style.visibility='hidden';\n                            document.getElementsByClassName('textcenter')[0].style.visibility='visible';\n                        }\n                        window.location.href = '{$returnUrl}'+event.data.cardToken;\n                    }\n                });\n            </script>\n        </div>\n    ";
    if ($errorMessage) {
        $code .= "<div><p style='color:red;'>{$errorMessage}</p></div>";
    }
    return $code;
}