function displayPrice( result )
{
   var inputText = result.responseText;
   var result_split = inputText.split("^^^", 3);
 
   var rooms = result_split[0];
   var result = result_split[1];
   var count = result_split[2]; 

   var rooms_data = JSON.parse( rooms );
   var result_data = JSON.parse( result );
   var count_data = JSON.parse( count ); 



  //console.log(result_data); 
  //console.log(rooms_data);   
  
  var panel = document.getElementById('pricePanel'); 
  removeAllChildNodes( panel );  
   if(rooms_data.length != result_data.length)
    {
       var temp = new Array(); 
       
        for(var i=0; i<rooms_data.length; i++)
        {
            temp[i] = 0;
        }
        

        for( var i=0;i<result_data.length; i++ )
        {
            for(var j=0; j<rooms_data.length; j++)
            {
                if(rooms_data[j]==result_data[i].room_id)
                 {   
                    temp[j] = (result_data[i].price*count_data[j])/100.0; 
                 }
            }
        }        
    
        for(var i=0; i<temp.length; i++)
        {
            var tar = document.getElementById('r_'+rooms_data[i]);
            //console.log(tar);
            removeAllChildNodes(tar);
            if(temp[i]!=0)
            {     
               tar.innerHTML = lang.dict.price+" "+temp[i]+" €";
            }
            else
            {
               tar.innerHTML = lang.dict.roomUnavailable;
            }
        }


       var messages = new Array();
       messages[messages.length] = lang.dict.priceCheckFailure;        
       messageWindow( lang.dict.reservarationPanel, messages);
          
        


    
    }
   else
    {
       var temp = new Array(); 
       for( var i=0;i<result_data.length; i++ )
        {
            for(var j=0; j<rooms_data.length; j++)
            {
                if(rooms_data[j]==result_data[i].room_id)
                 {   
                    temp[temp.length] = (result_data[i].price*count_data[j])/100.0; 

                    var tar = document.getElementById('r_'+result_data[i].room_id);
                       
                    removeAllChildNodes(tar);
                    tar.innerHTML = "Cena "+temp[temp.length-1]+" €";
                                    
                 }
            }
        }
        var sum = 0;
        for(var i=0; i< temp.length; i++)
        {
            sum += temp[i];
        }

      //  var tab = document.getElementById('pricePanel');
      //  tab.innerHTML = "Suma całkowita: "+sum+" €";

         var messages = new Array();
         messages[messages.length] = "Minimalna cena za wszystkie wybrane przez użytkownika pokoje: "+sum+" €";

        
       messageWindow( lang.dict.reservarationPanel, messages);
     

    }
}

 function isDate(txtDate){  
   var objDate;   
   var mSeconds;   

   
   if (txtDate.length != 10) return false;  
   
 
   var month   = txtDate.substring(3,5)  - 1;  
   var day = txtDate.substring(0,2);  
   var year  = txtDate.substring(6,10);  
   
    //console.log(month, day, year);

  
   if (txtDate.substring(2,3) != '.') return false;  
   if (txtDate.substring(5,6) != '.') return false;  
   
   if (year < 999 || year > 3000) return false;  
   
   // convert txtDate to the milliseconds  
   mSeconds = (new Date(year, month, day)).getTime();  
   
   // set the date object from milliseconds  
   objDate = new Date();  
   objDate.setTime(mSeconds);  
   
   // if there exists difference then date isn't valid  
   if (objDate.getFullYear() != year)  return false;  
   if (objDate.getMonth()    != month) return false;  
   if (objDate.getDate()     != day)   return false;  
   
   // otherwise return true  
   return true;  
 }  

function checkDatePeriod(from, to)
 {
   var month1 = from.substring(3,5)-1;  
   var day1 = from.substring(0,2);  
   var year1 = from.substring(6,10);  

   var month2 = to.substring(3,5)-1;  
   var day2 = to.substring(0,2);  
   var year2 = to.substring(6,10);  
 
   mSeconds1 = (new Date(year1, month1, day1)).getTime();  
   mSeconds2 = (new Date(year2, month2, day2)).getTime();

   if( mSeconds1 > mSeconds2 )
    {
        return false;
    }
   else
    {
        return true;
    }
 }


