/*
	@ver 2.1
*/
function urlEncode(str) 
{
	var result = "";
	
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) == " ") result += "+";
		else result += str.charAt(i);
	}
	
	return  escape(result);
}

function urlDecode(str) 
{
//	var result = "";

 	var result = str.replace(/\+/g, " ");
	
/*	
	for (i = 0; i< str.length; i++) {
		if (str.charAt(i) == "+") result += " ";
		else result += str.charAt(i);
	}
*/
	return  unescape(result);
}



function replaceAll(oldStr,findStr,repStr) {
  var srchNdx = 0;  // srchNdx will keep track of where in the whole line
                    // of oldStr are we searching.
  var newStr = "";  // newStr will hold the altered version of oldStr.
  if (!oldStr) return "";
  while (oldStr.indexOf(findStr,srchNdx) != -1)  
                    // As long as there are strings to replace, this loop
                    // will run. 
  {
    newStr += oldStr.substring(srchNdx,oldStr.indexOf(findStr,srchNdx));
                    // Put it all the unaltered text from one findStr to
                    // the next findStr into newStr.
    newStr += repStr;
                    // Instead of putting the old string, put in the
                    // new string instead. 
    srchNdx = (oldStr.indexOf(findStr,srchNdx) + findStr.length);
                    // Now jump to the next chunk of text till the next findStr.           
  }
  newStr += oldStr.substring(srchNdx,oldStr.length);
                    // Put whatever's left into newStr.             
  return newStr;
}

function detectParent(obj,tagName)
    {
      	if (obj)
    	{
	      	var n=32;//up 2 32 parrent levels
	       	var o=obj.parentNode;
    		for (i=0;i<n;i++)
	       	{
			
		      	if (o==null)break;
        		if ((o.tagName)&&(o.tagName==tagName))
		      	{
			     	return o;
    			}
	       		o=o.parentNode;
            }
            return null;  
	   }  
       return null;
    }

function initCall(obj,wf,msg)
{
	if (msg)
	{
	    var c=confirm(msg);
	    if (!c) return ;
	}
	var oForm=detectParent(obj,"FORM");
	if (oForm)
	{
		oForm.wf.value=wf;
		oForm.submit();
	}

}

function confirmLink(obj,msg)
{
	var r=confirm(msg)
	if (r)
	{
		link=obj.getAttribute("link");
		//alert(link);

		window.location=link;
	}
}

function confirmIfrLink(obj,msg,target)
{
	var r=confirm(msg)
	if (r)
	{
		link=obj.getAttribute("link");
		//alert(link);
	    var obj=document.getElementById(target);
		if (!obj) alert("Error");
	    obj.frameborder="yes";
	    obj.scrolling="yes";
		
		obj.style.display="inline";
//		window.location=link;
//		alert(target);
		window.open(link,target);
	}
}

function initCallRegisterPaper(obj,wf)
{
	var o=document.getElementById('filePaper');
	var err=0;
	var msg=new Array();
	msg[1]="Lipsesc Fisiere / Upload Files(1) ?";
	msg[2]="Lipsesc Fisiere / Upload Files(2) ?";
	
	if ((o)&&(o.value=='')) err=1;
	
	o=document.getElementById("filePaperReport");
	if ((o)&&(o.value=='')) err=2;
	
    if (err==0) initCall(obj,wf);
	else
		alert(msg[err]);

	//alert(err);
}

function initCallRegister(obj,wf)
{
	var err=0;
    var tc=document.getElementById("tc");
    //alert(tc.checked);
    if ((!tc.checked)&&(err==0)) alert("Termeni si Conditii ?");
    else initCall(obj,wf);
}

function printSection(id)
{
    var objA=document.getElementById("active");
    if (objA) objA.style.display="none";
    var objPrint=document.getElementById(id);
    content="";
    if (objPrint) content=objPrint.innerHTML;
    var obj=document.getElementById(id+"_print");
    if (!obj)
    {
        obj=document.createElement("div");
        document.body.appendChild(obj);
    }
    obj.innerHTML=content;
    window.print();
    if (objA) objA.style.display="block";
    if (obj) obj.parentNode.removeChild(obj);
}

function prinByIfr(id)
{
    var obj=document.getElementById("printIFR");
    if (!obj)
    {
        obj=document.createElement("IFRAME");
        document.body.appendChild(obj);
    }
    obj.frameborder="no";
    obj.scrolling="no";
    obj.style.width="1px";
    obj.style.height="1px";
    obj.src="print.php?"+id+"&"+Math.random();
    //alert("d");
    
}

