function TagIT(site_language,debug_mode){this.debug=debug_mode||false;if(this.debug){this.path='http://www2.bitdefender.com/site/Main/TagIT/';}else{this.path='https://partners.bitdefender.com/site/Main/TagIT/';};this.queue=[];this.args=[];this.busy=false;this.site_language='en';if(typeof site_language!='undefined'){this.site_language=site_language;}};TagIT.prototype.next=function(){if(this.queue.length>0){this.busy=true;f=this.queue.shift();a=this.args.shift();f.apply(this,a);}};TagIT.prototype._ping=function(url){var pingjs=document.createElement('script');pingjs.setAttribute('src',this.path+url+'&l='+this.site_language);var loadFunction=function(){if(this.readyState=='complete'||this.readyState=='loaded'){tagit.busy=false;tagit.next();};};pingjs.onreadystatechange=loadFunction;pingjs.onload=function(){tagit.busy=false;tagit.next();};document.body.appendChild(pingjs);};TagIT.prototype.addEmail=function(email,time,callback){this.queue.push(this._addEmail);this.args.push(arguments);if(this.queue.length==1&&!this.busy){this.next();}};TagIT.prototype.addProduct=function(prodid,time,callback){this.queue.push(this._addProduct);this.args.push(arguments);if(this.queue.length==1&&!this.busy){this.next();}};TagIT.prototype.addTrial=function(prodid,time,callback){this.queue.push(this._addTrial);this.args.push(arguments);if(this.queue.length==1&&!this.busy){this.next();}};TagIT.prototype.addAction=function(actionType,email,details,action_status,time,callback){this.queue.push(this._addAction);this.args.push(arguments);if(this.queue.length==1&&!this.busy){this.next();}};TagIT.prototype.setBlock=function(v,callback){this.queue.push(this._setBlock);this.args.push(arguments);if(this.queue.length==1&&!this.busy){this.next();}};TagIT.prototype.clear=function(callback){this.queue.push(this._clear);this.args.push(arguments);if(this.queue.length==1&&!this.busy){this.next();}};TagIT.prototype._addEmail=function(email,time,callback){var time=time||0;var callback=callback||'';this._ping('/addemail/?email='+email+'&time='+time+'&callback='+callback);};TagIT.prototype._addProduct=function(prodid,time,callback){var time=time||0;var callback=callback||'';this._ping('/addproduct/?prodid='+prodid+'&time='+time+'&callback='+callback);};TagIT.prototype._addTrial=function(prodid,time,callback){var time=time||0;var callback=callback||'';this._ping('/addtrial/?prodid='+prodid+'&time='+time+'&callback='+callback);};TagIT.prototype._addAction=function(actionType,email,details,action_status,time,callback){var unix = Math.round(+new Date()/1000);var time=time||0;var callback=callback||'';var email=email||'';var details=details||'';details=encodeURIComponent(details);var action_status=action_status||'0';this._ping('/addaction/?action_type='+actionType+'&email='+email+'&details='+details+'&action_status='+action_status+'&time='+time+'&callback='+callback);};TagIT.prototype._setBlock=function(v,callback){var v=v||0;var callback=callback||'';this._ping('/setblock/?v='+v+'&callback='+callback);};TagIT.prototype._clear=function(callback){var callback=callback||'';this._ping('/clear/?callback='+callback);};TagIT.prototype.monitor=function(textinput){var inputs,index;if(typeof textinput!='undefined'){textinput.onblur=tagit.checkEmail;}else{inputs=document.getElementsByTagName('input');for(index=0;index<inputs.length;++index){if(inputs[index].type=='text'){var __old=inputs[index].onblur;if(typeof __old=='function'){inputs[index].onblur=function(){__old();tagit.checkEmail(this);};}else{inputs[index].onblur=tagit.checkEmail;}}}}};TagIT.prototype.monitor_field=function(textinput,action,details){action=action||'general monitor';details=details||'-';var __old=textinput.onblur;if(typeof __old=='function'){textinput.onblur=function(){__old();var __txt=textinput.value;__txt=__txt.replace(/^\s+|\s+$/g,"");if(tagit.validateEmail(__txt)){if(action){tagit.addAction(action,__txt,details);}}};}else{textinput.onblur=function(e){var __txt=textinput.value;__txt=__txt.replace(/^\s+|\s+$/g,"");if(tagit.validateEmail(__txt)){if(action){tagit.addAction(action,__txt,details);}}};}};TagIT.prototype.checkEmail=function(textinput,action){var __txt=textinput.value;_txt=__txt.replace(/^\s+|\s+$/g,"");if(tagit.validateEmail(__txt)){tagit.addEmail(__txt);}};TagIT.prototype.validateEmail=function(str){var reg=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;return reg.test(str);};function TagIT_callback(result,message){if(tagit.debug){alert("response - "+result+"; message: "+message);}};
