HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ns3133907 6.8.0-86-generic #87-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 18:03:36 UTC 2025 x86_64
User: cssnetorguk (1024)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: /home/mycamden.co.uk/public_html/ext_iframe/v2/resources/js/core.js
/* GLOBAL VARS */
var onloadFuncs = new Array();




/*
  * EXTENDING STRING OBJECT
*/

// Trim routines
String.prototype.ltrim = function () {
    return this.replace(/^(\s|\t)*/g, '');
}
String.prototype.rtrim = function () {
    return this.replace(/(\s|\t)*$/g, '');
}
String.prototype.trimSpaces = function () {
    return this.replace(/\s{2,}/g, ' ');
}
String.prototype.trim = function () {
    return this.ltrim().rtrim().trimSpaces();
}



// Splits a 'number' string to ranged parts, delimited with commas (12345678 -> 12,345,678)
String.prototype.toRanges = function () {
    var temp = this.trim();

    if (temp.match(/\./)) {
        var temparray = temp.split('.')
        temp = temparray[0];
        var fraction = temparray[1];
    }

    if (temp.length < 4) {
        if (fraction) temp += '.'+ fraction;
        return temp;
    }
    if (window.opera) {
        var result = '';
        var spool = new Array();
        for (var i=temp.length; i>=0;) {
            if (result.length > 2) {
                spool[spool.length] = result;
                result = '';
            }
            result += temp.charAt(i--);
        }
        if (result.length) {
            spool[spool.length] = result;
            result = '';
        }
        temp = spool.join();
        for (var i=temp.length; i>=0;) {
            result += temp.charAt(i--);
        }
        if (fraction) result += '.'+ fraction;
        return result;
    } else {
        while (temp.match(/(\d{4})/)) {
            temp=temp.replace(/(\d)(\d{3})((,\d{3})*)?$/, '$1,$2$3');
        }
        if (fraction) temp += '.'+ fraction;
        return temp;
    }
}

// if we have simple number -- we can create ranged one : '1234.5' --> '1,234.50' (if i==2)
Number.prototype.makeRanged = function (i) {
    var nr = this.toFixed(i);
    nr = nr.toString();
    nr = nr.toRanges();
    return nr;
}

// Makes fomatted (ranged) numbers in whole document if they're included in <span class="fmt_nr"></span>
function mass_to_ranges() {
    var mass = document.getElementsByTagName('span');
    for (var i=0; 'object' == typeof mass[i]; i++) {
        var m = mass[i];
        if (m.className == 'fmt_nr') {
            if (m.firstChild && 3 == m.firstChild.nodeType) {
                var tmp = parseInt(m.firstChild.nodeValue);
                if ('number' == typeof tmp && tmp>999) m.firstChild.nodeValue = tmp.makeRanged();
            }
        }
    }
}
addOnload('mass_to_ranges()');



/*
 * MISCELLANEOUS FUNCTIONS
*/

// Returns an object with get-variables as keys
function populateGet() {
    if (!location.search) {
        return null;
    }
    var request = new Object();
    var pairs = unescape(location.search.substr(1)).split('&');
    for (var i=0; i<pairs.length; i++) {
        if (pairs[i]) {
            var pair = pairs[i].split('=');
            request[pair[0]]=pair[1];
        }
    }
    return request;
}

// Strips antispammers substring from address
function deMail (s) {
    return s.replace(/^jobs/,'');
}



/*
 * MORE DOMBASED FUNCTIONS
*/

// Just flips two nodes
function flipNodes(a, b) {
    if (!a || !b) {
        return false;
    }
    a.parentNode.insertBefore(b, a);
    return true;
}



/*
 * HANDLING FORMS ELEMENTS
*/
// Produce new Option item
function produceOption(data) {
    var valid = typeof data=='object' && typeof data.text!='undefined' && typeof data.value!='undefined';
    return new Option (valid? data.text:data, valid? data.value:data);
}

// Activate some option with 'value' in the 'select' box
function activateOption(select, value) {
    if (!select || typeof select.options=='undefined' || typeof value=='undefined' || select.options.length==0) {
        return false;
    }
    for (var i=0; i<=select.options.length; i++) {
        if (select.options[i] && select.options[i].value==value) {
            select.selectedIndex=i;
        }
    }
}