/**
* Cross-Browser Ereignis-Registrar v.
* Scott Andrew
*/
function addEvent(obj, eventType, func, useCaption)
{
  if (obj.addEventListener) {
    obj.addEventListener(eventType, func, useCaption);
    return true;
  } else if (obj.attachEvent) {
    var retVal = obj.attachEvent("on"+eventType, func);
    return retVal;
  } else {
    return false;
  }
}

/*
	Dynamic Table add
	Walter Tane
*/
function tCreateFieldName(id,tblId)
{
	return fieldId=tblId+'['+id+'][]';
}

function tCreateField(rowId, id,tblId,value,type,other)
{
    other=replaceAll(other,"`","\"");
	var fieldId=tCreateFieldName(id,tblId);
	var ih='<input type="'+type+'" style="width:100%" id="'+tNameToId(fieldId,rowId)+'" name="'+fieldId+'" value="'+value+'" '+other+'/>';
	return ih;
}

function tNameToId(varName,rowId)
{
    var out=varName;
	out=replaceAll(out,"[","_");
    out=replaceAll(out,"]","_");
    return out+rowId;
}
function tDuplicate(obj,newId,tblId)
{

	var tagName=obj.tagName;
    var oTbl=document.getElementById(tblId);

    var nObj=document.createElement(tagName);
    nObj.id=newId;
    var count=tCountRows(oTbl)+1;
	for (i=0;i<obj.childNodes.length;i++)
    {
        var tObj=obj.childNodes[i];
        if (tObj.tagName)
        {
        	tagName=tObj.tagName;
        	var id=tObj.id;
        	
			var tnObj=document.createElement(tagName);
			var ih=tObj.innerHTML;
			//daca e diferit de &nbps; atunci adauga un inputbox normal
			var inputCreated=false;
			if (ih=="&nbsp;") 
			{
			    ih=tCreateField(newId,id,tblId,"","input",tObj.getAttribute("properties"));
			    inputCreated=true;
			}
			tnObj.innerHTML=ih;
			//copy 
			//tnObj.style=tObj.style;
			tnObj.className=tObj.className;
			tnObj.align=tObj.align;
			tnObj.rowSpan=tObj.rowSpan;
			//end copy
			
			var varName=tCreateFieldName(id,tblId);

			tnObj.innerHTML=replaceAll(tnObj.innerHTML,"#rowId",newId);
			tnObj.innerHTML=replaceAll(tnObj.innerHTML,"#rowCount",count);
			
			tnObj.innerHTML=replaceAll(tnObj.innerHTML,"#varNameId",tNameToId(varName,newId));

			tnObj.innerHTML=replaceAll(tnObj.innerHTML,"#varName",varName);

//			alert(tnObj.innerHTML);
			if (id) 
			{
			    id=id+"_"+newId;
			    tnObj.id=id;
			}
			nObj.appendChild(tnObj);
		}
    }
    return nObj;
}
function tCountRows(objTbl)
{
	var count=0;
	for (i=0;i<objTbl.childNodes.length;i++)
	{
	    var tObj=objTbl.childNodes[i];
	    if (tObj.tagName) 
	    {
	        if (tObj.tagName=="TBODY")
			{
			    for (j=0;j<tObj.childNodes.length;j++)
			    {
					var ttObj=tObj.childNodes[j];
					if ((ttObj.tagName=="TR") &&(ttObj.id!="noCount"))count++;
				}
				break;
			}
			
			
	    }
	}
	//pentru a porni de la 0
	return count-2;
    
}
function _tCreateNew(tblId)
{
	var objNTr=document.createElement("TR");
	var tblTmplId=tblId+"_template";
	var objTblTmpl=document.getElementById(tblTmplId);
	var objTbl=document.getElementById(tblId);
	var count=tCountRows(objTbl);
	var rowId=tblId+"_"+count;
	var objNTr=tDuplicate(objTblTmpl,rowId,tblId);

	for (i=0;i<objTbl.childNodes.length;i++)
	{
	    var tObj=objTbl.childNodes[i];
	    if (tObj.tagName) 
	    {
	        if (tObj.tagName=="TBODY")
			{
			    tObj.appendChild(objNTr); 
				break;
			}
	    }
	}
	return rowId;
}
function tCreateNew(tblId)
{
	_tCreateNew(tblId);    
}

