// JavaScript Document

var state = -1;
var start;
var timestamp;
var set=false;
var oriClass = new Array();
var oriElement = new Array();


function checkDatesFilled() {
	var dol_tim = document.getElementById("dolazak_timestamp");
	var odl_tim = document.getElementById("odlazak_timestamp");
	var dol = document.getElementById("dolazak");
	var odl = document.getElementById("odlazak");
	
	if(dol.value && odl.value)
	{
	  if(dol_tim.value && odl_tim.value)
	  {
		 reserveDay(dol.value, dol_tim.value);	
		 reserveDay(odl.value, odl_tim.value);
	  }
	}
	else
	{
      if(dol_tim.value && odl_tim.value)
	  {
		 reserveDay("", dol_tim.value);	
		 reserveDay("", odl_tim.value);
	  }
	}
	
}

function reserveDay(day, timestamp){
	
   if(state == -1)
	  		state ++;

	var id;
    var next_day = start+86400;
	var x=document.getElementsByTagName("input");
		
	for (i=0;i<x.length;i++){ 
		
		 id=x[i].getAttribute('id');
		
		 if(id == "dolazak" && state == 0){
			 	 x[i].value=day; 
				 x[i].timestamp=timestamp;
				 start=timestamp;
				 set=true;
				 fillStartDay(timestamp);
				 state ++;
				 break;
		 }		  

		 if(id == "odlazak" && state == 1){
			 if(timestamp > next_day){
				if(checkFree(start, timestamp)){
				 	x[i].value=day; 
				 	x[i].timestamp=timestamp;
				 	set=true;
   				 	fillEndDay(timestamp);
				 	fillTermin(start, timestamp, 'obr');
				 	state ++;
				 	break;
				} else {
					clearRes();	
				}
			 }
		 }		  
	}

}

function fillStartDay(timestamp){
		var u=document.getElementsByTagName("td");		
		var id;
		for (i=0;i<u.length;i++){ 
		  id=u[i].id;
		  if(id==timestamp){
			oriClass[0] = u[i].className;
			oriElement[0] = u[i];
			if(stristr(u[i].className, "_"))
			{
				var lstr = u[i].className.substr(0,2);
				if(lstr !== "ob")
					u[i].className=lstr+"_ob";
				else
					u[i].className="obr";
			}
			else
				u[i].className="obr";
		    break;
		  }
		}
}


function fillEndDay(timestamp){
		var u=document.getElementsByTagName("td");		
		var id;
		for (i=0;i<u.length;i++){ 
		  id=u[i].id;
		  if(id==timestamp){
			oriClass[1] = u[i].className;
			oriElement[1] = u[i];
			if(stristr(u[i].className, "_"))
			{
				var rstr = u[i].className.substr(3,2);
				if(rstr !== "ob")
					u[i].className="ob_"+rstr;
				else
					u[i].className="obr";
			}
			else
				u[i].className="obr";
		    break;
		  }
		}
}

function fillTermin(st, en, type){		
		var u=document.getElementsByTagName("td");
		for (i=0;i<u.length;i++){ 
		  cl=u[i].className;
		  id=u[i].id;  
		  if(cl=="slob" || cl=="obr"){
			if(id >= st && id < en){
				u[i].className=type;			
			}
		  }			
		}	
		
}

function checkFree(st, en){
	var start = parseInt(st) + 86400;
	var end = parseInt(en);
	for(var n=start;n<end;n=n+86400){
		var elem = document.getElementById(n);
		if(elem)
		{
		    if(elem.className !== "slob")
				return false;
		}
		else 
			return false;
	}
	return true;
}

function clearRes(){
	
	var z=document.getElementsByTagName("input");
	for (i=0;i<z.length;i++){ 		
		  id=z[i].getAttribute('id');
		  if(id=="dolazak"){
			 z[i].value=""; 
			 st=z[i].timestamp;
		  }		  
		  
		  if(id=="odlazak"){
			 z[i].value=""; 
 			 en=z[i].timestamp;
		  }	  		  		 
	} 	

	fillTermin(st, en, 'slob');
	
	if(oriElement[0])
		oriElement[0].className = oriClass[0];
		
	if(oriElement[1])
		oriElement[1].className = oriClass[1];
	
    state = -1;
	timestamp = false;
    start = false;
	set = false;
	oriClass = new Array();
	oriElement = new Array();

}

function changeCal(obj){
	var cal1, cal2;
	
	cal1=document.getElementById("cal1");
	cal2=document.getElementById("cal2");

	switch(obj.selectedIndex){
		case 0:	
		  obj.selectedIndex=1;
		  cal1.style.display="block";
		  cal2.style.display="none";
		break;
		case 1:
		  obj.selectedIndex=0;
		  cal1.style.display="none";
		  cal2.style.display="block";
		break;		
	}
	
	updateAjax(obj);
}

function stristr (haystack, needle, bool) {
    var pos = 0; 
    haystack += '';
    pos = haystack.toLowerCase().indexOf( (needle+'').toLowerCase() );
    if (pos == -1){
        return false;
    } else{
        if (bool) {
            return haystack.substr( 0, pos );
        } else{
            return haystack.slice( pos );
        }
    }
}
