/*
 * JTip
 * By Cody Lindley (http://www.codylindley.com)
 * Under an Attribution, Share Alike License
 * JTip is built on top of the very light weight jquery library.
 */

//on page load (as soon as its ready) call JT_init

var JTstay = 0;
var JTover = 0;

function JT_init(){
		   $("div.jTip")
		   .hover(function(){if(!JTstay){JT_show($(this).attr("href"),this.id,this.name)}},function(){if(JTstay){JT_hide(0)}})
		   .click(function(){return false});
//.click(function(){JT_toggle(this);return false});
}

function JT_hide(st) {
	if (!st) {
		setTimeout('JT_hide(1)',2000);
	}
	if (st == 1) {
		if (!JTover) {
			$('#JT').remove();
			JTstay = 0;
		}else{
			setTimeout('JT_hide(1)',1000);
		}
	} else if (st == 2) {
		$('#JT').remove();
		JTstay = 0;
	}
}

function JT_toggle(me) {
	JTstay=!JTstay;
	if(JTstay) {
		$(me).css('cursor','pointer');
		$('#JT_copy').prepend('<div id="JT_smspop">Ez itt az sms popup proxy helye.</div>');
		$('#JT_smspop').load('/partner/arfolyamsms/proxy.php/smsalertpop.php');
	}else{
		$(me).css('cursor','url(http://arfolyamsms.hu/portfoliohu/smsc.ico),help');
		$('#JT_smspop').remove();
	}
	return false;
}

function JT_show(url,linkId,title){
	if(title == false)title="&nbsp;";
	var de = document.documentElement;
	var w = self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var hasArea = w - getAbsoluteLeft(linkId);
	var clickElementy = getAbsoluteTop(linkId) - 3; //set y position

	var queryString = url.replace(/^[^\?]+\??/,'');
	var params = parseQuery( queryString );
	if(params['width'] === undefined){params['width'] = 250};
	if(params['link'] !== undefined){
	$('#' + linkId).bind('click',function(){window.location = params['link']});
	$('#' + linkId).css('cursor','pointer');
	}

	if(hasArea>((params['width']*1)+75)){
		$("body").append("<div id='JT' style='width:"+params['width']*1+"px'><div id='JT_arrow_left'></div><div id='JT_close_left'><a style='color:white' alt='/tool/arfolyamsms.php' target='_blank'>ÁrfolyamSMS</a></div><div id='JT_copy'><div class='JT_loader'></div><div id='JT_sms'>SMS</div></div></div>");//right side
		var arrowOffset = getElementWidth(linkId) + 11;
		var clickElementx = getAbsoluteLeft(linkId) + arrowOffset; //set x position
	} else {
		$("body").append("<div id='JT' style='width:"+params['width']*1+"px'><div id='JT_arrow_right' style='left:"+((params['width']*1)+1)+"px'></div><div id='JT_close_right'><a  style='color:white' alt='/tool/arfolyamsms.php' target='_blank'>ÁrfolyamSMS</a></div><div id='JT_copy'><div class='JT_loader'></div></div></div>");//left side
		var clickElementx = getAbsoluteLeft(linkId) - ((params['width']*1) + 15); //set x position
	}

	$('#JT').css({left: clickElementx+"px", top: clickElementy+"px"});
	$('#JT').show();
	$('#JT_copy').load(url);
	$('#JT').mouseover(function(e){JTover = 1});
	$('#JT').mouseout(function(e){JTover = 0});
	JTstay = 1;
}

function getElementWidth(objectId) {
	x = document.getElementById(objectId);
	return x.offsetWidth;
}

function getAbsoluteLeft(objectId) {
	// Get an object left position from the upper left viewport corner
	o = document.getElementById(objectId)
	oLeft = o.offsetLeft            // Get left position from the parent object
	while(o.offsetParent!=null) {   // Parse the parent hierarchy up to the document element
		oParent = o.offsetParent    // Get parent object reference
		oLeft += oParent.offsetLeft // Add parent left position
		o = oParent
	}
	return oLeft
}

