/*

06.12.2000.                           
              --------   
                            
           Dyn Tools 0.3
           
 Dependencies: - browsercheck.js         
                 tools.js
 
              ---------
 
 */                  


/*----------------------------------
 fades in an element in MS5 and MOzilla
 
 Note: an IE5 element MUSt have defined alpha filter CSS property on
 the element running the script..
-------------------------------------*/
function fadeIn(_divId,_startOp,_endOp,_step,_timer){

	switch(browserName){
	 case 'NS4':showDiv(_divId); break;
	 case 'MS4':showDiv(_divId); break;
	 
	 case 'MS5':_op=_startOp*100;
	            document.getElementById(_divId).filters.alpha.opacity=_op;
	           break;
	 case 'MOZ'://document.getElementById(_divId).style.MozOpacity=_startOp;
	            
	            document.getElementById(_divId).style.MozOpacity=1;
		    //alert (_startOp);
		    return true;
	           break;
	 case 'DOM1':document.getElementById(_divId).style.opacity=_startOp;
	           break;
	}
	//now we move to the next step
	_nextStartOp=_startOp+_step;
	if ((_nextStartOp<=_endOp)&&((browserName=="MS5")||(browserName=="MOZ")||(browserName=="DOM1"))){
	  setTimeout('fadeIn("'+_divId+'",'+_nextStartOp+','+_endOp+','+_step+','+_timer+')',_timer)
	} else {
	  if (browserName=="MOZ"){
	     document.getElementById(_divId).style.MozOpacity=1;
	  }
	}
	
}

/*----------------------------------
 fades out an element in MS5 and MOzilla
-------------------------------------*/
function fadeOut(_divId,_startOp,_endOp,_step,_timer){

	switch(browserName){
	 case 'NS4':hideDiv(_divId); break;
	 case 'MS4':hideDiv(_divId); break;
	 
	 case 'MS5':var _op=_startOp*100;
	            document.getElementById(_divId).filters.alpha.opacity=_op;
	         
	            
	           break;
	 case 'MOZ':document.getElementById(_divId).style.MozOpacity=_startOp;
	           document.getElementById(_divId).style.MozOpacity=0;		   
		   return true;
	           break;
	 case 'DOM1':document.getElementById(_divId).style.opacity=_startOp;
	           break;
	}
	//now we move to the next step
	var _nextStartOp=_startOp-_step;
	if ((_nextStartOp>=_endOp)&&((browserName=="MS5")||(browserName=="MOZ")||(browserName=="DOM1"))){
	  setTimeout('fadeOut("'+_divId+'",'+_nextStartOp+','+_endOp+','+_step+','+_timer+')',_timer)
	} else {
	 hideDiv (_divId);
	}
	
}


/*----------------------------------
 Moves Div to a specified location
-------------------------------------*/
function moveDivTo(divId,toX,toY){
//alert(divId+"-"+toX+"-"+toY);

	switch(browserName){
	 case 'NS4':window.document.layers[divId].moveTo(toX,toY);break;
	 case 'MS4':window.document.all(divId).style.left=toX; document.all(divId).style.top=toY; break;
	 case 'MS5':window.document.getElementById(divId).style.left=toX; document.getElementById(divId).style.top=toY; break;
	 case 'MOZ':window.document.getElementById(divId).style.left=toX; document.getElementById(divId).style.top=toY; break;
	 case 'DOM1':window.document.getElementById(divId).style.left=toX; document.getElementById(divId).style.top=toY; break;
	} 
  
}


/*----------------------------------
 Moves Nested div to a specified location
-------------------------------------*/
function moveNestedDivTo(divId,toX,toY,parentDivId){
	switch(browserName){
	 case 'NS4':if (parentDivId!=""){
	               window.document.layers[parentDivId].document.layers[divId].left=toX; 
                 window.document.layers[parentDivId].document.layers[divId].top=toY; 
	              }else{
	                window.document.layers[divId].left=toX; document.layers[divId].top=toY;
	              } break;
	 case 'MS4':window.document.all(divId).style.left=toX; document.all(divId).style.top=toY; break;
	 case 'MS5':window.document.getElementById(divId).style.left=toX; document.getElementById(divId).style.top=toY; break;
	 case 'MOZ':window.document.getElementById(divId).style.left=toX; document.getElementById(divId).style.top=toY; break;
	 case 'DOM1':window.document.getElementById(divId).style.left=toX; document.getElementById(divId).style.top=toY; break;
	}
}

// Moves Div relatively to a present position
function moveDivBy(divId,byX,byY){
 return false;
}

function animateDiv(divId,X0,Y0,X1,Y1,acceleration,stepTime){
 //empty
 return false	
}



