// AJAX aSynchron request----------------------------------------------------------------------------
function evalScript(scripts)
{	
	try
	{	
		if(scripts!='')	
		{	
			var script="";
			scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function()	{if (scripts !== null) script+=arguments[1]+'\n';return '';});
			if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
		}
		return false;
	}
	catch(e)
	{	
		//alert(e);
	}
}
function makeRequest(url,targetdiv) 
{
	var http_request = false;

	/*
	document.getElementById(targetdiv).innerHTML='<div style="display:block; position:fixed; top:45%; left:50%; z-index:130; text-align:center; color:#000000;"><img src="images/loading.gif" border="0" /></div><div style="display:block; position:fixed; width:100%; height:100%; top:0px; left:0px; background:#FFFFFF; z-index:120; filter:alpha(opacity=60); -moz-opacity:0.6; opacity:.6;"></div>'+document.getElementById(targetdiv).innerHTML;
	*/

	if (window.XMLHttpRequest)
	{ // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) 
		{
			http_request.overrideMimeType('text/xml');
			// See note below about this line
		}
	} 
	else if (window.ActiveXObject) 
	{ // IE
		try
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try
			{
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e)
			{}
		}
	}
	if (!http_request)
	{
		alert('Giving up :( Cannot create an XMLHTTP instance');
		return false;
	}
	http_request.onreadystatechange = function()
	{
		alertContents(http_request,targetdiv);
	};
	http_request.open('GET', url, true);
	http_request.send(null);

}
function makeRequest2(url,targetdiv) 
{
	makeRequest(url,targetdiv);
	/*
	var http_request = false;
	document.getElementById(targetdiv).innerHTML='<div style="display:block; position:absolute; z-index:130; color:#000000; background-color:#FFFFFF; filter:alpha(opacity=60); -moz-opacity:0.6; opacity:.6;"><img src="images/loading.gif" border="0" style="position:fixed" /></div><div style="background-color:#FFFFFF; z-index:10; filter:alpha(opacity=60); -moz-opacity:0.6; opacity:.6;">'+document.getElementById(targetdiv).innerHTML+'</div>';
	*/
}
function alertContents(http_request,targetdiv) 
{

	if (http_request.readyState == 4)
	{
		if (http_request.status == 200) 
		{
			result=http_request.responseText;
			document.getElementById(targetdiv).innerHTML=http_request.responseText;	
			evalScript(result);
		} 
		else{}
	}
}
// end AJAX aSynchron request----------------------------------------------------------------------
function makeES(ar)//make elements as string
{
	var rez='';
	var string='';
	for(i=0;i<ar.length;i++)
	{
		rez += (rez=='')?'':'&';
		
		if(encodeURIComponent) 
		{
			string=encodeURIComponent(document.getElementById(ar[i]).value);
		} 
		else
		{
			string=escape(document.getElementById(ar[i]).value);
		}
		rez+=ar[i]+'='+string;
	}
	return(rez);
}
function makeES_strip(ar)//make elements as string
{
	var rez='';
	var string='';
	for(i=0;i<ar.length;i++)
	{
		rez+=(rez=='')?'':'&';

		if(encodeURIComponent) 
		{
			string=encodeURIComponent(stripHTML_string(document.getElementById(ar[i]).value));
		} 
		else
		{
			string=escape(stripHTML_string(document.getElementById(ar[i]).value));
		}
		rez+=ar[i]+'='+string;
	}
	return(rez);
}
//----------------------------------------------------------------------------------
function binaryLength_UTF8(str)
{	
	var bytes, charCode, a, len;
	bytes = 0;
	for (a = 0, len = str.length; a < len; a++)
	{
		charCode = str.charCodeAt(a);
		if (charCode < 128) //2^7
			bytes += 1;
		else if (charCode < 2048) // 2^11
			bytes += 2;
		else if (charCode < 65536) // 2^16
			bytes += 3;
		else
			bytes += 4;
	}
	
	return bytes;
}
//----------------------------------------------------------------------------------
function sendPost(url,content,targetdiv) 
{
	var http_request = false;
	if (window.XMLHttpRequest)
	{ // Mozilla, Safari, ...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) 
		{
			http_request.overrideMimeType('text/xml; charset=x-user-defined-binary');
			// See note below about this line
		}
	} 
	else if (window.ActiveXObject) 
	{ // IE
		try
		{
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e) 
		{
			try
			{
					http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (e)
			{}
		}
	}
	if (!http_request)
	{
		return false; //alert('Giving up :( Cannot create an XMLHTTP instance');
	}
	http_request.onreadystatechange = function()
	{
		alertContents(http_request,targetdiv);
	};
	http_request.open("POST", url, true);		
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", binaryLength_UTF8(content));
	http_request.setRequestHeader("Connection", "close");
	http_request.send(content); 
}
// function to replace the diacritics from a string ----------------------------------------------
function replaceDiacritics(strtextv)
{
	var result='';
	if(strtextv!='')
	{
		var regex = /[^a-zA-Z0-9-/\s\n~!@#$%^&*()_+`={}[]\|:;\"\',.\/<>?]/gi;
		result = strtextv.replace(regex,'');
		var regex2= /\s\s+/gi;
		result = result.replace(regex2,' ');
	}
	return(result);
}
// function to strip the html tags from a string --------------------------------------------------
function stripHTML()
{
	var re= /<\S[^><]*>/g;
	for (i=0; i<arguments.length; i++)
	{
		//arguments[i].value=replaceDiacritics(arguments[i].value);
		arguments[i].value=arguments[i].value.replace(re, "");
	}
}
function stripHTML_string(strtextv)
{
	var re= /<\S[^><]*>/g;
	strtextv=strtextv.replace(re, "");
	strtextv=replaceDiacritics(strtextv);
	return(strtextv);
}

// function to make a page redirect to a location--------------------------------------------------
function make_redirect(page)
{
	window.location=page;
}


// function to make a page redirect to a location after a number of miliseconds--------------------
function make_redirect_delay(page,milisecs)
{
	setTimeout("make_redirect('"+page+"')",milisecs);
}


// function to make an ajax request after a number of miliseconds----------------------------------
function delay_request2(page,target,milisecs)
{
	setTimeout("makeRequest('"+page+"','"+target+"')",milisecs);
}

// function to show or hide an element-------------------------------------------------------------
function show_hide_element(elem)
{
	//alert(document.getElementById(elem));
	if(document.getElementById(elem)!==null)
	{
		if(document.getElementById(elem).style.display=='block')
		{
			document.getElementById(elem).style.display='none';
		}
		else
		{
			document.getElementById(elem).style.display='block';
		}
	}
}

// function to show or hide an element after a number of miliseconds-------------------------------
function show_hide_element_delay(elem,milisecs)
{
	setTimeout("show_hide_element('"+elem+"')",milisecs);
}

// function to rate an item -----------------------------------------------------------------------
function rate_this(val,entity,id_entity)
{
	makeRequest('_rating.php?star='+val+'&entity='+entity+'&id_entity='+id_entity+'&next='+Math.random(),'art_rating'+entity+id_entity);
}

function check_delete_selection(frm,elem,val,text)
{
	if(confirm(text))
	{
		document.getElementById(elem).value=val;
		document.getElementById(frm).submit();
	}
}


function getSelText(put_there,author)
{
    var txt = '';
     if (window.getSelection)
    {
        txt = window.getSelection();
             }
    else if (document.getSelection)
    {
        txt = document.getSelection();
            }
    else if (document.selection)
    {
        txt = document.selection.createRange().text;
            }
    else return;

	if(txt=='')
	{
		alert("Selectati textul!");
	}
	else
	{
		var ed = tinyMCE.get(put_there); 
		var current=ed.getContent(); 
		ed.setContent(current+'<br /><br /><font color="#776655"><em>"'+txt+'"</em> - <strong>'+author+'</strong></font><br /><br /><br />'); 

		window.location.hash = '#add_rep';
	}
}


//--------------------------------------------------------
function make_public_field(elem,field_name,user)
{
	document.getElementById(elem).innerHTML+='<img src="images/icons/spinner.gif" width="24" height="24" border="0" alt="In progress..." style="position:absolute" />';
	makeRequest('_update_users_options.php?elem='+elem+'&code='+user+'&field='+field_name+'&delete=on',elem);
}
function make_private_field(elem,field_name,user)
{
	document.getElementById(elem).innerHTML+='<img src="images/icons/spinner.gif" width="24" height="24" border="0" alt="In progress..." style="position:absolute" />';
	makeRequest('_update_users_options.php?elem='+elem+'&code='+user+'&field='+field_name+'&add=on',elem);
}
function show_public_private_field(elem,field_name,status,user)
{
	var rez='';
	if(status==1)
	{
		rez='<img src="images/icons/private_field.png" width="24" height="24" border="0" alt="Private" onclick="make_public_field(\''+elem+'\',\''+field_name+'\',\''+user+'\')" style="cursor:pointer" />';
	}
	else
	{
		rez='<img src="images/icons/public_field.png" width="24" height="24" border="0" alt="Public" onclick="make_private_field(\''+elem+'\',\''+field_name+'\',\''+user+'\')" style="cursor:pointer" />';
	}

	document.getElementById(elem).innerHTML=rez;
}

//--------------------------------------------------------
function user_delete_enrolment(elem,field_name,user)
{
	document.getElementById(elem).innerHTML+='<img src="images/icons/spinner.gif" width="24" height="24" border="0" alt="In progress..." style="position:absolute" />';
	makeRequest('_update_users_enrolment.php?elem='+elem+'&code='+user+'&field='+field_name+'&delete=on',elem);
}
function user_add_enrolment(elem,field_name,user)
{
	document.getElementById(elem).innerHTML+='<img src="images/icons/spinner.gif" width="24" height="24" border="0" alt="In progress..." style="position:absolute" />';
	makeRequest('_update_users_enrolment.php?elem='+elem+'&code='+user+'&field='+field_name+'&add=on',elem);
}
function user_has_enrolment(elem,field_name,status,user,msg)
{
	var rez='';
	if(status==1)
	{
		rez=msg+' <img src="images/icons/favorite_remove.png" width="24" height="24" border="0" alt="'+msg+'" onclick="user_delete_enrolment(\''+elem+'\',\''+field_name+'\',\''+user+'\')" style="cursor:pointer" />';
	}
	else
	{
		rez=msg+' <img src="images/icons/favorite_add.png" width="24" height="24" border="0" alt="'+msg+'" onclick="user_add_enrolment(\''+elem+'\',\''+field_name+'\',\''+user+'\')" style="cursor:pointer" />';
	}

	document.getElementById(elem).innerHTML=rez;
}


//-------------------------
function generic_onoff_option(target,elem,field_name,id,opt)
{
	document.getElementById(elem).innerHTML+='<img src="images/spinner.gif" width="16" height="16" border="0" alt="In progress..." style="position:absolute" />';
	makeRequest(target+'elem='+elem+'&id='+id+'&field_name='+field_name+'&action='+opt,elem);
}

function ajax_generic_onoff_option(target,elem,field_name,id,opt,status_value)
{
	var rez='';
	if(status_value)
	{
		rez='<img src="images/visible.gif" width="12" height="12" border="0" alt="ON" onclick="generic_onoff_option(\''+target+'\',\''+elem+'\',\''+field_name+'\',\''+id+'\',\'off\')" style="cursor:pointer" />';
	}
	else
	{
		rez='<img src="images/invisible.gif" width="12" height="12" border="0" alt="OFF" onclick="generic_onoff_option(\''+target+'\',\''+elem+'\',\''+field_name+'\',\''+id+'\',\'on\')" style="cursor:pointer" />';
	}
	document.getElementById(elem).innerHTML=rez;
}