If you are not the administrator of this site, please report this page to the administrator. If you are the administrator, please pay careful attention: You have a parse error in your template templates/bootstrap/suggestlink.tpl (or perhaps in your header or footer) which you need to repair before this page can be displayed correctly. The error is picked up on by php at line 487 of the output.Line #482: </div>
Line #483:
Line #484:
Line #485:
Line #486: <?php for($count=1;$count<={SUBMITSTEPSFIELD};++$count){ ?>
Line #487: <div class="row form-section">

[Load this template in your template editor]

Note that the line of the output is not necessarily the same line number in your template... just look for a similar looking area. The source of your error is probably not on line 487 itself, but most likely a line or two before it. Check your code carefully for syntax mistakes. If you cannot recognize one, copy and paste this output into a thread on the support forum.
Now outputing the page without any conditional or php sections evaluated:
<script src="https://www.securitydirectory.co.uk/javascriptheader.js" type="text/javascript"> <script src="https://www.google.com/recaptcha/api.js" type="text/javascript" async defer> <script type="text/javascript"> // maxlimit) $("textarea[name=description]").val(newval.substring(0, maxlimit)); else $("[name=remLen]").val(maxlimit - newval.length); }); $("[name=country]").change(function() { wsn_updatestate($(this).val()); }); if($("[name=state]").attr("selectedIndex") == 0) wsn_updatestate($("[name=country]").val()); $(".outlink").click(function(e) { wsn_counthit(this.id.replace("out", "")); }); $("#mobilemenubutton").click(function(e) { $(".menuitems").toggle(500); if ($(".navbar-nav").length) $(".navbar-nav > li:not(:first-child)").toggle(); }); $(".memuitems a").click(function(e) { $(".menuitems").hide(500); }); $("#sortableold tbody").sortable({ helper: fixHelper, axis: "y", stop: function(event, ui) { var data = ""; $("#sortableold tr:visible").each(function(i, el){ wsn_doattsort(i, el, data); }); } }); 'use strict'; // Initialize the jQuery File Upload widget: $('.fileupload').each(function () { $(this).fileupload({ dropZone: $('#dropzone') }); }); $('.fileupload').fileupload('option', { url: 'uploader.php?objecttype=link&objectid=0&source=&userid=0&authcode=', maxFileSize: 999999999999, acceptFileTypes: /(\.|\/)(gif|jpg|jpeg|png)$/i, maxNumberOfFiles: 5, fileInput: $('#uploaderfiles'), fail: function (e, data) { var errors = data.jqXHR.responseJSON; $.each(errors, function (key, value) { alert(value); }); }, autoUpload: true, process: [ { action: 'load', fileTypes: /^image\/(gif|jpeg|png)$/, maxFileSize: 999999999999 }, { action: 'save' } ] }).bind('fileuploadcompleted', function (e, data) { wsn_setnewsortable(); }); wsn_closeboxes(); if(typeof(initialize) == 'function') initialize(); if ($("#zipsourceauto").length) { $("#zipsourceauto").autocomplete({ source: "/ajax.php?type=autocomplete&action=zipsourceauto" }); } else if ($("[name=zipsourceauto]").length) { $("[name=zipsourceauto]").autocomplete({ source: "/ajax.php?type=autocomplete&action=zipsourceauto" }); } if ($("#zipsource").length) { $("#zipsource").autocomplete({ source: "/ajax.php?type=autocomplete&action=zipsource" }); } else if ($("[name=zipsource]").length) { $("[name=zipsource]").autocomplete({ source: "/ajax.php?type=autocomplete&action=zipsource" }); } if ($("#reassignname").length) { $("#reassignname").autocomplete({ source: "/ajax.php?type=autocomplete&action=reassignname" }); } else if ($("[name=reassignname]").length) { $("[name=reassignname]").autocomplete({ source: "/ajax.php?type=autocomplete&action=reassignname" }); } if ($("#ownerid").length) { $("#ownerid").autocomplete({ source: "/ajax.php?type=autocomplete&action=ownerid" }); } else if ($("[name=ownerid]").length) { $("[name=ownerid]").autocomplete({ source: "/ajax.php?type=autocomplete&action=ownerid" }); } $('a.ajaxlink').click(function(e) { wsn_doajaxlink(e, this.href); }); $('a.ajaxdelete').click(function(e) { wsn_doajaxdelete(e, this.href, this.id); }); // place extra document ready function content here }); function wsn_updatemap() { wsn_postalfill(); var loc = ''; if ($('[name=locationfreeform]').val()) { loc = loc + $('[name=locationfreeform]').val(); } else { if ($('[name=address]').val()) loc += $('[name=address]').val() + ', '; if ($('[name=city]').val()) loc += $('[name=city]').val() + ', '; if ($('[name=state]').val()) loc += $('[name=state]').val() + ', '; if ($('[name=zip]').val()) loc += $('[name=zip]').val() + ', '; } if ($('[name=country]').val()) loc = loc + $('[name=country]').val(); else loc = loc + 'United Kingdom'; if (wsn_substr_count(loc, ',') > 0) { // it's a complete address, or at least candidate for one. don't waste precious geocodes unless it's completish. $('#mapprogress').show(); //alert('sending '+loc); geocoder = new google.maps.Geocoder(); geocoder.geocode( { "address": loc }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { var lat = results[0].geometry.location.lat(); var lon = results[0].geometry.location.lng(); var point = new google.maps.LatLng(lat, lon); $('#latbox').val(lat); $('#lonbox').val(lon); wsn_clearOverlays(); marker.setPosition(point); map.setCenter(point); map.setZoom(14); // they always want to see street level since there is just one pin } }); $('#mapprogress').hide(); } } function wsn_updatestate(country) { if (country == "United Kingdom") { $("[name=state]").empty().append(""); $("#americanstate").show(); $("#foreignstate").hide(); } else { $("#americanstate").hide(); $("#foreignstate").show(); } } function wsn_postalfill() { var zip = $("[name=zip]").val(); var country = $("[name=country]").val(); if (zip && $("[name=city]").val() == "" && $("[name=state]").val() == "") { $.post("/ajax.php", { action: "getpostalinfo", postalcode: zip, country: country }, function(xml) { var stuff = xml.split("|"); var city = stuff[0]; var state = stuff[1]; if (city) $("[name=city]").val(city); if (state) { var toselect = "select[name=state] option[value=" + state + "]"; $(toselect).prop("selected", true); } }); } } function wsn_removelevelselector(secid) { var ldiv = "#"+secid+"catlevels"; $(ldiv).html(""); } function wsn_getnextaliaslevel(value, secid) { var xmlhttp = false; var tosend = ""; var message = value; var aet = $("#addedittype").val(); $.post("/ajax.php",{ action: 'multicatlevels', id: message, addedittype: aet, secid: secid, levelprefix: 'alias' }, function(xml) { // ajax.php will return levelid[|||]html and we will split the array to use var rarr = xml.split("[|||]"); var levelid = rarr[0]; var response = rarr[1]; if (response != "") { var levelboxid = "#alias" + secid + "levelbox" + levelid; var start = parseInt(levelid) + 1; for (x = start; x < 10; x++) { var higherlevel = "#alias" + secid + "levelbox" + x; try { $(higherlevel).html(""); } catch(error) { } } $(levelboxid).html(response); } else { for (x = levelid; x < 10; x++) { var higherlevel = "#alias" + secid + "levelbox" + x; try { $(higherlevel).html(""); } catch(error) { } } } }); } var nextaliassecid = 0; function wsn_addaliaslevelselector() { var newstuff = "
- Remove Secondary Category
"; newstuff = newstuff.replace(/SECID/g, nextaliassecid); $("#alias").append(newstuff); nextaliassecid++; } var lengthtext = new Array; function wsn_checklength(field) { if (typeof field === "undefined") field = "description"; var selector = "textarea[name="+field+"]"; var text = $(selector).val(); if (text != lengthtext[field]) { // save server/browser load by only checking when changed. we need ajax call because we have to figure out what the length with html stripped is. lengthtext[field] = text; $.post("/ajax.php", { action: "checklength", text: text }, function(xml) { var length = xml; maxselector = "input[name=maxlen_"+field+"]"; if ($(maxselector).length) maxchars = $(maxselector).val(); else maxchars = $("input[name=maxdesclen]").val(); left = maxchars - length; if (left < 0) left = 0; var counterselector = "#counter_"+field; var charsleftselector = ".charsleft_"+field; if (field == "description" && !$(counterselector).length) { var counterselector = "#counter"; var charsleftselector = ".charsleft"; } $(counterselector).html(left); // if too long, what do we do? removing characters could break wysi html. guess we will just highlight. if (left == 0) $(charsleftselector).addClass("alert"); else $(charsleftselector).removeClass("alert"); }); } } window.setInterval(function() { wsn_checklength("description"); }, 3000); window.setInterval(function() { wsn_checklength("webflairdescription"); }, 3000); window.setInterval(function() { wsn_checklength("defaultdescription"); }, 3000); function wsn_manualattsort() { var data = ""; $("#sortableold tr:visible").each(function(i, el){ wsn_doattsort(i, el, data); }); $("#sortablenew tr:visible").each(function(i, el){ var offset = $("#sortableold tr:visible").length; if (offset == 0) offset = 1; var sv = offset + i; // number if later than the old ones wsn_doattsort(sv, el, data); }); } function wsn_doattsort(i, el, data) { var id = $(el).prop('id'); id = id.replace(/\D/g,''); data = data + id + ","; $("input[name='fileinfo_sortorder["+id+"]']").val(i); // update sortorder input box } var fixHelper = function(e, ui) { ui.children().each(function() { $(this).width($(this).width()); }); return ui; }; function wsn_setnewsortable() { $(".template-download").css("display", "table-row"); $("#sortablenew tbody").sortable({ helper: fixHelper, axis: "y", stop: function(event, ui) { var data = ""; $("#sortablenew tr:visible").each(function(i, el){ var offset = $("#sortableold tr:visible").length; var sv = offset + i; // number if later than the old ones wsn_doattsort(sv, el, data); }); } }); } var deletedhere = 0; function wsn_deleteattachment(attachid) { var row = "#attachment"+attachid+"row"; $(row).hide(1); $.post("/ajax.php",{ action: 'deleteattachment', id: attachid, userid: '0', userauthcode: '' }, function(xml) { }); // dynamically update maxNumberOfFiles on .fileupload so we can add another file now that we have deleted one deletedhere++; var maxfiles = 5 - $(".fileupload .template-download:not('.ui-state-error')").length + deletedhere; $(".fileupload").fileupload( "option", "maxNumberOfFiles", maxfiles ); } //]]> Submit Listing <script src="https://www.securitydirectory.co.uk/javascript/jquery.rcrumbs.min.js"> <script src="https://www.securitydirectory.co.uk/javascript/html5shiv.min.js"> 0) { ?> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-12738858-48']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "url": "https://www.securitydirectory.co.uk", "name": "UK Security Directory" }
1) { ?>

Submit {NAMEFORLISTINGSFIELD}

isoktooutput()){ $fields = fieldgroupregistry::getfieldsinsubmitgroup($fieldgroup->id); if(count($fields)>0){ if ($fieldgroup->startnewrow){ ?>

outputname();?>

id==42){ ?>
showlabel){ ?>
id==43){ ?>
showlabel){ ?>
id==44){ ?>
showlabel){ ?>
id==24){ ?>
showlabel){ ?>
  • sponsored costs 75 per clickfor 1 month.

This listing will be {PAYMENTTYPE}, as you've purchased {PAYMENTBULKPURCHASED} of these and used {PAYMENTBULKUSED} so far.

id==39){ ?>
showlabel){ ?>
id==40){ ?>
showlabel){ ?>
id==1){ ?>
showlabel){ ?> Please select the most appropriate category.

Currently
AddSuggest new category?
display: none;"> as a subcategory of
id==2){ ?>
showlabel){ ?> You may select appropriate additional categories if you wish to.
+ Add Secondary Category Type the id numbers separated by commas.
id==4){ ?>
showlabel){ ?>
id==6){ ?>
showlabel){ ?>
Webflair:

This field is required

default:
id==20){ ?>
showlabel){ ?>
Webflair:

3000 characters remaining

default:

3000 characters remaining

3000 characters remaining

id==10){ ?>
showlabel){ ?> You may attach 5 files. Allowed file types: gif,jpg,jpeg,png
Add files...
<script id="template-upload" type="text/x-tmpl"> {% for (var i=0, file; file=o.files[i]; i++) { %}

{%=file.name%}

Processing...

{% if (!file.error) { %} {% if (!i && !o.options.autoUpload) { %} {% } %} {% if (!i) { %} {% } %} {% } %} {% } %} <script id="template-download" type="text/x-tmpl"> {% for (var i=0, file; file=o.files[i]; i++) { %} {% if (file.thumbnailUrl) { %}
{% } %}
{%=file.name%} {% if (file.error) { %}
{%=file.error%}
{% } %} {%=o.formatFileSize(file.size)%} {% if (!file.error) { %} Delete {% } %} {% } %}
Current Attached Files:
Thumbnail File Size Description Sort Delete
id==21){ ?>
showlabel){ ?> Enter the physical location of your listing, if applicable.
Postal Code:
Street Address:
City:
State:
Country:

Position of map marker (click to relocate):

<script type="text/javascript" src="//maps.google.com/maps/api/js?v=3.29&directions=en"> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/OverlappingMarkerSpiderfier/1.0.3/oms.min.js"> <script type="text/javascript"> var directionsService = new google.maps.DirectionsService(); var directionsDisplay = new google.maps.DirectionsRenderer(); var map; var marker; var overlays = []; var markers = []; var geocoder; var oms; var mappedids = []; function initialize() { point = new google.maps.LatLng(38, -121); var myOptions = { zoom: 5, mapTypeId: google.maps.MapTypeId.ROADMAP, center: point }; map = new google.maps.Map(document.getElementById("map"), myOptions); oms = new OverlappingMarkerSpiderfier(map, {markersWontMove: true, markersWontHide: true, keepSpiderfied: true}); var point = new google.maps.LatLng(38, -121); marker = new google.maps.Marker( { position: point, map: map, draggable: true }); marker.setMap(map); oms.addMarker(marker); map.setCenter(point); var mapmovemarker = function (e) { var lat = e.latLng.lat().toFixed(6) var lon = e.latLng.lng().toFixed(6); point = new google.maps.LatLng(lat, lon); $("#latbox").val(lat); $("#lonbox").val(lon); wsn_clearOverlays(); marker.setPosition(point); map.setCenter(point); }; google.maps.event.addListener(marker, "dragend", function (e) { mapmovemarker(e); }); google.maps.event.addListener(map, "click", function (e) { mapmovemarker(e); }); }
loading...
latitude longitude
id==22){ ?>
showlabel){ ?>
id==27){ ?>
showlabel){ ?> In order to update this listing later, choose your login here.If you'd like mail about this listing to go somewhere other than your account email you can specify a custom email address here.
E-Mail:
Username:
Password:

Notify me when a visitor comments on my listing?
id==23){ ?>
showlabel){ ?> If you wish, enter a comma-separated list of keywords describing this listing.
Webflair:
default:
Spam Prevention:
Anti-Spam Image:
Type the letters and numbers shown on the left into the box on the right (this is to prevent automated submissions). Refresh
security image What country speaks welsh
You must answer this challenge question to prove you're a human being and not a spam bot.

This field is required

Use your administrative powers to bypass required fields and other restrictions?
<script src="./javascript/parsley.min.js"> <script src="./javascript/suggestlinkwizard.js"> <script type="text/javascript"> function getPosition(callback) { // set up our geoCoder var geocoder = new google.maps.Geocoder(); // get our postcode value //var postcode = document.getElementById("postcode").value; //send value to google to get a longitude and latitude value geocoder.geocode({'address': ''}, function(results, status) { // callback with a status and result if (status == google.maps.GeocoderStatus.OK) { // send the values back in a JSON string callback({ latt: results[0].geometry.location.lat(), long: results[0].geometry.location.lng() }); } }); } function setup_map(latitude, longitude) { // create a JSON object with the values to mark the position var _position = { lat: latitude, lng: longitude}; // add our default mapOptions var mapOptions = { zoom: 10, // zoom level of the map center: _position // position to center } // load a map within the "map" div and display var map = new google.maps.Map(document.getElementById('map'), mapOptions); // add a marker to the map with the position of the longitude and latitude var marker = new google.maps.Marker({ position: mapOptions.center, map: map }); } window.onload = function() { // first setup the map, with our default location of London //setup_map(51.5073509, -0.12775829999998223); // when form is submitted, wait for a callback with the longitude and latitude values getPosition(function(position){ // update the map with the new position setup_map(position.latt, position.long); }); }; // refreshes (by calling resize) the map, moves to the pin and then zooms in a bit function initializeGoogleMaps() { google.maps.event.trigger(map, 'resize'); map.setCenter(marker.getPosition()); //var bounds = new google.maps.LatLngBounds(); //bounds.extend(marker.getPosition()); //map.fitBounds(bounds); //map.setZoom(map.getZoom()-8); } // if accordion opens reinitialise the map $('#googlemapsaccordion').on({ 'down.zf.accordion': function(){ initializeGoogleMaps(); } });

Submit {NAMEFORLISTINGSFIELD}

isoktooutput()){ $fields = fieldgroupregistry::getfieldsinsubmitgroup($fieldgroup->id); if(count($fields)>0){ if ($fieldgroup->startnewrow){ ?>

outputname();?>

id==42){ ?>
showlabel){ ?>
id==43){ ?>
showlabel){ ?>
id==44){ ?>
showlabel){ ?>
id==24){ ?>
showlabel){ ?>
  • sponsored costs 75 per clickfor 1 month.

This listing will be {PAYMENTTYPE}, as you've purchased {PAYMENTBULKPURCHASED} of these and used {PAYMENTBULKUSED} so far.

id==39){ ?>
showlabel){ ?>
id==40){ ?>
showlabel){ ?>
id==1){ ?>
showlabel){ ?> Please select the most appropriate category.

Currently
AddSuggest new category?
display: none;"> as a subcategory of
id==2){ ?>
showlabel){ ?> You may select appropriate additional categories if you wish to.
+ Add Secondary Category Type the id numbers separated by commas.
id==4){ ?>
showlabel){ ?>
id==6){ ?>
showlabel){ ?>
Webflair:

This field is required

default:
id==20){ ?>
showlabel){ ?>
Webflair:

3000 characters remaining

default:

3000 characters remaining

3000 characters remaining

id==10){ ?>
showlabel){ ?> You may attach 5 files. Allowed file types: gif,jpg,jpeg,png
Add files...
<script id="template-upload" type="text/x-tmpl"> {% for (var i=0, file; file=o.files[i]; i++) { %}

{%=file.name%}

Processing...

{% if (!file.error) { %} {% if (!i && !o.options.autoUpload) { %} {% } %} {% if (!i) { %} {% } %} {% } %} {% } %} <script id="template-download" type="text/x-tmpl"> {% for (var i=0, file; file=o.files[i]; i++) { %} {% if (file.thumbnailUrl) { %}
{% } %}
{%=file.name%} {% if (file.error) { %}
{%=file.error%}
{% } %} {%=o.formatFileSize(file.size)%} {% if (!file.error) { %} Delete {% } %} {% } %}
Current Attached Files:
Thumbnail File Size Description Sort Delete
id==21){ ?>
showlabel){ ?> Enter the physical location of your listing, if applicable.
Postal Code:
Street Address:
City:
State:
Country:

Position of map marker (click to relocate):

<script type="text/javascript" src="//maps.google.com/maps/api/js?v=3.29&directions=en"> <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/OverlappingMarkerSpiderfier/1.0.3/oms.min.js"> <script type="text/javascript"> var directionsService = new google.maps.DirectionsService(); var directionsDisplay = new google.maps.DirectionsRenderer(); var map; var marker; var overlays = []; var markers = []; var geocoder; var oms; var mappedids = []; function initialize() { point = new google.maps.LatLng(38, -121); var myOptions = { zoom: 5, mapTypeId: google.maps.MapTypeId.ROADMAP, center: point }; map = new google.maps.Map(document.getElementById("map"), myOptions); oms = new OverlappingMarkerSpiderfier(map, {markersWontMove: true, markersWontHide: true, keepSpiderfied: true}); var point = new google.maps.LatLng(38, -121); marker = new google.maps.Marker( { position: point, map: map, draggable: true }); marker.setMap(map); oms.addMarker(marker); map.setCenter(point); var mapmovemarker = function (e) { var lat = e.latLng.lat().toFixed(6) var lon = e.latLng.lng().toFixed(6); point = new google.maps.LatLng(lat, lon); $("#latbox").val(lat); $("#lonbox").val(lon); wsn_clearOverlays(); marker.setPosition(point); map.setCenter(point); }; google.maps.event.addListener(marker, "dragend", function (e) { mapmovemarker(e); }); google.maps.event.addListener(map, "click", function (e) { mapmovemarker(e); }); }
loading...
latitude longitude
id==22){ ?>
showlabel){ ?>
id==27){ ?>
showlabel){ ?> In order to update this listing later, choose your login here.If you'd like mail about this listing to go somewhere other than your account email you can specify a custom email address here.
E-Mail:
Username:
Password:

Notify me when a visitor comments on my listing?
id==23){ ?>
showlabel){ ?> If you wish, enter a comma-separated list of keywords describing this listing.
Webflair:
default:
Spam Prevention:
Anti-Spam Image:
Type the letters and numbers shown on the left into the box on the right (this is to prevent automated submissions). Refresh
security image What country speaks welsh
You must answer this challenge question to prove you're a human being and not a spam bot.

This field is required

Use your administrative powers to bypass required fields and other restrictions?
1) { ?>
<script type="text/javascript"> function getPosition(callback) { // set up our geoCoder var geocoder = new google.maps.Geocoder(); // get our postcode value //var postcode = document.getElementById("postcode").value; //send value to google to get a longitude and latitude value geocoder.geocode({'address': ''}, function(results, status) { // callback with a status and result if (status == google.maps.GeocoderStatus.OK) { // send the values back in a JSON string callback({ latt: results[0].geometry.location.lat(), long: results[0].geometry.location.lng() }); } }); } function setup_map(latitude, longitude) { // create a JSON object with the values to mark the position var _position = { lat: latitude, lng: longitude}; // add our default mapOptions var mapOptions = { zoom: 10, // zoom level of the map center: _position // position to center } // load a map within the "map" div and display var map = new google.maps.Map(document.getElementById('map'), mapOptions); // add a marker to the map with the position of the longitude and latitude var marker = new google.maps.Marker({ position: mapOptions.center, map: map }); } window.onload = function() { // first setup the map, with our default location of London //setup_map(51.5073509, -0.12775829999998223); // when form is submitted, wait for a callback with the longitude and latitude values getPosition(function(position){ // update the map with the new position setup_map(position.latt, position.long); }); }; // refreshes (by calling resize) the map, moves to the pin and then zooms in a bit function initializeGoogleMaps() { google.maps.event.trigger(map, 'resize'); map.setCenter(marker.getPosition()); //var bounds = new google.maps.LatLngBounds(); //bounds.extend(marker.getPosition()); //map.fitBounds(bounds); //map.setZoom(map.getZoom()-8); } // if accordion opens reinitialise the map $('#googlemapsaccordion').on({ 'down.zf.accordion': function(){ initializeGoogleMaps(); } }); <script src="https://www.securitydirectory.co.uk/javascript/foundation.min.js"> <script src="https://www.securitydirectory.co.uk/javascript/objectFitPolyfill.min.js"> <script> jQuery(document).ready(function() { $("#breadcrumbs").rcrumbs(); }); $(document).foundation(); <script src="https://www.securitydirectory.co.uk/jquery/tmpl.min.js"> <script src="https://www.securitydirectory.co.uk/jquery/load-image.min.js"> <script src="https://www.securitydirectory.co.uk/jquery/canvas-to-blob.min.js"> <script src="https://www.securitydirectory.co.uk/jquery/jquery.blueimp-gallery.min.js"> <script src="https://www.securitydirectory.co.uk/uploader/js/jquery.iframe-transport.js"> <script src="https://www.securitydirectory.co.uk/uploader/js/jquery.fileupload.js"> <script src="https://www.securitydirectory.co.uk/uploader/js/jquery.fileupload-process.js"> <script src="https://www.securitydirectory.co.uk/uploader/js/jquery.fileupload-image.js"> <script src="https://www.securitydirectory.co.uk/uploader/js/jquery.fileupload-audio.js"> <script src="https://www.securitydirectory.co.uk/uploader/js/jquery.fileupload-video.js"> <script src="https://www.securitydirectory.co.uk/uploader/js/jquery.fileupload-validate.js"> <script src="https://www.securitydirectory.co.uk/uploader/js/jquery.fileupload-ui.js"> <script src="https://www.securitydirectory.co.uk/uploader/js/jquery.fileupload-jquery-ui.js">