function countPrice()
{
   var formError = false;
   var rooms = document.getElementsByClassName('rooms');
  
   var data1 = document.getElementById('period_left_boundary_5').value;
   var data2 = document.getElementById('period_right_boundary_5').value;
   
   var data1Valid = false;
   var data2Valid = false;     
     
    
       for(var i = 0; i< rooms.length; i++)
        {
            var dd = document.getElementById('r_'+rooms[i].id);
            removeAllChildNodes(dd);
        }

           var ss = document.getElementById('pricePanel');
           removeAllChildNodes(ss); 
            

        var messages = new Array();
       
        if(data1=='')
        { 
            messages[0] = 'Planowana data przyjazdu do hotelu nie może być pusta';
            formError = true;
        }
        else
        {
             if(isDate(data1)==false)
             {
                messages[messages.length] = 'Niepoprawna data przyjazdu do hotelu.';
                formError = true;
             }
            else
             {
                data1Valid = true;
             }
        }

        if(data2=='')
        { 
            messages[messages.length] = 'Planowana data opuszczenia hotelu nie może być pusta';
            formError = true;
        }
        else
        {
             if(isDate(data2)==false)
             {
                messages[messages.length] = 'Niepoprawna data opuszczenia hotelu.';
                formError = true;
             }
            else
            {
                data2Valid = true;
            }
        }

        if(data1Valid == true && data2Valid == true)
         {  
            if(!checkDatePeriod(data1, data2))
            {
                messages[messages.length] = 'Planowana data opuszczenia hotelu jest mniejsza niż data przyjazdu';
                formError = true;
            }
         }


        if(formError)
        {
           messageWindow( lang.dict.reservarationPanel, messages);
           return 0; 
        }

       var temp = new Array();  
       var count = new Array(); 
       var te = new Array();
       var co = new Array(); 

     for(var itr = 0; itr < rooms.length; itr++ )
        { 
           temp[itr] = rooms[itr].id;
           count[itr] = rooms[itr].options[rooms[itr].selectedIndex].innerHTML;     
        }

     for(var i=0; i< count.length; i++)
        {
           if(count[i]!=0)
           {
            co[co.length] = count[i];
            te[te.length] = temp[i];
           }
        }

        if(co.length==0)
        { 
            messages[0] = 'Nie wybrano ilości pokoi do rezerwacji';
            messageWindow( lang.dict.reservarationPanel, messages);
            return 0;
        }
        

        var t = JSON.stringify(te);
        var c = JSON.stringify(co);

        
    

    var urlL = "/webserv/modReservation.php?rooms="+t+"&date1="+data1+"&date2="+data2+"&count="+c;
  
    advAJAX.get({
        url: urlL,
        onSuccess : displayPrice
    });

            
}

function showKidsInput()
{
    var messages = new Array();

    var formError = false;
   
    var kidsCount = document.getElementById('kids').value;

    if(kidsCount=='')
    {
       kidsCount=0; 
    }
    else if(parseInt(kidsCount)!=kidsCount-0)
    {    
        formError = true;
    }
    
    if(formError)
    {
       return 0; 
    }

    kidsCount = kidsCount-0;
    var pan = document.getElementById('kidsAge');
    removeAllChildNodes(pan);

   
    for(var i=1; i<=kidsCount; i++)
    {
        var div = document.createElement('div');
        div.className="containerKid";

        var label =  document.createElement('label');
        label.className = "labelKids";
        label.innerHTML = lang.dict.ageOf + " "+i+" "+lang.dict.childForAge +". ";
        div.appendChild(label);    
        var inputField = document.createElement( 'input' );
        inputField.className = "kidAge";
        var it = i -1;   
        inputField.name = "age["+it+"]";    
        div.appendChild(inputField);
        var label =  document.createElement('label');
        label.className = "labelYear";
        label.innerHTML = " "+lang.dict.years ;
        div.appendChild(label); 
        pan.appendChild(div);    
    }
}