/*----------------------------------
             setZIndex of div
-------------------------------------*/
function setZIndex(divId,_zindex){
	
      if ((browserName=="MS5")||(browserName=="MOZ")||(browserName=="DOM1")) {
        	document.getElementById(divId).style.zIndex=_zindex;
	}
      if (browserName=="NS4") {
	        document.layers[divId].zIndex=_zindex;
        }
      if (browserName=="MS4") {
		document.all(divId).style.zIndex=_zindex;
        }
	
}

/*----------------------------------
             Hides div
-------------------------------------*/
function hideDiv(divId){

      if ((browserName=="MS5")||(browserName=="MOZ")||(browserName=="DOM1")) {
         document.getElementById(divId).style.visibility="hidden"
	 
	}
      if (browserName=="NS4") {
	        document.layers[divId].visibility="hide"
        }
      if (browserName=="MS4") {
		document.all(divId).style.visibility="hidden";
        }
	
	
	
}

/*----------------------------------
             Shows div
-------------------------------------*/
function showDiv(divId){
	
      if ((browserName=="MS5")||(browserName=="MOZ")||(browserName=="DOM1")) {
        	document.getElementById(divId).style.visibility="visible"
		
	}
	
      if (browserName=="NS4") {

	        document.layers[divId].visibility="show"
        }
      if (browserName=="MS4") {
		document.all(divId).style.visibility="visible";
        }
	
	
}


/*----------------------------------
             Hides nested div
-------------------------------------*/
function hideNestedDiv(containerDiv,divId){
	
      if ((browserName=="MS5")||(browserName=="MOZ")||(browserName=="DOM1")) {
        	document.getElementById(divId).style.visibility="hidden"
		
	}
	
      if (browserName=="NS4") {
	        document.layers[containerDiv].document.layers[divId].visibility="hide"
        }
      if (browserName=="MS4") {
		document.all(divId).style.visibility="hidden";
        }
	
	
	
}

/*----------------------------------
             Shows nested div
-------------------------------------*/
function showNestedDiv(containerDiv,divId){
	
      if ((browserName=="MS5")||(browserName=="MOZ")||(browserName=="DOM1")) {
        	document.getElementById(divId).style.visibility="visible";
	}
	
      if (browserName=="NS4") {
	        document.layers[containerDiv].document.layers[divId].visibility="show";
        }
      if (browserName=="MS4") {
		document.all(divId).style.visibility="visible";
        }
	
	
}


/*------------------------------------
          Colors div 

---------------------------------------*/
function colorDiv(divId,col){
	
  if ((browserName=="MS5")||(browserName=="MOZ")||(browserName=="DOM1")) {
      document.getElementById(divId).style.backgroundColor=col;
  }
  if (browserName=="NS4") {
      document.layers[divId].document.bgColor=col;
  }
  if (browserName=="MS4") {document.all[name].style.backgroundColor=col;
      document.all[divId].style.backgroundColor=col;
  }
}


/*----------------------------------
     Return div's left position
-------------------------------------*/
function getDivLeft(divId){

switch (browserName) {
		case "NS4":
		             return document.layers[divId].left;
				 break;
		case "MOZ":
		            return document.getElementById(divId).offsetLeft;
		         break;
	       case "DOM1":
		            return document.getElementById(divId).offsetLeft;
		         break;
		case "MS4": return document.all(divId).offsetLeft;	
		         break;	 
		case "MS5": return document.all(divId).offsetLeft;	
		         break;	 
	
	}

}

/*----------------------------------
     Return div's left position
-------------------------------------*/
function getDivTop(divId){

switch (browserName) {
		case "NS4":  
		        return document.layers[divId].top;
			break;
		case "MOZ":
		            return document.getElementById(divId).offsetTop;
		         break;
	        case "DOM1":
		            return document.getElementById(divId).offsetTop;
		         break;
		case "MS4": return document.all(divId).offsetTop;	
		         break;	 
		case "MS5": return document.all(divId).offsetTop;	
		         break;	 
	
	}

}

/*----------------------------------
     Return div's Width
-------------------------------------*/
function getDivWidth(divId){

switch (browserName) {
		case "NS4": 
		        return document.layers[divId].clip.width;
			break;
		case "MOZ":
		         return document.getElementById(divId).offsetWidth;
		         break;
	        case "DOM1":
		         return document.getElementById(divId).offsetWidth;
		         break;
		case "MS4":
		         return document.all(divId).offsetWidth;	
		         break;	 
		case "MS5": return document.all(divId).offsetWidth;	
		         break;	 
	
	}

}
/*----------------------------------
     Set div's height
-------------------------------------*/
function setDivHeight(divId,_h){

switch (browserName) {
		case "NS4":  
		            document.layers[divId].clip.height=_h;
				 break;
		case "MOZ":
		            document.getElementById(divId).style.height=_h;	
		         break;
  	        case "DOM1":
		            document.getElementById(divId).style.height=_h;
		         break;
		         
		case "MS4": 
		          document.all(divId).style.height=_h;		
		         break;	 
		case "MS5":
			document.all(divId).style.height=_h;	
		         break;	 
	
	}

}

