/**************************************************************************************************
* Ce fichier contient les fonctions javascript utilisées par plusieurs
* pages du site d'administration, les fonctions propres à une page étant
* situées dans l'entête de celle-ci
**************************************************************************************************/

/**************************************************************************************************
* Code exécuté à chaque chargement
**************************************************************************************************/
// Si le site est ouvert dans une frame (depuis un lien sur un autre site) on reouvre le site sur toute la surface du navigateur
if (parent.frames.length > 0) window.top.location.href=location.href;

// Détection du navigateur
var _ns4=(document.layers) ? true : false;
var _ie4=(document.all && !document.getElementById && window.ActiveXObject) ? true : false;
var _ie56=(document.all && document.getElementById && window.ActiveXObject && !window.XMLHttpRequest) ? true : false;
var _ie7=(window.ActiveXObject && window.XMLHttpRequest) ? true : false;
var _khtml=(navigator.vendor == 'KDE') ? true : false; // navigateurs KHTML (konqueror, safari...)
var _konq=(navigator.vendor == 'KDE' || (document.childNodes && !document.all && !navigator.taintEnabled)) ? true : false;
var _moz=(!_khtml && !document.all && document.getElementById) ? true : false;
var _op=(document.all && !window.ActiveXObject) ? true : false;
var _dom=(_ie56 || _ie7 || _khtml || _moz || _op) ? true : false;
//alert('ns4 : ' + _ns4 + "\n" + 'ie4 : ' + _ie4 + "\n" + 'ie5 : ' + _ie56 + "\n" + 'ie7 : ' + _ie7 + "\n" + 'moz : ' + _moz + "\n" +'op : ' + _op);

// Détection du support d'XMLHttpRequest
var _xhr=(_dom && (window.XMLHttpRequest || window.ActiveXObject)) ? true : false;

// Variables de configuration
var _closedelay=500; // Délais avant fermeture des menus

// Preload des flags
var _imgflag1=new Image(); _imgflag1.src='img/flags/fr.gif';
var _imgflag2=new Image(); _imgflag2.src='img/flags/en.gif';
var _imgflag3=new Image(); _imgflag3.src='img/flags/de.gif';
var _imgflag4=new Image(); _imgflag4.src='img/flags/es.gif';

// Initialisation du menu
var _testmenu='';
var _testsmenu='';
var _tselmenu=new Array();
var _timermenu='';
var _timerAds='';
var _lastAds='';
if (document.captureEvents) document.captureEvents(Event.MOUSEMOVE); // Capture de l'evenement onMouseMove sous gecko
document.onmousemove=testeMenu;

// Converti en référence numérique HTML les caractères non ASCII, ou non ISO-9958-1 si un 2e paramètre est fourni
function convertToEntities(_str,_iso)
{
	_max=(_iso) ? 254 : 127;
	var _r='';
	for (_i=0; _i<_str.length; _i++)
	{
		if (_str.charCodeAt(_i) > _max) _r+='&#' + _str.charCodeAt(_i) + ';';
		else _r+=_str.charAt(_i);
	}
	return _r;
}
// Supprime les caractères spéciaux et espaces en début et fin de chaine
function trim(_str)
{
	return _str.replace(/(^\s*)|(\s*$)/g,'');
} 
/**************************************************************************************************
* Fonctions globales
**************************************************************************************************/
// Remplace document.getElementById. Retourne l'objet si on passe son ID en paramètre, mais aussi si on passe l'objet
function $(_id) { return (typeof _id != 'object') ? document.getElementById(_id) : _id; }
// Retourne un objet. Si on passe un objet en paramètre, le retourne. Si on passe un id, on retourne l'objet correspondant
function getObj(_obj) { return (typeof _obj != 'object' && $(_obj)) ? $(_obj) : _obj; }

function showElem(_id) { if ($(_id) && _dom) $(_id).style.display='block'; }
function hideElem(_id) { if ($(_id) && _dom) $(_id).style.display='none'; }

// Ajoute un événement
function addEvent(_target,_event,_handler)
{
	if (_target.addEventListener) _target.addEventListener(_event, _handler, false);
	else if (_target.attachEvent) _target.attachEvent('on' + _event, _handler);
}

// Retire un événement
function remEvent(_target,_event,_handler)
{
	if (_target.removeEventListener) _target.removeEventListener(_event, _handler, false);
	else if (_target.detachEvent) _target.detachEvent('on' + _event, _handler);
}

