var DOM = 0, MS = 0, NS = 0, OP = 0, isIE = 0, isMac = 0, isSafari = 0, isKonqueror = 0;
var drpObj = null;
var flag = 0, flag2 = 0;

function checkBrowser() {    	 	 
	 if(document.getElementById) DOM = 1;
	 else if (window.opera) OP = 1;
	 else if(document.all && !OP) MS = 1;
	 else if(window.netscape && window.screen && !DOM && !OP) NS = 1;
	 
	 var agt = navigator.userAgent.toLowerCase();  	 
	 if(agt.indexOf("msie") != -1) isIE = 1;
	 else if(agt.indexOf("safari") != -1) isSafari = 1;
	 else if(agt.indexOf("konqueror") != -1) isKonqueror = 1;
}

function setClass(elName, clName) {
    if(DOM) {
        var el = document.getElementById(elName);
        if(isIE) el.className = clName;
        else el.className = clName;    
    } else if (MS) {
        document.all[elName].classname = clName;
    }
}


function isEnter(e) {
    
    var keynum;

    if(window.event) {
      keynum = e.keyCode;
    } else if(e.which) {
      keynum = e.which;
    }

    if(keynum == 13) {
        return true;
    } else {
        return false;   
    }   
}

function clearInput(obj,def) {
  if(!def || obj.value == def) {
      obj.value = "";      
  }
  obj.style.color = "#000000";
}

function openDoc(sTarget, sWinName, sWidth, sHeight) {           
    var sProps = "width=" + sWidth + ",height=" + sHeight + ",left=0,top=0,scrollbars=yes";
    winRef = window.open(sTarget, sWinName, sProps);
    winRef.focus();
}

function openWin(sTarget, sProps) {                    
   winRef = window.open(sTarget, "new", sProps);
   winRef.focus();        
}

function doFreeCall(sAction, iDialogId, iRecptId, sAreaCode, sLocalCode) {
    
    var sUrl = "/servlet/sip/call?action=" + sAction + "&dialogId=" + iDialogId + "&recptId=" + iRecptId;
    
    if(sAreaCode && sLocalCode) {
       sUrl += "&areacode="+sAreaCode + "&localcode=" + sLocalCode;    
    }
   
    winRef = window.open(sUrl, "new", "width=735,height=350,left=0,top=0,resizable=no,scrollbars=yes,location=no,menubar=no");
    winRef.focus(); 
}

function setSelectIndex(sel, val) {
     for (i=0;i<sel.options.length;i++) { 	
        if (sel.options[i].value == val) {
           sel.selectedIndex = i;
           break;
        }
     }
}

function changeImage(obj,path) {obj.src=""+path;}

