function issetString( valtozo )
{
	try
	{
		if(valtozo!='') return true;
		else return false;
	}
	catch(err)
	{
		return false;
	}
}

function str_replace(search, replace, subject)
{
   	return subject.split(search).join(replace);
}

function isValidEmail(addr) {
	var regex = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
	return regex.test(addr);
}

function makeString( str )
{
	if(issetString( str )) return str;
	else return '';
}
//
AddEvent( window, 'load', initBrowser, false );
//

// COMMON FUNCTIONS
function $( id ) { return document.getElementById( id ); }
//
function toggle(obj)
{
	if (!$(obj)) return false;
	var el = $(obj);
	if ( el.style.display != 'none' ) el.style.display = 'none';
	else el.style.display = '';
}
//
//
function addOptions( to, arr, key )
{
	if ( $(to).type != "select-one" ) return;
	try
	{
		var j = $(to).options.length;
	}
	catch( z )
	{
		var j = 0;
	}
	var k = 0;
	var selected = null;
	//
	for ( var i = 0; i < arr.length; i++ )
	{
		$(to).options[ j + i ] = new Option( arr[ i ].text, arr[ i ].key );
		if ( arr[ i ].key == key ) selected = ( j + i );
	}
	if ( selected != null ) $(to).options.selectedIndex = selected;
}
//
//
// BASKET
//
function jobkosar( event, id, reload )
{
	var myConn = new XHConn( );
	if ( !myConn ) alert( AJAXConnectionError );
	var fnWhenDone = function ( oXML )
	{
			var response = oXML.responseText;
			$( 'kosar' ).innerHTML = response;
			if ( reload ) window.location = 'basket.php';
			//mySlider = new Fx.Slide('kosarDIV', {duration: 300});
	};
	myConn.connect( "kosarxajax.php", "GET", "event=" + event + "&id=" + id , fnWhenDone );
}

//keresoprofil
function removeProfile(id) {
	var myConn = new XHConn( );
	if ( !myConn ) alert( AJAXConnectionError );
	
	var fnWhenDone = function ( oXML )
	{
			validatorOBJ.func_complete2(oXML.responseXML);
			var res = validatorOBJ.getResult();
			if (res['error']) return false;
			
			if (res['deleted'] == "Y") 
				$('prof_' + res['id']).style.display = 'none';
				
			if (res['empty'] == "Y")
				$('noSrcProfiles').style.display = '';
	};
	
	myConn.connect( "searchprofiles.php", "GET", "event=delete&id=" + id , fnWhenDone );
}

//keresoprofil
function remove_personlist(id) {
	var myConn = new XHConn( );
	if ( !myConn ) alert( AJAXConnectionError );
	
	var fnWhenDone = function ( oXML )
	{
		var response = oXML.responseText;
		if (response == 'ok' || response == 'empty') $('personlist_' + id).style.display = 'none';
		if (response == 'empty') $('frame_personlit').style.display = 'none';
	};
	
	myConn.connect( "cvsearch.php", "POST", "event=remove_personlist&id=" + id , fnWhenDone );
}
//
//
// VOTE
//
function voteajaxpls( vid )
{
	var myConn = new XHConn();
	if (!myConn) alert(AJAXConnectionError);
	var fnWhenDone = function(oXML)
	{
		var response = oXML.responseText;
		if (response != 'error') {
			$('vote_box').innerHTML = response;
			VOTESlider = new Fx.Slide('voteDIV', {duration: 300});
		}
	}
	myConn.connect('voteajax.php', 'GET', 'valaszid=' + vid, fnWhenDone);
}
//
//
// LOCK AJAX
//
function lockAjax( img, event )
{
	var myConn = new XHConn( );
	if ( !myConn ) alert( AJAXConnectionError );
	var fnWhenDone = function( oXML )
	{
		//
		validatorOBJ.func_complete2( oXML );
		result = validatorOBJ.getResult( );
		//
		if ( result[ 'locked' ] == "N" )
		{
			img.name = "imgunlocked";
			img.src = "images/2/misc/unlocked.gif?12";
		}
		else
		{
			img.name = "imglocked";
			img.src = "images/2/misc/locked.gif?12";
		}		
	}
	myConn.connect('cveditajax.php', 'GET', 'event=' + event + "&lockAjax=true", fnWhenDone);
}
//
//
//
// WINDOW SIZE
function getWindowRect( )
{
	var x,y;
	if ( self.innerHeight )
	{ //all except Explorer
		x = self.innerWidth;
		y = self.innerHeight;
	}
	else if ( document.documentElement && document.documentElement.clientHeight )
	{ //Explorer 6 Strict Mode
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	} else if ( document.body )
	{ //other Explorers
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}
	return { 'width':x , 'height':y };
}
//
//
// RGB FUNCTIONS
function convertRGBtoHex( color )
{
	var c = String( color );
	var R = c.substr(4, 3 );
	var G = c.substr(9, 3 );
	var B = c.substr(14, 3 );
	return toHex(R)+toHex(G)+toHex(B);
}
function toHex(N) {
 if (N==null) return "00";
 N=parseInt(N); if (N==0 || isNaN(N)) return "00";
 N=Math.max(0,N); N=Math.min(N,255); N=Math.round(N);
 return "0123456789ABCDEF".charAt((N-N%16)/16)
      + "0123456789ABCDEF".charAt(N%16);
}
//
//
// BROWSER DEPEND MOO FUNCTIONS
function saveComplete_moo( edited )
{
	if ( document.all ) return;
	//
	if ( !document.all )	// if moo fixed under ie
	{
		if ( !edited.style.backgroundColor ) to = 'ffffff';
		else to = convertRGBtoHex( edited.style.backgroundColor );
	}
	else
	{
		if ( !edited.style.backgroundColor ) to = 'ffffff';
		else to = edited.style.backgroundColor;
	}
	//
	var m = new Fx.Styles( edited, {duration: 700, transition: Fx.Transitions.linear} );
	m.start({'backgroundColor': ['ffeeaa', to ] });
}
function delComplete_moo( edited, onComplete, toColor )
{
	if ( document.all ) { onComplete(); return; }
	//
	if ( toColor ) to = toColor;
	else
	{
		if ( !document.all )	// if moo fixed under ie
		{
			if ( !edited.style.backgroundColor ) to = 'ffffff';
			else to = convertRGBtoHex( edited.style.backgroundColor );
		}
		else
		{
			if ( !edited.style.backgroundColor ) to = 'ffffff';
			else to = edited.style.backgroundColor;
		}
	}
	//
	var m = new Fx.Styles( edited, {duration: 700, transition: Fx.Transitions.linear, onComplete: onComplete } );
	m.start({'backgroundColor': ['ffaa55', to ] });	
}
//
//
//
// EVENT HANDLING
//add multiple events safely cross browser
function AddEvent( obj , evt , fnc , useCapture )
{
	if ( !useCapture ) useCapture = false;
//	alert('addevent'+obj+" " +evt+" "+fnc);
	if (obj.addEventListener)
	{
		obj.addEventListener(evt,fnc,useCapture);
		return true;
	}
	else if ( obj.attachEvent )
	{
    	return obj.attachEvent( "on" + evt , fnc );
	}
	else
	{
		attchEvent( obj , evt, fnc );
		obj[ 'on' + evt ] = function ( ) { fireEvent( obj , evt ) };
	}
} 