function tDebugData(obj)
{
    var m="";
	for(var x in obj)
    {
        m+=x+"=>"+obj[x]+"\n";
    }
    alert(m);
}
function tDebug(id)
{
    var obj=document.getElementById(id);
    if (obj) alert(obj.innerHTML);
}
function tDelete(objId)
{
	var objTr=document.getElementById(objId);
    objTr.parentNode.removeChild(objTr);
}

function tLoad(tblId,data,isJustViewble)
{
	var tblTmplId=tblId+"_template";
	var objTblTmpl=document.getElementById(tblTmplId);
	var i=0;
	//alert(objTblTmpl.childNodes.length);
	var k=1;
	for (var index in data)
	{
		var row=data[index];
		row["no"]=k+"";
		k++;
		var rowId=_tCreateNew(tblId);
		for (i=0;i<objTblTmpl.childNodes.length;i++)
		{
	    	var tObj=objTblTmpl.childNodes[i];
	    	if (tObj.tagName!="TD") continue;
	    	var name=tObj.id;
	    	var props=tObj.getAttribute("properties");
	    	var value=row[name];
	    	if (!value) value="";
//			alert(name+"::"+props+"::"+row[name]);
//	    	continue;
/*	    }
	    
		for (var name in row)
		{
*/
			var id=name+"_"+rowId;
			//alert(id);
			var obj=document.getElementById(id);
			if (obj) 
			{
			 	var value=urlDecode(value);
//			 	var fieldName=tCreateFieldName(name,tblId);
//				var fieldId=tNameToId(fieldName)
//			 	alert(fieldId);
				var varName=tCreateFieldName(name,tblId);
				var varNameId=tNameToId(varName,rowId);
				var x=document.getElementById(varNameId);
				if ((!isJustViewble)&&(x))
				{
					tag=x.tagName;
					if (tag=="TEXTAREA") x.innerHTML=value;
					if (tag=="INPUT") x.value=value;
					if (tag=="SELECT") 
					{
						for(j=0;j<x.options.length;j++)
						{
							x.options[j].selected=false;
						}
						for(j=0;j<x.options.length;j++)
						{
							//alert(x.options[j].value+":"+value);
							if (x.options[j].value==value) 
							{
								x.options[j].selected=true;
								//alert("fiound");
							}
						}	
					}
				}
				else
				{
					if (value=="") value="-";
					obj.innerHTML=value;
				}



					
//					if (!isJustViewble)   obj.innerHTML=tCreateField(rowId,name,tblId,value,"input",props);
//					else obj.innerHTML=value;

/*	old version					
					obj.innerHTML=value+"&nbsp;@";
			    	obj.innerHTML+=tCreateField(name,tblId,value,"hidden");
*/
			    
			}
		}
	}    
}
/*
	example Load
function l()
{
    var data=new Array();
    data[0]=new Array();
    data[0]["data"]="d0";
    data[0]["count"]="c0";

    data[1]=new Array();
    data[1]["data"]="d1";
    data[1]["count"]="c1";
    tLoad("tbl",data);
    
}
*/

function basicMenu(obj)
{
    var oldId="basicMenuOld";
	var oldObj=document.getElementById(oldId);
	var nid=obj.id+"_table";

    if (!oldObj) 
    {
		oldObj=document.createElement("INPUT");
		oldObj.type="hidden";
		oldObj.id=oldId;
		oldObj.value=nid;
		document.body.appendChild(oldObj);
    }
    var oldObjId=oldObj.value;
    //alert(oldObjId);
    var nObj=document.getElementById(oldObjId);
    if (nObj) nObj.style.display="none";
    
	//alert(nid);
	oldObj.value=nid;
	
    nObj=document.getElementById(nid);
    if (nObj) nObj.style.display="block";
}

function inputLimit(obj,limit,msg)
{
    if ((obj)&&(obj.value.length>limit))
	{
		obj.value=obj.value.substr(0,limit);
		alert(msg);
	}
	

}

function fileIsValid(obj,ext)
{
    var path=obj.value;
    var last=path.substr(path.length-ext.length,ext.length);
//    alert(ext +"="+last);
    if (last==ext) return true;
    return false;
}

function fileExecIsValid(obj,ext,msg)
{
    if (!fileIsValid(obj,ext)) 
    {
		id=obj.id;
		var pn=obj.parentNode;
		pn.removeChild(obj);
//        obj.value="";
		obj=document.createElement("input");
		obj.id=id;
		obj.name=id;
		obj.type="file";
		pn.appendChild(obj);
		obj.onchange=function(){fileExecIsValid(obj,ext,msg);}
		
        alert(msg);
    }
}