function stopPropagation(_e)
{
	// Si supporté en natif (gecko...)
	if (_e.stopPropagation) _e.stopPropagation();
	// Sinon (IE, Opera...)
	else _e.cancelBubble=true;
}
function preventDefault(_e)
{
	// Si supporté en natif (gecko...)
	if (_e.preventDefault) _e.preventDefault();
	// Sinon (IE, Opera...)
	else _e.returnValue=false;
}

// Retourne la position X de l'objet passé en paramêtre, depuis le bord gauche du navigateur
function positionLeft(_obj)
{
	_obj=getObj(_obj);
	if (typeof _obj != 'object' && document.getElementsByName(_obj)[0]) _obj=document.getElementsByName(_obj)[0];
	var _p=_obj.offsetParent;
	return (_p) ? _obj.offsetLeft+positionLeft(_p) : _obj.offsetLeft;
}

// Retourne la position Y de l'objet passé en paramêtre, depuis le bord haut du navigateur
function positionTop(_obj)
{
	_obj=getObj(_obj);
	if (typeof _obj != 'object' && document.getElementsByName(_obj)[0]) _obj=document.getElementsByName(_obj)[0];
	var _p=_obj.offsetParent;
	return (_p) ? _obj.offsetTop+positionTop(_p) : _obj.offsetTop;
}

// Change la position du calque passé en paramêtre en le positionnant a la position x de l'objet passé en paramêtre moins la valeur _decalx, idem pour la position Y
function changePosition(_decalx,_decaly,_obj,_calque)
{
	_obj=getObj(_obj);
	_calque=getObj(_calque);
	var _x=positionLeft(_obj) + _decalx;
	var _y=positionTop(_obj) + _decaly;
	_calque.style.left=_x + 'px';
	_calque.style.top=_y + 'px';
}

function positionSourisX(_e) { return (_ns4 || _moz) ? _e.pageX : event.x + document.body.scrollLeft; }
function positionSourisY(_e) { return (_ns4 || _moz) ? _e.pageY : event.y + document.body.scrollTop; }

// Retire une ou plusieurs classes à un élément
//		_elem		Elément auquel retirer les classes
//		_class		Classes à retirer, séparées par une virgule
function removeClass(_elem,_class)
{
	_elem=$(_elem);
	if (!_elem || !_elem.className || !_class) return;
	var _tabclass=_class.split(',');
	var _tc=_elem.className.split(' ');
	var _tab=new Array();
	var _j=0;
	for (var _i in _tc)
	{
		var _remclass=false;
		for (var _k in _tabclass) { if (_tc[_i] == _tabclass[_k]) _remclass=true; }
		if (!_remclass) _tab[_j++]=_tc[_i];
	}
	_elem.className=_tab.join(' ');
}

// Ajoute la classe passée en paramêtre à l'élément passé en parametre (en plus des classes déjà assignées à cet élément)
//		_elem		Elément auquel ajouter la classe
//		_class		Classes à ajouter
function addClass(_elem,_class)
{
	if (!_class) return;
	_elem=$(_elem);
	removeClass(_elem,_class); // Remove la classe, si elle est présente, avant de l'ajouter pour pas qu'elle soit assignée 2 fois
	(_elem.className) ? _elem.className+=' ' + _class : _elem.className=_class;
}

function include(_file,_id)
{
	try
	{
		_script=document.createElement('script');
		_script.type='text/javascript';
		_script.src=_file;
 		if (_id) $(_id).appendChild(_script);
		else
		{
			_parent=document.getElementsByTagName("head");
			_parent[0].appendChild(_script);
		}
	}
	catch(e)
	{
		document.write('<script type="text/javascript" src="' + _file + '"><\/script>');
	}
}

/**************************************************************************************************
* Cookies
**************************************************************************************************/
function setCookie(_name,_val)
{
	var _argv=setCookie.arguments;
	var _argc=setCookie.arguments.length;
	var _expires='';
	if (_argc > 2)
	{
		var _date_exp=new Date();
		_date_exp.setTime(_date_exp.getTime() + (_argv[2] * 3600 * 1000));
		_expires='; expires=' + _date_exp.toGMTString();
	}
	var _path=(_argc > 3) ? '; path=' + _argv[3] : '; path=/';
	var _domain=(_argc > 4) ? '; domain=' + _argv[4] : '';
	var _secure=(_argc > 5) ? _argv[5] : false;
	document.cookie=_name + '=' + escape(_val) + _expires + _path + _domain + ((_secure == true) ? '; secure' : '');
}