function getAbsoluteTop(objectId) {
	// Get an object top position from the upper left viewport corner
	o = document.getElementById(objectId)
	oTop = o.offsetTop            // Get top position from the parent object
	while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
		oParent = o.offsetParent  // Get parent object reference
		oTop += oParent.offsetTop // Add parent top position
		o = oParent
	}
	return oTop
}

function parseQuery ( query ) {
   var Params = new Object ();
   if ( ! query ) return Params; // return empty object
   var Pairs = query.split(/[;&]/);
   for ( var i = 0; i < Pairs.length; i++ ) {
	  var KeyVal = Pairs[i].split('=');
	  if ( ! KeyVal || KeyVal.length != 2 ) continue;
	  var key = unescape( KeyVal[0] );
	  var val = unescape( KeyVal[1] );
	  val = val.replace(/\+/g, ' ');
	  Params[key] = val;
   }
   return Params;
}

function blockEvents(evt) {
			  if(evt.target){
			  evt.preventDefault();
			  }else{
			  evt.returnValue = false;
			  }
}


var tickerList = {
	"bux[^\\s]*" : "BUX",
	"bumix[^\\s]*" : "BUMIX",
	"aaa auto group n.v.|aaa auto group[^\\s]*|aaa auto[^\\s]*" : "AAA",
	"állami nyomda nyrt[^\\s]*|állami nyomd[^\\s]*|ANY[^\\w]?" : "ANY",
	"bif nyrt[^\\s]*|bif[^\\s]*" : "BIF",
	"bookline.hu nyrt[^\\s]*|bookline.hu|bookline[^\\s]*|book" : "BOOK",
	"csepel holding nyrt[^\\s]*|csepel holding[^\\s]*" : "CSEPEL",
	"danubius hotels nyrt[^\\s]*|danubius hotels[^\\s]*|danubius[^\\s]*" : "DANUBIUS",
	"econet.hu nyrt[^\\s]*|econet.hu[^\\s]*|econet[^\\s]*" : "ECONET",
	"egis nyrt[^\\s]*|egis[^\\s]*" : "EGIS",
	"ehep nyrt[^\\s]*|ehep[^\\s]*" : "EHEP",
	"elmű nyrt[^\\s]*|elmű[^\\s]*" : "ELMU",
	"émász nyrt[^\\s]*|émász[^\\s]*" : "EMASZ",
	"bux etf" : "ETFBUXOTP",
	"externet nyrt[^\\s]*|externet[^\\s]*" : "EXTERNET",
	"fevita[^\\s]*" : "FEVITAN",
	"fhb nyrt[^\\s]*|fhb[^\\s]*" : "FHB",
	"fotex nyrt[^\\s]*|fotex[^\\s]*" : "FOTEX",
	"freesoft nyrt[^\\s]*|freesoft[^\\s]*" : "FREESOFT",
	"genesis energy nyrt[^\\s]*|genesis energy[^\\s]*|genesis[^\\s]*" : "GENESIS",
	"graphisoft park se|graphisoft park|gspark" : "GSPARK",
	"humet nyrt[^\\s]*|humet[^\\s]*" : "HUMET",
	"kárpótlási jegy[^\\s]*" : "KARPOT",
	"konzum nyrt[^\\s]*|konzum[^\\s]*" : "KONZUM",
	"kpack|kartonpack nyrt[^\\s]*|kartonpack[^\\s]*" : "KPACK",
	"linamar hungary nyrt[^\\s]*|linamar hungary[^\\s]*|linamar[^\\s]*|mezőgép[^\\s]*" : "LINAMAR",
	"mol nyrt[^\\s]*|mol[^\\w]?" : "MOL",
	"mtelekom[^\\s]*|magyar telekom nyrt[^\\s]*|magyar telekom[^\\s]*" : "MTELEKOM",
	"orco property group[^\\s]*|orco[^\\s]*" : "ORCO",
	"otp bank nyrt[^\\s]*|otp bank[^\\s]*|otp[^\\s]*" : "OTP",
	"pannergy nyrt[^\\s]*|pannergy[^\\s]*" : "PANNERGY",
	"pflax|pannonflax[^\\s]*|pannon-flax nyrt[^\\s]*|pannon-flax[^\\s]*" : "PFLAX",
	"phylaxia pharma nyrt[^\\s]*|phylaxia pharma[^\\s]*|phylaxia[^\\s]*" : "PHYLAXIA",
	"pvalto|pannonváltó[^\\s]*|pannon-váltó nyrt[^\\s]*|pannon-váltó[^\\s]*" : "PVALTO",
	"quaestor értékpapír nyrt[^\\s]*|quaestor értékpapír[^\\s]*|quaestor[^\\s]*" : "QUAESTOR",
	"rába nyrt[^\\s]*|rába[^\\w]?" : "RABA",
	"rfv nyrt[^\\s]*|rfv[^\\s]*" : "RFV",
	"richter gedeon nyrt[^\\s]*|richter gedeon[^\\s]*|richter[^\\s]*" : "RICHTER",
	"synergon nyrt[^\\s]*|synergon[^\\s]*" : "SYNERGON",
	"tc befektetési Nyrt[^\\s]*|tcb[^\\s]*" : "TCB",
	"tvk nyrt[^\\s]*|tvk[^\\s]*|tiszai vegyi kombinát[^\\s]*" : "TVK",
	"tvnetwork nyrt[^\\s]*|tvnetwork[^\\s]*" : "TVNETWORK",
	"zwack unicum nyrt[^\\s]*|zwack unicum[^\\s]*|zwack[^\\s]*" : "ZWACK"
}