function inputIsValid(str,m)
{
	if (str=="") return false;
    var i=0;
    for(i=0;i<str.length;i++) 
		if (m.indexOf(str.charAt(i))==-1) return false;
    return true;
}
function inputFilter(oldStr,m)
{
 	var newStr="";
    var i=0;
    for(i=0;i<oldStr.length;i++) if (m.indexOf(oldStr.charAt(i))!=-1) newStr+=oldStr.charAt(i);
    return newStr;
}
function inputNumberFloat(obj,msg)
{
	var m="01234567890.";
	if (!inputIsValid(obj.value,m)) obj.value=inputFilter(obj.value,m); 
	var val=obj.value;
	var nos=val.split(".");
	var newVal="";
    if ((nos[0])&&(nos[1])&&((nos[0].length>7)||(nos[1].length>2)))
	{
			nos[0]=nos[0].substr(0,7);
			newVal=nos[0];
			nos[1]=nos[1].substr(0,2);
			newVal+="."+nos[1];
			obj.value=newVal;
	}
	else
	{
		if ((val.length>10))
		{
			newVal=val.substr(0,7);
			obj.value=newVal;	
		}
		
	}
	
}

function inputNumber(obj,msg)
{
	var m="01234567890.";
	if (!inputIsValid(obj.value,m)) obj.value=inputFilter(obj.value,m); 
}

function inputIsValidCF(cui) {
  var nr = cui.length, total = 0
  if (nr < 2 || nr > 10) {return false}
  pondere = "7532175321".substr(10-nr,nr)
  for (x=0; x < nr -1 ; ++x) {total += cui.charAt(x) * pondere.charAt(x)}

  return (cui.substr(nr-1,1) == ((total * 10) % 11 ) % 10 )
}

function inputCF(obj,msg)
{
    
if (obj.value=="GB248837911") return;    
if (obj.value=="6207904") return ;

if ((obj.value.length>0)&&(!inputIsValidCF(obj.value)))
    {
       obj.value="";
	   alert(msg); 
    }
}

function inputDate(obj,format,msg)
{
    var value=obj.value;
    if (value.length==0) return;
    var entV=value.split("/");
    var entF=format.split("/");
	var corect=true;
	if (entV.length!=entF.length) corect=false; 
	else
	{
	    for (i=0;i<entV.length;i++)
	    {
	        var f=entF[i];
	        var v=parseInt(entV[i]);
	     //   alert(v+"::"+f);
	        switch (f)
	        {
	            case "m":
	            	if ((v>12)||(v<1)) corect=false;
	            	break;
	            case "Y":
	            	if ((v>2010)||(v<2007)) corect=false;
	            	break;
	        }
	    }
	}
	if (!corect) 
	{
	    obj.value="";
	    alert(msg);
	}
}


function inputText(obj)
{
 	var m="";
	m+="01234567890.";
 	m+="qwertyuiop[]";
 	m+="asdfghjkl;";
 	m+="zxcvbnm,./";
 	m+="QWERTYUIOP{}";
 	m+="ASDFGHJKL:";
 	m+="ZXCVBNM<>?";
 	m+="!@#$%^&*()-_=+~`";
 	m+=" ";
 	obj.value=replaceAll(obj.value,"\"","`");
	/*if (!inputIsValid(obj.value,m))*/ obj.value=inputFilter(obj.value,m); 	   
   
}

//onLoad="setSize('frmCenter');
function setSize(parentFrameId)
{
	var obj=document.getElementById("bdy");
	var h=(obj.offsetHeight)+133;
	//var h=document.body.offsetHeight;
	// var h=document.body.;
//	alert(h);
	var objFrame=parent.document.getElementById(parentFrameId);
	objFrame.style.height=h+"px";
//	objFrame.height=h;
///	objFrame.focus();
}

function showObject(id)
{
    var obj=document.getElementById(id);
    if (obj) obj.style.display="block";
}
function hideObject(id)
{
    var obj=document.getElementById(id);
    if (obj) obj.style.display="none";
    
}

function switchVisibility(id)
{
    var obj=document.getElementById(id);
    if (obj)
	{
	     if (obj.style.display!="none") hideObject(id);
	     else showObject(id);
    }

}

function selectAll(obj,groupId)
{
	var objs= document.getElementsByTagName("input");
	var s=obj.checked;
	if (objs)
	{
	    for (var key in objs)
	    {
	        var o=objs[key];
	        if (o)
	        {
 			if (o.id==groupId) o.checked=s;           
	        }
	    }
	}
}
