var inwork = false;
// Functii AJAX - Dumitru Echim 
///////////////////////////////////////////////////////////////////////////////////////////////////////////
// ajaxpost (url, ele, str)					<< dechim@go.com - 2008-01-05 >>
// 	url - ex.url : www.test.htm, www.test.php, www.test.php?var=text, www.test.php?var=text&var1=text
// 	ele - id element de actualizat;
// 	str - string-ul POST: var1=valoare1&val2=valoare2...
//  2008-02-16: daca xmlHttp.responseText contine script javascript 
//              acesta va fi executat dupa incarcarea in DOM a raspunsului
////////////////////////////////////////////////////////////////////////////////////////////////////////////
function ajaxpost(url, ele, str) 
{
	if (inwork) return true;
	var xmlHttp=null;
	try 
	{ 
		xmlHttp=new XMLHttpRequest();
	} 
	catch (e) 
	{
		 try 
		 { 
		 	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  		 } 
  		 catch (e) 
  		 { 
  		 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  		 }
 	}
 	
	if (xmlHttp==null) 
	{
		 alert ("Acest browser nu suporta HTTP Request");
		 return ;
	} 
//	document.getElementById(ele).innerHTML = '<img src="wait.gif" />';
// 	document.getElementById(ele).style.visibility = 'visible';
  	FadeOut(ele);
	xmlHttp.onreadystatechange= function() 
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") 
		{ 
			inwork=false;
			var textReturn = xmlHttp.responseText;
	 		document.getElementById(ele).innerHTML=textReturn; 
 		  	FadeIn(ele);
		if (textReturn.indexOf('text/javascript')>0) 
			{
				var scrStart = textReturn.indexOf('"text/javascript">');
			    var scrStop = textReturn.indexOf('</script>');
			    var scrExe = textReturn.substring(scrStart+20,scrStop);
			    eval(scrExe);
			}
 		} 
 		else 
 		{
			inwork=true;
		}
 	}

	if (url.indexOf('?')>0) 
	{
		if (str.length > 0)
		{
			str = url.substring(url.indexOf('?')+1, url.length) + '&' + str ;
		}
		else
		{
			str = url.substring(url.indexOf('?')+1, url.length);
		}
		url = url.substring(0,url.indexOf('?')) ; 
	}

	if(str.length>0) varx='&'; else varx='';

	str += varx + "dechim=" + (Math.floor(Math.random()*9999999)).toString(); 

	if (str.indexOf('?')== 0) str = str.substring(1, str.length);
	
	xmlHttp.open('POST', url, true);

//     alert(str);

	// xmlhttp.setRequestHeader('X-Referer', document.location);
     xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
     xmlHttp.setRequestHeader("Content-Length", str.length);
     xmlHttp.setRequestHeader("Connection", "close");
     xmlHttp.send(str);
}