function showKidsInputSPA()
{
    var messages = new Array();

    var formError = false;
   
    var kidsCount = document.getElementById('kidsSPA').value;

    if(kidsCount=='')
    {
       kidsCount=0; 
    }
    else if(parseInt(kidsCount)!=kidsCount-0)
    {    
        formError = true;
    }
    
    if(formError)
    {
       return 0; 
    }

    kidsCount = kidsCount-0;
    var pan = document.getElementById('kidsAgeSPA');
    removeAllChildNodes(pan);

   
    for(var i=1; i<=kidsCount; i++)
    {
        var div = document.createElement('div');
        div.className="containerKid";

        var label =  document.createElement('label');
        label.className = "labelKids";
        label.innerHTML = lang.dict.ageOf + " "+i+" "+lang.dict.childForAge +". ";
        div.appendChild(label);    
        var inputField = document.createElement( 'input' );
        inputField.className = "kidAge";
        var it = i -1;   
        inputField.name = "age["+it+"]";    
        div.appendChild(inputField);
        var label =  document.createElement('label');
        label.className = "labelYear";
        label.innerHTML = " "+lang.dict.years ;
        div.appendChild(label); 
        pan.appendChild(div);    
    }
}


function showKidsInputAllAcc()
{
    var messages = new Array();

    var formError = false;
   
    var kidsCount = document.getElementById('kidsAllAcc').value;

    if(kidsCount=='')
    {
       kidsCount=0; 
    }
    else if(parseInt(kidsCount)!=kidsCount-0)
    {    
        formError = true;
    }
    
    if(formError)
    {
       return 0; 
    }

    kidsCount = kidsCount-0;
    var pan = document.getElementById('kidsAgeAllAcc');
    removeAllChildNodes(pan);

   
    for(var i=1; i<=kidsCount; i++)
    {
        var div = document.createElement('div');
        div.className="containerKid";

        var label =  document.createElement('label');
        label.className = "labelKids";
        label.innerHTML = lang.dict.ageOf + " "+i+" "+lang.dict.childForAge +". ";
        div.appendChild(label);    
        var inputField = document.createElement( 'input' );
        inputField.className = "kidAge";
        var it = i -1;   
        inputField.name = "age["+it+"]";    
        div.appendChild(inputField);
        var label =  document.createElement('label');
        label.className = "labelYear";
        label.innerHTML = " "+lang.dict.years ;
        div.appendChild(label); 
        pan.appendChild(div);    
    }
}


function showKidsInputLes()
{
    var messages = new Array();

    var formError = false;
   
    var kidsCount = document.getElementById('kidsLes').value;

    if(kidsCount=='')
    {
       kidsCount=0; 
    }
    else if(parseInt(kidsCount)!=kidsCount-0)
    {    
        formError = true;
    }
    
    if(formError)
    {
       return 0; 
    }

    kidsCount = kidsCount-0;
    var pan = document.getElementById('kidsAgeLes');
    removeAllChildNodes(pan);

   
    for(var i=1; i<=kidsCount; i++)
    {
        var div = document.createElement('div');
        div.className="containerKid";

        var label =  document.createElement('label');
        label.className = "labelKids";
        label.innerHTML = lang.dict.ageOf + " "+i+" "+lang.dict.childForAge +". ";
        div.appendChild(label);    
        var inputField = document.createElement( 'input' );
        inputField.className = "kidAge";
        var it = i -1;   
        inputField.name = "age["+it+"]";    
        div.appendChild(inputField);
        var label =  document.createElement('label');
        label.className = "labelYear";
        label.innerHTML = " "+lang.dict.years ;
        div.appendChild(label); 
        pan.appendChild(div);    
    }
}




function showPrice()
{
    var alink = document.getElementById('showPrice');
    addPortableEventListener( alink, 'click', countPrice );

    var kids = document.getElementById('kids');
    addPortableEventListener(kids, 'change', showKidsInput );
    addPortableEventListener(kids, 'keyup', showKidsInput );
 
    var kidsSPA = document.getElementById('kidsSPA');
    addPortableEventListener(kidsSPA, 'change', showKidsInputSPA );
    addPortableEventListener(kidsSPA, 'keyup', showKidsInputSPA );
         
    var kids = document.getElementById('kidsAllAcc');
    addPortableEventListener(kids, 'change', showKidsInputAllAcc );
    addPortableEventListener(kids, 'keyup', showKidsInputAllAcc );
     
    var kids = document.getElementById('kidsLes');
    addPortableEventListener(kids, 'change', showKidsInputLes );
    addPortableEventListener(kids, 'keyup', showKidsInputLes );

}



runOnLoad( showPrice );