function getCookieVal(_offset)
{
	var _endstr=document.cookie.indexOf(';',_offset);
	if (_endstr == -1) _endstr=document.cookie.length;
	return unescape(document.cookie.substring(_offset,_endstr));
}

function getCookie(_name)
{
	var _arg=_name + '=';
	var _alen=_arg.length;
	var _clen=document.cookie.length;
	var _i=0;
	while (_i < _clen)
	{
		var _j=_i + _alen;
		if (document.cookie.substring(_i,_j) == _arg) return getCookieVal(_j);
		_i=document.cookie.indexOf(' ',_i) + 1;
		if (_i == 0) break;
	}
	return null;
}

/**************************************************************************************************
* Fonctions sur le menu du haut de sincepong.news
**************************************************************************************************/
function closeMenus(_menus)
{
	for (var _i=1; _i<=10; _i++)
	{
		_testsmenu='';
		// Fermeture des menus si c'est demandé
		var _sm=$('smenu' + _i);
		if (_sm && _sm.style.display == 'block')
		{
			// Fermeture du menu si c'est demandé
			if (_menus)
			{
				// Annule le test de fermeture
				_testmenu='';
				if (_timermenu) { clearTimeout(_timermenu); _timermenu=''; }
				// Masquage des flèches
/*				for (var _j=1; _j<=10; _j++)
				{
					var _arrow=$('arrow' + _i + '_' + _j);
					if (_arrow) _arrow.style.display='none';
				}*/
				_sm.style.display='none';
				if ($('menu' + _i)) removeClass($('menu' + _i),'menuopened');
			}
			// Fermeture des sous-menus
			for (var _j=1; _j<=10; _j++)
			{
				var _ssm=$('ssmenu' + _i + '_' + _j);
				if (_ssm && _ssm.style.display == 'block')
				{
					_ssm.style.display='none';
					removeClass($('smenulink' + _i + '_' + _j),'submenuopened');
				}
			}
		}
	}
}

function showMenu(_id)
{
	if(_dom)
	{
		if (_testmenu == _id) closeMenus();
		else
		{
			closeMenus(1);
			var _menu=$('menu' + _id);
			var _smenu=$('smenu' + _id);
			if (_smenu)
			{
				showSelects(1); // Masque les selects sous IE car il les affiche au dessus du menu
				changePosition(0,_menuHeight + (_moz || _khtml ? 1 : 3),_menu,_smenu);
				_smenu.style.display='block';
/*				for (var _i=1; _i<=10; _i++)
				{
					var _arrow=$('arrow' + _id + '_' + _i);
					if (_arrow)
					{
						var _link=$('smenulink' + _id + '_' + _i);
						changePosition(_link.offsetWidth-12,8,_link,_arrow);
						_arrow.style.display='block';
					}
				}*/
				addClass(_menu,'menuopened');
			}
			else showSelects(); // Réaffiche les selects sous IE
		}
	}
	_testmenu=''; // On annule la fermeture du menu lorsque la souris sort de celui-ci si elle se trouve sur l'entête du menu
}

function showSubMenu(_id)
{
	if(_dom)
	{
		if (!_testsmenu || _testsmenu != _id)
		{
			closeMenus(); // On ferme tous les sous-menus ouverts
			var _menu=$('smenulink' + _id);
			var _smenu=$('ssmenu' + _id);
			if (_smenu)
			{
				changePosition(_menu.offsetWidth+2,0,_menu,_smenu);
				_smenu.style.display='block';
				addClass(_menu,'submenuopened');
			}
		}
	}
}