// Fills select box with options (array of... or single var: an object[text,value] or mixed-type var)
function fillSelect(select, data, offset) {
    if (!select || typeof select.options=='undefined' || typeof data=='undefined') {
        return false;
    }
    var offset = typeof offset=='undefined' ? select.options.length : 1*offset;
    if (typeof data.sort!='undefined') {
        for (var i in data) {
            if (typeof data[i]!='function' && i!='length' ){
                select.options[offset++]=produceOption(data[i]);
            }
        }
    }
    else if (typeof data!='function'){
        select.options[offset]=produceOption(data);;
    }
    return true;
}

// Fills element value with cookie value
function fillControlFromCookie(control, cookie) {
    if (control) {
        if (control.type=='checkbox') {
            if (getCookie(cookie)!=false) {
                control.checked=true;
            }
            return true;
        }
        else if (typeof control.value!='undefined') {
            control.value=getCookie(cookie);
            return true;
        }
        return false;
    }
    return false;
}

// Provides global touchpoints to the all of named elements of form
// :todo: rewrite elements name handling
function populateElements(form) {
    if (!form) {
        return false;
    }
    for (var i=0; i<form.length; i++) {
        var name=form.elements[i].name;
        if (name) {
            eval(name+'_touchpoint=form.'+name+';');
        }
    }
    return true;
}

// Checks if cookies are on for any form. Default - header login form
function cookies_must_be_on(form,validation) {
    var f = form ? form : document.login;
    var valid = validation ? validation(f) : validateLogin(f);
    if (navigator.cookieEnabled == false) {
        parent.location = "/stuff/no_cookies.shtml";
        return false;
    } else {
        if (valid == true) {
            f.submit();
            return true;
        } else {
            return false;
        }
    }
}

// proceed
function proceed(message, url) {
    if (window.confirm(message)) document.location.href = url;
}

// show and hide routines
function show_block(id) {
    document.getElementById(id).style.display = 'block';
}
function hide_block(id) {
    document.getElementById(id).style.display = 'none';
}

// class routines
function addClass(elm, cname) {
    var cnameRE = makeClassnameRE(cname);
    if ( !checkClasses(elm, cnameRE) ) {
        elm.className += ' '+ cname;
    } else {
        return false;
    }
}
function removeClass(elm, cname) {
    var cnameRE = makeClassnameRE(cname);
    if ( checkClasses(elm, cnameRE) ) {
        elm.className = elm.className.replace(cnameRE, '').trim();
    } else {
        return false;
    }
}
function checkClasses(elm, cnameRE) {
    if ( elm.className.match(cnameRE) )
        return true;
    else
        return false;
}
function makeClassnameRE(cname) {
    var tmp = new RegExp('\s?'+ cname +'\s?', 'g');
    return tmp;
}


// log funcs
function generateHash(count) {
    var hasher = new String();
    for (i=0; i<count; i++) {
        hasher += Math.floor(Math.random()*10);
    }
    return hasher;
}
function logSearch(sId) {
    searchLogger.src = '/cgi-bin/user.cgi?module=vacancy_search&task=mark_search_as_viewed&search_id='+ sId;
}
function logPermalink(id) {
    permalinkLogger.src = '/cgi-bin/user.cgi?module=vacancy_search&task=log_permalink_view&id='+ id;
}

function logClick(id, sId, type) {
    var sIdLink = sId ? '&search_id='+ sId : '';
    var typeLink = type ? '&type='+ type : '';
    clickLogger.src = '/cgi-bin/user.cgi?module=vacancy_search&task=log_click&vacancy_id='+ id + sIdLink + typeLink +'&h='+ generateHash(5);
}

function logClickTypeOnly(id, type) {
    var typeLink = type ? '&type='+ type : '';
    clickLogger.src = '/cgi-bin/user.cgi?module=vacancy_search&task=log_click&vacancy_id='+ id + typeLink +'&h='+ generateHash(5);
}

function logView(msId) {
    viewLogger.src = '/cgi-bin/user.cgi?module=company_profile&task=log_view&id='+ msId;
}



// window.onload multiplier
function addOnload(func) {
    onloadFuncs[onloadFuncs.length] = func;
}
window.onload = function () {
                    for (var i=0; i<onloadFuncs.length; i++) {
                        eval(onloadFuncs[i]);
                    }
                }