
/**
 *	Copyright by OPTIMO SRL @ 2008 	
 *	
 */

// if is netscape(mozilla) or other 
//N = (document.all) ? 0 : 1;

if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
	 var ieversion=new Number(RegExp.$1); // capture x.x portion and store as a number
	 N=0;
	}
else{
	 N=1;
}
var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
// object selected by mouse down
var ob;
// if is over a dragable div 
var over = false;
// if it is a persistent pannel or not
var persistent=false;
// identified panels in page with name like "panel_<xx>"
var panels;
// in debug mode or not
var debug=false;
// number of forms
var numberForms;


var toUpdate;

// create/rewrite a new cookie
function newCookie(name,value,days) {
/**
 the number at the left reflects the number of days for the cookie to last
 modify it according to your needs
 */
 var days = 30;   
                 
 if (days) {
   var date = new Date();
   date.setTime(date.getTime()+(days*24*60*60*1000));
   var expires = "; expires="+date.toGMTString(); 
  }else var expires = "";
  
 document.cookie = name+"="+value+expires+"; path=/"; 
}
   
// read content of the specified cookie
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

// identify panels from page
function getPanels(){
	var divs=document.getElementsByTagName('div'); 
	var len=divs.length;
	var realNo=0;
	panels = new Array();
	toReturn=false;
	for (var i=0;i<len;i++){
		if (divs[i].id.substring(0,6)=="panel_"){
			toReturn=true;			
			panels[realNo]=divs[i].id;
			realNo++;
		}
	}		
	return toReturn;
}

// delete cookie specified by name
function eraseCookie(name) {
  newCookie(name,"",1); 
}
var send;
// mouse Down handler
function MouseDown8(e) {	
	//moveObject(100,100);
  var clicked_element = (navigator.appName == 'Netscape') ? e.target : event.srcElement;
	var selectedDiv;

	// deprecated
	if (!N){
	  if(navigator.appName == 'Netscape' && e.target!=document) routeEvent(e);
	}

          if(clicked_element.tagName == 'DIV'){       	 
           Layer_ID = clicked_element.id;
           	id=clicked_element.id;
           	posOf_=id.indexOf("_")+1;
           	 selectedDiv="panel_"+id.substring(posOf_);
           }	
          
	if (over && selectedDiv){
		if (N) {
			//ob = document.getElementById("panel");
			ob = document.getElementById(selectedDiv);			
			X=e.layerX;
			Y=e.layerY;		
			if (is_chrome){
				Y=Y+20;
			}
//			alert("-cccc-"+X+ " " + Y);
			return false;
		}else {
			ob = document.getElementById(selectedDiv);
			var obs=ob.id;
			ob = ob.style;
			ob.id=obs;			
			X=event.offsetX;
			Y=event.offsetY;
		}	
	}else{		
		if (send){		
			if (N) {
				X=e.layerX;
				Y=e.layerY;	
				if (is_chrome){
					Y=Y+20;
				}
				//alert("-cccc-"+X+ " " + Y);
			}else {					
				X=event.offsetX;
				Y=event.offsetY;
			}		
			toUpdate=X+","+Y;			
		}
	}		
}
function updateValue(ss){	
	if (send){
	var formIndex; 
	for (formIndex = 0; formIndex < numberForms; formIndex++){		
		if (document.forms[formIndex].name==ss){
		 	document.forms[formIndex].coords.value = toUpdate ;
//		 	alert("-c-"+toUpdate+":"+document.forms[formIndex].coords.value);
		 	if (debug){
		 		alert(toUpdate);
		 	}
		 	sendForm(ss);
		}
	}
}
					
}
// send a specified form
function sendForm(id){
	form = document.getElementById(id);
		if (form && form.tagName == 'FORM'){
			form.submit();
		}
}

