{"id":15001,"date":"2025-12-10T00:25:32","date_gmt":"2025-12-10T00:25:32","guid":{"rendered":"https:\/\/verifyithq.com\/?page_id=15001"},"modified":"2025-12-10T01:22:15","modified_gmt":"2025-12-10T01:22:15","slug":"a-test-page","status":"publish","type":"page","link":"https:\/\/verifyithq.com\/a-test-page\/","title":{"rendered":"A test Page"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15001\" class=\"elementor elementor-15001\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1c491a9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1c491a9\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-60c5e53\" data-id=\"60c5e53\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-71744ec elementor-widget elementor-widget-shortcode\" data-id=\"71744ec\" data-element_type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\r\n<div id=\"vin-scanner\" style=\"max-width:400px;margin:0 auto;font-family:Inter,Arial,Helvetica,sans-serif;padding:1rem;font-size:14px;color:#111;text-align:center;\">\r\n\r\n    \r\n    <h3 style=\"margin-bottom:10px;font-size:18px;font-weight:700;color:#000;\">\r\n        \ud83d\udcf7 VIN Scanner\r\n    <\/h3>\r\n\r\n    <p style=\"font-size:13px;color:#444;margin-top:-4px;margin-bottom:10px;\">\r\n        Scan using camera or upload VIN label\r\n    <\/p>\r\n\r\n    \r\n    <video id=\"vin-video\" autoplay playsinline style=\"width:100%;border-radius:6px;border:1px solid #ccc;display:none;\"><\/video>\r\n\r\n    \r\n    <div style=\"display:flex;gap:.4rem;justify-content:center;margin:10px 0;flex-wrap:wrap;\">\r\n\r\n        \r\n        <button id=\"startCameraBtn\" type=\"button\"\r\n            style=\"padding:.5rem .8rem;font-size:13px;border:none;background:#007bff;color:#fff;border-radius:6px;cursor:pointer;\">\r\n            Open Camera\r\n        <\/button>\r\n\r\n        \r\n        <button id=\"captureBtn\" type=\"button\"\r\n            style=\"padding:.5rem .8rem;font-size:13px;border:none;background:#28a745;color:#fff;border-radius:6px;cursor:pointer;display:none;\">\r\n            Scan VIN\r\n        <\/button>\r\n\r\n        \r\n        <label style=\"padding:.5rem .8rem;background:#6c757d;color:#fff;border-radius:6px;font-size:12px;cursor:pointer;\">\r\n            Upload Image\r\n            <input id=\"image-file\" type=\"file\" accept=\"image\/*\" style=\"display:none;\">\r\n        <\/label>\r\n\r\n        \r\n        <button id=\"resetBtn\" type=\"button\"\r\n            style=\"padding:.5rem .8rem;font-size:13px;border:none;background:#e53e3e;color:#fff;border-radius:6px;cursor:pointer;\">\r\n            Reset\r\n        <\/button>\r\n    <\/div>\r\n\r\n    \r\n    <div id=\"result-box\"\r\n        style=\"margin-top:12px;padding:.6rem 1rem;border-radius:6px;background:#f8f9fa;border:1px solid #ddd;text-align:left;\">\r\n        <strong>Detected VIN:<\/strong>\r\n        <div id=\"vin-value\" style=\"margin-top:.2rem;font-weight:700;color:#007bff;font-size:15px;\">\u2014<\/div>\r\n        <div id=\"vin-status\" style=\"margin-top:.25rem;font-size:12px;color:#555;\"><\/div>\r\n    <\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<canvas id=\"vin-canvas\" style=\"display:none;\"><\/canvas>\r\n\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/tesseract.js@4.1.1\/dist\/tesseract.min.js\"><\/script>\r\n\r\n<script>\r\n(function(){\r\n    const video=document.getElementById(\"vin-video\");\r\n    const canvas=document.getElementById(\"vin-canvas\");\r\n    const startBtn=document.getElementById(\"startCameraBtn\");\r\n    const captureBtn=document.getElementById(\"captureBtn\");\r\n    const fileInput=document.getElementById(\"image-file\");\r\n    const resetBtn=document.getElementById(\"resetBtn\");\r\n    const vinValue=document.getElementById(\"vin-value\");\r\n    const vinStatus=document.getElementById(\"vin-status\");\r\n\r\n    let stream=null;\r\n\r\n    const normalize=s=>s.replace(\/[^A-Za-z0-9]\/g,\"\").toUpperCase();\r\n    const showResult=(vin,msg)=>{vinValue.textContent=vin||\"\u2014\";vinStatus.textContent=msg||\"\";}\r\n\r\n    async function startCamera(){\r\n        try{\r\n            stream=await navigator.mediaDevices.getUserMedia({ video:{facingMode:\"environment\"},audio:false });\r\n            video.srcObject=stream;\r\n            video.style.display=\"block\";\r\n            captureBtn.style.display=\"inline-block\";\r\n        }catch(e){\r\n            alert(\"Camera access blocked or unsupported.\");\r\n        }\r\n    }\r\n\r\n    async function scanCanvas(img){\r\n        showResult(\"\",\"Scanning...\");\r\n        try{\r\n            const { data:{text} } = await Tesseract.recognize(img, \"eng\");\r\n            const cleaned = normalize(text);\r\n            const match = cleaned.match(\/[A-HJ-NPR-Z0-9]{17}\/);\r\n\r\n            if(match){\r\n                showResult(match[0], \"VIN found!\");\r\n            } else {\r\n                showResult(\"\u2014\",\"No valid VIN detected.\");\r\n            }\r\n\r\n        }catch(e){\r\n            showResult(\"\u2014\",\"OCR Error\");\r\n        }\r\n    }\r\n\r\n    captureBtn.onclick=()=>{\r\n        canvas.width=video.videoWidth;\r\n        canvas.height=video.videoHeight;\r\n        const ctx=canvas.getContext(\"2d\");\r\n        ctx.drawImage(video,0,0);\r\n        scanCanvas(canvas);\r\n    }\r\n\r\n    fileInput.onchange=e=>{\r\n        const file=e.target.files[0];\r\n        if(!file) return;\r\n        const img=new Image();\r\n        img.onload=()=>scanCanvas(img);\r\n        img.src=URL.createObjectURL(file);\r\n    }\r\n\r\n    resetBtn.onclick=()=>{\r\n        if(stream){\r\n            stream.getTracks().forEach(t=>t.stop());\r\n            video.style.display=\"none\";\r\n            captureBtn.style.display=\"none\";\r\n        }\r\n        showResult(\"\u2014\",\"\");\r\n        fileInput.value=\"\";\r\n    }\r\n\r\n    startBtn.onclick=startCamera;\r\n\r\n})();\r\n<\/script>\r\n\r\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-15001","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/verifyithq.com\/api-json\/wp\/v2\/pages\/15001","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/verifyithq.com\/api-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/verifyithq.com\/api-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/verifyithq.com\/api-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/verifyithq.com\/api-json\/wp\/v2\/comments?post=15001"}],"version-history":[{"count":31,"href":"https:\/\/verifyithq.com\/api-json\/wp\/v2\/pages\/15001\/revisions"}],"predecessor-version":[{"id":15035,"href":"https:\/\/verifyithq.com\/api-json\/wp\/v2\/pages\/15001\/revisions\/15035"}],"wp:attachment":[{"href":"https:\/\/verifyithq.com\/api-json\/wp\/v2\/media?parent=15001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}