// Teste s'il faut fermer le menu lors du déplacement de la souris
// Si le menu doit être fermé (souris hors du menu), lance le timer pour le fermer apres un délais
// S'il ne doit pas être fermé (souris sur le menu), coupe le timer de fermeture s'il est lancé
// Si le menu est déjà fermé, annule le test et toupe le timer
function testeMenu(_e)
{
	if (_dom && _testmenu && $('smenu' + _testmenu).style.display == 'block')
	{
		var _close=false;
		var _c=$('smenu' + _testmenu);
		var _x=positionSourisX(_e); var _y=positionSourisY(_e);
		var _cx=positionLeft(_c); var _cy=positionTop(_c);
		var _cx2=_cx + _c.offsetWidth; var _cy2=_cy + _c.offsetHeight;

		// Teste si la souris est sur le menu ou le sous-menu, pour ne fermer que si ce n'est pas le cas
		if (_x < _cx || _x > _cx2 || _y < _cy || _y > _cy2)
		{
			// Teste le sous-menu si un sous-menu est ouvert
			if (_testsmenu)
			{
				var _c=$('ssmenu' + _testsmenu);
				var _x=positionSourisX(_e); var _y=positionSourisY(_e);
				var _cx=positionLeft(_c); var _cy=positionTop(_c);
				var _cx2=_cx + _c.offsetWidth; var _cy2=_cy + _c.offsetHeight;
			}
			// Teste le sous-menu. S'il n'y a pas de sous-menu, ca ne fait que refaire le test du menu
 			if (_x < _cx || _x > _cx2 || _y < _cy || _y > _cy2) _close=true;
		}
		
		if (_close)
		{
			if (!_timermenu)
			{
				_timermenu=setTimeout(function() {
					_timermenu='';
					if (_testmenu)
					{
						closeMenus(1);
						showSelects(); // Réaffiche les selects sous IE
					}
				}, _closedelay);
			}
		}
		else if (_timermenu) { clearTimeout(_timermenu); _timermenu=''; }
	}
	else
	{
		_testmenu='';
		if (_timermenu) { clearTimeout(_timermenu); _timermenu=''; }
	}
}

// Stocke l'entête de menu, le menu et le sous-menu sélectionnés
function initSelectedMenu(_menuhead,_menu,_submenu)
{
	_tselmenu['menuhead']=_menuhead;
	_tselmenu['menu']=_menu;
	_tselmenu['submenu']=_submenu;
}

// Rafraichi l'état de sélection du menu, en mode AJAX
function refreshSelectedMenu(_menuhead,_menu,_submenu)
{
	var _id;
	if (_tselmenu['menuhead'] != _menuhead)
	{
		_id='menu' + _tselmenu['menuhead'];
		if ($(_id)) removeClass($(_id),'current');
		_id='menu' + _menuhead;
		if ($(_id)) addClass($(_id),'current');
		_tselmenu['menuhead']=_menuhead;
	}
	if (_tselmenu['menu'] != _menu)
	{
		_id='smenulink' + _tselmenu['menu'];
		if ($(_id)) removeClass($(_id),'current');
		_id='smenulink' + _menu;
		if ($(_id)) addClass($(_id),'current');
		_tselmenu['menu']=_menu;
	}
	if (_tselmenu['submenu'] != _submenu)
	{
		_id='ssmenulink' + _tselmenu['submenu'];
		if ($(_id)) removeClass($(_id),'current');
		_id='ssmenulink' + _submenu;
		if ($(_id)) addClass($(_id),'current');
		_tselmenu['submenu']=_submenu;
	}
}

// Affiche (ou masque si _hide n'est pas vide) les selects des formulaires de filtre sous IE car il les affiche au dessus du menu
function showSelects(_hide)
{
	if (_ie56)
	{
		var _status=(_hide) ? 'hidden' : 'visible';
		var _form=$('spn_filter');
		if (_form) for (var _i=0;_i<_form.length;_i++) if (_form.elements[_i].type == 'select-one') _form.elements[_i].style.visibility=_status;
		var _form=$('spn_advancedsearch');
		if (_form) for (var _i=0;_i<_form.length;_i++) if (_form.elements[_i].type == 'select-one') _form.elements[_i].style.visibility=_status;
	}
}

/**************************************************************************************************
* Fonctions
**************************************************************************************************/

// Affiche la description d'une news
function showDesc(_id,_obj)
{
	if ($(_id) && _dom)
	{
		changePosition(10,20,_obj,_id);
		$(_id).style.display='block';
	}
}
// Masque la description d'une news
function hideDesc(_id) { if ($(_id) && _dom) $(_id).style.display='none'; }

// Initialise l'objet correspondant à un bloc masquable, puis masque ce bloc
function toggableText(_id,_showlink,_hidelink)
{
	if (_dom)
	{
		_showlink=_showlink.replace('{url}','javascript:toggleElem(\'' + _id + '\');');
		_hidelink=_hidelink.replace('{url}','javascript:toggleElem(\'' + _id + '\');');
		var _hideblock=_hidelink.replace('{text}',$(_id).innerHTML);
		eval('_' + _id + '=new Object()');
		eval('_' + _id + '.show=_showlink');
		eval('_' + _id + '.hide=_hideblock');
		eval('_' + _id + '.state=1');
		$(_id).innerHTML=_showlink;
	}
}
// Change l'état (masque si affiché, affiche si masqué) d'un bloc masquable
function toggleElem(_id)
{
	if (!eval('_' + _id + '.state'))
	{
		$(_id).innerHTML=eval('_' + _id + '.show');
		eval('_' + _id + '.state=1');
	}
	else {
		$(_id).innerHTML=eval('_' + _id + '.hide');
		eval('_' + _id + '.state=0');
	}
}