// -------------------------------------------------------------------------------------------
function ajaxjson(url, str) 
{
	if (inwork) return true;
	var xmlHttp=null;
	try 
	{ 
		xmlHttp=new XMLHttpRequest();
	} 
	catch (e) 
	{
		 try 
		 { 
		 	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  		 } 
  		 catch (e) 
  		 { 
  		 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  		 }
 	}
 	
	if (xmlHttp==null) 
	{
		 alert ("Acest browser nu suporta HTTP Request");
		 return ;
	} 

	xmlHttp.onreadystatechange= function() 
	{
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") 
		{ 
			inwork=false;
			var textReturn = xmlHttp.responseText;

//			var textReturn = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(textReturn.replace(/"(\\.|[^"\\])*"/g, ''))) && eval('(' + textReturn + ')'); 
//			alert(textReturn);
			
			try
			{
				var json1 = eval('('+textReturn+')');
			} 
			catch(err)	
			{
				var div = document.createElement("div");
				div.setAttribute('class','winerr');
				div.innerHTML = 'Eroare! <br /> Astept JSON obiect dar am primit : <br />'+textReturn+ '<br /><br /><input type="button" value ="Inchide" onclick="this.parentNode.parentNode.removeChild(this.parentNode);" />';
				document.body.appendChild(div);
				return;
			}
			for (var i1 in json1)
			{
				switch (i1)
				{
					case 'input' :		// <input type="text"
						var idform = '';
						for (var i2 in json1[i1]) 
						{
							var objX = document.getElementById(i2);
							if (typeof(objX)=='undefined' || objX==null) alert('AJAX alert! Obiect NULL :'+i2);
							else
							{
								objX.value = json1[i1][i2];
								objX.defaultValue = json1[i1][i2];
								if (idform.length==0) idform = objX.form.id;
							}
						}
					  	mv.vForm(idform);
						break;
					case 'select':
						for (var i2 in json1[i1])
						{
					 		var selObj = document.getElementById(i2);
					 		var opt = selObj.options[0];
    						while (next = opt.nextSibling) { next.parentNode.removeChild(next);}
							opt.parentNode.removeChild(opt);
							for (var i3 in json1[i1][i2])
							{
					            opt1 = document.createElement("option");
   		           				opt1.appendChild(document.createTextNode(json1[i1][i2][i3]));
			                	opt1.value = i3;
			                	opt1.title = json1[i1][i2][i3];
            					selObj.appendChild(opt1);
            				}
							selObj.selectedIndex = 0;
							
						}
						break;
					case 'class':
						for (var i2 in json1[i1]) 
						{
							var objX = document.getElementById(i2);
							if (typeof(objX)=='undefined' || objX==null) alert('AJAX alert! Obiect class NULL :'+i2);
							else
							{
								objX.className = json1[i1][i2];
							}
						}
						break;
							
					case 'focus':
						try
						{
							document.getElementById(json1[i1]).focus();
						}
						catch(err) { }
						break;
					default:
						break;
							
				}	
			}	

 		} 
 		else 
 		{
			inwork=true;
		}
 	}

	if (url.indexOf('?')>0) 
	{
		if (str.length > 0)
		{
			str = url.substring(url.indexOf('?')+1, url.length) + '&' + str ;
		}
		else
		{
			str = url.substring(url.indexOf('?')+1, url.length);
		}
		url = url.substring(0,url.indexOf('?')) ; 
	}
	if(str.length>0) varx='&'; else varx='';
	str += varx + "dechim=" + (Math.floor(Math.random()*9999999)).toString(); 
	if (str.indexOf('?')== 0) str = str.substring(1, str.length);
	xmlHttp.open('POST', url, true);
    xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
    xmlHttp.setRequestHeader("Content-Length", str.length);
    xmlHttp.setRequestHeader("Connection", "close");
    xmlHttp.send(str);
}

// formeaza sirul &var1=val1&var2=val2&... din var1,var2, ...
function colect1(str1) 
{
	var arr1=str1.split(",");
	var str2 ="";

	for(i = 0; i < arr1.length; i++)
	{
		var strinput = arr1[i];
	 	str2 += "&"+arr1[i]+"="	+ document.getElementsByName(strinput)[0].value ;
	}
	return str2;
}

function exe1(scr, target, str1)
{
	var strX = colect1(str1);
	ajaxpost(scr, target, strX);
}
function exe2(scr, target, str1, str2)
{
	var strX = colect1(str2);
	var str3 = ''+str1+strX;
	ajaxpost(scr, target, str3);
}
	
function hide(id)
{
	var obj = document.getElementById(id);
	if (typeof(obj)=='object') 
	{
    	obj.style.visibility = 'hidden';
	}
}	
		
function show1(id)
{
	var obj = document.getElementById(id);
	if (typeof(obj)=='object') 
	{
    	obj.style.visibility = 'visible';
	}
}	

function dorc(e) 
{
  var rightclick;
  if (!e) var e = window.event;
  if (e.which) rightclick = (e.which == 3);
  else if (e.button) rightclick = (e.button == 2);
  if (rightclick) alert('???');	
}
//document.onmousedown = dorc;