//the following are for browsers like NS4 or IE5Mac which dont support either attachEvent or addEventListener
function attchEvent( obj , evt , fnc )
{
//	alert('attcheventL'+obj+ " "+evt+" " +fnc);
	if ( !obj.myEvents ) obj.myEvents = {};
	if ( !obj.myEvents[ evt ] ) obj.myEvents[ evt ] = [];
	var evts = obj.myEvents[ evt ];
	evts[ evts.length ] = fnc;
}

function fireEvent(obj,evt)
{
	if ( !obj || !obj.myEvents || !obj.myEvents[ evt ] ) return;
	var evts = obj.myEvents[ evt ];
	for ( var i = 0 , len = evts.length; i < len; i++ ) evts[ i ]( );
}

try
{	
	console.log();
}
catch(e)
{
	var console=new Object();
	console.log=function(txt) {};
}

//email-popup
function openMailWindow(emailAddress) {
	var windowWidth = 400;
	var windowHeight = 400;
	
	var centerWidth = (window.screen.width - windowWidth) / 2;
    var centerHeight = (window.screen.height - windowHeight) / 2;
    
    var newWindow = window.open('email.php?mailto='+emailAddress, 'sendEmail', 
				    	'resizable=0,width=' + windowWidth + 
				        ',height=' + windowHeight + 
				        ',left=' + centerWidth + 
				        ',top=' + centerHeight);

    newWindow.focus();
}
//
//
function getElementsByClassName( className, obj )
{
	var childs = new Array ();
	if ( !obj ) return;
	if ( obj.childNodes )
	{
		for ( var i = 0; i < obj.childNodes.length; i++ )
		{
			if ( obj.childNodes[i].className )
			{
				for ( var j=0; j < obj.childNodes[i].className.split (' ').length; j++ )
				{
					if ( obj.childNodes[i].className.split (' ')[j] == className )
					{
						childs[childs.length] = obj.childNodes[i];
						break;
					}
				}
			}
			if ( obj.childNodes[i].childNodes.length > 0 )
			{
				childChilds = getElementsByClassName ( className, obj.childNodes[i] );
				if ( childChilds.length > 0 )
				{
					for ( var j = 0; j < childChilds.length; j++ )
					{
						childs[childs.length] = childChilds[j];
					}
				}
			}
		}
	}
	return ( childs );
}
//
//
//
var bd = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	]
};
//
//
function initBrowser()
{
	if ( document.images )
	{
		isCSS = (document.body && document.body.style) ? true : false;
		isW3C = (isCSS && document.getElementById) ? true : false;
		isIE4 = (isCSS && document.all) ? true : false;
		isNN4 = (document.layers) ? true : false;
		isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
	}
	//
	bd.init();
	//
}