var visitedTickers = new Array();

str = '';
sep = '';
for (i in tickerList) {
	str += sep + i;
	sep = "|";
}
str += '';
eval("var tickerRegexp = /\\s("+str+")\\b/gi");

function findTickers(t, level) {
	if (level == 3) return;
	if (t[0]) t = t[0];
	if (t.childNodes) {
		for (j in t.childNodes) {
			if (!t.childNodes[j].nodeName) continue;
			if (t.childNodes[j].nodeName == "#text") {
				text = " " + t.childNodes[j].nodeValue;
				if (text.search(tickerRegexp) != -1) {
					span = document.createElement('span');
					match = text.match(tickerRegexp);
					result = text.split(tickerRegexp);
					for (l in result) {
						if (match.length + 1 == result.length) {
							text = result[l];
							tic  = match.length > l ? match[l] : false;
						} else if (l % 2 == 0) {
							text = result[l];
							tic = false;
						} else {
							text = false;
							tic = result[l];
						}
						if (text) {
							span.appendChild(document.createTextNode(text));
						}
						if (tic) {
							ticker = '';
							for (a in tickerList) {
								eval('b = tic.search(/^'+a+'$/gi);');
								if (b != -1) {
									ticker = tickerList[a];
								}
							}
							if (ticker.length > 0 && (!visitedTickers[ticker] || visitedTickers[ticker] < 2)) {
								visitedTickers[ticker] = visitedTickers[ticker] ? visitedTickers[ticker] + 1 : 1;
								div = document.createElement('div');
								div.id = 'graflayer_' + ticker + '_'+Math.round(100*Math.random());
								div.name = ticker;
								div.className="jTip";
								div.style.display = "inline";
								div.setAttribute("href", "/ajax/arfolyamsms.php?width=323&rv=" + ticker);
								img = new Image();	
								img.src = '/img/site/mobile.gif';
								div.appendChild(document.createTextNode(tic));
								div.appendChild(img);
								span.appendChild(document.createTextNode(" "));
								span.appendChild(div);
							} else {
								span.appendChild(document.createTextNode(" " + tic));
							}
						}
					}
					t.replaceChild(span, t.childNodes[j]);
				}
			} else if (t.childNodes[j].nodeName.search(/^(div|b|i|u|p|span)$/i) != -1) {
				findTickers(t.childNodes[j], level+1);
			}
		}
	}
}

$(document).ready(function() {
	if ( !$.browser.msie ) {
		$("div.smscontent").each(function (i) {
/*			findTickers($(this), 0); */
		});
	}
});
$(document).ready(JT_init);