function storeCookie( name, value, expires, path) {
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime( today.getTime() );
        
    if ( expires ) {
    	expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date( today.getTime() + (expires) );
    
    var str = name + "=" +escape( value ) +
    ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
    ( ( path ) ? ";path=" + path : "" );
   
    document.cookie = str;
}

function fetchCookie( name ) {
	
    var start = document.cookie.indexOf( name + "=" );
    var len = start + name.length + 1;
    if ( ( !start ) &&
    ( name != document.cookie.substring( 0, name.length ) ) )
    {
    return null;
    }
    if ( start == -1 ) return null;
    var end = document.cookie.indexOf( ";", len );
    if ( end == -1 ) end = document.cookie.length;
    return unescape( document.cookie.substring( len, end ) );
}

function dropCookie( name, path) {
    if ( fetchCookie( name ) ) document.cookie = name + "=" +
    ( ( path ) ? ";path=" + path : "") +
    ";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function getFormData(frm,disable) {
    
    var str = "";
	var el = frm.elements;
	for(i = 0; i < el.length; i++) {
				
		if(el[i].type == "text" || el[i].type == "textarea" || el[i].type == "hidden"  || el[i].type == "password") {
		   if(el[i].value.length > 0) {	   	
		   	  str = str + el[i].name + "=" +  encodeURIComponent(el[i].value) + "&";		   	  
		   }
		   if(disable) el[i].disabled = true;
		} else if(el[i].type == "checkbox" || el[i].type == "radio") {
		   if(el[i].checked) {
		     str = str + el[i].name + "=" + el[i].value + "&";		     
		   }
		   if(disable) el[i].disabled = true;
		} else if(el[i].type == "select-one") {
		  if(el[i].value.length > 0) {
		   	  str = str + el[i].name + "=" + el[i].value + "&";		   	  
		   }
		   if(disable) el[i].disabled = true;
		}		
	}
	
	return str;
}

function encode_utf8(rohtext) {	
	rohtext = rohtext.replace(/\r\n/g,"\n");
	var utftext = "";
	for(var n=0; n<rohtext.length; n++)	{		
		var c=rohtext.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;
}

function decode_utf8(utftext) {
  var plaintext = ""; var i=0; var c=c1=c2=0;  
  while(i<utftext.length){
    c = utftext.charCodeAt(i);
    if (c<128) {
      plaintext += String.fromCharCode(c);
      i++;
    } else if((c>191) && (c<224)) {
      c2 = utftext.charCodeAt(i+1);
      plaintext += String.fromCharCode(((c&31)<<6) | (c2&63));
      i+=2;
    } else {
      c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2);
      plaintext += String.fromCharCode(((c&15)<<12) | ((c2&63)<<6) | (c3&63));
      i+=3;
    }
  }
  return plaintext;
}


// SUBNAVI //
function attachDocEvent() {
  document.onmousedown = function() {
    if(flag2 == 1 && drpObj.className != "ssd") {
        drpObj.className = drpObj.className.replace("over", "");
        if(flag == 0) {
            drpObj = null;
        }
        flag = 0;
    }
  }
}

function startDrpNav(obj) {
    
    if(flag == 0 && obj != drpObj) {
        obj.className="over";
        drpObj = obj;
        flag2 = 1;
        flag = 1;
    } else if(flag == 0 && obj == drpObj) {
        flag2 = 0;
        flag = 2;   
    } else if(flag == 1 && obj == drpObj) {
        flag2 = 1;
    } else if(flag == 2 && obj == drpObj) {
        obj.className="over";
        drpObj = obj;
        flag2 = 1;
    }  else if(flag == 2 && obj != drpObj) {
        obj.className="over";
        drpObj = obj;
        flag2 = 1;
    }
} 

function removeOver() {
  drpObj.className = drpObj.className.replace("over", "");
}

attachDocEvent();
checkBrowser();


function switch_list(cat) {
	
	var switcher = document.getElementById('plus_'+cat);
	var sublist = document.getElementById('cat_'+cat);
	
	if (sublist.style.display == 'none') {
		switcher.className = 'plus';
		sublist.style.display = 'block';
	} else {
		switcher.className = 'plus plus_minus';
		sublist.style.display = 'none';
	}
	
}

function switch_list_gar(cat) {
	
	var switcher = document.getElementById('plus_'+cat);
	var sublist = document.getElementById('cat_'+cat);
	
	if (switcher.className == 'plus') {
		switcher.className = 'plus plus_minus';
		sublist.style.display = 'block';
	} else {
		switcher.className = 'plus';
		sublist.style.display = 'none';
	}
	
}

function checkBox(id) {
	var id = document.getElementById(id);
	if (id.checked) {
		return true;
	}
}

function toggleClass(id, cssClass, input_id) {
	
	var id = document.getElementById(id);
	if (id.className == cssClass) {
		id.className = '';
	} else if (checkBox(input_id)) {
		id.className = '';
	} else {
		id.className = cssClass;
	}
	
}

// function fur Karte bei Branchen

function hide_layers(this_id) {
	var m = document.getElementById('myBody').childNodes;
    for (i=0; i<m.length; i++) {
    	if (m.item(i).id!=null && m.item(i).id!='' && m.item(i).id!=this_id) {
	    	var item = m.item(i).id;
				var i_id = document.getElementById(item);
	    	i_id.style.display='none';
    	}
    }
}

function switch_profile_edit(list) {
	if (list=='list1') {
		document.getElementById('list1').style.display='none';
		document.getElementById('list2').style.display='block';
	} else {
		document.getElementById('list1').style.display='block';
		document.getElementById('list2').style.display='none';
	}
}

//fingerprint

function pul_getHashCode(str){
    var hash = 0;
    if (str.length == 0) return hash;
    for (i = 0; i < str.length; i++) {
        char = str.charCodeAt(i);
        hash = ((hash<<5)-hash)+char;
        hash = hash & hash; // Convert to 32bit integer
    }
    return hash;
}


function pul_getMimeTypes() {
    var L = navigator.mimeTypes.length;
    var txt="";
   
	for(var i=0; i<L; i++) {
	  txt+=navigator.mimeTypes[i].type+";";
	  txt+=navigator.mimeTypes[i].suffixes +";";
	  txt+=navigator.mimeTypes[i].description+";<br>";
	}
	       
    return txt;
 }


function pul_getPlugins() {
   var L = navigator.plugins.length;
   var txt="";
  
   for(var i=0; i<L; i++) {
     txt+=navigator.plugins[i].name+";";
     txt+=navigator.plugins[i].filename+";";
     txt+=navigator.plugins[i].description+";";
     txt+=navigator.plugins[i].version+";<br>";
   }
      
   return txt;
}

 function pul_getTimezone() {
    var d = new Date();
    return d.getTimezoneOffset();
 }  
   
 function pul_getScreenData() {
    var scr=screen.width+"x"+screen.height+"x"+screen.colorDepth;
    return scr;
 }

 function pul_superCookie(){
	  var res="DOM_localStorage:"+pul_domStorage(window.localStorage)+";";
	     res+="DOM_sessionStorage:"+pul_domStorage(window.sessionStorage )+";";
	    return res;
	}


  function pul_domStorage(storage)
	{
	try {
	  var uid = new Date;
	  storage.setItem(uid, uid);
	  
	  result = storage.getItem(uid) == uid;
	  storage.removeItem(uid);

	} catch(e) {
	   return false;
	}

	return    result;
 }
  
  
//SCRIPTS CODE FOR FONTS

  var fontchecker_a;
  var fontchecker_b;

  function create_span(){
  	fontchecker_a=document.createElement('span');
  	(document.body/*||document.documentElement*/).appendChild(fontchecker_a);
  	fontchecker_a.style.fontFamily="Arial,monospace";
  	fontchecker_a.style.margin="0px";
  	fontchecker_a.style.padding="0px";
  	fontchecker_a.style.fontSize="32px";
  	fontchecker_a.style.position="absolute";
  	fontchecker_a.style.top="-999px";
  	fontchecker_a.style.left="-999px";
  	fontchecker_a.innerHTML="Font Checker SPAN-A"
  	
  	fontchecker_b=document.createElement('span');
  	(document.body/*||document.documentElement*/).appendChild(fontchecker_b);
  	fontchecker_b.style.fontFamily="Arial,monospace";
  	fontchecker_b.style.margin="0px";
  	fontchecker_b.style.padding="0px";
  	fontchecker_b.style.fontSize="32px";
  	fontchecker_b.style.position="absolute";
  	fontchecker_b.style.top="-999px";
  	fontchecker_b.style.left="-999px";
  	fontchecker_b.innerHTML="Font Checker SPAN-B"
  }

  function checkfont(font){
  	create_span();
  	var txt="ERROR"
  	fontchecker_a.style.fontFamily=font+",monospace"
  	fontchecker_b.style.fontFamily="monospace"
  	fontchecker_a.innerHTML="random_words_#_!@#$^&*()_+mdvejreu_RANDOM_WORDS"
  	fontchecker_b.innerHTML=fontchecker_a.innerHTML
  	
  	if(Number(fontchecker_a.offsetWidth)==Number(fontchecker_b.offsetWidth)&&Number(fontchecker_a.offsetHeight)==Number(fontchecker_b.offsetHeight)){
  		fontchecker_a.style.fontFamily=font+",Arial"
  		fontchecker_b.style.fontFamily="Arial"
  		if(Number(fontchecker_a.offsetWidth)==Number(fontchecker_b.offsetWidth)&&Number(fontchecker_a.offsetHeight)==Number(fontchecker_b.offsetHeight)){
  			txt="false"
  		}else{
  			txt="true"
  		}
  	}else{
  		txt="true"
  	}
  	//DELETE TESTING ELEMENTS
  	fontchecker_a.innerHTML=""
  	fontchecker_a.outerHTML=""
  	fontchecker_b.innerHTML=""
  	fontchecker_b.outerHTML=""
  	
  	if(txt=="true"){
  		return true
  	}else if(txt=="false"){
  		return false
  	}else{
  		return "ERROR"
  	}
  }
  
  function pul_Fonts()
  {
   //Windows fonts
 var fonts = ["Abadi MT Condensed"
              ,"Adobe Minion Web"
              ,"Agency FB"
              ,"Aharoni"
              ,"Algerian"
              ,"Almanac MT"
              ,"American Uncial"
              ,"Andale Mono"
              ,"Andalus"
              ,"Andy"
              ,"Angsana New"
              ,"AngsanaUPC"
              ,"Aparajita"
              ,"Arabic Transparent"
              ,"Arabic Typesetting"
              ,"Arial"
              ,"Arial Black"
              ,"Arial Narrow"
              ,"Arial Narrow Special"
              ,"Arial Rounded MT"
              ,"Arial Special"
              ,"Arial Unicode MS"
              ,"Augsburger Initials"
              ,"Baskerville Old Face"
              ,"Batang"
              ,"Bauhaus 93"
              ,"Beesknees ITC"
              ,"Bell MT"
              ,"Berlin Sans FB"
              ,"Bernard MT Condensed"
              ,"Bickley Script"
              ,"Blackadder ITC"
              ,"Bodoni MT"
              ,"Bodoni MT Condensed"
              ,"Bon Apetit MT"
              ,"Book Antiqua"
              ,"Bookman Old Style"
              ,"Bookshelf Symbol"
              ,"Bradley Hand ITC"
              ,"Braggadocio"
              ,"BriemScript"
              ,"Britannic"
              ,"Britannic Bold"
              ,"Broadway"
              ,"Browallia New"
              ,"BrowalliaUPC"
              ,"Brush Script MT"
              ,"Calibri"
              ,"Californian FB"
              ,"Calisto MT"
              ,"Cambria"
              ,"Cambria Math"
              ,"Candara"
              ,"Cariadings"
              ,"Castellar"
              ,"Centaur"
              ,"Century"
              ,"Century Gothic"
              ,"Century Schoolbook"
              ,"Chiller"
              ,"Colonna MT"
              ,"Comic Sans MS"
              ,"Consolas"
              ,"Constantia"
              ,"Contemporary Brush"
              ,"Cooper Black"
              ,"Copperplate Gothic"
              ,"Corbel"
              ,"Cordia New"
              ,"CordiaUPC"
              ,"Courier New"
              ,"Curlz MT"
              ,"DaunPenh"
              ,"David"
              ,"Desdemona"
              ,"DFKai-SB"
              ,"DilleniaUPC"
              ,"Directions MT"
              ,"DokChampa"
              ,"Dotum"
              ,"Ebrima"
              ,"Eckmann"
              ,"Edda"
              ,"Edwardian Script ITC"
              ,"Elephant"
              ,"Engravers MT"
              ,"Enviro"
              ,"Eras ITC"
              ,"Estrangelo Edessa"
              ,"EucrosiaUPC"
              ,"Euphemia"
              ,"Eurostile"
              ,"FangSong"
              ,"Felix Titling"
              ,"Fine Hand"
              ,"Fixed Miriam Transparent"
              ,"Flexure"
              ,"Footlight MT"
              ,"Forte"
              ,"Franklin Gothic"
              ,"FrankRuehl"
              ,"FreesiaUPC"
              ,"Freestyle Script"
              ,"French Script MT"
              ,"Futura"
              ,"Gabriola"
              ,"Garamond"
              ,"Garamond MT"
              ,"Gautami"
              ,"Georgia"
              ,"Georgia Ref"
              ,"Gigi"
              ,"Gill Sans MT"
              ,"Gill Sans MT Condensed"
              ,"Gisha"
              ,"Gloucester"
              ,"Goudy Old Style"
              ,"Goudy Stout"
              ,"Gradl"
              ,"Gulim"
              ,"Gungsuh"
              ,"Haettenschweiler"
              ,"Harlow Solid Italic"
              ,"Harrington"
              ,"High Tower Text"
              ,"Holidays MT"
              ,"Impact"
              ,"Imprint MT Shadow"
              ,"Informal Roman"
              ,"IrisUPC"
              ,"Iskoola Pota"
              ,"JasmineUPC"
              ,"Jokerman"
              ,"Juice ITC"
              ,"KaiTi"
              ,"Kalinga"
              ,"Kartika"
              ,"Keystrokes MT"
              ,"Khmer UI"
              ,"Kino MT"
              ,"KodchiangUPC"
              ,"Kokila"
              ,"Kristen ITC"
              ,"Kunstler Script"
              ,"Lao UI"
              ,"Latha"
              ,"LCD"
              ,"Leelawadee"
              ,"Levenim MT"
              ,"LilyUPC"
              ,"Lucida Blackletter"
              ,"Lucida Bright"
              ,"Lucida Bright Math"
              ,"Lucida Calligraphy"
              ,"Lucida Console"
              ,"Lucida Fax"
              ,"Lucida Handwriting"
              ,"Lucida Sans"
              ,"Lucida Sans Typewriter"
              ,"Lucida Sans Unicode"
              ,"Magneto"
              ,"Maiandra GD"
              ,"Malgun Gothic"
              ,"Mangal"
              ,"Map Symbols"
              ,"Marlett"
              ,"Matisse ITC"
              ,"Matura MT Script Capitals"
              ,"McZee"
              ,"Mead Bold"
              ,"Meiryo"
              ,"Meiryo UI"
              ,"Mercurius Script MT Bold"
              ,"Microsoft Himalaya"
              ,"Microsoft JhengHei"
              ,"Microsoft New Tai Lue"
              ,"Microsoft PhagsPa"
              ,"Microsoft Sans Serif"
              ,"Microsoft Tai Le"
              ,"Microsoft Uighur"
              ,"Microsoft YaHei"
              ,"Microsoft Yi Baiti"
              ,"MingLiU"
              ,"Minion Web"
              ,"Miriam"
              ,"Mistral"
              ,"Modern No. 20"
              ,"Mongolian Baiti"
              ,"Monotype Corsiva"
              ,"Monotype Sorts"
              ,"Monotype.com"
              ,"MoolBoran"
              ,"MS Gothic"
              ,"MS LineDraw"
              ,"MS Mincho"
              ,"MS Outlook"
              ,"MS PGothic"
              ,"MS PMincho"
              ,"MS Reference"
              ,"MS UI Gothic"
              ,"MT Extra"
              ,"MV Boli"
              ,"Narkisim"
              ,"New Caledonia"
              ,"News Gothic MT"
              ,"Niagara"
              ,"NSimSun"
              ,"Nyala"
              ,"OCR A Extended"
              ,"OCRB"
              ,"OCR-B-Digits"
              ,"Old English Text MT"
              ,"Onyx"
              ,"Palace Script MT"
              ,"Palatino Linotype"
              ,"Papyrus"
              ,"Parade"
              ,"Parchment"
              ,"Parties MT"
              ,"Peignot Medium"
              ,"Pepita MT"
              ,"Perpetua"
              ,"Perpetua Titling MT"
              ,"Placard Condensed"
              ,"Plantagenet Cherokee"
              ,"Playbill"
              ,"PMingLiU"
              ,"Poor Richard"
              ,"Pristina"
              ,"Raavi"
              ,"Rage Italic"
              ,"Ransom"
              ,"Ravie"
              ,"RefSpecialty"
              ,"Rockwell"
              ,"Rockwell Condensed"
              ,"Rockwell Extra Bold"
              ,"Rod"
              ,"Runic MT Condensed"
              ,"Sakkal Majalla"
              ,"Script MT Bold"
              ,"Segoe Chess"
              ,"Segoe Print"
              ,"Segoe Script"
              ,"Segoe UI"
              ,"Shonar Bangla"
              ,"Showcard Gothic"
              ,"Shruti"
              ,"Signs MT"
              ,"SimHei"
              ,"Simplified Arabic"
              ,"SimSun"
              ,"Snap ITC"
              ,"Sports MT"
              ,"Stencil"
              ,"Stop"
              ,"Sylfaen"
              ,"Symbol"
              ,"Tahoma"
              ,"Temp Installer Font"
              ,"Tempo Grunge"
              ,"Tempus Sans ITC"
              ,"Times New Roman"
              ,"Times New Roman Special"
              ,"Traditional Arabic"
              ,"Transport MT"
              ,"Trebuchet MS"
              ,"Tunga"
              ,"Tw Cen MT"
              ,"Tw Cen MT Condensed"
              ,"Utsaah"
              ,"Vacation MT"
              ,"Vani"
              ,"Verdana"
              ,"Verdana Ref"
              ,"Vijaya"
              ,"Viner Hand ITC"
              ,"Vivaldi"
              ,"Vixar ASCI"
              ,"Vladimir Script"
              ,"Vrinda"
              ,"Webdings"
              ,"Westminster"
              ,"Wide Latin"
              ,"Wingdings"];


   var output="";
   var cnt=0;
   
   for (var i = 0; i < fonts.length; i++) {
   	 
   	 if(checkfont(fonts[i])){
       	 if(cnt>0)
       	 	output +=" ,"+ fonts[i];
       	 else 
       	 	output +=fonts[i];
      	            	 	
       	 cnt++;
   	 } 	 
       
   }     
   output+=";";       
   return    output;
}  
 
 
 function pul_getFP() { 
    
    try{
        var FingerPrint=navigator.userAgent+"<br>"
                 + pul_getPlugins() +"<br>"
                 + pul_getMimeTypes()+ "<br>"
                 + pul_getTimezone() +"<br>"
                 + pul_getScreenData() +"<br>"
                 + pul_superCookie() +"<br>"
                 + pul_Fonts() +"<br>"
                 + navigator.cookieEnabled;
    
        return pul_getHashCode(FingerPrint);
    } catch(ex) {
        return "";   
    }
}   