// Initialise l'affichage du bloc de publicité
function toggableAds(_block)
{
	if (_dom)
	{
		if (getCookie('spn_adsDisabled') == 1)
		{
			$('ads').style.display='none';
			$('adsShow').style.display='block';
			_adsState=0;
		}
		else
		{
			$('ads').style.display='block';
			$('adsShow').style.display='none';
			_adsState=1;
		}
		// En mode AJAX, on stocke le moment de dernier rechargement de la bannière et lance le timer de rechargement
		if (xhr._ok && $('ifadsense'))
		{
			var _date=new Date();
			_lastAds=_date.getTime();
			_timerAds=setTimeout(function() { timerAds(); },60 * 1000);
		}
	}
}

// Change l'état (masque si affiché, affiche si masqué) du bloc de publicités
function toggleAds()
{
	if (!_adsState)
	{
		$('ads').style.display='block';
		$('adsShow').style.display='none';
		// Si on est en mode AJAX, on recharge l'iframe pour qu'elle s'affiche bien dans tous les cas, et qu'elle corresponde à la page courante
		// xhr._adsenseurl est mis à jour a chaque chargement partiel
		if (xhr._ok && $('ifadsense'))
		{
//			alert($('ifadsense').src);
			$('ifadsense').src=xhr._adsenseurl;
//			alert($('ifadsense').src);
			var _date=new Date();
			_lastAds=_date.getTime();
		}
		_adsState=1;
	}
	else
	{
		$('ads').style.display='none';
		$('adsShow').style.display='block';
		_adsState=0;
	}
	setCookie('spn_adsDisabled',1 - _adsState,12);
}

// Vérifie s'il faut recharger la bannière adsense
function timerAds()
{
	var _date=new Date();
	// Si elle n'a pas été rechargée depuis plus de 4 minutes (ce qui fait jusqu'à 5 mins avec l'intervale du timer), on la recharge
	if (_lastAds < _date.getTime() - 4 * 60 * 1000)
	{
		$('ifadsense').src=xhr._adsenseurl;
		_lastAds=_date.getTime();
	}
	// On arrête le timer s'il tourne (arrive lors d'un fullreload qui lance un timer par dessus celui en cours)
	if (_timerAds) clearTimeout(_timerAds);
	// On relance un nouveau timer
	_timerAds=setTimeout(function() { timerAds(); },60 * 1000);
}

function writeCode(_code) { if (_dom) document.write(_code); }