//mose move handler
function MouseMove8(e) {	
	if (ob) {			
		if (N) {
			ob.style.top = e.pageY-Y;
			ob.style.left = e.pageX-X;			
		}else {
			ob.pixelLeft = event.clientX-X + document.body.scrollLeft;
			ob.pixelTop = event.clientY-Y + document.body.scrollTop;
			return false;
	    }
	}	
}

// move selected object at the specified coordinates
function moveObject(x,y){
	if (ob) {
		if (N) {
			ob.style.top = y;
			ob.style.left = x;
		}else {
			ob.pixelLeft = x;
			ob.pixelTop = y;
			return false;
		}
	}
}

// mouse up handler
function MouseUp8() {
	var top;
	var left;
	if (ob) {
		if (N) {
			top = ob.style.top;
			left= ob.style.left;
		}else {
			left=ob.pixelLeft;
			top=ob.pixelTop;
		}				
		if (persistent){
			save(ob.id);
		}
		if (debug){
			alert(">>"+ob.id+" moved to (top:"+top+" : left:"+left+" : persistent:"+persistent+")");		
		}
		ob = null;	
	}	
	//window.state="xx";
}
function resetAll(){
	newCookie("_layAll","",1);
}
// reset location for panels in current page
function resetPageLocations(){
	if (getPanels()){	
		for(i = 0; i < panels.length; i++){			
			resetLocation(panels[i]);		
		}
	}
}


// reset location for specified object
function resetLocation(id){
var oldInf="";
		oldInf=readCookie("_layAll");
		if (!oldInf){
			oldInf="";
		}
		var concatenated="";
		var selectedDiv=id;
		if (oldInf.length>0 && oldInf!="null"){
					var pos=oldInf.indexOf("["+selectedDiv);
					if (pos>=0){
						var oldInfLeft=oldInf.substring(0,pos-1);
						var oldInfRight=oldInf.substring(pos+selectedDiv.length);
						pos2=oldInfRight.indexOf("]");
						oldInfRight2=oldInfRight.substring(pos2+1);						
						oldInf=oldInfLeft+oldInfRight2;
					}
					pos=oldInf.indexOf("#");
					if (pos==0){
						oldInf=oldInf.substring(1);
					}
					pos=oldInf.lastIndexOf("#");
					if (pos==oldInf.length-1){
						oldInf=oldInf.substring(0,oldInf.length-1);
					}
				}
				//alert("write"+oldInf);
				newCookie("_layAll",oldInf,30);
}

// save location of specified object
function save(id){
var oldInf="";
		oldInf=readCookie("_layAll");
		if (!oldInf){
			oldInf="";
		}
		var concatenated="";
		var selectedDiv=id;
		if (oldInf.length>0 && oldInf!="null"){
					var pos=oldInf.indexOf("["+selectedDiv);
					if (pos>=0){
						var oldInfLeft=oldInf.substring(0,pos-1);
						var oldInfRight=oldInf.substring(pos+selectedDiv.length);
						pos2=oldInfRight.indexOf("]");
						oldInfRight2=oldInfRight.substring(pos2+1);						
						oldInf=oldInfLeft+oldInfRight2;
					}
					pos=oldInf.indexOf("#");
					if (pos==0){
						oldInf=oldInf.substring(1);
					}
					pos=oldInf.lastIndexOf("#");
					if (pos==oldInf.length-1){
						oldInf=oldInf.substring(0,oldInf.length-1);
					}
				}
	 var x="0";
		var y="0";	
		var oc;					
			concatenated=concatenated+"["+selectedDiv+"|";
			if (N) {
				oc = document.getElementById(selectedDiv);						
			}else {
				oc = document.getElementById(selectedDiv);
				if (oc){
					oc = oc.style;
				}			
			}
			if (N) {
				y = oc.style.top;
				x = oc.style.left;
			}else {
				x = oc.pixelLeft;
				y = oc.pixelTop;
			}
			if (x.length==0){
				x="0";
			}
			if (y.length==0){
				y="0";
			}
			concatenated=concatenated+""+x+"|"+y+"]";
	
		if (oldInf.length>0){
			concatenated=oldInf+("#"+concatenated);
		}
		//alert("write:"+concatenated);
		newCookie("_layAll",concatenated,30);
}

