


function gwp_isInt(v){
        if((parseFloat(v) == parseInt(v)) && !isNaN(v)){
                return true;
        } else {
                return false;
        }
}

function gwp_getTransId() {
  var gwpTransactionId = 'undefined';
  if (!gwpTransactionId || 0 >= parseInt(gwpTransactionId)) {
    return 1;
  }
  return gwpTransactionId;
}

function gwp_getExtParams() {
        var outText = '';

        var gwpExtParamsFromReq = JSON.parse('null');
        if (gwpExtParamsFromReq && Array.isArray(gwpExtParamsFromReq) && gwpExtParamsFromReq.length > 0) {
            gwpExtParams = gwpExtParamsFromReq;
        }

        if (typeof gwpExtParams === 'undefined' || !gwpExtParams) {
            return outText;
        }

        for (index = 0; index < gwpExtParams.length; ++index) {
                outText += gwpExtParams[index].name + '=' + gwpExtParams[index].value + '&';
        }
        if (outText != null && outText.length > 0) {
                return '&' + outText.substring(0,outText.length-1);
        }

        return outText;
}

function gwp_getProducts() {
    var result = '';

    var gwpProducts = JSON.parse('[]');
    if (!(gwpProducts && Array.isArray(gwpProducts) && gwpProducts.length > 0)) {
        gwpProducts = !(typeof gwpPxInfo === 'undefined' || !gwpPxInfo) ? gwpPxInfo.products : null;

        if (typeof gwpProducts === 'undefined' || !gwpProducts) {
            return result;
        }
    }

    for (i = 0; i < gwpProducts.length; ++i) {
        result += gwpProducts[i].product + ',';

    }

    if (result != null && result.length > 0) {
        result = '&productId=' + escape(result.substring(0, result.length-1));

    }

    return result;
}

  function gwp_getPrice() {
    var result = '';

    var gwpProducts = JSON.parse('[]');
    if (!(gwpProducts && Array.isArray(gwpProducts) && gwpProducts.length > 0)) {
      gwpProducts = !(typeof gwpPxInfo === 'undefined' || !gwpPxInfo) ? gwpPxInfo.products : null;

      if (typeof gwpProducts === 'undefined' || !gwpProducts) {
        return result;
      }
    }

    for (i = 0; i < gwpProducts.length; ++i) {
      if (typeof gwpProducts[i].price === 'undefined') {
        result += ',';
      } else {
        result += gwpProducts[i].price + ',';
      }
    }

    if (result.length == gwpProducts.length) {
        return '';
    }

    if (result != null && result.length > 0) {
      result = '&productPrices=' + escape(result.substring(0, result.length-1));

    }

    return result;

  }

  function gwp_getQuantity() {
    var result = '';

    var gwpProducts = JSON.parse('[]');
    if (!(gwpProducts && Array.isArray(gwpProducts) && gwpProducts.length > 0)) {
      gwpProducts = !(typeof gwpPxInfo === 'undefined' || !gwpPxInfo) ? gwpPxInfo.products : null;

      if (typeof gwpProducts === 'undefined' || !gwpProducts) {
        return result;
      }
    }

    for (i = 0; i < gwpProducts.length; ++i) {
      if (typeof gwpProducts[i].quantity === 'undefined') {
        result += ',';
      } else {
        result += gwpProducts[i].quantity + ',';
      }
    }

    if (result.length == gwpProducts.length) {
      return '';
    }

    if (result != null && result.length > 0) {
      result = '&productQuantities=' + escape(result.substring(0, result.length-1));

    }

    return result;

  }

function getFromCookie(keyname) {
    if (document.cookie.indexOf(keyname) >= 0) {
        refs = document.cookie.replace(' ','').split(';').filter(function(el) {return el.split('=')[0] === keyname});
        if (typeof refs === 'undefined' || refs.length == 0) return null;
        return refs[0].replace(keyname + "=", '');
    }
    return null;
}

function setToCookie(key, val, exp_secounds) {
    var exp = new Date();
    exp.setTime(exp.getTime() + (exp_secounds*1000));
    document.cookie = key + '=' + val + ';expires=' + exp.toGMTString();
}

function getSetSSID() {
    S4 = function () {return (((1+Math.random())*0x10000)|0).toString(16).substring(1);}

    var guid = ''
    if (getFromCookie("ssid")) {
        guid = getFromCookie("ssid");
    } else {
        guid = (S4() + S4() +  S4() + "4" + S4().substr(0,3) + S4() + S4() + S4() + S4()).toLowerCase();
        setToCookie("ssid", guid, (24*60*60));
    }
    return '&ssid='+guid;
}

function gwp_documentReferrer() {
    var updateBaseReferrerCookie = function () {
        var r = encodeURIComponent(document.referrer);
        setToCookie('base_referer',  r, (24*60*60));
        return r;
    }

    var dcreferrer = ''
    if (getFromCookie("base_referrer=")) {
        dcreferrer = getFromCookie("base_referrer=");
        if (dcreferrer != encodeURIComponent(document.referrer) && document.referrer.indexOf(window.location.hostname) <= 0 ) {
            dcreferrer = updateBaseReferrerCookie();
        }
    } else {
        dcreferrer = updateBaseReferrerCookie();
    }
    return '&surl=' + dcreferrer + '&shost=' + encodeURIComponent(decodeURIComponent(dcreferrer).split('/')[2]);
}

var gwpSn     = 'thefirstnews_conv';
var gwpDotAction = 'conversion';
var gwpPar    = escape('transId='+gwp_getTransId()+"&gwpAction=view" +
  gwp_getExtParams() + gwp_documentReferrer()+ getSetSSID() + gwp_getProducts() + gwp_getPrice() + gwp_getQuantity());
var gwpDot    = new Image(1,1);

gwpDot.src    = window.location.protocol+"//dot.wp.pl/s"+Math.round(Math.random()*1E10)+"/px.gif?srv="+gwpSn+"&action="+gwpDotAction+"&par="+gwpPar+"&pg="+'https%3A//www.thefirstnews.com/article/increasing-numbers-of-workers-heading-to-poland-as-new-report-shows-country-takes-on-more-than-usa-and-germany-7792';