/*----------------------------------
     Return div's height
-------------------------------------*/
function getDivHeight(divId){

switch (browserName) {
		case "NS4":  
		             return document.layers[divId].clip.height;
				 break;
		case "MOZ":
		            return document.getElementById(divId).offsetHeight;
		         break;
  	         case "DOM1":
		            return document.getElementById(divId).style.height;
		         break;
		         
		case "MS4": 
		          return document.all(divId).offsetHeight;	
		         break;	 
		case "MS5": return document.all(divId).offsetHeight;	
		         break;	 
	
	}

}


/*----------------------------------
     Return nested div's left position
-------------------------------------*/
function getNestedDivHeight(divId,parentDivId){

switch (browserName) {
		case "NS4":if (parentDivId!="") {
		          return document.layers[parentDivId].document.layers[divId].clip.height;
		         } else {return window.document.layers[divId].clip.height;}
				 break;
		case "MOZ":
		           return window.document.getElementById(divId).offsetHeight;
		         break;
		case "DOM1":
		           return window.document.getElementById(divId).offsetHeight;
		         break;
		case "MS4": return window.document.all(divId).offsetHeight;	
		         break;	 
		case "MS5": 
		            return window.document.getElementById(divId).offsetHeight;	
		
		         break;	 
	
	}

}

//writes something into target div
function writeDiv(divId,content){

switch (browserName) {
		case "NS4":document.layers[divId].document.write(content);
				   document.layers[divId].document.close();
				 break;
		case "MOZ": return window.document.getElementById(divId).innerHTML=content;
		         break;
		case "DOM1": return window.document.getElementById(divId).innerHTML=content;
		         break;
		case "MS4": return document.all(divId).innerHTML=content;	
		         break;	 
		case "MS5": return document.all(divId).innerHTML=content;
		         break;	 
	
	}
}

//writes something into nested div (NS4 compatibility)
function writeNestedDiv(divId,parentDivId,content){

switch (browserName) {
		case "NS4":if (parentDivId!="") {
		           document.layers[parentDiv].document.layers[divId].document.write(content);
				   document.layers[parentDiv].document.layers[divId].document.close();
		         } else { document.layers[divId].document.write(content);
				   document.layers[divId].document.close();}
				 break;
		case "MOZ": return window.document.getElementById(divId).innerHTML=content;
		         break;
		case "DOM1": return window.document.getElementById(divId).innerHTML=content;
		         break;
		case "MS4": return document.all(divId).innerHTML=content;	
		         break;	 
		case "MS5": return document.all(divId).innerHTML=content;
		         break;	 
	
	}

}

function animateDiv(ciljniId,funkcija,pocx,sadx,zavx,interval,korak,acc,vrtipetlja,callback){
 smjer=1;
 if (pocx>zavx){smjer=-1; }
 px=sadx+korak;
 py=0;
 eval(funkcija);
 //document.getElementById(ciljniId).style.left=py;
 //document.getElementById(ciljniId).style.top=px;
 moveDivTo (ciljniId,px,py);
 
 korak1=korak*acc;
 
 //if (smjer*korak1<smjer){korak1=smjer}
 
 if (((smjer*px) < (smjer*zavx))&&(Math.abs(korak1)>0.5)){
   setTimeout("animateDiv('"+ciljniId+"','"+funkcija+"',"+pocx+","+px+","+zavx+","+interval+","+korak1+","+acc+","+vrtipetlja+",'"+callback+"')",interval);
 } else {
   //na kraju smo animacije
   //ako je zadan loop animacija pocne iz pocetka, ali sa trenutnom brzinom
   if (vrtipetlja) {
    setTimeout("animateDiv('"+ciljniId+"','"+funkcija+"',"+pocx+","+pocx+","+zavx+","+interval+","+korak1+","+acc+","+vrtipetlja+",'"+callback+"')",interval); 
   } 
   
   //ako je zadana callback funkcija na kraju animacije, zovemo ju 
   if (callback) {
 	eval(callback);
	//showDiv("menu1Div");
	//document.getElementById('menu1Div').style.visibility="visible"
   }
}}