function centerImg()
{
 	var objImg = document.getElementById('idimg');
 	if (objImg)
 	{
 		var hImg = objImg.offsetHeight;
 		
 		var hContainer = objImg.parentNode.offsetHeight;
 		hContainer=480;
 		var top = Math.ceil((hContainer-hImg)/2);
 		objImg.style.top = ''+ top + 'px';
 	}	
}

	function showmenu(id,idc)
	{
		var hid = id;
		var obj = document.getElementById(id);
		while (obj.parentNode)
		{
			obj= obj.parentNode;
			if (obj.id && obj.id!='menu0') hid = obj.id;
		}
		for (ii=0;ii<arrX.length;ii++)
		{
			if (arrX[ii]!='@' && arrX[ii]!=hid)
			{
				var x = document.getElementById(arrX[ii]);
				x.style.display = 'none';
			}
		}
		
		
		obj = document.getElementById(id);
		var objc = document.getElementById(idc);
		
		if (obj.style.display=='block')
		{
			obj.style.display = 'none';
			objc.style.fontWeight="normal";
		}
		else
		{
			obj.style.display ='block';
			objc.style.fontWeight="bold";
		}
	}
	

 var arrX = new Array('@');

 		function toggleMenu(currMenu) {
			if (document.getElementById) {
				thisMenu = document.getElementById(currMenu).style
				if (thisMenu.display == "block") {
					thisMenu.display = "none"
				}
				else {
					thisMenu.display = "block"
				}
				return false
			}
			else {
				return true
			}
		}

	function showMW(sURL, vARG, sFEAT)
	{
		return window.showModalDialog(sURL,'',"dialogWidth:1200px;status=0;resizable=1;maximize:yes;minimize:yes;");
	}

function setOpacity(object,opacityPct)
{
  object.style.filter = 'alpha(opacity=' + opacityPct + ')';
  object.style.MozOpacity = opacityPct/100;
  object.style.opacity = opacityPct/100;
}

function ChangeOpacity(id,msDuration,msStart,fromO,toO)
{
  var element=document.getElementById(id);
  var opacity = element.style.opacity * 100;
  var msNow = (new Date()).getTime();
  opacity = fromO + (toO - fromO) * (msNow - msStart) / msDuration;
  if (opacity<0) 
    setOpacity(element,0)
  else if (opacity>100)
    setOpacity(element,100)
  else
  {
    setOpacity(element,opacity);
    element.timer = window.setTimeout("ChangeOpacity('" + id + "'," + msDuration + "," + msStart + "," + fromO + "," + toO + ")",1);
  }
}
function FadeIn(id)
{
  var element=document.getElementById(id);
  if (element.timer) window.clearTimeout(element.timer); 
  var startMS = (new Date()).getTime();
  element.timer = window.setTimeout("ChangeOpacity('" + id + "',1700," + startMS + ",0,100)",1);
}
function FadeOut(id)
{
  var element=document.getElementById(id);
  if (element.timer) window.clearTimeout(element.timer); 
  var startMS = (new Date()).getTime();
  element.timer = window.setTimeout("ChangeOpacity('" + id + "',1700," + startMS + ",100,0)",1);
}

function FadeInImage(foregroundID,newImage,backgroundID)
{
  var foreground=document.getElementById(foregroundID);
  if (backgroundID)
  {
    var background=document.getElementById(backgroundID);
    if (background)
    {
      background.style.backgroundImage = 'url(' + foreground.src + ')';
      background.style.backgroundRepeat = 'no-repeat';
    }
  }
  setOpacity(foreground,0);
  foreground.src = newImage;
  if (foreground.timer) window.clearTimeout(foreground.timer); 
  var startMS = (new Date()).getTime();
  foreground.timer = window.setTimeout("ChangeOpacity('" + foregroundID + "',1700," + startMS + ",0,100)",10);
}

function waitMilisec(millis) 
{
	var date = new Date();
	var curDate = null;
	do { curDate = new Date(); } 
	while(curDate-date < millis);
} 