// save all objects location
function saveAll(){
	var toWrite;
	if (getPanels() && over){	
		var nrDivs=	panels.length;
		var concatenated="";
		var oldInf="";
		oldInf=readCookie("_layAll");
		if (!oldInf){
			oldInf="";
		}
		var selectedDiv;
		for(i = 0; i < nrDivs; i++){
			selectedDiv=panels[i];			
				if (oldInf.length>0 && oldInf!="null"){
					var pos=oldInf.indexOf("["+selectedDiv);
					if (pos>=0){
						var oldInfLeft=oldInf.substring(0,pos-1);
						var oldInfRight=oldInf.substring(pos+selectedDiv.length);
						pos2=oldInfRight.indexOf("]");
						oldInfRight2=oldInfRight.substring(pos2+1);						
						oldInf=oldInfLeft+oldInfRight2;
					}
					pos=oldInf.indexOf("#");
					if (pos==0){
						oldInf=oldInf.substring(1);
					}
					pos=oldInf.lastIndexOf("#");
					if (pos==oldInf.length-1){
						oldInf=oldInf.substring(0,oldInf.length-1);
					}
				}
		var x="0";
		var y="0";	
		var oc;					
			concatenated=concatenated+"["+selectedDiv+"|";
			if (N) {
				oc = document.getElementById(selectedDiv);						
			}else {
				oc = document.getElementById(selectedDiv);
				oc = oc.style;			
			}
			if (N) {
				y = oc.style.top;
				x = oc.style.left;
			}else {
				x = oc.pixelLeft;
				y = oc.pixelTop;
			}
			if (x.length==0){
				x="0";
			}
			if (y.length==0){
				y="0";
			}
			concatenated=concatenated+""+x+"|"+y+"]";
	
			// nr maxim de div-uri trebuie set at la mana
			if (i<nrDivs-1){
				concatenated=concatenated+"#";
			}		
		}
		
		if (oldInf.length>0){
			concatenated=oldInf+("#"+concatenated);
		}
		
		newCookie("_layAll",concatenated,30);
	}		
}

// load all objects location
function load(){
	numberForms = document.forms.length;
	var inf;		
	inf=readCookie("_layAll");
		var x="0";
		var y="0";
		var name="";
		var infos;				
	if (inf){
		var panelsPos=inf.split("#");
	// alert(panelsPos);
		for (i=0; i<panelsPos.length; i++){		
			infos=panelsPos[i].split("|");
		
			name=infos[0].substring(1);
		
			if (infos[1].length > 0){
				x=infos[1];			
	
			}
			if (infos[2].length > 0){
				pos=infos[2].indexOf("]");
				y=infos[2].substring(0,pos);
			}			
			var oc;
			if (N) {
				oc = document.getElementById(name);						
			}else {
				oc = document.getElementById(name);
				if (oc){
					oc = oc.style;
				}			
			}
			
			if (oc) {
				if (N) {
					oc.style.top = y;
					oc.style.left = x;
				}else {
					oc.pixelLeft = x;
					oc.pixelTop = y;			
				}
			}
		}
	}
}
function togglePanel(divId){
	var style2;
   if (document.getElementById)
   {
      style2 = document.getElementById(divId).style;
   }
   else if (document.all)
   {
      style2 = document.all[divId].style;
   }
   else if (document.layers)
   {
      style2 = document.layers[divId].style;
   }
   if (style2){   
      style2.display = style2.display=="none"? "block":"none";
   }else{
   
   }
}


if (N) {
document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
}

document.onmousedown = MouseDown8;
document.onmousemove = MouseMove8;
document.onmouseup = MouseUp8;
window.onload=new Function('load()');

