 function DoubleClick(floodLightTagId,environment,protocol,pageCategory) {

    var formData = null;
    var preApplyOn = null;
    var msmUserId = null;
    var sourceCode = null

    this.init = function() {
        msmUserId = readCookie('userid');
        sourceCode = readCookie('source');
        $(document).ready(function() {
            addProceedClickHandler();
        });

        addPageHandler();
    }

    function addProceedClickHandler() {
        jQuery("input[id*='GoalProviderLink']").live('click', proceedButtonClickHandler);
    }
    
    function addPageHandler() {
        var axel = Math.random() + "";
        var a = axel * 10000000000000;
        var newIFrame=document.createElement('iframe');
        newIFrame.src= protocol + 'fls.doubleclick.net/activityi;src=2589937;type=ms_cont;cat=' + pageCategory + ';u7=;u6=;u3=;u2=' + sourceCode + ';u1=' + msmUserId +';ord=' + a + '?';
        newIFrame.width="1";
        newIFrame.frameBorder="0";
        newIFrame.height = "1";
        newIFrame.id ="doubleClickIFrame";
        var scriptNode = document.getElementById(floodLightTagId);
        scriptNode.parentNode.insertBefore(newIFrame,scriptNode);
        jQuery("#doubleClickIFrame").attr('style','display:none');
    }
    
    function sendData() {
        try {
          
            if (!preApplyOn) {
               var productCode = getFormValue("ProductCode",formData);
               var productId = getFormValue("ProductId",formData);

               var axel = Math.random() + "";
               var a = axel * 10000000000000;

               var doubleClickUrl =  protocol + 'ad.doubleclick.net/activity;src=2589937;type=ms_cont;cat=proce526;u7=;u6=;u5=' + productId + ';u4='+ productCode +';u3=' + environment + ';u2=' + sourceCode + ';u1=' + msmUserId +';ord=' + a + '?';
 
               var image = $('<img>');
               image.attr('src', doubleClickUrl);
               image.css('display', 'none');
               image.appendTo('body');

            }
        } catch (err) { return true; }
    }

    function getFormValue(key,data)
    {
       var returnValue= null;

       jQuery.each(data, function(i, field) {
           if (field.name.toLowerCase() == key.toLowerCase()) {
               returnValue = field.value;
               return false;
           }
       });

        return returnValue;       
    }

    function readCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') c = c.substring(1, c.length)
            if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
        }
        return null;
    }

    function getFormData(element) {
        formData = element.closest('form').serializeArray();
        preApplyOn = element.attr('title') === "More details";
    }

    function proceedButtonClickHandler() {
        getFormData(jQuery(this));
        sendData();
    }
}