function parseUrl(_url)
{
	_url=_url.replace('http://' + location.host + _home,'');
	if (_url.lastIndexOf('#') != -1)
	{
		_url=_url.substring(0,_url.lastIndexOf('#'));
	}

	var _args=new Array();
	var _t1=_url.split('?');
	if (_t1[1])
	{
		var _t2=_t1[1].split('&');
		for (var _i in _t2)
		{
			var _t3=_t2[_i].split('=');
			_args[_t3[0]]=_t3[1];
		}
	}

	if (_t1[0])
	{
		var _t4=_t1[0].split('/');
		var _n=0;
		for (var _i in _t4)
		{
			if (_t4[_i].indexOf(',') != -1)
			{
				var _t5=_t4[_i].split(',');
				_args[_t5[0]]=_t5[1];
			}
		}
		
		// Mode texte
		var _exp=new RegExp('^(text|none)(/?)','i');
		var _test=_exp.exec(_t1[0]);
		if (_test)
		{
			if (_test[1]) _args['style']=_test[1];
		}
		// Langue
		var _exp=new RegExp('^((text|none)/)?([a-zA-Z]{2})(/?)','i');
		var _test=_exp.exec(_t1[0]);
		if (_test)
		{
			if (_test[3]) _args['lang']=_test[3];
			if (_test[2]) _args['style']=_test[2];
		}
		// Zones complexes
		var _exp=new RegExp('^((text|none)/)?(([a-zA-Z]{2})/)?stats/(visits|visites|searches|recherches|referents|referants|browsers|navigateurs|os|sites)(/?)','i');
		var _test=_exp.exec(_t1[0]);
		if (_test)
		{
			_args['zone']='stats';
			if (_test[5]) _args['page']=_test[5];
			if (_test[4]) _args['lang']=_test[4];
			if (_test[2]) _args['style']=_test[2];
		}
		else
		{
			var _exp=new RegExp('^(text|none)?/?(([a-zA-Z]{2})/)?news(/(sites))?(/(games|jeux|computers|informatique|animes|perso))?(/(fr|en|de|es|other|autre))?(/?)','i');
			var _test=_exp.exec(_t1[0]);
			if (_test)
			{
				_args['zone']='news';
				if (_test[5]) _args['rub']=_test[5];
				if (_test[7]) _args['page']=_test[7];
				if (_test[9]) _args['newslg']=_test[9];
				if (_test[3]) _args['lang']=_test[3];
				if (_test[1]) _args['style']=_test[1];
			}
			else
			{
				var _exp=new RegExp('^((text|none)/)?(([a-zA-Z]{2})/)?(accueil|home|search|recherche|services|faq|contact|about|forum|stats|register|enregistrer|sendpass|envoyerpass|profile|profil|sendsite|proposersite|newpartner|devenirpartenaire|partners|partenaires|polls|sondages)(/?)','i');
				var _test=_exp.exec(_t1[0]);
				if (_test)
				{
					if (_test[5]) _args['zone']=_test[5];
					if (_test[4]) _args['lang']=_test[4];
					if (_test[2]) _args['style']=_test[2];
				}
			}
		}
	}
	var _nurl='';
	var _j=0;
	for (var _i in _args)
	{
		_nurl+=((_j++ == 0) ? '?' : '&') + _i + '=' + _args[_i];
	}
	alert(_nurl);
}

//	var _t4=_t1[0].split('/');
//	var _n=0;
//	for (var _i in _t4)
//	{
//		if (_t4[_i].indexOf(',') != -1)
//		{
//			var _t5=_t4[_i].split(',');
//			_args[_t5[0]]=_t5[1];
//		}
//		else
//		{
//			var _p=_t4[_i];
//			if (_n == 0 && (_p == 'text' || _p == 'none')) _args['style']=_p;
			
//			_n++;
//		}
//	}
//	var _exp=new RegExp('^((text|none)/)?(([a-zA-Z]{2})/)?(services|faq|contact|about|forum|stats|register|enregistrer|sendpass|envoyerpass|profile|profil|sendsite|proposersite|newpartner|devenirpartenaire|partners|partenaires|polls|sondages)(/?)$','i');
//			index.php?zone=$5&lang=$4&style=$2 [NC,QSA,L]

//	alert(_t1[0]);
//	var _exp=new RegExp('/([^,/])+,([^,/])+','g');
//	var _exp=new RegExp('/([^,/])+,([^,/])+(/|$)');
//	var _test=_exp.exec(_t1[0]);
//	var _test=_t1[0].match(_exp);
//	if (_test)
//	{
//		for (var _j in _test)
//		{
//			alert(_test[_j]);
//		}
//	}
//	for (var _i in _args)
//	{
//		alert(_i + ' : ' + _args[_i]);
//	}

// Timer qui rafraichi les pubs tuotes les X secondes en mode ajax
/*function timerPub()
{
//	alert(typeof _timerpub);
	if (xhr._ok)
	{
		if (typeof _timerpub != 'undefined')
		{
			if ($('ifadsense1'))
			{
				$('ifadsense1').src='iframes/adsense.if.php'
				$('ifadsense2').src='iframes/adsense.if.php'
			}
//			alert('test');
		}
		_timerpub=setTimeout('timerPub()',_pubrefresh);
//		alert(typeof _timerpub);
	}
}*/

function XBrowserAddHandler(target,eventName,handlerName) { 
  if ( target.addEventListener ) { 
    target.addEventListener(eventName, function(e){target[handlerName](e);}, false);
  } else if ( target.attachEvent ) { 
    target.attachEvent("on" + eventName, function(e){target[handlerName](e);});
  } else { 
    var originalHandler = target["on" + eventName]; 
    if ( originalHandler ) { 
      target["on" + eventName] = function(e){originalHandler(e);target[handlerName](e);}; 
    } else { 
      target["on" + eventName] = target[handlerName]; 
    } 
  } 
}
