/*
	@ver 2.1
*/
var Core=(function(){
	var createdVariables;
    function constructor()
	{

	}
	
	constructor.detectParent=function (obj,tagName)
	   {
	      	if (obj)
	    	{
		      	var n=64;//up 2 32 parrent levels
		       	var o=obj.parentNode;
	    		for (i=0;i<n;i++)
		       	{
				
			      	if (o==null)break;
			        var id=o.id+"";
	        		if ((o.tagName)&&(o.tagName==tagName)&&((!id) || ((id)&&(id.indexOf("_fake")==-1))))
			      	{
				     	return o;
	    			}
		       		o=o.parentNode;
	            }
	            return null;  
		   }  
	       return null;
	    }

	constructor.getElementsByTags=function(obj,out,elements)
		{
		    if (obj.hasChildNodes()){
			    var list=obj.childNodes;
				var n=list.length;
				for(var i=0;i<n;i++){
				    var lObj=list.item(i);
				    var tag=lObj.tagName;
				    if (elements.indexOf(tag)>=0){
					    out.push(lObj);
					}
					this.getElementsByTags(lObj,out,elements);
				}
			    
			}
		}                   
    constructor.createVariables=function(obj,array)
    {
        var oForm=this.detectParent(obj,"FORM");
		for(var varName in array)
		{
            var oldObj=document.getElementById(varName);
            if (oldObj){
                oldObj.parentNode.removeChild(oldObj);
            }
            var newObj=document.createElement("input");
            newObj.type='hidden';
            newObj.value=array[varName];
            newObj.name=varName;
            newObj.id=varName;
            oForm.appendChild(newObj);
        }
        return constructor;

    }
    constructor.ld=function()
    {
			//return;	   
		  	var objL=document.getElementById("loading");
			objL.style.display="block";
			objL.style.position="absolute";
			objL.style.top="10px";
			objL.style.left="10px";		  	
			//document.getElementById("body").style.display="none";
			Boot.loading();
	}
	constructor.initCall=function(obj,wf,msg)
	{   
		if (msg){
		    var c=confirm(msg);
		    if (!c) return ;
		}
		var oForm=this.detectParent(obj,"FORM");
		if (oForm){
			this.ld();
//            this.prepareFieldsForPOST(oForm);
			oForm.wf.value=wf;
			oForm.submit();
		}
	}
	/**
		igfm=instanceGenericFormMethods(generic form) function
		igf=instanceGenericForm(as declared in module class)
		msg=message;
	*/
	constructor.initGFCall=function(obj,igfm,igf,msg)
	{
		var vars=new Array();
		vars["igfm"]=igfm;
		vars["igf"]=igf;
		this.createVariables(obj,vars);
		this.initCall(obj,"dGFCall",msg);	    
	}

	constructor.confirmLink=function(obj,msg)
	{
		var r=confirm(msg)
		if (r)
		{
			link=obj.getAttribute("link");
			//alert(link);

			window.location=link;
		}
	}

	constructor.confirmIfrLink=function(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);
		}
	}
    constructor.getUniqueId=function()
    {
        return Math.random()*78902;
    }
    
    constructor.printByIfr=function(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");
    }

    constructor.setSize=function(parentFrameId)
    {
    	var obj=document.getElementById("bdy");
    	var h=obj.offsetHeight+133;
    	//var h=document.body.offsetHeight;
    	// var h=document.body.;
    	
    	var objFrame=parent.document.getElementById(parentFrameId);
    	if (objFrame)
    	{
    		objFrame.height=h;
    		objFrame.focus();
    	}
    }
    
	return constructor;	
})();


