/**
 * GKB PDASH SCRIPT © 2011
 * @version 1.01
 * @date: 07.03.11
 * @time: 16:41
 * @description pdash for GKB
 * @requires jQuery 1.4.4
*/


var pdash={VERSION:"1.0",ready:false,config:{method:"cookie",defaultLabel:$("h1:first").text(),url:{SELECTION:["dev-pdash.namics.com","sta-pdash.namics.com","pdash.namics.com"],HIT:"/do/hit",ERROR:"/do/error",protocol:window.location.protocol+"//",base:"",uri:""},cookie:{NAME:"pdash",SEGMENT:"segment",timeout:5000,expires:undefined,domain:undefined,secure:undefined},ajax:{timeout:5000,CALLBACK:"send_hit"},setLabel:null,object:null,eventHandler:function(event){event.preventDefault();pdash.utils.hit.set();return false;},eventTypeList:"submit",counter:0,triggeringEventType:null,triggerFct:function(){if(pdash.config.object!==null){pdash.config.object.trigger(this.triggeringEventType);}}},hit:{ua:"no useragent","label[]":[],segment:"no segment",authentication:"no authentication",time:"no time",lang:$("meta[name='Language']").attr("content"),account:"no account",identifier:"no identifier",error:""},init:function(callback){var conf,hit;conf=pdash.config;hit=pdash.hit;if(conf.object===null||conf.object===undefined){conf.object=$("form:last");}if(hit.identifier==="no identifier"||hit.identifier===null||hit.identifier===undefined){hit.identifier=conf.object.attr("id")||conf.object.attr("name")||conf.object.attr("class");}if(conf.triggeringEventType===null){conf.triggeringEventType=(pdash.config.eventTypeList.split(/\s*,\s*/))[0];}hit.ua=navigator.userAgent;if(window.navigator.cookieEnabled&&document.cookie&&(segment=pdash.utils.cookie.read(conf.cookie.SEGMENT))){hit.segment=segment;}if(conf.url.base!==""&&conf.object!==null&&hit.account!=="no account"&&pdash.hit.identifier!=="no identifier"&&pdash.hit.segment!=="no segment"){pdash.ready=true;if(callback){callback();}}else{pdash.utils.unsetTrigger();pdash.utils.unsetOnSubmitFct();}},updateObject:function(obj,ident){if(obj){pdash.config.object=obj;}if(ident){pdash.hit.identifier=ident;}},utils:{origOnSubmitFct:null,origOnSubmitFctName:null,setOnSubmitFct:function(fctName){if(fctName){pdash.utils.origOnSubmitFctName=fctName;pdash.utils.origOnSubmitFct=window[fctName];window[fctName]=function(){return pdash.utils.hit.set(pdash.utils.origOnSubmitFct);};}},unsetOnSubmitFct:function(){if(pdash.utils.origOnSubmitFctName!==null){window[pdash.utils.origOnSubmitFctName]=pdash.utils.origOnSubmitFct;}},setTrigger:function(triggerObject){$.extend(pdash.config,triggerObject);var eventTypeArray=pdash.config.eventTypeList.split(/\s*,\s*/);if(eventTypeArray.length>0){if(pdash.config.eventHandler!==""){for(var i=0;i<eventTypeArray.length;i++){pdash.config.object.live(eventTypeArray[i],pdash.config.eventHandler);}}}},unsetTrigger:function(){var eventTypeArray=pdash.config.eventTypeList.split(/\s*,\s*/);if(eventTypeArray.length>0){if(pdash.config.eventHandler!==""){for(var i=0;i<eventTypeArray.length;i++){pdash.config.object.die(eventTypeArray[i],pdash.config.eventHandler);}}}},send:{isSending:false,asynch:function(){var targetUrl=pdash.config.url.protocol+pdash.config.url.uri;pdash.utils.send.isSending=true;$.ajax({url:targetUrl,dataType:"jsonp",jsonp:pdash.config.ajax.CALLBACK,data:pdash.hit});pdash.config.triggerFct();},synch:function(){var targetUrl=pdash.config.url.protocol+pdash.config.url.uri;pdash.utils.send.isSending=true;setTimeout(function(){if(pdash.utils.send.isSending){pdash.utils.cookie.add();pdash.config.triggerFct();}},pdash.config.ajax.timeout);$.ajax({url:targetUrl,dataType:"jsonp",jsonp:pdash.config.ajax.CALLBACK,data:pdash.hit,error:function(){pdash.utils.send.isSending=false;pdash.utils.cookie.add();pdash.config.triggerFct();},success:function(d){pdash.utils.send.isSending=false;if(d.error){pdash.utils.cookie.add();}pdash.config.triggerFct();}});}},hit:{set:function(chainFctString){var conf=pdash.config;if(!pdash.ready&&(!window.navigator.cookieEnabled&&!pdash.config.method.match(/^ajax|both$/))||pdash.config.method=="none"){return true;}if(!chainFctString){conf.object.die(conf.triggeringEventType,conf.eventHandler);pdash.utils.hit.send();}else{if(conf.counter===0){var feedback=chainFctString();if(feedback){conf.counter=1;pdash.utils.hit.send();}return false;}else{if(conf.counter===1){return true;}else{return false;}}}},send:function(){var conf,hit,url,label;conf=pdash.config,hit=pdash.hit;url=conf.url;if(conf.setLabel){label=[];label=conf.setLabel(label);for(var i=0;i<label.length;i++){label[i]=label[i].replace(/[^a-zA-Z0-9+\-]|\s/g,"").toLowerCase();}hit["label[]"]=label;}else{label=conf.defaultLabel.replace(/[^a-zA-Z0-9+\-]|\s/g,"").toLowerCase();hit["label[]"]=[label];}hit.time=Math.round(((new Date()).getTime()-Date.UTC(1970,0,1))/1000);hit.authentication=pdash.utils.sha1(String(hit.time)+hit.account+hit.ua+hit["label[]"].join()+hit.identifier+hit.segment);url.uri=url.base;if(hit["label[]"].length===0||hit.authentication=="no authentication"||hit.time=="no time"){url.uri+=url.ERROR;if(hit["label[]"].length===0){hit.error="No labels set!";}else{if(hit.authentication=="no authentication"){hit.error="No authentication set!";}else{if(hit.time=="no time"){hit.error="No time set!";}}}}else{url.uri+=url.HIT;}switch(pdash.config.method){case"both":if(window.navigator.cookieEnabled){pdash.utils.cookie.add();pdash.utils.cookie.checkHit();pdash.config.triggerFct();}else{pdash.utils.send.synch();}break;case"cookie":pdash.utils.cookie.add();pdash.config.triggerFct();break;case"ajax":pdash.utils.send.synch();break;default:pdash.config.triggerFct();}}},cookie:{add:function(){var data=pdash.hit;var dataString=data.ua+"_,_"+data.account+"_,_"+data.identifier+"_,_"+data.segment+"_,_"+data.authentication+"_,_"+data.lang+"_,_"+data.time+"_,_"+data.error+"_,_"+pdash.config.url.uri+"_,_"+data["label[]"].join("_,_");var counter="";while(this.read(pdash.config.cookie.NAME+counter)!==null){counter++;}if(window.navigator.cookieEnabled){this.set(pdash.config.cookie.NAME+counter,dataString,pdash.config.cookie.expires,"/",pdash.config.cookie.domain,pdash.config.cookie.secure);}},sendHit:function(counter){var cookieName=counter===0?pdash.config.cookie.NAME:pdash.config.cookie.NAME+counter;var cookie=this.read(cookieName);var dataArray=cookie.split("_,_");var data={ua:dataArray[0],account:dataArray[1],identifier:dataArray[2],"label[]":dataArray.slice(9),segment:dataArray[3],authentication:dataArray[4],lang:dataArray[5],time:dataArray[6],error:dataArray[7]};var url=pdash.config.url;var requestUrl=url.protocol+dataArray[8];$.ajax({url:requestUrl,dataType:"jsonp",jsonp:pdash.config.ajax.CALLBACK,timeout:pdash.config.cookie.timeout,data:data,error:function(){},success:function(data){if(!data.error){pdash.utils.cookie.remove(cookieName,"/");if(counter>0){pdash.utils.cookie.sendHit(--counter);}}}});},checkHit:function(){var counter="";while(this.read(pdash.config.cookie.NAME+counter)!==null){counter++;}counter--;if(counter>=0){this.sendHit(counter);}},set:function(name,value,expires,path,domain,secure){var today=new Date();today.setTime(today.getTime());if(expires){expires=expires*1000*60*60*24;}var expires_date=new Date(today.getTime()+(expires));document.cookie=name+"="+encodeURIComponent(value)+((expires)?";expires="+expires_date.toGMTString():"")+((path)?";path="+path:"")+((domain)?";domain="+domain:"")+((secure)?";secure":"");},read:function(check_name){var a_all_cookies=document.cookie.split(";");var a_temp_cookie="";var cookie_name="";var cookie_value="";var b_cookie_found=false;for(var i=0;i<a_all_cookies.length;i++){a_temp_cookie=a_all_cookies[i].split("=");cookie_name=a_temp_cookie[0].replace(/^\s+|\s+$/g,"");if(cookie_name==check_name){b_cookie_found=true;if(a_temp_cookie.length>1){cookie_value=decodeURIComponent(a_temp_cookie[1].replace(/^\s+|\s+$/g,""));}return cookie_value;}a_temp_cookie=null;cookie_name="";}if(!b_cookie_found){return null;}},remove:function(name,path,domain){if(this.read(name)){document.cookie=name+"="+((path)?";path="+path:"")+((domain)?";domain="+domain:"")+";expires=Thu, 01-Jan-1970 00:00:01 GMT";}}},sha1:function(msg){function rotate_left(n,s){var t4=(n<<s)|(n>>>(32-s));return t4;}function lsb_hex(val){var str="";var i;var vh;var vl;for(i=0;i<=6;i+=2){vh=(val>>>(i*4+4))&15;vl=(val>>>(i*4))&15;str+=vh.toString(16)+vl.toString(16);}return str;}function cvt_hex(val){var str="";var i;var v;for(i=7;i>=0;i--){v=(val>>>(i*4))&15;str+=v.toString(16);}return str;}function Utf8Encode(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}else{if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}}return utftext;}var blockstart;var i,j;var W=new Array(80);var H0=1732584193;var H1=4023233417;var H2=2562383102;var H3=271733878;var H4=3285377520;var A,B,C,D,E;var temp;msg=Utf8Encode(msg);var msg_len=msg.length;var word_array=[];for(i=0;i<msg_len-3;i+=4){j=msg.charCodeAt(i)<<24|msg.charCodeAt(i+1)<<16|msg.charCodeAt(i+2)<<8|msg.charCodeAt(i+3);word_array.push(j);}switch(msg_len%4){case 0:i=2147483648;break;case 1:i=msg.charCodeAt(msg_len-1)<<24|8388608;break;case 2:i=msg.charCodeAt(msg_len-2)<<24|msg.charCodeAt(msg_len-1)<<16|32768;break;case 3:i=msg.charCodeAt(msg_len-3)<<24|msg.charCodeAt(msg_len-2)<<16|msg.charCodeAt(msg_len-1)<<8|128;break;}word_array.push(i);while((word_array.length%16)!=14){word_array.push(0);}word_array.push(msg_len>>>29);word_array.push((msg_len<<3)&4294967295);for(blockstart=0;blockstart<word_array.length;blockstart+=16){for(i=0;i<16;i++){W[i]=word_array[blockstart+i];}for(i=16;i<=79;i++){W[i]=rotate_left(W[i-3]^W[i-8]^W[i-14]^W[i-16],1);}A=H0;B=H1;C=H2;D=H3;E=H4;for(i=0;i<=19;i++){temp=(rotate_left(A,5)+((B&C)|(~B&D))+E+W[i]+1518500249)&4294967295;E=D;D=C;C=rotate_left(B,30);B=A;A=temp;}for(i=20;i<=39;i++){temp=(rotate_left(A,5)+(B^C^D)+E+W[i]+1859775393)&4294967295;E=D;D=C;C=rotate_left(B,30);B=A;A=temp;}for(i=40;i<=59;i++){temp=(rotate_left(A,5)+((B&C)|(B&D)|(C&D))+E+W[i]+2400959708)&4294967295;E=D;D=C;C=rotate_left(B,30);B=A;A=temp;}for(i=60;i<=79;i++){temp=(rotate_left(A,5)+(B^C^D)+E+W[i]+3395469782)&4294967295;E=D;D=C;C=rotate_left(B,30);B=A;A=temp;}H0=(H0+A)&4294967295;H1=(H1+B)&4294967295;H2=(H2+C)&4294967295;H3=(H3+D)&4294967295;H4=(H4+E)&4294967295;}temp=cvt_hex(H0)+cvt_hex(H1)+cvt_hex(H2)+cvt_hex(H3)+cvt_hex(H4);return temp.toLowerCase();}}};$(document).ready(function(){try{if(window.navigator.cookieEnabled&&document.cookie){pdash.utils.cookie.checkHit();}}catch(e){}});var gkbpdash={VERSION:"1.0",target:0,config:{},hit:{account:"gkb",segment:"Private"},run:function(par){var hit=this.hit,config=this.config,purl=pdash.config.url;try{if(typeof this.target!="undefined"&&isFinite(this.target)&&purl.SELECTION.length>this.target){purl.base=purl.SELECTION[this.target];}else{purl.base=purl.SELECTION[0];}}catch(e){}if(par){if(par.type===null||par.type===undefined){par.type="onlyForm";}if(par.identifier!==undefined){hit.identifier=par.identifier;}if(par.setLabel!==undefined){config.setLabel=par.setLabel;}if(par.object!==undefined){config.object=par.object;}switch(par.type){case"elementTrigger":try{config.triggerFct=function(){window.location=pdash.config.object.attr("href");};}catch(e){}var triggerObject={object:config.object,eventTypeList:""};if(par&&par.eventTypes!==undefined){triggerObject.eventTypeList=par.eventTypes;}else{triggerObject.eventTypeList="click";}try{pdash.utils.setTrigger(triggerObject);}catch(e){}break;case"onlyForm":case"checkboxForm":config.triggeringEventType="submit";try{pdash.utils.setOnSubmitFct("validateFields");}catch(e){}break;}}else{config.triggeringEventType="submit";try{pdash.utils.setOnSubmitFct("validateFields");}catch(e){}}try{$.extend(pdash.config,this.config);$.extend(pdash.hit,this.hit);pdash.init();}catch(e){}}};

