// <span class="cena-top" onmouseover="tooltip.showProductListPrice(\'7 699 Sk\',\'SK\');" onmouseout="tooltip.hide();"></span>
var tooltip=function(){
	var id = 'tt';
	var top = 3;
	var left = 3;
	var maxw = 185;
	var speed = 10;
	var timer = 20;
	var endalpha = 85;
	var alpha = 0;
	var tt,t,c,b,h;
	var eur;
	var ie = document.all ? true : false;
	var paritnyCourse = 30.126;
	return{
		showProductListPrice:function(v,l){
			var tooltipContent = '';	
			if ( this.slovak(v,l) ){
				//window.alert(v);		
				if ( this.parser(v,l) != null){
					//window.alert(v);	
					if ( l == 'SK' ){					
						tooltipContent ='<div class="prices" align="left">Konverzn\u00FD kurz: 1\u20AC = 30,1260 Sk</div>'+
									  '<div class="prices" align="left">Cena v Sk: <span class="cenaEur">&nbsp;&nbsp;' + v + '</span></div>';
					} else if ( l == 'EN' ) {
						tooltipContent = '<div class="prices" align="left">Conversion rate: 1 \u20AC = 30.1260 Sk</div>'+
									  '<div class="prices" align="left">Price in Sk: <span class="cenaEur">&nbsp;&nbsp;' + v + '</span></div>';
					} 
				} else {
					tooltipContent = 'error';	
				}
			}
			if ( tooltipContent != '' ){
				if(tt == null) {
					var doc = window.document;
					if (window.parent != window) {
						doc = window.parent.document;
					}
					tt = doc.createElement('div');
					tt.setAttribute('id',id);
					t = doc.createElement('div');
					t.setAttribute('id',id + 'top');
					c = doc.createElement('div');
					c.setAttribute('id',id + 'cont');
					b = doc.createElement('div');
					b.setAttribute('id',id + 'bot');
					tt.appendChild(t);
					tt.appendChild(c);
					tt.appendChild(b);
					doc.body.appendChild(tt);
					tt.style.opacity = 0;
					tt.style.filter = 'alpha(opacity=0)';
					window.document.onmousemove = this.pos;
				}
				tt.style.display = 'block';
				c.innerHTML = tooltipContent;
				tt.style.width = 'auto';
				if(ie){
					t.style.display = 'none';
					b.style.display = 'none';
					tt.style.width = tt.offsetWidth;
					t.style.display = 'block';
					b.style.display = 'block';
				}
				tt.style.width = maxw + 'px';
				h = parseInt(tt.offsetHeight) + top;
				clearInterval(tt.timer);
				tt.timer = setInterval(function(){tooltip.fade(1)},timer);
			}
		},
		pos:function(e){
			if(tt != null) {
				var u = ie ? event.clientY + document.documentElement.scrollTop : e.pageY;
				var l = ie ? event.clientX + document.documentElement.scrollLeft : e.pageX;
				var in_object = window.frameElement;
				var offsetLeft = 0;
				var offsetTop = 0;
				while (in_object)
				{
					offsetLeft += in_object.offsetLeft;
					offsetTop += in_object.offsetTop;
					in_object = in_object.offsetParent;
				}
				l = l + offsetLeft;
				u = u + offsetTop;
                        
				tt.style.top = (((u - h) < 0)? 0 : (u - h)) + 'px';
				tt.style.left = (l + left) + 'px';
							}
		},
		fade:function(d){
			var a = alpha;
			if((a != endalpha && d == 1) || (a != 0 && d == -1)){
				var i = speed;
				if(endalpha - a < speed && d == 1){
					i = endalpha - a;
				}else if(alpha < speed && d == -1){
					i = a;
				}
				alpha = a + (i * d);
				tt.style.opacity = alpha * .01;
				tt.style.filter = 'alpha(opacity=' + alpha + ')';
			}else{
				clearInterval(tt.timer);
				if(d == -1){
					tt.style.display = 'none'
					var doc = window.document;			
					if (window.parent != window) {
						doc = window.parent.document;
					}
					doc.body.removeChild(tt);
					tt = null;
				}
			}
		},
		hide:function(){
			if ( tt ){
				clearInterval(tt.timer);
				tt.timer = setInterval(function(){tooltip.fade(-1)},timer);
			}
		},
		slovak:function(value, lang){
			var slovakformatSK='^[-]{0,1}[0-9]{0,3}[ ]{0,1}[0-9]{0,3}[ ]{0,1}[0-9]{0,3}[,]{0,1}[0-9]{0,2}[ ]{0,1}\S\k$';
			var slovakformatEN='^[-]{0,1}[0-9]{0,3}[,]{0,1}[0-9]{0,3}[,]{0,1}[0-9]{0,3}[.]{0,1}[0-9]{0,2}[ ]{0,1}\S\k$';

			var rx = null;
			if ( lang == 'SK' ){
				rx = new RegExp(slovakformatSK);
			} else if ( lang == 'EN' ){
				rx = new RegExp(slovakformatEN);
			} else {
				rx = new RegExp(slovakformatSK);
			}
         	if ( rx.test(value) ){
				return true;
			} else {
				return false;
			}
		},
		euro:function(value, lang){
			
			var euroformatSK='^[-]{0,1}\u20AC[ ]{0,1}[0-9]{0,3}[ ]{0,1}[0-9]{0,3}[,]{0,1}[0-9]{2,3}$';
			var euroformatEN='^[-]{0,1}\u20AC[ ]{0,1}[0-9]{0,3}[,]{0,1}[0-9]{0,3}[.]{0,1}[0-9]{2,3}$';
			var rx = null;
			if ( lang == 'SK' ){
				rx = new RegExp(euroformatSK);
			} else if ( lang == 'EN' ){
				rx = new RegExp(euroformatEN);
			} else {
				rx = new RegExp(euroformatSK);
			}
         	if ( rx.test(value) ){
				return true;
			} else {
				return false;
			}
		},
		parser:function(value, lang){
			var patternSK = '^[-]{0,1}[0-9]{0,3}[ ]{0,1}[0-9]{0,3}[,]{0,1}[0-9]{0,2}';
			var patternEN = '^[-]{0,1}[0-9]{0,3}[,]{0,1}[0-9]{0,3}[.]{0,1}[0-9]{0,2}';
			var rx = null;
			if ( lang == 'SK' ){
				rx = new RegExp(patternSK, "g" );
			} else if ( lang == 'EN' ){
				rx = new RegExp(patternEN, "g" );
			} else {
				rx = new RegExp(patternSK, "g" );
			}
			if ( rx.test(value) ){
				var string = new String();
				string = ''+value.match(rx).toString();
				var newString=new String();
				var s = new String();
				for (i = 0; i < string.length; i++){
					s = ''+string.charAt(i);
					if ( lang == 'SK' ){
						if ( s == ' ' ){
							s='';
						} else if ( s == ',' ) {
							s='.';
						}
					} else if ( lang == 'EN' ){
						if ( s == ',' ){
							s='';
						} else if ( s == '.' ) {
							s='.';
						}
					} else {
						if ( s == ' ' ){
							s='';
						} else if ( s == ',' ) {
							s='.';
						}
					}
					newString = newString + s;
				}				
                return parseFloat(newString);
			} 
		},
		slovakRoundFormatter:function(v,l){
			var value = this.parser(v,l) * paritnyCourse;
			if ( value != 0 ){
				value = Math.round(value * 10)/10;
			}
			return this.priceFormatter(''+value.toFixed(2),l);
		},
		euroRoundFormatter:function(v,l){
			var value = this.parser(v,l) / paritnyCourse;
			if ( value != 0 ){
				value = Math.round(value * 100)/100;
			}
			return this.priceFormatter(''+value.toFixed(2),l);
		},
		priceFormatter:function(s, lang){
			var string = ''+s;
			var newString = new String();
			for ( i=0; i < string.length; i++ ){
				var s = ''+string.charAt(i);
				if ( lang == 'SK' ){
					if ( s == '.' ){
						s = ',';
					}
				} else if ( lang == 'EN' ){
					if ( s == '.' ){
						s = '.';
					}
				} else {
					if ( s == '.' ){
						s = ',';
					}
				}
				newString = newString + s;
			}
			string = '';
			var counter = 0;
			for ( i=newString.length-1; i > -1; i-- ){
				var s = ''+newString.charAt(i);
				if ( lang == 'SK' ){
					if ( s == ',' ){
						counter = 0;
					}
					if ( counter == 4 ){
						string = s + ' ' + string;
						counter = 0;
					} else {
						string = s + string;
					}
					if ( counter >= 0 ){
						counter++;
					}
				} else if ( lang == 'EN' ){
					if ( s == '.' ){
						counter = 0;
					}
					if ( counter == 4 ){
						string = s + ',' + string;
						counter = 0;
					} else {
						string = s + string;
					}
					if ( counter >= 0 ){
						counter++;
					}
				} else {
					if ( s == ',' ){
						counter = 0;
					}
					if ( counter == 4 ){
						string = s + ' ' + string;
						counter = 0;
					} else {
						string = s + string;
					}
					if ( counter >= 0 ){
						counter++;
					}
				}
			}
			return string;
		
		}		
	};
}();