//nazwa cookie id usera dla raportow
var cookieName="EMRUID";

//czas zycia cookie ~10 lat
var cookieExpires = 3650;


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
function appendCookieValue(name,value) {
 	 
	var oldValue = readCookie(name);
	 
	if (oldValue!=null){
	    
		var newValue = value;
		var tempValue = oldValue+'|'+newValue;
		var tempIds = tempValue.split('|');
		var newArray  = new Array();
		for(var i=0; i < tempIds.length; i++ ){
			var found = "0";
			for (var j=0;j<newArray.length; j++){
				if (tempIds[i]==newArray[j]){
				found = "1";
			}
		}
		 
		if (found=="0" && tempIds[i]!=null &&tempIds[i]!=""){
			newArray[newArray.length]=tempIds[i];
		}
		}
		  
		var result="";
		for(var k=0; k < newArray.length; k++ ){
		result = result+newArray[k]+"|";
		}
		
		result = result.substring(0, result.length-1);
  	    createCookie(name,result,1);
		 
	}else{
		createCookie(name,value,1);
	}
} 

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 readCookieForUpdate(name) {
	var nameEQ = name + "=";
	var nameEQnew = nameEQ + "new";
	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){
			if(c.indexOf(nameEQnew) == 0) return c.substring(nameEQnew.length,c.length);
			else return c.substring(nameEQ.length,c.length);
		}
	}
	return null;
}

/** Generator id usera */
function generateUId(noPunction, length) {
    if (parseInt(navigator.appVersion) <= 3) { 
        alert("Sorry this only works in 4.0 browsers"); 
        return true; 
    }
    
    //var length=32;
    var sUId = "";
    
    for (i=0; i < length; i++) {
        numI = getRandomNum();
        if (noPunction) { while (checkPunc(numI)) { numI = getRandomNum(); } }
        sUId = sUId + String.fromCharCode(numI);
    }
    return 'new'+sUId;
}

/** generator liczb losowych */
function getRandomNum() {
    // between 0 - 1
    var rndNum = Math.random()
    // rndNum from 0 - 1000    
    rndNum = parseInt(rndNum * 1000);
    // rndNum from 33 - 127        
    rndNum = (rndNum % 94) + 33;
    return rndNum;
}

/** sprawdza czy znak jest znakiem 'interpunkcyjnym' */
function checkPunc(num) {
    if ((num >=33) && (num <=47)) { return true; }
    if ((num >=58) && (num <=64)) { return true; }    
    if ((num >=91) && (num <=96)) { return true; }
    if ((num >=123) && (num <=126)) { return true; }
    return false;
}

//gdy nie jest zostawione cookie - zostawiamy
if (readCookieForUpdate(cookieName)==null || readCookieForUpdate(cookieName)=='') {
	createCookie(cookieName, generateUId(true, 32), cookieExpires);
} else {
	createCookie(cookieName, readCookieForUpdate(cookieName), cookieExpires);
}
